programs for sound analysis, resynthesis, display and transformationby Rob Maher, James Beauchamp, and others, University of Illinois at Urbana-Champaign (UIUC).
WIN32 version for Sonic Arts Network by the Composers Desktop Project.January 2000[overview][file formats][history][installation][the programs][getting started][sources][porting notes]
The SNDAN program suite is the outgrowth of work by Rob Maher and James Beauchamp, of the University of Illinois at Urbana-Champaign (UIUC). The programs continue to be maintained and developed by James Beauchamp, reflecting not only his own usage, but that of the many researchers and composers who have worked on and added to the suite. A history of the development of SNDAN, kindly provided by James Beauchamp for this version, can be read here.
SNDAN is intended primarily for the analysis and processing of pitched single tones, and thus lend itself particularly well to the preparation of instrument samples for use in a sampler. The accuracy of analysis,and quality of transformation, is very high for sounds in this category. However, SNDAN can also work very well with semi-pitched (e.g speech) and abstract sounds, though a deeper understanding of how the programs work will assist in getting the best results.
This WIN32 port can run on all Windows 9x, NT and Windows2000 systems.
main facilities of SNDAN
- two advanced and complementary methods of frequency (spectral and harmonic) analysis (phase vocoder, McAaulay-Quatieri)
- high-quality configurable graphic display, including 3D colour plots
- time compression and stretching of sounds, preserving attack and decay
- broad-band noise reduction
- amplitude and frequency-based transformations
- scope for frequency-domain synthesis
- source code available for customization and extension by programmers
SNDAN will read and write mono WAVE files in the standard 16bit format, and (introduced for the Windows version) in the 'type-3' 32bit floating-point format. Floating point and 16bit files in the .snd format are aso supported.
There is also support for 'raw' headerless files of either 16bit or 32bit floating point data (indicated by a file extension of .sh and .fl respectively). Windows users will normally neither need nor want to use these formats, but they do offer a path whereby programmers wanting to experiment can read or write sound files without having to worry about creating or parsing a WAVE header. Of course, in the absence of a header, it is your own responsibility to ensure the SNDAN programs have the correct information about the file!
The output analysis files (.an format and .mq format) are custom formats
for SNDAN, and are not readable by other applications in the absence of
conversion tools (in development). For those wanting to inspect the formats
in detail, utility programs are included in the SNDAN suite to print files
in text format.
We recommend that you read the whole of this section before commencing installation, especially if you are not already familiar with the use of command line programs, or in editing your AUTOEXEC.BAT file.
The SNDAN suite comprises a large number of programs (many of which are small and rarely needed utilities), which are run from the commnd-line prompt in a Console window. Some knowledge of the main MSDOS commands used in this environment is useful. See Using the Windows Console.
For graphics output, SNDAN writes files in Encapsulated PostScript format (eps). These require a suitable viewer to be installed. The standard viewer is called Ghostview. The Windows version is supplied in a package called GSTOOLS, available as a self-extracting executable. If you have not already downloaded this, see the [SAN website] for more information. You can leave installing GSTOOLS until later if necessary, but without GSTOOLS or the equivalent, SNDAN will not be able to display graphics. Many laser printers can print eps files directly.
When GSTOOLS is installed, it registers itself with Windows as the 'associated' application for PostScript (ps) and Encapsulated PostScript (eps) files. This also enables such documents to be viewed from your web browser. When a SNDAN program wants to create a graphic display, an eps file is created, and the program sends a request to Windows to display it, using the associated program.
By default, these eps files are stored in your 'current directory'. However, an 'environment variable' called SNDAN_TEMP can be defined in your system's AUTOEXEC.BAT file, to ask for eps files (which can become vey numerous during a SNDAN session!) to be stored in a dedicated directory.
For example, if you wanted to keep eps file in the folder D:\sndan\temp,
you would add teh following line to AUTOEXEC.BAT using Notepad.exe
or a similar text editor:
If you have not had previous experience in modifying AUTOEXEC.BAT, it is a good idea to make a backup copy before making any changes (name the copy AUTOEXEC.BAK or AUTOEXEC.TXT, for example).
You will then need to restart your machine so that the new environment can be installed.
It is also possible to use this command within a Windows Console session (you can switch between different folders this way), but this will only last until you close your Console window.
It is easy to accumulate a large number of eps files while using SNDAN. Unlike the original form of the programs, this version does not atomatically delete them at the end of a session. You can do this in one step from the Console by issuing the command
which will remove all eps files in your current directory.
Some SNDAN programs, such as monan, include commands to play a soundfile. As with eps files, Windows is asked to launch the application asssociated with soundfiles (WAVE,SND formats). Some users may have changed the default Media Player for a sound editor such as Cool Edit or Sound Forge. These programs do take a while to launch. For work with SNDAN, is is strongly recommended that the new DirectX-based 'Windows Media Player' be configured as the associated application. See your Windows documentation for information on how to do this. Once launched the first time (from within monan, for example, or externally), further play commands will take over that instance, rather than launching a new one - a very quick process that does not cause multiple instances of the player to appear on the Desktop
Installing the SNDAN package itself is fairly simple, but is not automatic. You will need a program such as Winzip to unpack the files. The WIN32 distrubution of SNDAN is supplied in the form of a complete directory structure, with 'sndan' at the top level. This structure is preserved in the zipfile. Unzip the file (e.g. using Winzip), and extract the files preserving folder information, to the root of any convenient drive. Note that the source distribution is separate; you do not need this just to run the programs.
The most important folder in the SNDAN directory structure is the 'bin' folder - this is where all the programs are kept. By making this folder your 'current directory' (using the MSDOS command 'cd'), you can run each program just by typing its name (a usage message will appear). However, by adding the full name of this folder to the PATH list in AUTOEXEC.BAT (and restarting Windows), you can work in any directory (your 'sounds' directory, for example); Windows will look for the program you run by searching through the PATH list.
Finally, for easy access to the html-based documentation, drag the file
either to to the Windows desktop (as a shortcut), or directly to the 'Start'
button. This enables you to access the documentation without having to
move or close other application windows.
There is a small core of programs that you will use frequently, together with set of utility programs, many of which are included here simply for the sake of completion. Those familiar with the original unix-based programs will note a few differences in program names, and in command line formats.
In the original unix form of SNDAN, much use is made of unix 'shell
scripts', which ask parameters interactively from the user, and launch
various programs behind the scenes. This facility is not directly reproducible
using the Windows Console, as it is not possible under MSDOS to obtain
parameters from the user, using batch files. The main consequence
of this is that the program mkheader
has to be run explicitly, to create the header information requied by the
A family of additive synthesis programs, raning from plain resynthesis to more elaborate versions offering a range of transformations, including multi-segment and time-varying time-stretching and compression, changing of sample rate, and pitch shifting. All the addsyn programs will write floating point files as well as 16bit files.