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.
Syntax
baseAudioContext.createConvolver();
Returns
Example
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 applied examples/information, check out our Voice-change-O-matic demo (see app.js for relevant code).
var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); var convolver = audioCtx.createConvolver(); ... // grab audio track via XHR for convolver node var soundSource, concertHallBuffer; ajaxRequest = new XMLHttpRequest(); ajaxRequest.open('GET', 'concert-crowd.ogg', true); ajaxRequest.responseType = 'arraybuffer'; ajaxRequest.onload = function() { var audioData = ajaxRequest.response; audioCtx.decodeAudioData(audioData, function(buffer) { concertHallBuffer = buffer; soundSource = audioCtx.createBufferSource(); soundSource.buffer = concertHallBuffer; }, function(e){"Error with decoding audio data" + e.err}); } ajaxRequest.send(); ... convolver.buffer = concertHallBuffer;
Specifications
Specification | Status | Comment |
---|---|---|
Web Audio API The definition of 'createConvolver()' in that specification. |
Working Draft |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
createConvolver | Chrome
Full support
10
| Edge Full support ≤18 | Firefox
Full support
53
| IE No support No | Opera
Full support
22
| Safari
Full support
6
| WebView Android Full support Yes | Chrome Android Full support 33 | Firefox Android
Full support
53
| Opera Android
Full support
22
| Safari iOS
Full support
6
| Samsung Internet Android Full support 2.0 |
Legend
- Full support
- Full support
- No support
- No support
- See implementation notes.
- See implementation notes.
- Requires a vendor prefix or different name for use.
- Requires a vendor prefix or different name for use.