mozilla
Your Search Results

    DynamicsCompressorNode

    この記事はまだ日本語に翻訳されていません。MDN の翻訳はボランティアによって行われています。是非 MDN に登録し、私たちの力になって下さい。

    The DynamicsCompressorNode interface provides a compression effect, which lowers the volume of the loudest parts of the signal in order to help prevent clipping and distortion that can occur when multiple sounds are played and multiplexed together at once. This is often used in musical production and game audio. DynamicsCompressorNode is an AudioNode that has exactly one input and one output; it is created using the AudioContext.createDynamicsCompressor method.

    • Number of inputs 1
    • Number of outputs 1
    • Channel count mode "explicit"
    • Channel count 2
    • Channel interpretation "speakers"

    Properties

    Inherits properties from its parent, AudioNode.

    DynamicsCompressorNode.threshold Read only
    Is a k-rate AudioParam representing the decibel value above which the compression will start taking effect.
    DynamicsCompressorNode.knee Read only
    Is a k-rate AudioParam containing a decibel value representing the range above the threshold where the curve smoothly transitions to the compressed portion.
    DynamicsCompressorNode.ratio Read only
    Is a k-rate AudioParam representing the amount of change, in dB, needed in the input for a 1 dB change in the output.
    DynamicsCompressorNode.reduction Read only
    Is a k-rate AudioParam representing the amount of gain reduction currently applied by the compressor to the signal.
    DynamicsCompressorNode.attack Read only
    Is a k-rate AudioParam representing the amount of time, in seconds, required to reduce the gain by 10 dB.
    DynamicsCompressorNode.release Read only
    Is a k-rate AudioParam representing the amount of time, in seconds, required to increase the gain by 10 dB.

    Methods

    No specific methods; inherits methods from its parent, AudioNode.

    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 'DynamicsCompressorNode' 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

    ドキュメントのタグと貢献者

    Contributors to this page: Sheppy, fscholz, teoli, chrisdavidmills
    最終更新者: fscholz,