-   Linux - General (
-   -   Understanding Audio (

geustace 12-10-2008 02:17 PM

Understanding Audio
One of the areas I seem to have lots of issues with when installing linux is always audio. Getting anything to work always seems to be a mission. One of the reasons for this seems to be the various sound systems and their co-existence or lack thereof and me not being an audio engineer.

Over time, we now seem to have a mixture of new and old technologies e.g. OSS, Alsa, PulseAudio etc. I don't know which are needed or which do what

At the moment. I am trying to get a microphone working on Fedora 10 on a Toshiba Tecra A10. Frankly speaking, I don't know what I am doing. I have prodded and poked and thanks to some help from the Fedora forums managed to get audio out working by adding the module option 'model=toshiba' to the driver. Pretty much black magic as there doesn't seem to be any documentation to help.

Can anyone recommend a good tutorial or how-to that describes the various audio systems ? What the various parts do and how they work ? What the various channels are, what capture is all about and when one needs it on or off etc. Steps to get the various components working etc. I don't mind working under the bonnet but I would love to know what the stuff I am tinkering with is all about, it might even save me from putting my fingers into that spinning thing that I wasn't sure what it was.

This is one area where M$ Windows is so far ahead its not funny. With every PC/laptop I have had, Sound just works !

jschiwal 12-10-2008 02:46 PM

You are right. All distro's should automatically make new users members of the "audio" group. If you do that, and run both alsaconf and your distro's sound configuration wizard, then you shouldn't have a problem.

Perhaps they don't do that because of a possible danger of exploit that I am unfamiliar with, or because corporate users would rather not have sound enabled by default for a room full of workstations. The work environment could end up sounding like a video game parlor.

OSS support won't remain in the kernel for too much longer. If you have an old program that uses OSS, or if you select OSS in a programs settings, you are really using Alsa emulation.

geustace 12-10-2008 10:46 PM

Whilst I haven't tried what is suggested, I would still like to find a resource that actually explains how the various components interact, work. Basically, I am an engineer and I don't like black boxes. Hence my preference for Linux over Windows.

jschiwal 12-10-2008 11:11 PM

Audio is a black art. Not as bad as video, but dealing with numerous DSP devices can't be easy. Sometimes things you think should be easy because they are so common are surprisingly complicated. Take pictures for example. I once looked on a website that dealt with how pictures are represented in memory or the various file formats. There are around 75 different types. Look at video. Not only are there countless representations of something as simple as a pixel, you need to deal with dozens of codecs and containers for video and audio streams. A file like a .avi file is just a container format. You still need to deal with how the video and audio is represented.

There is also the irony that making things easier for the user, ends up adding a lot of complexity. Look at auto-mounting using udev/hal/dbus and PolicyKit. What was done in the past, by manually adding an /etc/fstab entry is now done automatically, but when something doesn't work it is hard understanding how everything fits together. For example, a problem with acpi can cause the udev or had or dbus daemons not to run.

geustace 12-11-2008 01:18 PM

I am not trying to imply that the various technologies are simple but there must be some resource that explains the architecture and components of the various systems. I really would prefer something a little higher up than "Read the source Luke !!".

Not being an audio engineer, coming to terms with the acronyms and language would be a starting point.

I guess its back to google and trying to phrase the right query.


jschiwal 12-11-2008 03:43 PM

Look in your package manager for packages with doc in their name. They usually are the ones with more comprehensive documentation. I think there might be an alsa-doc package that will add html documentation in /usr/share/doc/alsa-<version>/.
This may be the higher level, more comprehensive documentation that you need.

As far as documentation for device drivers, you will probably need to use the "modinfo" and read the text file for it in the kernel source to learn about particular options that a device can use.

It would be nice if a comprehensive book on KDE or Gnome was published. I'm someone who has to see the whole picture before I can start understanding the pieces.

All times are GMT -5. The time now is 04:19 AM.