ScriptProcessorNode: audioprocess event
Deprecated
Avoid using this feature in new projects. This feature may be a candidate for removal from web standards or browsers.>
The audioprocess event of the ScriptProcessorNode interface is fired when an input buffer of a script processor is ready to be processed.
Note:
This feature was replaced by AudioWorklets and the AudioWorkletNode interface.
This event is not cancelable and does not bubble.
Syntax
Use the event name in addEventListener():
js
addEventListener("audioprocess", (event) => { })
Alternatively, assign to the event handler property of the interface:
js
onaudioprocess = (event) => { }
Event type
An AudioProcessingEvent. Inherits from Event.
Examples
js
scriptNode.addEventListener("audioprocess", (audioProcessingEvent) => {
// The input buffer is a song we loaded earlier
const inputBuffer = audioProcessingEvent.inputBuffer;
// The output buffer contains the samples that will be modified and played
const outputBuffer = audioProcessingEvent.outputBuffer;
// Loop through the output channels (in this case there is only one)
for (let channel = 0; channel < outputBuffer.numberOfChannels; channel++) {
const inputData = inputBuffer.getChannelData(channel);
const outputData = outputBuffer.getChannelData(channel);
// Loop through the 4096 samples
for (let sample = 0; sample < inputBuffer.length; sample++) {
// make output equal to the same as the input
outputData[sample] = inputData[sample];
// add noise to each output sample
outputData[sample] += (Math.random() * 2 - 1) * 0.2;
}
}
});
You could also set up the event handler using the onaudioprocess property (but note that this replaces other event listeners added using onaudioprocess, if any):
js
scriptNode.onaudioprocess = (audioProcessingEvent) => {
// …
};
Specifications
| Specification |
|---|
| Web Audio API> # eventdef-scriptprocessornode-audioprocess> |