# Snd Quick Overview

related documentation: | snd.html | extsnd.html | grfsnd.html | sndclm.html | sndlib.html | sndscm.html | libxm.html | index.html

Colors
Other color-related stuff: Color names: rgb.scm, rgb.rb colors in the file dialogs: install-searcher-with-colors in snd-motif.scm color-orientation-dialog: color-orientation-dialog colored samples: display-colored-samples and others in draw.scm colored edits: display-previous-edits in draw.scm colored marks: mark-sync-color in snd-motif.scm colors in rxvt: red-text et al in examp.scm flashing colors: flash-selected-data in examp.scm openGL: snd-gl.scm, Snd and OpenGL fancy widget backgrounds: new-backgrounds.scm in the tutorial color hook: color-hook Snd graphics contexts: snd-gcs

Conversions
array->file channel->vct color->list db->linear degrees->radians edit-list->function file->array file->frame file->sample file->sound-data file->vct frame->file frame->list | frame->sample frame->sound frame->sound-data frame->vct gl-graph->ps graph->ps hz->radians linear->db list->vct mix->vct mono->stereo partials->polynomial polar->rectangular | radians->degrees radians->hz rectangular->polar region->frame region->sound-data region->vct samples->seconds seconds->samples sound->frame sound->sound-data sound-data->file sound-data->frame sound-data->sound | sound-data->vct strero->mono transform->vct vct->file vct->frame vct->list vct->sound-data vct->string vct->vector vector->vct

Copying
copy file: in Ruby: File.copy or File.syscopy copy vct: vct-copy, vct->vector, vct->frame copy mix: mix->vct copy sampler: copy-sampler copy (clone) current sound edit state: clone-sound-as copy channel data: channel->vct, or save-sound-as copy selection data: selection->vct or save-selection copy region data: region->vct, region->vct, save-region, or region->sound-data copy transform data: transform->vct copy sound-data: sound-data->vct copy a frame: frame-copy, frame->vct copy vector: vector->vct

Cursor
Tracking cursor: with-tracking-cursor Change cursor shape or size: cursor-style, cursor-size Cursor moving keys: Moving the Cursor Display data about sample under cursor: with-verbose-cursor play from the current cursor position with a tracking cursor: pfc display tracking cursor as a full height vertical line: tracking-cursor-style track play once: control-click 'play'. (You can add a mark at the current tracking cursor location during the play with C-m) leave the cursor at the final position after tracking play: if-cursor-follows-play-it-stays-where-play-stopped in examp.scm tracking cursor accuracy: cursor-location-offset tracking cursor updating: cursor-update-interval

Deletions
delete a file: in scheme delete-file or Ruby's File.delete delete a region: forget-region delete the currently selected samples: delete-selection delete the selection and smooth the splice: delete-selection-and-smooth delete a mark or all marks: delete-mark delete a colormap: delete-colormap delete samples: delete-samples remove a file from the sound cache: mus-sound-forget remove a menu item: remove-from-menu or remove-main-menu in snd-motif.scm delete a mix or all mixes: silence-mixes add a 'delete' option to the file selection dialog: add-delete-option Scheme delete funcs: remove-if assoc-remove! hash-remove! delete-if! delete! string-delete

Envelopes
envelope sound: env-channel, env-sound other enveloping functions: ramp-channel, xramp-channel, smooth-channel The CLM env generator: env, many examples in examp.scm, new-effects.scm, etc Various operations on envelopes: env.scm The envelope editor: Edit or View and Envelope Panning: place-sound in examp.scm Envelope over mix: enveloped-mix Local envelope editor: enved.scm, xm-enved.scm Read sound indexed through envelope: env-sound-interp repeating envelope: pulsed-env Cosine as envelope: cosine-channel, cosine-channel-via-ptree, bell-curve envelope with sinusoidal connections between points: sine-env-channel envelope with separate base for each segment: powenv-channel envelope with x^2 connections: env-squared-channel envelope with x^n connections: env-expt-channel envelope with ncos connections: blackman4-env-channel Customizing the envelope editor: enved-hook peak amp follower: moving-max step envelope in pitch: brassy in generators.scm

