You have heard the story “I have moved to Linux (arch btw).”, well… this is also my story. Anyways I have problems with my headset’s virtual surround. I realized that almost all of the drivers are just simply not working on Linux, but also that there are a bunch of alternatives. I have a HyperX cloud 2 (it was cheap), it’s 5.1 by default and 7.1 if toggled. Since I switched to Linux it has been stereo only. And I also feel like the sound quality is worse.
I heard somewhere that any headset can be virtual surround if configured correctly. And they sell “gaming junk” because people don’t know of this. I’m writing this so that hopefully some of you can teach me how to make any headset surround. I feel like I also must learn how to do this if I’m planning on gaming on Linux.
PS: I tough about buying an actual good headphone, but if it’s not capable of surround than that’s kind of a deal-breaker. I don’t play that much, but I remember playing shooters on stereo and they were unplayable, I wouldn’t like to lock myself out of those kinds of games.
I took https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/src/daemon/filter-chain/sink-virtual-surround-7.1-hesuvi.conf, and replaced hrir_hesuvi/hrir.wav with the full path to atmos.wav, which I downloaded from https://airtable.com/appayGNkn3nSuXkaz/shruimhjdSakUPg2m/tbloLjoZKWJDnLtTc
Here seems to be a walkthrough of it: https://forum.endeavouros.com/t/virtual-surround-sound-in-pipewire/24958
I also tried jconvolver in the past, but often hit issues when combined with pipewire. Pipewire’s native virtual surround support just works when configured correctly.
You can change the default sink to go to the virtual surround device this way:
pactl list short sinks # get sink name pactl set-default-sink <set default sink>
There will be a way to set the default in the pipewire config files (~/.config/pipewire/pipewire.conf.d/*), too.
I use “catia” when I want to do manual audio routing, and I guess similar is possible with pavucontrol.