Mixxx using Pipewire and RaySession on Linux - Experience

Hello people - I would like to discuss and have your opinions mainly about Pipewire on Linux. If you have experience with RaySession please let me know as well.

I have replaced Pulseaudio completely by Pipewire and must admit I love it. Also Pipewire runs as replacement for Jack. It looks like the latency is very low. Just Mixxx doesn’t seem to show the correct values.

I really love the way that Pipewire handles all physical devices at once. Firefox is connected to my external Audio interface while Mixxx is connected to the Calf Plugins - this way Mixxx is independent from any hardware and never complains if I forgot to switch on my controller before. That was in principal possible with Jack too but Jack would complain not to find the audio device set in preferences when the controller was still switched off.

First time i use RaySession too. I like the way that connections can be saved independently and software can be started automatically by starting the session. I much prefer it over JackCTL, Carla & Catia.


I use RaySession too, great piece of software and the latest updates with the internal patchbay are great. Another similar software is Agordejo but hasn’t an internal patchbay.

They are both Session Managers (using the NSM protocols) and they excel at this, while Qjackctl and Catia are more JACK patchbays with limited session capabilities.

Carla is an excellent plugins host, that has patchbay capabilities, but has many more interesting features. I would use it instead of CalfJackHost.

I’m not really fond of PW yet, it doesn’t solve any issue for me as I’m quite fine with JACK. I like to have control about what interfaces I want to bring up or down (yes JACK has multiple card capabilities and you can load them on the fly if you want) and I hate having desktop apps spamming in my audio graph. :grinning:
Hopefully PW will become better and better so maybe in 2022 I can give it another try.

I hope that dedicated PipeWire session manager GUIs will be made soon. Fedora 35 will be switching from PipeWire’s basic example session manager to WirePlumber. This will allow more powerful session management than JACK. Instead of having fixed sets of connections saved as sessions, WirePlumber allows setting up dynamic rules for what nodes connect to what and those rules can be scripted with Lua.

Here is one I just found out about: Ryuukyu / Helvum · GitLab

I saw Helvum also but it is very basic yet. Hope we will see improvements quickly.

Reporting back from the tests I’ve done with Mixxx inside Carla (Setting mixxx aside for the time being - #16 by LAM).
Note that I used a pure JACK setup, so if you are using PW the results could not be the same.
SW Specs:
Mixxx 2.2.4
RaySession 0.12.0
Carla 2.4.0

RaySession session contains:

Carla-Patchbay (16chan) - I need this because I want to route my DJ controller headphones audio, so I need something with more than 2 outputs.

  • Ouuputs 1-2 go to Master
  • Outputs 3-4 go to Headphones

Inside the patchbay I run Mixxx (as JACK Application - To enable it: Carla settings > Experimental > “Enable experimental features”) and a Carla-Rack.

Carla-Rack contains x42 Digital Peak Limiter Stereo (but can be any stereo FX chain)

Tried also using multiple soundcards (using JACK2 audioadapter), and when JACK is launched form the DJ Controller soundcard the latency between them is minimal, it seems be in line (or better?) with the Mixxx native multiple soundcard sync.

No crash so far, latency and xruns are in line with what i was achieving with ALSA, CPU consumption seems to be lower in average (looking at the Mixxx CPU meter).