Hi, I am using Ardour 7.3.0 on Ubuntu (22.04) with Pipewire (0.3.66).
Every time I start Ardour, the JACK audio backend’s buffer size is reset to some automatically determined value (I presume it might be the current setting from pipewire?) , rather than using the value I set manually the last time I ran Ardour.
I would expect that the value I set the last time would be remebered and set again the next time I run Ardour, but maybe the way it works now has some reasons I don’t see. Could you please clarify this?
When using pipewire, Ardour sees PipeWire as if it was jack. Ardour can only set the the buffer size if it starts jackd. it will rather use whatever is already set if jackd is already running (or pipewire is already running). It is not possible to start jackd while pipewire is being used as jack because the the pointer to libjack is redirected to the pipewire version of that lib and starting jakcd via either jackd or jack_control (for jackdbus) will not work (I’ve tried). In the same way someone using qjackctl sets the desired jackd parameters before starting jack clients like Ardour. With pipewire, the same thing has to be done. However, because pipewire starts during session start, pipewire’s configuration file need to be set ahead of time for the parameters you want.
If you want Ardour to set latency, sample rate, etc. You would want to use Ardour with it’s audio using ALSA directly. Ardour will then take the requested device away from pipewire and connect to it directly. This does mean that Ardour blocks other applications from using that device while it is running. Those applications (like your browser for example) would have to instead either wait for Ardour to finish or use another audio device on your machine.
But even with pipewire, I can set the buffer size in Ardour’s “Sound/MIDI Setup” dialogue and it seems to be honoured, at least for the duration of the current session. So I thought it should be possible to remember this setting per session and set it automatically again on the next load?