We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

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.setValueAtTime(-50, audioCtx.currentTime);
compressor.knee.setValueAtTime(40, audioCtx.currentTime);
compressor.ratio.setValueAtTime(12, audioCtx.currentTime);
compressor.attack.setValueAtTime(0, audioCtx.currentTime);
compressor.release.setValueAtTime(0.25, audioCtx.currentTime);

// 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

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support14 Yes25 No156
DynamicsCompressorNode() constructor551 ?53 No42 ?
attack141225 No156
knee141225 No156
ratio141225 No156
reduction1421225 No156
release141225 No156
threshold141225 No156
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support1414 Yes2615 ? Yes
DynamicsCompressorNode() constructor551551 ?5342 ?6.0
attack Yes14 Yes2615 ? Yes
knee Yes14 Yes2615 ? Yes
ratio Yes14 Yes2615 ? Yes
reduction Yes2142 Yes2615 ? Yes
release Yes14 Yes2615 ? Yes
threshold Yes14 Yes2615 ? Yes

1. Before Chrome 59, the default values were not supported.

2. Before version 52, this was an AudioParam..

See also

Autorzy i etykiety dokumentu

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