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.
const audioCtx = new (window.AudioContext || window.webkitAudioContext)();
const convolver = audioCtx.createConvolver();
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;
convolver.buffer = concertHallBuffer;