Soundshaper's Edit/Mix menu has the fundamental sound-editing operations found in visual editors, such as basic editing (cutting and pasting), spatial distribution and channel operations, level and balance, and mixing. In the classic analogue studio these functions either involved cutting and splicing tape, or operating a mixing desk. CDP also has a growing number of functions that extend these principles into relatively uncharted areas, such as multi-channel spatial distribution.



Cut and paste sounds, including extracting segments to separate files. Other processes mask portions with silence and switch between soundfiles.


  • Cut: extract a segment as a separate soundfile.
  • Excise: cut out and discard the selected segment.
  • Discards (CDP excises): discard listed portions of a sound.
  • Zerocut: as Cut, but makes the cut at the nearest zero crossover points.
  • Trim: top and tail, removing low level signal from start and/or end. Uses a GATE level, above which the signal is accepted.


  • MultiCut [CDP: cutmany]: cut listed portions of sound and extract to separate files.
  • Zerocuts: as MultiCut, but makes cuts at nearest zero crossover points.
  • Gatextract: Cut soundfile into separate files, using a GATE level to find cut points.
  • ZeroExtract: extract segments to separate files, cutting at zero amplitude points.
  • Packet: isolate or generate one or more sound packets (short enveloped sound grains).
  • Partition / Isolate: partition sound into separate output files, each retaining the original segment times (by inserting silences).
  • Cantor: cut holes (reduced level) in the manner of a Cantor Set (holes within holes). Output is a series of sounds with more and more holes cut.
  • Randchunks: cut soundfile into a given number of separate files, with segments chosen randomly according to given length.
  • Randcuts: similar to Randchunks, but number of cuts decided by average segment length (itself randomly variable).
  • Timegrid: segment the soundfile using a constant time-interval, but each outfile is the original length, with the segment preceded and followed by silence.


  • Paste: insert a sound, either overwriting or spreading the original.
  • InSil: insert silence in to the soundfile (except at the start or end).
  • PreSil: prefix silence to the start of the soundfile. Useful pre-mixing function, as it delays the sound relative to others in the mix.
  • EndSil (CDP: silend): add silence to end of soundfile.
  • Silences (CDP: manysil): insert multiple silence at list of times.
  • Masks: overwrite listed portions with silence.
  • Join: splice soundfiles together (end to end).
  • Switch (CDP twixt/sphinx): switch between parallel-running soundfiles – at specified times, by permutation, or randomly.


These processes handle channel operations. Split a sound into its separate channels (or selected ones); interleave files to make a stereo or multi-channel file; convert between mono and stereo, or between mono/stereo and multi-channel; manipulate channels in multi-channel space by rotation, renumbering, etc.

  • SplitChans: extract all channels to separate soundfiles.
  • Getchans: extract the selected channels from a multi-channel file.
  • SwapChans: invert (L <--> R) channels in a stereo file.
  • Subtract: subtract a mono file from one channel of another file.
  • ZeroChan: zero the signal in one of the two channels in a stereo file.
  • Interleave / Interlx: merge up to 16 mono or 8 stereo files to make a (Wave-Ex) multi-channel file.
  • MtoS: convert mono to stereo (channels are identical).
  • StoM: convert stereo to mono (channels are mixed).
  • MtoN: convert Mono to multi-channel file (same signal in all chans).
  • StoN (Soundshaper function): convert stereo to multi-channel file (duplicated in chans. 1-2, 3-4, 5-6 etc.).
  • MchStereo: place stereo files within a multi-channel space.
  • MchOrder: re-order channels within a multi-channel soundfile.
  • MoveChans (CDP: frameshift): move channel numbers around in a multi-channel file, changing order, swapping, mirroring etc.
  • RotateChans (CDP: frameshift): rotate the order of channels in a multi-channel file; channels can follow a specified "snake" route as they're changed.


Spatial processes pan sound across stereo or multi-channel space, including ambisonics. Pan values can simulate space beyond full left or right, by attenuating the sound. The multi-channel functions either distribute a mono sound across multi-channel space, or re-order the spatial distribution within a multi-channel file (e.g. by changing channel order or rotation).

  • Pan: spatialise a mono soundfile within stereo space, using a breakpoint datafile of pan positions. (Soundshaper permits different parameter settings for each channel.)
  • Panmix (composite function): two mono inputs are each placed in stereo space, then mixed together. (Soundshaper can also handle stereo or multi-channel input.)
  • Narrow: narrow or invert the stereo image of a stereo sound.
  • PhaseShift: enhance stereo separation by shifting the phase of the signal.
  • MirrorPan: invert the stereo image in a pan breakpoint file.
  • Findpan (INFO MENU): find the pan position, at any time-point, within a stereo file created using Pan.
  • Doppler (DATA MENU): from a pan breakpoint file, calculates the necessary transposition to simulate Doppler shift.


  • MchPan: pan or rotate sound in multi-channel space.
  • MchPanset [CDP: mchanpan 7]: pan from one set of channnel positions to another, passing through the centre.
  • MchSpread [CDP: mchanpan 4]: spread a sound across multi-channel space, outwards from a central channel.
  • Pantiphon [CDP: mchanpan 6]: antiphonal panning between sets of channels. The set switches after a specified time.
  • MchEvents: as MchSpread, except that the spread is of silence-separated events.
  • Panorama: place (mono) files spatially in surround-sound.
  • MchSwitch: the input switches between output channels at the ocurrence of each new silence-separated event.
  • Ambipan [CDP: abfpan/abfpan2]: generate a fixed or simple periodic rotating pan around the listener, using ambisonic encoding. (Can generate a rotating or fixed multi-channel pan even without ambisonic output.)
  • Ambidecode (CDP: fmdcode): decode a 1st or 2nd order B-Format (ambisonic) soundfile to a choice of speaker layouts. A suitable input file may be created using Ambipan. There is a wide range of output options and speaker layouts.