FFTs
Snd fft function: fft CLM fft function: mus-fft CLM spectrum: spectrum Snd spectrum: snd-spectrum autocorrelation: autocorrelate cross correlation: correlate, display-correlation FFT window: make-fft-window Dolph-Chebyshev window in Scheme: dolph Hartley transform in Scheme: dht Spectral edit dialog: Envelope Editor fft-based filter: fft-edit, fft-env-edit, fft-env-interp, fft-squelch, fft-cancel phase-vocoder: phase-vocoder. pvoc transposition via fft: down-oct phase rotation via fft: zero-phase, rotate-phase duration change via autocorrelation: rubber-sound smoothing via fft: fft-smoother cross-synthesis: cross-synthesis voiced->unvoiced effect: voiced->unvoiced noise reduction: clean-channel, anoi spectral modeling: pins power spectral density: green.scm polynomial approach to spectral multiplies (convolution): spectral-polynomial Superimpose ffts: superimpose-ffts Waterfall real-time spectrograph: start-waterfall Simple rt spectrum: show-input-fft, show-draggable-input-fft More transforms: fractional-fourier-transform, z-transform in dsp.scm 3D (single) fft display: complexify bark, mel, erb scale display: display-bark-fft apply function to spectrum, inverse fft: filter-fft

Filters
filter a sound: filter-sound, filter-channel, and clm-channel filter the selection: filter-selection, filter-selection-and-smooth CLM filter generators: filter, one-pole, formant, comb, notch, all-pass, etc lowpass filter: make-lowpass in dsp.scm highpass filter: make-highpass in dsp.scm bandpass filter: make-bandpass in dsp.scm bandstop filter: make-bandstop in dsp.scm the usual analog filters (Butterworth, Chebyshev, Bessel, Elliptic): analog-filter.scm Butterworth filters: make-butter-high-pass, make-butter-low etc in dsp.scm, used in new-effects.scm IIR filters of various orders/kinds: dsp.scm Hilbert transform: make-hilbert-transform in dsp.scm differentiator: make-differentiator in dsp.scm block DC: see example above, dc-block in prc95.scm, or stereo-flute in clm-ins.scm hum elimination: see eliminate-hum and notch-channel in dsp.scm hiss elimination: notch-out-rumble-and-hiss smoothing filters: moving-average, weighted-moving-average, exponentially-weighted-moving-average notch-filters: notch-channel and notch-selection arbitrary spectrum via FIR filter: spectrum->coeffs in dsp.scm invert an FIR filter: invert-filter in dsp.scm filtered echo sound effect: flecho in examp.scm time varying filter: fltit in examp.scm draw frequency response: use envelope editor or filter control in control panel Moog filter: moog.scm Savitzky-Golay filter: savitzky-golay-filter Click reduction: remove-clicks, clean-channel FIR filter as virtual edit: virtual-filter-channel Max Mathews resonator: firmant, maxf.scm, maxf.rb Spectral edit dialog: Envelope Editor graphical equalizer filter bank: graphEq nonlinear (Volterra) filter: volterra-filter Kalman filter: kalman-filter-channel see also convolution, physical modeling, reverb, and fft-based filtering

Insertions
insert some portion of a channel: insert-channel insert a silence: pad-channel, insert-silence, pad-sound insert a region: insert-region insert the selection: insert-selection insert a vct of samples: insert-samples, insert-vct insert a sound: insert-sound append a sound and silence: append-sound insert a frame: insert-frame insert sound-data: insert-sound-data

Marks
global find-mark: mark-name->id mark history: describe-mark synchronize marks by inserting silences: syncup squeeze selection between marks: fit-selection-between-marks insert silence before marks: pad-marks move syncd marks: move-syncd-marks play starting from syncd marks: play-syncd-marks evaluate function between marks: eval-between-marks place marks at selection start and end: snap-marks define selection via marks: define-selection-via-marks force dragged mark to land on a beat: snap-mark-to-beat loop continuously between the two specified marks: loop-between-marks split sound into separate files based on mark placement: mark-explode mark property lists: mark-property save mark properties in saved state file: save-mark-properties show mark properties upon click: mark-click-info

