this post was submitted on 17 Dec 2023
19 points (88.0% liked)

Linux

48397 readers
795 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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.

top 10 comments
sorted by: hot top controversial new old
[–] [email protected] 20 points 11 months ago (1 children)

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.

[–] UnRelatedBurner 1 points 11 months ago

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!

[–] [email protected] 8 points 11 months ago (1 children)

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 

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.

[–] UnRelatedBurner 3 points 11 months ago* (last edited 11 months ago)

Lots of links and names. I think I know how I'm spending my afternoon. Thanks!

[–] [email protected] 4 points 11 months ago (1 children)

I asked a similar question and I was lead to this post.

I got side tracked and eventually lost motivation to get it working. I might give it another try in the new year. Hopefully this is what you are looking for. I assume your distribution is using PipeWire, otherwise you may have to look into HRIR for PulseAudio.

[–] UnRelatedBurner 1 points 11 months ago (1 children)

Alright, thanks for the lead, will try what it's saying but atm I have no idea what HRIR Convolver or SOFA Spatializer is

[–] [email protected] 3 points 11 months ago (1 children)

The 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.

[–] UnRelatedBurner 1 points 11 months ago

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?

[–] ogwillikers 2 points 11 months ago (1 children)

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.

[–] UnRelatedBurner 1 points 11 months ago

I'll do this too, I'm just going insane atm from pipewire.