Real-time, ultra-low-latency audio and sensor processing system for BeagleBone Black
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups

Multichannel Sidechain Ducker

This example implements a multichannel ducker based on a feedfoward compressor architecture which makes use of the Envelope Detector library for peak detection.

The sidechain ducker works similarly to a compressor: a gain-reduction control signal is computed based on envelope of an incoming signal. However, in this case, the gain reduction is applied to a different channel instead of the one being used to compute the envelope. This way, the gain of the sidechain channels is reduced according to the estimated envelope of the input channel.

The detection channel for this example is set to channel 0 by default and the gain of all other channels is reduced based on the envelope of the audio input for that channel.

A control GUI has been prepared to be able to change the parameters of the ducker/compressor. Sliders for attack time and release time (in milliseconds) as well as threshold (dB), compression ratio, knee width (dB) and makeup gain (dB) are provided to make the example fully customisable.

Input channels are assigned to the same number of outptut channel. If the number of outputs is greater than the number of inputs then the remaining output channels will be silent. If the number of inputs is greater than the number of outputs then only the first few channels will be used.