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

This is outdated, please use these updated instructions.

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


WARNING: Do not follow this if you have upgraded or clean installed Manjaro 21.2.0. In that case simply install all pipewire and allow pamac to do the uninstall automatically. You do not need to uninstall Pulseaudio.

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. Copy the config files to your home folder in .config/pipewire. It should use these files instead and you can leave the originals alone.

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.

OriginallyI 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 WirePlumberfrom 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 configurelibpipewiremodule-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 ofpulseaudio 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.