Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Revision 663711 of ConvolverNode

  • Revision slug: Web/API/ConvolverNode
  • Revision title: ConvolverNode
  • Revision id: 663711
  • Created:
  • Creator: chrisdavidmills
  • Is current revision? No
  • Comment

Revision Content

{{ APIRef() }}

The ConvolverNode interface is an {{domxref("AudioNode")}} that performs a Linear Convolution on a given {{domxref("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 W3C Web Audio API spec section, Linear Effects Using Convolution, or read the The Wikipedia Linear Convolution Article.

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

Properties

Inherits properties from its parent, {{domxref("AudioNode")}}.

{{domxref("ConvolverNode.buffer")}}
A mono, stereo, or 4-channel {{domxref("AudioBuffer")}} containing the (possibly multichannel) impulse response used by the ConvolverNode to create the reverb effect. This is normally a simple recording of as-close-to-an-impulse as can be found in the space you want to model. For example, if you want to model the reverb in your bathroom, you might set up a microphone near the door to record the sound of a balloon pop or synthesized impulse from the sink. That audio recording could then used as the buffer.
This 
{{domxref("AudioBuffer")}} must have the same sample-rate as the AudioContext or an exception will be thrown. At the time when this attribute is set, the buffer and the state of the attribute will be used to configure the ConvolverNode with this impulse response having the given normalization. The initial value of this attribute is null.
{{domxref("ConvolverNode.normalize")}}
Controls whether the impulse response from the buffer will be scaled by an equal-power normalization when the buffer attribute is set. Its default value is true in order to achieve a more uniform output level from the convolver, when loaded with diverse impulse responses. If normalize is set to false, then the convolution will be rendered with no pre-processing/scaling of the impulse response. Changes to this value do not take effect until the next time the buffer attribute is set.

Methods

No specific method; inherits methods from its parent, {{domxref("AudioNode")}}.

Example

{{page("/en-US/docs/Web/API/AudioContext.createConvolver","Example")}}

Specifications

Specification Status Comment
{{SpecName('Web Audio API', '#the-convolvernode-interface', 'ConvolverNode')}} {{Spec2('Web Audio API')}}  

Browser compatibility

{{CompatibilityTable}}
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support {{CompatChrome(10.0)}}{{property_prefix("webkit")}} {{CompatGeckoDesktop(25.0)}}  {{CompatNo}} 15.0{{property_prefix("webkit")}}
22 (unprefixed)
6.0{{property_prefix("webkit")}}
Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support {{CompatUnknown}} 26.0 1.2 {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} 33.0

See also

Revision Source

<p>{{ APIRef() }}</p>
<p>The <code>ConvolverNode</code> interface is an&nbsp;{{domxref("AudioNode")}} that&nbsp;performs a Linear Convolution on a given {{domxref("AudioBuffer")}}, often used to achieve a reverb effect. A <code>ConvolverNode</code> always has exactly one input and one output.</p>
<div class="note">
 <p><strong>Note</strong>: For more information on the theory behind Linear Convolution, see the W3C Web Audio API spec section, <a href="https://webaudio.github.io/web-audio-api/#linear-effects-using-convolution">Linear Effects Using Convolution</a>, or read the The <a href="https://en.wikipedia.org/wiki/Linear_convolution">Wikipedia Linear Convolution Article</a>.</p>
</div>
<ul class="audionodebox">
 <li><dfn>Number of inputs</dfn> <code>1</code></li>
 <li><dfn>Number of outputs</dfn> <code>1</code></li>
 <li><dfn>Channel count mode</dfn> <code>"clamped-max"</code></li>
 <li><dfn>Channel count</dfn> <code>2</code></li>
 <li><dfn>Channel interpretation</dfn> <code>"speakers"</code></li>
</ul>
<h2 id="Properties">Properties</h2>
<p><em>Inherits properties from its parent, </em><em>{{domxref("AudioNode")}}</em>.</p>
<dl>
 <dt>
  {{domxref("ConvolverNode.buffer")}}</dt>
 <dd>
  <span>A mono, stereo, or 4-channel&nbsp;</span><em>{{domxref("AudioBuffer")}}</em><span>&nbsp;containing the (possibly multichannel) impulse response used by the <code>ConvolverNode</code> to create the reverb effect. This is normally a simple recording of as-close-to-an-impulse as can be found in the space you want to model. For example, if you want to model the reverb in your bathroom, you might set up a microphone near the door to record the sound of a balloon pop or synthesized impulse from the sink. That audio recording could then used as the buffer.<br />
  This&nbsp;</span><em>{{domxref("AudioBuffer")}}</em><span>&nbsp;must have the same sample-rate as the <code>AudioContext</code> or an exception will be thrown. At the time when this attribute is set, the buffer and the state of the attribute will be used to configure the <code>ConvolverNode</code> with this impulse response having the given normalization. The initial value of this attribute is <code>null</code>.</span></dd>
 <dt>
  {{domxref("ConvolverNode.normalize")}}</dt>
 <dd>
  <span>Controls whether the impulse response from the buffer will be scaled by an equal-power normalization when the buffer attribute is set. Its default value is <code>true</code> in order to achieve a more uniform output level from the convolver, when loaded with diverse impulse responses. If normalize is set to <code>false</code>, then the convolution will be rendered with no pre-processing/scaling of the impulse response. Changes to this value do not take effect until the next time the <code>buffer</code> attribute is set.</span></dd>
</dl>
<h2 id="Methods">Methods</h2>
<p><em>No specific method; inherits methods from its parent, </em><em>{{domxref("AudioNode")}}</em>.</p>
<h2 id="Examples">Example</h2>
<p>{{page("/en-US/docs/Web/API/AudioContext.createConvolver","Example")}}</p>
<h2 id="Specifications">Specifications</h2>
<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('Web Audio API', '#the-convolvernode-interface', 'ConvolverNode')}}</td>
   <td>{{Spec2('Web Audio API')}}</td>
   <td>&nbsp;</td>
  </tr>
 </tbody>
</table>
<h2 id="Browser_compatibility">Browser compatibility</h2>
<div>
 {{CompatibilityTable}}</div>
<div id="compat-desktop">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>Feature</th>
    <th>Chrome</th>
    <th>Firefox (Gecko)</th>
    <th>Internet Explorer</th>
    <th>Opera</th>
    <th>Safari (WebKit)</th>
   </tr>
   <tr>
    <td>Basic support</td>
    <td>{{CompatChrome(10.0)}}{{property_prefix("webkit")}}</td>
    <td>{{CompatGeckoDesktop(25.0)}}&nbsp;</td>
    <td>{{CompatNo}}</td>
    <td>15.0{{property_prefix("webkit")}}<br />
     22 (unprefixed)</td>
    <td>6.0{{property_prefix("webkit")}}</td>
   </tr>
  </tbody>
 </table>
</div>
<div id="compat-mobile">
 <table class="compat-table">
  <tbody>
   <tr>
    <th>Feature</th>
    <th>Android</th>
    <th>Firefox Mobile (Gecko)</th>
    <th>Firefox OS</th>
    <th>IE Mobile</th>
    <th>Opera Mobile</th>
    <th>Safari Mobile</th>
    <th>Chrome for Android</th>
   </tr>
   <tr>
    <td>Basic support</td>
    <td>{{CompatUnknown}}</td>
    <td>26.0</td>
    <td>1.2</td>
    <td>{{CompatUnknown}}</td>
    <td>{{CompatUnknown}}</td>
    <td>{{CompatUnknown}}</td>
    <td>33.0</td>
   </tr>
  </tbody>
 </table>
</div>
<h2 id="See_also">See also</h2>
<ul>
 <li><a href="/en-US/docs/Web_Audio_API/Using_Web_Audio_API">Using the Web Audio API</a></li>
</ul>
Revert to this revision