CDP Mix functions are best for mixing small sounds to create larger units. Although larger mixes are perfectly possible, a visual editor is more intuitive and tends to have better controls.

  • Mix: mix together the soundfiles listed in a mixfile (.mix: text data file of soundfile, time, level and pan).
  • MchMix (CDP: newmix multichan): mix multi-channel files using a multi-channel mixfile format (.mmx: muti-channel text data file).
  • Mixmany (CDP: mergemany): mix several files with the same number of channels.
  • MixTwo (CDP: submix merge): quick mix of two soundfiles (can have different channel count).
  • MchMixTwo (CDP: nmix): a simple mix of two mono, stereo or multichannel files, with an optional time OFFSET. Files must have the same channel-count.
  • PreMix (composite function): set Pan, Level and Start-time, prior to mixing with e.g. MixMany or MixTwo
  • MergeTwo: mix two sounds (mono, stereo or multi-channel), with a number of optional parameters. The sounds need not have the same channel-count (unless multi-channel).
  • MixBalance: mix two sounds, with a balance control and optional Start and End times. Mono and stereo soundfiles may be mixed, but multi-channel files must have the same channel-count.
  • Crossfade: perform a quick cross-fade between two sounds of the same channel-count./li>
  • InBetween: generate multiple outputs representing changing balance between two inputs.
  • InBetween0: similar to InBetween, but attempts to synchronize the zero-crossings in the two input soundfiles.


CDP has two dedicated mixfile formats for mixing: one for mono/stereo and the other for multi-channel files. Soundshaper creates a basic mixfile on the Mix Page from the selected sounds. You can then alter timing and level differences, and pan position.

CDP also has a number of processes for manipulating the content of mixfiles:

  • MixGetLevel: test the maximum level of a mix, as defined in a mixfile (.mix).
  • MixAtten: alter overall level in a mixfile.
  • MixShuffle: alter the order of events in a mixfile.
  • MixSpacewarp: alter pan positions in a mixfile.
  • MixSync (CDP: submix sync, syncattack): synchronise the attack, middle or end points of soundfiles in a mixfile, or a textfile containing a list of soundfiles only.
  • MixTimewarp: alter the timings of events in a mixfile.
  • MixTimegaps: alter the gaps between start times in a mixfile.


Various functions for adjusting gain, inverting phase and gating sounds. (See also Envelope functions which do the same sort of thing.) Soundshaper also has a number of preset gain and normalising menu-items, and a separate context menu for these:

  • Level sets or alters the level in a soundfile.
  • Normalise: raise or lower the maximum level to the given level.
  • ForceLevel: force the level to the given level or the maximum possible.
  • PhaseInvert: invert the phase of the signal (+ becomes - and vice-versa).
  • ChanPhase: invert the phase of one channel.
  • Balance: force the maximum level to that of a second sound.
  • Equalise: force the maximum level of all files to that of loudest sound.
  • Gate: cut out signal which falls below a given level. The gated signal is either replaced with silence or removed altogether, shortening the file-length.
  • MchGain: apply gain reduction to a multi-channel file, or specific channel(s).


CDP has several sequencing functions, which are like software samplers, realising a sequence of sounds just like a MIDI sequence, using different sound-sources. Sequencer has the fullest set of parameters and plays multiple sounds. Three other sequence functions use less detailed data files:

  • Joinseq: join soundfiles end-to-end in a sequence. The whole sample is played each time: there is no duration field.
  • Joindyn: as Joinseq, but with a field for level.
  • Sampleseq (CDP: sequence): like a sampler, this plays a sequence of a single sound sample using a text file of:
      time,   transposition (in semitones),  relative level (<1 or >1).
    The whole sample is played each time: there is no duration field.
  • Sequencer (CDP: sequence2) is a multi-source sequencer using a text data file of:
      sound-number,   time,   pitch,   level,   duration.


Some utilities, most of which are never needed. A notable exception is CopySFX, which Soundshaper uses to convert sources to temporary files before processing. Utils include:

  • Respec:
    – Resample the sound at a new sample rate.
    – Integer-Float: converts between Integer ("shorts") and Floating-point soundfile formats ("floats").
    – Rewrite Header: the information in the soundfile header is changed but the actual sample data is left untouched. Changing the sample rate will change the speed, for instance.

  • CopySFX: the "Swiss army knife" for copying/converting file-types. CDP supports only .wav and .aif file formats (not .mp3, .flac etc.), but has full support for file types within the two formats (.aifc, .afc are also supported). The default in all cases is that the outfile has the format of the infile. The function supports a wide range of input and output types, with special support for WAVE_EX and Ambisonic speaker formations.


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.