Basically, I'm questioning why the hell does PulseAudio need to take over the devices themselves and rebuffer the audio.
X11 seems to deal with it. Switching the audio via the Xfce Mixer works well enough. Why can't the mixer be extended without affecting the sound APIs.
Basically, I'm questioning why the hell does PulseAudio need to take over the devices themselves and rebuffer the audio.
You're still not getting it. Then the mixer is implementing the PulseAudio functionality. It has to be done somewhere. Whether that be by Pulse or ALSA mixer version 2.0
The same functions need to be facilitated by something. You cant use magic. Just calling the code ALSA mixer doesn't mean the transforms aren't happening.
Why the hell does PulseAudio need to take over the devices themselves and rebuffer the audio?
OSSv4 seems to work fine with per-app volume controls and software mixing. In the driver.
I don't why switching devices requires an API that takes over the driver APIs and re-buffers the audio.