alsabat Man page

ALSABAT(1) General Commands Manual ALSABAT(1)


alsabat – command-line sound tester for ALSA sound card driver


alsabat [flags]


ALSABAT(ALSA Basic Audio Tester) is a simple command-line utility
intended to help automate audio driver and sound server testing with
little human interaction. ALSABAT can be used to test audio quality,
stress test features and test audio before and after PM state changes.

ALSABAT’s design is relatively simple. ALSABAT plays an audio stream
and captures the same stream in either a digital or analog loop back.
It then compares the captured stream using a FFT to the original to
determine if the test case passes or fails.

ALSABAT can either run wholly on the target machine being tested
(standalone mode) or can run as a client/server mode where by alsabat
client runs on the target and runs as a server on a separate tester
machine. The client/server mode still requires some manual interaction
for synchronization, but this is actively being developed for future

The hardware testing configuration may require the use of an analog
cable connecting target to tester machines or a cable to create an ana‐
log loopback if no loopback mode is not available on the sound hardware
that is being tested. An analog loopback cable can be used to connect
the “line in” to “line out” jacks to create a loopback. If only head‐
phone and mic jacks (or combo jack) are available then the following
simple circuit can be used to create an analog loopback :-


-h, –help
Help: show syntax.

-D Select sound card to be tested by name.

-P Select the playback PCM device.

-C Select the capture PCM device.

-f Sample format
Recognized sample formats are: U8 S16_LE S24_3LE S32_LE
Some of these may not be available on selected hardware
The available format shortcuts are:
-f cd (16 bit little endian, 44100, stereo) [-f S16_LE -c2 -r44100] -f dat (16 bit little endian, 48000, stereo) [-f S16_LE -c2 -r48000] If no format is given S16_LE is used.

-c The number of channels. The default is one channel. Valid val‐
ues at the moment are 1 or 2.

-r Sampling rate in Hertz. The default rate is 44100 Hertz. Valid
values depends on hardware support.

-n Duration of generated signal. The value could be either of the
two forms:
1. Decimal integer, means number of frames;
2. Floating point with suffix ‘s’, means number of seconds.
The default is 2 seconds.

-k Sigma k value for analysis.
The analysis function reads data from WAV file, run FFT against
the data to get magnitude of frequency vectors, and then calcu‐
lates the average value and standard deviation of frequency vec‐
tors. After that, we define a threshold:
threshold = k * standard_deviation + mean_value
Frequencies with amplitude larger than threshold will be recog‐
nized as a peak, and the frequency with largest peak value will
be recognized as a detected frequency.
ALSABAT then compares the detected frequency to target fre‐
quency, to decide if the detecting passes or fails.
The default value is 3.0.

-F Target frequency for signal generation and analysis, in Hertz.
The default is 997.0 Hertz. Valid range is (DC_THRESHOLD, 40% *
Sampling rate).

-p Total number of periods to play or capture.

Write stderr and stdout output to this log file.

Input WAV file for playback.

Target WAV file to save capture test content.

Internal loopback mode. Playback, capture and analysis internal
to ALSABAT only. This is intended for developers to test new
ALSABAT features as no audio is routed outside of ALSABAT.

alsabat -P plughw:0,0 -C plughw:0,0 -c 2 -f S32_LE -F 250
Generate and play a sine wave of 250 Hertz with 2 channel and
S32_LE format, and then capture and analyze.

alsabat -P plughw:0,0 -C plughw:0,0 –file 500Hz.wav
Play the RIFF WAV file “500Hz.wav” which contains 500 Hertz
waveform LPCM data, and then capture and analyze.

On success, returns 0.
If no peak be detected, returns -1001;
If only DC be detected, returns -1002;
If peak frequency does not match with the target frequency, returns




Currently only support RIFF WAV format with PCM data. Please report any
bugs to the alsa-devel mailing list.


alsabat is by Liam Girdwood , Bernard
Gautier and Han Lu .
This document is by Liam Girdwood and
Han Lu .

20th October 2015 ALSABAT(1)