Linux ALSA sound system driver. More...

Linux ALSA sound system driver.

This driver provides access to sound playing and recording functionality through the Advanced Linux Sound Architecture (ALSA) system available on 2.6 series kernels (and before via patches/separate libraries).

Not all of the audio interface is supported. Currently supported features are:

PLAYER_AUDIO_CMD_WAV_PLAY - Play raw PCM wave data PLAYER_AUDIO_CMD_SAMPLE_PLAY - Play locally stored and remotely provided samples PLAYER_AUDIO_CMD_WAV_STREAM_REC - Toggle streamed-to-client recording PLAYER_AUDIO_CMD_MIXER_CHANNEL - Change volume levels PLAYER_AUDIO_REQ_MIXER_CHANNEL_LIST - Get channel details PLAYER_AUDIO_REQ_MIXER_CHANNEL_LEVEL - Get volume levels PLAYER_AUDIO_REQ_SAMPLE_LOAD - Store samples provided by remote clients (max 1MB) PLAYER_AUDIO_REQ_SAMPLE_RETRIEVE - Send stored samples to remote clients (max 1MB) PLAYER_AUDIO_REQ_SAMPLE_REC - Record new samples directly on the server

Known bugs:


Locally stored samples are preferred to samples loaded over the network or using the PLAYER_AUDIO_CMD_WAV_PLAY message for a number of reasons:

When retrieving samples from the server via the PLAYER_AUDIO_REQ_SAMPLE_RETRIEVE request, note that any sample with a data length greater than PLAYER_AUDIO_WAV_BUFFER_SIZE will be truncated to this size.

When using the PLAYER_AUDIO_REQ_SAMPLE_LOAD and PLAYER_AUDIO_REQ_SAMPLE_REC messages to store samples, currently only appending and overwriting existing samples is allowed. Trying to store at a specific index greater than the number of currently stored samples will result in an error. Note that the samples indices are 0-based, so if there are 5 samples stored and you request to store one at index 5 (technically beyond the end of the list), it will append to the end and become the sample at index 5. TODO: Talk to Toby to clarify his intentions for the index in this message.


The driver provides a single audio interface.

Configuration file options
  name "alsa"
  provides ["audio:0"]
  samples ["sample1.wav" "sample2.wav" "sample3.wav"]
  mixerfilters ["master" "pcm" "capture"]
Geoffrey Biggs, Lorenz Moesenlechner