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.
So yeah, people have gotten hrtf surround sound stuff going with pulse audio, some searching around that should get you where you want.
Butt your last statement about games being “unplayable” in stereo is pretty silly, too, so I want to call that out. Don’t be silly. They aren’t “unplayable”, you aren’t “locked out,” thats silly. 99% of people that have ever played that game played in stereo.
I mean when i switched from stereo to surround it was like a whole new chapter. I got pseudo wallhacks I’m never going back. But I agree it’d be pretty silly to play RTS or city builders with it. Anyways thanks for the lead!
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.
Lots of links and names. I think I know how I’m spending my afternoon. Thanks!
deleted by creator
Alright, thanks for the lead, will try what it’s saying but atm I have no idea what
HRIR Convolver
orSOFA Spatializer
isThe post explains them quite well. HRIR (Head-Related Impulse Response) and SOFA (Spacially Oriented Format for Acoustics) are standards for representing spacial audio (surround sound) in audio files and streams. A convolver is something that performs convolution (a mathematical term for taking one function, applying it to another, and then producing a third function as a result), and a spatializer is more specifically something that, as the name suggests, gives “space” to audio (distorting audio to represent sounds coming from more than simply 2 directions, or again, what you call surround sound). So HRIR Convolver is simply a method to apply the HRIR function to audio to represent it in a way our brain would interpret as 3D audio, and SOFA Spatializer is simply a method to do the same thing, just with the SOFA standard instead of the HRIR standard. Based on the comments of the post, it seems that they recommend you use SOFA.
In either case, Pipewire supports both standards, and it is trivially easy to implement them through filters (as the post covers in depth). You could try both if you want and see which you prefer. If you’re unfamiliar with managing Pipewire and need further resources, the Arch wiki has an entry in great length about it here. I’d recommend reading the comments to that post first if you struggle with anything, such as persistence. Everything you need to set it up should be accessible in that post and its comments.
I’d also like to recommend that you read the post and comments to the post, or simply use a search engine if you come across unfamiliar terms. You can find answers to all the questions you’ve asked through the linked post and a simple search.
I managed to get it working, I just can’t control where the sound actually is coming from. I have to set my default sink to the new surround, so it just picks one random device that’s connected it’d seem. How can I tell it where to play my audio back?
I don’t have any experience with virtual surround, but I do have a potential alternative if you don’t get it figured out.
If the games you play have a headphone mode, try it. That typically gets a pretty good virtual surround effect. As for improving sound quality, check out the AutoEQ project on GitHub. I got some cheap $20 Monoprice headphones that sound like they’re $150 or better when using the correct profile from AutoEQ.
I’ll do this too, I’m just going insane atm from pipewire.