Sei sulla pagina 1di 3

Writing Audio play using ALSA API(Application

Programming Interface)

ALSA stands for the Advanced Linux Sound Architecture. It


consists of a set of kernel drivers, an application programming
interface (API) library and utility programs for supporting sound under
Linux. ALSA is not the only sound API available. ALSA is a good choice
if you are performing low-level audio functions for maximum control
and performance or want to make use of special features not
supported by other sound APIs.

History of ALSA:

The ALSA Project was started because the sound drivers in the
Linux kernel (OSS/Free drivers) were not being maintained actively
and were lagging behind the capabilities of new sound technology.
Jaroslav Kysela, who previously had written a sound card driver,
started the project. Over time, more developers joined, support for
many sound cards was added and the structure of the API was refined.

During development of the 2.5 series of Linux kernel, ALSA was merged into the
official kernel source. With the release of the 2.6 kernel, ALSA will be part of the stable
Linux kernel and should be in wide use.

Digital Audio Basics

Sound, consisting of waves of varying air pressure, is converted


to its electrical form by a transducer, such as a microphone. An
analog-to-digital converter (ADC) converts the analog voltages into
discrete values, called samples, at regular intervals in time, known as
the sampling rate. By sending the samples to a digital-to-analog
converter and an output transducer, such as a loudspeaker, the
original sound can be reproduced.

The size of the samples, expressed in bits, is one factor that


determines how accurately the sound is represented in digital form.
The other major factor affecting sound quality is the sampling rate.
The Nyquist Theorem states that the highest frequency that can be
represented accurately is at most one-half the sampling rate.
ALSA Basics

ALSA consists of a series of kernel device drivers for many


different sound cards, and it also provides an API library, libasound.
Application developers are encouraged to program using the library
API and not the kernel interface. The library provides a higher-level
and more developer-friendly programming interface along with a
logical naming of devices so that developers do not need to be aware
of low-level details such as device files.

Aim of our Project:

As ALSA provides API’s along with driver. In our project, we are


making use of this ALSA API to develop our own audio console player
to show the working and support of ALSE driver and audio hardware
present in Beagleboard.

Potrebbero piacerti anche