W3cubDocs

/DOM

ConvolverNode

The ConvolverNode interface is an AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect. A ConvolverNode always has exactly one input and one output.

Note: For more information on the theory behind Linear Convolution, see the Convolution article on Wikipedia.

Number of inputs 1
Number of outputs 1
Channel count mode "clamped-max"
Channel count 2
Channel interpretation "speakers"

Constructor

ConvolverNode()
Creates a new ConvolverNode object instance.

Properties

Inherits properties from its parent, AudioNode.

ConvolverNode.buffer
A mono, stereo, or 4-channel AudioBuffer containing the (possibly multichannel) impulse response used by the ConvolverNode to create the reverb effect.
ConvolverNode.normalize
A boolean that controls whether the impulse response from the buffer will be scaled by an equal-power normalization when the buffer attribute is set, or not.

Methods

No specific method; inherits methods from its parent, AudioNode.

ConvolverNode Example

The following example shows basic usage of an AudioContext to create a convolver node.

Note: You will need to find an impulse response to complete the example below. See this Codepen for an applied example.

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

function base64ToArrayBuffer(base64) {
    var binaryString = window.atob(base64);
    var len = binaryString.length;
    var bytes = new Uint8Array(len);
    for (var i = 0; i < len; i++)        {
        bytes[i] = binaryString.charCodeAt(i);
    }
    return bytes.buffer;
}

...

var reverbSoundArrayBuffer = base64ToArrayBuffer(impulseResponse);
audioCtx.decodeAudioData(reverbSoundArrayBuffer, function(buffer) {
  reverb.buffer = buffer;
},
function(e) {
  alert('Error when decoding audio data ' + e.err);
})

Specifications

Browser compatibility

Feature Chrome Edge Firefox Internet Explorer Opera Safari
Basic support 14 Yes 25 No 15 6
ConvolverNode() constructor 55 ? 53 No 42 ?
buffer 14 Yes 25 No 15 6
normalize 14 Yes 25 No 15 6
Feature Android webview Chrome for Android Edge mobile Firefox for Android IE mobile Opera Android iOS Safari
Basic support 14 14 Yes 26 No 15 ?
ConvolverNode() constructor 55 55 ? 53 No 42 ?
buffer 14 14 Yes 26 No 15 ?
normalize 14 14 Yes 26 No 15 ?

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ConvolverNode