DynamicsCompressorNode

To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.

Interfejs DynamicsCompressorNode  zapewnia efekt kompresji audio. Efekt ten polega na obniżeniu poziomu głośności w najgłośniejszych momentach sygnału audio, zabezpieczając przytym syngał przed clippingiem oraz przesterowaniem, które mogą wystąpić podczas odtwarzania wielu dźwięków jednocześnie. Efekt ten jest często używany podczas produkcji muzyki i w oprawie dźwiękowej gier. DynamicsCompressorNode jest AudioNode który posiada tylko jedno wejście i jedno wyjście; Interfejs jest tworzony po przez użycie metody AudioContext.createDynamicsCompressor.

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

Autorzy i etykiety dokumentu

 Autorzy tej strony: teoli, lukaszozimek
 Ostatnia aktualizacja: teoli,