Linux Mint: Set up four virtual audio devices that connect to two channels on a 7.1 interface each
Linux Mint: Set up four virtual audio devices that connect to two channels on a 7.1 interface each
Well, this is a complicated problem. I want to switch over to Linux for gaming (Windows has weird performance issues). Linux Mint runs great, but my audio interface doesn't have a driver for linux. It shows up as a 7.1 output device, with two channels going to each fader (I'm using the M-game Solo btw). Now I want to split this audio interface into 4 separate virtual Stereo Outputs, each of which should get routed to the corresponding channels of the detected 7.1 interface, essentially forming a "dumb" driver. I'm not totally new to linux, but in no way an expert. The command line doesn't scare me, however a GUI would be preferable. (Would be nice if such a workaround could be published for everyone to use) Thanks in advance for your help!
You might want to experiment with hdajackretask to adjust how output pairs are handled by your audio frontend. If that fails, place jackd directly above alsa and ensure pulseaudio only connects through the jackd server. *Alternatively*, you could use pipewire, though I don’t have confidence in that approach. For a static setup, qjackctl is the recommended tool—it will launch your jack audio server automatically (I usually run it in promiscuous mode as root). Most pulseaudio clients can connect to it, and any attempts to bypass it can be redirected. Jackd itself requires minimal configuration; you can use command-line options for this purpose. Example commands:
- As normal user:
#executable #ignore auto connect #no-realtime #backend driver #playback hardware #capture hardware /usr/bin/jackd -aa -r -dalsa -Phw:1,0 -Chw:1,1
- As root (for discovery):
#executable #accept connections from audio group #executable #same #realtime #same #same #same JACK_PROMISCUOUS_SERVER="<audio guid>" /usr/bin/jackd -aa -R -dalsa -Phw:1,0 -Chw:1,1
You can also set pulseaudio to use default.pa in ~/.config/pulse/default.pa and configure it further as needed.
I'll attempt that tomorrow (it's 19:16 in Germany, so I'll start eating now). It should likely take a few hours since I'm not comfortable with Linux audio. Appreciate the message!
I adjusted the configuration you shared, but it turned out more involved than expected. I’ll share a channel map so you know which playback device should go to each channel on that single 7.1 output. The names will match what appears in the device selection menu (like "HDMI Audio"). The 7.1 output won’t be an option anymore. Game L/R: L → FL R → FR Chat L/R: L → C R → LFE Sampler L/R → RL R → RR System L/R: L → SL R → SR This should help clarify the routing. Thanks again, and sorry for the delay. Since I’m using both Windows and Linux, it’s not a top priority for me—everything functions well on Windows with native drivers.
The script is configured for audio input and output using PulseAudio. It sets up various channels and sinks for different applications like game, chat, sampler, and system. Specific modules are loaded for sound cards, jacks, and sources, with default sinks assigned for each device. Adjustments can be made by modifying the output or checking the module paths.
It seems the information is quite detailed and technical. To simplify, here’s a clearer summary:
When using -Phw:2,0 two audio interfaces are set aside, making the m-game and my onboard output vanish from the "audio-out settings" in the Mint GUI. Beyond that, I couldn’t get much further. As you mentioned, this is the output of aplay -l – at least the German version works well.
Hardware list (PLAYBACK):
- Card 0: HDMI [HDA ATI HDMI]
- Device 3: HDMI 0 [HDMI 0]
- Sub-devices:
- #0: subdevice #0
- Card 0: HDMI [HDA ATI HDMI]
- Device 7: HDMI 1 [HDMI 1]
- Sub-devices:
- #0: subdevice #0
- Card 0: HDMI [HDA ATI HDMI]
- Device 8: HDMI 2 [PL2530H]
- Sub-devices:
- #0: subdevice #0
- Card 0: HDMI [HDA ATI HDMI]
- Device 9: HDMI 3 [HTR-4063]
- Sub-devices:
- #0: subdevice #0
Device 10: HDMI 4 [HDMI 4]
- Sub-devices: 1/1
Let me know if you need this rephrased further.
Karte 1: Generic [HD-Audio Generic], Gerät 0: ALC892 Analog [ALC892 Analog] wird der integrierte 7.1-Sound sein, daher jackd -aa -r -dalsa -Phw:1,0 -Chw:1,0 sollte der erforderliche Jackbefehl sein. Falls es fehlschlägt, probiere es ohne -Chw:1,0 aus. Sobald Jackd läuft, starte pulseaudio und qjackctl. Welche Version von Mint verwendest du – ich kann es in einer VM testen, um die Feinabstimmung zu unterstützen?
I just noticed your private message now, sorry for missing a response. That command should trigger the onboard 7.1 audio? If that’s the case, there seems to be a mix-up somewhere. I’m using the USB audio interface, which is recognized as a 7.1 setup but actually has four separate stereo channels that can be adjusted via hardware controls: Karte 2 – Solo [M-Game Solo], Gerät 0 – USB Audio [USB Audio]. Here’s a link to the product page for your reference. These are the faders and their matching channels on the 7.1 interface as shown in software. From left to right, those are the controls you’ll see. I’m running Mint 22 with Cinnamon edition and all updates installed.
It seems you're looking for a clear, concise explanation. The USB card setup simplifies automation, especially with udev rules. I'll walk you through setting up a VM and exploring it step by step so we can automate the process effectively. Let's get started!