Creating a multi-band compressor with sidechain from scratch

thisisdjkaz's icon

Hi guys,

I'm looking to create a multi-band compressor from scratch that would sidechain individual band frequencies based on individual frequencies of another source. I'm looking to implement this in Max for Live eventually. Does anyone have any information on how to achieve this or could point me in the right direction?

Peter McCulloch's icon

You need a crossover filter for both signals. The simplest way is just to use cross~, though IIRC someone had posted a different crossover filter implemented in gen~. (only would work for Max6 users, though) Check out the compressor example in the examples folder for the compression part.

Graham Wakefield's icon

If you have Max 6.0.7, there's a crossover filter in the gen examples folder, which is designed to sum to an allpass. Though it will only give you two bands, it could probably be extended to do more: just chain another crossover to each output to get four bands.

Another way would be to do it in the frequency domain, which will give you many bands (too many?), though you'll lose some temporal accuracy.

thisisdjkaz's icon

Thanks guys, I don't have Max 6 only Max for Live with Max 5. I'd definitely need to upgrade to 6?
And apologies if I don't understand some of the terms or my question is very broad, I'm not as fluent in Max as most of you guys here.

thisisdjkaz's icon

Ok, I got splitting the frequencies fine using the cross~ object, thanks. But I might look into Gen as I've the demo of Max6.

I've made a compressor from scratch but I'm having difficulties converting the amplitude signal of one band into a decibel value to be sent as a number value between 2 patches to side chain the other signal. The side chaining doesn't work smoothly at all.