How to use PipeWire for music production with Reaper on Linux

Note: If you’ve just installed Reaper on Ubuntu and you’re seeing an error about opening the Audio device, it’s probably because your system isn’t configured to use PipeWire replacing JACK libs.

To confirm that this is your problem, run ldconfig -p | grep libjack | grep pipewire – if you don’t see any results, this is the problem!

To fix this, you want to:

  1. First, install pipewire-jack, if you haven’t already:
sudo apt install pipewire-jack
  1. Make Pipewire the owner of libjack, by placing the proper configuration file from the example provided in the library loader path:
sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-x86_64-linux-gnu.conf \
    /etc/ld.so.conf.d/
  1. Run ldconfig to update the necessary library links
sudo ldconfig

After you do the above steps, when you run ldconfig -p | grep libjack | grep pipewire you should see some results, indicating that pipewire is indeed answering for JACK libraries, and Reaper should now have no problem opening the audio device.


That’s it, I’ve made the switch to PipeWire!

And things are looking great!

I was previously using JACK and PulseAudio in parallel, each with its own soundcard, and the setup was a bit cumbersome as for some reason I had not been able to get everything to load at startup, so I had to start JACK manually everytime…

Now with PipeWire, everything is integrated, no need to choose anymore!

I am on Ubuntu 22.04, and had to do a few things in order to get it to work correctly for my setup, which is essentially about being able to record audio and MIDI with Reaper and my sound cards.

Things that I had to do:

  • use the upstream Debian packages of PipeWire, as the packages provided by Ubuntu were about an year behind and missing some important improvements
  • in Reaper, I had to “reconnect” the MIDI devices, and it was a bit confusing initially as they showed up only at the end of a looong list of other “phantom” MIDI devices. It has also happened to someone else other than me.
  • to get the low latency in Reaper, I had to set the environment variable PIPEWIRE_LATENCY, which is used by PipeWire libraries that replace Jack. I did this by modifying my Reaper .desktop file, it now looks like this:
[Desktop Entry]
Name=Reaper
Exec=env PIPEWIRE_LATENCY=256/48000 /home/elias/apps/reaper_linux_x86_64/REAPER/reaper
Icon=/home/elias/apps/reaper_linux_x86_64/REAPER/Resources/main.png
Type=Application
Categories=AudioVideo;