Audio Signal Processing Programs

Spectrum Analyzer

This program samples the input from a sound card, performs an FFT, and graphs the output. INI file, command line, and run time options provide the user with the ability to select linear/log frequency and amplitude scales as well as sampling rates, length of the FFT, and windowing functions. Graphics is done using the VGA 640x480x16 video mode, so a VGA compatible card is required.

Three versions of the program are included. The first will run on 386+ computers, under DOS, using 8-bit Soundblaster (or compatible) cards, 16-bit Soundblaster cards, ProAudio Spectrum-16 cards, or any card which supports the VESA audio interface BIOS extensions (such as the MediaVision 3D series).

The second version is for computers running Linux, and requires an ELF version of the shared SVGALib libraries and /dev/dsp support (enabled in the kernel) for whatever sound card you have. It should work with any card supported by the sound driver that comes with the Linux kernel.

The third version is for computers running Linux and X Windows. It uses the shared SRGP library, which is dynamically linked with the included binary, and /dev/dsp support for your sound card. It should work with any card supported by the sound driver that comes with the Linux kernel.

The program can also be compiled on Sun Sparcstations running X Windows, also using the SRGP libraries. It uses the /dev/audio device for audio input (Sun 8-bit 8kHz mu-law audio) and requires a microphone connected to your system.

Version 5.1 is now available.
Get the program and source in .zip format [284k], or
Get the program and source in .tar.gz format [266k].
Or, you can look a the LSM entry for this program.

These files are also available at:
ftp://sunsite.unc.edu/pub/Linux/apps/sound/freqs/ freq51.tar.gz
http://bul.eecs.umich.edu/signal/freq51.tar.gz
http://bul.eecs.umich.edu/signal/freq51.zip
ftp://ftp.simtel.net/pub/simtelnet/msdos/sound/ freq51.zip

I have received reports that the .asm files in the source package do not assemble with some of the more recent versions of TASM. I have assembled them with version 3.1 of TASM, but don't have a newer copy to test with. If you are having problems with these files, you can try using the .obj files for Freq that are created from my copy of TASM.


Spectrogram

This program samples data from a sound card, performs an FFT, and displays the result in the form of a spectrogram. INI-file, command line, and run-time options are available to set the sampling rate, FFT size, display color scheme, and more. The output is done in 800x600x256 color mode. Three versions of the program are included. The first will run on 386+ computers, under DOS, using 8-bit Soundblaster (or compatible) cards, 16-bit Soundblaster cards, ProAudio Spectrum-16 cards, or any card which supports the VESA audio interface BIOS extensions (such as the MediaVision 3D series). The video display is done using the VESA video BIOS extensions, so an SVGA video card with VESA video BIOS extensions is required (see the specgram.txt file in the package for more details.)

The second version is for computers running Linux, and requires an ELF version of the shared SVGALib libraries and /dev/dsp support (enabled in the kernel) for whatever sound card you have. It should work with any card supported by the sound driver that comes with the Linux kernel.

The third version is for computers running Linux and X Windows. It uses the shared SRGP library which is dynamically linked with the included binary, and /dev/dsp support for your sound card. It should work with any card supported by the sound driver that comes with the Linux kernel.

Version 2.0 is now available
Get the program and source in .zip format [248k] or
Get the program and source in .tar.gz format [228k]
Or, you can look a the LSM entry for this program.


These files are also available at:
ftp://sunsite.unc.edu/pub/Linux/apps/sound/freqs/specgrm2.tar.gz
http://bul.eecs.umich.edu/signal/specgrm2.tar.gz
http://bul.eecs.umich.edu/signal/specgrm2.zip
ftp://ftp.simtel.net/pub/simtelnet/msdos/sound/specgrm2.zip

I have received reports that the .asm files in the source package do not assemble with some of the more recent versions of TASM. I have assembled them with version 3.1 of TASM, but don't have a newer copy to test with. If you are having problems with these files, you can try using the .obj files for Specgram that are created from my copy of TASM.


Wav2FFT

This is a simple (very simple) utility program that will read in a .wav format file, perform FFTs on the data, and output the results to a binary format file. There are no bells or whistles here, but the source is included if you wish to make some modifications. The executable is for DOS, but this program should compile anywhere, and run properly on machines using the little-endian (Intel) byte ordering. Other machines will need to swap the byte order to get this to work, since .wav files always use little-endian order.

wav2fft.zip


The SRGP package may be found at: ftp://sunsite.unc.edu/pub/Linux/libs/X/srgp.tar.gz
The SVGALib package may be found at: ftp://sunsite.unc.edu/pub/Linux/libs/graphics/svgalib-1.2.10.tar.gz

I have put compiled (shared/ELF) versions of these libraries at: ftp://bul.eecs.umich.edu/pub/linux/shared_srgplib.zip
and ftp://bul.eecs.umich.edu/pub/linux/shared_svgalib.zip


Other sites of interest


Go to the Biomedical Ultrasonics Lab Directory

Go to the Biomedical Ultrasonics Lab Home Page

Return to my home page.


If you try to run or compile either of these program, I would appreciate a brief message describing your success or failure. I would like to compile a list of compatible setups and fix/document any problems that may occur.

Last modified, 9-Feb-1998 by Phil VanBaren (phillipv@eecs.umich.edu)