I've been fiddling with #PipeWire and WirePlumber, #Linux's latest #audio system, trying to make my sound more reliable. I'm still not a fan, but I did finally find a way to get it to (most of the time) use my built-in speaker instead of its three imaginary HDMI audio outputs.

https://shallowsky.com/blog/linux/pipewire-output-sinks.html

Controlling Pipewire's Misconfigured Audio Output Sinks (Shallow Thoughts)

@akkana
I love Linux, have used it for at least 25 years. But I admit they have not done a good job developing a decent sound system. I'd guess it's because of the large variance in sound cards and virtually none of them designed primarily for Linux.

@stargazersmith That's part of it, but a bigger part is people in major distros who insist on introducing something new and shiny and forcing it on everyone.

PulseAudio was crap when it was first forced on everyone. But over the years, they finally got it working really well. And once it was finally working well -- they added the untested and buggy PipeWire on top of it, so now sound is broken again, for who knows how many more years.

@akkana @stargazersmith Pipewire was not added "on top of" pulseaudio.

Pipewire is a reimplementation of: pulseaudio server, pulseaudio API for clients, JACK server, JACK API for clients, plus video streaming, ALSA pseudo-devices and much more.

It unifies both desktop apps using audio, and pro-audio/music creation apps, with a single server. It does more than the audio APIs on other platforms, lots more.

I do find that the configuration side of it is still a bit of nightmare.

@PaulDavisTheFirst @stargazersmith Okay. I admit I've been confused by the relationship between them. For instance, as far as I could glean from web searches, the only way to get a GUI to look at the current PipeWire setup was to use pavucontrol, the PulseAudio tool, and to do much with the commandline required pactl, both of which required installing pipewire-pulse, some kind of compatibility layer between PW and PA. So the PA layer seems like a separate thing.
@akkana @stargazersmith as i said, pipewire *implements* the pulseaudio API so tools that worked with PA work with PW, but that is done (like most things in PW) via a module. The main tool that has carried over is, as you've noticed, pavucontrol, i think mostly because people didn't think it was worth reimplementing. PW comes with its own better/more focused tools for other kinds of control, and some good patching tools (helvum, qpwgraph). There are several cmd lines tool for PW, notably pw-cli.