Pipewire for pro audio

Optimize your system for ultimate performance.

Moderators: MattKingUSA, khz

glowrak guy
Established Member
Posts: 2315
Joined: Sat Jun 21, 2014 8:37 pm
Been thanked: 251 times

Re: Pipewire for pro audio

Post by glowrak guy »

The context of my experiments was using AVLinux AHS, using the system-D version (choice of which version to use is presented at each boot time)
with the repositories for synaptic changed to newer debian 'bookworm' testing. This increases the chances of breaking the system
if you start upgrading core libs, apps, and a new range of dependencies, so I recommend using a secondary install if possible,
and just adding what is needed for pipewire, and when successfull, add in new audio instruments and plugins in small doses that won't
upset the apple cart. I start 'wireplumber' in a terminal, next the desired audio apps, and then a gui to make connections, qpwgraph in my case.

Another option on a secondary install would be installing the newest Fedora linux, as pipewire and surrounding software should already be
in place, or easily installable from a well recognized base of dependencies.

Good luck! beta-testing can be good clean fun.
User avatar
sysrqer
Established Member
Posts: 2519
Joined: Thu Nov 14, 2013 11:47 pm
Has thanked: 319 times
Been thanked: 148 times
Contact:

Re: Pipewire for pro audio

Post by sysrqer »

This link tells you what to install, it is specifically for debian/ubuntu based systems - https://pipewire-debian.github.io/pipewire-debian. I highly advise to add the repo and update it because pipewire has seen a lot of development recently.

Follow the other steps first but this is the command when you are ready:

Code: Select all

sudo apt install gstreamer1.0-pipewire libpipewire-0.3-{0,dev,modules} libspa-0.2-{bluetooth,dev,jack,modules} pipewire{,-{audio-client-libraries,pulse,bin,locales,tests}}
Then you will be able to test it with

Code: Select all

pw-jack yoshimi
. I don't remember if the ld stuff is needed but I did do that as well when I set it up on ubuntu about 6 months ago. I think this makes the system use pw-jack when a call for jack is received.
User avatar
Linuxmusician01
Established Member
Posts: 1524
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 135 times

Re: Pipewire for pro audio

Post by Linuxmusician01 »

