2025-05-21 The audio stack ========================== Whenever I think about audio on my Debian-based laptops, I feel like I’m just too old for this. I just don’t get it anymore. Then I read a blog post like this one and I shake my head because I guess I’m not too old – the situation truly is miserable! > Now the audio stack kicks in. Is it PipeWire? PulseAudio? Is ALSA > enabled? Is the correct fallback sink selected? Is the audio device > owned by root? Is the socket exposed to your session? Who knows. – I > Want to Love Linux. It Doesn’t Love Me Back: Post 1 – Built for > Control, But Not for People Accessibility matters. The problems blind users encounter are the problems that sighted people like me will encounter later in life. And when the complaints are about complexity, brittleness, lack of testing and lack of backwards compatibility, you know that eventually you’ll get hit. > A stack implies layers. Order. A single interface at each point. > This is not a stack. This is a tangled mess of everything ever built > for Linux audio still being required right now because no one can > kill anything off without breaking something else. You want to play > sound? You need: ALSA, because it’s the actual driver. PipeWire, > because it’s the new standard. Pulse emulation, because most apps > still use Pulse. ALSA plugins, because some things bypass PipeWire. > JACK shims, because a few pro audio tools never moved on. And config > files for all of it—if they even exist. This isn’t backwards > compatibility. This is a graveyard, and we’re all just camping in > it. – I Want to Love Linux. It Doesn’t Love Me Back: Post 1 – Built > for Control, But Not for People I wonder. Isn’t this stack the right thing to do? The new layer with an emulation of the old layer sitting atop the kernel layer, etc? In the long lived stacks in the commercial world, the same thing is true (Windows API, Java API – all continue to offer compatibility layers to deprecated things). From my perspective the main problem is that the mess is necessary but it must also be either strictly encapsulated and controlled or – if composable like in a typical Linux distribution – supported by tools to inspect and control it across all layers. What we have right now is a composable stack where we are free to install and deinstall parts and every layer provides independent inspection and control tools that work differently from each other. And no overview so you don’t know which part is failing. My audio stacks also mostly work but if the volume is wrong I always wonder: what tool do I need to run (on the command line) to change it. So many mixers! And on every new laptop: do I need Jack? And is PipeWire or PulseAudio the correct one? Or both? The uncertainty is part of my problem. #Audio #Software #Administration