Written and developed at CCRMA by Bill Shottstaedt, SND is a sound editor modeled loosely after Emacs, 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 or extended using either s7 (included in the Snd sources), Ruby, or Forth. Snd can be started on any PlanetCCRMA Linux workstation by selecting the application on the PlanetCCRMA menu and the editors tab. Otherwise SND is started by typing the 'snd' command on a terminal window or shell.
On a terminal shell (Linux or OSX), SND can be started by typing:
If you have a sound you want to listen, you can type for instance,
snd /zap/dog.snd &
... and your soundfile will be loaded and opened directly on SND. This is a good way to get familiar with the SND interface.
Once SND is running, go to the file menu, and open another soundfile or close the one already opened. 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 nutshell, there is an enormous amount of information in the SND manual or search its documentation on its index
- Note: You might need to run Jack with Qjackctl in order to get some sound out of the Linux workstations.
Most common usage documentation is embedded on the application. The rightmost menu on SND's interface is the "Help" menu which contains information for most tasks needed to run SND properly. For example if you go top the Help Menu and choose "Play", A new window will show the task's description and pointers to related information and links to more in-depth information. "Play Help" on SND's Help menu reads as:
To play a sound, click the 'play' button. If the sound has more channels than your DAC(s), Snd will (normally) try to mix the extra channels into the available DAC outputs. While it is playing, you can click the button again to stop it, or click some other file's 'play' button to mix it into the current set of sounds being played. To play from a particular point, set a mark there, then click its 'play triangle' (the triangular portion below the x axis). (Use control-click here to play all channels from the mark point). To play simultaneously from an arbitrary group of start points (possibly spread among many sounds), set syncd marks at the start points, then click the play triangle of one of them. The Edit menu 'Play' option plays the current selection, if any. The Popup menu's 'Play' option plays the currently selected sound. And the region and file browsers provide play buttons for each of the listed regions or files. If you hold down the control key when you click 'play', the cursor follows along as the sound is played. In a multichannel file, C-q plays all channels from the current channel's cursor if the sync button is on, and otherwise plays only the current channel. Except in the browsers, what is actually played depends on the control panel. Use the play function to play any object.
Alternatively if you don't have a soundfile, you can create one by means of using SND's own audio synthesis engine. At CCRMA or in standard Linux installation, you can look for a file named "bird.scm" which should be located at SND's source directory."bird.scm" on PlanetCCRMA Linux worstations is located at:
A good idea is to copy this file to working or temporary directories so that you leave the original intact. You can copy "bird.scm" to the "zap" directory at CCRMA workstations by using the following commands on the terminal shell (some knowledge of terminal shells is good but not required, in order to accomplish these guidelines).
cd /zap cp /usr/ccrma/lisp/src/snd/bird.scm /zap/.
Now you can open SND directly on the shell as stated before by issuing the 'snd' command:
SND's window interface should open and show only pull-down menus. Go to the 'View' menu and select 'Show Listener' option. SND listener opens only showing a prompt ">". On this prompt you type "Scheme" code which is processed and compliled by SND's s7. In order to have SND synthesize a sound with "bird.scm", you need to load the file into the interpreter and then run a function (sub-program), which in turn generates the soundfile. You do this by typing on the listener the function to load the file, and then running the returned name of the function as follows:
> (load "/zap/bird.scm")
- Note that a prompt ">" means that the listener is ready to accept another function call.
- After a carriage return (entering) '(load "/zap/bird.scm")', the listener returns:
Now the listener shows there is a function in SND called 'make-birds'. To get the bird's songs you need to issue a function call (run the sub-program) '(make-birds)' on SND's listener:
The soundfile window should open showing a waveform just created. To listen to this waveform you can click on the play button or alternatively use the function call '(play)' on the listener.
A screen shot of SND with the procedures outline might look like:
Get Familiar with SND's waveform interface: move horizontal scrollbars to change the depth of the waveform, and vertical scrollbars to change the amplitude viewing scale. The [w] button shows the waveform while the [f] button shows the spectra. Notice that both waveform and spectra change while your move the focus on your soundfile.
Editing soundfiles with SND
SND editing is not "point-and-drag" like in most waveform editors. Instead, "razor-cut" editing and trimming can be accomplish by using markers to select regions and key binding commands that work on regions or on the soundfile as a whole.
To edit soundfiles using SND, good advice is to use 'emacs-like' keyboard combinations (see below), and try them on SND's listener window. To make things easier start with a short (3 secs) mono (one-channel) soundfile.
- c-x means control-x or the keyboard combination <ctrl>-<x>
- M-x means meta-x and at CCRMA is the keyboard combination <esc>-<x>
If you have a soundfile in the active window try the following combinations and watch the cursor in the displayed soundfile active window. If you don't have a soundfile you can use the open command in the file pull-down menu of SND.
|c-a:||move cursor to window start|
|c-e:||move cursor to window end|
|c-v:||move cursor to mid-window|
|c-l:||position window so cursor is in the middle|
|c-f:||move cursor ahead one sample|
|c-b:||move cursor back one sample|
|c-q:||play current channel starting at cursor|
|c-[Space]:||start selection definition|
|c-m:||place (or remove) mark at cursor location|
|c-w:||delete (cut) current region|
|M-w:||(copy) current region|
|c-y:||paste in last deleted region|
|c-x c-s:||save your current edition.|
Playing a Soundfile
- To play a sound file from a place other than the beginning:
- Activate sync or sync/unite modes in the lower right check-boxes
- Create a synchronize marker by:
c-s-M (control-shift capital M)
- ... you should you get markers for all the channels.
- To play from that location just click on the triangle in any of the markers.
- Playback should start.
- You can also move this markers and even 'rock the reels' by dragging the mouse.
- More complex operations:
- To move forward or backwards in the Soundfile use the following key combinations:
c-a ;;; move cursosr to the beginning c-u 0.4 c-f ;;; move cursor forward 0.4 seconds c-e ;;; move cursor to the end c-u 1.12 c-b ;;; nove cursor backwards 1.12 seconds c-[Space] ;;; start selection definition c-e ;;; a selection of 1.12 seconds
- Note: These key combination and more are also explained on SND's Help menu.
- Last seen on Aug 26 2011, MStation.ORG has an interview of Bill Schottstaedt and the history of SND.
- Users at PlanetCCRMA:SND has several tutorials on using SND for diverse applications as: