ALSA 0.9.x Developer documentation

From AlsaProject
Jump to: navigation, search

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).

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.

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 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 to find your nearest mirror. You can get this HOWTO in various formats:

There is also an old ALSA FAQ document from John Fulmer.

Custom Search
Personal tools