Dynamic range expander
The expander
System object™ performs dynamic range expansion independently across each input channel.
Dynamic range expansion attenuates the volume of quiet sounds below a given threshold. It uses
specified attack, release, and hold times to achieve a smooth applied gain curve. Properties
of the expander
System object specify the type of dynamic range expansion.
To perform dynamic range expansion:
Create the expander
object and set its properties.
Call the object with arguments, as if it were a function.
To learn more about how System objects work, see What Are System Objects?.
dRE = expander
creates a System object, dRE
, that performs dynamic range expansion independently
across each input channel.
dRE = expander(
sets the
Threshold
property to thresholdValue
)thresholdValue
.
dRE = expander(
sets the Ratio property
to thresholdValue
,ratioValue
)ratioValue
.
dRE = expander(___,
sets each property Name,Value
)Name
to the specified Value
.
Unspecified properties have default values.
dRE = expander('AttackTime',0.01,'SampleRate',16000)
creates a System object, dRE
, with a 0.01 second attack time and a 16 kHz sample
rate.To use an object function, specify the
System object as the first input argument. For
example, to release system resources of a System object named obj
, use
this syntax:
release(obj)
The createAudioPluginClass
and configureMIDI
functions map tunable properties of the expander
System object to user-facing parameters:
Property | Range | Mapping | Unit |
---|---|---|---|
Threshold | [–140, 0] | linear | dB |
Ratio | [1, 50] | linear | none |
KneeWidth | [0, 20] | linear | dB |
AttackTime | [0, 4] | linear | seconds |
ReleaseTime | [0, 4] | linear | seconds |
HoldTime | [0, 4] | linear | seconds |
[1] Giannoulis, Dimitrios, Michael Massberg, and Joshua D. Reiss. "Digital Dynamic Range Compressor Design –– A Tutorial and Analysis." Journal of Audio Engineering Society. Vol. 60, Issue 6, 2012, pp. 399–408.