Re: Per application sound routing
On 10/27/25 03:46, AC wrote:
I just installed trixie on a bare machine to serve as my new desktop
after a long time going without one.
I chose the Cinnamon desktop environment but I can't seem to figure out
how to route sound appropriately for each application to different
inputs/outputs.
I have three outputs:
DisplayPort monitor with speakers
On-board sound card (headphone jack)
On-board speaker
I would like to be able to do things like send browser audio to the
monitor speakers, send VLC audio to the headphones, and send Pidgin
alert sounds to the on-board speaker.
When I go into the sound application in Cinnamon I don't appear to have
a way to do that. I have to use an all-or-nothing routing of sound to
one of the three. I can control volume of an individual application but
I have to choose one of the devices and then applications only "see"
that device.
Similar for inputs where I'd like audio for video conferencing to come
from the webcam microphone but audio headed to a sound recorder to come
from the on-board sound card (microphone jack).
How do I do this?
Try to achieve it with these packages installed:
pipewire-pulse
wireplumber
qpwgraph
Then use the graphical app "qpwgraph" to make your connections between
your inputs, various apps, and outputs. By the way, you also could
connect apps with other apps... connect the output of the one app to the
input of another app.
The audio system in Trixie is based on the pipewire ecosystem, and it
replaced pulseaudio (and JACK). As almost all consumer apps (like the
ones you are interested in to use) are still programmed to work with
pulseaudio only, the installation of package pipewire-pulse provides the
compatibility layer for any pulseaudio dependent app to connect without
any user interaction needed to the now in place pipewire system. I am
now not sure, but assume that pipewire-pulse, because of its in practice
central importance, was already installed in Trixie.
JACK was/is a special technique in use, which pro-audio apps use, as it
provides (much better than pulseaudio) really fast system internal
routing of audio streams, which some apps rely on for performing
properly. If you would use apps which require JACK, then also install
package "pipewire-jack" for connecting any JACK calls automatically in
the background to the pipewire system, like pipewire-pulse is connecting
the pulseaudio calls to pipewire. But as long as you do not know what
JACK is, because no app requested it, you won't need to care for JACK.
This is why I didn't list the package pipewire-jack in above list of
packages which I recommend you to for sure have installed)
Wireplumber is most likely also installed already. I just list it to be
sure it is. Wireplumber is a manager, which in the background manages
for you that whatever hits in and out and through the pipewire system is
properly organized to do so in a high performant, trouble-free way.
So, expect that pipewire-pulse and wireplumber have already been
installed in your system when the audio routing and management system
pipewire was installed in Trixie. If not, then install them.
What actually will be new for your system and for you is the app
"qpwgraph" (it is the pipewire version of what in the past was partly
done with the old qjackctl app). It is a graphical patch bay app to let
you interconnect what you want to connect, and it is capable to care for
all connection types at once, may it be pipewire, pipewire-pulse or
pipewire-jack mediated.
Someone answered to you to use the app pavucontrol. Well, that app
should also work, because as a pulseaudio app it will be incorporated
via the pipewire-pulse interface to the pipewire system running in
Trixie. If qpwgraph wouldn't already solve your request, then it
shouldn't harm to also try the good old pavucontrol app.
Good luck!
Reply to: