- From: Chris Wilson <cwilso@google.com>
- Date: Thu, 7 Nov 2013 13:55:00 -0800
- To: s p <sebpiq@gmail.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: <CAJK2wqXP52HtZsE15L7b1ZtU8pTHMBx8+=vJsNZEM1QQUdU6tQ@mail.gmail.com>
Sure, a game developer is likely not programming the sounds himself. But I absolutely guarantee that a developer (i.e. non-sound-designer-type-person) will be implementing a volume control slider that's hooked up to a gain node's .value, and similar things. On Thu, Nov 7, 2013 at 1:20 PM, s p <sebpiq@gmail.com> wrote: > yes ... but my point is that in real life projects, the developers are not > doing the sound design, and probably shouldn't because it's hard enough to > be a good developer. > And 99% sound designers cannot code, and they probably shouldn't. It is > hard enough to be a good sound designer. > > It reminds me of a game audio workshop I attended a while ago. First > examples of game audio were some horrible early 8bits tunes, and the joke > was that at the time the developer was doing the whole thing, including > composing the music himself. > Providing this kind of high-level features on such a low-level, just to > make up for the user's lack of knowledge in the topic is kind of taking the > same perspective that the developer is going to do everything, like back in > the early 80s. > > > 2013/11/7 Chris Wilson <cwilso@google.com> > >> New developers come along all the time, though, and it's not illogical to >> consider that in the future, there will be sound designers who cut their >> sound design teeth on Web Audio. How are they going to learn about this? >> >> >> On Thu, Nov 7, 2013 at 11:39 AM, s p <sebpiq@gmail.com> wrote: >> >>> > "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 21:55:28 UTC