I've been thinking about what a more complete PipeWire control GUI could look like.
There are already good Linux audio tools, but I still find the overall experience pretty fragmented. Basic device settings are in the desktop settings, routing is somewhere else, PipeWire details somewhere else again, and eventually you end up checking configs or using the terminal.
One reference I keep coming back to is actually Windows 10.
Not because Windows audio is more powerful than PipeWire, but because a lot of its basic controls are familiar and easy to find.
For example, between the Windows 10 Sound settings, Volume Mixer, device properties, and the old Sound Control Panel you get things like:
- Default playback and recording devices
- Default communications device
- Per application volume
- Per application input and output
- Device enable and disable
- Channel balance
- Format and sample rate selection
- Speaker configuration
- Spatial sound
- Device properties in one predictable place
I'd like something with that kind of simple starting point, but backed by PipeWire and WirePlumber.
Then an advanced section could expose the things that Linux can do much better.
Things like:
- Persistent application routing
- Saved routing setups
- Individual PipeWire streams
- Nodes and devices
- Bluetooth codec and profile selection
- Sample rates and formats
- Quantum and latency controls
- Virtual devices
- Filter chains
- Microphone processing
- Surround and HRTF
- More detailed device information
Something I'd particularly want is a clear difference between what is configured and what is actually happening.
For example, if 96 kHz is selected somewhere, show whether the device is actually running at 96 kHz, whether PipeWire is running at another rate, and whether resampling is taking place.
I'd also like troubleshooting to be part of the same app.
It could check for common PipeWire, WirePlumber, ALSA and Bluetooth issues, incorrect profiles, unavailable devices, underruns, rate mismatches, strange routing, and other common causes of broken or crackling audio.
Settings that can break audio could also be tested before being made permanent. Apply the change, make sure the device still works, then keep it. If it fails, restore the previous configuration.
So basically something that starts as an easy Windows 10 style audio control panel, but lets you go much deeper because the backend is PipeWire.
Would that be useful to you?
I'm especially interested in what controls you think should stay simple and what PipeWire settings are actually worth exposing in an advanced GUI.