Cuda convolution reverb (Reverberate LE)

VST, AU, AAX, CLAP, etc. Plugin Virtual Effects Discussion
RELATED
PRODUCTS

Post

Let's see if the new version will work fine. With previous ver I've got a message about old drivers, though I had exactly the same ver the plugin was asking about.

Post

mac???

Post

space designer.....

http://www.rhythminmind.net/presetblog/ ... pulse-sets


"just say no"

:hihi:
ttoz wrote:mac???

Post

i'd LOVE a convo verb not processed on the cpu!!

space designer is fairly light though...

it seems you can't combine the algorithmic verb and the convolution though, it's one or the other.

mind you there is no point buying any other convo verb cause it reads all convo files well. the only one that might be worth it is altiverb for it's library. That's what it comes down to isn't it, a convo verb is only as good as it's library

Post

Regarding the mac GPU issue: I am waiting on OpenCL and Snow Leopard to see what I'm going to do with a mac GPU version. Cuda may not be the way forwards.

Regarding the mac in general: Space designer is such an excellent plugin and Logic is so cheap (relative to the price of Apple hardware) that I am not sure there is need for another convolution reverb on that platform. If others disagree, I'd be interested to know.

Regarding the IR libraries: There are so many good free impulse sets out there (such as http://www.rhythminmind.net/presetblog/ ... pulse-sets as linked to earlier) that I feel there is space for a really low cost convolver (mine is going to be free or donationware) for use with these libraries.

I started this project because I didn't want to spent 100 euro or more on a proper convolution reverb given the technology is getting on a bit now and there are so many good presets out there.

I ended up doing a Cuda version because it looked fun. Though to be honest, the CPU version is so efficient that I think it might be the best way forwards unless people are really willing to accept the high latencies (I know I'd rather not). That's with current GPU generations at least, I plan to keep my eye on developments.

Post

First off, let me just say that I love the concept of a CUDA version of your plug-in and I love all the features you've put into it. Unfortunately, I have to agree that there doesn't seem much point to it when the CPU version itself uses so little power. Also, I couldn't get the GPU version below 2048 sample without getting distortion, whereas the CPU version works fine at 512 and still doesn't use much power.

Has anyone else noticed that both versions of the plug-in are very easy to distort? To put it another way, I found it difficult NOT to get distortion with gain anywhere above -20. SIR works much better in this regard. I'd really love to see an SIR-style browser, as well.

Post

Uncle E wrote:First off, let me just say that I love the concept of a CUDA version of your plug-in and I love all the features you've put into it. Unfortunately, I have to agree that there doesn't seem much point to it when the CPU version itself uses so little power. Also, I couldn't get the GPU version below 2048 sample without getting distortion, whereas the CPU version works fine at 512 and still doesn't use much power.
I tend to agree with you, the CPU version beats the GPU version for me too, though I was hoping somebody with a beefier card than I (a lowly GT8600) might be able to contribute since it might be that more powerful cards would perform better. What did you test it on? I'm treating the GPU Edition as a research and development effort for the time being :) I'm very pleased with the CPU version utilisation.
Uncle E wrote:Has anyone else noticed that both versions of the plug-in are very easy to distort? To put it another way, I found it difficult NOT to get distortion with gain anywhere above -20. SIR works much better in this regard. I'd really love to see an SIR-style browser, as well.
Thanks a lot for this feedback. I've modified things slightly having taken a little SIR-style inspiration. It seems that a lot of IRs are very loud compared to my presets, and SIR automatically selects around 20dB attenuation on the wet path by default after IR normalisation. Changes I've made to address your points:

1) I've now got an auto-normalisation feature so that different IRs all get normalised to maximum amplitude, this helps keep levels consistent between different presets from different resources.

2) I've changed the gain/mix knobs to dry/wet gain and fiddled with the parameters a bit to make selecting a desirable wet and dry gain range easier and have set up better default settings for normalised IRs.

Personally I'd never liked the SIR browser, so I'm going to pass on that one :) Thanks again for the feedback.

An updated version is online now.

Post

