"suppression feedback" in a compressor

Mar 4, 2009 at 7:44pm

"suppression feedback" in a compressor

I read about what seemed like a great live mixing idea here:
One crucial part of the setup is that a compressor’s sidechain signal (the “key”), which is also part of the input to the compressor, after reducing the volume of the full mix at the specified bandwidth, be added back in to the mix at that bandwidth. [The purpose is that the key ends up sounding unprocessed, but everything else ducks the key at he bandwidth in question, when necessary.]

In the article, this is called “suppression feedback”. Can Max do this — specifically, omx.4band~? The help file is gobbledygook to me.

Mar 5, 2009 at 12:26am

In case I should elaborate: Suppose you’ve got four tracks, B (for “bass dominator”), M (for “midrange dominator”), T (for “treble dominator”) and O (for “other”). You want to mix them all in a multiband compressor, such that whenever B produces bass, the bass frequencies on the others are reduced; whenever M produces midrange, the midrange on the others is reduced; and whenver T produces treble, the treble on the others is reduced.

The arrangement the article describes would then be a three compressors, in series: BC (for “bass compressor”), MC (for “midrange compressor”), and TC (for “treble compressor”). The main input — that is, the audio to be compressed — for BC is the sum of the original four tracks (B,M,T and O); the signal input to MC is just BC’s output; and the signal input to TC is just MC’s output. The sidechain input (that is, the signal determining how much compression should be applied) to BC is B; the sidechain input to MC is M; and the sidechain input to TC is T.

So my question is: Once any of the sidechain input causes compression in the full mix — including itself — of the frequencies that it’s meant to dominate, how can I add those frequencies in the sidechain input back into the mix? For instance, in BC, once B causes every track’s bass to fall, including its own, how to I get B’s own bass to reappear?

If the only band I was compressing was the bass, this would be easy: I’d simply keep B out of the compressor’s main input, and add it to the compressor’s output. But when there are multiple bands, all being compressed, the only elegant solution I’m aware of is the “suppression feedback” mechanism that I’m asking about.

So — can the OMX compressors do this?

DJ Moldover was the first person I’m aware of to do something like this, in Reaktor:
And Belvario followed in his footsteps:
And of course, a solution could be *built* in Max. But is this a function that the OMX compressors already offer?

Mar 5, 2009 at 7:48am

When this thread started I thought I was trying to understand someone else’s program. It turns out that the programs I was looking at do not have the powers I was attributing to them. But I still think it’s a good question. If it were possible, it would make the life of a VJ infinitely easier.

Here’s a more complete conception: Suppose you’ve got five signal sources, each of them potentially full-spectrum, but their spectra will vary over time. Five iPods, for instance. You would like to assign “bass priority” to each of them track 1′s bass will suppress all the others, but if track 1 has no bass, then track 2′s bass will suppress all the others, but if track 2 has no bass either … etc. For each bandwidth (somewhere between 3 to 5 of them) the five tracks are ranked in order of priority; for example, the tracks might be ranked in reverse order with respect to treble, so that track 5 suppresses everyone else’s treble unless it has none, in which case track 4 suppresses everyone’s treble unless it has none, in which case track 3 …

Now that I articulate it, I’m almost sure nobody has done this before. But … just think of how easy it would be to throw together a clean mix with this sort of multiband compression!

Am I managing to get anyone else interested …?

Mar 6, 2009 at 6:46am

More thoughts related to sidechain compression:

Isn’t it kind of dumb that high volume levels in the key causes the main input to duck, *regardless* of the main input’s current volume? Sure, it produces sounds that we’ve all come to know and love. But it has the drawback of making a quiet main input disappear entirely when the key comes in, even when they would have sounded fine together. If you slapped the compressor onto that track because you actually *wanted* pumping, then that’s fine. But if your intention was simply to make sure the tracks wouldn’t muddy each other, and the pumping is an annoying artifact — then that kind of sucks, doesn’t it?

What I’m envisioning is a compressor in which the key does not determine the level of reduction in the main input directly. Rather, the key would control compressor parameters at the audio rate (or at least, the rate at which amplitude can be updated, which I suppose could be slower than true audio rate). When the key is quiet, there’s no compression on the main input. When the key gets loud, that brings the ratio up from 1 and brings the threshold down from 0 dB.

Currently, I believe, it’s impossible to modify the omx objects to achieve this, because their parameters are controlled by Max messages, not MSP audio-rate signals.

What say you, OctiMax? (Or anyone else!)

[Edit: I should point out that the problem I'm talking about, disappearance of the main input because it was quiet to begin with when the key got loud, is most problematic at frequencies which the main input possesses and the key does not. It's less likely to be a problem in multiband compressors, for instance. As an example: if the main input is having its bass frequencies ducked by the bass frequencies of the key, then even if those frequencies were quiet, you still probably want them to go away when the key's bass comes in. Although ... even in that case, it seems like you'd want them to be reduced by more if they were loud to begin with.]

Apr 14, 2011 at 4:35pm

I’ve been thinking a lot about that too. Haven’t found anything out there. It’s easy to extract pairs of frequency/amplitude (bins) from a signal in real-time. Now the next step is applying them on another signal.


You must be logged in to reply to this topic.