- From: Olli Pettay <Olli.Pettay@helsinki.fi>
- Date: Thu, 24 May 2012 00:07:43 +0300
- CC: Audio Working Group <public-audio@w3.org>
On 05/23/2012 11:47 PM, Chris Rogers wrote: > Hi Joe, could you please add this as a comment in the ISSUE. Otherwise, it's going to be very difficult for me to track. Btw, as a generic comment, why does the WG use tracker which is limited to WG members only? I for example can't file any bugs. Many other WGs use bugzilla[1] -Olli [1] https://www.w3.org/Bugs/Public/ > > Thanks! > Chris > > On Wed, May 23, 2012 at 12:42 PM, Joseph Berkovitz <joe@noteflight.com <mailto:joe@noteflight.com>> wrote: > > Chris, > > I owe you a bit more detail on the loop points issue and the question of whole-sample looping. > > In my proposal I had suggested that loopStart/loopEnd be set to 0 and the sample length in order to loop the entire sample (iff the "loop" > attribute is set on the AudioBufferSourceNode). > > After some thought I think that while this behavior obviously makes sense when loopEnd is the sample length, it would be also advantageous to > define that whole-sample-looping occurs when loopStart == 0 and loopEnd == 0, and that these in fact be those attributes' default values. This > provides a guaranteed way to achieve the whole-sample-looping behavior regardless of what underlying AudioBuffer is set into the > AudioBufferSourceNode. > > ...Joe > > On Apr 30, 2012, at 12:31 PM, Audio Working Group Issue Tracker wrote: > >> Audio-ISSUE-12 (Joe Berkovitz): Loop start/stop points [Web Audio API] >> >> http://www.w3.org/2011/audio/track/issues/12 >> >> Raised by: Joe Berkovitz >> On product: Web Audio API >> >> Hi folks, >> >> At the F2F in January we discussed the need for a more powerful looping construct in AudioBufferSourceNode than simply "loop the whole sound", >> in order to support UC6 (wavetable synthesis) and other user cases. In particular, basic wavetable synths require the ability to start an audio >> buffer playing and then have it enter a loop in some arbitrary subrange of that sample [m..n]. Trying to achieve this via explicit scheduling >> of various subranges of a sample by calling noteGrainOn() feels unworkable since sample-accurate transitions from one subrange to another could >> not be achieved in this way -- and at any rate, it would be very unwieldy. The idea is that noteOn() should perform seamless repetition of the >> looped subrange of a sample as an integral part of its behavior. >> >> Somehow this idea has been lost, probably due to the coarse-grain definition of looping in the UC document as simply "Playing / Looping sources >> of audio". However it's an essential requirement for wavetable synthesis and my concern is that games and synths will be seriously compromised >> without it. >> >> I am proposing that there be separate loopStart and loopEnd properties of AudioBufferSourceNode that are sample-accurate. If respectively set >> to 0 and the length of the sample, these will cause the entire sample to be looped. If set to offsets M and N, these will cause the sample to >> be played by noteOn() and noteGrainOn() as if the sample consisted of contiguous subranges [0..M-1], [M..N], [M..N], ... >> >> Thanks! >> >> ...Joe >> >> >> > > ... . . . Joe > > *Joe Berkovitz* > President > > *Noteflight LLC* > 84 Hamilton St, Cambridge, MA 02139 > phone: +1 978 314 6271 <tel:%2B1%20978%20314%206271> > www.noteflight.com <http://www.noteflight.com> > >
Received on Wednesday, 23 May 2012 21:08:11 UTC