question on channel merger layout determination

Due to a random query about panning by Doug S, I recently ran into a behavior on Firefox that seems like a bug, but I want to make sure it’s not some kind of spec issue.

On FF, if you feed a ChannelMergerNode with 2 mono inputs coming from GainNode outputs, and the GainNode assigned to the Right merger channel has a gain value of exactly zero, the ChannelMerger output no longer has a stereo channel layout: it acts as a mono-to-mono merger (i.e. it acts as if there was only input 0, and input 1 is considered “inactive”).  With a nonzero gain value, the merger acts normally.

In Webkit and Blink, the merger acts consistently in stereo regardless of the upstream gain values.

See http://jsfiddle.net/JBerkovitz/5byng2cj/ for an example. (I was attempting to build my own equal power panner but ran into this issue — of course there’s an easy workaround, which is to prevent gain values from assuming a value of exactly zero, but that’s not the point.)

Does something need to be clarified in the spec about what an “inactive input” really means? I assumed it would mean an input that was simply not connected to anything, but this bug makes me wonder if there’s some ambiguity for implementors on this point. Or is this just an FF implementation bug (which I’m happy to file)?

.            .       .    .  . ...Joe

Joe Berkovitz
President

Noteflight LLC
Boston, Mass.
phone: +1 978 314 6271
www.noteflight.com
"Your music, everywhere"

Received on Thursday, 6 November 2014 15:46:37 UTC