Help Contact

In order to serve you better, this website makes use of Cookies. By clicking "I agree" or by continuing to use this website, you agree to the placing of these cookies.

Beta testing the new Adaptive Compressor

Over the past 5 months, we have been working very hard on a new, I would say revolutionary, compressor design. It's insanely dynamic; its response speeds can change by about a factor 1000 depending on the content. We named it "Adaptive" mode, but we're looking for a better (more marketable) name - let us know if you have any good suggestions.

At the moment of writing this, the new compressor is available in Multiband Compressor 1. It will be added to Multiband 2 and the singleband compressors as soon as we've determined that everything is good to go. Based on how it sounds, we're also going to update the AGC to a very similar algorithm.

 

What was wrong

The "Analog", water pressure based compressor has been our go-to compressor for years. We kept optimzing and improving it, adding things like "Immediate attack" and dynamic speeds to it to make it sound better. Over time, we kept having to add more patches to the original design to improve the audio. And by doing that we got further away from the original design.

Over time, we have obtained some new insights which warrented not a patch of the existing design, but a full redesign.

During the development, we have found that there were many more things wrong than what we were aware of, so we have changed many more things than we originally expected, including windowing and gating.

 

Goals

The goals of the new compressor were:

  • Simplified code
    Maintaining the existing code was getting very complicated, due to thngs like feedback mode and squared feedback mode, the way ratio was implemented (as part of the compressor mechanism itself instead of something applied afterwards), and all the existing patches. Making a change without breaking some fringe combination of settings was really hard.
  • Extremely dynamic
    Basically, the goal (which we have not fully achieved, but we got close) was to make it possible to use a single compressor stage which acts as an AGC, main compressor and final limiter, all in one, which sounds good on both extremely dense and extremely sparse content.
  • Good sound even at infinite ratio
    Almost all existing presets run their multiband compressors at lower ratio's, and if you don't they tend to sound bad. We still want that to be possible, but it should be possible to sound good at infinite ratio.
  • Easy to setup
    This was not really a requirement when we started, but it turned out to be possible anyway: The existing processors are very sensitive to the exact attack and release speeds. The new compressor is far less sensitive; its sound will change but it won't easily sound bad.
  • Fewer settings
    The "patches" made to the previous compressor caused us to add a lot of settings, which made it more and more complex.

 

The new design

Dynamics

 We have made the design such that it stands still on dense content, and moves rapidly on dynamic content. That was already the case when using dynamic attack/release speeds in the older design. But the range would typically be small, like it could slow down or speed up by a factor 2, giving a total range of a factor 4, which helped but wasn't enough - but higher settings didn't sound good.

The new design is much more extreme than this; it can easily get to a factor 100 of speedup when it needs to. Play a song with a loud S, and if the attack is fast so it goes down deep, the release will be almost instantaneous. Which protects against gaps after loud S sounds, which can sound really annoying. By moving this fast, the release is actually almost inaudible. 

Similarly, play a sparse song with lots of dynamics and you'll see the meters move all over the place; play a dense song afterwards and they will almost not move at all.

There are  two parameters that controls the dynamic behavior: "Speed up release for dynamic audio" and "Maximum speedup". You'll probably only need the first one; it controls how much speedup to apply based on how dynamic we think the audio is (so the value set is not an absolute maximum to the speedup; that's what the 2nd setting is for).

