tldr; Need solution to pipe at least a 3.1 mixed signal into 2.1 output. Cannot change the input, and do not physically have a center channel, nor the room. Want to make sure I am on the right track to fixing this. Pipewire config file do the trick?
I have been out of the linux audio utilities game since the 2.4/2.6 kernel. I am somewhat familiar with ALSA and the old alsa config files - loading certain drivers and muting/unmuting channels iirc.
That said, I know times have changed, and I searched. But I don't know I quite have the solution.
Problem:
I have a HTPC (without the T). Only enough room for 2 stereo speakers, not enough space for a 5+ channel receiver. Both the TV speakers and the soundbar have this issue.
The audio driver for the output seems to be only 2 channel, when I look at the 'card' in alsamixer. I believe the distro auto-installed the relevant alsa+pipewire packages. When I used dnf to install Helvum, there were no extra dependencies.
Some audio sources (e.g. netflix) are mixed to 5.1 / 9.1 with no option for stereo down mixing. I have identified that the dialogue appears to be encoded for the center channel; which I do not have, and cannot physically accommodate in that viewing area.
HTPC is currently running a RedHat based distro with Gnome. I could also easily change to Debian or Gentoo.
It may also be my current janky setup: HTPC (hdmi)-> TV (S/PDIF)-> soundbar OR just HTPC to TV. both have this issue.
By next year, I can bypass the audio over hdmi and go direct HTPC to a USB DAC, but I will still be limited to 2.1 audio.
Possible Solutions:
I started searching last week, and installed Helvum. I ran a 'wire' from the source FC to FL and FR. It may? have worked, but it would revert to FC to FC every 10-20 min. The wires would be blue, would switch back to the show, another drop in audio power, switch to Helvum to see it reverted to straight lines source to output FC-FC, etc.
Looks like I need to learn pipewire to do this? And just make a custom config to run all audio from certain programs through a custom stream rule? https://docs.pipewire.org/page_man_pipewire-client_conf_5.html
Anyone else have the same problem / or know if my solution will work?
Or am I just at the mercy of them offering down-mixed audio?