BaseAudioContext: createConvolver() method
The createConvolver()
method of the BaseAudioContext
interface creates a ConvolverNode
, which is commonly used to apply
reverb effects to your audio. See the spec definition of Convolution for more information.
Note: The ConvolverNode()
constructor is the recommended way to create a ConvolverNode
; see
Creating an AudioNode.
Syntax
js
createConvolver()
Parameters
None.
Return value
Examples
The following example shows basic usage of an AudioContext to create a convolver node. The basic premise is that you create an AudioBuffer containing a sound sample to be used as an ambience to shape the convolution (called the impulse response,) and apply that to the convolver. The example below uses a short sample of a concert hall crowd, so the reverb effect applied is really deep and echoey.
For more complete applied examples/information, check out our Voice-change-O-matic demo (see app.js lines 108–193 for relevant code).
js
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
const convolver = audioCtx.createConvolver();
// …
// grab audio track via XHR for convolver node
let soundSource, concertHallBuffer;
ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("GET", "concert-crowd.ogg", true);
ajaxRequest.responseType = "arraybuffer";
ajaxRequest.onload = () => {
const audioData = ajaxRequest.response;
audioCtx.decodeAudioData(
audioData,
(buffer) => {
concertHallBuffer = buffer;
soundSource = audioCtx.createBufferSource();
soundSource.buffer = concertHallBuffer;
},
(e) => console.error(`Error with decoding audio data: ${e.err}`)
);
};
ajaxRequest.send();
// …
convolver.buffer = concertHallBuffer;
Specifications
Specification |
---|
Web Audio API # dom-baseaudiocontext-createconvolver |
Browser compatibility
BCD tables only load in the browser