Maxamps
Sound file maxamp: mus-sound-maxamp Region maxamp: region-maxamp Selection maxamp: selection-maxamp Sound data object maxamp: sound-data-maxamp Vct maxamp: vct-peak To set the y axis bounds to reflect the channel's maxamp: y-bounds Mix maxamp: mix-maxamp maxamp locations: maxamp-position, region-maxamp-position, selection-maxamp-position

Mixing
mix sound file: mix or drag-and-drop it where you want it mixed mix channel: see mix-channel in extensions.scm mix region: mix-region mix selection: mix-selection mix vct: mix-vct mix sound-data: mix-sound-data mix a frame: mix-frame enveloped mix: see enveloped-mix in extensions.scm read mix samples: make-mix-sampler mix data maxamp: mix-maxamp mix data to vct: mix->vct save mix data in file: save-mix mix property list: mix-property in mix.scm pan mono sound into stereo: see place-sound in examp.scm move a mixed sound via dlocsig: mix-move-sound the mix dialog: Mix Dialog cross-fade in frequency: cross-fade and dissolve-fade in fade.scm zipper cross-fade: zipper.scm snap mix to beat after drag: snap-mix-to-beat delete all mixes: silence-all-mixes with-sound (a notelist) expanded into mixes: with-mixed-sound

Play
play from cursor: C-q and example above play from cursor with tracking cursor: pfc above play the selection: (play (selection)), C-x p play a region: (play region-object), C-x p, play button in Region dialog play a mix: (play mix-object), play button in Mix dialog play a sequence of mixes: play-mixes play from mark: click or drag triangle (control-click for all chans) play continuously between two marks: loop-it stop playing: C-g, C-t, stop-playing, set playing to #f pause or resume playback: space, set pausing play repeatedly: play-often play repeatedly until C-g: play-until-c-g play region repeatedly: play-region-forever play a file upon a keystroke: bind-key play using an external program: (system "sndplay wood16.wav") play a sine-wave or spectrum: play-sine and play-sines play arbitrary mixtures of things: make-player and related functions, play-syncd-marks send arbitrary data to the DAC: mus-audio-write, start-dac play after sending the data through some function: play-sound play with applied amplitude envelope: play-with-envs, play-panned play an external file: (play "file")

Random numbers
generators, arbitrary distributions, fractals, 1/f: rand and rand-interp, round-interp dithering: dither-channel, dither-sound noise-making instrument: noise.scm, noise.rb physical modeling of noisy instruments: maraca.scm arbitrary distribution via rejection method: any-random CL: random, *random-state*, make-random-state*: random number between 0 and arg, arg can't be 0! Ruby: kernel_rand (alias for Ruby's rand), srand: random integer between 0 and arg, or float between 0 and 1 mus-random, mus_random: random float between -arg and arg mus-rand-seed (settable) bounded brownian noise: green-noise brown and pink noise: brown-noise

Regions
Max length of region list: max-regions Whether selection creates a region: selection-creates-region To play region repeatedly: play-region-forever Start region browser from Scheme: view-regions-dialog All about regions: regions The region dialog: region browser Region rms amp: region-rms region-play-list and region-play-sequence in examp.scm region->frame region->sound-data make-region-frame-reader

Resampling
resample channel: src-channel resample all chans: src-sound resample selection: src-selection resample mix: speed control in Mix dialog (also apply-controls) resample via drawn envelope: srate in Envelope editor resample via CLM gen: src resample with independent time control (ssb-am): ssb-bank in dsp.scm resample with independent time control (granulate): expand in control panel, expsrc and expsnd resample with independent time control (vocoder): phase-vocoder (this never works) another time stretcher (autocorrelation):rubber-sound (this takes forever and rarely works) resampling-based sound effects: hello-dentist, fp, flange and chorus in dsp.scm and new-effects.scm the digital zipper: zipper resample via FFT: down-oct resample through env: sound-interp and env-sound-interp resample through list: scratch resample step-size through a function: step-src predict duration of resampled sound: src-duration linear src: linear-src-channel in dsp.scm

Reverbs
freeverb: freeverb.scm, freeverb.rb jc-reverb: jcrev.scm jl-reverb: clm-ins.scm nrev: clm-ins.scm control panel reverb: Reverb, control variables convolution reverb: conrev *reverb*: with-sound

