It's perhaps worth explicitly point out that both choices result in garbage, but saturating at least is a bit less likely to destroy everyone's ears. So it's not really done "because it sounds better" as much as "because it sounds slightly less terrible." If you're running out of dynamic range you're getting garbage either way, but there still a case to be made for trying to minimize the damage.rafa1981 wrote: Wed Feb 25, 2026 8:11 pmIt's more possible that you are confusing saturating integer arithmetic (as many fixed point DSP have, and I assume these units too) with (soft?) saturation. This saturation is a side effect of doing a fixed point implementation, as letting the integers wrap around results in garbage. You have to have it. It's not optional, specially with low resolution accumulators (20 bit?).j wazza wrote: Wed Feb 25, 2026 12:50 pmAgain, you're confusing the relab lx480 with the lexicon 480l that the relab emulates. Relab discuss the saturation in their ...
Soft clipping or compression in reverbs
- KVRAF
- 8505 posts since 12 Feb, 2006 from Helsinki, Finland
-
- KVRian
- Topic Starter
- 798 posts since 5 Oct, 2020
You kept referring to the 480l as the lx480, either that or you were disagreeing with what relab says about their own product.rafa1981 wrote: Wed Feb 25, 2026 8:11 pmIt's more possible that you are confusing saturating integer arithmetic (as many fixed point DSP have, and I assume these units too) with (soft?) saturation. This saturation is a side effect of doing a fixed point implementation, as letting the integers wrap around results in garbage. You have to have it. It's not optional, specially with low resolution accumulators (20 bit?).j wazza wrote: Wed Feb 25, 2026 12:50 pmAgain, you're confusing the relab lx480 with the lexicon 480l that the relab emulates. Relab discuss the saturation in their ...
I have looked at the product. My guess is that they aren't adding the arithmetic saturation, but letting the algorithm run with higher headroom accumulators (e.g. 32 bit) to remove it, as it might be undesirable most of the time.
But you seem very convinced that saturarions inside reverbs (decorrelators) are good. Let me reframe this: digital reverb is a very mature field, why would putting waveshapers inside reverbs be a novel idea? Everyone here has tried that already and if you don't belive what I (or we) are saying you can just try it yourself.
The point of the thread was to ask about saturation in reverbs and share what i found from open source reverbs. I never said it was a novel idea, I talked alot about existing reverbs that do it. Don't put words in my mouth. I also didn't say saturation in reverbs is always good or always bad. Again, stop putting words in my mouth so you can make yourself feel smart. The relab and airwindows reverbs sound good, I'm sure lots of other reverbs use saturation, and some of the open source reverbs I looked at have no saturation and still sound good.
I dont want to argue with you anymore so im muting you. You should start your own thread if you just want to argue.
- KVRAF
- 16866 posts since 8 Mar, 2005 from Utrecht, Holland
If the saturation threshold is -2dBfs and you feed it a (imho) healthy -20dBfs RMS signal, then it's a moot thing.
We are the KVR collective. Resistance is futile. You will be assimilated. 
My MusicCalc is served over https!!
My MusicCalc is served over https!!
- KVRAF
- 8505 posts since 12 Feb, 2006 from Helsinki, Finland
This is a technical forum where we "argue" technical topics. That's pretty much the value of the forum. You are free to disagree with people's opinions.j wazza wrote: Wed Feb 25, 2026 9:25 pm I dont want to argue with you anymore so im muting you. You should start your own thread if you just want to argue.
You can put a saturation inside a reverb, but as rafa1981 points out, most of us that have actually tried writing a reverb have tried that and many of us have concluded that it's actually not very interesting. There are some plugins that do saturation in a reverb, but it's not something that typically happens in a natural reverb unless your microphones/pickups and/or the amplifiers involved actually cause saturation.
I would also like to point out that when it comes to reverb, discussing in "general terms" is a bit difficult, because depending on the exact reverb architecture the effect of putting something inside the loop can vary a lot. For example, if you want the classic dreamy chorusy reverb, you'll typically need to do it with an all-pass figure-8 or similar reverb architecture where the loop delay is sufficiently long, as in a faster mixing (eg. FDN) reverb you'd typically end up too dense modulation and the whole thing degrades into more of a noise spread. That's not necessarily a bad effect either, but it's a different effect.
The most difficult part of writing a good sounding reverb though is getting the core LTI algorithm right. Simply learning what to listen to in your own designs in order to spot problems can take months if not years of practice. In the process, you will start to hate every algorithmic reverb out there. Once you have a good sounding LTI reverb, you can then experiment with different things (modulation, saturation) to see if you can get something interesting out of them.
-
- KVRian
- Topic Starter
- 798 posts since 5 Oct, 2020
People are free to say their opinions but he is very argumentative. Healthy debate and disagreement like you have been doing is fine but he has a bad attitude. He complains about music being a democracy, put words in my mouth i didnt say, thinks he knows better than relab about what is in their own product, implied i dont know anything about audio despite building my own reverb, looks for things to complain about such as the topic shifting from soft clipping to hard clipping being 'moving the goalposts' and just generally only caring about trying to make himself feel smart. I'm free to mute people like that as I don't want to waste my energy arguing with obnoxious strangers such as him on the internet.mystran wrote: Wed Feb 25, 2026 9:49 pm This is a technical forum where we "argue" technical topics. That's pretty much the value of the forum. You are free to disagree with people's opinions.
You can put a saturation inside a reverb, but as rafa1981 points out, most of us that have actually tried writing a reverb have tried that and many of us have concluded that it's actually not very interesting.
The most difficult part of writing a good sounding reverb though is getting the core LTI algorithm right.
I have tried writing reverbs like I said, I've been learning about it for years and have an algorithm I like the sound of, which is why I've moved on to trying to learn about finishing touches such as this. Lots of the reverbs I mentioned with saturation sound very good so it's not completely useless. I think there is interesting saturation and uninteresting saturation, and i think both can be used and are often used in all types of plugins for colouring or functional purposes, but there are also many plugins that don't use any saturation
Last edited by j wazza on Thu Feb 26, 2026 4:16 am, edited 1 time in total.
-
- KVRian
- Topic Starter
- 798 posts since 5 Oct, 2020
Yep but when making a reverb you don't know what level input people are going to use, but you could leave it up to the user to gain stage themselvesBertKoor wrote: Wed Feb 25, 2026 9:40 pm If the saturation threshold is -2dBfs and you feed it a (imho) healthy -20dBfs RMS signal, then it's a moot thing.
- KVRAF
- 8505 posts since 12 Feb, 2006 from Helsinki, Finland
For what it's worth, I think in the past I've usually had my plugins do a nasty digital hard clip at around +100dBfs (or so) just to avoid running into infinities if the plugin for some reason gets fed a ridiculously loud signal (eg. even actual infinities if something earlier in the signal chain blew up).j wazza wrote: Wed Feb 25, 2026 10:29 pmYep but when making a reverb you don't know what level input people are going to use, but you could leave it up to the user to gain stage themselvesBertKoor wrote: Wed Feb 25, 2026 9:40 pm If the saturation threshold is -2dBfs and you feed it a (imho) healthy -20dBfs RMS signal, then it's a moot thing.
You're not really ever supposed to run into these limits, but it's nice to have because if you ever turn a float into an index for memory access and rely on math to keep you out of bounds and the float happens to be an infinite or NaN and your math no longer works out you might access arbitrary memory and crash things... and it's better to avoid that even if the actual audio won't be useful either way.
-
- KVRian
- Topic Starter
- 798 posts since 5 Oct, 2020
Ok I've looked into this and just to spell it out for people who are interested:mystran wrote: Wed Feb 25, 2026 10:43 pm For what it's worth, I think in the past I've usually had my plugins do a nasty digital hard clip at around +100dBfs (or so) just to avoid running into infinities if the plugin for some reason gets fed a ridiculously loud signal (eg. even actual infinities if something earlier in the signal chain blew up).
You're not really ever supposed to run into these limits, but it's nice to have because if you ever turn a float into an index for memory access and rely on math to keep you out of bounds and the float happens to be an infinite or NaN and your math no longer works out you might access arbitrary memory and crash things... and it's better to avoid that even if the actual audio won't be useful either way.
If you process in 16db integers there's no headroom above 0db, and if you go over that you get wraparound, where the volume jumps to the lowest negative value, so plugins like cloudseed use a hard clamp at 0db to avoid that.
In 32 bit floating point you get about +770db of headroom, and if you go over that you can get an infinity. Doing calculations with infinity can cause NAN (not a number). It's rare it would ever go over that but mystrans safety net is a good idea. You will still get clipping at 0db if you bounce your tracks that go over that and play the files, but if you bounce in floating point then clipping is non destructive and you can lower the gain later. It's good gain staging to get the levels right earlier than that at the source of each track, but you don't need to hard clamp at 0db like you do with ints. Some plugins emulating old dsp might do this anyway, or they might use a softer clip because hard clamping sounds bad, although it would make it less accurate.
- KVRAF
- 8505 posts since 12 Feb, 2006 from Helsinki, Finland
Something I want to point out is that if you're processing a reverb with 16 bit integers, the clipping is the least of your problems. Depending on the algorithm with longer decays, you can run into problems even with single precision floats where you just can't get a smooth decay because you run out of precision as the signal circulates and is repeatedly multiplied by values close to one. If you're going to be using fixed point, then 32 bits is pretty much the absolutely minimum you can reasonably work with, unless you specifically limit yourself to algorithms that are very tolerant of rounding errors.
-
- KVRian
- 1119 posts since 4 Jan, 2007
I concede that I'm not the most exemplary human being, but I self quote myself:
I consider myself bottom barrel of intelligence of the people that post here, probably low 5%, so nothing to prove for me.
This quote was pretty obvious, at least to me, who was targeted to. One of his very old Consoles with dynamic waveshapers once blew my ears (no long term damage thankfully). I have proved on this forum on BitshiftGain and BitshitPan being harmful (workflow) or the floating point dithering being useless and he never retired them to avoid affecting its users negatively. I don't hate the guy but anyone that has read the code knows where I'm coming from.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.
I consider myself bottom barrel of intelligence of the people that post here, probably low 5%, so nothing to prove for me.
-
- KVRist
- 68 posts since 17 Oct, 2003
Unless you want to combine reverb with compression, distortion etc. to make it sound special, you just need:
- an input attenuation knob, which is enough to allow gain staging without depending on the signal source
- hard clipping of outputs, to guarantee that they aren't too bad
- hard clipping of inputs, to ensure that internal calculations don't overflow and don't lose too many digits.
-
StrangeSatellite StrangeSatellite https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=543781
- KVRer
- 29 posts since 21 Dec, 2021
A properly designed reverb algorithm doesn't require this as it should output the same energy as is put into the system, hence the use of Schroeder Allpass filters that shift phase and smear transients, but don't add or subtract any frequencies from the signal.
-
- KVRian
- 1119 posts since 4 Jan, 2007
Captain obvious (TM) message that at the end I was about not to post, but I have it written already 
As a note; and this is also far fetched, but for floating point to floating point one can get "Inf" as input. "Inf" won't decay when multiplied. Perfectly reasonable still not to handle it anyways and assume some sanity at the input. This is splitting hairs.
Probably right for the general case. It's required if going from an analog signal to fixed point (hardware), floating to fixed point (e.g. an emulation) and probably some cases of different fixed point depths (veeeeery far fetched, I know).StrangeSatellite wrote: Mon Apr 06, 2026 11:22 pm A properly designed reverb algorithm doesn't require this ...
As a note; and this is also far fetched, but for floating point to floating point one can get "Inf" as input. "Inf" won't decay when multiplied. Perfectly reasonable still not to handle it anyways and assume some sanity at the input. This is splitting hairs.
- KVRAF
- 8505 posts since 12 Feb, 2006 from Helsinki, Finland
I'd actually disagree the "it should be allpass" idea, because it's really difficult to make an algorithm that is truly allpass and sounds good. The big problem is that you will need different ranges of frequencies decay at different rates... and then because you don't actually want the faster decaying frequencies to be really loud in the early reverb, you'd need to EQ them down anyway.rafa1981 wrote: Wed Apr 15, 2026 6:57 am Captain obvious (TM) message that at the end I was about not to post, but I have it written already
Probably right for the general case. It's required if going from an analog signal to fixed point (hardware), floating to fixed point (e.g. an emulation) and probably some cases of different fixed point depths (veeeeery far fetched, I know).StrangeSatellite wrote: Mon Apr 06, 2026 11:22 pm A properly designed reverb algorithm doesn't require this ...
The "damped all-pass loop" approach where you build a lossless loop (or FDN, whatever) that can theoretically recirculate the signal forever and then just damp it to taste is usually the preferrable approach for at least the "late reflections tank." Really the only downside with this approach is that it becomes a little difficult to estimate the levels.
What makes things even worse though is that in practice you almost always want more energy output from a longer (slower decaying) reverb. I forgot exactly what I've done in the past, but I think I might have used the square root of the analytic gain (at mid frequencies, so ignoring frequency dependent losses) for compensation in order to try and make a "reverb time" knob feel more less natural in terms of what happens with the loudness of the reverb.
