Main Index
Tutorials Index
'Groucho' Index
Spectral Index
File Formats

CONTENTS
Introduction
  1. Utilities
  2. Editing
  3. Frequently used
  4. Interesting
  5. Far-reaching
  
  


CDP Logo

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

  • Keyhole View 1 – Key utility functions

  • Keyhole View 2 – Key editing functions

  • Keyhole View 3 – Functions which are used frequently

  • Keyhole View 4 – A number of basic but interesting processes

  • Keyhole View 5 – Several more far-reaching transformations


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.

Movement of Pitch & Transposition Data
Mix pitch and transposition data:
REPITCH GETPITCH --> REPITCH COMBINE/B
Transpose a sound with pitch data:
REPITCH GETPITCH --> REPITCH TRANSPOSE/F <-- REPITCH COMBINE/B
Isolate harmonics, then select odd or even ones:
REPITCH GETPITCH --> SPEC BARE --> PITCH ALTHARMS

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

Last updated: 30 Oct 2021 – HTML5 version
Documentation: Archer Endrich; last updated: 17 January 2005
HTML revisions and minor edits: Robert Fraser
All observations & ideas for improvement appreciated
Composers Desktop Project
Email: composersdesktop@gmail.com
© Copyright 1998-2021 Archer Endrich & CDP