Reversing
reverse channel: reverse-channel, reverse-sound reverse selected portion: reverse-selection read samples in reverse: use make-sampler with direction -1 reverse at new sampling rate: use src-channel with a negative ratio Reverse in control panel: control panel and speed-control variable reverse an envelope: reverse-envelope reverse block-wise: reverse-by-blocks and reverse-within-blocks reverse via FFT: silly-reverse reverse order of channels: reverse-channels reverse a list: reverse and reverse! reverse a string: in Ruby: reverse reverse vct: vct-reverse! reverse a frame: frame-reverse

Saving
save sound: save-sound save all sounds: `(for-each save-sound (sounds))` save a sound under a different name: save-sound-as extract one channel from a sound: extract-channel extract a set of channels from a sound: extract-channels save a sound in a different format or header: save-sound-as backup edits automatically: autosave check first for unsaved edits: ask-about-unsaved-edits save Snd's complete state (unsaved edits and all): save-state, save-dir, save-state-hook, save-state-file save the selection: save-selection save a region: save-region save a mix: save-mix save the control panel state: save-controls save currently defined envelopes (envelope editor): save-envelopes start the file save dialog: save-sound-dialog start the selection save dialog: save-selection-dialog start the region save dialog: save-region-dialog save the current listener text: save-listener save keyboard macros: save-macros save marks: save-marks save just the edit history: save-edit-history take some action upon a window manager save-yourself signal: upon-save-yourself save the current sound setup for a later reopen: remember-sound-state save the current fft peak info: peaks

Searches
find a mark: find-mark find a mix: find-mix find a sound: find-sound Example find procedures: search-for-click, zero+, next-peak, find-pitch find in reverse: find-channel-in-reverse Search via continuation: scan-again Explicit access to search procedures: search-procedure The Find dialog: Find or find-dialog find silence: map-silence, scramble-channel in examp.scm find any difference between two chans: channels-equal see also count-matches and scan-channel search a multichannel sound: scan-sound find a widget: find-child in snd-motif.scm add C-s and C-r to the listener key bindings: add-find-to-listener in snd-motif.scm Scheme find: find-if

Selections
show the current selection: show-selection color of selected portion: selection-color set whether creating a selection creates a region: selection-creates-region fft graph refers to the selection: show-selection-transform hook called when selection stops playing: stop-playing-selection-hook swap chans in selected portion: swap-selection-channels replace portion with selection: replace-with-selection select portion via function: make-selection evaluate func on each sample of selection: eval-over-selection (map-selection in effect) selection members as list of lists of sound indices and channels: selection-members rms of selection data: selection-rms delete selection and smooth the splice: delete-selection-and-smooth select portion between two marks: define-selection-via-marks place marks at selection start and end: snap-marks squeeze selection between marks: fit-selection-between-marks delete selection and write it to a file: cut-selection->new append selection: append-selection write selection to a file: selection->new notch filter selection: notch-selection undo select-all.: deselect-all filter the selection: filter-selection, filter-selection-and-smooth turn the selection into a mix: selection->mix unselect everything: unselect-all

Smoothing
smooth channel: smooth-channel smooth all channels: smooth-sound smooth selection: smooth-selection delete the selection and smooth the splice: delete-selection-and-smooth smoothing as virtual op: smooth-channel-via-ptree in examp.scm smoothing via fft: fft-smoother smooth via low-pass filter smooth over click: remove-clicks in examp.scm

Time Domain Display
Built-in keyboard commands: Moving the Window Specialized keyboard commands: bind-key Window size: x-zoom-slider, zoom-one-pixel, Window position: x-position-slider, move-one-pixel Window left edge: left-sample Window right edge: right-sample fft window: window size: drag x axis, spectrum-end window start: spectrum-start relation to time domain: before-transform-hook selection fft: show-selection-transform general info: Axis description: axis-info

Undo
undo edit: undo and undo-channel undo all edits: revert-sound specialize undo: undo-hook protect against undo: edit-hook redo edit: redo and redo-channel move around in edit list: edit-position and current-edit-position About edit lists: Edit lists