- From: Erik Werner <ew.rikner@gmail.com>
- Date: Thu, 19 Sep 2013 18:49:06 +0200
- To: public-audio-dev@w3.org
- Message-ID: <523B2B02.20307@gmail.com>
Hello everyone, I've been searching a solution for nearly two days now about this problem. I have a web audio api app that catches the microphone input. In one script processor i'm windowing the signal with a hanning window, which works fine this way: source -> windowScriptProcessorNode -> audioContext.destination Then i wanted to add another script processor like this: source -> windowScriptProcessorNode -> otherScriptProcessorNode -> audioContext.destination but at the inputBuffer of the otherScriptProcessorNode there are just zeros instead of the signal of windowScriptProcessorNode. Here is some code: var audioContext = new AudioContext(); //get microphone input via getUserMedia navigator.getUserMedia({audio: true}, function(stream) { //set up source var audioSource = audioContext.createMediaStreamSource(stream); audioSource.buffer = stream; //set up hanning window script processor node var windowScriptProcessorNode = audioContext.createScriptProcessor(BLOCKLENGTH,1,1); windowScriptProcessorNode.onaudioprocess = function(e){ var windowNodeInput = e.inputBuffer.getChannelData(0); var windowNodeOutput = e.outputBuffer.getChannelData(0); if (windowfunction==true) { windowNodeOutput = applyDspWindowFunction(windowNodeInput.subarray()); }else{ windowNodeOutput = windowNodeInput.subarray(); } } //some other script processor node, just passing through the signal var otherScriptProcessorNode = audioContext.createScriptProcessor(BLOCKLENGTH,1,1); otherScriptProcessorNode.onaudioprocess = function(e){ var otherNodeInput = e.inputBuffer.getChannelData(0); var otherNodeInput = e.outputBuffer.getChannelData(0); otherNodeInput = otherNodeInput.subarray(); } // this connnection works fine audioSource.connect(windowScriptProcessorNode); windowScriptProcessorNode.connect(audioContext.destination); /* // this connnection does NOT work audioSource.connect(windowScriptProcessorNode); windowScriptProcessorNode.connect(otherScriptProcessorNode); otherScriptProcessorNode.connect(audioContext.destination); */ } Did anyone ever connected two scriptProcessorNodes in a row? is there anything special, one has to account for?? Note that I use mono input and output for each node, i tested it with regular stereo, but that didn't made any difference to me. Would be great if some could help me out! Best regards, Erik
Received on Friday, 20 September 2013 16:20:15 UTC