[LAD] Pipewire help?

John Murphy rosegardener at freeode.co.uk
Sun Jan 23 01:40:44 CET 2022


On Sat, 22 Jan 2022 13:57:45 -0800 (PST) Len Ovens wrote:

> On Sat, 22 Jan 2022, John Murphy wrote:
> 
> > My QJackCtl Patchbay doesn't work any more and it's obvious there are
> > new ways to get similar functionality with WirePlumber, but a little
> > example would help. I seem to want to pipe the output of pw-link -l
> > somewhere (pw-link -l | wireplumber --make_it_so).
> >
> > Need to always connect jack-play this way:
> >
> > $ pw-link -l
> > alsa_output.usb-EDIROL_M-16DX-00.pro-output-0:playback_AUX0
> >  |<- jack-play:out_1
> > alsa_output.usb-EDIROL_M-16DX-00.pro-output-0:playback_AUX1
> >  |<- jack-play:out_2
> > jack-play:out_1
> >  |-> alsa_output.usb-EDIROL_M-16DX-00.pro-output-0:playback_AUX0
> > jack-play:out_2
> >  |-> alsa_output.usb-EDIROL_M-16DX-00.pro-output-0:playback_AUX1  
> 
> I think you can (via PW setup) change the name of your USB to 
> system:playback_1 (and 2) and then Qjackctl's patchbay might just work.
> 
> https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#behringer-umc404hd-speakersheadphones-virtual-sinks
> 
> Change node.name to system and audio.position = [ FL FR ] to [ 1 2 ] etc.
> 
> I am not sure why PW, in it's JACK compatibility does not allow one of the 
> devices to be chosen as master and called system:* for compatibility with 
> all the JACK software out there... but it is what it is. I am sure someone 
> will come up with a configuring app(let) that does this better for 
> profesional audio use. To be honest, I am not really sure what optimal 
> would be.

Thanks Len, it works fine now. I copied /etc/pipewire/client-rt.conf) to
/etc/pipewire/virtual-sink.conf and added, in the modules section:

    {   name = libpipewire-module-loopback
        args = {
            node.name = "system"
            node.description = "the system"
            capture.props = {
                media.class = "Audio/Sink"
                audio.position = [ FL FR ]
            }
            playback.props = {
                audio.position = [ AUX0 AUX1 ]
                node.target = "alsa_output.usb-EDIROL_M-16DX-00.pro-output-0"
                stream.dont-remix = true
                node.passive = true
            }
        }
    }

I don't see a connection line in QJackCtl's Connections, but it's there.
Maybe I'll try some variations on the audio.position settings.

It's well documented, although over-my-head, but I needed to get that
working quickly so my Qt program, which uses jack-play via QProcess, works.

-- 
John.


More information about the Linux-audio-dev mailing list