Noise Suppressor Expander#

Noise suppressor and expander Stages control the behaviour of quiet signals, typically by tring to reduce the audibility of noise in the signal.

class audio_dsp.stages.noise_suppressor_expander.NoiseSuppressorExpander(**kwargs)

The Noise Suppressor (Expander) stage. A noise suppressor that reduces the level of an audio signal when it falls below a threshold. This is also known as an expander.

When the signal envelope falls below the threshold, the gain applied to the signal is reduced relative to the expansion ratio over the release time. When the envelope returns above the threshold, the gain applied to the signal is increased to 1 over the attack time.

The initial state of the noise suppressor is with the suppression off; this models a full scale signal having been present before t = 0.

Attributes:
dsp_blockaudio_dsp.dsp.drc.expander.noise_suppressor_expander

The DSP block class; see Noise Suppressor/Expander for implementation details.

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

Update noise suppressor (expander) configuration based on new parameters.

All parameters are passed to the constructor of audio_dsp.dsp.drc.noise_suppressor_expander.

Parameters:
ratiofloat

The expansion ratio applied to the signal when the envelope falls below the threshold.

threshold_dbfloat

The threshold level in decibels below which the audio signal is attenuated.

attack_tfloat

Attack time of the noise suppressor in seconds.

release_tfloat

Release time of the noise suppressor in seconds.

NoiseSuppressorExpander Control#

The following runtime command ids are available for the NoiseSuppressorExpander Stage. For details on reading and writing these commands, see the Run-Time Control User Guide.

Control parameter

Payload length

CMD_NOISE_SUPPRESSOR_EXPANDER_ATTACK_ALPHA

sizeof(int32_t)

The attack alpha in Q0.31 format. To convert an attack time in seconds to an int32_t control value, use the function calc_alpha(fs, attack_time) in control/helpers.h.


CMD_NOISE_SUPPRESSOR_EXPANDER_RELEASE_ALPHA

sizeof(int32_t)

The release alpha in Q0.31 format. To convert a release time in seconds to an int32_t control value, use the function calc_alpha(fs, release_time) in control/helpers.h.


CMD_NOISE_SUPPRESSOR_EXPANDER_ENVELOPE

sizeof(int32_t)

The current peak envelope of the signal in Q_SIG format. To read the int32_t control value, use the function qxx_to_db(envelope, Q_SIG) in control/helpers.h This command is read only. When sending a write control command, it will be ignored.


CMD_NOISE_SUPPRESSOR_EXPANDER_THRESHOLD

sizeof(int32_t)

The threshold in Q_SIG format below which suppression will occur. To convert a threshold in dB to the int32_t control value, use the function calculate_peak_threshold(x) in control/helpers.h.


CMD_NOISE_SUPPRESSOR_EXPANDER_GAIN

sizeof(int32_t)

The current gain applied by the noise suppressor in Q0.31 format. To read the int32_t control value, use the function qxx_to_db(envelope, 31) in control/helpers.h This command is read only. When sending a write control command, it will be ignored.


CMD_NOISE_SUPPRESSOR_EXPANDER_SLOPE

sizeof(float)

The expansion slope of the noise suppressor. This is calculated as (1 - ratio).To convert a ratio to a slope, use the function peak_expander_slope_from_ratio(ratio) in control/helpers.h.