ChannelMergerNodeインタフェースは、反対の機能のChannelSplitterNode (en-US)と組み合わせて使用されることが多く、さまざまなモノラル入力を単一の出力に再結合します。 各入力は、出力のチャンネルを埋めるために使用されます。 これは各チャンネルに別々にアクセスするのに便利です、つまり 各チャンネルでゲインを別々に制御する必要がある場合にミキシングするのに有効です。

もしChannelMergerNodeに単一の出力があるが、マージするチャンネルと同じ数の入力がある場合、入力数はそのコンストラクタのパラメータおよびAudioContext.createChannelMergerの呼び出しとして定義されます。 値が指定されていない場合は、デフォルトの6になります。

ChannelMergerNodeを使用すると、レンダリングハードウェアが処理できるよりも多くのチャンネルで出力を作成することが可能です。 その場合、シグナルがAudioContext.listener オブジェクトに送信されると、余分なチャンネルは無視されます。

入力数 variable; default to 6.
出力数 1
チャンネルカウントモード "max"
チャンネルカウント 2 (デフォルトのカウントモードでは使用されません)
チャンネル判別 "speakers"


ChannelMergerNode() (en-US)


特定のプロパティはありません。 親であるAudioNodeからプロパティを継承しています。


特定のメソッドはありません。 親であるAudioNodeからメソッドを継承しています。


The following example shows how you could separate a stereo track (say, a piece of music), and process the left and right channel differently. To use them, you need to use the second and third parameters of the AudioNode.connect(AudioNode method, which allow you to specify both the index of the channel to connect from and the index of the channel to connect to.

var ac = new AudioContext();
ac.decodeAudioData(someStereoBuffer, function(data) {
 var source = ac.createBufferSource();
 source.buffer = data;
 var splitter = ac.createChannelSplitter(2);
 var merger = ac.createChannelMerger(2);

 // Reduce the volume of the left channel only
 var gainNode = ac.createGain();
 gainNode.gain.setValueAtTime(0.5, ac.currentTime);
 splitter.connect(gainNode, 0);

 // Connect the splitter back to the second input of the merger: we
 // effectively swap the channels, here, reversing the stereo image.
 gainNode.connect(merger, 0, 1);
 splitter.connect(merger, 1, 0);

 var dest = ac.createMediaStreamDestination();

 // Because we have used a ChannelMergerNode, we now have a stereo
 // MediaStream we can use to pipe the Web Audio graph to WebRTC,
 // MediaRecorder, etc.


Specification Status Comment
Web Audio API
ChannelMergerNode の定義

Browser compatibility

BCD tables only load in the browser

See also