This article needs a technical review. How you can help.
The attack
property of the DynamicsCompressorNode
interface is a k-rate AudioParam
representing the amount of time, in seconds, required to reduce the gain by 10 dB. It defines how quickly the signal is adapted when its volume is increased.
The attack
property's default value is 0.003
and it can be set between 0
and 1
.
SyntaxEdit
var audioCtx = new AudioContext();
var compressor = audioCtx.createDynamicsCompressor();
compressor.attack.value = 0;
Value
An AudioParam
.
Note: Though the AudioParam
returned is read-only, the value it represents is not.
ExampleEdit
The below code demonstrates a simple usage of createDynamicsCompressor()
to add compression to an audio track. For a more complete example, have a look at our basic Compressor example (view the source code).
// Create a MediaElementAudioSourceNode
// Feed the HTMLMediaElement into it
var source = audioCtx.createMediaElementSource(myAudio);
// Create a compressor node
var compressor = audioCtx.createDynamicsCompressor();
compressor.threshold.value = -50;
compressor.knee.value = 40;
compressor.ratio.value = 12;
compressor.reduction.value = -20;
compressor.attack.value = 0;
compressor.release.value = 0.25;
// connect the AudioBufferSourceNode to the destination
source.connect(audioCtx.destination);
button.onclick = function() {
var active = button.getAttribute('data-active');
if(active == 'false') {
button.setAttribute('data-active', 'true');
button.innerHTML = 'Remove compression';
source.disconnect(audioCtx.destination);
source.connect(compressor);
compressor.connect(audioCtx.destination);
} else if(active == 'true') {
button.setAttribute('data-active', 'false');
button.innerHTML = 'Add compression';
source.disconnect(compressor);
compressor.disconnect(audioCtx.destination);
source.connect(audioCtx.destination);
}
}
SpecificationsEdit
Specification | Status | Comment |
---|---|---|
Web Audio API The definition of 'attack' in that specification. |
Working Draft |