Lookahead Compressor
Posted: Sat Mar 23, 2013 11:24 am
(Rightclick to save)
Example file
Sunsynth module <- updated for SunVox 1.73 final
Demo file
Ever wondered why you just can't do any brickwall limiting in SunVox? With all that multiband and serial compression, still peaks will come through and the master will never sound as 'snappy' as a good limiter would do. Well, you might have noticed that an attack time of zero doesn't really attack immediately in the native compressor. I was going to suggest a lookahead feature for the compressor, just before I remembered that all the wonderful possibilities are at hand already.
Background
A Compressor with a lookahead feature is able to duck the sound earlier than a triggering peak appears. You get virtually an attack time that goes below zero. This is done by delaying the signal that shall be compressed and by sidechaining the compressor with the same, but undelayed, signal. The later a signal arrives at the compressor's normal input, the earlier it will be compressed by its undelayed copy on the sidechain-input. One thing, that we could not do in SunVox, becomes possible that way: Hard Limiting.
Here's how a mastered output looks like with a bunch of Exciters, Multiband Compressors and final Compressors. As you can see, peaks still get through, although we've entered the stage of hypercompression already:
But if we exchange the last master compressor by a Lookahead Compressor, we get a boosted volume and all the peaks are limited:
What is it good for?
The example file shows what exactly the Lookahead Compressor consists of and how it's built. You'll see an Amplifier that is connected to a compressor and to an Echo module. And you'll see that the Echo module is connected to the Compressor, too.
What is happening
The Amplifier feeds the Compressor's sidechianing-input. So there's no latency between the Amplifier (labeled 'Input') and the Compressor's sidechaining input. Furthermore the same Amplifier is attached to an Echo module (labeled 'Lookahead') and this Echo module is attached to the Compressor's normal input. The Echo module is used to add latency. So between the Amplifier and the Compressor's normal input, there is some latency. In this example I've set it to 2 ms as I found it works best for hard limiting. Now, whenever a peak from the Compressor's sidechaining-input exceeds its threshold, the delayed signal will be attenuated. As an example, a bassdrum reaches the sidechaining-input first and 2 ms later it will arrive at the compressor's normal input. This way the normal input will be ducked/attenuated earlier. That is by the time the peak arrived at the sidechining-input. That's looking ahead. The compressor knew what was gonna happen before it actually happened.
The demo file
This time the bypass feature is in the demo file, where you can simply unmute the "COMPARE" DSP. Doing this, you'll exchange the Lookahead Compressor by a usual Compressor. You'll notice how the usual Compressor sounds quieter and still its peaks lead SunVox's master output into clipping. Muting the "COMPARE" DSP again, you'll see how a song (well, just a pattern) is being played back together with a complete mastering chain at full loudness. If you feel like, render out the song and see how a maximized waveform appears in your audio editor.
The SunSynth module
The SynSynth module offers all the controls of a usual Compressor plus one for the lookahead feature. Since the inner compressor's side-chaining input is occupied now, it won't be available for anything else anymore (and Metamodules don't route different inputs through anyway). You might notice that these hard limiting configurations have a couple of drawbacks, too. One is the added latency. The earlier you set the compressor to look ahead, the more latency you'll have. That's because the DSP can't look into the future, it'll only buffer the sound a bit longer and compare it to the past. Another drawback is, when you hear clicks and little distortions using limiting parameters. That's just a natural case as hard limiting means that you accepting some distortion to guarantee a specified limit. Luckily we are able to change the attack an release time here. One of my tricks is to compress dull parts with soft parameters and bright parts with hard parameters. By automating the Compressor through the timeline. The idea is, that you won't hear the clipping artifacts in bright moments anyway.
Feel free to respond or to ask any questions.
Thanks for reading and downloading.
gilzad
edit: Updated the metamodule to use the new and improved native compressor. Very reliable and a much better quality now.
Example file
Sunsynth module <- updated for SunVox 1.73 final
Demo file
Ever wondered why you just can't do any brickwall limiting in SunVox? With all that multiband and serial compression, still peaks will come through and the master will never sound as 'snappy' as a good limiter would do. Well, you might have noticed that an attack time of zero doesn't really attack immediately in the native compressor. I was going to suggest a lookahead feature for the compressor, just before I remembered that all the wonderful possibilities are at hand already.
Background
A Compressor with a lookahead feature is able to duck the sound earlier than a triggering peak appears. You get virtually an attack time that goes below zero. This is done by delaying the signal that shall be compressed and by sidechaining the compressor with the same, but undelayed, signal. The later a signal arrives at the compressor's normal input, the earlier it will be compressed by its undelayed copy on the sidechain-input. One thing, that we could not do in SunVox, becomes possible that way: Hard Limiting.
Here's how a mastered output looks like with a bunch of Exciters, Multiband Compressors and final Compressors. As you can see, peaks still get through, although we've entered the stage of hypercompression already:
But if we exchange the last master compressor by a Lookahead Compressor, we get a boosted volume and all the peaks are limited:
What is it good for?
- Brickwall Limiting / Hard Limiting - Applying this, you can avoid that single peaks of your tune steal your headroom.
- Less risk of clipping - If you'd render a song in SunVox, you'd usually choose a safe output volume that would be rather quiet. Else you'd risk to have a distortion at some arbritrary point. The limiter avoids clipping even at high loudness.
- Closer to final mastering - In competitions, where internal Maximizers or Hard Limiters make songs sound richer, you won't stay behind with SunVox anymore. Talking from a design perspective, not encouriging you to join the Loudness War.
- Punchy sound - Especially for electronic music this type of limiting can add some audible punch and pleasant pressure to your song.
- If you choose slow attack times and early lookahead times, then you can save transients in your compression
The example file shows what exactly the Lookahead Compressor consists of and how it's built. You'll see an Amplifier that is connected to a compressor and to an Echo module. And you'll see that the Echo module is connected to the Compressor, too.
What is happening
The Amplifier feeds the Compressor's sidechianing-input. So there's no latency between the Amplifier (labeled 'Input') and the Compressor's sidechaining input. Furthermore the same Amplifier is attached to an Echo module (labeled 'Lookahead') and this Echo module is attached to the Compressor's normal input. The Echo module is used to add latency. So between the Amplifier and the Compressor's normal input, there is some latency. In this example I've set it to 2 ms as I found it works best for hard limiting. Now, whenever a peak from the Compressor's sidechaining-input exceeds its threshold, the delayed signal will be attenuated. As an example, a bassdrum reaches the sidechaining-input first and 2 ms later it will arrive at the compressor's normal input. This way the normal input will be ducked/attenuated earlier. That is by the time the peak arrived at the sidechining-input. That's looking ahead. The compressor knew what was gonna happen before it actually happened.
The demo file
This time the bypass feature is in the demo file, where you can simply unmute the "COMPARE" DSP. Doing this, you'll exchange the Lookahead Compressor by a usual Compressor. You'll notice how the usual Compressor sounds quieter and still its peaks lead SunVox's master output into clipping. Muting the "COMPARE" DSP again, you'll see how a song (well, just a pattern) is being played back together with a complete mastering chain at full loudness. If you feel like, render out the song and see how a maximized waveform appears in your audio editor.
The SunSynth module
The SynSynth module offers all the controls of a usual Compressor plus one for the lookahead feature. Since the inner compressor's side-chaining input is occupied now, it won't be available for anything else anymore (and Metamodules don't route different inputs through anyway). You might notice that these hard limiting configurations have a couple of drawbacks, too. One is the added latency. The earlier you set the compressor to look ahead, the more latency you'll have. That's because the DSP can't look into the future, it'll only buffer the sound a bit longer and compare it to the past. Another drawback is, when you hear clicks and little distortions using limiting parameters. That's just a natural case as hard limiting means that you accepting some distortion to guarantee a specified limit. Luckily we are able to change the attack an release time here. One of my tricks is to compress dull parts with soft parameters and bright parts with hard parameters. By automating the Compressor through the timeline. The idea is, that you won't hear the clipping artifacts in bright moments anyway.
Feel free to respond or to ask any questions.
Thanks for reading and downloading.
gilzad
edit: Updated the metamodule to use the new and improved native compressor. Very reliable and a much better quality now.