Re: channel layouts and up/down mixing

On Fri, Jan 11, 2013 at 2:14 PM, Robert O'Callahan <robert@ocallahan.org>wrote:

> On Sat, Jan 12, 2013 at 10:55 AM, Chris Wilson <cwilso@google.com> wrote:
>
>> Chris and I had a few conversations about this a while ago.  I think my
>> simplistic summary of that was "it is probably ration to assume that a
>> 2-channel layout is stereo.  Any other layout, the user should probably
>> have to tell us that."  It's quite possible that 8-channel device is a 7.1
>> surround device; but it's just as likely that it's simply an 8-channel i/o
>> device, plugged in to my mixer.
>>
>
> Is it really "just as likely"? Given we have to have defaults, our
> defaults need to match the most likely configurations. Is 7.1 so rare that
> a browser user is no more likely to have 7.1 than some other 8-channel
> setup?
>
> I know that most people on this list are audio professionals, but let's
> not lose sight of the fact that 99.999% of users (and 99.9% of Web
> developers) are not.
>

I'm not opposed to adding 7.1 into the currently defined layouts in the
spec.  But obviously, given your example, I think it's best that we have a
way to distinguish these types of cases where the number of channels is
ambiguous.  If we had a .channelLayout attribute, this might be something
as simple as defining constants for different speaker layouts, and also
having a constant called something like DISCRETE_CHANNELS if it's just an
8-channel device with channels uninterpreted.

Some operatings systems allow you to query the hardware setup so you can
know the speaker config.  In this case, the AudioContext could have
.channelLayout be set to that value.  In the case the OS doesn't have that
ability or the information isn't known, then certain inferences could be
made, like STEREO (if N==2).  Also, I think it's going to be interesting to
allow this attribute to be settable, for example if the developer wishes to
set it to DISCRETE_CHANNELS, when the application knows for sure that it's
not dealing with speaker-specific information, and wants to avoid any
undesired generic mixing behavior.

I'm hoping to get multi-channel output working in WebKit soon, so we can
get some real-world experience with how this all works in the real-world in
the hands of both basic and advanced users.

Chris


>
> Rob
> --
> Jesus called them together and said, “You know that the rulers of the
> Gentiles lord it over them, and their high officials exercise authority
> over them. Not so with you. Instead, whoever wants to become great among
> you must be your servant, and whoever wants to be first must be your
> slave — just as the Son of Man did not come to be served, but to serve,
> and to give his life as a ransom for many.” [Matthew 20:25-28]
>

Received on Friday, 11 January 2013 22:36:21 UTC