![]() |
|
![]() |
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.
See also the PITCH menu for process derived from spectral files and the INFO menu, which has several functions which give information on spectral files.
SOUNDSHAPER CATEGORIES:
PVOC, EMPHASIZE, RESHAPE, FILTER, MORPH/FORMANTS, COMBINE, FREQ/PITCH, TIME, SPEC UTILSPHASE VOCODER (PVOC)
Spectral processes operate on Frequency Analysis Files (.ana) converted from soundfiles via the public-domain CARL Phase Vocoder (PVOC). PVOC is used by CDP for all FFT transformations between the time-domain (soundfile waveform) and spectral-domain (frequency analysis, or 'spectral' files). Conversion within Soundshaper is automatic, using your current PVOC settings. For a brief explanation of the key concepts, see Introduction to Spectral Processing.
- PVAnal (CTRL+F9) analyses a soundfile (.wav) and produces a frequency-analysis file (.ana). In Soundshaper this is done using the current settings, which are set on the PVOC page (Menu: Spectral > ). Almost all conversions can be done automatically, with no need to operate this function (simply choose the spectral process).
- PVSynth (F9) resynthesises a soundfile (.wav) from a frequency analysis file (.ana), using current settings. Almost all conversions can be done automatically, with no need to operate this function (simply choose a soundfile process). However, at the end of a process chain, you may have to use the function to convert to a final soundfile, especially before saving it.
EMPHASIZE
These processes emphasize spectral peaks in the spectral envelope.
- Accumulate sustains the frequencies in each band, optionally applying glissando to the sustained partials. In the latest version (CDP: superaccu), you can also tune the resonances. The original version is still available in the Xtra menu.
- Arpeggiate sweeps up and down the spectrum (or part of it) selecting or emphasizing the most prominent partials, which it picks out in an arpeggiated fashion.
- Exaggerate narrows the spectral peaks to focus the energy around key frequencies.
- Focus focuses the energy around the most prominent spectral peaks, by treating these as the centre frequencies of a filter set, thereby reducing the less prominent channels.
- Pluck boosts the amplitude of new spectral components, especially for use with Arpeggiate and Trace; it doesn't really produce a plucking effect.
RESHAPE
These processes reshape the spectral envelope.
- Average roughens the sound by averaging the spectral amplitude over adjacent frequency channels. This broadens, or defocuses, spectral peaks and leads to a noisier or rougher sound.
- Glisten plays a random set of spectral channels, then switches to another random set. The varying spectral dropout gives a "glistening" effect. (See also MorphHmcs.)
- 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. Note that the spectrum itself is NOT inverted.
- Noise boosts weak frequency channels (which largely contain noise) to saturate the spectrum with noise.
- Spread brings adjacent analysis channels up to the same level as peaks; by making otherwise weak components louder, this introduces noise into the spectrum in a controllable way.
FILTER
These processes remove or reduce the amplitude in selected frequency channels, or use frequency information to partition the spectrum.
- Filter implements classic filter types (Low pass/High pass/Band pass/Notch) in the frequency domain, with time-varying cut-off frequencies and 'Q'. This process is capable of very precise and very sharp filtering.
- Graphic: a text-specified Graphic-EQ filterbank with no time-variation of amplitude values, but great flexibility in the number and definition of bands.
- Vowels mimics the filter characteristics of spoken vowels, specified by a datafile of times and vowels. To bring out a particular vowel, the source must already have sufficient amplitude at the necessary frequencies.
- Clean reduces noise in a signal by eliminating low-level bands quieter than those in a comparative 'noise file'. Noise can additionally be subtracted from bands that are passed. You can also boost the noise signal to make it more effective.
- Remove subtracts a given pitch and its harmonics, or removes everything but these same frequencies.
- Slice partitions the spectrum into slices selected by user-defined bands. In Soundshaper, the output files are normally placed on the Patchgrid in separate rows. They can then be given individual treatment, such as delay, panning, transposition etc., after which they can be mixed or interleaved to reconstruct a single sound.
- THIN group: these processes thin the spectrum by retaining the strongest partials (Trace), rejecting them (Suppress), or thinning randomly (Scatter).
FREQUENCY / PITCH
These processes directly manipulate the frequency data in spectral analysis files and some have a radical effect on the pitch or harmonic content.
- Transpose (and variants TransPch and Octmove): transpose the sound, preserving time and optionally the spectral envelope. The original formants may optionally be retained. TransposeTrn uses a binary Transposition File (.trn), derived from Pitch-data files.
- SpecChord imposes transposed versions of the sound onto the original frequencies.
- Fold octave-transposes spectral components into the specified range. The output is normally a timbral variant of the original.
- Shift frequency-shifts (all or part of) the spectrum up or down, by adding or subtracting a value to all frequencies in a specified band, producing inharmonic sounds. Either the whole or a specified part of the spectrum may be shifted.
- SpecStretch stretches or compresses frequencies above or below a dividing frequency, turning harmonic sounds into inharmonic ones. The stretch factor can be linear or exponential and the depth of the effect can be varied.
- Waver oscillates from the original (harmonic) state to a stretched (inharmonic) state and back.
- InvertSpec [CDP: specnu slice 5] 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. If the specified frequencies are not strong in the source sound, the output signal is likely to be weak.
- Tune tunes a sound to 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.
- Gliss creates a glissando while retaining the spectral contour. It attempts to create an endlessly rising/falling Shepard tone, inharmonic glissando, or "self-gliss".
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 especially 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. Multimorph is a variant of MorphPeaks (implemented separately for technical reasons), which creates multiple output files representing different stages of the morph.
- Morphtune (CDP: newmorph2) gradually tunes the sound to the pitches in a given list. Peakfreqs (CDP: newmorph2 mode 1) extracts the peak frequencies from a given sound, in order of prominence, to provide a tuning template, though Morphtune can use any arbitrary MIDI-pitch list.
- Glide makes a gradual glissando, over any time set by the user, between the frequencies of two single-moment spectra, grabbed at two specific times from the same or different sounds. (Soundshaper's implementation incorporates Grab, which extracts the spectra.) The output is dynamically lifeless, but can have a spectral envelope imposed on it.
- MorphHmcs: an earlier attempt (CDP6: specross partials) to morph between the harmonics of two pitched sounds. The result can be more like an altered Sound 2 than Sound 1, and its output is often quite close to Glisten.
- 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. Note that although the output sound is articulated rhythmically by the imposed spectral envelope (Infile 2), the amplitude in each frequency band reflects that of the source (e.g. you can't impose something on nothing).
- Cross creates a hybrid by replacing the spectral amplitude of one sound with that of another (more radical than vocoding).
- Hybrids (CDP: specsphinx) is a variant of Cross which imposes the amplitudes of Sound 2 on the frequencies of Sound 1, or multiplies their spectra.
- Spectwin combines the formant and/or total spectral envelopes of two spectra.
- Get Formants extracts the time-varying spectral amplitude of a file as a binary formant file (.for).
- Put Formants imposes or replaces the spectral amplitude, using an extracted formant file (.for) equivalent of Vocode/Cross.
- 1FmtGet extracts a single spectral envelope at a specific time in a formant file.
- 1FmtPut imposes or replaces the spectral amplitude, using a single-moment formant file. The replace mode creates a static sound with frozen amplitudes, but a changing spectrum/pitch.
- 1FmtCombine combines pitch and single-moment-formants data to make a new spectral analysis file (c.f. MakeSpec).
- MakeSpec (CDP: make) combines a pitch file (.frq, Infile 1) with a formant file (.for, Infile 2) to create a spectral analysis file (.ana) that you can resynthesize back to sound (via PVSynth). Make also appears in the Menu: Pitch | Make Spectrum.)
- MakeSpec2 is the same as MakeSpec, but adds in an envelope file as Infile 3. This file should be extracted from a spectral file using EnvAnal in the Envelope | Extract menu (which in Soundshaper can take a soundfile input).
COMBINE
These processes operate on two spectra (channel by channel and across all time-windows):
- SpecSum adds the amplitudes of two spectra together, if they differ.
- SpecDiff takes the difference of the two amplitudes.
- SpecMax takes the maximum amplitude of two spectra.
- SpecMean takes the mean of two spectra in both amplitude and frequency, often giving unpredictable results.
- SpecInterl: interleaves the analysis windows from two or more infiles.
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 (CDP: blur blur) averages spectral amplitudes over time to create a blurring effect, optionally thinning the spectrum as well (CDP: hilite bltr).
- SpecDrunk (CDP: blur drunk), a 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. (c.f. CycShuffle and GrnShuffle)
- Weave a spectral version of Zigzag reads analysis windows according to a specified sequence of steps.
SPEC UTILS
Miscellaneous spectral utility programs:
- 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.
- Grab extracts a single analysis time-window (i.e. a single spectrum). This process is built into Soundshaper's implementation of GLIDE. There are no known uses for the function otherwise.
- SpecGate (a spectral version of GATE) removes sound with a level lower than a given threshold, in each frequency band.
- SpecJoin (CDP: analjoin) attempts to join togther individual spectral files. It is unlikely ever to work properly, due to phasing issues which can arise when spectral files are arbitrarily strung together. (The program is not currently documented by CDP, but has survived into Rel 7.1.) It may be more effective to join sounds in the time-domain and re-analyse the result.
RETURN to top of page |