And I stumbled down the rabbit-hole of Linux’s sound maze. And then I think how did I get here? Oh yes, it started with KDE. I really liked this aspect of KDE, which was the amazing ability to define the hierarchy of sound output devices. If you’re going "huh!?", I mean that with KDE, when I was listening to music, I could configure it so that sound would normally play from the audio speakers, and when I connected my USB headset, then it would play from there instead. And upon unplugging it would revert to playing from my speakers. No KDE means no such feature, unless I decide to install Kmix – which would mean blah blah bloated install.

So, yes I’m in this maze. To understand what was going on, I decided to understand what lay underneath. And it is a maze.
Here’s some of what I’ve read:
http://insanecoding.blogspot.in/2009/06/state-of-sound-in-linux-not-so-sorry.html
http://tuxradar.com/content/how-it-works-linux-audio-explained
http://en.wikipedia.org/wiki/PulseAudio
So, basically what it comes down to is the following structure:
Sound Hardware <== ALSA (kernel) <== PulseAudio <== Gstreamer | AlsaMixer
This is what it appears to be on my Debian 7 machine. Now, what I’d like to do is possibly get rid of the middle Pulse Audio layer. And replace it with Jack.
Gstreamer has a plugin that allows it to interface with ALSA. And it’s possible to reroute PulseAudio through Jack too.
So, I could do this:
Sound Hardware <== ALSA (kernel) <== Jack <== Gstreamer | AlsaMixer | PulseAudio
or
Sound Hardware <== ALSA (kernel) <== Jack <== PulseAudio <== Gstreamer | AlsaMixer
Dunno when I’ll actually get that done. But it’s in the works.
