If I create an audio context, the destination node has 2 channels (for stereo output) and the AudioWorkletNode appears to have 2 channels:
var audioContext = new AudioContext()
console.log(audioContext.destination.channelCount); // 2 channels
audioContext.audioWorklet.addModule('testworker.js').then(()=>{
var node = new AudioWorkletNode(audioContext, 'test');
console.log("channel count", node.channelCount); // also 2 channels?
node.connect(audioContext.destination);
});
However, within the process function, the output only has 1:
testworker.js:
class Test extends AudioWorkletProcessor {
process(inputs, outputs, parameters) {
console.log("output channels: ", outputs[0]); // Array [ Float32Array(128) ] (1 channel)
return false;
}
}
registerProcessor("test", Test);
Is there a way to specify the number of output channels for an audio worklet processor?
with the now-deprecated script processor system, you specify the number of inputs/outputs in the constructor: audioContext.createScriptProcessor(bufferSize, inputCount, outputCount)
but I don't see how to do that with audio worklets