BaseAudioContext: createDelay() method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
ThecreateDelay() method of theBaseAudioContext Interface is used to create aDelayNode,which is used to delay the incoming audio signal by a certain amount of time.
Note:TheDelayNode()constructor is the recommended way to create aDelayNode; seeCreating an AudioNode.
In this article
Syntax
createDelay(maxDelayTime)Parameters
maxDelayTimeOptionalThe maximum amount of time, in seconds, that the audio signal can be delayed by.Must be less than 180 seconds, and defaults to 1 second if not specified.
Return value
ADelayNode. The defaultDelayNode.delayTime is 0seconds.
Examples
We have created an example that allows you to play three different samples on aconstant loop — seecreate-delay (you can alsoview the source code). Ifyou just press the play buttons, the loops will start immediately; if you slide thesliders up to the right, then press the play buttons, a delay will be introduced, so thelooping sounds don't start playing for a short amount of time.
const audioCtx = new AudioContext();const synthDelay = audioCtx.createDelay(5.0);// …let synthSource;playSynth.onclick = () => { synthSource = audioCtx.createBufferSource(); synthSource.buffer = buffers[2]; synthSource.loop = true; synthSource.start(); synthSource.connect(synthDelay); synthDelay.connect(destination); this.setAttribute("disabled", "disabled");};stopSynth.onclick = () => { synthSource.disconnect(synthDelay); synthDelay.disconnect(destination); synthSource.stop(); playSynth.removeAttribute("disabled");};// …let delay1;rangeSynth.oninput = () => { delay1 = rangeSynth.value; synthDelay.delayTime.setValueAtTime(delay1, audioCtx.currentTime);};Specifications
| Specification |
|---|
| Web Audio API> # dom-baseaudiocontext-createdelay> |