liquidsonics wrote:I tend to agree with you, the CPU version beats the GPU version for me too, though I was hoping somebody with a beefier card than I (a lowly GT8600) might be able to contribute since it might be that more powerful cards would perform better. What did you test it on? I'm treating the GPU Edition as a research and development effort for the time being :) I'm very pleased with the CPU version utilisation.
My card is a GTX 280 with 898MB RAM. If you can get the latency down on it, I can see the point of using it, but it's honestly pointless as it is. :-/
1) I've now got an auto-normalisation feature so that different IRs all get normalised to maximum amplitude, this helps keep levels consistent between different presets from different resources.
Great!!!
2) I've changed the gain/mix knobs to dry/wet gain and fiddled with the parameters a bit to make selecting a desirable wet and dry gain range easier and have set up better default settings for normalised IRs.
Great!!!
Personally I'd never liked the SIR browser, so I'm going to pass on that one
No worries, I understand. Perhaps a better execution is Native Instruments' sample selector in Battery: once you select the sample there, you can easily scroll through different samples in the same folder using Left and Right buttons.

Post

Uncle E wrote:My card is a GTX 280 with 898MB RAM. If you can get the latency down on it, I can see the point of using it, but it's honestly pointless as it is. :-/
I've been looking forward to somebody with a top-end card responding :) So a few more questions:

- Are you using XP or Vista? XP is a lot better with the current Cuda drivers for my purposes due to the WDDM mechanism Vista uses. I know that's not such a great outlook as W7 approaches but I can understand why MS made the changes (better system stability mainly), but some of the side effects are unfortunate for the GPU community.
- If you set the GPU latency at 512, can you run any instances at all?
- When you're getting breakup of the audio at lower latencies, how long are the IRs you're using? I can't run long-ish (a few seconds) IRs at 512 samples but I thought that was due to my older gfx card with it's low internal memory bandwidth (since the system is memory bandwidth rather than processing constrained), but maybe not...
- What's the CPU usage like on a few simultaneous GPU instances at low and high latencies?
- What CPU are you using? On a core 2 or i7 the CPU version just flies through the work as SSE is really cool :)
- What ASIO buffer size are you using? I don't think it makes any difference really but I may as well ask. Works for me down to 64 samples (my card can't go lower).
- When you said distortion in your firts post were you referring to the audio breaking up, like stuttering, as the system struggles to process the audio data in time rather than the excessive amplitude like distortion one gets when the volume on an IR is too high? I think you should find it easier to avoid the amplitude distortion now that I've changed the linear action gain dials to log action ones

I quite like the idea of the little arrows to swap between IRs in the same directory so I might have a go at that.

About it being pointless, well, I think it's interesting to see how Cuda can be applied to audio, and as the technology evolves (I'm reading some interesting stuff on the Nvidia forums which might mean it gets more suitable for audio) I think it's going to be good to be able to keep updating it as time goes on. I think others are also interested in it as a technology due to the success other DSP card solutions have (though with a modern CPU do even they honestly need to be sat on a DSP card, but that's another debate), so I made it available for people to try (and I'm very pleased somebody with the top end card found it). Nils Schneider made the first Cuda convolution reverb but I wanted to integrate it into a fuller plugin and compare it to a similar CPU solution and mess around with latencies (his was fixed at 8192 samples, now I see why) so I coded one up too. It's just not as efficient as the CPU version is right now due to the way Cuda currently works (which might change) and the fact that audio peeps (rightly) prefer to run at low latencies than high ones.

Post

Greetings,

I'm really trying to like IR based reverbs, but I always end up with the same conclusions; they just sound so lifeless and static. I mean this in general, nothing against liquidsonics.

Isn't there really any way to do some artificial modulation effect with IR reverbs? I'm not a programmer, but I understand that with FFT stuff you can do wild things. Would it be possible to slice the IR to different frequency bands and apply some modulation effect to them? Or something.. I think that would definitely add some value GPU based processing that other IR solutions don't have, as we don't have to be concerned about CPU drainage. I don't mean the same stuff that Nebula does, but just "post processing" of the IR.
Any ideas?

cheers

Post

liquidsonics wrote:- Are you using XP or Vista?
XP
- If you set the GPU latency at 512, can you run any instances at all?
It ran but the sound broke up.
- When you're getting breakup of the audio at lower latencies, how long are the IRs you're using?
They were all pretty long, I'll try some speaker cabinet impulses instead.
- What's the CPU usage like on a few simultaneous GPU instances at low and high latencies?
CPU usage? What CPU usage? ;) Seriously, though, both versions of your plug-in are extremely efficient so I really didn't see much change with either one. I'll try running multiple instances and let you know how it goes.
- What CPU are you using?
Q6600 o/c'd to 3.6GHz.
- What ASIO buffer size are you using?
I've been keeping my ASIO buffers high but I'll try to test down to 2ms latency (the lowest my soundcard will go).
- When you said distortion in your firts post were you referring to the audio breaking up, like stuttering, as the system struggles to process the audio data in time rather than the excessive amplitude like distortion one gets when the volume on an IR is too high?
The first. As said, there's no audio break up at higher latencies.
I quite like the idea of the little arrows to swap between IRs in the same directory so I might have a go at that.
That's great! This is universally my favorite way of browsing, from samples to presets, so it'd be great to have it in a convolution reverb. :)
About it being pointless, well, I think it's interesting to see how Cuda can be applied to audio, and as the technology evolves (I'm reading some interesting stuff on the Nvidia forums which might mean it gets more suitable for audio) I think it's going to be good to be able to keep updating it as time goes on.
Agreed! I hope my "pointless" comment wasn't demoralizing in any way, this is really cool stuff and I do think people will respond positively if you're able to get everything worked out. Case in point, Nebula's Cuda implementation has garnered a lot of discussion on Acustica's forum, even back when these cards were much, much more expensive than they are now.

