Pipewire drive me crazy help me!

I just updated to Pipewire 1.0.7-2 and I’m still having problems with ALSA playback in Ardour with my firewire setup. I get the same error message as @martibs. I have these error messages:
2024-06-08T01:27:55 [ERROR]: AlsaSeqMidiIO: Device initialization failed.
2024-06-08T01:27:55 [WARNING]: AlsaMidiIn: failed to open midi device ‘147:0’.
2024-06-08T01:28:27 [ERROR]: AlsaAudioBackend: failed to allocate parameters.

When I select/activate the audio interface in Ardour it disappears from the system’s mixer though returns pretty soon. Having another interface as system default doesn’t change the problem despite there’s no conflict regarding the interfaces.

Jack works though, not sure if it does without adding a config file as per: Config JACK · Wiki · PipeWire / pipewire · GitLab

So, to clarify, my post was in reply to c. s. on using the ARDOUR_ALSA_DEVICE variable. I’m using the same settings as when I start Ardour with ALSA, or with Jack (using pw-jack):
image

This is how it looks when the env is set:
image

Both ALSA and pw-jack works, but not ARDOUR_ALSA_DEVICE=pipewire. I guess it could be down to the pipewire-alsa setup on my system?
pipewire-alsa:amd64 1.0.5-1~bpo12+

On Ubuntu 24.04 I didn’t have to write any configuration files regarding Pipewire or jack beyond the real time permissions for audio group and my user. I don’t even have a lowlatency kernel installed, the generic default on Ubuntu 24.04 is fine for me.

This is what i do with pipewire. I’m on debian testing.

  • install “pipewire-jack” (sudo apt install pipewire-jack)
  • start ardour as “pw-jack ardour” from terminal
  • select jack as the “audio system”

works fine for me

That is not a documented feature, and I don’t believe it is recommended for use.
In the past Robin (x42) made the comment “That is mainly for overriding device detection. I’d be surprised if it works with non hardware devices.”

The recommended API for use with pipewire is JACK.

I am not sure what C.S. would consider “officially” supporting pipewire, but the Paul has been quite clear that the JACK backend is expected to work with pipewire-jack, but that due to the immaturity of the pipewire JACK implementation that jackd behavior was considered the reference, and any behavior which appeared to be in error would need to be duplicated with jackd, otherwise it would have to be considered an error in the pipewire-jack implementation. I think that is very reasonable, given how long it took Pipewire to reach feature parity with jackd (the 1.0 release was the first considered fully suitable for low-latency music production use).

2 Likes

Ardour has done this from day 1 (and ardour devs have been involved in the design of pipewire). It’s called pipewire JACK.

We regret that pipewire made the same mistake as pulseaudio did, and exposed an additional API (the original idea was supposed to only emulate existing ones), but from a pro-audio viewpoint the JACK API is still the most powerful and appropriate API to use with pipewire.

2 Likes