Advanced Linux Sound Architecture

Advanced Linux Sound Architecture

Infobox Software
name = ALSA

caption = Screenshot of AlsaMixer 1.0.14
collapsible =
author = Jaroslav Kysela
developer =
released = 1998
latest release version = 1.0.17
latest release date = release date and age|2008|07|14
latest preview version = 1.0.18-rc3
latest preview date =
frequently updated =
programming language =
operating system = Linux
platform =
size =
language =
status =
genre = Audio
license = GPL and LGPL
website = []

Advanced Linux Sound Architecture (known by the acronym ALSA) is a Linux kernel component intended to replace the original Open Sound System (OSS) for providing device drivers for sound cards. Some of the goals of the ALSA project at its inception were automatic configuration of sound-card hardware, and graceful handling of multiple sound devices in a system, goals which it has largely met. A couple of different frameworks, such as JACK, use ALSA to allow performing low-latency professional-grade audio editing and mixing.

Led by Jaroslav Kysela, the project started from a Linux device driver for the Gravis Ultrasound sound card in 1998, and was developed separately from the Linux kernel until it was introduced in the 2.5 development series in 2002 (2.5.4-2.5.5). [ [ Linux 2.5.5 release notes] ] In the 2.6 version it replaces OSS by default, although a backwards-compatibility layer exists.

ALSA features

ALSA was designed to use some features which were not, at the time of its conception, supported by OSS:
* Hardware-based MIDI synthesis.
* Hardware mixing of multiple channels.
* Full-duplex operation.
* Multiprocessor-friendly, thread-safe device drivers.

To provide these features cleanly, ALSA has a bigger and more complex API than OSS, so it can be harder to develop applications that use ALSA as their sound technology. However, ALSA also provides an optional OSS emulation layer, so the simpler and more portable OSS API can be used.

Besides the sound device drivers, ALSA bundles a user space library for application developers who want to use driver features with a higher level API than direct interaction with the kernel drivers. Unlike the kernel API which tries to reflect the capabilities of the hardware directly, ALSA's user space library presents an abstraction which is as similar as possible across disparate hardware. It does this in part by using software plugins. For example, many modern soundcards or built-in sound chips don't have a "master volume" control; for these devices the user space library provides a software volume control instead using the "softvol" plugin, and ordinary application software needn't care about the difference.

ALSA Concepts

This section provides an overview of basic concepts pertaining to ALSA. [cite journal |last=Tranter |first=Jeff |year=2004 |month=October |title=Introduction to Sound Programming with ALSA |journal=Linux Journal |url= |accessdate=2007-12-01] [cite journal |last=Phillips |first=Dave |year=2005 |month=June |title=A User's Guide to ALSA |journal=Linux Journal |url= |accessdate=2007-12-01] [cite web |url = |title = HOWTO ALSA Complete (includes dmix) |accessdate = 2007-12-01 |year = 2004 |month = July] [cite web |url = |title = Alsa C library Doxygen documentation |accessdate = 2007-12-01 |year = 2007 |month = October]

* typically, ALSA supports up to eight cards numbered 0 through 7. Each card is a physical or logical kernel device capable of input, output or control of sound.
* card 0 is the default card where most sounds are played. The operating system determines which card is default.
* a card can also be addressed by its id which is an explanatory string such as "Headset" or "ICH9". If card is omitted, it means card 0.
* cards have devices numbered starting at 0. A device can be of playback type, meaning it outputs sound from the computer, or other type such as capture, control, timer, or sequencer. If device is omitted, it means device 0.
* a device can have subdevices numbered starting at 0 that represent for example a speaker pair or some other relevant sound endpoint for the device. If the subdevice is -1 or omitted, it means any available subdevice.
* interface is a description of an ALSA protocol for access. the "hw" interface provides direct access to the kernel device, however, no software mixing or stream adaptation, while "plughw" or "default" enables sound output where the hw interface would produce an error. It is not easy to find available interfaces, but common ones are "hw", "plughw", "default", and "plug:dmix".
* a device string is formed by "interface:card,device,subdevice" or "interface:CARD=1,DEV=3,SUBDEV=2", and this is how an application typically describes sound output. The device string is case sensitive.
* an ALSA stream is a data flow representing sound. The most common stream format is PCM and its encoding must match that of the hardware or sound will not play. Parameters are sampling rate which is 44.1 kHz on home stereos, and 48 kHz on home theaters, a sample width measured in bits, such as 8, 16, 24 or 32, a sample encoding, a number of channels, 1 for mono, 2 for stereo, or 6 for AC-3/IEC958, and ALSA also need buffer parameter that determines how often CPU attention is required.


Modem cards that use ALSA are detected by: aplay -l

See also

* HAL (software)
* JACK Audio Connection Kit
* KMid
* Open Sound System
* PulseAudio


External links

* [ Official website]
* (a big ALSA Wiki)

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Advanced Linux Sound Architecture — AlsaMixer 1.0.14 unter Ubuntu 7.10 Basisdaten Maintainer Das ALSA Team …   Deutsch Wikipedia

  • Advanced Linux Sound Architecture — ALSA Captura de pantalla de alsamixer Desarrollador Equipo de ALSA[1 …   Wikipedia Español

  • Advanced Linux Sound Architecture —  Pour l’article homonyme, voir Alsa.  ALSA …   Wikipédia en Français

  • Advanced Linux Sound Architecture — …   Википедия

  • Sound card — A Sound Blaster Live! Value card, a typical (circa 2000) PCI sound card. Connects to Motherboard via one of: PCI ISA USB IEEE 139 …   Wikipedia

  • Linux on zSeries — Linux on System z is the collective term for the Linux operating system compiled to run on IBM mainframes, especially System z machines. Other terms with the same meaning include Linux/390, Linux on zSeries, Linux for zSeries, Linux on System z9 …   Wikipedia

  • Sound Blaster X-Fi — XtremeGamer Fatal1ty Pro Sound Blaster X Fi is a lineup of sound cards in Creative Labs Sound Blaster series. Contents 1 …   Wikipedia

  • Linux From Scratch — Company / developer Gerard Beekmans et al. OS family Unix like Working state Current Source model Open source / Free Software Initial release …   Wikipedia

  • Sound Interface Device — Ein 6581er SID Chip auf einem C64 Mainboard Der MOS Technology 6581 SID (Sound Interface Device) ist ein programmierbarer 3 stimmiger Soundchip, der hauptsächlich in den Heimcomputern C64 und C128 von Commodore in den 1980er Jahren zum Einsatz… …   Deutsch Wikipedia

  • Processus de développement de Linux — Linux a apporté un changement radical dans la façon dont les systèmes d exploitation sont développés, en construisant une communauté de développement autour d Internet. Ce développement en communauté sur Internet possède les caractéristiques… …   Wikipédia en Français