KVR Audio is the Internet's number one news and information resource for open standard audio plugins. We report new releases, product announcements and product updates (major and minor) for all VST Plugins, DirectX Plugins and Audio Units Plugins. We manage a fully searchable audio plugin database (updated daily), and offer many free member services including user reviews, product update notifications and a very active discussion forum. We also host official support forums for many plugin developers plus the official Receptor support forum.
Plug-in Database: Virtual
Instruments, Effects & Hosts
Plug-in
Ranks
Banks & Patches
Download & Upload
Plug-in Ratings
by KVR Members
Wiki: Tutorials,
Audio Lexicon, ...
Listen to Music
by KVR Members
Search
KVR

Google Powered Search:

in new window

KVR Powered Plug-in Search:

Author Topic: GPU Delay - A delay plugin running on a graphics card
Nils Schneider
KVRist
- profile
- pm
- www
PostPosted: Thu Oct 05, 2006 1:18 am reply with quote
Hello,

my occupation is game programming, my hobby is music. So I decided to check out if it isn't possible to use my graphics card for audio DSP processing like BionicFX promised some years ago. After heavy optimizing, trying out a lot of things etc..... It works Smile

This is a proof-of-concept VST plugin to test if computation on a GPU is possible in a reasonable amount of time. At my machine (P4 2.8Ghz, Geforce FX 5900 AGP) my test plugin is at least faster than e.g. the Voxengo Tempo Delay (of course, my version lacks of features but it's still not pretty bad I think.) Well, here you are: http://nilsschneider.de/temp/GPUDelay.exe (2,2MB). Here you can at least grab a simple VST plugin that computes a delay of up to 1 second in length on your graphics processor.

This release is not intended to be something useful, but it would be nice if you could help me to TEST it. If everything is working well, I'll start with the implementation of more complex plugins ( receiving my Geforce 7800 GS+ next week Smile ) so this will be a good alternative to CPU based plugins because these plugs don't eat up your CPU. This delay eats nearly nothing on my machine when working with Cubase SX 3 and a buffer size of 1024 samples. Other plugins, more complex ones, shouldn't eat more because the GPU is doing the processing.

Here are some things you should know:

- Needs at least a graphics board with pixel shader 2.0 and floating point render target support. Tested only with a NVidia Geforce FX 5900. Would be nice to have other results.

- DirectX 9.0c is required
- Buffer size can't be greater than 2048 (I'll change that in the future, but atm it's a deprecated limitation)
- There is no graphical interface yet.
- 3 Parameters: Feedback, InvertLR (mixes left<=>right so stereo delay is possible), Length (up to 1 second)

Would be nice if you could tell me if the plugin is loading on your system at all, if you have any crashes or something like that.

Note that Cubase SX "marks" a plugin as unloadable if it fails once. You have to re-enable it again in the plugin configuration.

If anything goes wrong, would be nice if you could send me all log files that are created in the installation directory.

THANKS in advance! This is going to be a quite cool thingy Smile If my new graphics board is here, I'll start to bring you some more complex plugins Smile
_______________________________________

EDIT: Note that meanwhile, there is also a 6 voice stereo chorus available:

http://nilsschneider.de/temp/GPUChorus.exe

It's a 6 (!) voice stereo chorus

Parameters:

- Depth
- Mix (0% = dry, 100% = wet)
- Speed
- Gain
- Spread (0% = mono chorus, all 6 voices in the center, 100% = 3 voices left, 3 voices right)

This one requires Pixel Shaders 2.x (sorry for all Radeon 9xxx Users).

Minimum graphics board for this plugin:

Geforce FX 5...
ATI Radeon X...

Regards,

Nils
Last edited by Nils Schneider on Tue Feb 20, 2007 4:52 am; edited 7 times in total
^ Joined: 22 Oct 2004  Member: #45370  Location: Neuss, Germany
Mighty Pea
KVRian
- profile
- pm
PostPosted: Thu Oct 05, 2006 1:43 am reply with quote
awesome! Being a game artist first, this really appeals to me, as my hardware is always much more fit for gaming than musicmaking Very Happy
i'll give this a go on a few different systems in a few days.
----
^ Joined: 21 Mar 2006  Member: #102329  
Nils Schneider
KVRist
- profile
- pm
- www
PostPosted: Thu Oct 05, 2006 1:49 am reply with quote
Great! Smile Many thanks for your help.
^ Joined: 22 Oct 2004  Member: #45370  Location: Neuss, Germany
bool
KVRist
- profile
- pm
PostPosted: Thu Oct 05, 2006 2:14 am reply with quote
Interesting. Could you team up with some other developers and port their stuff for gpu acceleration?

Would it be possible to run such plugins on geforce 5200? (reason: silent card)
^ Joined: 18 Dec 2004  Member: #52034  
Nils Schneider
KVRist
- profile
- pm
- www
PostPosted: Thu Oct 05, 2006 2:26 am reply with quote
This depends on the complexity of the algorithm VS the capabilities of the GPU, i.e. it's pixel shaders.

Not every algorithm can be ported, especially those that HAVE to go linearily through the buffer because they depend on the result of the previous sample. A GPU computes multiple pixels (i.e. audio samples) in parallel. This is a problem for e.g. some filter algorithms.

Feature-wise, a Geforce 5200 is identical to a 5900, so simple effects are not a problem (only slower), but more complicated ones won't run. This delay sample should work fine.
^ Joined: 22 Oct 2004  Member: #45370  Location: Neuss, Germany
zeoy
KVRAF
- profile
- pm
- www
PostPosted: Thu Oct 05, 2006 2:40 am reply with quote
My office PC has an ancient ATI9200 so no "pixel shader 2.0 and floating point render target support" I suppose (FYI didn't load here)/ I'll test it at home with an NVIDIA 6600GT.
Congrats for your efforts!
----
If I go insane, please don't put your wires in my brain
^ Joined: 07 May 2004  Member: #24383  Location: Athens, Greece
Kingston
KVRAF
- profile
- pm
- e-mail
- www
PostPosted: Thu Oct 05, 2006 2:40 am reply with quote
Excellent work sir! I salute you. I studied the possibilities of GPU as generic DSP processor some years a go but decided I hadn't the skills for the implementation back then.

What interface do you have with the GPU? Are you using something like BrookGPU as the programming language (that promising looking C style generic code extension for GPUs)?

or did you simply write everything from scratch?

Cheers,
Mike
----
^ Joined: 16 Dec 2002  Member: #5023  
Nils Schneider
KVRist
- profile
- pm
- www
PostPosted: Thu Oct 05, 2006 2:45 am reply with quote
Thanks Smile

I'm using the Ogre 3D engine, but it doesn't have any gpgpu capabilities, so everything is written from scratch for this special case.
^ Joined: 22 Oct 2004  Member: #45370  Location: Neuss, Germany
Amberience
KVRAF
- profile
- pm
- e-mail
PostPosted: Thu Oct 05, 2006 3:05 am reply with quote
Didn't work for me. I have onboard Geforce 6100. Can I assume that it just doesn't work with onboard GPU's ?
^ Joined: 07 Mar 2003  Member: #6234  Location: Climbing the walls inside my mind
schnilsen
KVRer
- profile
- pm
PostPosted: Thu Oct 05, 2006 3:42 am reply with quote
this is as of topic as it gets but i got a bit confused here cause my name is nils schneider. But back to the topic:
Great! i hope more people start developing in the direction as my name mate.
cheers to you!
^ Joined: 18 Aug 2004  Member: #37534  
ddummer
KVRian
- profile
PostPosted: Thu Oct 05, 2006 4:25 am reply with quote
I'll design a GUI if you need one.... or help you in any other way...

//Daniel Smile
^ Joined: 12 Jul 2002  Member: #3306  
TRIAC
KVRist
- profile
- pm
PostPosted: Thu Oct 05, 2006 6:03 am reply with quote
any chance to work on Radeon cards?

got this error:
DynKib::load
Could not load dynamic library RenderSystem_Direct3D9.dll

File:\sgpu\source\ogre\OgreMain\src\OrgeDynLib.cpp
line:82
^ Joined: 23 Jun 2006  Member: #111284  
ddummer
KVRian
- profile
PostPosted: Thu Oct 05, 2006 6:19 am reply with quote
I downloaded the plug and tested it in EnergyXT with my ATI Radeon 9550 card.

Yes he complained about missing the d3dx9_29.dll..
Googled and found out that my DirectX 9.0c does not include all 3d files.
Downloaded version 29 d3dx files and installed.

http://www.shdon.com/view?doc=d3dx

WORKS!

As I said, I'll design interfaces and help you out in any way I can for free!
This is HUGE!

//Daniel Smile
^ Joined: 12 Jul 2002  Member: #3306  
marce
KVRian
- profile
- pm
- e-mail
- www
PostPosted: Thu Oct 05, 2006 7:08 am reply with quote
a common tweak for daws is tu turn video hardware acceleration off... Do the use of the GPU have any impact on the desktop video output, or the GPUs are only used for 3d games?
Sorry my ignorance
^ Joined: 15 Dec 2004  Member: #51716  Location: Argentina
zeoy
KVRAF
- profile
- pm
- www
PostPosted: Thu Oct 05, 2006 7:32 am reply with quote
ddummer wrote:
I downloaded the plug and tested it in EnergyXT with my ATI Radeon 9550 card.

Yes he complained about missing the d3dx9_29.dll..
Googled and found out that my DirectX 9.0c does not include all 3d files.
Downloaded version 29 d3dx files and installed.

http://www.shdon.com/view?doc=d3dx

WORKS!

As I said, I'll design interfaces and help you out in any way I can for free!
This is HUGE!

//Daniel Smile


Hey Nils, I did what ddumer suggested, loaded fine now in Tracktion (still same old ATI 9200) but no sound. Maybe that PixelSHader's missing here.
----
If I go insane, please don't put your wires in my brain
^ Joined: 07 May 2004  Member: #24383  Location: Athens, Greece
Reply to topic KVR Forum Index » Effects All times are GMT - 8 Hours

Printable version
Page 1 of 32
Goto page 1, 2, 3 ... 30, 31, 32  Next
Display posts from previous:   
Post new topic
Previous Topic
Next Topic
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Disclaimer: All communications made available as part of this forum and any opinions, advice, statements, views or other information expressed in this forum are solely provided by, and the responsibility of, the person posting such communication and not of kvraudio.com (unless kvraudio.com is specifically identified as the author of the communication).