# Best way to upmix stereo sound to 7.1?



## tgreitersbichler (Jan 31, 2012)

Hi everyone here, this is my first post!

I am curious on how to get FreeBSD to play stereo sound in 7.1, so when I play a normal mono/stereo sound file, it's sound should be duplicated to all 8 channels. It shouldn't be a setting in a specific player, but default for all software trying to play sound.

This seems to work out of the box with Linux/ALSA, and with OpenBSD's sndio it's just a matter of starting the aucat daemon at boot.

So I wanted to know how I can do that in FreeBSD, whose OSS otherwise is a great sound system: It never does something odd on me, and I've been using it for quite some time now.

Can it be configured via a sysctl/mixer setting or do I have to start some kind of sound server (please not PulseCrap, that's one of the most unreliable pieces of software I have encountered).

Thanks in advance
Tom


----------



## mav@ (Jan 31, 2012)

sound(4) channel transformation matrices define no channel duplication during up-mix, except for mono-to-stereo. My personal position is that any channel up-/down-mix can never make sound better, but can easily harm. Having half dozen of different advanced up-mix methods in my receiver and trying them from time to time, I am each time getting to conclusion that it is only kind of toy. In best case effects could be interesting for some time. In worst case it completely breaks sound source localization and because of different speakers distances it will eat sound details. I understand your wish to justify money spent on 7.1 acoustics. But you will get much more if now you buy 7.1 content for it.

If you want to have 7.1 sound, use 7.1 content!


----------



## mav@ (Jan 31, 2012)

PS: If you are using snd_hda driver with analog audio connectors, you may hack channel pair mapping there. In /usr/src/sys/dev/sound/pci/hda/hdac.c inside hdac_stream_setup() function you may find chmap array that maps channel pairs for different number of channels in content to the specific connectors. Changing there 0x0001 to 0x1101 will make stereo content to be played via every connector except Center/LFE.


----------

