Digital-Signal-Processing with SND

As you might expect Snd is a full featured signal processing toolbox. Most standard techniques have been implemented and new ones can be programmed. As a starting point you might want to try GUI built-in DSP options on the control panel. To open the control you use keyboard key binding combination [ C-x C-o ]. To close the control panel you [ C-x C-c ]. On the control panel you will find scroll bars for amp, speed, expand, contrast, and reverb, in addition to a FIR filter (see below). Note that these effects are applied to a selected region or to a the whole file if there is no selection.


Snd's main edit window with controls. There are horizontal scroll bars to adjust values for amplitude, speed, expand, contrast, and reverb parameters. With the exception of amplitude, there are click-boxes on the right. These values can be adjusted on real-time if you check on each effect click box. When adjustments are done just type “(apply-controls)” on the listener and “save-as” a new file. -
For more effects and to do customized digital signal processing you might want to use Snd's S7's Scheme features on the listener. A good start for this alternative could be copying “new-effects.scm” to your working or “ /zap ” directory and then load it in the scheme listener with the following steps:

     cp  /usr/ccrma/lisp/src/snd/new-effects.scm /zap/       

and then on the SND listener,

          (load “new-effects.scm”)       
Not by magic notice that there is a new menu called “effects” on top of the “SND” GUI. This is a standard collection of DSP tools which might also help to understand and preview how audio signals can be manipulated. As a bonus just for trying, you get sliders to control most of these effects.

Of course you are encouraged to try all of these effects but make sure you already have an opened sound. If you are not happy with the processing you can undo it by C-x C-u or simply “undo” in SND's edit menu. If you are really curious about signal processing you can also look at the code and customize these filters or create new ones. Make sure you share them with the DSP and SND communities.

The effects include:

Most of these are either simple calls on SND functions or use functions in the other scm files. If you are using two or more channels sound-files the actual processing follows the sync chain or the currently active channels but aside from reverb it is good practice to work with DSP effects on each channel separately.

For example if you have a sound file loaded into Snd you can perform the following operations on the listener (among others):


(reverse-sound) ;; reverse soundfile.
(normalize-sound 0.8) ;; normalize soundfile.
(scale-to 0.6) ;; gain change.
(rubber-sound 0.7) ;; rubber soundfile[*].
(src-sound (/ 22050 48000)) ;; change sample rate, 22.05k to 48k.
(update-sound) ;; save changes to soundfile

[*] - More about rubber sound: see here.

Above features are an understatement of what can be accomplished with Snd if S7 scheme functions are used for signal processing. If you are interested in exploring, there are examples on Snd's documentation but also worth looking examples and irections on files dsp.scm and new-effects.scm. Just copy these files to your working directory or download Snd's sources. -More on this below.-

-* A NOTE ABOUT SND'S SOURCE FILES: - On PlanetCCRMA Linux machines outside CCRMA network, Snd sources and documentation are located on,

                    /usr/lib64/snd/scheme           /usr/share/doc/snd       
Alternatively, if you decide to download Snd sources yourself, or if you want to compile Snd, untar a snd-X.tar.gz file by using the command:

     tar xvzf snd-X.tar.gz       

your sources will be at


where X is the Snd version. Instructions for compiling Snd are part of the documentation described at the links on: ยง9.13

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