A Keyhole View of the CDP System
by Archer Endrich
This tutorial highlights a number of key CDP functions. Although CDP has developed a great deal since 2005, when it was written, these functions are just as relevant today. [R.F.]
CONTENTS
Introduction
The CDP System can be thought of as if it were one single program.
Since Release 4, the functions available have been grouped into a number of
'families' of processes, most of which are run within one executable program.
This document uses the 'keyhole' idea in an effort to make an initial
contact with the CDP System a little more comprehensible. It focuses on
a selection of the many functions available, with emphasis on the most
basic and most used functions, but also goes on to outline the significance
of some of the more advanced processes.
Return to Keyhole contents
Keyhole View 1 key utility functions
- DIRSF
- to list all the sound and analysis files in the current
directory, with header information
- HOUSEKEEP COPY
- to make a copy of a soundfile, sometimes converting
it to a different format in the process.
- SNDINFO LEN
- to quickly find out the duration (length) of a
soundfile, to several decimal points accuracy
- HOUSEKEEP CHANS
- to convert from stereo to mono, or v.vs. Quite a
few programs will only operate on mono soundfiles, so this is likely to be
used frequently. On the whole, don't move to stereo unless it is really
essential to do so.
- HOUSEKEEP CHANS /
SUBMIX INTERLEAVE /
MODIFY SPACE
- HOUSEKEEP CHANS is often used to separate out a stereo soundfile into its two component
channels. Each of these becomes a different mono soundfile. Thus they can
be processed individually, and then combined again to create a stereo
soundfile with SUBMIX INTERLEAVE. HOUSEKEEP CHANS can also zero the data
in one channel while leaving it as a stereo soundfile. SUBMIX SPACE can
reverse the position of the two channels: Left and Right are swapped.
- SNDINFO MAXSAMP /
MODIFY LOUDNESS
- SNDINFO MAXSAMP is used to gather information about the amplitude levels of a soundfile and
recommend a gain factor which would 'normalise' it (bring it to
full amplitude). MODIFY LOUDNESS is then used to apply that gain
factor to a soundfile. MODIFY LOUDNESS can be used to increase or decrease
the amplitude of a soundfile. The gain factor is a multiplier.
- HOUSEKEEP RESPEC /
SNDINFO PROPS
- HOUSEKEEP RESPEC can be
used to change the sample rate of a soundfile, one of the 3 main items of
information in a soundfile header. The other is the number of channels and
the sample type (shorts or floats). This information about a particular
soundfile can be seen with SNDINFO PROPS. CDP soundfiles are
usually shorts, and analysis files are floats, but support for floating point
soundfiles is now coming in. Sometimes, when sound is recorded from an
external source, either as raw data or in a different format, it loses its
previous header information. HOUSEKEEP RESPEC can be used to reconstitute it.
- SNDINFO UNITS
- a very straightforward program which can be
used to carry out a number of useful musical calculations, such as
showing which frequency in Hz a certain MIDI note is.
- SYNTH WAVE
- some basic kinds of waveform, noise and silence can be
synthesized with these programs.
Return to Keyhole contents
Keyhole View 2 key editing functions
Very often, these facilities will be available as part of a graphic
sound editor supplied with a sound card, especially the more professional
models. The graphic facilities are very useful when you want to isolate
sections of a sound to cut out and paste elsewhere, especially because you
can block out the section and audition it in order to hear if you have got
it right or not. These are most useful when the display is 'accurate to
the sample', but this facility is frequently not available. CDP's
VIEWSF for PC Windows 95 systems is accurate to the sample.
On the other hand, it can also be usedful to be able to cut a sound
directly from the command line, such as when it doesn't matter very much
where the cut is made: you just want a bit of it for something.
- SFEDIT CUT
- does this, saving the cut portion as a separate soundfile. The
-splice flag sets the slope of the splice (in milliseconds); values
above 30 will very much soften the onset of the sound. The CDP programs
HOUSEKEEP EXTRACT, SFEDIT ZCUT, and SPEC CUT extend the 'cut' functionality:
- HOUSEKEEP EXTRACT
- will cut according to gate and threshold
specifications (this enables you to e.g. separate a number of recording
'takes' all at once);
-
SFEDIT ZCUT
- divides up a soundfile according to its zero crossings;
-
SPEC CUT
- enables you to cut out portions of an analysis
file, useful, for example, when progressively stretching sound material:
stretch several times, cut out a bit of the stretched analysis file,
stretch that some more, etc. This produces really stretched out material
in situations when it isn't necessary to retain the whole of the original
sound (which would get longer and longer!).
- SFEDIT JOIN
- is used to link together a string of soundfiles. Note that in
this case the outfile name comes first. It also has a -w
flag with which the slope of the splice can be controlled. SFEDIT JOIN run
from a batchfile can be a powerful way to create a series soundfile 'tracks'
note that you can splice in silence by making a silent soundfile
with SYNTH SILENCE, or silence can be inserted into a soundfile with
SFEDIT INSIL or in several places at once with SFEDIT MASKS.
- MODIFY SPACE
- uses a breakpoint textfile to define spatial position
over time. Note that when mixing soundfiles with SUBMIX MIX, any pan
operations have to be done first.
- SUBMIX MIX
- will mix many soundfiles at once the Manual
states a limit of 1000. Sometimes you may want to mix
more sounds than are available on
graphic mix programs but watch out for amplitude overload;
run SUBMIX GETLEVEL
first to check for overload. If overload is reported, use
SUBMIX ATTENUATE
to reduce the overall level of the mixfile.
Alternatively, check the output level with
MAXSAMP
before playing the mixed sound.
CDP's more advanced facilities associated with mixing include
SNDINFO LENS,
SUBMIX SHUFFLE,
SUBMIX SPACEWARP, and
SUBMIX TIMEWARP.
With SNDINFO LENS you can get the sum of the lengths of a list of soundfiles.
With the SUBMIX functions, you can shuffle the data in a mixfile
(SUBMIX SHUFFLE),
perform a number of panning operations over the various files in a mixfile
(SUBMIX SPACEWARP),
or play with the timegaps between the sounds in a mixfile
(SUBMIX TIMEWARP).
It is useful to sketch out a 'mix' on paper, showing when each
soundfile starts along a time-grid, and how long they last
(SNDINFO LEN
is useful for that); then you can see if and how much they overlap.
In the Spectral Domain, you can effect a seamless mix with COMBINE MAX.
- COMBINE MAX
- accepts two or more analysis files and it retains
the one channel of all of them which is the loudest; sometimes the
result is a nice mix sounding very much like a
SUBMIX MIX result, while at
other times you get an amalgam of the inputs which can be very surprising:
because of the omitted material.
- COMBINE INTERLEAVE
- doesn't really perform a mix,
but it interleaves analysis files in user-definable groups of windows
(e.g., 10 of one, then 10 of the other, etc.).
Return to Keyhole contents
Keyhole View 3 functions which are used frequently
I find myself using the next group of programs over and over, usually
in order to distance the sound material from its recognisable origins.
This makes it more 'plastic' and usable in a sonic context in which the
associations of the original sound would get in the way.
- PVOC ANAL
- is used to turn a soundfile into an analysis file, and
-
PVOC SYNTH
- resynthesizes an analysis file back into a soundfile.
- MODIFY RADICAL 1 (REVERSE)
- turns a sound around backwards, a useful first step
in distancing it from its origins
- MODIFY SPEED
- basic transposition higher or lower can make a sound
surprisingly different
- BLUR BLUR
- smooths over analysis windows in groups of user-definable
sizes. With a breakpoint file, one can play with recognisability by
increasing/decreasing the size of the groups.
- HILITE TRACE
- by retaining only the specified number of loudest
channels, a sound can be reduced to a mere 'trace' of the original. Try
a value of 5 spectral components and see what happens.
(Note also
HILITE BLTR
which combines BLUR and TRACE within one function.)
- MODIFY RADICAL 5
- this actually implements a form of ring-modulation
ENVELOPE FUNCTIONS
- ENVEL CREATE
- basic program for shaping an envelope uses a
breakpoint file to specify time / amplitude.
However, CDP programs go much further than this when it comes to handling
envelopes, and this is one of the more powerful areas of the system.
The following are key functions to get to know (and why):
- ENVEL REPLACE
- a straightforward but effective tool for replacing the existing envelope of soundfile with
that of another sound.
- ENVEL EXTRACT /
ENVEL IMPOSE
- extract an amplitude envelope
from one soundfile and apply it to another soundfile, thereby producing
a third, new, soundfile with the 'substance' of the second file and the
'shape' of the first.
Once this operation is familiar, one can move on to some of the
possible actions with which the envelope shape can be modified
before creating the output. The next three programs can alter an
envelope shape in 15 different ways:
- ENVEL WARP / ;
ENVEL REPLOT / ;
ENVEL RESHAPE
- these 'warp' the envelope of a soundfile, a text breakpoint file, and a
binary envelope file respectively.
- FORMANTS VOCODE
- this time we're dealing with a
spectral envelope,
meaning the time-varying amplitude of the (ever-changing) frequencies of
the sound. The timbral data of the sound onto which the new envelope is
being placed is retained, while the formant groups of the new envelope are
imposed onto it. This process is known as 'cross-synthesis.
Compare this result with FORMANTS GET and FORMANTS PUT:
- FORMANTS GET /
FORMANTS PUT
- extract and impose a spectral envelope;
here the timbral and formant character of the first sound
modifies the second.
Return to Keyhole contents
Keyhole View 4 a number of basic but interesting processes
You might want to try out the folllowing relatively straightforward
processes:
- FOCUS EXAG
- the peaks and troughs of the spectral envelope are
exaggerated, which increases the audibility of the higher timbres and of
contrast throughout the sound
- FOCUS FOLD
- higher frequencies are 'folded' over (transposed)
into a specified frequency range, thus concentrating the data in that area
- STRETCH TIME
- stretching the spectrum with a time stretch_factor
breakpoint file; this is like the former PVOC's pvoc -T but with
temporal control; this is a very important way to bring out the inner
potential of a sound
- REPITCH TRANSPOSE
- transpose a sound without changing its length (the
same effect as PVOC's former -P flag)
- BLUR NOISE
- by introducing a degree of noise, the original sound is
enriched with frequency data; when used in a time-varying way, this
can be a way in which a sound can 'emerge' out of a haze of noise
There are a few more options to deal with in the following programs:
- HILITE BAND
- this enables you to deal with specific frequency bands
within the sound, altering either amplitude or frequency data
- BLUR SPREAD
- the peaks of the spectral envelope are 'spread', which
alters the sound to a surprising degree
- PITCH TUNE
- this can be very useful when working towards some form of
harmonic sonority, either for its own sake or to tie in with other harmonic
material in the piece; the chart in Pierce's The Science of Musical
Sound is useful here to find out which (well-tempered) frequency
matches a specific note on the keyboard.
SNDINFO UNITS can also be
used to convert directly from MIDI note to frequency value.
- MODIFY RADICAL 2 (SHRED)
- this function can go a long way towards
turning a source sound into a completely different form of modulating
sound material by shredding it to varying degrees
- MODIFY BRASSAGE
- can be used simply to 'granulate'
a sound, i.e., turn it into a series of separate 'grains' or 'pulses'. This
is done with a density value of 1. Having done this, the resultant sound
can be used as an input to the other GRAIN functions, which are fairly
simple in their operation. (You can still use the Release 3 programs
BRASSAGE, SAUSAGE & WEDGE, which approach granulation in different ways.)
DISTORT FUNCTIONS
The DISTORT
suite of programs offers a wide variety of sound
transformations. They are simple to use and repay careful study
certainly an area for detailed and step-by-step exploration. They are
all based on the concept of a pseudo-wavecycle, i.e., the various
(usually differing) portions of waveform that lie between zero-crossing
(where the amplitude envelope passes through zero on its way from positive
to negative, and v.v.s). Because these portions of waveform differ in
length, a (more) non-periodic (non-regular) waveform results, and this is
what introduces the distortion. Each program handles these pseudo-wavecycles
in a different way. Aesthetically, bear in mind the importance of textured
surfaces in painting and sculpture. The same importance can apply to the
audio image, and this suite offers many ways to create different types of
audio 'surface'. Also see Richard Dobson's discussion of these programs
( here).
- DISTORT REFORM
- watch for pulsation effects because the same shape
is being repeated
- DISTORT AVERAGE
- play with 'pixellating' an audio image
- DISTORT ENVEL
- impose various envelope shapes on the (differing
lengths of) pseudo-wavecycles. Try separating out the channels of a
stereo file (HOUSEKEEP CHANS), processing them with DISTORT ENVEL (using
the troughed envelope and differing time-varying cycle counts), and
then combining the two mono files back into a stereo file (SUBMIX
INTERLEAVE). Some marvelously fluid phasing effects can be achieved.
- DISTORT DIVIDE
- a strange form of pitch-shifting by dividing the
frequency of the pseudo-wavecycles
- DISTORT HARMONIC
- 'harmonics' as in integer multiples of, only
this time pseudo-wavecycles 'harmonics' are being super-imposed
- DISTORT INTERACT
- here the pseudo-wavecycles of two different
soundfiles are interacting
- DISTORT REVERSE
- note the suggestion to combine the operation of
this program with that of MODIFY RADICAL, Mode 1 (REVERSE)
- DISTORT SHUFFLE
- this provides a way to control the degree of
change, though the result is still somewhat unpredictable
- DISTORT REPEAT /
DISTORT DELETE
- another way to stretch out or compress a soundfile.
Filters are a key part of any sound transformation package,
analogue or digital. In digital, their operation requires setting several
parameters. Probably most important to understand is
'Q',
which is simply
the degree of 'focus' on the specified frequency: a low number yields
least focus, and a high number yields most focus.
Return to Keyhole contents
Keyhole View 5 several more far-reaching transformations
We now come to a selection of CDP programs which are more advanced in
their operation and produce on the whole more 'textured' types of results.
- EXTEND LOOP
- this is not 'loop' in the same sense as it's used in
samplers (joining beginning and end to make a continuous sound), though
this can be done as well by making step = 0. It is more
frequently used to segment a soundfile: the output consists of lengths
of input taken at step intervals, which can be greater than
or less than the loop length. A small step value can also time-stretch the sound.
- EXTEND DRUNK /
BLUR DRUNK
- these are very powerful programs
by which you can produce an output which differs from the input by the
degree to which you 'wander about' in the source soundfile
- MODIFY REVECHO
-
a classic delay line creating a series of echoes, which may be in very close succession to create resonance;
the time-varying delay option can create "phasing" effects when mixed with the original.
The more recent NEWDELAY also has a time-variable delay.
- MODIFY BRASSAGE
- one of the most powerful of CDP's programs, this
becomes 'granular synthesis' when the grainsize gets into the
hundredths of a second (e.g., 0.05). The point about the time-varying file
options is that each grain is chosen randomly within the limits set.
By changing pitch transpositions, spatial positions, and splice lengths,
for example, the texturing of the output can be made very complex (i.e.,
interesting to listen to). On PC Windows systems, this function
is also available as the graphic program,
GrainMill.
- MODIFY SAUSAGE
- like MODIFY BRASSAGE, but working with two or more sources. I've
had a lot of fun with the pitch transposition options.
(Cycling around a set of pitches was previously possible with the Release 3 SAUSAGE (now withdrawn), but has been removed from this version.)
- MODIFY SPEED
- this makes time-varying transposition (= glissando
effects) possible, but with the added capacity to specify times as applying
either to the infile or to the outfile. It can also be
used to accelerate a soundfile to reach a specified multiple of its
original speed at a defined (goal)time.
- PITCH TRANSP and
STRANGE SHIFT
- will shift part of the spectrum
up or down, harmonically with PITCH TRANSP (relative distances between
partials preserved), or inharmonically with STRANGE SHIFT: the partials
will tend to bunch if shifted up, or stretch if shifted down.
Return to Keyhole contents
The next group are variously based on
REPITCH GETPITCH.
The function
dependencies here are somewhat involved, as the pitch and transposition
data can interact in the most wonderfully flexible way. The following
diagram charts out the basic relationships: The key program is
REPITCH GETPITCH (for extracting pitch contours in a sound), because all the
other programs variously depend on its output.
Also note that
PITCHINFO CONVERT can change a binary pitch or transposition file into a breakpoint file, and
PITCHINFO HEAR can convert to a file
ready for synthesis by PVOC SYNTH
so you can hear it.
-
REPITCH GETPITCH (
REPITCH TRANSPOSE /
TRANSPOSEF and
REPITCH COMBINE /
COMBINEB)
- REPITCH GETPITCH can follow (as best it can) the pitch movement of a
sound over time. This pitch shape can then be combined with another using
REPITCH COMBINE (binary data) or
REPITCH COMBINEB (breakpoint data) to move
from one to the other, and the output of REPITCH COMBINE/B can used as
the transposition file for another sound (REPITCH TRANSPOSE and REPITCH TRANSPOSEF).
REPITCH TRANSPOSEF seeks to retain the original spectral envelope.
- SPEC BARE /
PITCH ALTHARMS
- sometimes it is important to work with
the (harmonic) pitch material of a sound as accurately as possible.
SPEC BARE aids in this process by zeroing the non-harmonic partials.
Various procedures such as those done by PITCH ALTHARMS ,
STRANGE INVERT and
PITCH OCTMOVE may be improved when using a more 'harmonic' input. The same is possibly true of cross-synthesis with
FORMANTS VOCODE.
Return to Keyhole contents
Return to List of Tutorials
Return
to CDP Master Index