systemctl status --user pipewire
systemctl status --user pipewire
OSS came first, then got replaced by ALSA after it became proprietary.
PulseAudio is a userspace audio server to which programs connect. It manages audio settings per app, then sends everything to ALSA. JACK is the same but with a focus on low latency.
PipeWire is a modern drop-in replacement for both, and also has support for video on Wayland.
pactl load-module module-null-sink and then route them with qjackctl which is absolutely crazy and awesome how pipewire lets you do that.
Give Ubuntu Studio a try maybe? It comes with a lot of audio production stuff preinstalled and preconfigured, one of the most important ones in this context being low-latency process scheduling.
Essentially most distros just have default process scheduling options, which means a process might be starved for CPU time, theoretically for up to 2s or so at a time, which is very bad if that process is generating or consuming an audio stream. Low-latency scheduling, while not entirely preventing it from happening, should significantly reduce this.
You could also just configure most other distros Kernels to do low-latency scheduling of course. Or if you don’t want to muck about with kernel settings try Ubuntu Studio, which has that and more all ready to use.
They don’t have the same goals.
JACK is for professional audio.
OSS and ALSA are kernel audio drivers, they’re the most powerful of them all but extremely low level. Everything else, like pulseaudio/pipewire are just higher-level interfaces that feed ALSA audio.
Pulseaudio and pipewire are sound servers.
So really it only took two tries: OSS -> ALSA Pulseaudio -> Pipewire