There were already an excursion here about the design of compressor transfer curves over here and now this article turns on to the design of the sidechain path of a compressor in general. One major part of the sidechain design of a compressor is the filtering and thats the topic here for now.
Sidechain filtering is really easy (implementation wise) except one thing but easy things first. Why sidechain filtering at all? Filtering the sidechain does have two main purposes and advantages:
- Set the focus of the compression to a certain part of the frequency spectrum
- Avoid unwanted distortion
The first one means that we are able to set the compressors focus on to lets say the snare of a drum sub-group and that way just performing gain reduction on the frequency spectrum of that specific snare or to highpass the signal to avoid too much influence coming from the low end (bass guitar or so).
The second one means to exclude certain frequencies which will sonically interfere or just dial in certain unwanted artifacts like pumping or HF distortion. This could be for example too much compression depth due to low frequency energy or the other way around due to heavy response to high frequencies which will cause unpleasant intermodulation in the compressor.
Filtering the compressors sidechain signal actually helps avoiding such effects and different strategies and filters can be used:
- Using peak/notch filters to set the focus on to a certain narrow frequency
- Highpass the signal to exclude low frequency content (two different response curves shown)
- Lowpass the signal to exclude HF content
- Decreasing LF impact while increasing HF content
… and of course combinations and more can be taken as required. E.g. instead of straight peak filtering combinations of LF and HF filtering is a much more common practise. Some known outboard bus compressors are taking advantage of such a like sidechain filtering similar as shown in the red curve.
Even though the implemention of SC filtering is rather easy it can get a little more complicated if we introduce another factor: program dependency.
This means that the filtering will respond and behave in context to the actual incoming audio wether being level wise, frequency distribution wise or even depending on the actual applied gain reduction. If so the actual applied filters do have to meet other criterias: The filter coefficients now have to be computed at sample rate and much more important the selected filter algorithms have to be stable concerning changes at audio sample rate speed.
In practise this influences the selection of the actual used DSP algorithms and causes a little CPU overhead. Anyhow, this tradeoff is acceptable but way much more effort goes into properly designing and setting up the actual program dependend behaviour.
Closing comments: SC filtering is quiet easy (almost).
Designing the compressors gain reduction algorithms is really much more harder. And that will be covered in a forthcoming article here.