- From: Per Nyblom <perny843@hotmail.com>
- Date: Thu, 15 Mar 2012 21:54:13 +0000
- To: <public-audio@w3.org>
- Message-ID: <SNT131-W8F3B1AC75F11F1811331A805E0@phx.gbl>
Hi, I have some comments and questions for the latest Web Audio working draft (15 March 2012).The questions are about stuff that I could not find in the specification but I think should be in there. The AudioBufferSourceNode-------------------------What happens with the playback state when noteGrainOn() is called? Can you make several calls to noteGrainOn() or is it removed after the first scheduled call?If you can make several calls to noteGrainOn(), what happens when the noteOn/Offs overlap? Can you view it as addingthe buffers together or simply as a gate that is openened? The playback state should also be specified more clearly when the loop property is changed. If you set the loop propertyto false, does this make the playback state go to FINISHED after the next loop iteration is done? The AudioParam Interface------------------------Is it the exponential with base 10 that is used? What exactly is the timeConstant in setTargetValueAtTime(). It would be great with a formula like 10^(-timeConstant * t) or something. Dynamic Lifetime----------------What if a very long filter chain is set up that you want to reuse and then you add a one-shot sound and call noteOn().When the sound stops, the complete filter chain must be set up again and this seems a bit wasteful. A better way might beto have a flag for all nodes that determines whether they can be automatically removed or not.You should be able to reuse graphs without having to worry about these types of automatic removals. An example is when you want to create a synthesizer for Midi with a lot of notes playing at the same time, sending data througha filter chain (channel). When you use the current specification, the channel can suddenly get removed by the systemwhen no notes are played at the moment. You only have the choice of creating a copy of the complete channel each time a noteis played (wasteful) or create some kind of dummy, streaming node that prevents the chain from getting removed.A flag would be better I think. It could default to automatic remove, but it is important to be able to prevent this. Best regardsPer Nyblom
Received on Monday, 19 March 2012 07:36:03 UTC