# Effect Chains

## `~_EffectChain_Create()`

**Returns:** Number, an **effect chain ID**

|Argument|Datatype|Description                                           |
|--------|--------|------------------------------------------------------|
|None    |        |                                                      |

Creates a new effect chain that can be modified and applied to sound instances (or the master buss).

 

## `~_EffectChain_Destroy(effectChainID)`

**Returns:** N/A (`undefined`)

|Argument       |Datatype|Description                                           |
|---------------|--------|------------------------------------------------------|
|`effectChainID`|number  |Effect chain to target                                |

Destroys an effect chain, freeing memory associated with it.

 

## `~_EffectChain_AddDefaultReverb(effectChainID)`

**Returns:** N/A (`undefined`)

|Argument       |Datatype|Description                                           |
|---------------|--------|------------------------------------------------------|
|`effectChainID`|number  |Effect chain to target                                |

Adds a pleasant-sounding default reverb to the effect chain.

 

## `~_EffectChain_AddReverb(...)`

**Returns:** N/A (`undefined`)

|Argument          |Datatype|Description                                           |
|------------------|--------|------------------------------------------------------|
|`effectChainID`   |number  |Effect chain to target                                |
|`wetDryMix`       |number  |                                                      |
|`reflectionsDelay`|number  |                                                      |
|`reverbDelay`     |number  |                                                      |
|`earlyDiffusion`  |number  |                                                      |
|`lateDiffusion`   |number  |                                                      |
|`lowEQGain`       |number  |                                                      |
|`lowEQCutoff`     |number  |                                                      |
|`highEQGain`      |number  |                                                      |
|`highEQCutoff`    |number  |                                                      |
|`reflectionsGain` |number  |                                                      |
|`reverbGain`      |number  |                                                      |
|`decayTime`       |number  |                                                      |
|`density`         |number  |                                                      |
|`roomSize`        |number  |                                                      |

Adds a reverb effect with many (many...) parameters to the effect chain.

 

## `~_SoundInstance_SetEffectChain(soundInstanceID, effectChainID, effectGain)`

**Returns:** N/A (`undefined`)

|Argument         |Datatype|Description                                           |
|-----------------|--------|------------------------------------------------------|
|`soundInstanceID`|number  |Sound instance to target                              |
|`effectChainID`  |number  |Effect chain to apply                                 |
|`effectGain`     |number  |Gain of the effect. `1` is 100% volume                |

Applies an effect chain to the given sound instance.

 

## `~_SoundInstance_SetEffectGain(soundInstanceID, effectGain)`

**Returns:** N/A (`undefined`)

|Argument         |Datatype|Description                                                                 |
|-----------------|--------|----------------------------------------------------------------------------|
|`soundInstanceID`|number  |Sound instance to target                                                    |
|`effectGain`     |number  |Gain of the effect already applied to the sound instance. `1` is 100% volume|

Modifies the effect chain gain for the given sound instance. This function will do nothing if no effect chain has been applied.

 

## `~_SetMasteringEffectChain(effectChainID, effectGain)`

**Returns:** N/A (`undefined`)

|Argument       |Datatype|Description                           |
|---------------|--------|--------------------------------------|
|`effectChainID`|number  |Effect chain to apply                 |
|`effectGain`   |number  |Gain of the effect. `1` is 100% volume|

Applies an effect chain to the master buss, changing how every piece of audio sounds. This function does **not** apply an effect to each individual sound instance, simply the whole output audio.

 

## `~_SetMasteringEffectGain(effectGain)`

**Returns:** N/A (`undefined`)

|Argument    |Datatype|Description                                                              |
|------------|--------|-------------------------------------------------------------------------|
|`effectGain`|number  |Gain of the effect already applied to the master buss. `1` is 100% volume|

Modifies the effect chain gain for the master buss. This function will do nothing if no effect chain has been applied.