ArticleReference

Levelling and AGC

From the broadcast.audio wiki · Chapter 02 of 9
Part of a series on
Broadcast audio processing
Chapters
Reference
Main page

Three words get used interchangeably and shouldn't be.

Level is amplitude: what a sample value is, what a peak meter reads, what a fader multiplies. A number you can compute from the waveform without knowing anything about ears.

Peak is the largest instantaneous value of that amplitude — and, as chapter 5 gets into, the largest value between samples is not necessarily any of the samples. A peak is one moment, possibly one sample wide, and it tells you almost nothing about how loud something sounds.

Loudness is perceptual: how loud a human says it is. It depends on level, but also on duration, spectrum, and what came before. The standardised way to measure it — frequency-weight, square, average over a window, gate out the silences — exists precisely because none of the simpler measurements correlate with what people report.

The gap is the whole problem. A sine wave peaking at 0 dBFS and a dense rock mix peaking at 0 dBFS are the same level and around 12 dB apart in loudness. A quiet passage with one loud snare has a peak that says "full scale" and a loudness that says "barely there". Anything that rides gain by watching peaks gets this wrong constantly, always in the direction of leaving quiet material quiet.

So: you level for loudness, and you protect for peak. Those are two different jobs, done by two different devices, on two different timescales. Confusing them is the single most common mistake I see.

What an AGC actually is

An automatic gain control, in the broadcast sense, is a gain servo. Not a compressor with a long release — a servo, in the control-systems meaning of the word.

It measures programme level over a window long enough to be a real average rather than a moment, compares that to a target, and moves a single broadband gain toward correcting the error at a rate — so many decibels per second — rather than with an attack and release time.

That distinction matters more than it sounds. A compressor's attack and release are time constants applied to an envelope, so how fast the gain moves depends on how far it has to go. A servo's rate limit is absolute: however wrong the level is, the gain will not move faster than, say, 4 dB per second upward. Its behaviour is therefore predictable and, crucially, inaudible as an event. You never hear it start.

A well-behaved leveller has:

  • A target, expressed in the units of its own detector.
  • A ratio, applied to the error rather than to the waveform. At 3.5:1 it corrects about 71 % of the discrepancy — a track 10 dB below target is lifted about 7 dB, not 10. That is deliberate: correcting 100 % would flatten every item to identical loudness and lose the fact that a ballad is meant to be quieter than the single after it. The ratio is where you decide how much item-to-item variation to keep.
  • A range of authority: maximum cut and maximum lift. A setting allowed to cut 8 dB and lift 0 dB is perfectly sensible — it pulls down anything too loud and never drags a quiet passage up, which is right for material where the quiet is intentional.
  • Rate limits in both directions, usually asymmetric.

Why it goes down faster than it comes up

Almost every leveller moves downward faster than upward, often by a factor of five or more. There are two reasons.

The first is severity. Too loud is an immediate problem: it overdrives everything downstream and is audible as a jump. Too quiet is only an aesthetic disappointment. You fix urgent things quickly.

The second is artefacts. Upward movement is where levellers make their characteristic noises — a decaying note that stops decaying or reverses, room tone swelling in a pause, the effect people call "breathing". Downward movement during a loud passage is masked by the loud passage; upward movement during a quiet one has nothing to hide behind.

Gating and freezing

Here is the failure mode that every leveller has to design around: silence.

Consider a song fading out, two seconds of digital black, then the next track. A leveller with no gate sees the level falling, decides it is far below target, and starts lifting. By the end of the fade it is at maximum lift, amplifying tape hiss, room tone, surface noise — whatever is down there — up to programme level. Then the next track starts 18 dB louder than the gain is set for and the servo has to scramble back down.

A clean fade has become a rising wash of noise followed by a lurch. This is one of the ways an over-processed station announces itself, and it is entirely avoidable.

The fix is a gate, usually in two tiers. Below a freeze threshold the gain stops moving and holds — if there is nothing there, there is nothing to level. Between that and a higher slow threshold, upward movement is allowed but scaled down, barely moving at the bottom of the band and normally at the top, with a smooth transition so there is no audible change of behaviour as the programme crosses the line.

And critically: the gate restrains upward movement only. Downward correction is never gated. If something loud arrives while the gain is frozen at maximum lift, the servo must be free to pull it down immediately. A gate that blocks downward movement turns a fade-in into an overload.

Why the detector doesn't hear what you hear

A leveller that measures raw broadband level will be wrong on anything with a lot of low end. Bass carries enormous energy and comparatively little perceived loudness, so a bass-heavy track measures loud and gets turned down, and the vocal — which is what the listener judges loudness by — ends up too quiet.

So the detector gets its own filtering: a high-pass to discard subsonic content the ear cannot hear, a shelf cut in the low end so bass counts for less than it weighs, and often a gentle lift in the upper midrange where the ear is most sensitive and where voices live. Same idea as the weighting in a standardised loudness meter, done cheaply.

This applies only to the detector. The audio passing through is not equalised. You are telling the servo which parts of the spectrum to care about, not changing the sound.

Target is not output level

This one causes more confusion than anything else in the chapter, so plainly:

The target is a number the detector aims at. It is not the level that comes out of the plugin.

A leveller with a target of −18 dBFS is not producing −18 dBFS at its output, for four reasons. Its detector is filtered, so it is not measuring what a peak meter measures. It averages, so it reads something closer to RMS — and the programme's peak-to-average ratio, which varies by track, sits on top. Its ratio means it only corrects part of the error anyway. And there are several more stages after it, some of which add gain.

The target is an operating point for one stage in the middle of a chain. Read the output on the output meter.

Slow leveller, fast compressor: two jobs

A leveller works over seconds to tens of seconds — the right timescale for "this 1974 master is quieter than the one before it", the wrong one for "this chorus is 6 dB louder than this verse", and hopeless for "this snare is 10 dB above everything".

So there is almost always a faster stage behind it: a conventional wideband compressor, attack in tens of milliseconds, release in hundreds. Its job is not to set the operating level — the leveller did that — but to smooth the medium-scale shape inside an item.

Because the leveller has already put the programme roughly in the right place, that compressor can run a modest threshold and ratio and still be effective — a few dB of reduction, not fifteen. That is the point of the division of labour: each stage works over a range it can handle without artefacts. Ask one compressor to do both jobs and you get either a slow one that never catches anything or a fast one that levels by squashing.

Feeding it properly

A gain servo has a finite range. Sitting at −12 dB of cut all the time because you are feeding it too hot leaves almost nothing for the track that really is too loud; pinned at maximum lift, it cannot help a genuinely quiet one. A leveller does its best work near the middle of its range, with room to move both ways.

So gain structure matters, and it is the one thing you still have to get right yourself. The reliable way to check is not the input meter — it is how hard the leveller is working. If the gain readout lives at −9 dB, turn the input down.

This can be automated. TRANSMIT Tower has an AUTO INPUT servo that watches how much correction the AGC is applying and trims the input to bring that correction toward zero. Its goal is about 0 dB of AGC gain — not a 0 dB knob position, and not a signal peaking at 0 dBFS. A settled trim of −7 dB can be exactly right. It treats roughly ±1 dB as centred and stops fussing, comes down faster than it goes up, and tells you whether it is still settling or has locked. It is deliberately slow, because it is setting gain structure, not riding programme. Two different jobs, again.

See also

See also

← Why stations process Multiband →
Written by Omer Senesh. Part of the broadcast.audio wiki, published alongside TRANSMIT Tower.