Oh no… Anyway, anyone got a fix for dual audio on Linux Mint.
I wanna output to 2 devices (one is HDMI TV and the other is Bluetooth) at once and pipewire isn’t accommodating me. I’m hesitant to go screwing around with pulseaudio cause I tried that on a previous build and things went badly.
I managed to get an all devices audio output inserted into the pipewire.conf but the only sound that comes out is from the TV and not the bluetooth speaker.
I don’t really expect an answer here but if you could point me to the forum or instance that might have answers would be appreciated.
Oooo, Helvum looks like what I’m trying for. Thanks!
Do you know if i can use flatpak on an Ubuntu/Debian based system? Or does it only work on Arch based?
It’s like Helvum but it can save patchbays and restore them on boot.
The easiest solution is to create a virtual audio device through your Pipewire config and then use qpwgraph to link them up to your physical device on boot.
I can copy my Pipewire virtual device config if you need it.
I have used this setup to separate game audio from voice audio when streaming for years.
Yeah, if you could post your setup that would be great. I think it would give me a better idea of how things work. Though, my goal is to consolidate sources to multiple outputs not to separate them.
If you need more than stereo, you can adjust it in audio.position. If you need multiple devices, just copy/paste the block between the {} multiple times and rename the device.
After that restart your system, you should now have a new audio device called Virtual Sink 1, select it as default device.
Start qpwgraph and connect the Virtual sink(s) to your output device(s) by dragging the monitor nodes to the playback nodes:
You can now try if everything sounds correctly. If it does, hit Ctrl + S in qpwgraph to save your patchbay somewhere. It will save all the connections you just made and establish them on start and on the fly if new devices are added.
Next up, add an autostart entry for qpwgraph. This depends on your desktop environment, add the --minimized flag so you don’t see the qpwgraph window every boot. You can also select “Start minimized to system tray” in “Graph” -> “Options”.
If you only need certain applications to go to both devices, you can also achieve this without the virtual device by just dragging your application node directly to your bluetooth device in qpwgraph and saving the patchbay, it will route the audio automatically every time the application starts.
Combining Bluetooth with other output types is quite challenging because the audio buffers are not just huge for Bluetooth, they are actually dynamically resized depending on signal depending on the implementation.
Oh no… Anyway, anyone got a fix for dual audio on Linux Mint.
I wanna output to 2 devices (one is HDMI TV and the other is Bluetooth) at once and pipewire isn’t accommodating me. I’m hesitant to go screwing around with pulseaudio cause I tried that on a previous build and things went badly.
I managed to get an all devices audio output inserted into the pipewire.conf but the only sound that comes out is from the TV and not the bluetooth speaker.
I don’t really expect an answer here but if you could point me to the forum or instance that might have answers would be appreciated.
I used this page to do the code insert.
~~https://thecodeninja.net/2024/06/pipewire-combined-sink/~~ nevermind, the site seems to have 404’d itself in the last minute or so.
If outputting separate programs to separate outputs: install Pavucontrol (yes, for Pipewire); change outputs per-program in the first tab.
If trying to output the same stream(s) to both: install Helvum; drag lines around to connect to additional outputs.
So, I’m finally able to tackle this. Do i need pavucontrol? I’m trying to avoid installing any pulseaudio components.
Oooo, Helvum looks like what I’m trying for. Thanks! Do you know if i can use flatpak on an Ubuntu/Debian based system? Or does it only work on Arch based?
Check out qpwgraph: https://flathub.org/en/apps/org.rncbc.qpwgraph
It’s like Helvum but it can save patchbays and restore them on boot.
The easiest solution is to create a virtual audio device through your Pipewire config and then use qpwgraph to link them up to your physical device on boot.
I can copy my Pipewire virtual device config if you need it.
I have used this setup to separate game audio from voice audio when streaming for years.
Yeah, if you could post your setup that would be great. I think it would give me a better idea of how things work. Though, my goal is to consolidate sources to multiple outputs not to separate them.
Works the same way, just in reverse.
Put the following in ~/.config/pipewire/pipewire.conf.d/10-virtual.conf
context.objects = [ { factory = adapter args = { factory.name = support.null-audio-sink node.name = "Virtual-Sink-1" node.description = "Virtual Sink 1" media.class = "Audio/Sink" audio.position = "FL,FR" } } ]
If you need more than stereo, you can adjust it in audio.position. If you need multiple devices, just copy/paste the block between the
{}
multiple times and rename the device.After that restart your system, you should now have a new audio device called
Virtual Sink 1
, select it as default device.Start qpwgraph and connect the Virtual sink(s) to your output device(s) by dragging the monitor nodes to the playback nodes:
You can now try if everything sounds correctly. If it does, hit Ctrl + S in qpwgraph to save your patchbay somewhere. It will save all the connections you just made and establish them on start and on the fly if new devices are added.
Next up, add an autostart entry for qpwgraph. This depends on your desktop environment, add the
--minimized
flag so you don’t see the qpwgraph window every boot. You can also select “Start minimized to system tray” in “Graph” -> “Options”.If you only need certain applications to go to both devices, you can also achieve this without the virtual device by just dragging your application node directly to your bluetooth device in qpwgraph and saving the patchbay, it will route the audio automatically every time the application starts.
This worked 100%
Now I just need to find a way to build in an audio delay for the bluetooth device. 😅
Combining Bluetooth with other output types is quite challenging because the audio buffers are not just huge for Bluetooth, they are actually dynamically resized depending on signal depending on the implementation.