SNDAN is a package of Unix C 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 on Linux is usually some form of ghostview or gv. With the Terminal app on an Intel Mac using OSX 10.6 or greater, the Preview app automatically converts EPS to PDF while displaying the graphic. The PDF files can be easily 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; amplitudes-vs.-time-vs.-harmonic (3D spectrum); 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 older 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, until OSX 10.13. OSX 10.14 works for execution
only. After that its 32-bit code is not supported at all. SNDAN will run "as is" on both 32-bit and 64-bit PC Linux
and older Macintosh systems. If the user wishes to modify its C code and
compile it on a 64-bit machine, he/she should verify that the i386 library
package has been installed. This is because all SNDAN recompiles (using
Makefiles which include the -m32 or -arch i386 (Mac only) option on the cc
compile and link lines) require this library. So far, we have found that
the i386 library is automatically included with Macintosh OS X 10.5-10.13,
but current Ubuntu Linux versions (e.g., v. 13.04) require special i386
installation. Unix code for implementing this is "sudo apt-get install
g++-multilib", which installs the cc and i386 libraries. The i386 library
alone can be installed using "sudo apt-get install libc6-dev-i386". Other
useful downloads are 'gv' (for graphics on Linux), 'tcsh' (for the shell
used with SNDAN), and 'sox' (for changing sound file formats), which can be
obtained using "sudo apt-get install gv tcsh sox". 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.
You will then be sent the URL for downloading the software. A Windows/DOS version of SNDAN is available at the
SNDAN32 Site, but this is not supported by the Unix SNDAN developers. Other links: Updated on: November 25, 2021
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 (Ubuntu 12.0)
Software Requested: SNDAN
What is your application? analysis of bird songs
How did you hear about SNDAN? from the animal biology site
* optional