DelayNode

DelayNodedelay-line を表す AudioNode の一種で、入力されたデータを指定された時間遅延して、出力します。DelayNode の入力と出力は常に 1つで、入力のチャンネル数と出力のチャンネル数は同じです。

The DelayNode acts as a delay-line, here with a value of 1s.

オーディオグラフに閉路がある場合、その中には最低 1 つの DelayNode がなければなりません。もし閉路中に DelayNode が存在しない場合、その閉路中のノードはミュートされます。

入力数 1
出力数 1
チャンネルカウントモード "max"
チャンネル数 2 (not used in the default count mode)
チャンネルの意味 "speakers"

属性

AudioNode の属性を継承しています。

DelayNode.delayTime 読取専用
a-rateAudioParam で、遅延させる時間を表します。

メソッド

固有のメソッドはありません。継承しているものは AudioNode をご覧ください。

使用例

We have created a simple example that allows you to play three different samples on a constant loop — see create-delay (you can also view the source code). If you just press the play buttons, the loops will start immediately; if you slide the sliders up to the right, then press the play buttons, a delay will be introduced, so the looping sounds don't start playing for a short amount of time.

var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();

var synthDelay = audioCtx.createDelay(5.0);

  ...

var synthSource;

playSynth.onclick = function() {
  synthSource = audioCtx.createBufferSource();
  synthSource.buffer = buffers[2];
  synthSource.loop = true;
  synthSource.start();
  synthSource.connect(synthDelay);
  synthDelay.connect(destination);
  this.setAttribute('disabled', 'disabled');
}

stopSynth.onclick = function() {
  synthSource.disconnect(synthDelay);
  synthDelay.disconnect(destination);
  synthSource.stop();
  playSynth.removeAttribute('disabled');
}

...

var delay1;
rangeSynth.oninput = function() {
  delay1 = rangeSynth.value;
  synthDelay.delayTime.setValueAtTime(delay1, audioCtx.currentTime);
}

仕様

仕様 状態 コメント
Web Audio API
DelayNode の定義
勧告  

ブラウザ互換性

BCD tables only load in the browser

関連情報