BaseAudioContext: createConvolver() 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⁩.

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

A ConvolverNode.

Examples

Creating a convolver node

The following example shows how to use an AudioContext to create a convolver node. 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 for the code that is excerpted below).

js
const audioCtx = new AudioContext(); // … const convolver = audioCtx.createConvolver(); // … // Grab audio track via fetch() for convolver node try { const response = await fetch( "https://mdn.github.io/voice-change-o-matic/audio/concert-crowd.ogg", ); const arrayBuffer = await response.arrayBuffer(); const decodedAudio = await audioCtx.decodeAudioData(arrayBuffer); convolver.buffer = decodedAudio; } catch (error) { console.error( `Unable to fetch the audio file: ${name} Error: ${err.message}`, ); } 

Specifications

Specification
Web Audio API
# dom-baseaudiocontext-createconvolver

Browser compatibility

See also