Snd is a sound editor and a composition tool with features not often found on other sound editors and commercial music software. By pinpointing a historical evolution of computer music and research through the years, most ideas unfold attributes behind Snd’s design and prove its functional goals. A time-line of accomplishments at CCRMA are furthermore plentiful justification as to why Snd’s development has been steered the way it has.

Most of Snd development and its state of the art can be traced to the evolution of Computer Music and all of its branches since 1960. Snd inherits from knowledge built at CCRMA from the days the center was located at the Stanford Artificial Intelligence Laboratory (SAIL), up to now, running on portable computer machines as well as in major operating systems including Linux. Since September 1996, Snd has been Open Source, with many people including musicians and engineers, contributing to its development geared primarily by its author Bill Shottstaedt. Snd can be thought of as last steps taken in the development of Computer Music systems, regardless of being a non real time sequential interactive system.

Documentation describes Snd as a sound editor modeled loosely after Emacs and an old, sorely-missed PDP-10 sound editor named Dpysnd. It can accommodate any number of sounds each with any number of channels, and can be customized and extended using the S7 Scheme language implementation also developed by Bill Shottstaedt at CCRMA. On Unix systems Snd is started by typing the snd command on a terminal window. NOTE: On Linux you might need to start Jack ( Qjackctl ) before invoking Snd.


Image above is an instance of Snd's main window. Notice several parts: a top bar with menus and just below several icons as push-buttons for Snd's main functions. There is also the waveform part with scroll-bars to change resolution, and [F] click button to display spectra of the sound file in addition to a [w] click button to display waveform. Notice a [play] click button which plays the sound. Further down at bottom is the listener where you can type Snd's commands and S7 Scheme functions.

To get started, go to the File menu, and open a sound file. To hear the sound, click the 'play' button. To see an fft, click the 'f' button on the left. The left mouse button is used for most pointing operations; the middle button pastes in the current selection; the right button brings up the SND pop up menu. Make sure you go through the help pull down menu to find more about all the features SND. In addition to this there is an enormous amount of information in the snd manual available online.

Start Snd by typing:

         [cmn19] snd &         

on the command line. If you have a sound you want to listen, you can type for instance,

         [cmn19]  snd /zap/dog.snd &         

To play a sound just click on the play click-box. Alternatively playing a sound from the listener is also an alternative.


Getting used to the listener is not a bad idea because a lot of embedded Snd's features are available this way. On the listener you type Scheme syntax commands which usually comprise functions that perform some procedure inside Snd affecting your sounds or not. For instance let's say you want to open a file called “oboe.snd”. On the listener you will type:

      (open-sound "oboe.snd")

On the edit menu, option “edit header” will pop up sound file characteristics like sampling-rate, file-type, number of channels and others. On this example we are opening a sound file of type “snd” also known as Sun/NeXT “.au” and sampling rate 22050. Perhaps we want to change its sampling rate to 48000 and get a new more compatible “.wav” sound file. After opening your sound, on the listener you will type:

      (src-sound  (/ 22050 48000))

The function 'src-sound' does sample rate conversion. “(/ 22050 48000)” is a division operation between both sample rates to get the exact amount of rate conversion. To get a new file with the new sample rate and with “.wav” riff format, on the listener you will type:

      (save-sound-as "new.wav"  :sample-type mus-l24int :header-type mus-riff)

Notice that "new.wav" would be your new “.wav” sound file. Snd doesn't load it automatically after conversion. Text in quotes is conventional Unix file handling. “ mus-l24int” means 24bit-little-endian-integer which is the standard format accepted by most audio editors and DAWs. Of course you can 'undo' changes by using the (undo) function. Now let's say you want to reverse your sound. On the listener you will type:


To override changes just undo but to save changes use the (update-sound) function:


The listener sometimes returns errors, sometimes with clues of what you did wrong. Don't be intimidated with errors or mistakes because there is always a make up. Finally try to make sense of the following Scheme expression and see what it returns.

      (= (cos 0) (sin (/ pi 2)))


© Copyright 2001-2022 CCRMA, Stanford University. All rights reserved.
Created and Mantained by Juan Reyes