Soft clipping or compression in reverbs

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Im looking for advice about clipping in reverbs, and wanted to share what I've found so far.

I'm wondering if I should use soft clipping or compression/saturation in a reverb, not for colour, but just to avoid hard clipping, and where in the reverb the clipping should go, and transparent soft clipping algorithms to use for this.

I couldn't find much information about this in papers or on forums, so I looked at some open source code:
  • Cloudseed uses hard clamping inside the reverb, as well as reducing input levels for headroom and then boosting later
  • Airwindows reverb has a sin waveshaper on the input, and then asin on the output, the inverse of sin, which undoes the clipping, but not perfectly as the reverb is in between.
  • I also saw that arturia's rev intensity has optional soft clipping on the output.
They all sound good, so maybe there are no rules about this.

I've tried tahn, arctan, and some of the soft clipping algorithms from this paper such as variable tahn:

Code: Select all

y = tahn(cx)/tahn(x).
Would soft clipping with a threshold be better? Or compression, limiting etc?

Regarding where the soft clipping should go, was thinking it could be good to softclip either:
  • in the summing mixer of input + feedback, as the reverb can clip when summing here even with unitary feedback
  • in the main loop or in an allpass's feedback, but if they are unitary and have a flat amplitude response it might not be needed, and allpasses can reduce dynamic range by spreading the peaks over time
  • maybe just on the output, as i think the internal headroom of 32 bit floating point might mean we don't need to clip it before, but I'm not sure, as we might need to hard clamp the feedback to ensure safety, which could mean we get nasty clipping before it reaches the soft clipper
Or should you just leave it up to the user to set levels so that it doesn't hard clip? So we can get a cleaner sound without soft clipping. Putting a soft clipper before the loop or in the loop magnifies the soft clipping but in can be more subtle on the output. Or maybe we should decrease the input levels for more headroom, and then boost again later like cloudseed does.

I have used commercial reverbs that can hard clip but in good plugins it's usually less nasty than naive hard clipping and pro plugins usually have a slightly thick sound that could be from subtle compression/saturation.

Any advice or discussion would be appreciated!

Post

If you're processing in floats there's usually no need to in a reverb at all.

Post

*everything following is from a hobbyist so is likely not very reliable, only commenting because there hasn't been much response*

Having not used a reverb that causes clipping I can only guess at that, but in the (very simple) ones I've toyed with, I wasn't adding anything to the dry signal, the wet/dry mix meant I was always at (or below) original input levels

Post

mystran wrote: Sat Feb 21, 2026 7:19 pm If you're processing in floats there's usually no need to in a reverb at all.
Thanks! That's good to know it's not needed, so it's completely optional

I think cloudseed used ints which is probably why they use the extra headroom and hard clamping

it could still be used for colour or more smooth-sounding dynamics that won't go into hard clipping. I'll keep experimenting with it. Have been trying thresholded clippers, sigmoids and erf function and it sounds a bit better

Post

torgover wrote: Sat Feb 21, 2026 11:50 pm *everything following is from a hobbyist so is likely not very reliable, only commenting because there hasn't been much response*

Having not used a reverb that causes clipping I can only guess at that, but in the (very simple) ones I've toyed with, I wasn't adding anything to the dry signal, the wet/dry mix meant I was always at (or below) original input levels
High input levels can cause clipping, if a reverb always caused clipping it would be a badly made reverb!

But if the input is close to clipping already you can get clipping in a reverb. But it can be avoided with proper gain staging.

It's the wet signal that can clip, as the input needs to be summed with the feedback, and if the input is close to clipping already then summing something with it can make it clip. You can also get positive interferences and resonances in reverbs which could cause this.

It's also possible that reverb can make clipping more obvious if a sound was already clipping, as its easier to hear distortion in longer sustained sounds than in short ones

I have heard reverb plugins clip and had to reduce the input gain, but I think a lot of plugins use soft clipping to avoid noticeable hard clipping, which is what I'm trying to figure out when designing a reverb.

Post

Reverb is generally considered a linear time-invariant (LTI) effect. The moment you start adding saturation, wave-shaping, clipping etc, you're into non-linearities and potential aliasing artifacts.

Post

JustinJ wrote: Mon Feb 23, 2026 2:10 pm Reverb is generally considered a linear time-invariant (LTI) effect. The moment you start adding saturation, wave-shaping, clipping etc, you're into non-linearities and potential aliasing artifacts.
So do you think most reverbs dont have any saturation? And soft clipping is only needed if you want colour from saturation and its not worth the aliasing etc otherwise? Maybe filtering is enough and clipping isn't needed. I think a lot of plugins of all kinds do have some subtle saturation that gives them a polished sound, a lot of plugins change the sound slightly just from turning them on with everything at 0, and dont null perfectly, but maybe using a bit of saturation inside a filter would be better than instantaneous clipping and the distortion and aliasing that comes with that

Post

