Noise Gate#

Noise gate Stages remove quiet signals from the audio output.

class audio_dsp.stages.noise_gate.NoiseGate(**kwargs)

A noise gate that reduces the level of an audio signal when it falls below a threshold.

When the signal envelope falls below the threshold, the gain applied to the signal is reduced to 0 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 gate is with the gate open (no attenuation); this models a full scale signal having been present before t = 0.

Attributes:
dsp_blockaudio_dsp.dsp.drc.expander.noise_gate

The DSP block class; see Noise Gate for implementation details.

make_noise_gate(threshold_db, attack_t, release_t, Q_sig=27)

Update noise gate configuration based on new parameters.

Parameters:
threshold_dbfloat

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

attack_tfloat

Attack time of the noise gate in seconds.

release_tfloat

Release time of the noise gate in seconds.

NoiseGate Control#

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

Control parameter

Payload length

CMD_NOISE_GATE_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_GATE_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_GATE_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_GATE_THRESHOLD

sizeof(int32_t)

The threshold in Q_SIG format below which gating 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_GATE_GAIN

sizeof(int32_t)

The current gain applied by the noise gate 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.