SNDAN: MUSICAL SOUND ANALYSIS, GRAPHICS,

MODIFICATION, AND RESYNTHESIS ROUTINES FOR UNIX

SNDAN is a package of programs for spectrum analysis, graphics, modification, and resynthesis specifically designed for monophonic musical sounds. Two programs are available for spectral analysis of single channel sound files to produce analysis files containing the time-varying amplitudes and frequencies of the components comprising the sounds. Another program is used to display, modify, and resynthesize sounds from the spectral data. There are also a variety of other programs for resynthesis and for display of time domain data.

Generally it is assumed that the sound file is a monaural sound file of type .snd (or .au) or .wav, where the sample data consists of 16-bit integers. (Note that the freeware Unix sound utility sox can be used to convert from/to other sound file formats.)

Graphics are EPS files and are automatically viewed by the computer's resident EPS viewer program, which is usually some form of ghostview or gv. With Mac OS X Terminal, the Preview app can be used to display EPS and save to a PDF file. These files can be saved, printed, and imported into various other applications.

Sound files can be graphed using the program sp. It allows control of both the time and amplitude scales of the graphs. This program is exceptional for the SNDAN package in that it works for both monaural and stereo sound files.

The program sextract can be used to extract individual sounds from a sound file containing a sequence of these sounds (separated by brief silences) and put them in separate sound files.

Time-varying spectral analysis can be performed by either pvan (phase vocoder analysis) or mqan (spectral tracking analysis). Two types of analysis files are currently used. One (with suffix .an) is produced by pvan, while the other (with suffix .mq) is produced by mqan, although *.mq files can often be converted into *.an files. (* means wild card) (Note that these are cross-platform file formats and can be used unaltered on Big and Little Endian machines.) While *.an files contain a fixed number of partials (harmonics, whose frequencies are integral multiples of a fundamental), *.mq files consist of tracks, whose number varies with time throughout the sound's duration. In both cases the partials or tracks each have an amplitude and frequency for each analysis frame. (mqan's tracks also have phase on each frame.) We have found that pvan works best for sounds which vary little in pitch, whereas mqan is superior for sounds whose pitch varies substantially. pvan is particularly appropriate for single harmonic sounds of definite pitch because the analysis frequency can be set to match the sound's frequency. This is accomplished by a sample rate conversion program internal to pvan. For sounds of indefinite pitch, one can experiment with the analysis frequency; e.g., 20 Hz gives good frequency resolution, although not as good time resolution as a higher frequency would. The alternative is to use mqan, which does not require a specific analysis frequency; it also can handle inharmonic sounds.

monan combines the activities of parameter viewing, modification, and additive synthesis for *.an analysis files.

Some of the ways that monan can graph time-varying spectral data are; amplitude-vs.-time or frequency-vs.-time for a specific harmonic; amplitudes-vs.-time or frequencies-vs.-time for a group of hamonics; fundamental pitch-vs.-time (log frequency scale); brightness (spectral centroid)-vs.- time; harmonic amplitude-vs.-a different harmonic amplitude; spectral irregularity-vs.-time.

monan also allows input of an auxiliary analysis file. Commands have been written to scale the spectrum of the main data to achieve the spectrum of the auxiliary data at some time point or to blend the two sets of data in order to achieve an interpolation between the two. Another command takes the ratio of the two analysis data sets in order to compute a filter function between them.

Modification of *.an file data can be done using monan. Synthesis of *.an files (using additive synthesis) can be done with monan or with special standalone programs (e.g., addsyn).

Synthesis of *.mq files (using additive synthesis) can be done using the program mqsyn2. Display for *.mq files can be done with the program mqplot.

SNDAN is available as follows: Binary executable code for recent Linux and Macintosh command line systems plus the C source code. For other systems, the user is expected to compile the C code with a resident cc (or gcc) compiler. Over the years, SNDAN has compiled successfully on the following computers: NeXT, SGI Indigo, Indy and O2, Dec Alpha, RS-6000, Sun Sparc, Intel PC with the Linux OS, and Macintosh running Mac OS X.

If you wish to download a copy of SNDAN, please register by sending the following information to James Beauchamp using the email link given below.

Example of what to send:
     Name:        John W. Jones
     Affiliation: University of Canterbury at Kent
     Address*:    2136 Ornithology Bldg., 1114 W. Aviary, Kent, AB3 6ZP UK
     Phone*:      +44-1344-330730
     Email:       jwjones@ucant.uk
     Computer:    Pentium II Intel PC
     Op. Sys.:    Linux (Redhat 8.0)
     Software Requested: SNDAN
     What is your application? analysis of bird songs
     How did you hear about SNDAN? from the animal biology site
* optional

You will then be sent the URL for downloading the software.

A Windows/DOS version of SNDAN is available at the SNDAN32 Download Site.

An overview of SNDAN32 (much of which is applicable to the Unix version of SNDAN) can be found at the SNDAN32 Overview Site.

Other links:

James Beauchamp's home page

James Beauchamp's email: jwbeauch at illinois dot edu

Updated on: September 6, 2013