j wazza wrote: Tue Feb 24, 2026 3:47 am
JustinJ wrote: Mon Feb 23, 2026 2:10 pm Reverb is generally considered a linear time-invariant (LTI) effect. The moment you start adding saturation, wave-shaping, clipping etc, you're into non-linearities and potential aliasing artifacts.
So do you think most reverbs dont have any saturation?
Some might provide it as an effect (or perhaps clip out of necessity for fixed point processing; expect this to sound bad when it happens), but if you actually try putting one inside a reverb you'll probably discover it's actually not that interesting. The more common deviation from LTI is to add some sort of modulation (sometimes so subtle that it's not necessarily obvious), because this actually tends to make a reverb sound "sweeter."

Real life reverb is theoretically quite close to LTI unless there's something moving in the space. If there is movement then the response will change slightly (or even drastically if you start moving walls of a room or something) over time.

Post

mystran wrote: Tue Feb 24, 2026 4:16 am Some might provide it as an effect (or perhaps clip out of necessity for fixed point processing), but inside a reverb it's not that interesting. It's more common to add modulation because this makes a reverb sound "sweeter."

Real life reverb is theoretically quite close to LTI unless there's something moving in the space.
Yeah I haven't made it sound good in a reverb loop yet, but outside the loop it can sound OK.

Hardware emulation reverbs likely have saturation, maybe in the loop, but it can also be used subtly for smoothing things, like the airwindows one, you can't really hear the saturation. But most of the smoothness should come from the diffusion/echo density, filtering and modulation

I've looked at more open source reverbs, Sinuslabs reach has a limiter with a bit of attack and release. And optional distortion as an effect. The reverb is from the faust library, jpverb. The faust reverbs dont have soft clipping.
Greybox Sg 323 uses bitcrushing and adds noise. I'm running out of open source reverbs to look at but there are a few more

About them being LTI, I think wind and the instrument player moving would happen alot and cause subtle delay modulation, but modulation is mostly a trick to avoid feedback patterns in the delays instead of modelling the physics
Last edited by j wazza on Tue Feb 24, 2026 8:23 pm, edited 2 times in total.

Post

j wazza wrote: Tue Feb 24, 2026 7:47 pm About them being lti, I think wind and the instrument player moving would happen alot and cause subtle delay modulation, but modulation is mostly a trick to avoid feedback patterns in the delays instead of modelling the physics
There won't really be very much of "modulation" as such in real spaces unless large objects are moving very fast, but the echo pattern will certainly change.

That said, usually when a bit of modulation is done with algorithmic reverbs it's more so because it helps hide defects like inadequate echo density or modal clustering, but also because it just sort of sounds nice even if it's unrealistic (trying your modulation scheme with a piano sound is one of the easier ways to get a feel for whether it's actually as subtle as you might think).

Post

You get it wrong with "analog emulation reverb". "Analog" reverbs are plates, springs and rooms. Physical phenomena.

The sg323 might be trying to emulate a fixed point reverb (the low effort way if it's just bitcrushing, instead of coding it fixed point).

The democratization of audio brings some people with no audio knowledge but with money to spend to the field, akin to high-end audio, so that a product or Patreon dev does something doesn't need to imply more that it's useful for anything more than his purposes: getting money.

Old digital reverbs had hard clipping due to the fixed point arithmetic.

Notice that if you aren't placing the fx inside the reverb loop then they are no better than an insert effect. One can put an eq or transient shaper before, a compressor afterwards, etc. That IMO doesn't count as part or the reverb. It's not useless, but in strict terms is just an fx in series.

PS: And now the democratization of building plugins is coming too...

Post

mystran wrote: Tue Feb 24, 2026 8:08 pm
j wazza wrote: Tue Feb 24, 2026 7:47 pm About them being lti, I think wind and the instrument player moving would happen alot and cause subtle delay modulation, but modulation is mostly a trick to avoid feedback patterns in the delays instead of modelling the physics
There won't really be very much of "modulation" as such in real spaces unless large objects are moving very fast, but the echo pattern will certainly change.

That said, usually when a bit of modulation is done with algorithmic reverbs it's more so because it helps hide defects like inadequate echo density or modal clustering, but also because it just sort of sounds nice even if it's unrealistic (trying your modulation scheme with a piano sound is one of the easier ways to get a feel for whether it's actually as subtle as you might think).
Yeah, I guess even without anything moving, as the sound bounces around the room the echo patterns will always be changing, never repeating like with feedback delays, so modulation kind of makes up for that, and it's also nice as a chorus effect

Post

rafa1981 wrote: Tue Feb 24, 2026 8:15 pm You get it wrong with "analog emulation reverb". "Analog" reverbs are plates, springs and rooms. Physical phenomena.

The sg323 might be trying to emulate a fixed point reverb (the low effort way if it's just bitcrushing, instead of coding it fixed point).
I should have said hardware reverbs, not analog reverbs, but digital with analog converters giving them some saturation and a more analog sound than an itb reverb. That said, emulations of analog reverbs like springs also exist

Post

rafa1981 wrote: Tue Feb 24, 2026 8:15 pm PS: And now the democratization of building plugins is coming too...
That happened ages ago with SynthMaker and similar. I wouldn't worry about it too much.

Post

j wazza wrote: Tue Feb 24, 2026 8:23 pm I should have said hardware reverbs, not analog reverbs, but digital with analog converters giving them some saturation and a more analog sound than an itb reverb. That said, emulations of analog reverbs like springs also exist
DAC/ADC converters don't usually suffer from "saturation" (in the musical sense; they certainly have limited dynamic range, but you'd expect hard clipping and just about any defect makes them sound less analog and more bad; the biggest issue might often be noise though) and there's nothing really analog about them either.

Post Reply

Return to “DSP and Plugin Development”