On surround channel nomenclature and remixing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2014-08-08 at 16:33 +0600, Alexander E. Patrakov wrote:
> Hello.
> 
> [Note: the whole e-mail is purely theoretical. I still don't have any 
> surround-sound system in my room. A salesman told me that I should buy 
> 5.1 speakers, not 7.1, because the TV is centered on the long side of 
> the room, and thus not enough space exists behind the listening area. I 
> agree with this argument - so will not be able to test what I am talking 
> about anyway.]
> 
> I tried to play surround-sound files using various players and look how 
> PulseAudio remixes things, and found some strange results.
> 
> First, let's start with a simple third-party 5.1 AC3 file:
> 
> http://distribution.bbb3d.renderfarming.net/audio/bbb3d_sunflower_soundtrack_surround.ac3
> 
> If you play it using ffplay, vlc, or with anything gstreamer-based, this 
> will yield the following channel map:
> 
> front-left,front-right,front-center,lfe,rear-left,rear-right (Surround 5.1).
> 
> If you use "mpv --channels 6", then it will yield this instead:
> 
> front-left,front-right,front-center,lfe,side-left,side-right
> 
> Now let's see what happens in PulseAudio when a user has 5.1 speakers.
> 
> With ffplay, vlc, and anything gstreamer-based, each channel's sound 
> comes to the correct speaker. With mpv, rear-left and rear-right 
> channels get remixed from other channels (if remixing is enabled), which 
> is bad. If remixing is disabled, then rear speakers stay silent, and the 
> sound in the corresponding channels gets lost. Obviously, the ffplay 
> result is correct here.

It's not obvious to me. It appears that there are different opinions
about how to assign channels in 5.1 and 7.1 setups. According to
http://en.wikipedia.org/wiki/Surround_sound there are two 5.1
"standards" and three 7.1 "standards". Dolby thinks that 5.1 should use
the side channels, and AC-3 is a Dolby format, so to me it sounds more
likely that mpv is correct here.

> And now let's see what happens if a user has 7.1 speakers.
> 
> With ffplay, vlc, and anything gstreamer-based, PulseAudio will send the 
> original signals to the channels mentioned in the channel map, and will 
> remix side-left and side-right outputs from the remaining channels. With 
> mpv, it will send the last two channels of the input stream to side-left 
> and side-right speakers, and remix rear-left and rear-right. That's 
> unless the user disables remixing.
> 
> If the user disables remixing, then, with ffplay, side channels will 
> remain silent, and with mpv, rear channels will be silent. However, I'd 
> guess that the mpv result is correct here. See 
> http://www.thx.com/consumer/home-entertainment/home-theater/surround-sound-speaker-set-up/ 
> - the "rear" channels have moved between 5.1 and 7.1 layouts. What 5.1 
> calls "rear" is actually "side" in 7.1 terminology.

No, the rear channels didn't move on that page. If you compare the
pictures for 7.1 and 5.1, you'll see that both have the Surround Left
and Surround Right channels at the same positions, the only difference
is that 7.1 has the Surround Back Left and Surround Back Right channels
added.

> See also http://www.razersupport.com/gaming-audio/razer-tiamat-71/ - in 
> particular, the answer to the "What is the difference between 5.1 and 
> 7.1 surround sound?" question.
> 
> How should PulseAudio deal with this nomenclature mess?

To make audio with the Dolby channel arrangement work better, we could
change the default device channel map to use the side channels for 5.1,
but that will then be worse for audio that uses a non-Dolby channel
arrangement. I have no idea what's the most common "standard".

Perhaps we should add special casing to the remapping code so that if
the source channel map is 5.1 with rear channels and the target channel
map is 5.1 with side channels or vice versa, we don't do any remixing,
but copy rear to side or vice versa.

If consistent behaviour for 5.1 -> 7.1 remapping is desired, we could
always feed the rear or side channels of the source to the side channels
of the target (or to the rear channels of the target, if that's how the
user prefers to have it).

-- 
Tanu



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux