Skip to content

Compression demystified

  • Published: 2020-08-01 20:11
  • Updated: 2023-03-27 20:26

This is work in progress. Despite my effort, it may contain confusing information. If you have any questions: please ask! Your questions help improving this.

Compressors were originally designed to aid controlling the dynamic range of an audio signal. As a tool for broadcast engineers for optimizing the signal to noise ratio.

When we think about attack and release, we think about having triggered or releasing something like a volume or filter envelope. And we apply meaning to how what we’re triggering is supposed to be punchy or soft or fast or slow or whatever characteristic we had in mind.

A compressor neither knows, nor cares about any of this. It simply detects changes in voltage over time. Fast changes, slow changes, wide ranging changes, tiny changes, any combination in between. A compressors’ envelope follower reads the amplitude of an incoming audio signal to control the output of its amplifier.

Because any sound (except a single sine-wave) is a mix of slow and fast changes in amplitude and frequencies over time - dynamics processors have a problem:

They have no idea if an incoming audio signal is a bass, hihat, bus or mix. We have to tell them. That’s where it gets complicated.

Compressors prioritize low frequencies

Dynamics processors manipulate audio signals over time.

The thing with decibels

On top of this, there’s the logarithmic nature of the decibel in which we measure Sound Pressure Level. To simplify it very roughly:

You boost a signal by 10db, it appears to be twice as loud. You boost it by another 10db, it’s twice as loud as before. Vice versa, if we think from top to bottom, we need to turn a signal down by 10db to perceive it as half as loud as before.

Plot that on a curve, get a logarithmic one.

What does this has to do with compression? Compressors are designed to work in musical ways. If you look at the sounds you’re throwing at them it becomes clear, that they can’t apply linear changes in volume to your material. They have to stick within the realm of logarithmic changes. Which makes them hard to predict by design.

Remember that I said, a compressor is an inherently stupid thing, converting the energy of a track into a voltage? Let’s check compressors use the voltage, to alter the level or energy of a signal. With its given set of controls.

Threshold (how much amplitude you give a compressor to work with) The threshold parameter on a compressor determines how much of the incoming signal is fed into the envelope follower to generate its voltage curve. Let’s assume an the incoming signal is a 4/4 kick, peaking at 0dbfs. The more we lower the threshold, the more of the kicks attack is fed into the envelope follower. It detects a fast change in voltage, then nothing until the next kick gets triggered.

Once the threshold reached the body of the kick, or bass in general, things get funky.

This accounts to the slow cycle nature of low end information. If you feed a compressor with a sine at 50hz, its envelope follower detects a continuous stream of periodical amplitude changes: Every 20 milliseconds. That’s the time one cycle of a waveform at 50hz needs to complete.

Let’s do a bit of math: a 1/16th beat at a tempo of 100 BPM lasts 150 milliseconds. If we play a 50hz sine for an envelope follower for a duration of a 1/16th note, it’s potentially able to detect 7.5 changes in amplitude: 150ms divided by 20ms.

If it’s a sine without any volume envelope controlling the amplitude, as we lower the threshold, we give a compressor 7.5 occasions to act on the incoming signal. Reminder: the envelope follower only uses the positive range of a signal to generate its voltage.

In case you haven’t noticed, we’ve already busted a myth:

“A compressor starts or stops doing something”. Like Chuck Norris, a compressor doesn’t sleep - it waits. For incoming signals. Even if we don’t feed it anything, it’s listening. All the time.

What do attack and release really mean?

So, the envelope follower generates it’s voltage from the positive range of the incoming audio signal. Depending on its threshold setting. The more we lower the threshold, the more amplitude information gets fed into it over time.

Amplitude over time. Now, we’ve got two settings to mess with the timing information, and I think they’re mislabelled: attack and release. For the sake of this video, let’s use rise instead of attack, fall instead of release.

In an envelope follower, rise defines how fast or slow incoming positive changes in amplitude information gets passed to the output of the follower. Fall depicts how fast or slow negative changes in amplitude get passed to the output again.

To be clear: ANY relative change in amplitude over time upwards is a positive change. And ANY relative change over time downwards a negative one.

Rise and fall determine the ratio at which relative positive as well as negative changes get passed to the output of the envelope follower. Wait, what? Ratio? But attack and release are determined in milliseconds!?

In the context of rise and fall, ratio affects how fast or slow about ⅔’s of the incoming signals’ voltage gets passed to the output of the envelope follower.

Because of the logarithmic nature of decibels. If you look at the amplitude curve of eg drums, they’re never linear. If we want to shape those curves in ways preserving their musical feel, we have do tackle them in ways following their natural curves. Linear ones don’t cater to musicality. They’re rather static, not dynamic.

Hint: That linear volume envelope on a synth says “been developed by an engineer, not a musician”. They’re simply unfit to deliver good sounding, natural feeling PUNCH. But that’s a different topic.