- From: Chris Wilson <cwilso@google.com>
- Date: Tue, 7 May 2013 13:27:49 -0700
- To: Josh Nielsen <josh@joshontheweb.com>
- Cc: "public-audio@w3.org" <public-audio@w3.org>
- Message-ID: <CAJK2wqXV8Vo42AJT4vW5s-Sim-iCa7EpLLgr93cp6KmQzBdB0A@mail.gmail.com>
Hey Josh- The real problem with this approach is that you simply can't "get" a callback at a precise time in audio-clock time. JavaScript, in a nutshell, just isn't a real-time language - the main thread may be busy with layout for a number of milliseconds, or it may be delayed by garbage collection. The best approach is what Web Audio does most of the time - scheduling events that are more bounded (i.e. don't call arbitrary JavaScript that may have side effects) for precise times in the future, which are calculated and executed on a separate thread. If a recorder node is added to Web Audio at some point, I would expect its "start recording" method to have a time parameter; however, in the mean time, you should pretty easily be able to replicate one by using a script processor node and just calculate where you are in the buffer (based on the .playbackTime on the audio processing event), and just grab a part of a buffer. On Tue, May 7, 2013 at 11:24 AM, Josh Nielsen <josh@joshontheweb.com> wrote: > Hi all, this is my first time posting to the group, please let me know if > I am breaking any etiquette. I'm very excited to see the webaudio api > shaping up! > > I think I have seen this brought up before but I want to throw my vote in > for a way to schedule callbacks to fire at a future time. I am in the > process of building a synthesizer/loop recorder and I need to do things > like start recording audio at a specific time in the future. Currently I > am using a javascript node's onaudioprocess callback (as per suggested her > in the past) to get close enough but the granularity is based on the buffer > length and it is not exact. It would be really handy to bind a callback to > be fired in the future just like you can with an oscillators .start(). You > can see a prototype of what I'm talking about here > http://grooveclock.com/synth.html > > tl;dr - +1 for arbitrary callbacks scheduled at a future time > > -- > Thanks, > Josh Nielsen > @joshontheweb <http://twitter.com/joshontheweb> > joshontheweb.com >
Received on Tuesday, 7 May 2013 20:28:21 UTC