DynamicsCompressorNode is an AudioNode processor implementing a dynamics compression effect.
Dynamics compression is very commonly used in musical production and game audio. It lowers the volume of the loudest parts of the signal and raises the volume of the softest parts. Overall, a louder, richer, and fuller sound can be achieved. It is especially important in games and musical applications where large numbers of individual sounds are played simultaneous to control the overall signal level and help avoid clipping (distorting) the audio output to the speakers.
numberOfInputs : 1 numberOfOutputs : 1
The amount of time (in seconds) to reduce the gain by 10dB. Its default value is 0.003, with a nominal range of 0 to 1.
The AudioContext which owns this AudioNode.
A decibel value representing the range above the threshold where the curve smoothly transitions to the "ratio" portion. Its default value is 30, with a nominal range of 0 to 40.
The number of inputs feeding into the AudioNode. This will be 0 for an AudioSourceNode.
The number of outputs coming out of the AudioNode. This will be 0 for an AudioDestinationNode.
The amount of dB change in input for a 1 dB change in output. Its default value is 12, with a nominal range of 1 to 20.
A read-only decibel value for metering purposes, representing the current amount of gain reduction that the compressor is applying to the signal. If fed no signal the value will be 0 (no gain reduction). The nominal range is -20 to 0.
The amount of time (in seconds) to increase the gain by 10dB. Its default value is 0.250, with a nominal range of 0 to 1.
The decibel value above which the compression will start taking effect. Its default value is -24, with a nominal range of -100 to 0.
Connects the AudioNode to another AudioNode.
It is possible to connect an AudioNode output to more than one input with multiple calls to connect(). Thus, "fanout" is supported.
It is possible to connect an AudioNode to another AudioNode which creates a cycle. In other words, an AudioNode may connect to another AudioNode, which in turn connects back to the first AudioNode. This is allowed only if there is at least one DelayNode in the cycle or an exception will be thrown.
There can only be one connection between a given output of one specific node and a given input of another specific node. Multiple connections with the same termini are ignored. For example:
nodeA.connect(nodeB);
nodeA.connect(nodeB);
will have the same effect as
nodeA.connect(nodeB);
the AudioNode to connect to.
an index describing which output of the AudioNode from which to connect. An out-of-bound value throws an exception.
an index describing which input of the destination AudioNode to connect to. An out-of-bound value throws an exception.
Connects the AudioNode to an AudioParam, controlling the parameter value with an audio-rate signal.
It is possible to connect an AudioNode output to more than one AudioParam with multiple calls to connect(). Thus, "fanout" is supported.
It is possible to connect more than one AudioNode output to a single AudioParam with multiple calls to connect(). Thus, "fanin" is supported.
An AudioParam will take the rendered audio data from any AudioNode output connected to it and convert it to mono by down-mixing if it is not already mono, then mix it together with other such outputs and finally will mix with the intrinsic parameter value (the value the AudioParam would normally have without any audio connections), including any timeline changes scheduled for the parameter.
There can only be one connection between a given output of one specific node and a specific AudioParam. Multiple connections with the same termini are ignored. For example:
nodeA.connect(param);
nodeA.connect(param);
will have the same effect as
nodeA.connect(param);
the AudioParam to connect to.
an index describing which output of the AudioNode from which to connect. An out-of-bound value throws an exception.
Disconnects an AudioNode's output.
an index describing which output of the AudioNode to disconnect. An out-of-bound value throws an exception.