- From: Marcus Geelnard <mage@opera.com>
- Date: Wed, 12 Jun 2013 12:39:11 +0200
- To: "Ehsan Akhgari" <ehsan.akhgari@gmail.com>, "Chris Wilson" <cwilso@google.com>
- Cc: "public-audio@w3.org" <public-audio@w3.org>
- Message-ID: <op.wykajlsgm77heq@mage-speeddemon>
Den 2013-06- 01:58:58 skrev Chris Wilson <cwilso@google.com>: > On Tue, Jun 11, 2013 at 4:44 PM, Ehsan Akhgari <ehsan.akhgari@gmail.com> > wrote: >> On Tue, Jun 11, 2013 at 7:30 PM, Chris Wilson <cwilso@google.com> wrote: >>> Why would passing through the input make more sense to you? >> >> Because that's what many of the other processing nodes (such as >> GainNode, DelayNode, etc) do by default, so it seems more consistent. > > Not exactly. GainNode and DelayNode simply initialize their parameters > to a given value that happens to result in a pass-through. Gain > obviously is set >to unity as a default; delay has zero as the initial > delayTime. Convolver isn't initialized to a buffer that results in > pass-through - it's essentially still in an >uninitialized state. Then might I suggest that we update the spec to actually define what the uninitialized state is? I would think that the most logical (and consistent) default state would be that of a unit impulse function (i.e. a buffer with length 1 and the value 1), effectively meaning zero delay and 0 dB gain. /Marcus > >>> [Constructor(AudioBuffer buffer)] >> interface ConvolverNode : AudioNode { >> boolean normalize; >> }; >> >> And that would eliminate the question of what to do with a null >> AudioBuffer altogether. > > True, although it's handy to be able to change the buffer later. >>> If I was using the convolver as an effects node in a mixer, passing >>> through the input until I set the buffer would "double up" the >>> original signal if the >>>effects mix were set to 50%. That seems >>> like odd behavior. >> >> I'm not quite sure what that means... Can you please clarify? > > If I'm using Convolver to get reverb on an effect send, I'd kind of > expect no original signal bleed-through until I initialize it. > >> Also, does this behavior for other node types surprise you in the same >> way? Really what's more interesting to me is consitency, one way or >> another. > > I see what you're saying, but from using the nodes, I don't think it's > actually consistency in the way you'd expect. BiquadFilter and > >DynamicsCompressor don't work this way, for example; however, I note > that Waveshaper does (explicitly just pass through), and it's the only > other >"through" node with a buffer, so perhaps that is the best > approach. > > Since Chris already agreed, go for it. I think it's slightly odd from > the usage side, but not that big a deal. -- Marcus Geelnard Technical Lead, Mobile Infrastructure Opera Software
Received on Wednesday, 12 June 2013 10:40:04 UTC