ALSA 0.9.x Developer documentation
From AlsaProject
[edit] Background Info
The Advanced Linux Sound Architecture comes with a driver API & library API. Our aim is to describe hardware as close as possible in drivers, but in userspace, the alsa-lib covers the hardware differences (if required). It's possible for applications to control all hardware features (if required).
- Click here to view the code online - highlighted syntax
- Extra driver/architecture specific information is available in Vendor and module list and alsa-kernel source docs (obsolete?)
Q: Why is ALSA more advanced than OSS?
- kernel-space supports only h/w-level capabilities
- multi-thread safe design
- transparent use of plugin architecture to handle format,rate,channel cnt and many other conversions
- support for non-interleaved interfaces
- user-space software mixing (dmix)
- user-space "loopback/snoop" capabilities
- merging multiple cards into a single virtual device
- hiding non-ALSA-drivers behind a consistent user-space API (e.g. IEEE1394 drivers, or JACK)
- consistent and generic control API for managing h/w controls
- sufficiently flexible mixer architecture to handle modern audio interfaces fully (rather than reducing them to a simplistic device)
- consistent support for multiple instances of the same card
- linked operations of multiple cards
- and more...
Currently we need developers to write docs on the ctl API. Until then you will have to read the code and reference other applications for more advanced info.
[edit] Older documents
The ALSA HOWTO/FAQ documentation tries to do the ALSA driver installation easier. If you have any ideas or questions regarding this documentation, please, leave a message on the alsa-devel at lists.sourceforge.net mailing list.
The ALSA-sound-mini-HOWTO describes the installation of the ALSA sound drivers for Linux. This HOWTO is also available from the Linux Documentation Project, take a look at http://metalab.unc.edu/LDP/mirrors.html to find your nearest mirror. You can get this HOWTO in various formats:
- HTML (multiple documents)
- HTML (one document)
- plain text
- sgml source of the HOWTO is also available.
There is also an old ALSA FAQ document from John Fulmer.

