Sound on Linux


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.

Qualia of Sound

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.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s