A program for experimenting with simple audio DSP algorithms

BasicDSP is an educational tool that makes it easy to experiment with simple Digital Signal Processing algorithms for audio signals. The input can either be taken from the sound card, or be a locally generated sine wave, white noise or impulse signal. The output is fed to the sound card, as well as to a virtual oscilloscope and spectrum analyzer.

The DSP algorithm itself is specified in a very straightforward programming language which has only assignment statements (and on Linux a print statement). Each line contains one statement, and all lines are executed once for each incoming sample. The input sample is available in variables named 'in', 'inl' (left channel) and 'inr' (right channel). The program should write the output into variables named 'out', 'outl' and/or 'outr'. Here's a simple example program:

  a = a + slider1 * (in - a)
  outl = a
  outr = fir(in, 0.1, 0.3, 0.3, 0.1)

This illustrates defining new variables ('a' in the example), the use of the sliders, and the use of a built-in function like fir(). The help-menu gives access to a complete list of built-in variables and functions.

A tutorial for BasicDSP has appeared in the Winter 2007/8 issue of SPRAT, and can be downloaded here.
Those who can read Dutch are also referred to PA3FWM's series of articles on Software Defined Radio, which appeared in the Dutch amateur radio journal 'Electron' between October 2006 and September 2007; in fact, BasicDSP was originally written specifically to accompany these articles.
For discussions on BasicDSP and DSP programming, there is a Yahoo group.

BasicDSP version 1.01, released on October 7, 2008, can be downloaded in two versions:

Finally, here's a screenshot:


Copyright © 2007-2008, Pieter-Tjerk de Boer, PA3FWM, and Niels Moseley, PE1OIT.
PA3FWM's amateur radio software page.
PE1OIT's home page.