“Lookahead” is not the same as “attack”.
The basic principle of a compressor or limiter is that if the signal gets bigger than a specified level, then the effect applies negative gain.
To simplify the description, let’s take a special case where we have an attack time of 1 second, a threshold of -6 dB and an infinite compression ratio. Loosely speaking (not getting bogged down in technical detail), this means that if the input is -5 dB (+1 dB above the threshold), then the compressor/limiter will apply -1 dB of gain, so that the output will be -6 dB. If the input is -2 dB (+4 dB above the threshold) then -4 dB gain will be applied so that the output is -6 dB. The “infinite ratio” means that input above the threshold level will be “limited” so that it does not exceed that threshold level.
The “attack time” is “how long it takes for the compressor/limiter to reduce the gain”. For this example we said that the attack time was 1 second - to make that more precise, let’s say that the attack time is “1 second for a gain change of 6 dB”.
So let’s take a signal that is below the threshold, then suddenly jumps to a constant level of 0 dB. The compressor/limiter will reduce the gain by -6 dB to compensate and bring the level down to the “limit” of -6 dB. The “1 second attack time” means that it will take 1 second to do this. The sudden increase of the input signal to 0 dB will initially produce an output of 0 dB, but the effect will respond by reducing the gain, so the output level will be reduced over a period of 1 second until it is at the “limit”.
Obviously this is not good if we are trying to keep the peak level below a certain level. There are two ways to combat this problem.
One method is to reduce the “attack time”.
If we use a very short attack time, then as long as the input level does not rise too quickly, the limiter will be able to keep up and adjust the level fast enough to prevent the output from exceeding the specified level.
There are two problems with this method:
- If the attack time is too short, then waveforms above the threshold level will be deformed (as described by Robert). The extreme example of this is that an attack time of zero will produce hard clipping.
- If the attack time is not short enough, sudden peaks may exceed the specified level because the compressor/limiter does not respond fast enough.
The other method is to use “lookahead”.
With this method, the level detector “looks” at the input signal in advance of playing/processing it.
To take Roberts description of a “gain envelope”, the envelope is time shifted a bit earlier so that when a peak approaches, the effect will start to reduce the gain in anticipation of the peak. When the peak arrives, the gain has already been reduced so that the level of the peak does not exceed the specified level. The amount that the envelope is shifted is called the “lookahead”.
In our previous example of an attack time of 1 second; If the lookahead is also 1 second, then the limiter will start to reduce the gain 1 second before the peak arrives, By the time that the 0 dB signal arrives, the gain has already been reduced by -6 dB, so that the output level does not exceed the specified level.
Both of my limiter plug-ins use “lookahead” to ensure that the level does not exceed the “limit”. The attack time is quite short, but is long enough that there will be little harmonic distortion of frequencies above 20 Hz.
Let’s say that you have a high level, low frequency (bass) sound and we don’t use “hold”.
What will happen is that (with lookahead) the gain will reduce in anticipation of the start of the sound.
Because it is a low frequency sound, the limiter will tend to track the individual waveform peaks, causing a rapid “fluttering” of the gain level. This is undesirable because it distorts the waveform.
Take another example - let’s say that there is a drum roll. Each hit on the drum has a high peak and then the level drops rapidly before the next hit. If we don’t do something clever the gain will be fluttering up and down with each strike, substantially changing the sound of the drum roll.
One way that we can partially address this issue is to use a fairly slow release time so that after each peak the gain returns to “normal” (unity gain) fairly slowly. The problem with this approach is that unless we use an excessively slow release time the gain will still be fluttering (though less so than with a fast release time).
Another way that we can deal with this problem is that when the gain is reduced, it is prevented from rising again for a short period - it is “held” at that level for a short while before the gain is allowed to rise again. This is the “hold” setting. With a hold time of 10 ms, when the gain is reduced it cannot rise again for at least 10 ms, thus preventing fluttering. This does not affect the attack of the limiter. If an even higher peal is encountered, the limiter can still reduce the gain further without waiting for the “hold” time. The “hold” time just defers the release. The “recovery time” for the limiter (not specified in the GUI) is a combination of the hold time and the release rate.