[LAD] ALSA doumentation

Fons Adriaensen fons at kokkinizita.net
Fri Nov 14 00:08:19 UTC 2008

Hello all,

Reading the file produced by 'alsactl store', I learn
that my sound hardware has a number of control parameters
that have names, types, values, ranges, etc. etc.

I now want to write some hopefully not too convolved
C or C++ code to read and write these parameters.

Is there, after X years of ALSA, any documentation that
explains the basic concepts and tells me how to do this ?
If such a thing exists I can't find it.

The Doxygen info on the ALSA site is completely useless
for the purpose of learning to understand and use the
control interface.

The textual information provided there usually provides
*nothing* that can't be read from the C types, structs or
functions it is supposed to document. It just repeats the
jargon used in the code, and is at least 99.9% redundant.
What these things actually mean, how they fit together
and what is the big picture is AFAIK nowhere and never
explained. Which is strange, because if you design a
system such as this, that would be the absolutely first
thing you need to define. No doubt the designers have it
in their heads. No doubt it's well structured and also
abstracted to almost absurd levels. But it remains a
complete mystery unless you have the time and energy and
someone is paying you to spend at least half a year to
reverse-engineer the so-called docs. If ever there was
an example of Doxygen or similar system being no more
than a pretext to keep the quality department happy,
ALSA is the best one I know of.

Now if someone can point me to some existing docs that
explain how I can e.g. set the sample clock source on a
RME MADI card in less than ten lines of C code (knowing
the parameter names, ranges, etc - no need to find them
out dynamically, I can read them asound.state) then I'll
eat my hat. It shouldn't be difficult. On some competing
systems all it takes is one ioctl(). 



Laboratorio di Acustica ed Elettroacustica
Parma, Italia

Lascia la spina, cogli la rosa.

More information about the Linux-audio-dev mailing list