Strategies for testing audio signals

Task #366 : We need to find ways to do automatic unit testing for DSP units.

There might be different strategies that could be used, related to the DSP process.

Component cases:

I/O classes

  1. unit generators (only signal outputs)
  2. N-channel effects (N signal inputs and N signal outputs)
  3. NM-channel effects (N signal inputs, M signal outputs)

effect classes

  1. dynamics (noisegate, limiter, clippers, gain, balance)
  2. spectral (filters)
  3. combination of 1 and 2 (overdrive)
  4. delay-based (delay, tap-delay)
  5. digitizers (degrade, resample)
  6. N-to-M channel effects (spatialization, cross-fade)
  7. FFT-transforms

maybe every extension needs a specific set of tests precedures

Possible test signals

  • sinusoidal test tone
  • sweeps
  • noise
  • click
  • reference audio file

Possible testing strategies

Testing the impulse response of an audio effect (case 2 or 3)

  • the desired output is stored in a wave file of table
  • a unit test would start a recording into a buffer~
  • sending a click~ to the module
  • recording for a given time
  • comparing the desired wave file with the content of the test buffer~

How to compare?

  • Simple sample to sample comparison between desired wave form and test buffer
    • danger if test recording has a group delay
    • what happens if the general gain of the test buffer recoding differs from the desired recording?
    • Normalized cross correlation between desired wave form and test buffer
    • output would be 1 if the test response would be similar but shifted in the buffer~
    • the lag output of the cross correlation shows the delay
  • other (statistical) signal descriptors with regards to the sampled signal:
    • Spectral measures (spectrum, centroid )
    • spectro-temporal measures (e.g., spectral flux, coherence between ffts)

Sound descriptors for testing

How do we test for audio output with different parameter settings

.... and even dynamic changes of parameter ?

Other testing environments