[alsa-devel] [PATCH V2 0/7] BAT: Add Basic Audio Tester command line tool

han.lu at intel.com han.lu at intel.com
Wed Sep 23 09:48:48 CEST 2015


From: "Lu, Han" <han.lu at intel.com>

BAT (Basic Audio Tester) is a simple command line utility intended
to automate audio driver and sound server QA testing with no human
interaction.

BAT works by playing an audio stream and capturing the same stream
in either a digital or analog loop back. It then compares the captured
stream to the original to determine if the test case passes or fails.

The main idea of frequency detecting is:
The analysis function reads data from WAV file, run FFT against the data
to get magnitude of frequency vectors, and then calculates the average
value and standard deviation of frequency vectors. After that, we define
a threshold:
    threshold = 3 * standard_deviation + average_value
Frequencies with amplitude larger than threshold will be recognized as
a peak, and the frequency with largest peak value will be recognized as
a detected frequency.
BAT then compares the detected frequency to target frequency, to decide
if the detecting passes or fails.

BAT supports 4 working modes:
  1. Single line playback;
  2. Single line capture and analysis;
  3. Playback and capture in loop, and analyze captured data;
  4. Local analyze without actual playback or capture.
BAT will check devices input by user to decide which mode to use.
BAT will create threads for playback and record, and will run spectrum
analysis for mode 2, 3 or 4.

Changes on V2:
	1. Adopt Caleb Crome's method to generate sine signal to avoids
	unwanted distortion on waveform.

Lu, Han (7):
  BAT: Add initial functions
  BAT: Add common definitions and functions
  BAT: Add playback and record functions
  BAT: Add signal generator
  BAT: Add converting functions
  BAT: Add spectrum analysis functions
  BAT: Add Makefile and configures

 Makefile.am     |   3 +
 bat/Makefile.am |  14 ++
 bat/alsa.c      | 594 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 bat/alsa.h      |  20 ++
 bat/analyze.c   | 314 +++++++++++++++++++++++++++++
 bat/analyze.h   |  16 ++
 bat/bat.c       | 603 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 bat/common.c    | 198 +++++++++++++++++++
 bat/common.h    | 176 +++++++++++++++++
 bat/convert.c   | 113 +++++++++++
 bat/convert.h   |  23 +++
 bat/signal.c    | 182 +++++++++++++++++
 bat/signal.h    |  30 +++
 configure.ac    |  19 +-
 14 files changed, 2304 insertions(+), 1 deletion(-)
 create mode 100644 bat/Makefile.am
 create mode 100644 bat/alsa.c
 create mode 100644 bat/alsa.h
 create mode 100644 bat/analyze.c
 create mode 100644 bat/analyze.h
 create mode 100644 bat/bat.c
 create mode 100644 bat/common.c
 create mode 100644 bat/common.h
 create mode 100644 bat/convert.c
 create mode 100644 bat/convert.h
 create mode 100644 bat/signal.c
 create mode 100644 bat/signal.h

-- 
1.9.1



More information about the Alsa-devel mailing list