DynamicsCompressorNode.threshold

This article needs a technical review. How you can help.

The threshold property of the DynamicCompressorNode interface is a k-rate AudioParam representing the decibel value above which the compression will start taking effect.

The threshold property's default value is -24 and it can be set between -100 and 0.

The threshold attribute has no effect on signals lowers than its value, but induce volume reduction on signal stronger than its value.

SyntaxEdit

var audioCtx = new AudioContext();
var compressor = audioCtx.createDynamicsCompressor();
compressor.threshold.value = -50;

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 'threshold' in that specification.
Working Draft  

Browser compatibilityEdit

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 10.0webkit 25.0 (25.0)  Not supported 15.0webkit
22 (unprefixed)
6.0webkit

See alsoEdit

Document Tags and Contributors

 Contributors to this page: fscholz, chrisdavidmills
 Last updated by: fscholz,