First of all, thanks to @thebutant for asking the same question that I want to ask.
sysrqer wrote: Tue Apr 19, 2022 1:42 pm There is qpwgraph, which is sort of qjackctl for Pipewire.
Thanks for the tip! As it turns out, qpwgraph is made by Rui Nuno Capela, the developer of Qjackctl and Qtractor (@rncbc on this forum). So we're in good hands there. However, I guess I'm one of the few that likes the old school Connections window with the columns instead of the modern Graph to connect stuff.
thebutant wrote: Wed Apr 20, 2022 6:38 pm [...] On a fresh install with no Jack, I installed yoshimi.
Yoshimi then installed Jack (jackd+jackd2 etc) as a dependency. And when opening Yoshimi, it starts Jack.
Well, that's not really so bad. Because I can then also launch Qtractor, Carla, Reaper and Mixbus 32C (these are the ones I've tried now).
But they all run through Jack. They don't show up in pw-top, and launching one of them demands starting up Jack. When doing so, my audio interface disappears from qpwgraph. It seem like Jack takes over.
[...]
I consider that to be a SnAFU (dependency hell is something from the early 200's) and it was to be expected. But, like @sysrqer said in his reply: it'll be probably be solved in future/updated PW versions. I personally for now won't bother w/ PW until I update my Linux distro when it's no longer supported (Ubuntu 20.04 in April 2025).

I guess PipeWire ain't ready yet to completely replace Jack and all its config utilities. And I'm afraid that applications will have to be rewritten to directly (native) use PW (next to Jack Audio?). I mean, configuring your DAW for Jack when you're using PW to "emulate" Jack is too complicated for the Linux beginner. You have to know what ALSA is, why there was Jack on top of ALSA and then you have to know why and what about PW and how to use it. That's gonna loose us Linux Musicians. Using PW to "act" as Jack is an interim solution until DAW's and the likes become "PW aware".


P.S. Reaper does not work with ALSA Midi seq. It uses Jack Midi (yep: there is such a thing). Does Pipewire support Jack Midi?
User avatar
sysrqer
Established Member
Posts: 2519
Joined: Thu Nov 14, 2013 11:47 pm
Has thanked: 319 times
Been thanked: 148 times
Contact:

Re: Pipewire for pro audio

Post by sysrqer »

Nothing needs to be rewritten to be able to use pipewire. If you are using jack in the preferences of your daw then you can continue to use it in the same way, you may just have to reselect the jack option as the ports are named slightly differently. From the program's/daw's perspective it is still using jack and everything should work the same. So it's not really any more complicated at all. The installation and setup on Arch/Manjaro/Fedora is dead easy and has reasonable defaults so it is actually less to do than setting up jack.

The reason for the apparent many approaches to get it working in debian/ubuntu is due to a few reasons but that will be streamlined when things start being pushed downstream.

Midi works fine in reaper, it seems there is a bridge (I don't think I did anything to set this up and it just worked automatically).
Screenshot_20220421_122031.png
Screenshot_20220421_122031.png (202.03 KiB) Viewed 3797 times
User avatar
Linuxmusician01
Established Member
Posts: 1524
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 135 times

Re: Pipewire for pro audio

Post by Linuxmusician01 »

sysrqer wrote: Thu Apr 21, 2022 11:21 am [...]
Midi works fine in reaper, it seems there is a bridge (I don't think I did anything to set this up and it just worked automatically).
Thank you for the info on Reaper. Looks to me like Pipewire also "emulates" or "bridges" (for lack of a better term) Jack Midi.
thebutant
Established Member
Posts: 169
Joined: Sun Nov 18, 2012 12:59 pm
Has thanked: 50 times
Been thanked: 8 times

Re: Pipewire for pro audio

Post by thebutant »

glowrak guy wrote: Thu Apr 21, 2022 1:59 am The following is from the wiki link in my post above, and I followed the steps:
-------------------------------------------------
"For JACK

JACK clients can be configured to output via PipeWire instead of JACK.

Install the pipewire-audio-client-libraries and libspa-0.2-jack packages, if not already installed.

Create this empty file:

# touch /etc/pipewire/media-session.d/with-jack

Either run JACK clients using the pw-jack wrapper, or copy:

# cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/

And run:

# ldconfig

This will replace the JACK server libraries with PipeWire's replacements at application runtime, by pointing the dynamic linker at the /usr/lib/x86_64-linux-gnu/pipewire-0.3/jack/ folder. "
--------------------------------------
Thank you so much for pointing in this direction, glowrak guy!
I did these 4 rather simple steps in Pop!_OS 22.04, and within a minute I had a functional, smooth running Jack through Pipewire setup.
It's such a relief!
And wow, how good it works! Pipewire makes my old Pulseaudio+Jack habit seem like a workaround.

I have to say the method for installing it/making it work isn't at all intuitive for me, for instance I don't really understand what my new empty file "with-jack" does.
But it's still early on, I guess a lot of this will improve.

Thanks for for patient help!
thebutant
Established Member
Posts: 169
Joined: Sun Nov 18, 2012 12:59 pm
Has thanked: 50 times
Been thanked: 8 times

Re: Pipewire for pro audio

Post by thebutant »

Pop!_OS announced yesterday that their next update (which has maybe already come, otherwise it'll be here really soon) includes Jack through Pipewire.

So for anyone who wants to try out how Jack works through Pipewire, this is now part of the default Pop!_OS 22.04.
:D
DeRaaf
Established Member
Posts: 27
Joined: Sun May 09, 2021 11:44 am
Has thanked: 7 times
Been thanked: 3 times

Re: Pipewire for pro audio

Post by DeRaaf »

I must admit I feel a little lost with this whole pipewire thing. I'm working wit Pop!_OS, so my time has come I have to face the "enemy".

I find the transition to pipewire not really well documented for me as Pulse/Jack/ALSA user with a perfect running set-up. Also I'm not a computerscientist, my worldly knowledge is mostly confined to the 12 musical notes.

I really wish someone could make a good (video) explaining how to do the same thing as I do now with Pulse/Jack/ALSA. Low latency for real time recording for instance, how do I set up real time permission if necessary, do I need a real time kernel?

I was really used to (Ubuntu) studio controls for setting up things like bitrate (I sometimes record @ 192kHz). How do I do this with pipewire.

For such a large change in how audio is handled I really wished for some beter documentation, or beter said documentation writen for musicians and not computerscientists.
User avatar
bluzee
Established Member
Posts: 338
Joined: Mon Nov 30, 2020 11:43 pm
Has thanked: 18 times
Been thanked: 88 times

Re: Pipewire for pro audio

Post by bluzee »

I think you'll be able to configure these directly from the application at least eventually. To me this makes it sound like everything will be getting resampled.

If Pipewire shows up in the next upgrade I guess I'll take a look at it. Personally I see no reason to switch from Jack.
el_octogono
Posts: 1
Joined: Thu May 19, 2022 5:20 pm
Location: Argentina
Contact:

Re: Pipewire for pro audio

Post by el_octogono »

I just arrived to Pop!_Os 22.04 after having a failed upgrade to my Ubuntu Studio. Pipewire is awesome! and seems to eat less resources. I didn't need any special treatment for those apps that use Alsa or Jack. PW recognized the connections anyway and all worked with no additional setup. The only thing I had to tweak manualy was the PW buffer settings. You can launch an app with a custom set of options, as mentioned up, but also set a global parameter. I used this article which is pretty clear to read. https://gitlab.freedesktop.org/pipewire ... g-PipeWire

I've been able to record and play Reaper projects with no other settings, not even a lowlatency or RT kernel!
thebutant
Established Member
Posts: 169
Joined: Sun Nov 18, 2012 12:59 pm
Has thanked: 50 times
Been thanked: 8 times

Re: Pipewire for pro audio

Post by thebutant »

I've also made the transition: My production setup now runs Pop!_OS 22.04 with Pipewire (as by default).
And wow, what a bumpy ride it's been so far.

Most of all I really like Pipewire handling everything. It's efficient, logical, smotth.
But to be honest, I mostly love how it takes care of Pulseaudio stuff.

If I didn't work with audio production, I'd just love every part of it.
Yet, when it comes to my work applications, which are Jack based, I just cannot make it as stable as my old Jack setup was.
For years I've installed a distro, added KXStudio repos, installed kxstudio-default-settings, pulseaudio-module-jack and a few kxstudio packages.
Jack and stuff. And Mixbus 32C etc.
My setup was good to go, working as I wanted.

With Pipewire, my first experience of editing in Mixbus 32C was so full of weird noises, bad sound, xruns and hickups that I was frightened.
I went through Pipewire config files, tried different settings. Got things a bit better.
Eventually I ran rtcqs, and did just about everything suggested there.

Now my setup is strange.
Yesterday I did a recording with u-he's cpu-demanding Repro-5 at a latency lower than I've ever recorded anything before.
Impressingly low, I thought.
Yet, when editing a simple voice recording later on, with a buffer size of 1024, I suddenly got a small row of xruns. I have no idea where they came from. I can't recall this happening with Jack like. . . ever. With Pipewire they come to me quite frequently, doesn't seem to be latency related at all.
And today, I can only edit in Mixbus 32C for about 40 seconds at a time, before both Mixbus, qpwgraph and any other open audio application freezes and I have to kill them. What a terrible day at work.

So to sum it up:
Pipewire is impressive. Especially at handling the not so demanding sound, what pulseaudio would do for me earlier.
And when it comes to handling the pro audio stuff, I haven't so far been able to make it as stable as Jack.
I'd love to hear suggestions about why my Pipewire setup is so unstable and unpredictable. All I want is a stable setup for audio work.
User avatar
Linuxmusician01
Established Member
Posts: 1524
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland
Has thanked: 756 times
Been thanked: 135 times

Re: Pipewire for pro audio

Post by Linuxmusician01 »

@thedebutant: can't one use Jack next to Pipewire? Just like with PulseAudio?
User avatar
sysrqer
Established Member
Posts: 2519
Joined: Thu Nov 14, 2013 11:47 pm
Has thanked: 319 times
Been thanked: 148 times
Contact:

Re: Pipewire for pro audio

Post by sysrqer »

@thedebutant have you changed/made any settings for pipewire? I think you might need to lock the buffer size - https://gitlab.freedesktop.org/pipewire ... uffer-size

There's an option in the confs to set this all the time.
j_e_f_f_g
Established Member
Posts: 2032
Joined: Fri Aug 10, 2012 10:48 pm
Been thanked: 357 times

Re: Pipewire for pro audio

Post by j_e_f_f_g »

Linuxmusician01 wrote: Reaper does not work with ALSA Midi seq. It uses Jack Midi
That's a monumental mistake. (And jack midi is just utter shite that serves only to make linux harder to use).

Someone should tell the reaper devs that jack midi is not the standard API for midi on linux, and no properly written app should use it.

Author of BackupBand at https://sourceforge.net/projects/backupband/files/
My fans show their support by mentioning my name in their signature.

thebutant
Established Member
Posts: 169
Joined: Sun Nov 18, 2012 12:59 pm
Has thanked: 50 times
Been thanked: 8 times

Re: Pipewire for pro audio

Post by thebutant »

sysrqer wrote: Thu May 26, 2022 3:37 pm @thedebutant have you changed/made any settings for pipewire? I think you might need to lock the buffer size - https://gitlab.freedesktop.org/pipewire ... uffer-size

There's an option in the confs to set this all the time.
No, I haven't tried locking the buffer size. Thanks for this tip!
I did however just now try editing with Integrated graphics (instead of Nvidia hybrid graphics, which I usually use), and this seems to have a great impact.
I can of course be proven wrong any moment, but I haven't had such a stable editing session ever before using Pipewire.

I'll definitely try locking the buffersize aswell. As my next step in trying to see what makes a difference. :wink:
Post Reply