I am new to roon, and the whole Linux Audio game. But not to Linux in general. So I only have Linux Systems, no Windows and no Macbook. I had / have the same problem, some people had before, but I thought maybe it helps someone, or we can improve this together.
The Challange is, that when using roon-bridge on a linux desktop, roon-bridge claims the exclusive privileges of the soundcard. So you can play Musik on a Linux Desktop, but you will not get any other system sounds, like chat notifications (what I need for work).
So its not about a GUI (there are some solutions in this forum and the internet for a gui on linux).
The Idea was, if roon bridge claims an exclusive sound card, we can give one to roon. I created an alsa loopback device (virtual sound card), and use this soundcard as the target for roon. Than stream the output of this virtual sound card with gstreamer to my default audio output.
Now I can listen to Musik from roon, and get notifications etc.
I still not happy with my solution. It is quite hacky, and I start reading into Pipewire documentation, to see what would be the correct solution to make this permanent.
But maybe someone has an idea, or suggestions. Or it is helpful for someone.
Here what I have so far.
Running Arch Linux with Pipewire and Wireplumber as session manager.
Than I followed this guide to create an alsa loopback device
Short:
Load needed Kernel Module:
sudo modprobe snd-aloop
Than you have a virtual soundcard, check with aplay -l (from alsa-utils) which device it is.
In my case it is Hardware Card 2.
So I can select this as a target in roon. But there is no sound yet.
For testing I run this command, to stream the sound to my default sink:
gst-launch-1.0 alsasrc device="hw:2,0,0" ! alsasink
And than you hear sound.
Next steps are, but not done yet (still looking for a solution without gstreamer)
- set the loopbackdevice to a fixed hardware number (like 16 or so)
- create a systemd-unit file to have gstreamer always running.
Is Roon Bridge and or Roon Remote Open Source by the way? Than maybe someone else could help to improve.