[ltp] what sound stack is operational

Oisin Feeley linux-thinkpad@linux-thinkpad.org
Sun, 6 Jan 2008 14:55:13 -0500


On Jan 5, 2008 9:40 PM, Dan Sawyer <dansawyer@earthlink.net> wrote:
> Thanks.
>
> Is there documentation for how this works?
>
> Are these system or user parameters?
>
> Are the options derived from the system or are they hard coded?

Hi Dan,

I'm afraid I don't know much more than I told you.  I've never
programmed anything to do with sound on GNU/Linux and find the details
a little confusing.
I can add however that I've been assuming that you're using the GNOME
version of Fedora 7 (there's also a KDE version and I think that it
uses a different set up).

GNOME/Freedesktop uses the GStreamer framework which uses a series of
plugins to eventually pass PCM files to the sound daemon that directly
interacts with the hardware. By default that's "alsad" in Fedora 7.
There are other possible daemons which can replace alsad: esd and oss
being two of them, if I don't completely misunderstand the set up --
which is possible!  KDE3 by contrast uses it's own daemon called aRtsd
and I think also uses GStreamer. KDE4 has a replacement of GStreamer
called Phonon (again this is solely from memory and may be rubbish).

Other potentially useful fragments from me:
1. gnome-sound-properties is accessible as System->Preferences->Sound
 2. Controlling GStreamer is done through System->Preferences->More
Preferences->Multimedia Systems Selector->Audio

I'm on a CentOS5 machine a.t.m. (roughly equivalent to Fedora Core 6),
so can't check more precise details for you for Fedora 7, but I can
see that at least for this machine the gnome-sound-properties
application came from an rpm called control-center
[olivia@localhost oisin]$ rpm -qif `which gnome-sound-properties`
Name        : control-center               Relocations: (not relocatable)
Version     : 2.16.0                            Vendor: CentOS
Release     : 14.el5                        Build Date: Wed 14 Mar
2007 08:24:16 AM EDT
Install Date: Thu 26 Apr 2007 02:59:04 PM EDT      Build Host: builder6
Group       : User Interface/Desktops       Source RPM:
control-center-2.16.0-14.el5.src.rpm
Size        : 8676700                          License: GPL/LGPL
Signature   : DSA/SHA1, Tue 03 Apr 2007 08:22:13 PM EDT, Key ID a8a447dce8562897
URL         : http://www.gnome.org
[snip]

The documentation for that doesn't seem to be on my machine:
[olivia@localhost oisin]$ rpm -qd control-center
/usr/share/doc/control-center-2.16.0/AUTHORS
/usr/share/doc/control-center-2.16.0/COPYING
/usr/share/doc/control-center-2.16.0/ChangeLog
/usr/share/doc/control-center-2.16.0/NEWS
/usr/share/doc/control-center-2.16.0/README

[olivia@localhost oisin]$ ls /usr/share/doc/control*
ls: /usr/share/doc/control*: No such file or directory

But if you use similar commands you should be able to find it on yours.

So, all I can suggest is taking a look at the GStreamer documentation:
http://developer.gnome.org/doc/guides/platform-overview/platform-overview.html#multimedia

and the ALSA documentation:
http://www.alsa-project.org/main/index.php/Main_Page

and to bear in mind that if you are writing anything then PulseAudio
seems to be where things are going.
http://www.pulseaudio.org/

There's a very cool diagram by ManuelAmador which seems to classify
many of the parts in a way which may be useful:
http://rudd-o.com/archives/2007/11/05/how-pulseaudio-works/

Sorry I can't be more use, but sound has always been an irritation
that I never really understood.

Best wishes,
Oisin