ConvolverNode: normalize property

The normalize property of the ConvolverNode interface is 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.

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.

Value

A boolean.

Examples

js

const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
const convolver = audioCtx.createConvolver();

// …

// grab audio track via XHR for convolver node

let soundSource;
let concertHallBuffer;

ajaxRequest = new XMLHttpRequest();
ajaxRequest.open("GET", "concert-crowd.ogg", true);
ajaxRequest.responseType = "arraybuffer";

ajaxRequest.onload = () => {
  let 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.normalize = false; // must be set before the buffer, to take effect
convolver.buffer = concertHallBuffer;

Specifications

Specification
Web Audio API
# dom-convolvernode-normalize

Browser compatibility

BCD tables only load in the browser

See also