Script Processor onaudioprocess() gives up the ghost?

Hi -

     What might cause callbacks to  onaudioprocess()  for 
ScriptProcessorNode to suddenly cease?

I have the simplest architecture:
      ScriptProcessorNode (generating random noise)  -> Gain node -> 
audioContext.destination

When left to run, I get anywhere from 150 to 1500 successsive callbacks 
to onaudioprocess(), and then it just quits (leaving a dirty buffer for 
the gain node to read)

You can hear/see it here:
http://animatedsoundworks.com/jsaSound/ (select "JS Node Test" from the 
drop-down menu, and hit "play" and let it run)
     You can see the callbacks to onaudioprocess() logged in the console 
window. Sometime in the first minute, they just stop.

The core code:

             // ScriptProcessor to generate noise
             var noiseNode = 
config.audioContext.createScriptProcessor(config.k_bufferLength, 1, 1);
             noiseNode.onaudioprocess = function (e) {
                 var outBuffer = e.outputBuffer.getChannelData(0);
                 for (var i = 0; i < outBuffer.length; i += 1) {
                     outBuffer[i] = Math.random() * 2 - 1;
                 }
             }

             var gainLevelNode = config.audioContext.createGainNode();

             // Connect graph
             noiseNode.connect(gainLevelNode);
             gainLevelNode.connect(config.audioContext.destination);
             gainLevelNode.gain.value = .1;

To "start" and "stop" the sound, I just set the gain level.

If I am not doing something properly, I would be glad to know about it!
Thanks,
                  - lonce

Received on Tuesday, 19 February 2013 10:12:01 UTC