Many of CDP's most distinctive processes take place in the Frequency Domain - that is, they process the changing spectrum. In the frequency domain, you can do a lot more than manipulate frequencies. Each time-slice has a loudness contour across the frequency spectrum (rather like a graphic equaliser setting):
Many spectral processes transform this spectral envelope or other aspects of amplitude. Sounds can be successfully morphed from one to another or you can make hybrids by imposing the characteristics of one sound on another. Other processes manipulate how the spectrum changes across time, e.g. by blurring, freezing or time-stretching the sound. On the frequency side, several processes allow the material to be radically re-tuned to the user's own template, or one taken from a different sound.
SPECTRAL ENVELOPE & PEAKS
These processes reshape the spectral envelope and/or emphasise spectral peaks. For example:
- Accumulate sustains the frequencies in each band, optionally applying glissando to the sustained partials. In the latest version, you can also tune the resonances (CDP: superaccu).
- Exaggerate narrows the spectral peaks to focus the energy around key frequencies.ocus focuses the energy around the most prominent spectral peaks, by treating these as the centre frequencies of a filter set.
- Average roughens the sound by averaging the spectral amplitude over adjacent frequency channels. This broadens, or defocuses, spectral peaks.
- Glisten plays a random set of spectral channels, then switches to another random set. The varying spectral dropout gives a "glistening" effect.
- Mirror reverses the spectral envelope in frequency from top to bottom, so that the energy associated with high sounds is applied to low ones and vice-versa; this also tends to create a noisier spectrum.
These processes remove or reduce the amplitude in selected frequency channels, or use frequency information to partition the spectrum. For example:
- Filter implements classic filter types in the frequency domain, with the possibility of very precise and very sharp filtering.
- Graphic: a text-specified Graphic-EQ filterbank with great flexibility in the number and definition of bands.
- Vowels mimics the filter characteristics of spoken vowels.
- Clean reduces noise in a signal by eliminating low-level bands quieter than those in a comparative 'noise file'.
- Remove subtracts a given pitch and its harmonics, or removes everything but these same frequencies.
- THIN group: thin the spectrum by retaining the strongest partials (Trace), rejecting them (Suppress), or thinning randomly (Scatter).
- Slice partitions the spectrum into slices selected by user-defined bands, which can be distributed spatially or treated separately (e.g. by transposition, delay or repetition) and then mixed or interleaved to reconstruct a single sound.
MORPH / FORMANTS
Morphing processes either interpolate ("morph") between two sets of spectra over time, or impose the spectral contour (formants) of one sound onto another. Formant files extract the time-varying spectral envelope of a sound, mainly for use with other processes (see esp. the PITCH suite.)
- Morph and Bridge morph over time between the frequency and amplitude values of two sounds.
- MorphPeaks (CDP: newmorph) morphs between the spectral peaks of two sounds. This makes it possible to morph between dissimilar sounds. In its tuned modes, Sound1 is gradually tuned to the average pitch field of Sound 2. You can also create multiple output files, representing different stages of the morph.
- Morphtune (CDP: newmorph2) gradually tunes the sound to the pitches in a given list. Peakfreqs extracts the peak frequencies from a given sound, in order of prominence, to provide a pitch template for Morphtune.
- Glide makes a gradual glissando, over any time, between the frequencies of two single-moment spectra, grabbed at two specific times from the same or different sounds.
- Vocode: the spectral version of a classic technique, this creates a hybrid between two sounds by imposing the spectral amplitude of one sound on top of another.
- Cross creates a hybrid by replacing the spectral amplitude of one sound with that of another (more radical than vocoding).
- Hybrids (CDP: specsphinx): a variant of Cross which imposes the amplitudes of Sound 2 on the frequencies of Sound 1, or multiplies their spectra.
- Spectwin: combine the formant and/or total spectral envelopes of two spectra.
- Put Formants: impose or replace the spectral amplitude, using an extracted formant file (.for) - equivalent of Vocode/Cross.
- 1FmtPut: impose or replace the spectral amplitude, using a single-moment formant file, creating a static sound with frozen amplitudes, but a changing spectrum/pitch.
These processes operate on two spectra (channel by channel and across all time-windows):
- Sum adds the amplitudes of two spectra together, if they differ.
- Diff takes the difference of the two amplitudes.
- Max takes the maximum amplitudes of two spectra.
- Mean takes the mean of two spectra (in amplitude and frequency).
- Interleave: interleave the analysis windows from two or more infiles.
FREQ / PITCH
These processes directly manipulate the frequency data in spectral analysis files and some have a radical effect on the pitch or harmonic content. For example:
- Transpose (and variants TransPch and Octmove): transpose the sound, preserving time and optionally the spectral envelope.
- SpecChord imposes transposed versions of the sound onto the original frequencies.
- Fold octave-transposes spectral components into the specified range.
- Shift frequency-shifts (all or part of) the spectrum up or down, by adding a value to all frequencies in a specified band, producing inharmonic sounds.
- SpecStretch stretches or compresses frequencies above or below a dividing frequency, turning harmonic sounds into inharmonic ones.
- Waver oscillates from the original (harmonic) state to a stretched (inharmonic) state and back.
- InvertSpec [CDP: specnu] inverts all partials around a given frequency (high becomes low and vice versa).
- Chorus randomises frequencies and or amplitudes to create a chorus effect, or more extreme change.
- Pick retains a specified set of frequencies, if they are in the sound, re-tuning the frequency values as necessary.
- Tune tunes a sound tp a given set of pitches, by shifting individual partials to the nearest harmonic of the specified chord. The degree of the effect can be varied, and in the latest version (CDP: tunevary), the pitch template can change over time.
Although in the spectral domain, these processes are all concerned with the evolution of sounds in time. They change the information across a number of time-windows, e.g. by blurring, freezing, stretching sounds in time, or selecting a different succession of windows:
- Expand [CDP: spec magnify] expands a single analysis window over time, freezing the sound.
- Hold time-expands the spectrum using a list of times and hold-durations. The original file is lengthened.
- Freeze freezes the spectral amplitudes or frequencies, or both, at the times specified.
- StepFreeze: like Freeze, but the freezing occurs at regular time-intervals.
- Timestretch: stretches or shrinks the sound over time, preserving pitch. Timestretch creates extra time-windows to expand the overall time-base of the sound, without a change of frequency. The stretch/shrink itself can be time-varying.
- Blur averages spectral amplitudes over time to create a blurring effect, optionally thinning the spectrum as well.
- SpecDrunk (spectral version of Drunk) takes a random walk through analysis windows, moving through the file reading windows, but jumping backwards or forwards at random.
- SpecRand randomises the order of (groups of) analysis time-windows.
- Selfsim replaces spectral windows with more prominent similar ones.
- Shuffle permutates consecutive (groups of) windows according to a specified pattern.
- Weave (spectral version of Zigzag): reads analysis windows according to a specified sequence of steps.
Spectral utility programs include:
- PVOC (PvocAnal and PvocSynth): the public-domain Phase Vocoder is used to convert soundfiles to spectral files (frequency analysis files) and back. Soundshaper does most conversions in the background, using the current settings.
- AltHmcs deletes odd or even harmonics, using a pitch file as reference.
- Bare zeroes non-harmonic data according to a pitch file used for comparison.
- SpecCut cuts and keeps a segment from a spectral file at the times specified.
- SpecGain (spectral version of GAIN): alters the level in a spectral file.
- SpecGate (spectral version of GATE): removes sound with a level lower than a given threshold, in each frequency band.
The categories and function names are those used in Soundshaper. CDP program groups and names may be different.
The descriptions here are adapted from the Soundshaper manual and do not necessarily reflect the views of CDP Ltd.
For further details about CDP see the Composers' Desktop Project website.