Hi all, I’ve got a kind of high level question about reverb that I’m looking to solve. I basically want to add a simple, single-knob reverb to my plug-in that will 1) introduce more reverb and 2) lengthen the decay of the reverb. The Reverb class in the DSP module was my first attempt, though I don’t love the sound of it, and it doesn’t get as long as I’d like.
My next thought was to try a Convolution reverb, again using the DSP module, but I’m not sure how one would make a convolution reverb of variable decay length. Has anybody tackled this problem before? I reckon there might be a trick to accomplish this, maybe with using one very long impulse response and manually truncating it somehow, like fading its volume down to 0 at the desired time? In this case, I think I’d have to fully load a “new” impulse response, which makes me a bit wary since I imagine that can be somewhat CPU intensive to do repeatedly.
You could in general use a long IR and fade it according to the reverb time you want, then switch it around. But doing that smoothly AND efficiently is kinda impossible. Any practically viable convolution implementation (typically partitioned fast convolution) is not suited for time varying IRs, so you’ll end up with crackling, or at least crossfading artifacts which will also sound weird (if you introduce some crossfading when switching IRs).
It might be ok depending on what you want the experience to be like. If you can live with some artifacts and changing the reverb time slowly or rarely, or even only when ending the knob gesture (like Logic’s Space Designer does), it’s a viable solution.
However, you’ll probably want an algorithmic reverb. I’m not aware though of other free and ready-to-use algos besides Freeverb (which JUCE uses also). So you might have to prepare for a few months to decades on a quest towards an awesome reverb algorithm.
Appreciate that perspective! I was definitely thinking that adding some kind of smoothing (such as only updating the reverb ~once per second at max or so). My only concern would be if an Ableton or Bitwig user started modulating this and expecting immediate results but… it doesn’t seem like a control you’d want to modulate that much?
This was largely where I settled as well. I see that our friend Valhalla has some tutorials on coding up reverbs, though it might be too much of an investment for a simple one-knob thing
Decisions…