W3cubDocs

/DOM

DynamicsCompressorNode.reduction

The reduction property of the DynamicsCompressorNode interface is a float representing the amount of gain reduction currently applied by the compressor to the signal.

Note: Some browsers implement this as a k-rate AudioParam . The current version of the spec specifies it as a float.

Intended for metering purposes, it returns a value in dB, or 0 (no gain reduction) if no signal is fed into the DynamicsCompressorNode. The range of this value is between -20 and 0 (in dB).

Syntax

var audioCtx = new AudioContext();
var compressor = audioCtx.createDynamicsCompressor();

Value

An AudioParam.

Note: Though the AudioParam returned is read-only, the value it represents is not.

Example

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);
  }
}

Specifications

Specification Status Comment
Web Audio API
The definition of 'reduction' in that specification.
Working Draft

Browser compatibility

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 10.0webkit
(Yes) (unprefixed) [1]
(Yes) 25.0 (25.0) No support 15.0webkit
22 (unprefixed) [1]
6.0webkit
Feature Android Android Webview Edge Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? (Yes) (unprefixed) [1] (Yes) 26.0 1.2 ? ? [1] ? 33.0 [1]

[1] Before Chrome 52 and Opera 39, this was an AudioParam

See also

© 2005–2017 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode/reduction