# Index Preamble and License

Author:
  Jaroslav Kysela <perex@perex.cz>
  Abramo Bagnara <abramo@alsa-project.org>
  Takashi Iwai <tiwai@suse.de>
  Frank van de Pol <fvdpol@coil.demon.nl>

## Preface

The Advanced Linux Sound Architecture (ALSA) comes with a kernel API and a library API. This document describes the library API and how it interfaces with the kernel API.

## Documentation License

This documentation is free; you can redistribute it without any restrictions. Modifications or derived work must retain the copyright and list all authors.

This documentation is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## API usage

Application programmers should use the library API rather than the kernel API. The library offers 100% of the functionality of the kernel API, but adds major improvements in usability, making the application code simpler and better looking. In addition, future fixes or compatibility code may be placed in the library code instead of the kernel driver.

## API links

- Page Control interface explains the primitive controls API.
- Page High level control interface explains the high-level primitive controls API.
- Page Mixer interface explains the mixer controls API.
- Page PCM (digital audio) interface explains the design of the PCM (digital audio) API.
- Page PCM (digital audio) plugins explains the design of PCM (digital audio) plugins.
- Page PCM External Plugin SDK explains the external PCM plugin SDK.
- Page External Control Plugin SDK explains the external control plugin SDK.
- Page RawMidi interface explains the design of the RawMidi API.
- Page Timer interface explains the design of the Timer API.
- Page Sequencer interface explains the design of the Sequencer API.
- Page Use Case Interface explains the use case API.
- Page ALSA Topology Interface explains the DSP topology API.

## Configuration

- Page Configuration files explains the syntax of library configuration files.
- Page Runtime arguments in configuration files explains the run-time argument syntax.
- Page Runtime functions in configuration files explains run-time function definitions and their usage.
- Page Hooks in configuration files explains run-time hook definitions and their usage.

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines