Replaced pulseaudio with pipewire on Manjaro and I am not looking back!

This is just a quick post. I saw pipewire run across the updates list a week or so ago and decided to move to it fully since Manjaro is willing to add pieces now. I was rather paranoid so it has taken me those few weeks to work up the nerve, as well as a TimeShift snapshot.

My system as of today:

Manjaro 21.1.5
KERNEL 5.14.10-1-MANJARO
Plasma 5.22.5


UPDATE 11/19:

Huge Manjaro update dropped and I moved to the latest RT kernel 5.15. Most problems I noted later in this post is no longer a problem. I did have to remove wireplumber before upgrading.

DISTRIB_RELEASE=21.2.0
DISTRIB_CODENAME=Qonos
Kernel: 5.15.2-1-rt19-MANJARO

This update seems to have wiped out or altered the conf files. Odd.

I get RTTIME errors on Yabridge VST plug-ins. This happens in Qtractor and Ardour 6. I have not checked Zrythm. I don’t see this message in Muse4 or Bitwig but assume they suppress the messages. See this for more info.


Disclaimer: Everything went fine for me on my system but I cannot guarantee it will for you. Just pay attention when removing packages so you don’t lose things or break other things. I am also learning as I go so things may change.

See my post on Manjaro for music production if interested. It will give you an idea of the software I use. See the bottom of this page for a video of this setup.

I read somewhere how to install pipewire but I decided to just wing it in the package manager (pamac-manager). I simply searched for pulseaudio and uninstalled everything pulseaudio that was installed. I then searched for pipewire and installed everything pipewire that was in community, no AURS, etc. I rebooted and was missing volume control (KDE only issue) so I then did a quick search and found I needed to install plasma-pa. Reboot.

This process will also remove KDEConnect (KDE only issue). Just reinstall.

Originally I left Jack2, Cadence, Carla, Catia, and Catarina stuff alone but later decided none of these programs were needed with the exception of Carla for Windows VSTs.

For managing connections I installed Helvum. It works well it just isn’t polished. To connect you simply drag from an object to another object. To undo the connection do the same. I found it in AUR.

Installed EasyEffects also in community.

Browsers all work, headphones, MIDI keyboard (M-Audio Axiom), USB Blue microphone (Yeti Blue), and behringer U-Phoria UM2 input. All VST plugins work. Things that had cracks and pops no longer have cracks and pops! Like I said, I am not looking back at this point.

Configurations I Applied.

Note : The configuration files are no longer located in /etc/pipewire. They have been moved to /usr/share/pipewire

My Boltune bluetooth earbuds sound amazing and the mic works flawlessly. The only change I made to the bluez config was uncommenting bluez5.autoswitch-profile = role in /usr/share/pipewire/media-session.d/bluez-monitor.conf

I uncommented and set the latency in /usr/share/pipewire/jack.conf to

jack.properties = {
	node.latency = 256/48000

Install Realtime Privileges For Users from community in pamac-manager. Once installed add yourself to the realtime group.

Install WirePlumber from community in pamac-manager. Once installed disable pipewire-media-session and enable wireplumber. If you have issues with media session starting see this. I had problems so I switched back to pipewire-media-session .

systemctl –user –now enable wireplumber # wireplumber.

systemctl –user –now enable pipewire-media-session # pipewire media session

Install rtkit from community. Edit /usr/share/pipewire.conf and set real-time settings:

# Uses RTKit to boost the data thread priority.
{ name = libpipewire-module-rtkit
    args = {
        nice.level   = -11  
        rt.prio      = 99  
        rt.time.soft = 2000000
        rt.time.hard = 2000000
    }
    flags = [ ifexists nofail ]
}

Add yourself to the RTKit group and restart pipewire units or reboot. I stuck with RTKit and Pipewire Pulse runs great, in real-time.

If you want to try libpipewire-module-rt instead just comment RTKit section and configure libpipewiremodule-rt with the same values. Just be sure to comment out the one you are not using. Reboot.

If you need to set latency for individual applications, like Guitarix see /usr/share/pipewire/jack.conf

If you need to restart PipeWire and session:

systemctl --user --now restart pipewire.service pipewire-pulse.service pipewire-media-session.service wireplumber.

OR

systemctl --user --now restart pipewire.service pipewire-pulse.service pipewire-media-session.service

Verify it’s running in processes and looked to make sure pulseaudio wasn’t running – all was well :

EasyEffects

Let’s run Ardour6 with pipewire as jack. You can run pw-top to see what running under pipewire. F.Y.I. You can add pw-jack to the ardour6 execution in the menu by right clicking the KDE menu and editing the Ardour entry.

Adour 6 running with pw-jack

So I started Ardour6 with pw-jack and had no outputs in master. Just turn them on and you are good to go. Zrythm worked fine.

pipewire xjadeo setup
Configuration I used to get Xjadeo video monitor into Ardour6 – both use pw-jack.

The following two screenshots are of pulseaudio removed and pipewire installed in software manager.

Helvum running pw-jack with my beringer U-Phoria UM2, Yeti stereo mic, and M-Audio keyboard jacked in via USB.
Renoise log running pw-jack with my beringer U-Phoria UM2, Yeti stereo mic, and M-Audio keyboard jacked in via USB.

Some Applications running with pipewire Jack implementation.

Note: You do not need to issue a special command like with jack to run pulseaudio. To run with jack just append the program with pw-jack. The only programs that will not run without pw-jack is QTractor and Rosegarden. Pipewire Pulse is running real-time and I can manage connections in Helvum like I am running Jack. I see no reason to use pw-jack except with QTractor or Rosegarden, which I don’t really use. QTractor gets a lot of XRUNS though.

pw-jack ardour6 is flawless. 10/23

pw-jack muse4 works great. Jack not running real-time so lots of XRUNS, pulse runs real-time and works great. See my quick start.

pw-jack bitwig-studio crappy on some bigger projects. Use pulse.

pw-jack renoise works great but froze when left for awhile. Hasn’t happened again. 10/23 has been flawless.

pw-jack hydogen doesn’t work. Use pulseaudio.

pw-jack lmms works great.

pw-jack qtractor has XRUNS but works.

pw-jack carla works well.

pw-jack obs works great.

pw-jack reaper works great. It did crash but that one reason In don’t use it. I can get apps that crash for free.

pw-jack zrythm works great. ZRythm is still in active dev and buggy. Pulse not working very well.

pw-jack radium works okay.

pw-jack rosegarden works great.

pw-jack musescore works great. Like would never need to jack weird shit into MuseScore but it works.

pw-jack TuxGuitar fires up but could get midi board or output sound working. Pulse didn’t work either, got Java errors. I didn’t spend a lot of time on it.

I am honestly good with not using pw-jack. It may just be obsolete for me. Be aware that pw-jack is not real-time. I tried and failed to make it so. I did not load a real-time kernel – just don’t want to…

I am not focused on video but so far have had no issues with any video editors or players but I don’t do anything too crazy in that realm.

Here is a video of this setup on my son’s Dell G7. My install in on a 2016 System 76 Oryx Pro. Both running Manjaro Plasma.