Pipewire and persistent USB-MIDI connections

I recently switched to using Pipewire as my audio driver, and in my studio setup, I’m connecting the Ardour MIDI clock out to different pieces of gear via both USB-MIDI and the MIDI out on my audio interface. I create these connections via the interface in Ardour itself.
When I load up my saved Ardour session after a restart, the connection to the MIDI out on the interface is connected, but the connections to the USB-MIDI are not.

Is there any way I can make these connections persist so that I won’t have to reconnect them every time I reopen the session?

The devices show up with some pretty unfriendly names, perhaps that is why Ardour do not recognize them?

I’m on Ardour version 8.1, PipeWire version 1.0

Please open a terminal window and run this command:

amidi -l

Paste the output here.

…and

pw-jack jack_lsp
$ amidi -l
Dir Device    Name
IO  hw:0,0,0  Elektron Digitone MIDI 1
IO  hw:1,0,0  H9 Pedal MIDI 1
IO  hw:2,0,0  TimeFactor Pedal MIDI 1
IO  hw:3,0,0  UMC1820 MIDI 1
IO  hw:4,0,0  Faderfox PC4 MIDI 1
IO  hw:5,0,0  Elektron Digitakt MIDI 1

$ pw-jack jack_lsp
/usr/bin/pw-jack: 60: exec: jack_lsp: not found

Precisely which backend are you using? JACK or ALSA? And if JACK, which version?

I’m using JACK:

$ dpkg -l '*jack*' | grep ii
ii  libjack-jackd2-0:amd64   1.9.21~dfsg-3 amd64        JACK Audio Connection Kit (libraries)
ii  libjack-jackd2-0:i386    1.9.21~dfsg-3 i386         JACK Audio Connection Kit (libraries)
ii  libjack-jackd2-dev:amd64 1.9.21~dfsg-3 amd64        JACK Audio Connection Kit (development files)
ii  pipewire-jack:amd64      1.0.0-1       amd64        PipeWire JACK plugin

I start Ardour using the pw-jack command, if that is relevant…

I don’t know whether you actually need JACK - many people do not.

But just as a test, switch to the ALSA backend instead, and use the ALSA sequencer for MIDI. See what difference that makes.

1 Like

That’s a fair point. I guess with PipeWire I don’t actually need JACK for Ardour anymore. I just set it up out of habit.

I tried using ALSA, and it works :slight_smile:

No, that’s (possibly) a misunderstanding. You need JACK If you want to route audio/MIDI between apps. You don’t need JACK if you were only using it to be able to share the audio interface.

1 Like

Yes, that’s right, I didn’t need JACK in order to route Ardour other apps, but it was a quality-of-life thing about not having to start and stop backends whenever I was context switching between PulseAudio/JACK/ALSA apps.

Happy days, cheers Paul

Thankyou; this is a clarification I needed.

It turns out I switching to ALSA didn’t solve the problem after all. But I’ve been able to figure out what triggers the issue:
Whenever I load a project with the audio buffer size set to a different size than what it was when I saved the project, some connections are dropped. Not only MIDI connections, but sometimes also audio connections as well, such as the inputs from my audio interface to my audio input tracks.

I don’t usually mess around with the buffer size that much, but I’ve been experimenting with it since switching to Pipewire. So it’s not really a big issue, but rather a nuisance.

1 Like

Aaah, thanks for your observation!
Would you mind mentioning this in 0009556: Audio and MIDI connections sometimes not saved - MantisBT ?

Cheers
M.