(Even with these settings set to 0, the compressor will still behave more dynamic than the old one, due to how it's designed.)

 

Attack behavior

The new attack behavior no longer tries to move with a specific speed (which is what "Attack shape" was for). Instead, it constantly determines the optimal speed without looking at its history. An unexpected benefit of this is that it handles extreme content much better, and when presented with such extreme content, it is far less sensitive to the settings. The old compressor would really struggle with extreme content, to use stand-alone you would have needed a "Sudden Jump Protection"-like "hack" like the AGC has. The new design doesn't need that anymore; on really extreme content it will move down rapidly almost regardless of the settings. But if the level difference is small it moves very slowly - much slower than the old compressor, which protects already dense material.

Old vs new attack behavior

Old (left) vs new attack behavior.

You can see that the old behavior moved in more or less a straight line. Due to that, if there's suddenly loud audio, it takes a long time for the level to go down, forcing you to use a very fast attack time to handle dynamic audio.

On the right, the start of the attack is much faster, and because this shape is always observed, depends less on the exact attack setting. So you can get away with much slower attack settings. And as you can see on the right, for smaller differences, it moves a lot slower - it (litterally) takes forever to reach the target level.

Release behavior

The release behavior is dynamic in a very different way from how the old compressor's release behavior was dynamic. Before it just looked at how much the level fell, which required "hacks" like "Relative release distance" to prevent it from overreacting. The new behavior mostly ignores the input level, and acts on very different parameters. So the behavior is completely different.

With the old compressor, you had to use really fast release speeds to not have a gap after a loud S sound. Some amount of gap after an S is acceptable, but for repeating loud sounds such as loud hi-hats, you tend to hear even small gaps after them, and hence you have to release even faster. The new compressor doesn't have this issue anymore; recovery after a brief loud S sound is quick almost regardless of the settings, and there are no notable gaps after hi-hats either. However, for already dense content, release is actually slower than before.  

Bush - Cold Contagious

The highs from the song Cold Contagious by Bush. Top is with the old compressor with similar sounding settings, bottom is the new compressor; The bottom looks much more even.

What's also clearly visible is that when the quieter section ends (just before the end of the waveform), the first loud hi-hat is far too loud in the old compressor, which makes it sound like all the highs disappear afterwards when the highs level drops to where it should be.

Too quiet dense audio

Something that could occur in the old compressor, and to a lesser also in this new one, is that very dense audio comes out quieter than dynamic audio. This is easy to explain: During dynamic audio we constantly release, and if after releasing a new loud sound starts it will play at a higher level because we still need to attack to push the level down. For dense audio, the compressor doesn't release much, so it stays all the way down.

If you actually measure the level of the output audio over some amount of time it's often not even that far apart. But to our ears, it sounds much louder because we focus on the spikes in the audio, not on the average level; we kinda ignore moments of silence.

A workaround for this is to use lower ratio's; if you use a lower ratio, the loudest (typically densest) parts of the audio will come out louder compared to not so loud input. So with an AGC set to infinite ratio, followed by a compressor with a lower ratio, this problem is mostly gone. But this is definitely not ideal, and it hides the issue instead of solving it.

We have added a new setting, "Make dense audio louder", to handle this. Typically 1-2 dB is more than enough to make things sound good. It also makes the audio sound better, because even in dynamic audio there can be moments of dense audio (such as loud vocals), which come out louder as well, so vocals are stronger with this setting, and cause less "ducking" in the background music.

Nervo - We're All No One

A song with a dense section, without (top) and with (bottom) dense audio boost. Most of the song is unaffected but the dense part is several dB's louder, which sounds more natural. (Effect might be too much here).

Windowing

Some people have complained in the past that our compressor windows didn't work as they should. Well, I can confirm that now: Our design was all wrong. With our new design you can even use a 12 dB window on the final compressor without causing any major issues; all it does is to make the audio more dynamic. So this works great in combination with very fast attack and release times.

You can choose between 2 window types: V-shaped (normal) or U-shaped (squared - I still need to change the names). A U-shaped window has a large area in which almost no movements are possible, so if you use a U-shaped window, you'll have to make it a lot smaller. We might add a setting later to determine how deep the window can go; right now it goes to 0 in the center.

Typically, first set up the compressor to sound good overall. Then add some windowing to create more punch.

 

Gating

Casper the Friendly Gate

Gates are scary. They can make you get stuck at some level. So we added Casper the Friendly Gate, which isn't scary at all. It acts indirectly on internal controls, which makes its behavior very smooth. If you use high release speedup values for dynamic audio, using the Casper gate will tame it down a lot, but without loosing the speedup.

So always set this up first. And then use the other 2 gates if needed.

Another Brick In The Wall

Another Brick In The Wall by Pink Floyd. Top: WIthout Casper gate. Bottom: With Casper gate set to -12 dB. Most of the song is unaffected, but the start of the song that contains a lot of near-silence doesn't get boosted to extreme levels anymore.

Input gate

This is the input gate as it's also present in the AGC. If the input level drops below some threshold we slow down or stop.

You can set a target attenuation level to move towards ("return to home") during gating. That only responds to the input gate.

 

Dynamic gate

This is somewhat similar to how the gate worked in the old multiband compressors. But the way it worked, we looked at the input level comprared to the current attenuation level; with a fast attack a single loud sound could get you stuck in gating. The new Dynamic gate responds to the average level over some amount of time, which is a lot safer. Still, use this one with care - this is the only gate that can get you stuck at a weird level.

 

Level drops

This works the same as before; use this to release faster if the level drops a lot. Use gating to control when the speedup stops.

 

Detection

The setting that controls if you're using RMS or peak mode is now just a checkbox. We only have 2 modes.

Important: Even in peak mode, the RMS size is still being used! So make sure to set that up even in peak mode.

Peak mode is currently very CPU intensive; we still need to optimize the code.

 

Channel and band linking

The combination of channel and band linking has always been broken! Also, we now changed band linking to use difference in dB's, not in percentages.

If you're using multiband compressor 1 as an AGC as well, you'll probably need to set up band linking to make it sound good; without it the bands can get very far apart, which tends to sound bad.

 

Limiting

The existing limiters in the previous compressor generations had an infinite attack speed with lookahead. That seemed logical, but it turns out that that's actually not that great for the sound. Aside fromt hat, limiting always tends to cause destruction in the audio, especially if it keeps happening constantly. So we have created 2 different types of limiters in the new compressors.

Intellilimiter

The Intellilimiter works together with the main comprsesor in an intelligent way. If we limit a lot, that also affectst he total level of the compressor. Which in turn responds by releasing faster, so we build a bit more density, but without constantly limiting a lot because we go over the threshold. With how the Intellilimiter works together with the normal compressor, the end result sounsd completely natural, and not limited at all.

Audio without and with Intellilimit

Here's the same audio, processed without Intellilimit on top, and with Intellilimit at the bottom. What's clearly visible is that not just the highest peaks got reduced (as a direct effect of the limiting), but lower peaks are also reduced. The end result is a more dynamic, less restrained sound. Also, short loud sounds may not have much effect on the measured level, but they still sound loud to our ears, so reducing them and everything around them actually sounds more natural.

While it's not really visible in this waveform, the quieter parts are still quieter. In that regard the Intellilimiter behaves a lot like the Casper gate; it tames down the audio. But where the Casper gate looks at how quiet the quiet sectons get, Intellilimiter instead looks at how loud the peaks are after compression.

Using the Intellilimiter has more impact on overall loudness than using a normal limiter, since it also affects the audio between loud sounds.

The Intellilimiter can run in peak or RMS mode. Since the compressor responds to Intellilimiter, if the latter 's running in peak mode, some peak effects will be introduced in the compressor behavior.

Limiter

The (normal) limiter is mainly used to protect against very loud sounds, which would sound too loud or cause problems for the final clipper. We recommend to use this in tamdem with the Intellilimiter, to precisely control how much "real" limiting you want to perform. Where the Intellilimiter mainly affects loudness, the real limiter has much less impact on loudness, but will hurt the audio quality more. Using the two together gives you very precise control over how much you want to have of each.

The limiter always runs in peak mode, the Intellilimiter can run in both peak or RMS mode. If you're planning to combine the two, it's probably a good idea to run the Intellilimiter in peak mode and use the same attack speed for both. If you do that, the maximum amount of real limiting should be close to the threshold difference between the two. So if the Intellilimiter is set to 2 ms, peak, 10 dB, and the real limiter is set to 2 ms, 12 dB, typically the real limiter should rarely have more than 2 dB effect on the output. (It might also be interesting to experiment with other combinations; we have not yet tried that).

 

How to test

The new compressor mode is currently only available in Multiband Compressor 1 starting from 10.02 BETA095. To enable it, set "Compressor type" to "Adaptive" under Miscellaneous. You might not see this setting (since it was deprecated earlier because it only contained Digital and Analog); if you don't see it check Application settings -> Preferences -> Show deprecated settings.

Attack and release speeds are calculated differently from before. The release speed is the base release speed; the attack speed is the speed that you get when there's a 6 dB input difference. You'll probably need much lower attack and release settings than before; people who have tested so far have ended up with attack settings between 200 and 400 ms, release between 2000 and 4000. Release speedup for dynamic audio is typically set between 2x and 5x.

 

Added and removed settings

Removed settings:

  • Max attack speed
  • Attack shape
  • Auto compensate
  • Start attack immediately
  • Max release speed
  • Release shape
  • Auto compensate
  • Release type
  • Relative release distance
  • Dynamic attack/release with offsets and slowdowns per side
  • Spectral balance compensation with threshold, slope and power
  • Feedback
  • Feedback^2
  • "Peak mode" slider which always was weird
  • Limiter speedup, distortion control and limiter mode

Added settings:

  • Speedup release for dynamic audio
  • Max speedup
  • Make dense audio louder
  • Casper gate
  • Dynamic gate slowdown and freeze
  • Square (U-shaped) window.
  • Intellilimiter settings
  • Main limiter attack and release speeds