W3C home > Mailing lists > Public > public-audio@w3.org > April to June 2012

Re: Audio-ISSUE-12 (JLoop start/stop points) [Web Audio API]

From: Chris Wilson <cwilso@google.com>
Date: Wed, 23 May 2012 14:11:59 -0700
Message-ID: <CAJK2wqWYgJtVPpkFNTAiAr8WLV=KeY1Onenhq=ybE4yKgb_UKw@mail.gmail.com>
To: olli@pettay.fi
Cc: public-audio@w3.org
You need a W3C account, but I'm not sure you need to be a Member, per se -
http://www.w3.org/Help/Account/ says you can request a public account.

I think the main reason the W3C tends to use tracker for issues is that
it's integrated with their RRSAgent system for meetings, so it's trivially
easy to create issues and action items during an IRC chat (as you could see
during the meeting today).


On Wed, May 23, 2012 at 2:07 PM, Olli Pettay <Olli.Pettay@helsinki.fi>wrote:

> 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/ <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<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:12:30 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 23 May 2012 21:12:31 GMT