The Miserable State of Audio in Linux

So I’ve been trying to transfer some interviews my Dad did back in the late 1970s with coal miners to my Debian Linux desktop computer for archiving. I have an ancient Sony tape deck hooked into my Line In jack, and once I unmuted Line In in the mixer I could hear the tape playing through my computer’s speakers.

However, I was completely unable to capture the audio on my computer despite hearing it through my computers speakers and being able to adjust the volume through my mixer.

I went through the 2 million normal steps you have to go through to get audio to work in Linux: run alsaconf, unmute channels, raise volume levels, set capture channel, etc.

Nothing. I tried it with Gnome’s Sound Recorder utility as well as the command line recorder that comes with ALSA. Gnome’s Sound Recorder wouldn’t do a thing. ALSA’s sound recorder at least captured static.

So then I thought perhaps I’ll try one of the millions of more powerful audio utilities for Linux. I began to venture into the world of JACK, Audacity, and other applications with horrible UIs and cryptic options. The various JACK tools I played with gave me a dazzling array of channels that I think I could hook up to one another and monitor and adjust and record and … nothing ever happened.

So as far as I can tell audio in Linux is the most confusing jumble of technologies and acronyms and is a pretty good example of what happens when open source hackers refuse to standardize.

Just for kicks here are the various audio technologies/tools I played with: OSS Compatibiltiy in ALSA, ALSA, JACK, JACKEQ, LADSPA, ESD (likes to crash), GStreamer, Gnome Sound Recorder, Audacity, and a couple other utilities.

This entry was posted in GNU/Linux. Bookmark the permalink.
  • Bob Johnson

    I migrated from Windows to Linux about, oh, 10 years ago. I loved Linux then, but audio really sucked. 10 years later, I still love Linux, and the audio still sucks. You would think that after all this time the situation would have improved, but sadly it hasn’t. I have to agree with almost everything you wrote here.

    As to your particular trouble, I suspect I know why your audio didn’t record. The ALSA driver probably just routed the line input directly to the line output through the hardware in the sound card. In order to record, you would also have to coax the sound card (and the driver) to somehow unmute and map the ‘record’ input back to the PC. I hesitate to say exactly *how* you should do that, because I don’t know what sound card you have, I don’t know what Window Manager you’re using, and I can’t say I’ve been any more successful myself attempting this feat. And I’m a programmer/EE who designs stuff like this for a living.

    I wouldn’t say it’s all about standardization though, although the lack of a common architecture is a big part of the problem. It’s also about usability and simplicity. It’s the swiss army knife, jack-of-all-trades mode many of the open source hackers get into. Instead of KISS, they create these incredible extensible architecture frameworks accompanied by almost indecipherable config files. Then they burn out or move on at around version 0.62, leaving behind unmaintainable code and almost zero documentation. Someone else finally takes on the mess, realizes it’s unmanageable, and starts from scratch on something else. And the cycle repeats.

    The hard, boring part, the part that M$ pays people lots of money to do because it otherwise doesn’t get done, is *document the driver interfaces* so others can actually write them, *create a configuration GUI’ so ordinary users can install and set up their sound card with minimum fuss, and *provide a stable ABI* so app developers can write to a known interface. I don’t see this happening any time soon in the Linux audio world.

  • http://blogs.synthesyssolutions.com/michael/ Michael Schurter

    Thanks for the advice. I’ll probably try again some day in the future. For what its worth I use Gnome which currently uses a mess of ESD+ALSA+GStreamer for sound. GStreamer seems like a nice unified multimedia stack, so I hope Gnome replaces ESD soon.

    At any rate you’re right about the KISS problem. So many multimedia frameworks for Linux provide features like network audio and complex processing pipelines, but somehow even the most simple operations (like record) are just as complex to setup as the advanced features.