GPU Delay - A delay plugin running on a graphics card
-
- KVRian
- 600 posts since 6 Feb, 2004 from London, UK
Chorus is working on my FX5200, but it's crackle-land with just one instance @ 44.1K.
Something else I noticed, in WaveLab at least, is that if you stop and then re-start playback, the delay plays the remaining echoes that was about to play when stopped.
Nils, would a GeForce 7600GS AGP be sufficient for this type of processing or is PCI-e actually required?
Something else I noticed, in WaveLab at least, is that if you stop and then re-start playback, the delay plays the remaining echoes that was about to play when stopped.
Nils, would a GeForce 7600GS AGP be sufficient for this type of processing or is PCI-e actually required?
-
- KVRist
- 33 posts since 6 May, 2005
Mmm.... So what HAPPENED to BionicFX anyway?
All I could find was this:
http://www.dce.harvard.edu/pubs/unlette ... l/cann.jsp
It's from Harvard, and apparently he was in Wired as well... and applying for a patent... all sounds pretty serious, but the BionicFX website is no more.
All I could find was this:
http://www.dce.harvard.edu/pubs/unlette ... l/cann.jsp
It's from Harvard, and apparently he was in Wired as well... and applying for a patent... all sounds pretty serious, but the BionicFX website is no more.
-
- KVRist
- 101 posts since 25 Aug, 2004
Hmmm, chorus gives an error when starting Cubase (Radeon 9500pro here), here's the log :
18:10:26: Creating resource group General
18:10:26: Creating resource group Internal
18:10:26: Creating resource group Autodetect
18:10:26: Registering ResourceManager for type Material
18:10:26: Registering ResourceManager for type Mesh
18:10:26: Registering ResourceManager for type Skeleton
18:10:26: MovableObjectFactory for type 'ParticleSystem' registered.
18:10:26: Loading library OgrePlatform.dll
18:10:26: OverlayElementFactory for type Panel registered.
18:10:26: OverlayElementFactory for type BorderPanel registered.
18:10:26: OverlayElementFactory for type TextArea registered.
18:10:26: Registering ResourceManager for type Font
18:10:26: ArchiveFactory for archive type FileSystem registered.
18:10:26: ArchiveFactory for archive type Zip registered.
18:10:26: DevIL version: Developer's Image Library (DevIL) 1.6.7 Oct 28 2005
18:10:26: DevIL image formats: bmp dib cut dcx dds gif hdr ico cur jpg jpe jpeg lif mdl mng jng pcx pic pix png pbm pgm pnm ppm psd pdd psp pxr sgi bw rgb rgba tga vda icb vst tif tiff wal xpm raw
18:10:26: Registering ResourceManager for type HighLevelGpuProgram
18:10:26: Registering ResourceManager for type Compositor
18:10:26: MovableObjectFactory for type 'Entity' registered.
18:10:26: MovableObjectFactory for type 'Light' registered.
18:10:26: MovableObjectFactory for type 'BillboardSet' registered.
18:10:26: MovableObjectFactory for type 'ManualObject' registered.
18:10:26: MovableObjectFactory for type 'BillboardChain' registered.
18:10:26: MovableObjectFactory for type 'RibbonTrail' registered.
18:10:26: *-*-* OGRE Initialising
18:10:26: *-*-* Version 1.2.2 (Dagon)
18:10:26: Loading library RenderSystem_Direct3D9.dll
18:10:26: An exception has been thrown!
-----------------------------------
Details:
-----------------------------------
Error #: 9
Function: DynLib::load
Description: Could not load dynamic library RenderSystem_Direct3D9.dll. System Error: The specified module could not be found.
.
File: \sgpu\source\ogre\OgreMain\src\OgreDynLib.cpp
Line: 82
Stack unwinding: <<beginning of stack>>
I have DirectX9.0c installed. Anything else needed?
18:10:26: Creating resource group General
18:10:26: Creating resource group Internal
18:10:26: Creating resource group Autodetect
18:10:26: Registering ResourceManager for type Material
18:10:26: Registering ResourceManager for type Mesh
18:10:26: Registering ResourceManager for type Skeleton
18:10:26: MovableObjectFactory for type 'ParticleSystem' registered.
18:10:26: Loading library OgrePlatform.dll
18:10:26: OverlayElementFactory for type Panel registered.
18:10:26: OverlayElementFactory for type BorderPanel registered.
18:10:26: OverlayElementFactory for type TextArea registered.
18:10:26: Registering ResourceManager for type Font
18:10:26: ArchiveFactory for archive type FileSystem registered.
18:10:26: ArchiveFactory for archive type Zip registered.
18:10:26: DevIL version: Developer's Image Library (DevIL) 1.6.7 Oct 28 2005
18:10:26: DevIL image formats: bmp dib cut dcx dds gif hdr ico cur jpg jpe jpeg lif mdl mng jng pcx pic pix png pbm pgm pnm ppm psd pdd psp pxr sgi bw rgb rgba tga vda icb vst tif tiff wal xpm raw
18:10:26: Registering ResourceManager for type HighLevelGpuProgram
18:10:26: Registering ResourceManager for type Compositor
18:10:26: MovableObjectFactory for type 'Entity' registered.
18:10:26: MovableObjectFactory for type 'Light' registered.
18:10:26: MovableObjectFactory for type 'BillboardSet' registered.
18:10:26: MovableObjectFactory for type 'ManualObject' registered.
18:10:26: MovableObjectFactory for type 'BillboardChain' registered.
18:10:26: MovableObjectFactory for type 'RibbonTrail' registered.
18:10:26: *-*-* OGRE Initialising
18:10:26: *-*-* Version 1.2.2 (Dagon)
18:10:26: Loading library RenderSystem_Direct3D9.dll
18:10:26: An exception has been thrown!
-----------------------------------
Details:
-----------------------------------
Error #: 9
Function: DynLib::load
Description: Could not load dynamic library RenderSystem_Direct3D9.dll. System Error: The specified module could not be found.
.
File: \sgpu\source\ogre\OgreMain\src\OgreDynLib.cpp
Line: 82
Stack unwinding: <<beginning of stack>>
I have DirectX9.0c installed. Anything else needed?
-
Nils Schneider Nils Schneider https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=45370
- KVRist
- Topic Starter
- 279 posts since 22 Oct, 2004 from Neuss, Germany
Seems that your system didn't notice that the path env variable has been updated. Should work when logging off and logging in again.
https://k1v.nilsschneider.de - Kawai K1 emulated as VSTi/AU
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP
-
- KVRian
- 829 posts since 13 Jul, 2002
Newest version of the delay is working on my ATI Radeon 9550.
The chorus starts but put the db meters to full and stay there
with no sound on the output.
Also noticed that if you load the chorus on a track where you
already got the delay going will make the delay stop working
and if you remove the chorus then EnergyXT terminate and you
are back to the desktop.
//Daniel
The chorus starts but put the db meters to full and stay there
with no sound on the output.
Also noticed that if you load the chorus on a track where you
already got the delay going will make the delay stop working
and if you remove the chorus then EnergyXT terminate and you
are back to the desktop.
//Daniel
-
- KVRian
- 964 posts since 11 May, 2004 from cologne,germany
my pecs:
intel p4 3.2ghz, 2 gb ram and geforce mx5200.
the delay works great, i can load quite a lot of them without any crackles at 256, 512 and 1024! nice work!
but when i load the chorus plugin energyxt quits without any error message or so
still, congratulations, great effort!
intel p4 3.2ghz, 2 gb ram and geforce mx5200.
the delay works great, i can load quite a lot of them without any crackles at 256, 512 and 1024! nice work!
but when i load the chorus plugin energyxt quits without any error message or so
still, congratulations, great effort!
-
Nils Schneider Nils Schneider https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=45370
- KVRist
- Topic Starter
- 279 posts since 22 Oct, 2004 from Neuss, Germany
@ddummer I'm just experimenting, I also noticed that, when using different plugins that refer to the Ogre dlls it leads to problems.
I already thought about throwing all the Ogre stuff away and writing my own engine, resulting in a smaller app and with less dlls, but will loose the ability to switch to OpenGL later...
I'm not sure yet..... Maybe the Ogre guys have a solution for me...
I already thought about throwing all the Ogre stuff away and writing my own engine, resulting in a smaller app and with less dlls, but will loose the ability to switch to OpenGL later...
https://k1v.nilsschneider.de - Kawai K1 emulated as VSTi/AU
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP
-
- KVRian
- 829 posts since 13 Jul, 2002
The ogre.log
//Daniel
The sgpu.log17:31:02: Creating resource group General
17:31:02: Creating resource group Internal
17:31:02: Creating resource group Autodetect
17:31:02: Registering ResourceManager for type Material
17:31:02: Registering ResourceManager for type Mesh
17:31:02: Registering ResourceManager for type Skeleton
17:31:02: MovableObjectFactory for type 'ParticleSystem' registered.
17:31:02: Loading library OgrePlatform.dll
17:31:02: OverlayElementFactory for type Panel registered.
17:31:02: OverlayElementFactory for type BorderPanel registered.
17:31:02: OverlayElementFactory for type TextArea registered.
17:31:02: Registering ResourceManager for type Font
17:31:02: ArchiveFactory for archive type FileSystem registered.
17:31:02: ArchiveFactory for archive type Zip registered.
17:31:02: DevIL version: Developer's Image Library (DevIL) 1.6.7 Oct 28 2005
17:31:02: DevIL image formats: bmp dib cut dcx dds gif hdr ico cur jpg jpe jpeg lif mdl mng jng pcx pic pix png pbm pgm pnm ppm psd pdd psp pxr sgi bw rgb rgba tga vda icb vst tif tiff wal xpm raw
17:31:02: Registering ResourceManager for type HighLevelGpuProgram
17:31:02: Registering ResourceManager for type Compositor
17:31:02: MovableObjectFactory for type 'Entity' registered.
17:31:02: MovableObjectFactory for type 'Light' registered.
17:31:02: MovableObjectFactory for type 'BillboardSet' registered.
17:31:02: MovableObjectFactory for type 'ManualObject' registered.
17:31:02: MovableObjectFactory for type 'BillboardChain' registered.
17:31:02: MovableObjectFactory for type 'RibbonTrail' registered.
17:31:02: *-*-* OGRE Initialising
17:31:02: *-*-* Version 1.2.2 (Dagon)
17:31:02: Loading library RenderSystem_Direct3D9.dll
17:31:02: D3D9 : Direct3D9 Rendering Subsystem created.
17:31:02: D3D9: Driver Detection Starts
17:31:02: D3D9: Driver Detection Ends
17:31:02: Loading library Plugin_CgProgramManager.dll
17:31:02: D3D9 : RenderSystem Option: Full Screen = No
17:31:02: D3D9 : RenderSystem Option: VSync = No
17:31:02: D3D9 : RenderSystem Option: Anti aliasing = None
17:31:02: D3D9 : RenderSystem Option: Allow NVPerfHUD = No
17:31:02: D3D9 : RenderSystem Option: Video Mode = 640 x 480 @ 32-bit colour
17:31:02: D3D9 : RenderSystem Option: Floating-point mode = Fastest
17:31:02: D3D9 : Subsystem Initialising
17:31:02: D3D9RenderSystem::createRenderWindow "GPU Audio DSP Processing Prototype v0.01a", 640x480 windowed miscParams: FSAA=0 FSAAQuality=0 colourDepth=32 useNVPerfHUD=false vsync=false
17:31:02: D3D9 : Created D3D9 Rendering Window 'GPU Audio DSP Processing Prototype v0.01a' : 640x480, 32bpp
17:31:02: D3D9 : WARNING - disabling VSync in windowed mode can cause timing issues at lower frame rates, turn VSync on if you observe this problem.
17:31:02: Registering ResourceManager for type Texture
17:31:02: Registering ResourceManager for type GpuProgram
17:31:02: RenderSystem capabilities
17:31:02: -------------------------
17:31:02: * Hardware generation of mipmaps: yes
17:31:02: * Texture blending: yes
17:31:02: * Anisotropic texture filtering: yes
17:31:02: * Dot product texture operation: yes
17:31:02: * Cube mapping: yes
17:31:02: * Hardware stencil buffer: yes
17:31:02: - Stencil depth: 8
17:31:02: - Two sided stencil support: yes
17:31:02: - Wrap stencil values: yes
17:31:02: * Hardware vertex / index buffers: yes
17:31:02: * Vertex programs: yes
17:31:02: - Max vertex program version: vs_2_0
17:31:02: * Fragment programs: yes
17:31:02: - Max fragment program version: ps_2_0
17:31:02: * Texture Compression: yes
17:31:02: - DXT: yes
17:31:02: - VTC: no
17:31:02: * Scissor Rectangle: yes
17:31:02: * Hardware Occlusion Query: yes
17:31:02: * User clip planes: yes
17:31:02: * VET_UBYTE4 vertex element type: yes
17:31:02: * Infinite far plane projection: yes
17:31:02: * Hardware render-to-texture: yes
17:31:02: * Floating point textures: yes
17:31:02: * Non-power-of-two textures: yes
17:31:02: * Volume textures: yes
17:31:02: * Multiple Render Targets: 4
17:31:02: * Point Sprites: yes
17:31:02: * Extended point parameters: yes
17:31:02: * Max Point Size: 256
17:31:02: ***************************************
17:31:02: *** D3D9 : Subsystem Initialised OK ***
17:31:02: ***************************************
17:31:02: ResourceBackgroundQueue - threading disabled
17:31:02: Particle Renderer Type 'billboard' registered
17:31:02: OverlayElementFactory for type MyPanel registered.
17:31:02: Added resource location 'data.bin' of type 'Zip' to resource group 'General' with recursive option
17:31:02: Parsing scripts for resource group Autodetect
17:31:02: Finished parsing scripts for resource group Autodetect
17:31:02: Parsing scripts for resource group General
17:31:02: Parsing script chorus.material
17:31:02: Finished parsing scripts for resource group General
17:31:02: Parsing scripts for resource group Internal
17:31:02: Finished parsing scripts for resource group Internal
17:31:02: Creating viewport on target 'rtt/2345184', rendering from camera 'CAM_art0', relative dimensions L: 0.00 T: 0.00 W: 1.00 H: 1.00 ZOrder: 0
17:31:02: Viewport for camera 'CAM_art0', actual dimensions L: 0 T: 0 W: 2048 H: 1
17:31:02: Warning: material chorus0 has no supportable Techniques on this hardware, it will be rendered blank.
17:31:07: Render Target 'rtt/2345184' Average FPS: 21.6568 Best FPS: 22.5269 Worst FPS: 21.5264
17:31:07: *-*-* OGRE Shutdown
17:31:07: Unregistering ResourceManager for type Compositor
17:31:07: Unregistering ResourceManager for type Font
17:31:07: Unregistering ResourceManager for type Skeleton
17:31:07: Unregistering ResourceManager for type Mesh
17:31:07: Unregistering ResourceManager for type HighLevelGpuProgram
17:31:07: Unloading library Plugin_CgProgramManager.dll
17:31:07: Render Target 'GPU Audio DSP Processing Prototype v0.01a' Average FPS: 0 Best FPS: 0 Worst FPS: 999
17:31:07: D3D9 : Shutting down cleanly.
17:31:07: Unregistering ResourceManager for type Texture
17:31:07: Unregistering ResourceManager for type GpuProgram
17:31:07: D3D9 : Direct3D9 Rendering Subsystem destroyed.
17:31:07: Unloading library RenderSystem_Direct3D9.dll
17:31:07: Unregistering ResourceManager for type Material
17:31:07: Unloading library OgrePlatform.dll
I guess I'm hardware incompatible now... merde...WARN: sgpuVST::DestroyThread: WaitForSingleObject( m_hThreadTerminated ) = WAIT_TIMEOUT
INFO: main: Working directory: C:\Program\Nils Schneider\GPU Chorus VST Effect Plugin
INFO: CRApp::Init: CApp successfully created.
INFO: main: returning effect...
INFO: DllMain: DLL_THREAD_ATTACH
INFO: sgpuVST::_Thread_Process: Thread 0 started
INFO: CAudioEffect::Create: Audio Effect with ID 0 successfully created.
INFO: sgpuVST::processReplacing: Audio effect created, blockSize = 2048
INFO: sgpuVST::processReplacing: Buffers created, blockSize = 2048
INFO: sgpuVST::_Thread_Process: Thread 0 terminated
INFO: DllMain: DLL_THREAD_DETACH
INFO: CAudioEffect::Destroy: Audio Effect with ID 0 successfully destroyed.
INFO: DllMain: DLL_PROCESS_DETACH
INFO: CRApp::Destroy: CApp successfully destroyed (0 audio effects left).
INFO: DllMain: DLL_PROCESS_ATTACH
INFO: main: entered...
INFO: main: Working directory: C:\Program\Nils Schneider\GPU Chorus VST Effect Plugin
INFO: CRApp::Init: CApp successfully created.
INFO: main: returning effect...
INFO: DllMain: DLL_THREAD_ATTACH
INFO: DllMain: DLL_THREAD_ATTACH
INFO: sgpuVST::_Thread_Process: Thread 0 started
INFO: CAudioEffect::Create: Audio Effect with ID 0 successfully created.
INFO: sgpuVST::processReplacing: Audio effect created, blockSize = 2048
INFO: sgpuVST::processReplacing: Buffers created, blockSize = 2048
INFO: sgpuVST::_Thread_Process: Thread 0 terminated
INFO: DllMain: DLL_THREAD_DETACH
INFO: DllMain: DLL_THREAD_DETACH
INFO: CAudioEffect::Destroy: Audio Effect with ID 0 successfully destroyed.
INFO: DllMain: DLL_PROCESS_DETACH
INFO: CRApp::Destroy: CApp successfully destroyed (0 audio effects left).
INFO: DllMain: DLL_THREAD_ATTACH
INFO: DllMain: DLL_THREAD_DETACH
//Daniel
-
- KVRist
- 101 posts since 25 Aug, 2004
Noluck here.. restarted, dll not found again. Put dll in system path environment variable, still nothing. Copied the .dll to system32, still the program doesn't see it. Seems I will give up here 
-
Nils Schneider Nils Schneider https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=45370
- KVRist
- Topic Starter
- 279 posts since 22 Oct, 2004 from Neuss, Germany
Could you post your sgpu.log please, it should clear up why the dll isn't found.
https://k1v.nilsschneider.de - Kawai K1 emulated as VSTi/AU
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP
-
- Banned
- 264 posts since 29 Jul, 2006
From earlier posts...gonzo wrote:Noluck here.. restarted, dll not found again. Put dll in system path environment variable, still nothing. Copied the .dll to system32, still the program doesn't see it. Seems I will give up here
Google this: D3DXDLLFebruary29.zip
Install it, worked for me
(add to FAQ.... hehe)
-
Nils Schneider Nils Schneider https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=45370
- KVRist
- Topic Starter
- 279 posts since 22 Oct, 2004 from Neuss, Germany
I guess he means the RenderSystem_Direct3D9.dll which is part of my installation
https://k1v.nilsschneider.de - Kawai K1 emulated as VSTi/AU
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP
https://heatvst.com - Android Synthesizer with full VST integration
https://gpuimpulsereverb.de - Use your GPU as reverberation DSP
- KVRAF
- 4030 posts since 7 Sep, 2002
This is understandable, but it is also true that such 'complicated plug-ins' can work as good on normal multi-core processor. While with such 'externalized' plug-ins you'll have problem of synchronization (you can't process effects without latency at all) and - as I see it - problem of programming flexibility: in most cases you'll be forced to code in machine language, you have some constraints on memory (including local memory) and execution flow as well while creating complex plug-ins may require more of programming flexibility than you need for simple plug-ins (you'll need complex branching, C++ classes, large code size, look-up tables, gigabytes of memory space for sampler plug-ins).Nils Schneider wrote:Your should note the following: The purpose of outsourcing plugins is not to get more instances of a single pluging, but creating plugins that are very complicated and may sound better then. These plugins, the delay and the chorus, are just a proof-of-concept.
Just to be clear about my attitude (some do not perceive my critics well enough it seems): it is perfectly OK to code and release such GPU plug-ins as long as they work, but as for me (as developer) I see problems with them, and so I do not want to play this game.
-
- KVRian
- 568 posts since 20 Nov, 2003 from Basel, Switzerland
Can you get this code working on my gfx card please? That would be a HUGE step forward (wrt. complicated stuff).
http://www.dspdimension.com/src/smbPitchShift.cpp
Right now I am using it as VST and it eats my CPU for breakfast...
Cheers
--th
http://www.dspdimension.com/src/smbPitchShift.cpp
Right now I am using it as VST and it eats my CPU for breakfast...
Cheers
--th
I'm the stereo chancellor
