Clipper module prototype
I want to share 2 fresh conclusions I’ve got:
- Hard-clipping sounds bad.
- If hard-clipping sounds good it’s really soft-clipping.
My old opinion was: “Hard clipping sounds better than soft clipping because hard clipping starts later and affect signal for a shorter time”. Now I think I was wrong.
And I did VST clipper plugin just to check idea:
[download VST clipper plugin (windows 32-bit, 64-bit)]
- 4x linear phase oversampling
- 256 samples of latency
- The main signal is not resampled. Only gain reduction signal passes through oversampling stage.
- “Gain” – input gain before clipping. Just set it to +6 dB and see the result!
- “Thresh.” – clipping threshold. I limited maximum value to -0.3 dBFS.
- “Shape” – soft knee shape (A: -6 dB knee, B: -3 dB knee, C: -1.5 dB knee).
- “Hardclip” – due to oversampling imperfection (and Gibbs phenomenon too) output signal can overshoot threshold given. To deal with that the output signal have to be digitally clipped controlling by this parameter:
– “Off” – no output digital clipping is used. Use this value if the threshold is very low or this plugin is not the last plugin in chain (for example it used before brickwall limiter to reduce pumping effect).
– “Thresh+” – output digital clipping has threshold +0.2 dB higher than soft clipping threshold but can’t exceed -0.15 dBFS. So if you set clipping threshold to -0.5 dBFS output signal can’t exceed -0.3 dBFS.
– “-0dbFS” – output digital clipping has threshold of -0.15 dBFS regardless of soft clipping threshold.
- “DC.flt” – if “On” the 2nd order high-pass filter for 25 Hz is turned on. Filter works in the beginning of the chain e.g. before clipper. Added just to experiment. I think it doesn’t sound good. BTW, the best high-pass filter I ever heard was in preFIX plugin of Variety of Sound).
- Plugin doesn’t prevent inter-sample peaks to exceed threshold level.
See how soft clipping works in Lavry AD122 converter (see p.18 in [manual]).
Now I should work on slow limiter to limit not signal peaks but signal “body” for upcoming clipper/limiter plugin.