Hello everyone,
I happened to use Renoise in more live situations.
With a real-time-kernel and a good audio interface I can work with descent ~3ms on Linux.
To overcome the nature of added latency when using limiters or compressors, I thought it would be useful to have a 0-latency-limiter.
Signal path:
[SignalFollower] -> [Gainer] -> [Distortion]
What it basically does, is to apply a signal follower on a gainer. That alone wouldn’t really limit the signal in time unless we used the lookahead-feature, which in turn would introduce latency again. So we accept a trade-off to have an initial clipping until the signal follower finally reduces the volume. The clipping is achieved through a distortion effect at the end of the chain. This way we get a zero-latency brickwall-limiting that only distorts in little (hopefully unnoticed) moments.
So what is it good for? Live processing (e.g. guitar, vocals or even a mix) where any added delay is not acceptable and you still want to avoid a lasting distortion caused by loud signals.
Ther doofer’s macro-knobs represent a basic limiter-funtionality: Input gain (pre-gainer), Threshold (Signal follower’s sensitivity), Release and Output (Distortion’s wet-volume).
Zero-latency-limiter.xrdp (7.1 KB)
Here is an updated version with pre- and de-emphasis:
[HiPass] -> [SignalFollower] -> [Gainer] -> [Distortion] -> [LoPass]
The de-emphasis (low-pass) reduces the most audible upper harmonics caused by clipping. The pre-emphasis boosts the same high frequencies as much as the de-emphasis reduces them. So pre- and de-emphasis even out each other whilst the de-emphasis also reduces unwanted sounds.
Zero-latency-limiter.xrdp (12.1 KB)
In the cases I tested so far, this second version does a cleaner job than the stock Maximizer. Without any latency.