Compressor#
Compressor stages allow for control of the dynamic range of the signal, such as reducing the level of loud sounds.
- class audio_dsp.stages.compressor.CompressorRMS(**kwargs)
A compressor based on the RMS envelope of the input signal.
When the RMS envelope of the signal exceeds the threshold, the 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_block
audio_dsp.dsp.drc.drc.compressor_rms
The DSB block class; see RMS Compressor for implementation details.
- dsp_block
- make_compressor_rms(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 CompressorRMS Stage:
Command ID macro |
Payload length |
Description |
---|---|---|
CMD_COMPRESSOR_RMS_ATTACK_ALPHA |
|
The attack alpha in Q0.31 format. |
CMD_COMPRESSOR_RMS_RELEASE_ALPHA |
|
The release alpha in Q0.31 format. |
CMD_COMPRESSOR_RMS_ENVELOPE |
|
The current RMS envelope of the signal in Q_SIG format. |
CMD_COMPRESSOR_RMS_THRESHOLD |
|
The threshold in Q_SIG format above which compression will occur. |
CMD_COMPRESSOR_RMS_GAIN |
|
The current gain applied by the compressor in Q0.31 format. |
CMD_COMPRESSOR_RMS_SLOPE |
|
The compression slope of the compressor. This is calculated as (1 - 1 / ratio) / 2.0. |