Are you using Arch? I’ve been having a strange issue lately when there is a kernel update. “pacman -Qi linux” will show the new kernel that is installed but “uname -r” will show an older kernel that is no longer installed and the kernel modules are no longer available so certain devices won’t load their drivers. Usually reinstalling the linux kernel and rebooting will work but sometimes I have to use “downgrade linux” to revert to the version of the kernel shown by 'uname -r" . This has been happening for the last 3 or 4 weeks every time Arch puts through a kernel update. I haven’t been able to figure out why.
Thanks to your comments, I realized I didn’t have Pipewire enabled, even if strangely, I could see it with ‘systemctl --user status pipewire’. Anyway, I installed and enabled it and I can now see my hardware correctly. However, I can’t use pavucontrol anymore as I think I disabled pulseaudio, and I don’t know how to get it back for a casual audio use outside of my DAW.
Now I tried to reinstall pulseaudio, and configured pipewire to use it. But as soon as I do that, Ardour doesn’t list my hardware anymore.
That is backwards.
If you use pipewire, then pipewire should use the hardware (ALSA driver) directly.
Pipewire can emulate pulse and JACK. So Ardour cannot tell if you run actual JACK or pipewire. The same is true for desktop applications that need pulseaudio.
On a postmodern system pulseaudio per se no longer plays a role, it is now only an interface.
Pipewire rules it all.
–
PS. You could also try to let Ardour directly use the hardware. In Ardour, Menu > Window Audio/MIDI Setup: pick Audio-System: ALSA; Then use the UMC for both input and output.
This requires exclusive access to the soundcard, but that’s usually what one wants when while doing pro-audio work.
If you are using pipewire then you should install the pipewire-pulseaudio module (which would typically be installed by default when pipewire is installed, since the Pulse API is usually the default desktop audio server).
It is not clear what you changed since you have not provided any information about which Linux distribution you are using, or what commands you executed (or which GUI tool you used) when you say you “installed” pipewire even though pipewire was already running on your system.
Sorry about the lack of information. I am running Ubuntu Studio 24.04, with KDE plasma. To be honest, I am not sure what I installed and uninstalled anymore. Here are my tests:
-
$ pactl inforeturnsServer Name: pulseaudio -
pw-cli inforeturnsError: "failed to connect: Host is down" -
jack_control statusreturnsstatus stoped - After checking, I think I have all JACK, PipeWire and pulse packages installed.
So I installed and enabled pipewire:
pulseaudio --killsystemctl --user disable pulseaudio.servicesystemctl --user disable pulseaudio.socketsystemctl --user enable pipewire.servicesystemctl --user enable pipewire-pulse.servicesystemctl --user start pipewire.servicesystemctl --user start pipewire-pulse.service- Then
pw-cli infostill returnsError: "failed to connect: Host is down" - So I check
systemctl --user status pipewire-pulse.serviceand find out I have aFailed to start pipewire-pulse.service - PipeWire PulseAudio. - Config files: I have nothing in
~/.config/pipewirenor in/etc/pipewire, is that normal?
I am currently unable to ear any sound from my machine as pavucontrol (and pulse?) is disabled. I might need to re-enable it to be able to work.
Let me know if I can test anything else, and thank you for your help!
@x42 Thank you for your explainations, It is more clear to me now, and at least I can use Ardour with direct hardware access. But I often requires access to my web browser as well and it doesn’t allow that as far I as I tested it.
I’m not sure if it gets autostarted by pipewire.service or not but I always make sure to run systemctl --user start wireplumber as well.
It’s the third piece in the pw & pw-pulse puzzle.
Not having it started shouldn’t affect pw-pulse, though, so check if there’s anything in the log explaining exactly why pw-pulse doesn’t start : journalctl -u pipewire-pulse
I’m not sure if this matters, but on my setup (Ubuntu Studio 24.04.3 LTS, KDE Plasma, NVidia) the command pipewire --version returns
pipewire
Compiled with libpipewire 1.0.5
Linked with libpipewire 1.0.5
In this post, @paul mentions that Pipewire 1.2.5 or later is needed to enable simultaneous sounds from other applications. I can do this on another machine that’s running KDE Neon with Pipewire 1.2.6, but not on my Ubuntu Studio machine.
No, Paul just says that “On Linux, make sure you are using a distribution with a version of Pipewire at or beyond 1.2.5.” , but that has nothing to do with enabling simultaneous sounds from other applications.
I just tried pw v1.0.4 and it played an Ardour session and a video clip in mpv (using pw) just fine.
There are reasons why versions older than 1.2.5 may be suboptimal (there have been lots of bug fixes between 1.0.5 and 1.2.5) but being able to handle multiple audio streams simultaneously isn’t one of them.
Thanks @peder for that information. I can’t get it to work. But I’m completely unfamiliar with these audio configuration apps like pipewire and jack.
I tried starting both applications with pw-jack. Is that the wrong approach?
pw-jack ardour
pw-jack mpv xyz.mp4
Ardour plays the selected piece as usual but mpv remains silent until I quit Ardour.
That is typically only needed if pipewire-jack is not installed properly, or if your distribution for some reason allows both pipewire-jack and jackd to be installed simultaneously.
Does mpv enable jack output drivers by default? Have you tried starting mpv with the --ao=jack option to specify that it should use the jack driver instead of alsa?
But this is all off topic to this thread.
This is what that command returns on a system running pipewire and pipewire-pulse:
Server Name: PulseAudio (on PipeWire 1.4.8)
That disables for your user, but pulseaudio usually runs as a system service, so that form of the command would not disable a system pulseaudio server.
I do not see /etc/pipewire on my system, so I think that is normal. I have files in ~/.config/pipewire, but I think you would have had to previously configured audio using your user account to have those files created, and it seems you have not managed to successfully run pipewire yet.
Once pipewire-pulse is running correctly then pavucontrol will work again.
It is not clear how you managed to get Ubuntu Studio into such a mixed state where none of the audio appears to be installed correctly, but someone with Ubuntu 24.04 experience will have to help at this point, getting the incorrectly installed software removed and getting pipewire installed and configured correctly (or jackd if you would prefer that, although getting jackd configured to allow other desktop to be routed is much more complicated than using pipewire).
Maybe the files are in /usr/share/pipewire
You are correct, I did not realize that some of the system conf files are in /usr/share now instead of /etc.
$ ls /usr/share/pipewire/
client.conf
client.conf.avail
client.conf.d
client-rt.conf.avail
filter-chain
filter-chain.conf
jack.conf
minimal.conf
pipewire-aes67.conf
pipewire-avb.conf
pipewire.conf
pipewire.conf.avail
pipewire.conf.d
pipewire-pulse.conf
pipewire-pulse.conf.avail
pipewire-pulse.conf.d
pipewire-vulkan.conf
you have to be careful when removing or installing something because, for example, if you are in Gnome and you install pulseaudio with pulseaudio-config, the entire graphical interface goes away.
If you use Ubuntu 24.04 (I only tested on it, for 22.04 there is a different pattern) you can install pipewire with
sudo apt install ubuntustudio-pipewire-config
then add, to be safe although it may be redundant, your user to the audio group with
sudo usermod -a -G audio $USER
and then give
sudo apt install pulseaudio
which does not reinstall pulseaudio but makes some programs, such as DavinciResolve, use the pulseaudio libraries to work.
hope that helps
mpv can use native pipewire, so you don’t have to start it with pw-jack.
You may need to use qpwgraph to make sure its output is connected to the input of your sound card
Needing to use pw-jack has nothing to do with the applications, it depends on how the libjack.so provided by pipewire-jack is configured in the system.
Thanks all for your precious comments. I wanted to say I think I solved my issue by following this guide to enable PipeWire then chose Jack/Pipewire on Ardour. I am still confused how it got broken and what went wrong, but I suspect it has something to do with the line that copies PipeWire config to ALSA’s plugin config.
$ sudo cp /usr/share/doc/pipewire/examples/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d/
AIUI, some systems keep the “default” versions of their configs in /usr/share/<thing>: the apps they configure look first in /etc/<thing> for local overrides, and fall back to /usr/share/<thing> if it isn’t found. I think some even layer the two, such that a partial file in /etc/<thing> gets backstopped by the default version of the file in /usr/share/<thing>.
FWIW, I’ve been building “framework-y” things for a long time now: the idea that a given configuration should be overridden by another partial configuration is almost as comforting as mac-and-cheese (and no, I am under no illusions that my perception here is “normal”).