Good Ardour setup on Ubuntu Studio 24.04

Hi all,

I am running Ardour 8.6 on Ubuntu Studio 24.04. My machine is a Thinkpad t480 i7 with a 256GB SSD. I have a Roland JD-XI mini synth and a Steinberg Audio interface. I have some very limited Linux experience(using Mint on my daily driver), but its the first time I try to produce music on it - I really like the look and feel of Ardour, I have produced some tracks on Logic a few years back and it’s not that different in many respects. I still have major problems with sound servers and configuration though.

What I would like to do: I produce beats and sounds which are usually a mix of sound samples from various sources such as freesound, some self recorded tracks from my synth and the odd midi track. I would also like to go to Youtube without changing the sound server every time.

First Ardour told me that I had a system limit for reserving memory - after some effort I changed it to unlimited. Then it warned me about my system being to slow to keep up with Ardour. I changed several things in the settings in accordance with an article I found on Arch Linux and Audio. That seemed to have improved it - the sound server and many settings are still rocket science to me though.
I tried Alsa and I could record from my synth, I had to change to another server each time I tried to listen to music from other sources, which is not ideal as a workflow. I could build some simple stuff using freesound samples and beats using PulseAudio, but could not record anything from my Synth / Audio Interface. I tried Jack, which seemed to allow me to record with my synth, but when I wanted to open earlier projects, Ardour told me the E/A settings (?) had changed and I could not hear anything. Jack also would not allow me to record from the audio interface again or populate another track - though I haven’t changed anything in the setting. I have also read about Pipewire but I cannot find it in the Ardour settings, thus I also have no clue how to configure it or what to do with it. I rather though to myself hey, why not give up and ask others how they have configured their Ardour?
Would love to hear from you and would appreciate if it was a language for newbies…

Thanks a lot all, every hint is appreciated.

1 Like

Pipewire implements various API (programming interfaces) so that software does not have to specifically support Pipewire. The API it implements for desktop use is PulseAudio, and the API it implements for music production use is JACK (usually referred to as pipewire-jack because it is an optional module not always present with Pipewire).
That means that picking the JACK backend in Ardour will typically use the Pipewire implementation of the JACK API unless your distribution installs the jackd server. I do not know what the 24.04 release of Ubuntu Studio uses, but you should be able to look for packages with pipewire and jack in the name in the software manager (or apt if you are more comfortable with command line) and find which is installed.

Pipewire is probably optimal for your case, with the original jackd you had to do some extra configuration to get browser sound routed through the jackd server, but with pipewire that should just work.
Assuming it is already installed, make sure you keep your pipewire packages up to date. The first version which was considered suitable performance for serious music production work was 1.0. The fedora distribution I use has 1.0.7, but there are 1.1.x and 1.2.x branches available now as well.
The release announcement for Ubuntu Studio 24.04 states that it includes pipewire 1.0, so that is likely what you are using when you select the Ardour JACK backend. It will be worth checking to see if updates are available, but I think any of the 1.0.x versions should do what you need.

1 Like

Is this not a valuable thing anymore?

1 Like

Thanks so much Chris, so I understand from your post that I run Jack in the Ardour settings. I have also seen the qjackctl app, do I need to change anything there in the settings? Again thanks, its appreciated a lot.

That script is outdated and has been replaced with the script linked below. I think it still benefits systems with Pipewire, but one needs to be aware of potential configuration differences. For example, I think Pipewire uses a ‘pipewire’ group instead of an ‘audio’ group, and the name of the configuration file to setup realtime scheduling is “/etc/security/limits.d/25-pw-rlimits.conf” instead of “/etc/security/limits.d/audio.conf”.

Thanks for pointing me to this! I have run rtcqs now and there are two warnings left:

In “Filesystems”:
“The following mounts should be avoided for audio purposes: /run/user/1000/doc”

What am I to do with this? The link underneath does not help me.

And in Spectre / Meltdown Mitigations:
“Kernel with Spectre/Meltdown mitigations found. This could have a negative impact on the performance of your system. See also System configuration [Linux-Sound]

The link says there is a certain danger when implementing this - feeling a bit uneasy about it.

Thank you all for your replies!

/run/user/1000/doc appears to be related to using Flatpacks.
I doubt that would be an actual problem unless you’re actually running Ardour from a Flatpack; which isn’t recommended.

If your audio PC is hooked up to the Internet it’s probably advisable to leaving the Spectre/Meltdown mitigations on. They will slow down your CPU a bit, though.
If you can disconnect the PC from the internet while doing audio work I believe you can disable some mitigations by adding commands to the boot prompt. Some may be hardwired into your BIOS/UEFI, though.

Thank you all! I had some success now using Alsa and headphones - it had mostly to do with track inputs and outputs. And while I am writing here my computer still insists it can’t find input or output devices, though I could hear everything through headphones - its still very confusing to me, as Jack and Audiopulse could find output devices no problem…However using headphones I can build tracks with samples, record from my synth and add midi tracks with plugins. I still can’t watch Youtube clips or listen to samples from Freesound. Hmm. Does anybody know a possible way forward?

Ardour by necessity takes exclusive control of your hardware when using ALSA for the backend (You don’t want a random player suddenly changing the sample rate and screwing up your audio). Jack does the same thing, when you are using Jack as the backend for Ardour. Pipewire will let multiple devices share the hardware, but it is still fairly new and on occasion there are still some quirks for people to work out I have seen here, so not sure I would recommend it for newcomers.

   Seablade

