Index, Preamble and License

Author
  Jaroslav Kysela perex.nosp@m.@per.nosp@m.ex.cz
  Abramo Bagnara abram.nosp@m.o@al.nosp@m.sa-pr.nosp@m.ojec.nosp@m.t.org
  Takashi Iwai tiwai.nosp@m.@sus.nosp@m.e.de
  Frank van de Pol fvdpo.nosp@m.l@co.nosp@m.il.de.nosp@m.mon..nosp@m.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 Primitive control plugins explains the design of primitive control plugins.
- 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 ctl_external_plugins 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.
- 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.
- Page Use Case Configuration explains the UCM configuration and their usage.