- From: s p <sebpiq@gmail.com>
- Date: Thu, 7 Nov 2013 21:40:10 +0200
- To: Chris Wilson <cwilso@google.com>
- Cc: Joseph Berkovitz <joe@noteflight.com>, Marcus Geelnard <mage@opera.com>, Chris Lowis <chris.lowis@gmail.com>, Audio WG <public-audio@w3.org>
- Message-ID: <CAGKuoCU2FcGV5zew5Tn_D=_1qeikqiVNe1Vcicd1bFmTMZBtBg@mail.gmail.com>
Raaa ... here I am complaining again. Sorry :) I'll stop right now. 2013/11/7 s p <sebpiq@gmail.com> > > "Anybody who has a little bit of experience in handling audio" is not > our (entire) market. > > Unfortunately. To me that's were the "direction" I mentioned earlier is > wrong. Because in the end it is not developers who do the sound. So they > shouldn't be the ones to care about these kind of issues. The sound > designer knows about this problem, and he'll be the one dealing with this. > > > 2013/11/7 Chris Wilson <cwilso@google.com> > >> I'm going to express an opinion, too. :) Actually, two of them: >> 1) "Anybody who has a little bit of experience in handling audio" is not >> our (entire) market. Many web developers will never have heard of this. >> 2) Advisory notes will have no impact on this problem, because this will >> be buried down thirty pages in to the spec. A new-to-Web-Audio web >> developer won't read through that, they'll just wonder why their audio >> sounds grungy. >> >> sp: yes, you can schedule brutal changes with setValueAtTime - you can >> today. The issue is what happens with .value. >> >> I'm starting to think the best way to fix this, actually, is to expose a >> "dezippering" property on AudioParam, that defaults to on but 1) makes it >> obvious what's happening, and 2) makes it easy to turn off. >> >> >> On Thu, Nov 7, 2013 at 11:09 AM, Joseph Berkovitz <joe@noteflight.com>wrote: >> >>> This feels like a good time to throw out opinions, so… >>> >>> I understand Chris R’s rationale, but like Marcus I think the automatic >>> dezippering was a mistake and will lead to the kind of impossible decisions >>> that Chris W is starting down, about where it makes or doesn’t make sense. >>> We’ll probably never agree on those issues because there are equally valid >>> arguments for any given configuration of dezippering-or-not. >>> >>> So I would rather see the default behavior be no dezippering, and go the >>> advisory-note route of recommending the use of exponentialRampAtTime(). >>> Additionally, we might provide a simplified version of the latter function >>> that has the semantics (but not the ugly name) of setDezipperedValue(). >>> >>> On Nov 7, 2013, at 1:23 PM, Chris Wilson <cwilso@google.com> wrote: >>> >>> Chris (Rogers)' reasoning behind implementing this way to begin with was >>> that most users simply don't know about this at all. >>> >>> My personal feeling on this is that there are some scenarios that >>> automatically applying dezippering on makes sense, and some it does not. >>> For example, it would make sense to dezipper volume control; however, it >>> does not make sense to dezipper frequency control. This leads me to think >>> that it might be good to apply to gain.gain.value, but not to >>> oscillator.frequency.value, for example. >>> >>> >>> On Thu, Nov 7, 2013 at 3:51 AM, Marcus Geelnard <mage@opera.com> wrote: >>> >>>> 2013-11-07 12:23, Chris Lowis skrev: >>>> >>>> Hi! >>>>> >>>>> There's a task for me to look into how "dezippering" is performed in >>>>> Webkit and to explain how and why we do it. >>>>> >>>>> I've put together a quick demo to show the effect of dezippering >>>>> >>>>> http://blog.chrislowis.co.uk/demos/dezippering/ >>>>> >>>>> And made some notes on how it is implemented on this ticket: >>>>> >>>>> https://github.com/WebAudio/web-audio-api/issues/76 >>>>> >>>>> I think it's open for debate whether we clarify dezippering (I think >>>>> I'd prefer to use the term "parameter smoothing") in the spec, and all >>>>> of the parameters to which it applies by default, or whether we move >>>>> to remove mention of it altogether and perhaps add an advisory note >>>>> about preventing glitches by using exponentialRampToValueAtTime() for >>>>> example. >>>>> >>>>> For that reason, I haven't prepared a PR. Perhaps we can discuss it >>>>> here first and I can prepare one later. >>>>> >>>> >>>> In general I prefer not to have too much magic going on behind the >>>> scenes. >>>> >>>> The automatic smoothing (dezippering) in Web Audio reminds me of when >>>> progress bar smoothing logic was added to Windows Vista. In an attempt to >>>> create a more pleasant experience for the user, the new implementation left >>>> developers unable to control the progress bar the way they wanted to [1] >>>> (e.g. reaching 100% progress was almost impossible without fooling the API >>>> by utilizing known quirks in the underlying progress bar smoothing >>>> implementation). >>>> >>>> Let's not repeat that mistake. Unless there are strong use cases for >>>> automatic parameter smoothing that can not be handled using explicit >>>> interfaces, I'd prefer dropping it in favor of explicit interfaces. >>>> >>>> /Marcus >>>> >>>> >>>> >>>> [1] http://stackoverflow.com/questions/1061715/how-do-i- >>>> make-tprogressbar-stop-lagging >>>> >>>> >>>> >>>>> Cheers, >>>>> >>>>> Chris >>>>> >>>>> >>>> >>>> -- >>>> Marcus Geelnard >>>> Technical Lead, Mobile Infrastructure >>>> Opera Software >>>> >>>> >>>> >>> >>> . . . . . ...Joe >>> >>> *Joe Berkovitz* >>> President >>> >>> *Noteflight LLC* >>> Boston, Mass. >>> phone: +1 978 314 6271 >>> www.noteflight.com >>> "Your music, everywhere" >>> >>> >> > > > -- > > *Sébastien Piquemal * > > -----* @sebpiq* > ----- http://github.com/sebpiq > ----- http://funktion.fm > -- *Sébastien Piquemal* -----* @sebpiq* ----- http://github.com/sebpiq ----- http://funktion.fm
Received on Thursday, 7 November 2013 19:40:38 UTC