Source code
Revision control
Copy as Markdown
Other Tools
/**
* @class GainProcessor
* @extends AudioWorkletProcessor
*
* This processor class demonstrates the bare-bone structure of the processor.
*/
class GainProcessor extends AudioWorkletProcessor {
static get parameterDescriptors() {
return [
{name: 'gain', defaultValue: 0.707}
];
}
constructor() {
super();
}
process(inputs, outputs, parameters) {
let input = inputs[0];
let output = outputs[0];
let gain = parameters.gain;
for (let channel = 0; channel < input.length; ++channel) {
let inputChannel = input[channel];
let outputChannel = output[channel];
if (gain.length === 1) {
for (let i = 0; i < inputChannel.length; ++i)
outputChannel[i] = inputChannel[i] * gain[0];
} else {
for (let i = 0; i < inputChannel.length; ++i)
outputChannel[i] = inputChannel[i] * gain[i];
}
}
return true;
}
}
registerProcessor('gain', GainProcessor);