Post

s_t wrote:Greetings,

I'm really trying to like IR based reverbs, but I always end up with the same conclusions; they just sound so lifeless and static. I mean this in general, nothing against liquidsonics.

Isn't there really any way to do some artificial modulation effect with IR reverbs? I'm not a programmer, but I understand that with FFT stuff you can do wild things. Would it be possible to slice the IR to different frequency bands and apply some modulation effect to them? Or something.. I think that would definitely add some value GPU based processing that other IR solutions don't have, as we don't have to be concerned about CPU drainage. I don't mean the same stuff that Nebula does, but just "post processing" of the IR.
Any ideas?

cheers
I agree, so I'm doing some work in this area too, see http://www.liquidsonics.com/software_reverberate.htm which adds some movement to the sound by having two IRs and mixing between them, having a chorus and also having an oversampled EQ with modulation. It's all CPU work (check my FAQ on the contact page to read why). Granted, these are all post effects, but it helps thicken and add movement to the sound, especially having two different IRs panned in different places with different EQ, different envelopes and pre-delay etc. It's not ready yet, but do check back, I'll be opening a beta soon (once I finish off the LE versions) and there are some screen grabs since all the GUI work is mostly done so you can see where I am heading. Your idea of doing some messing and muddling in the frequency domain is interesting, I'll have a think (do you have any more ideas what you would like to see). I *think* the GPU isn't going to offer many benefits here, working in the frequency domain is pretty cheap once you've done the FFT, but who knows what ideas might come up.

To Uncle E:

You could try just snipping the crop window down to a small size to check efficiency using small impulse responses since the plugin only calculates the element of the IR it needs to, so a huge but windowed IR should be more efficient.

Your 'pointless' comment isn't demoralising at all, I understand what you're saying and fundamentally agree. I am going to keep on top of Cuda developments though so it may improve, and am going to look at other applications. I already have a linear phase EQ going on Cuda (check the website if you're interested), but the same argument applies. Regarding Nebula, their application is way more processor intensive so I can see the benefits there, plus I don't think they're as focused on achieving low latency (an ultimate prime goal of mine since my UAD latency really irritates me). I'm doing much doing better at low cpu plus low latency just using a CPU. The follow-on project (Reverberate) gets down to zero latency (true zero, not just an asio buffer size synchronisation fudge that doesn't work with some hosts like FL) without much additional effort, so I'm probably never going to beat that on the GPU.

Post

I tryed it with Phrazor, that usually dont have problems with any plugin i remember, but no luck. I thought i downloaded the wrong version, but it works ok with Cantabile LE and Cakewalk. So here is the report of the errors in Phrazor:

(you need to keep pressed the Enter key, since it gives similar messages at least 50 times)

Image

Post

Thanks for the response,

I'm glad to see you already doing some research to overcome the issues with static impulse responses. I'm looking forward to check out what comes up with the betas you are working with. Actually there is some weird idea in my mind that could add some life to IR reverbs. If it was possible to divide signal with FFT to dozens (even hundreds?) of frequency slices and then modulate the gain of each slice differently. Also left & right channels would be modulated differently. But this is just a concept, I have no idea if it really works. Anyway, I believe the answer will be in FFT. I think adding just a simple chorus after IR won't mix together too well.
Cheers

Post

liquidsonics wrote:...which adds some movement to the sound by having two IRs and mixing between them, having a chorus and also having an oversampled EQ with modulation.
this already exists, it's named nebula, works on CUDA, and eats hundreds or thousands of IRs at once, with and without distortion kernels with a little CPU and GPU impact!

Post Reply

Return to “Effects”