Smoothing out a hard clipper

Hi everyone,

I am trying to build my own limiter for fun. I have two compressors and a hard clipper, just like the stock limiter. I am curious as to why setting the stock compressor with a 100:1 ratio, a 0.03 ms attack, 400 ms release, and a threshold of -1.0 dBFS would not brickwall a signal at -1.0 dBFS. My Pro Tools meters show clipping by several dB when I push a source hard. To achieve the brickwall effect, I then tried introducing the hard clipper, and it does limit the signal to -1.0 dBFS. I find it sounds harsh and distorted, however. I am trying to find a way to smooth out the response of the hard clipper and still not have the level exceed -1.0 dBFS. Is this possible?

Thank you,
Andy

To prevent distortion in brickwall limiters you’ll need to smooth the attack and release times. Release is fairly easy, as it won’t affect the ability to catch all transients. The attack part is more difficult, as you’ve already seen that even with fast attack settings, not all transients will be attenuated.

What you need here is to implement lookahead, i.e. starting the attack phase before the signals exceeds the threshold. You’ll find a couple of threads here on the forum about lookahead limiting.

Note: IIRC, the current JUCE compressor has a little flaw as gain reduction is only calculated for positive peaks. Not sure if it’s fixed already. Without that a fast acting compressor should catch a little bit more

Great! Thank you.

Good to know. Is there a work around for the time being?

You could manually patch this line with auto env = std::abs (inputValue);

1 Like