/Godot 3.1


Inherits: AudioEffect < Resource < Reference < Object

Category: Core

Brief Description

Adds a Compressor audio effect to an Audio bus.

Reduces sounds that exceed a certain threshold level, smooths out the dynamics and increases the overall volume.


float attack_us
float gain
float mix
float ratio
float release_ms
String sidechain
float threshold


Dynamic range compressor reduces the level of the sound when the amplitude goes over a certain threshold in Decibels. One of the main uses of a compressor is to increase the dynamic range by clipping as little as possible (when sound goes over 0dB).

Compressor has many uses in the mix:

  • In the Master bus to compress the whole output (Although a AudioEffectLimiter is probably better)
  • In voice channels to ensure they sound as balanced as possible.
  • Sidechained. Sidechained, which can reduce the sound level sidechained with another audio bus for threshold detection.. This technique is very common in video game mixing to download the level of Music/SFX while voices are being heard.
  • Accentuates transients by using a wider attack, making effects sound more punchy.

Property Descriptions

float attack_us

Setter set_attack_us(value)
Getter get_attack_us()

Compressor’s reaction time when the signal exceeds the threshold. Value can range from 20 to 2000. Default value: 20ms.

float gain

Setter set_gain(value)
Getter get_gain()

Gain applied to the output signal.

float mix

Setter set_mix(value)
Getter get_mix()

Balance between original signal and effect signal. Value can range from 0 (totally dry) to 1 (totally wet). Default value: 1.

float ratio

Setter set_ratio(value)
Getter get_ratio()

Amount of compression applied to the audio once it passes the threshold level. The higher the ratio the more the loud parts of the audio will be compressed. Value can range from 1 to 48. Default value: 4.

float release_ms

Setter set_release_ms(value)
Getter get_release_ms()

Compressor’s delay time to stop reducing the signal after the signal level falls below the threshold. Value can range from 20 to 2000. Default value: 250ms.

String sidechain

Setter set_sidechain(value)
Getter get_sidechain()

Reduce the sound level using another audio bus for threshold detection.

float threshold

Setter set_threshold(value)
Getter get_threshold()

The level above which compression is applied to the audio. Value can range from -60 to 0. Default value: 0.

© 2014–2019 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.