<?xml version="1.0" encoding="UTF-8" ?>
<class name="AudioEffectCompressor" inherits="AudioEffect" api_type="core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Adds a downward compressor audio effect to an audio bus.
		Allows control of the dynamic range via a volume threshold and timing controls.
	</brief_description>
	<description>
		A "compressor" decreases the volume of sounds when it exceeds a certain volume threshold level.
		A compressor can have many uses in a mix:
		- To compress the whole volume in the Master bus (although an [AudioEffectHardLimiter] is probably better).
		- To ensure balance of voice audio clips.
		- To sidechain, using another bus as a trigger. This decreases the volume of the bus it is attached to, by using the volume from another audio bus for threshold detection. This technique is common in video game mixing to decrease the volume of music and SFX while voices are being heard. This effect is also known as "ducking".
		- To accentuate transients by using a long attack, letting sounds exceed the volume threshold level for a short period before compressing them. This can be used to make SFX more punchy.
	</description>
	<tutorials>
		<link title="Audio buses">$DOCS_URL/tutorials/audio/audio_buses.html</link>
		<link title="Audio effects">$DOCS_URL/tutorials/audio/audio_effects.html</link>
	</tutorials>
	<members>
		<member name="attack_us" type="float" setter="set_attack_us" getter="get_attack_us" default="20.0">
			Compressor's reaction time when the audio exceeds the volume threshold level, in microseconds. Value can range from 20 to 2000.
		</member>
		<member name="gain" type="float" setter="set_gain" getter="get_gain" default="0.0">
			Gain of the audio signal, in dB. Value can range from -20 to 20.
		</member>
		<member name="mix" type="float" setter="set_mix" getter="get_mix" default="1.0">
			Balance between the original audio and the compressed audio. Value can range from 0 (totally dry) to 1 (totally wet).
		</member>
		<member name="ratio" type="float" setter="set_ratio" getter="get_ratio" default="4.0">
			Amount of compression applied to the audio once it passes the volume threshold level. The higher the ratio, the stronger the compression applied to audio signals that pass the volume threshold level. Value can range from 1 to 48.
		</member>
		<member name="release_ms" type="float" setter="set_release_ms" getter="get_release_ms" default="250.0">
			Compressor's delay time to stop decreasing the volume after the it falls below the volume threshold level, in milliseconds. Value can range from 20 to 2000.
		</member>
		<member name="sidechain" type="StringName" setter="set_sidechain" getter="get_sidechain" default="&amp;&quot;&quot;">
			Audio bus to use for the volume threshold detection.
		</member>
		<member name="threshold" type="float" setter="set_threshold" getter="get_threshold" default="0.0">
			The volume level above which compression is applied to the audio, in dB. Value can range from -60 to 0.
		</member>
	</members>
</class>
