mozilla
Your Search Results

    DynamicsCompressorNode.knee

    This article is in need of a technical review.

    The knee property of the DynamicCompressorNode interface is a k-rate AudioParam containing a decibel value representing the range above the threshold where the curve smoothly transitions to the compressed portion.

    The knee property's default value is 30 and it can be set between 0 and 40.

    Describes the effect of a knee, showing two curves one for a hard knee, the other for a soft knee.

    Syntax

    var audioCtx = new AudioContext();
    var compressor = audioCtx.createDynamicsCompressor();
    compressor.knee.value = 40;
    

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

    Browser compatibility

    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
    Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
    Basic support ? 26.0 1.2 ? ? ? 33.0

    See also

    Document Tags and Contributors

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