Need help/consultation from someone using Pipewire

Hi!
My Ardour has been acting strange lately under Linux + Pipewire, so I want to ask other users for help/advice.

  1. I cannot export audio if JACK is used as a backend. If I switch to Pulseaudio the export works (but it breaks some audio connections).

  2. I cannot add a plugin (virtual instrument) on a MIDI track. Ardour freezes with no output/error. The plugin type doesn’t matter (vst2/vst3/lv2). Even adding a MIDI track with the default “ACE Reasonable Synth” freezes Ardour. I have several Ardour versions compiled from sources and only 7.3 (tag 7.3 from github) works ok, any newer freezes. Even recently released v7.4. :frowning:

I removed config dir but it doesn’t help. I wonder if these problems are more Pipewire or Ardour related? Thanks!

EDIT: I’ve just reinstalled Pipewire using default system repo, downgrading from 0.3.68-1 to 0.3.65-3.
Audio exporting works again, but the plugin problem remains.

1 Like

If your distribution splits up pipewire as typically done, one option to check whether the problem is pipewire or not is to replace pipewire-jack with jackd. To use Ardour (or other jack-aware applications) you would start jackd first, which will request exclusive use of the audio interface from pipewire. That will prevent routing audio from the rest of your desktop applications while using jack applications, but jackd is very stable at this point, so should give you immediate indication if the problem is just MIDI routing bugs in pipewire-jack.

Hi, thank you for your reply.

In a meantime I ran Ardour in debug mode and made some tests.

  1. v7.3 works perfectly. All issues are with the newer versions.
  2. Add MIDI track with no plugin selected - OK
  3. Add plugin (except instrument) to MIDI track - OK
  4. Open existing session with MIDI track(s) with instrument plugins on them - OK
  5. Add MIDI track with the instrument plugin selected - FREEZE
  6. Add instrument plugin on existing MIDI track - FREEZE

Debug log displays these lines in an infinite loop when Ardour freezes:
834756551 DEBUG::LTC: LTC resync_xrun()
PBD::DEBUG::AbstractUI: gui: allocated per-thread request of type 8, caller AudioEngine 1 aka 140718727231168
PBD::DEBUG::AbstractUI: gui/AudioEngine 1/140718727231168 send per-thread request type 8 using ringbuffer @ 0x7ffba80b7900 IR: 0
DEBUG::EventLoop: gui: signal_new_request
PBD::DEBUG::AbstractUI: gui: allocated per-thread request of type 1, caller AudioEngine 1 aka 140718727231168
PBD::DEBUG::AbstractUI: gui/AudioEngine 1 queue call-slot using functor @ 0x7ffba1bfdfe0, invalidation 0
PBD::DEBUG::AbstractUI: gui/AudioEngine 1/140718727231168 send per-thread request type 1 using ringbuffer @ 0x7ffba80b7900 IR: 0
DEBUG::EventLoop: gui: signal_new_request
834756639 DEBUG::TXLTC: reset
PBD::DEBUG::AbstractUI: gui: allocated per-thread request of type 8, caller AudioEngine 1 aka 140718727231168
PBD::DEBUG::AbstractUI: gui/AudioEngine 1/140718727231168 send per-thread request type 8 using ringbuffer @ 0x7ffba80b7900 IR: 0
DEBUG::EventLoop: gui: signal_new_request
PBD::DEBUG::AbstractUI: gui: allocated per-thread request of type 1, caller AudioEngine 1 aka 140718727231168
PBD::DEBUG::AbstractUI: gui/AudioEngine 1 queue call-slot using functor @ 0x7ffba1bfdfe0, invalidation 0x55ec9a3ead10
PBD::DEBUG::AbstractUI: gui/AudioEngine 1/140718727231168 send per-thread request type 1 using ringbuffer @ 0x7ffba80b7900 IR: 0x55ec9a3ead10
DEBUG::EventLoop: gui: signal_new_request
834778020 DEBUG::LTC: LTC resync_xrun()
PBD::DEBUG::AbstractUI: gui: allocated per-thread request of type 8, caller AudioEngine 1 aka 140718727231168
PBD::DEBUG::AbstractUI: gui/AudioEngine 1/140718727231168 send per-thread request type 8 using ringbuffer @ 0x7ffba80b7900 IR: 0
DEBUG::EventLoop: gui: signal_new_request
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834778086 DEBUG::TXLTC: reset
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834799382 DEBUG::LTC: LTC resync_xrun()
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834799429 DEBUG::TXLTC: reset
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834820521 DEBUG::LTC: LTC resync_xrun()
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834820567 DEBUG::TXLTC: reset
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834841988 DEBUG::LTC: LTC resync_xrun()
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834842034 DEBUG::TXLTC: reset
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834863345 DEBUG::LTC: LTC resync_xrun()
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834863381 DEBUG::TXLTC: reset
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834884485 DEBUG::LTC: LTC resync_xrun()
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 8
PBD::DEBUG::AbstractUI: gui: no space in per thread pool for request of type 1
834884530 DEBUG::TXLTC: reset

It is a bug in Pipewire, revealed by recent changes in Ardour. Please see deadlock: JACK port-registration blocks on graph-order callback - Ardour hangs (#3183) · Issues · PipeWire / pipewire · GitLab

4 Likes

Thank you!

I would prefer this error to be related to Ardour, due to faster bug fixes :wink:

EDIT
Here was an information that in v7.4-24 works well again. My mistake, It does not. I switched to Pulseaudio and forgot.

The issue was just fixed in pipewire:

5 Likes

Unfortunately the bug is not resolved yet. I’ve just compiled Pipewire from source code and this bug still exists. :frowning:

It’s fixed in 0.3.71.

1 Like

Awaiting for 0.3.71 to be released as I have the same issue with new midi tracks.

@skygge maybe it’s good to mention the workaround you gave in the PW gitlab ticket: to add a virtual instrument to a new midi track, switch to ALSA driver prior to adding the track, then switch back to PW. I tried and it works well, it’s better than being blocked.

1 Like

Sure. But installing PW from sources is even easier :slight_smile:

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.