You can read a bit more about it here as well, though it is a bit outdated and probably should be updated (Any volunteers?)…

https://ardour.org/jack-n-pulse.html

Seablade

Hi,

Just curious, does Ubuntu Studio not have specialized GUI Audio configuration tools as well as customized system configs for PipeWire group and limits.conf?

I was under the impression that it looked after this stuff in it’s defaults or made the system changes if you install it’s metapackage in vanilla Ubuntu…?

@ardourwlk perhaps you don’t use AVL any longer but it has always come with the latest rtcqs in the accessories menu in case you missed it.

Oh, I’m AVL all the way. Thanks!

1 Like

When using pipewire-jack, the QJackCtl app can still be used to make connections, but the section used for altering the settings of the server and stopping and starting the server do not apply to pipewire. Since you can make connections in the Ardour audio connections window that is mostly redundant.

Changing server settings is probably the biggest remaining pain point with Pipewire compared to jackd. When using jackd you could stop the server and re-start with different settings easily (e.g. different sample rate or different buffer size), but that does not seem to be the case with Pipewire, at least not that I have found. You can search some of the previous pipewire posts on this forum for some of the ways to change settings, but there may be a new application I am not aware of yet which makes it easier to adjust.

1 Like

In the absence of a graphical way (most Distros don’t ship one) you can change quantum (buffer) and sample rate settings with PipeWire metadata commands:

So for example, change buffers to 256 and samplerate to 44100

pw-metadata -n settings 0 clock.force-rate 44100
pw-metadata -n settings 0 clock.force-quantum 256

https://linuxmusicians.com/viewtopic.php?t=25768

Again I’m quite surprised that this is not part of the Ubuntu Studio Audio setup tools…

There is a simple one in AV Linux to be used along with qpwgraph which together emulates most of what Qjackctl did on systems with JACK.

2 Likes

I am now using Jack in my settings. I have three audio tracks, of which one contains recorded sounds from my synth. I have started pipewire. The other two tracks produce no sound though I have tried to copy the input/output settings of the track that works. I could not connect to Jack via qjackctl, I am getting an error:

Acquire audio card Audio0
creating alsa driver … hw:0|hw:0|512|2|48000|0|0|nomon|swmeter|-|32bit
ATTENTION: The playback device “hw:0” is already in use. Please stop the application using it and run JACK again
Released audio card Audio0
audio_reservation_finish
Cannot initialize driver
JackServer::Open failed with -1
Failed to open server
(…)

Ardour also shows me continuously a warning about “Feedback” - but i cannot hear any feedback. Should I delete and reinstall - don’t see any way out here, or is there a step by step instruction to make it work?

Thanks all for your help.

By “in my settings” do you mean you are using the JACK backend in the Ardour audio setup?

Are you using pipewire-jack, or running jackd?

That message indicates that you are attempting to start jackd using qjackctl. As I pointed out in my earlier post the use of qjackctl to start the jack server with the selected settings does not apply when using pipewire-jack, so you need to be clear on whether you are using the Pipewire implementation of the JACK protocol, or have not installed pipewire-jack and are using jackd to implement the JACK protocol server.

Usually a screenshot of the Ardour audio connections window showing where the track outputs are connected can be helpful.
In general the audio output of a track should connect to the master bus, and depending on whether you are using the monitor section or not either the master bus output should connect to the system audio output, or the master bus should connect to the monitor section, and the monitor output should connect to the system audio output.

To correct that you will have to check the connections for all of the tracks and busses in the audio connections window. If you notice that there is a loop in a set of connections you can just correct that, but if you cannot find the feedback it may be best to remove all connections, then remake the connections you want one by one thinking carefully about the signal flow just like you would do when patching together instruments and a mixer in an analog system.

Hi,

I believe I have installed pipewired-jack - something in the backend has changed though. I can now set “Audiosystem” and “Driver”. The first is set to “Jack” and Driver is to “Alsa” - this is greyed out and cannot be changed. I have attached a screenshot. This could mean that Pipewire is installed now (?).

Also the Pipewire Graph is not what it was a couple of days ago - there are two midi through boxes, Ardour is not shown at all and there are no connections whatsoever. Unsure if I am on a good path here - I am getting sound on two audio tracks at the moment, audio track 3 is not giving me any sound.


You can only change the driver setting if the JACK server is not running. If using jackd as the server and it is not running, Ardour can start jackd for you using the selected settings.
Those settings are not something which Ardour can change when using pipewire-jack.

That appears to show that you have no applications and no server running with audio ports. That does not seem correct given that Ardour shows the JACK backend running.

That should be pretty obvious when checking which packages are installed on your system, there will either be jackd packages or pipewire-jack packages.

Then I would ignore qpwgraph for the moment and just work in the Ardour audio connections window.

That is a good thing, the meter shows huge overload on track 3. If you managed to get any sound out it would be horribly distorted.

Start by unselecting the record arm button for track 3, that should disconnect the input signal to track 3 and set it back to using disk data for the track (unless you have changed the default settings).
After that, check where the input and output of track 3 are connected in the audio connections window.

Hey, thank you for your help!