Compressor Sidechain#

Sidechain compressor Stages use the envelope of one input to control the level of a different input.

class audio_dsp.stages.compressor_sidechain.CompressorSidechain(**kwargs)

An sidechain compressor based on the RMS envelope of the detect signal.

This stage is limited to accepting 2 channels. The first is the channel that will be compressed. The second is the detect channel. The level of compression depends on the envelope of the second channel.

When the RMS envelope of the detect signal exceeds the threshold, the processed signal amplitude is reduced by the compression ratio.

The threshold sets the value above which compression occurs. The ratio sets how much the signal is compressed. A ratio of 1 results in no compression, while a ratio of infinity results in the same behaviour as a limiter. The attack time sets how fast the compressor starts compressing. The release time sets how long the signal takes to ramp up to its original level after the envelope is below the threshold.

Attributes:
dsp_blockaudio_dsp.dsp.drc.sidechain.compressor_rms_sidechain_mono

The DSP block class; see Sidechain RMS Compressor for implementation details.

make_compressor_sidechain(ratio, threshold_db, attack_t, release_t, Q_sig=27)

Update compressor configuration based on new parameters.

Parameters:
ratiofloat

Compression gain ratio applied when the signal is above the threshold.

threshold_dbfloat

Threshold in decibels above which compression occurs.

attack_tfloat

Attack time of the compressor in seconds.

release_tfloat

Release time of the compressor in seconds.

Control

The following runtime control parameters are available for the CompressorSidechain Stage:

Command ID macro

Payload length

Description

CMD_COMPRESSOR_SIDECHAIN_ATTACK_ALPHA

sizeof(int32_t)

The attack alpha in Q0.31 format.

CMD_COMPRESSOR_SIDECHAIN_RELEASE_ALPHA

sizeof(int32_t)

The release alpha in Q0.31 format.

CMD_COMPRESSOR_SIDECHAIN_ENVELOPE

sizeof(int32_t)

The current RMS envelope of the signal in Q_SIG format.

CMD_COMPRESSOR_SIDECHAIN_THRESHOLD

sizeof(int32_t)

The threshold in Q_SIG format above which compression will occur.

CMD_COMPRESSOR_SIDECHAIN_GAIN

sizeof(int32_t)

The current gain applied by the compressor in Q0.31 format.

CMD_COMPRESSOR_SIDECHAIN_SLOPE

sizeof(float)

The compression slope of the compressor. This is calculated as (1 - 1 / ratio) / 2.0.