- From: Karl Tomlinson <karlt+public-audio@karlt.net>
- Date: Tue, 24 Dec 2013 15:21:19 +1300
- To: Olivier Thereaux <olivier.thereaux@bbc.co.uk>
- Cc: Audio WG <public-audio@w3.org>
Olivier Thereaux writes: > We discussed this issue again at our last teleconference, and confirmed the > resolution to have .value effectively be an alias for setTargetAtTime() - with > time constants TBD. If the .value setter were required to behave equivalently to setTargetAtTime(newValue, TBDStartTime, TBDTimeConstant), then it would become a problem for DelayNode implementations to "make the transition smoothly, without introducing noticeable clicks or glitches to the audio stream." The current Blink and Gecko implementations don't make the transition smoothly with setTargetAtTime. I understand the general consensus was that the values from the client-specified automation functions should be used directly. These DelayNode implementations could be changed to transition smoothly even for automation method changes, but this would remove control from the client, which may wish to change the delay immediately or generate controlled Doppler effects. > On 23 Dec 2013, at 10:04, Karl Tomlinson <karlt+public-audio@karlt.net> wrote: >> Using an AudioParam transition to dezipper prevents nasty >> surprises on a GainNode, but applying the same transition to some >> other AudioParams would /introduce/ nasty surprises. > > Understood, but from what I gathered from our discussions, the > group favoured consistency and clarity over the management of > many edge case which may or may not “do the right thing”. Thank you for the explanation. If consistency and clarity is preferred over doing the right thing, then please don't require any added magic, but leave the .value setter as making the change immediately for all AudioParams. That is the clearest solution and doesn't introduce any unexpected effects. > If .value is an alias to setTargetAtTime (and thus systematically smoothed) > and the spec makes it clear that non-smoothed transition can be achieved > through SetValueAtTime(), A non-smoothed transition would not be possible for DelayNode, as explained above.
Received on Tuesday, 24 December 2013 02:22:22 UTC