MAIN INDEX
Time Domain Index
Spectral Index
CDP WEBSITE
Alphabetical List

Edit Soundfile:
  DVDWIND
  ENVCUT
  WAVEFORM
Envelope:
  FLATTEN
  SPIKE
  TREMENV
Extend/Segment:
  BOUNCE
  ENVSPEAK
  HOVER2
  MOTOR
  PULSER
  REPEATER
  ROTOR
  SORTER
  STUTTER
  TESSELATE
Filter:
  PHASOR
Housekeep:
  PAIREX
  REPAIR
  TOSTEREO
Modify:
  VERGES
Multi-channel:
  BROWNIAN
  CASCADE
  CRUMBLE
  CRYSTAL
  ONSET
  SPIN
Pitch-sync Grains:
  FOFEX EXTRACT
  FOFEX CONSTRUCT
  TWEET
PVOC:
  ANA2PVX
  PVOCEX2
  FTURANAL ANAL
  FTURANAL SYNTH
Spectral:
  CALTRAIN
  FRACTAL
  MATRIX
  SPECENV
  SPECFNU
  SPECFOLD
  SPECTSTR
  SPECTUNE
  SPECULATE
  SUPPRESS BAND
Synthesis:
  CLICKNEW
  IMPULSE
  MULTIOSC
  MULTISYNTH
  NEWSCALES
  NEWSYNTH
  PULSER SYNTH
  SYNFILT
  SYNSPLINE
  TS OSCIL
  TS TRACE
  TSCONVERT
Utils:
  ASCIIGET
Waveset / Distort:
  CLIP
  DISTCUT
  DISTMARK
  DISTMORE:
    BRIGHT
    DOUBLE
    SEGSBKWD
    SEGZIG
  DISTORTT
  DISTREP
  DISTSHIFT
  DISTWARP
  FRACTAL WAVE
  QUIRK
  SCRAMBLE
  SPLINTER


CDP Logo

CDP RELEASE 8 New Functions

(with Command Line Usage)

Alphabetical List

ANA2PVX – Convert CDP analysis file (.ana) to PVOC-EX file
ASCIIGET – Display the contents of a text file as a list of characters with ASCII decimal code
BOUNCE – 'Bounce' a sound: accelerating repeats, decaying in level
BROWNIAN – Generate texture of sampled elements following brownian motion in pitch and space
CALTRAIN – Time-blur the upper spectral channels
CASCADE – Successive segments are repeat-echoed, and the echosets are superimposed on the source
CLICKNEW – Make clicktrack using times listed in textfile
CLIP – Clip a signal
CRUMBLE – Project segments spatially over progressively smaller groups of channels
CRYSTAL – Generate sound-events based on the position of vertices of a crystal, then rotate the crystal in 3-D space, etc.
DISTCUT – Cut sound into elements with falling envelope
DISTMARK – Interpolate between waveset-groups at marked points
DISTMORE BRIGHT – Reorder sound segments in order of average zero-crossing rate
DISTMORE DOUBLE – Double (quadruple etc.) frequency of each waveset
DISTMORE SEGSBKWD – Reverse certain (sets of) segments
DISTMORE SEGZIG – Zigzag across tail segments or across whole soundfile
DISTORTT – Repeat wavesets within given duration
DISTREP – Timestretch soundfile by repeating wavesets
DISTSHIFT – Time-shift or swap wavecycles
DISTWARP – Warp wavecycles by a multiplier
DVDWIND – Shorten a sound by read, skip, read, skip procedure
ENVCUT – Cut sound into elements with falling envelope
ENVSPEAK – Process speech 'syllables'
FLATTEN – Equalise level of sound elements
FOFEX EXTRACT – Extract FOFs to a file or to separate soundfiles
FOFEX CONSTRUCT – Superimpose FOFs to make output FOF
FRACTAL WAVE – Fractally distort an input sound or wavecyle
FRACTAL SPECTRUM – Fractally distort spectrum by transposition
FTURANAL ANAL – Extract spectral features from an analysis file and output to a textfile
FTURANAL SYNTH – Use spectral features data to reassemble MONO source file
HOVER2 – Move through a file, zig-zag reading it at a given frequency, with inverted copies
IMPULSE – Create a stream of impulses
MATRIX – Matrix manipulation of spectrum of sound
MOTOR – Create faster pulse-stream within slower pulsed envelope
MULTIOSC – Nested FM-style oscillations
MULTISYNTH – Synthesize several sound-streams from a score
NEWSCALES – Synthesise a series of short tones with defined frequency and timbre
NEWSYNTH – Synthesisze complex spectra (new modes)
ONSET – Return the succession of sound-onsets in each channel of a multichannel file
PAIREX – Extract any pair of channels from a multichannel sound
PHASOR – introduce phasing into (mono) signal
PULSER – Iterate a sound to create a stream of enveloped & pitched sound-packets
PULSER MULTI – Iterate a number of sounds, randomly permutated, to create a stream of enveloped and pitched sound-packets
PULSER SYNTH – Iterate synthesized wave-packets defined by partials data
PVOCEX2 – Stereo phase vocoder based on CARL pvoc (Mark Dolson)
QUIRK – Distort signal by raising sample values to a power
REPAIR – Join a list of mono sounds into stereo or multi-channel outputs
REPEATER – Play source, with specified elements repeating
ROTOR – Generate note-sets that grow and shrink in pitch-range and speed
SCRAMBLE – Scramble waveset order randomly or by size and level
SORTER – Chop sound into elements, then reorganise by loudness or duration
SPECENV – Extract the spectral envelope of file 2 and apply it to file 1
SPECFNU – Modify spectral shape in relation to formant peaks, or show formant data
SPECFOLD – Fold, invert or randomise the spectrum
SPECTSTR – Time-stretch analysis file, suppressing artefacts when stretch > 1
SPECTUNE – Find most prominent pitch and transpose file to it
SPECULATE – Generate versions of source with channel data progressively permutated
SPIKE – Envelope the sound to spike at the peak
SPIN STEREO – Spin a wide stereo image across stereo / multichannel space, with possible doppler-shift
SPIN QUAD – Spin two wide stereo-images across a 5-channel-wide sound image, with possible doppler-shift
SPLINTER – Create splinters by repeating & shrinking selected waveset-group
STUTTER – Randomly repeat segments cut from elements
SUPPRESS PARTIALS – Suppress the most prominent partials in the frequency band indicated
SYNFILT – Noise filtered by time-varying filterbank, with time-variable Q
SYNSPLINE – Synthesise waveforms by smoothly joining randomly generated points
TESSELATE – Create repeating patterns with shift in space and time
TOSTEREO – Diverge from mono to stereo, in a stereo file
TREMENV – Tremolo a sound, with width narrowed after peak
TS OSCIL – Create sound from time-series text data
TS TRACE – Create sound from time-series data treated as a pitch-trace
TSCONVERT – Convert input data to specified range and format
TWEET – Replace FOFs in vocal sound by synthetic tweets or noise
VERGES – Play source, with specified brief moments glissing up or down
WAVEFORM – Generate a wavetable from existing sound

ANA2PVX – convert CDP analysis file to PVOC-EX file

Usage

ana2pvx inanalfile outfile.pvx

Parameters

inanalfile – input CDP analysis file (.ana)
    The suffix .ana should be included.
outfile – output (mono) PVOC-EX file (.pvx)
    The suffix .pvx should be included.

Understanding the ANA2PVX Process

ANA2PVX is an easy-to-use utility for converting an existing CDP spectral file (.ana format), as created by PVOC ANAL, to PVOC-EX format. It complements the main conversion program for PVOC-EX: PVOCEX2.

Related functions

PVOCEX2: Stereo phase vocoder based on CARL pvoc
PVOC ANAL: Convert soundfile to spectral file (.ana format)
PVOC SYNTH: Convert spectral file (.ana format) to soundfile

End of ANA2PVX


ASCIIGET – Display the contents of a text file as a list of characters with ASCII decimal code

Usage

asciiget filename

Parameters

filename – name of an ASCII textfile

Understanding the ASCIIGET Process

ASCIIGET is a utility to print the characters in a text file to the console together with the corresponding ASCII decimal code.

Musical Applications

...

End of ASCIIGET


BOUNCE – 'Bounce' a sound: accelerating repeats, decaying in level

Usage

bounce bounce inf outf count startgap shorten endlevel ewarp [-smin] [-c | -e]

Parameters

infile – input soundfile
outfile – output soundfile
count – number of bounces (repetitions) (Range: 1 to 100)
startgap – time-gap between the source start and the first repeat. (Range: 0.04 to 10")
shorten – bounce gap reduction (multiplier) from one bounce to the next. For example with 0.8, each gap would be 80% of the previous one. (Range: 0.1 to 1; lower value shortens more)
endlevel – the final level, as a fraction of the source level. (Range: 0 to 1; 1 = no decay)
ewarp – decay warp: amount of decrescendo at start (Range: 0.1 to 100; >1.0 greater, < 1.0 less)
-smin – minimum length of bounced elements, shrinking in the same proportion as the acceleration. (Range: 0-1; 0 = no shrinkage)
-c – if repeating elements overlap, cut to avoid this overlap and possible clipping.
-e – shrink elements by trimming the start (Default: trim the end.)
       WARNING: do not set both -c and -e flags.

Understanding the BOUNCE Process

Bounce repeats the whole input sound count times, with the gaps between repeats shortening on each repeat, not unlike a bouncing ball. Startgap sets the initial delay time between repeats. Shorten sets the speed of the reduction (smaller is faster) and is a multiplier: for example, with Shorten = 1 the delay time is not reduced. To achieve the bouncing effect, each repetition is reduced in level: set endlevel and the sound reduces to this level over the course of count repeats. Ewarp bends the rate of decay: <1 gives a slower rate of decrescendo at the start and >1 a faster decay. If the optional min parameter is set, the repeated elements are themselves shortened in proportion to the accelerando; min sets a minimum length for the repeated elements. If no shrinkage is wanted, the parameter should be selected and set to zero. Finally, the "no overlap" flag (-c) ensures that elements will cut off at the next repetition to avoid clipping. (This can be a problem if the source is longer than startgap and the signal has multiple overlaps.)

Musical Applications

End of BOUNCE


BROWNIAN – Generate texture of sampled elements following brownian motion in pitch and space

Usage

brownian motion 1 fi fo chans dur att dec plo phi pstart sstart step sstep tick seed [-aarange] [-mminamp] [-saslope] [-ddslope] [-l]
OR
brownian motion 2 fi fo chans dur plo phi pstart sstart step sstep tick seed [-aarange] [-mminamp] [-l]

Modes

1 Source is sampled as a waveform
2 Whole source is transposed for output events

Parameters

fi – (mono) input soundfile to be read at different speeds to generate output events
Mode 1: source must start & end at sample value 0.0: sampled as waveform.
Mode 2: source can be anything and the whole source is transposed for output events. (In mode 2, a very long source may take a very long time to finish.)
fo – output file
chans – number of channels in the output file
dur – (max) duration of output file
att* – rise time of events (Mode 1 only)
dec* – decay time of events (Mode 1 only)
plo* – bottom of pitch range (MIDI)
phi* – top of pitch range (MIDI)
pstart – initial pitch (MIDI)
sstart – initial spatial position (numbering chans 1 - N) (ignored if mono output)
step* – maximum pitch step between events
sstep – max spatial step between events (fraction of distance between channels)
tick* – (average) time between events
seed – seed (initialises random vals; gives reproducible random sequence)
-aarange* – maximum loudness step between events, in dB (Default: min=0; max=96dB)
-mminamp* – minimum loudness (Range: >0 to 96dB)
  • Default: 0 = No minimum
  • (Only comes into play if arange is > 0)
  • (If min > 0: if amp falls to -min dB, levels 'bounce' off the min value)
  • (If min = 0: no min set, and if level falls to -96dB, sound stream halts)
-l – loudspeakers arrayed in a line. (Default: arrayed in a 'circle')
Mode 1 only:
-saslope* – attack slope: < 1: rise fast then slows; > 1: rise slow then faster
-ddslope* – decay slope: < 1: fall slow then faster; > 1: fall fast then slows; slope ranges are 0.1 to 10.
All items marked with "*" can vary through time.

Understanding the BROWNIAN Process

...

Musical Applications

Brownian-controlled granular-like texture ??

End of BROWNIAN


CALTRAIN – Time-blur the upper spectral channels

Usage

caltrain caltrain inanalfile outanalfile blurfact blurabov [-llocut]

Parameters

inanalfile – input analysis file
outanalfile – output analysis file
blurfact – time over which the upper part of the spectrum is blurred (Range: 0 to end-of-file)
blurabov – Frequency above which the spectrum is blurred (Range: 0 to sample-rate/2, e.g. 22050)
[-llocut] – Frequency below which bass is cut off. (Range: 0 to sample-rate/2; default: no bass cutoff)

Understanding the CALTRAIN Process

CALTRAIN appears to be a variant of BLUR, affecting partials above a given frequency. The result is normally a roughening or distortion of the sound in its upper frequencies.

Musical Applications

End of CALTRAIN


CASCADE – Successive segments are repeat-echoed, and the echosets are superimposed on the source

Usage

cascade cascade 1-5 inf outf clipsize echos clipmax [-eechosmax] [-rrand] [-sseed] [-Nshredno -Cshredcnt -a] [-l] [-n]
OR
cascade cascade 6-10 inf outf cuts echos [-eechosmax] [-rrand] [-sseed] [-Nshredno -Cshredcnt -a] [-l] [-n]

Modes

1,6 N-channels in to N channels out: echo in the same N channels
2,7 Mono (left in output) to stereo: echo-sets pan to right.
3,8 Mono (centre in output) to stereo: echo-sets pan alternately between left and right
4,9 Mono (Ch1 in output) to 8chan: each echo steps right, to next channel.
5,10 Mono (Ch1 in outout) to 8chan: echoes of 1st echo-set step right, next set step left,etc.

Parameters

infile – input soundfile: mono except possibly in modes 1 and 6
outfile – output soundfile: Modes 1 and 6 - channels as input; Modes 2,3,7,8: stereo; Modes 4,5,9,10: 8-channel
clipsize (Modes 1-5) – duration of segments to echo. Time-variable. (Range: 0.005 to 60 sec)
OR cuts (Modes 6-10) – textfile of (successive) source cut-times, creating segments to echo. 1st cut-time must be > 0.01 secs.
echos – number of echoes, including the source (echo 1) (Range: 1 to 64; Time-variable)
clipmax – max duration of clips (time-variable).
  • clipsize now read as minimum.
  • Actual clipsize is a random value between clipsize and clipmax.
  • If clipmax is set to zero, it is ignored.
-eechosmax – maximum number of echoes (time-variable).
  • echos now read as minimum.
  • The actual number of echoes is a random value between echos and echosmax.
  • If echosmax is set to zero, it is ignored.
-rrand – randomise timesteps between echoes in the echo-set; Range: 0-1, time-variable.
-sseed – with the same non-zero value, randomised values are exactly the same on a new pass
-Nshredno – in each echo-stream cut the previous echo into shredno parts, and random-shuffle the parts to make the next echo. Range 2-16, time-variable.
-Cshredcnt – the number of shreds to do, to create the next echo element; Range: 1-16, time-variable. Both shredno and shredcnt must be set for shredding to take place.
-a – also shred the original clip. Only valid if shredno and shredcnt are set.
-l – echoes decay linearly in level (Default: log decay in which the initial decays are faster).
-n – if the output is low, normalise it. (High output is normalised by default.)

Understanding the CASCADE Process

CASCADE echoes a given segment a number of times and mixes the echoes with the original soundfile (played 'straight'). There are five mode choices, all spatial, plus the ability to select the echo segment by size (clipsize) or from a list of cut-times (cuts), giving 10 modes overall.

The segment size (Modes 1-5) is set by clipsize or randomly between this and clipmax. Similarly, the number of repetitions is set by echos or randomly between this and echomax. Shredno, shredcnt and the -a flag "shred original clip" offer possibilities to garble the segments and echoes.

Musical Applications

The program is an alternative to EXTEND ITERATE, MODIFY REVECHO 3 (stadium echo), and MODIFY REVECHO 1/2 (delay line). CASCADE adds the unusual ability to select the segments and spatialise and/or shred the echoes.

End of CASCADE


CLICKNEW – Make clicktrack using times listed in textfile

Usage clicknew clicks outfile clicktimes_datafile srate

Parameters

outfile– output click track soundfile
clicktimes_datafile– text file of times
srate– sample rate of output soundfile
         LEGAL SRATES are 16000, 22050, 32000, 44100, 48000, 88200 and 96000

Understanding the CLICKNEW Process

CLICKNEW produces a series of short clicks, at the times specified in the clicktimes data file. There is no variation in the length or volume of the clicks produced, and no implied metre or tempo. One drawback of the program could be the requirement to specify every single time. (An ancillary program to generate these for any given duration and tempo, could be a useful addition.)

The process may be compared with the more elaborate synth clicks.

Musical Applications

...

End of CLICKNEW


CLIP – Clip a signal

Usage

clip clip 1 infile outfile level
clip clip 2 infile outfile fraction

Modes

1  Clip signal at specified_level
2  Clip half-waveforms at specified_fraction

Parameters

infile – input soundfile
outfile – output soundfile
level – level in original signal at which to clip (Range: 0 to 1)
         An error message is given if none of the original signal exceeds level.
fraction – fraction of original signal at which to clip (Range: 0 to 1; 1= no change)

Understanding the CLIP Process

Clipping a signal cuts off the top of the waveform when the level exceeds 100%, introducing distortion. CLIP produces this distortion at lower signal levels.

In Mode 1, level sets the level at which to clip the signal. This acts as a gate value: if too high, an error message may remind the user that the signal never reaches that level. If set lower, the signal is raised (or appears to be raised) so that all values that exceed that level are clipped. (In many cases, this may not result in an obvious distortion, because most of the signal may be unclipped.)

In Mode 2, half-waveforms are clipped at a given fraction of the original. This seems to give a more obvious distortion, even though the signal level appears to change little. Again, a lower value produces more clipping and more distortion.

Musical Applications

...

End of CLIP


CRUMBLE – Project segments spatially over progressively smaller groups of channels

Usage

crumble sound 1 infile outfile stt dur1 dur2          orient size rand iscat oscat ostrch pscast seed [-ssplce] [-ttail]
crumble sound 2 infile outfile stt dur1 dur2 dur3 orient size rand iscat oscat ostrch pscast seed [-ssplce] [-ttail]

Modes

1 8-channel output
2 16-channel output (mode faulty at time of writing)

Parameters

infile – input soundfile (MONO)
outfile – output soundfile (MULTI-CHANNEL)
stt – start time of crumbling (Range: 0 to <filelength)
dur1 – duration of section where signal is split into 2 images (secs)
dur2 – duration of section where signal is split into 4 images (secs)
dur3 – (Mode 2) duration of section where signal is split into 8 images (secs)
orient – channel around which input first split (1-8 or 1-16 Mode 2):
    input image first splits onto 2 blocks each of ochans/2 adjacent chans
   (1) orig. chan. with adjacent clockwise channels
   (2) remaining channels
size* – average duration of cut segments (secs)
rand* – randomisation of segment size. (Range: 0 to 1)
   Value 1 modifies size randomly between size/2 and (3*size)/2
iscat* – scatter start-time (in source) of next segment. (Range: 0 to 1)
  • Cut-time in source always advances
  • With no scatter, step to next cut-time minus the length of the previous segment cut.
  • With maximum iscat (i.e. 1), step by random time between 0 and the previous-seglen.
oscat* – scatter time-placement (in output) in range used. (Range: 0 to 1)
  • Time in output always advances.
  • With no scatter, the step to the next output-time = the length of the last segment cut.
  • With maximum oscat (i.e. 1), step by random time between > 0 and the previous-seglen.
ostrch* – stretch time-placement in output. (Range: 1 to 64)
  • The step to the next segment-placement in the output is multiplied by ostrch
  • ostrch > 1 should generate silent gaps in the output.
pscast* – pitch variation of output segments (Range: 0 to 12 semitones)
seed – same seed value gives identical output on successive process runs.
-ssplce –length of splices which cut the segments (Range: 2 to 50 mS)
-ttail* – length of any exponential tail on segments (Range: 0 to 1000 mS;
Parameters marked with '*' can vary over time (i.e., time in the outfile).

Understanding the CRUMBLE Process

CRUMBLE projects mono segments over progressively smaller groups of channels in multi-channel space, with possible timestretch. Specifically, it projects the source onto all channels, then segments it and distribute the segments over smaller and smaller groups of channels.

The choice is limited to 8-channel or 16-channel output, but this can be reduced afterwards by PAIREX (extract stereo pairs) or CHANNELX (extract single chans) plus optional interleaving (INTERLX).

Musical Applications

...

End of CRUMBLE


CRYSTAL – Generate N sound-events based on the position of N vertices of a crystal, then rotate the crystal in 3-D space and generate another group of N events, etc.

Usage

crystal rotate 1-10 infile1 [infile2 infile3 ...] fo vdat rota rotb twidth tstep dur plo phi [-ppass -sstop] [-afatt] [-Pfpresc] [-Ffslope] [-Ssslope]

Modes

1 Mono output
2 Stereo output
3 Two channels of 8-channel output, spaced by a single channel (here, channels 1 and 3)
4, 5, 6 Ditto, channel-pair steps clockwise, anticlockwise or randomly beteween groups-of-events
7, 8, 9 Ditto, but pairs of channels are adjacent (e.g., 1,2 or 5,6)
10 Stereo output: each set-of-vertices are output as a separate soundfile.

Parameters

infile(s) – One MONO infile, multiply-read (with delay), generating out-events
   OR
   N MONO infiles, generating different events for N vertices
outfile(s) – output file(s), see Modes.
fo – generic name for output files
vdat – data file containing:
   (1) Triples, being (initial) X,Y,Z coordinates of crystal vertices.
      Range: > -1 to < 1. Xsquared + Ysquared +Zsquared < 1 for all vertices
   (2) Time-value pairs defining an envelope to be imposed on sound events.
      Times start at 0 and increase. Final time = duration of events.
      Value range: 0 to 1. First and last values must be zero.
rota, rotb – rotate speed in xy_plane and xz_plane, revolutions per second. (Range: -10.00 to 10.00)
twidth – max time between onsets of first and last event of any N-events group
tstep – time-step between each sampling of all N vertices of rotating-crystal
dur – total duration of output (must be greater than 'tstep' and 'twidth')
plo, phi – minium and maximum (MIDI) pitch of any event
-ppass, -sstop – Pass + stop bands (in Hz) for lopass filter: stopfrq - passfrq >= to Hz
-afatt – max attenuation produced by filter-stop (dB). (Range: 0 to -96)
-Pfpresc – gain applid to attenute source before applying filter (Range: 0 to 1)
-Ffslope – slope curve mixing filtered to unfiltered sound (depth). (Range: 0.10 to 10.00). 'Slope' = 1 for a linear slope.
-Ssslope – slope curve mixing transposed sound to original (close). (Range: 0.10 to 10.00) 'Slope' = 1 for a linear slope.
outcnt – number of rotated-sets to output. [NB: not shown on commandline and don't know where it should go.]

Understanding the CRYSTAL Process

About the coordinates:

  • X coord –> time and, if stereo, space-position
  • Y coord –> pitch
  • Z coord –> brightness, i.e., Z-far sounds are lopass-filtered and mixed to original; Z-close sounds move 8va up and are stacked on the original

Musical Applications

...

End of CRYSTAL


DISTCUT – Cut sound into elements with falling envelope

Usage

distcut distcut 1 infile generic_outfilename cyclecnt exp [-climit]
OR
distcut distcut 2 infile generic_outfilename cyclecnt cyclestep exp [-climit]

Modes

1 Waveset-groups are adjacent
2 Set gap between waveset-groups

Parameters

infile – input soundfile (MONO)
outfile – output soundfile
cyclecnt – number of wavesets in each outfile (Range: 1 to 1000, up to the number in the infile.)
cyclestep (Mode 2) – number of wavesets steps from start of one group to start of next. (Range: 1 to 1000, up to the number in the infile.)
  (In mode 1 : cyclestep = cyclecnt: waveset-groups are abutted and disjunct)
exp – envelope decay shape: 1 = linear, >1 = more rapid decay, <1 = less rapid decay
-climit – minimum level of output events to accept (in dB, e.g. 70 = -70dB).

Understanding the DISTCUT Process

DISTCUT cuts segments from the infile, producing multiple outputs, each with a falling envelope. Segment lengths are set by groups of wavesets (cyclecnt), defined by zero-crossings. The decay creates enveloped segments that do not end abruptly.

In Mode 1, segments are consecutive, wherease in Mode 2 they are separated by cyclestep, which is the number of cycles from the start of one segment to the start of the next. The optional parameter limit sets a gate level above which the segment must rise to be accepted.

DISTCUT is is closely related to ENVCUT, which extracts segments to a given length, also with a falling envelope.

Musical Applications

DISTCUT may have uses in creating segments for TEXTURE, or for other creative mixes derived from the same material.

End of DISTCUT


DISTMARK – Interpolate between waveset-groups at marked points

Usage

distmark distmark 1 infile outfile marklist unitlen [-ststretch] [-rrand] [-f] [-t]
distmark distmark 2 infile outfile marklist unitlen [-ststretch] [-rrand] [-f]

Modes

1 Interpolate between waveset-groups at marked points
2 Interpolate within alternate marked blocks

Parameters

infile – input soundfile (MONO)
outfile – output soundfile (MONO)
marklist – list of times within source at which to find waveset-groups
unitlen – approximate size of waveset group to find (mS); can vary over time. (Range: 0.5 to 1000 mS)
Minimum unitlen < ½ of minimum step between times in marklist
-ststretch – timestretch distances between marks, in making output. (Range: 1 to 256)
-rrand – randomise duration of interpolated wavesets (Range: 0 to 1)
Randomisation decreases waveset lengths (heard 'pitch' is higher).
-f – Flip phase of alternate wavesets
-t – Add original (remaining) tail of source sound to output

Understanding the DISTMARK Process

DISTMARK interpolates between wavesets at marked times (marklist textfile). The aural effect of this is a stream of short repeated segments, with one block merging into the next block. Mode 2 interpolates within alternate marked blocks.

Unitlen sets the approximate size of the waveset group to find and hence the speed of repetition. Setting this too high may produce the CDP Error "Invalid Data". This is caused by infringing the rule that unitlen must be < ½ the minimum step between times in the marklist. If unitlength is very short (e.g. 20mS), the effect is more like synthesis, or LOOP with a short progression time, and typically with a rather buzzy quality.

Tstretch stretches the overall output length of the process.

Musical Applications

...

End of DISTMARK


DISTMORE – A group of additional waveset distortion programs

Sub-Group of 4:
DISTMORE BRIGHT   DISTMORE DOUBLE   DISTMORE SEGSBKWD   DISTMORE SEGSZIG

Usage

distmore NAME (mode) infile outfile (parameters)
where NAME can be any one of: bright double segsbkwd segszig
Type distmore bright for the Usage of distmore bright .. etc.

DISTMORE BRIGHT – Reorder sound segments in order of average zero-crossing rate

Usage

distmore bright 1-3 infile outfile marklist [-ssplicelen -d]

Modes

Extract data ...
1 From Heads, & from Tails cut to segments, size approx equal to Heads
2 From Heads and Tails, as defined by marklist
3 From Tails only

Parameters

infile – input mono soundfile
outfile – output mono soundfile
marklist – a list of timemarks in source, marking (paired) Heads and Tails, e.g.: consonant onset, and vowel continuation of source. (It is assumed that the first mark is at a Head segment.)
-ssplicelen – length of splice. (Range: 2 to 15 mS)
-d – output in decreasing order of brightness. (Default: increasing)

Understanding the DISTMORE BRIGHT Process

DISTMORE BRIGHT is one of many processes using wavesets – pseudo-cycles based on zero-crossings. In this process, it re-orders elements based on the average zero-crossing rate.

Segments are selected from a datafile list of times (marklist). These are paired into what are called 'Heads' and 'Tails': a Head is taken to mark a 'consonant' onset in the source and a Tail its 'vowel' continuation. The first mark is assumed to start a Head segment. At least two pairs of time-values must be given.

Note that the -d flag produces a different order of segments.

Musical Applications

The process can be an effective way of re-ordering the elements in a sound. It is useful for the list of times to match the onset of events in the source soundfile. For vocal sounds, this would normally be the start of each syllable; in a melodic sequence, the start of each note; for drumming, the start of each beat or drumstroke, etc. The program then successfully re-orders the segments, splicing them together.

End of DISTMORE BRIGHT


DISTMORE DOUBLE – Double (quadruple etc.) frequency of each waveset

Usage

distmore double infile outfile mult

Parameters

infile – input soundfile (MONO)
outfile – output soundfile (MONO)
mult – octave step up (Range: 1 to 4 octaves, possibly fractional)

Understanding the DISTMORE DOUBLE Process

DISTMORE DOUBLE is a variant of DISTORT MULTIPLY. Like the latter program, wavesets (pseudo-wavecycles) are raised in frequency. However, depending on the material, the perceived pitch may remain the same, but with an altered brightness.

Musical Applications

...

End of DISTMORE DOUBLE


DISTMORE SEGSBKWD – Reverse certain (sets of) segments

Usage

distmore segsbkwd 1-9 infile outfile marklist

Modes

1 Reverse Tails
2 Reverse Heads
3 Reverse Head+Tail pairs
4 Reverse Head & Tail+Head+Tail set
5 Reverse Head+Tail+Head+Tail set
6 Reverse Head & Tail+Head+Tail+Head+Tail set
7 Reverse Head+Tail+Head+Tail+Head+Tail set
8 Reverse Head & Tail+Head+Tail+Head+Tail+Head+Tail set
9 Reverse Head+Tail+Head+Tail+Head+Tail+Head+Tail set

Parameters

infile – input soundfile (MONO)
outfile – output soundfile (MONO)
marklist – a list of timemarks in source, marking (paired) Heads and Tails, e.g., consonant onset, and vowel continuation of source. It is assumed that the first mark is at a Head segment.

Understanding the DISTMORE SEGSBKWD Process

The process reverses selected segments given in a datafile list of times (marklist). The times are paired into what are called Heads and Tails: a Head typically marks a consonant onset in the source and a Tail its vowel continuation. It is assumed that the first mark is at a Head segment. At least two pairs of time-values must be given. The various modes offer a wide range of Head and Tails combinations.

As with DISTMORE BRIGHT, the Head and Tails principle can be applied to different types of material, such as vocal syllables, notes in a melodic sequence, or drum beats.

A similar process DISTORT REVERSE also reverses groups of wavesets, but using a given number of wavecycles. DISTMORE SEGSBKWD produces more coherent segments by identifying them by times.

Musical Applications

DISTMORE SEGSBKWD is a reasonably effective way of reversing the elements in a sound, without reversing their order. If followed by modify radical 1 (REVERSE), the elements are played forwards, as in the source, but the order of elements is reversed.

End of DISTMORE SEGSBKWD


DISTMORE SEGZIG – Zigzag across tail segments or across whole soundfile

Usage

distmore segszig 1 infile outfile marklist repets [-sshrinkto] [-pprop] [-l]
distmore segszig 2 infile outfile repeats [-sshrinkto] [-pprop] [-l]
distmore segszig 3 infile outfile repeats dur [-sshrinkto] [-pprop]

Modes

1 Zigzag across tail segments of a soundfile while playing it
2 Zigzag across entire soundfile
3 Zigzag across entire soundfile, specifying proportion of tail to use

Parameters

infile – input soundfile
outfile – output soundfile
marklist (Mode 1) – a list of times in source, marking (paired) Heads and Tails, e.g. consonant onsets, and vowel continuations in source. (The first mark is assumed to be a Head segment). In Modes 2 and 3, the whole file is processed.
repeats – number of zigzags. (Range: 1 to 64; can vary over time)
-sshrinkto – if set to zero, has no effect. Otherwise Zigzags contract to minimum size minsiz in mS (Range 31 upwards).
dur (Mode 3) – duration of zig-zagged output (secs). (Range: from repeats+1 x File-length to 64 x infile-length)
-pprop – proportion of Tail to use. Default: all of it. (Can vary over time)
CARE: If the length of used-portion of any particular tail is too short, (less than shrinkto size), zigs for that tail will not shrink.
-l – shrink zigs logarithmically (Default: linear shrink)

Understanding the DISTMORE SEGSZIG Process

DISTMORE SEGSZIG applies the idea of zig-zagging within a soundfile to waveset groups. Zig-zagging (see esp. EXTEND ZIGZAG) involves playing a segment forwards and then backwards. Like other processes within the DISTMORE program (BRIGHT and SEGSBKWD), this function can use (in Mode 1) a list of times that are assumed to represent paired Heads and Tails of vocal sounds: a Head typically marks a consonant onset in the source and a Tail its vowel continuation. At least two pairs of time-values must be given and the first marker is taken to be a Head segment. Repeats sets the number of repeats required (including the reversal). Dur (Mode 3 only) sets the outfile-length. The optional parameter shrinkto allows the zigzags to shrink to a minimum size, while prop optionally allows less than 100% of the tail to be used.

Musical Applications

As with DISTMORE BRIGHT and SEGSBKWD, the Head and Tails principle can be applied to different types of material, such as vocal syllables, notes in a melodic sequence, or drum beats. It is useful to give the start times of these elements for Mode 1, but similar segments are extracted in an "intelligent" way in Modes 2 and 3.

End of DISTMORE SEGSZIG


DISTORTT – Repeat wavesets within given duration

Usage

distortt repeat infile outfile gpcnt rpt offset dur [-t]

Parameters

infile – input soundfile (MONO)
outfile – output soundfile (MONO)
gpcnt – number of wavesets in the group to be repeated.
rpt – number of repetitions of each waveset group.
offset – time to skip before starting waveset process: sound in offset is prefixed before the processed sound.
dur – required duration of output.
-t – telescope: skip wavesets so output is of similar size to input.

Understanding the DISTORTT Process

DISTORTT is a variant of DISTORT REPEAT and DISTREP. In this case, the outfile length is specified directly, rather than as a number of wavesets. However, setting the -t flag produces an outfile of similar length to the infile, by skipping some wavesets.

The offset parameter specifies how much of the source sound to keep before starting the process.

Musical Applications

End of DISTORTT


DISTREP – Timestretch soundfile by repeating wavesets

Usage

distrep distrep mode infile outfile multiplier ccyleccnt [-kskipcycles] [-ssplicelen]

Modes

1 Timestretch file by repeating 'wavecycles'
2 Repeat 'wavecycles', but skip cycles to avoid timestretch

Parameters

infile – input soundfile (MONO)
outfile – output soundfile (MONO)
multiplier – no. of times each wavecycle (group) repeats. (Range: 2 to 32767, integer)
cyclecnt – (integer) is the number of wavecycles in repeated groups. (Range: 1 to 32767)
-kskipcycles – number of cycles to ignore (skip over) at start of file. (Range: 0-32767)
-ssplicelen – mS splices of repeated blocks (Range: 0-50 mS; default 15 mS)

multiplier and cyclecnt may vary over time

Understanding the DISTREP Process

DISTREP is an updated version of DISTORT REPEAT, with the option of added splices between repeated blocks.

The repetition of the 'wavecycles' stretches out the sound, making it both longer and more granular in texture. This granularity is increased if (increasingly larger) groups of cyclecnt 'wavecycles' are used: then the whole group repeats multiplier times.

Musical Applications

Like DISTORT REPEAT, DISTREP produces long, grainy (distorted) sounds. The sense of stretching out the original is very apparent.

As noted with DISTORT REPEAT, using a small group of cycles (e.g. 10 or less) and a large-ish number of repetitions (e.g. 10-20), arbitrary melodies can arise. These could then be quantised to a given scale with REPITCH QUANTISE.

End of DISTREP


DISTSHIFT – Time-shift or swap wavecycles

Usage

distshift distshift 1 infile outfile grpcnt shift
distshift distshift 2 infile outfile grpcnt

Modes

1 Shift alternate (groups of) half-wavecycles forward in time
    (wrapping back around zero-time if pushed beyond sound end)
2 Swap alternate half-wavecycle (groups)

Parameters

infile – input soundfile (MONO)
outfile – output soundfile (MONO)
grpcnt – size of elements to operate on:
1 = single half-waveset
2 = 1 waveset + single half-waveset
3 = 2 wavesets + single half-waveset
   etc.
(Range: 1 to 32767)
shift – move alternate groups forward by shift waveset(group)s. (Range: 1 to 32767)

Understanding the DISTSHIFT Process

DISTSHIFT shifts alternate wavesets (pseudo-wavecyles) in time or swaps them. The time-shift is expressed as a number of half-cycles, which can vary from source to source. Large group sizes create fairly random and radical exchanges of material.

Musical Applications

...

End of DISTSHIFT


DISTWARP – Warp wavecycles by a multiplier

Usage

distwarp distwarp 1 infile outfile warp
distwarp distwarp 2 infile outfile warp wavesetcnt

Modes

1 Warp-multiplier increments samplewise
2 Warp-multiplier increments wavesetwise.

Parameters

warp – (progressive) sample multiplier (Range: 0.0001 to 0.1).
wavesetcnt – the number of wavesets after which the warp value increments (Range: 1 to 100)

Understanding the DISTWARP Process

DISTWARP warps by applying a multiplier, either to each sample or to groups of wavesets. It appears to emphasise amplitude (to be confirmed). In Mode 1 (samplewise), it can produce a distinct pitch - especially towards the top of the warp range – this can be varied over time. In waveset mode, the groups are accented and distorted.

Musical Applications

...

End of DISTWARP


DVDWIND – Shorten a sound by read, skip, read, skip procedure

Usage

dvdwind dvdwind infile outfile contraction clipsize

Parameters

infile – input soundfile
outfile – output soundfile
contraction – time-contraction of the input (> 1; Range: >1 to 3600)
clipsize – duration of each retained clip; should be less than the original file-length. (Range: 10 to 2000 mS)

Understanding the DVDWIND Process

DVDWIND shortens the sound by skipping portions, simulating the way information is skipped in a CD/DVD when fast-forwarded.

Musical Applications

...

End of DVDWIND


ENVCUT – Cut sound into elements with falling envelope

Usage

envcut envcut 1 infile generic_outfilename envlen attack exp [-climit]
OR
envcut envcut 2 infile generic_outfilename envlen step attack exp [-climit]

Modes

1 Segments are adjacent
2 Segments are separated by step

Parameters

infile – input soundfile
generic_outfilename – root name for output soundfiles
envlen – duration of each outfile
step (Mode 2) – timestep between start of each envelope cut.
   (In Mode 1 envlen = step: cut-segments abutted and disjunct).
attack – envelope attack duration (Range: 0 to 500mS); must be < than half envelope duration
exp – envelope decay shape. (Range: 0.02 to 50; 1 linear, >1 more rapid decay, < 1 less rapid decay)
-climit – minimum level of output events to accept (Range: 0 to 96dB; value 70 = -70dB)

Understanding the ENVCUT Process

ENVCUT is closely related to DISTCUT, which cuts segments in groups of wavesets (according to zero-crossings), also with a falling envelope. This process may have uses in creating segments for TEXTURE, or for other creative mixes derived from the same material.

Musical Applications

...

End of ENVCUT


ENVSPEAK – Process speech 'syllables'

Usage

envspeak envspeak 1,5,6 infile outfile wsize splice offset repet rand
envspeak envspeak 2 infile outfile wsize splice offset
envspeak envspeak 3-4 infile outfile wsize splice offset attencnt dbatten
envspeak envspeak 7 infile outfile wsize splice offset div rand which [-z]
envspeak envspeak 8-9 infile outfile wsize splice offset repet rand ratio
envspeak envspeak 10 infile outfile wsize splice
envspeak envspeak 11 infile outfile wsize splice seed
envspeak envspeak 12 infile outfile wsize splice Nwise
envspeak envspeak 13-24 AS ABOVE BUT replace wsize by cutsfile
envspeak envspeak 25 infile outfile timesfile

Modes

1, 13  Repeat each 'syllable' repet times.
2, 14  Reverse-repeat: each syllable played forwards then backwards
3, 15  Attenuate N in N+1 syllables 4, 16  Attenuate all in every attenct+1 segments, except attencnt
5, 17  Repeat each syllable N times, shrinking from end 6,18  Repeat each syllable N times, shrinking from start
7,19  Divide each syllable into N parts and repeat one of these N times
8,20  Repeat each syllable, shortening each repetition, lopping-off end
9,21  Repeat each syllable, shortening each repetition, lopping-off start
10,22  Extract all syllables
11,23  Randomly reorder syllables
12,24  Reverse-order syllabless N-wise (e.g., for N=3 abc|def|ghi becomes cba|fed|ihj)
25  Remove silent gaps at indicated times

Parameters

infile – input soundfile
outfile – output soundfile
wsize (Modes 1-12) – size of envelope-search window (Range: 5-1000 mS; default: 50mS)
or
cutsfile(Modes 13-24) – list of times (apart from 0 & end) where the infile is cut to create syllables
splice – splice length (Range: 2-100 mS; default 15mS)
offset – number of initial peaks to output unchanged (Range: 0 to 100)
repet – number of repetitions of each syllable (Range: 2 to 100)
attencnt – groupsize (N) of syllabless to attenuate (Mode 3) or NOT to attenuate (Mode 4)(Range: 1 to 100)
    N means N in N+1 : so '1' means 1 in 2, '3' means 3 in 4 etc.
dbatten (Modes 3-4) – reduce attenuated segments by atten dB: (Range: -96dB to < 0dB)
div (Mode 7) – keep 1/divth part of syllable, to repeat div times (Range: 1 to 100)
which (Mode 7) – which syllable-fraction to keep (Range: 1 to div)
rand – randomisation of lengths of repeated units (Range: 0 to 1)
-z (Mode 7) – repeated elements do NOT grow in size (machine-like quality)
ratio (Modes 8,9) – length of repeated elements reduces by ratio. (Range: > 0.0 to 1)
nwise (Mode 12) – reverse order in groups of N syllables (Range: 1 to 100)
seed(Mode 11) – intialisation for random order permutation;
    if seed > 0, using the same seed again gives IDENTICAL random output
repet, attencnt, atten and which may vary over time
timesfile (Mode 25 only) – times used to remove silent gaps in source sound.

Understanding the ENVSPEAK Process

ENVSPEAK manipulates segments cut from the source. The aim is clearly to process vocal syllables, but any segments may be used. These are found by envelope (Modes 1-12) or by cut times (Modes 13-24). The modes cover a diverse range of options to manipulate segments: from simple repetition of segments to reversal, attenuation, shrinking and random selection. Note that Mode 10 extracts segments to separate files, numbered (+001, 002... wav). This option may be more useful if the Cut-Times version is used.

If Cut-Times are used (Modes 13-24), care should be taken not to make the gaps too short in the times-file. (The program tends to generate an error-message to the effect that SPLICE is too long, but even reducing this to the minimum doesn't cure the issue, which is currently unresolved.)

Mode 25 is a later addition, in which silent gaps can be removed, assuming one can identify their start and end times. (It's not clear yet whether this is a single list of times, or pairs of start-end times.)

Musical Applications

...

End of ENVSPEAK


FLATTEN – Equalise level of sound elements

Usage

flatten flatten infile outfile elementsize shoulder [-ttail]

Parameters

infile – input soundfile (MONO)
outfile – output soundfile (MONO)
elementsize – approx size of elements (e.g. syllables) in source. (Range: 0.001 to 100).
shoulder – rise time in segment to changed level (mS). (Range: 20 to elementsize/2)
               It will never be longer than the distance from the segment edge to its peak.
-ttail – portion of the end of the sound to be treated as a whole segment. (Range: 0 to < duration)

Understanding the FLATTEN Process

FLATTEN aims to even out the peaks in the sound to the same level. It is advisable to set the rise time (shoulder) to the minimum value at first and increase it gradually to an acceptable output level, which gets progressively quieter.

A common CDP Error message is "Minimum window not set", as if there is a missing parameter (there isn't).

There is already a CDP function to flatten the envelope: see ENVEL WARP 7, though this is not as effective as FLATTEN for vocal sounds.

Musical Applications

...

End of FLATTEN


FOFEX – Operations using pitch-synchronous grains (FOFs) to (re)construct soundfiles
A sub-Group of two:   FOFEX EXTRACT    FOFEX CONSTRUCT

Usage

fofex NAME (mode) infile outfile parameters:
where NAME can be any one of
extract    construct

Type fofex extract for more info on fofex extract..etc.

FOFEX EXTRACT – Extract FOFs to a file or to separate soundfiles

Usage

fofex extract 1 infile outfiles 0 pitch-brkpnt-data minlevel fofcnt [-w]
OR
fofex extract 1 infile outfiles excludefile pitch-brkpnt-data minlevel fofcnt [-w]

fofex extract 2 infile outfile pitch-brkpnt-data time
fofex extract 3 infile generic_outfile_name pitch-brkpnt-data minlevel fofcnt [-w]

Modes

1 All FOF(group)s extracted to special FOF-file, to use with FOFEX CONSTRUCT
2 A single FOF(group) is extracted
3 All FOF(group)s are extracted to separate soundfiles

Parameters

infile – input soundfile
outfile(s) – output binary FOF file or to soundfiles
OUTPUT OF MODE 1 is:
1) a fofbank soundfile containing extracted FOFs in ascending pitch order
2) a fofinfo textfile of position of (semitone) pitchsteps in soundfile
pitch-brkpnt-data – a breakpoint file of time hertz pairs, created by PTOBRK .
The file may contain zeros (indicating moments of no-signal) but NOT pitch-zeros (indicating moments of no-pitch). It must contain SOME significant frequency information.
excludefile (Mode 1) – text file of pairs of times as sample-counts, defining areas in the source from which FOFs will NOT be extracted (i.e. sample-count at start of passage and sample-count at end of passage).
minlevel – level in dBs below the level of loudest FOF found, below which FOFs are rejected. NB Zero means no FOFS are rejected.
fofcnt – size of FOF group to extract
time (Mode 2) – time in file at which to extract FOF(group)
-w – FOFs are windowed (cosine smooth of edges)

Understanding the FOFEX EXTRACT Process

Note that this process is paired with FOFEX CONSTRUCT (see below). Suitable applications have yet to be determined.

To determine time as sample-count (for Mode 1's excludefile), see the utility SNDINFO TIMESMP

Musical Applications

End of FOFEX EXTRACT


FOFEX CONSTRUCT – Superimpose FOFs to make output FOF

Usage

fofex construct 1 fofbank outfile fofinf pbrk env gain f1
fofex construct 2-5 fofbank outfile fofinf pbrk env gain [-n]
fofex construct 6 fofbank outfile fofinf pbrk env gain f1 f2 minf maxf [-n]
fofex construct 7 fofbank outfile fofinf pbrk env gain f1 f2 f3 minf maxk minl maxl [-n]

Modes

1 Use 1 FOF only
2 All FOFs superimposed to make output FOF
3 Low FOFs superimposed to make output FOF
4 Midrange FOFs superimposed to make output FOF
5 High FOFs superimposed to make output FOF
6 Use 2 FOFs,varying weighting with pitch of output
7 Use 3 FOFs,vary weighting with pitch & level of output

Parameters

fofbank – soundfile of extracted FOFS created by FOFEX EXTRACT
outfile – output soundfile [or FOF-file?]
fofinf – a textfile with position of pitchsteps in soundfile, also created by the FOFEX EXTRACT
pbrk – breakpoint file of time hertz information, created by PTOBRK.
(May contain zeros (no-signal) but NOT pitch-zeros (no-pitch). Must have SOME freq. info.)
env – breakpoint-Envelope file, as text
gain – output gain
f1(f2 f3) – in mode 1, FOF to use, (lowest=1).n
In modes 6,7 use specifically numbered FOFs
minf maxf – minimum and maximum frequencies for variation of the internal FOF balance
minl maxl – minimum and maximum levels (0-1) for variation of the internal FOF balance
-n – set all FOFs to same level before synthesis

Understanding the FOFEX CONSTRUCT Process

This process is paired with FOFEX EXTRACT (see above).
Suitable applications have yet to be determined.

Musical Applications

...

End of FOFEX CONSTRUCT


FRACTAL – Fractally distort a sound or spectrum

Usage

fractal NAME (mode) infile outfile parameters
where NAME can be any one of
wave    spectrum

Type 'fractal wave' for more info on fractal wave option...etc.

FRACTAL WAVE – Fractally distort an input sound or wavecyle

Usage

fractal wave 1 inf outf shape [-mmaxfrac] [-tstr] [-iwarp] [-s] [-o]
fractal wave 2 inf outf shape dur [-mmaxfrac] [-tstr] [-iwarp] [-s]

Modes

1 Fractally distort soundfile by transposition
2 Generate fractal wave from (mono) input wavecycle

Parameters

infile(Mode 1) – input soundfile (1 or more channels)
or (Mode 2) wavecycle (such as that generated by WAVEFORM
outfile – output soundfile
shape – breakpoint textfile of:
  • (Mode 1): time and transposition pairs, defining the contour of the largest fractal shape
    Time: 0 to file-length (secs); transposition: -12.0 to +12.0 (semitones)
  • (Mode 2) time and MIDI-pitch pairs, defining the contour of the largest fractal shape.
    Times start at zero and increase; final time indicates duration of pattern; MIDI: 0 to 127 (value at final time is ignored)
dur (Mode 2) – Output duration (Range: 1-7200 secs)
-mmaxfrac – maximum degree of fractalisation (time-variable). If not set (or zero), fractalisation proceeds until the minimum possible wavelength is reached.
     Range: 0-1000, but 10 is a safer maximum to avoid "too high MIDI pitch" error.
-tstr – time stretch of fractal pattern (time-variable) Range: 1.0 to 2.0. If zero, no timestretching is done.
-iwarp – interval warping of fractal pattern (time-variable). If set to zero, no warping is done.
-s – shrink pitch-intervals as fractal time-scales shrink
-o – breakpoint data read using time in outfile (Default: use time in infile).

Understanding the FRACTAL WAVE Process

In Mode 1, FRACTAL WAVE distorts the whole soundfile by adding transposed versions of shape data. In Mode 2, where the input is a wavecycle, it generates fractals using MIDI-pitch data (in shape) to define the pitch shape. Both versions of the shape are timed. Transposition happens over the total duration specified in shape and is then repeated over every resulting sub-unit of the pattern, over every sub-sub-unit, etc. until the smallest time-unit is reached.

The process may best be understood by taking a steady-pitched source and experimenting first with Mode 1, then extracting a wavecycle from the source using WAVEFORM and applying it to Mode 2.

In Mode 1, the output length is conditioned by the infile; in Mode 2, it is supplied by the user (dur). The fractal pattern may optionally be timestretched (str) and/or interval-warped (warp).

SEE ALSO: the spectral version FRACTAL SPECTRUM.

Musical Applications

...

End of FRACTAL WAVE


FRACTAL SPECTRUM – Fractally distort spectrum by transposition

Usage

fractal spectrum infile outfile shape dur [-mmaxfrac] [-tstr] [-iwarp] [-s] [-n]

Parameters

infile – input analysis file
outfile – output analysis file
shape – breakpoint textfile containing time-semitone transposition pairs, defining the contour of the largest fractal shape.
     Times must start at zero and increase, with the final time defining the duration of the pattern.
     Pitch range: -12 to 12 semitones; the value at the final time is ignored.
-mmaxfrac – maximum degree of fractalisation (time-variable). If not set (or zero), fractalisation proceeds until the minimum possible wavelength is reached. (Range: 0 to 1000)
-tstr – time stretch of fractal pattern (Range: 0, or 1 to 2; time-variable). If set to zero, no timestretching is done.
-iwarp – interval warping of fractal pattern (Range: 0 to 8; time-variable). If set to zero, no warping is done.
-s – shrink pitch-intervals as fractal time-scales shrink
-n – transposition only (Default: retain formant envelope)
[Query: is there a dur parameter as in WARP?]

Understanding the FRACTAL SPECTRUM Process

FRACTAL SPECTRUM is a spectral version of FRACTAL WAVE, distorting the spectrum fractally by transposition. The breakpoint file shape defines a time and transposition contour; transposition happens over the total duration of this and is then repeated over every resulting sub-unit of the pattern, over every sub-sub-unit, etc. until the smallest time-unit is reached.

The other parameters are optional. Maxfrac sets the degree of fractalisation, which otherwise proceeds until the minimum possible wavelength is reached; str time-stretches the fractal pattern, but not the sound. warp distorts the intervals defined in the shape pattern.

The process may best be understood by experimenting with a steady-pitched source and selecting the tranposition-only flag (-n). A burst of tones is produced at high speed, as defined by the shape datafile. This is not unlike the sister process FRACTAL WAVE (but faster). If the (-n) flag is then unset, the source's formant envelope is retained. With a speech source, the voice retains its overall integrity, but with pitch fluctations caused by the fractal transpositions.

Musical Applications

See also the soundfile version FRACTAL WAVE.

End of FRACTAL SPECTRUM


FTURANAL – Automatic feature extraction from an analysis file
Sub-Group of 2: FTURANAL ANAL FTURANAL SYNTH

Usage

fturanal NAME (mode) infile outfile (parameters)
where NAME can be any one of
anal    synth

Type fturanal anal for more info on anal option.. ETC.

FTURANAL ANAL – Extract spectral features from an analysis file and output to a textfile

Usage

fturanal anal 1 inanalfil outfeaturefil marklist [-rrand]
fturanal anal 2-3 inanalfil outfeaturfile marklist

Modes

Extract data ...
1 From Heads, & from Tails cut to segments, size approx equal to Heads
2 From Heads and Tails, as defined by marklist
3 From Tails only.

Parameters

inanalfile – input analysis file
outfeaturefile – textfile containing spectral data
rand – randomise timing of Tail segments (Range: 0 to 1)
outfeaturefile – the outfile is a list of ...

    (a) Segment start-times (+ duration of source).
    (b) (Median) Frequency of 1st formant.
    (c) (Median) Frequency of 2nd formant.
    (d) (Median) Frequency of 3rd formant.
    (e) Spectral brightness (Range 0 to 1).

marklist – a list of timemarks in source, marking (paired) Heads and Tails
E.g.: consonant onset, and vowel continuation of source.
(It is assumed that the first mark is at a Head segment.)

Understanding the FTURANAL ANAL Process

...

Musical Applications

...

End of FTURANAL ANAL


FTURANAL SYNTH – Use spectral features data to reassemble MONO source file

Usage

fturanal synth 1-10 inwavfile outfile infeaturefile [-ssplicelen]

Modes

  1 Reassemble in order of increasing 1st Formant
  2 Reassemble in order of decreasing 1st Formant
  3 Reassemble in order of increasing 2nd Formant
  4 Reassemble in order of decreasing 2nd Formant
  5 Reassemble in order of increasing 3rd Formant
  6 Reassemble in order of decreasing 3rd Formant
  7 Reassemble in order of increasing Brightness
  9 Reassemble in order of increasing Formants, summed
10 Reassemble in order of decreasing Formants, summed

Parameters

inwavfile – input mono soundfile
outfile – output soundfile
infeaturefile – a list of feature values obtained from the analysis file derived from the inwavfile

    (a) Segment start-times (+ duration of source)
    (b) (Median) Frequency of 1st formant
    (c) (Median) Frequency of 2nd formant
    (d) (Median) Frequency of 3rd formant
    (e) Spectral brightness (Range 0 to 1)

-ssplicelen – splice length for cutting segments, in mS (Range: 2 to 15, Default: 5)

Understanding the FTURANAL SYNTH Process

...

Musical Applications

...

End of FTURANAL SYNTH


HOVER2 – Move through a file, zig-zag reading it at a given frequency, with inverted copies

Usage

hover2 hover2 infile outfile frq loc frqrand locrand dur [-s] [-n]

Parameters

infile – input soundfile (mono)
outfile – resultant soundfile
frq – rate of reading source-samples (in Hz).
Frq determines the width (in samples) of the zigzag-read; for example, at a sample-rate of 44100:
•  frq = 1 Hz: reads 22050 samples forward and 22050 samples back.
•  frq = 10 Hz: reads 2205 sampless forward and 2205 samples back.
loc – time in infile from which samples are read.
frqrand – degree of random variation of frequency (range 0-1).
locrand – degree of random variation of location (range 0-1).
dur – total output duration.
[-s] – step between locations at times specified in any breakpoint file
       (rather than interpolating between the locations as time progresses).
[-n] – normalise the loudness of all wavecycles generated.
frq and loc, frqrand and locrand may vary through time.
Time in any breakpoint files is time in the output file.

Understanding the HOVER2 Process

HOVER2 is a variant of HOVER (and ZIGZAG). It moves through the file, zigzag reading it at a given frequency, reading back and forth from a zero-crossing, then outputting same data inverted, to form symmetrical zero-centred waveforms at each read. In effect, this means that each segment is followed by a reversed copy of itself.

Most parameters are shared with HOVER, expecially the given time-point (loc) and reading forwards and backwards from this point at a given speed (frq). As the location point is time-variable, the pointer can move through the file over time or indeed move to any time-point you wish. You can also randomly vary the frequency and the location point.

There are two additional flags: [-s] takes the times in any breakpoint file (such as that for loc) as the times to step between locations. Additionally, you can normalise the loudness of all wavecycles ([-n]).

Musical Applications

...

End of HOVER2


IMPULSE – Create a stream of impulses

Usage

impulse impulse outfile dur pitch chirp slope pkcnt level [-ggap] [-ssrate] [-cchans]

Parameters

outfile – output soundfile
dur – duration of output sound. If set to zero, a single impulse is produced. (Range: 0 to 7200 secs.)
pitch – pitch of impulse-stream; determines stream-frequency. (Range: 0-127 MIDI)
chirp – glissing of impulse. Care, output may clip! (Range: 0 to 30)
slope – how quickly impulse rises and falls in level. Sharper slope gives brighter timbre. (Range 1 to 20)
pkcnt – number of peaks in impulse. (Range: 1 to 200)
         pkcnt divided by stream-freq (pitch) gives the (unglissed) freq. of impulses.
level – overall output level. (Range: 0-1)
-ggap – relative size of any silent gap between impulses. (Range: -0.99 to +10.0)
If > zero, lowers apparent pitch of stream
If < zero, chirps overlap, raises apparent pitch of stream
-ssrate – sample-rate of output file. (Default: 44100)
         Legal sample rates are 16000, 22050, 32000, 44100, 48000, 88200 and 96000
chans – number of channels in output file. (Range: 1 to 8; default: 1)
     chans >1 raises pitch to a harmonic of (hmc=chans)
pitch, glis, slope, chirp, level and gap can vary through time.

Understanding the IMPULSE Process

IMPULSE synthesizes a pulse wave, a series of short pulses, which become a continuous pitch if fast enough (e.g. MIDI 24). To hear individual pulses, set pitch to a very low MIDI value (e.g. 20 or below). However, the MIDI pitch value is not the only one to determine the output pitch. Chans (number of output channels) doubles it for stereo and raises it by another octave for quad, etc. The optional gap-size (gap) lowers the pitch – larger gaps between pulses means lower frequency – while a gap-size of less than 0 raises it.

Three parameters affect the timbre of the pulses:

  • slope, which determines the steepness of each impulse's rise and fall; higher value is brighter.
  • pkcnt, which brightens the timbre and, when high enough, also raises the perceived pitch.
  • chirp – adds buzz to the sound.

Musical Applications

...

End of IMPULSE


MATRIX – Matrix manipulation of spectrum of sound

Usage

matrix matrix 1    infile outfiles analchans winoverlap [-c]
matrix matrix 2    infile outfile inmatrixfile [-c]
matrix matrix 3,4 infile outfiles analchans winoverlap

Modes

1  Generates matrix, and transformed sound.
2  Use input matrix data to transform sound.
3  Exchange real and imaginary values in FFT output.
4  Invert phase in each channel, octave to octave

Parameters

infile – input soundfile (MONO)
outfile(s) – output soundfile (adds extension) and (Mode 1) outname.txt matrix file
analchans – number of analysis channels, as used in PVOC (Power-of-2: 4-16384)
winoverlap – overlap of analysis windows, as used in PVOC (Range: 1-4)
inmatrixfile – text datafile generated by Mode 1
-c – Apply matrix-transform cyclically:
         window1 = spec * matrix
         window2 = spec * matrix * matrix
         window3 = spec * matrix * matrix * matrix
         and so on.

Understanding the MATRIX Process

...
RF: Mode 1 tends to produce extreme distortion, even with very low-level infile.

Musical Applications

End of MATRIX


MOTOR – Create faster pulse-stream within slower pulsed envelope (SINGLE or MULTI-SOURCE)

Usage

motor motor 1,4,7 infile outfile params
motor motor 2,5,8 infile outfile data params
motor motor 3,6,9 infile1 [infile2, infile3,...] outfile params

params –
dur freq pulse fratio pratio sym [-ffrand] [-pprand] [-jjitter] [-ttremor] [-yshift] [-eedge] [-bbite] [-vvary | -a] [-sseed] [-c]

Modes

1, 3  Typical source(s) are short, & widening in frequency-range from start to end
2   Cut segments from single source at slice-times specified in "data"
4-6  As Mode 2, except source – reads only advance
7-9  As Mode 2, except source – reads either only advance or only regress

Parameters

infile – input soundfile(s).
outfile – output soundfile.
data (Modes 2,5,8) – textfile of times in infile at which to slice it into separate sources.
dur – duration of the output file (secs).
freq – pulse-rate of inner-pulses. (Range: 2 to 100 Hz)
pulse – pulse-rate of outer-pulses. (Range: 0.1 to 10 Hz)
fratio – proportion of on-time to off-time of inner-events. (Range: 0 to 1)
pratio – proportion of on-time to off-time of outer-events. (Range: 0 to 1)
sym – symmetry of outer-pulses. (Range: 0 to 1)
         Sym marks the peak of a rising-falling envelope within the range 0 to 1:
             0.5 gives a symmetrical cresc-decresc envelope.
             1 gives cresc envelope; 0 gives decresc envelope.
             0.75 gives long cresc and short decresc. etc.
-ffrand – frequency (f) randomisation. (Range: 0-1) Maximum variation is from f/2 to 3f/2.
-pprand – pulse (p) randomisation. (Range: 0-1) Maximum variation is from p/2 to 3p/2.
-jjitter – range of any pitch randomisation of inner-pulses. (Range: 0 - 3 semitones) -ttremor – range of any random amplitude attenuation of inner-pulses. (Range: 0-1) -yshift – range of any randomisation of outer-pulse symmetry. (Range: 0 to 1) -eedge – length of decay-tail of inner-pulses: multiple of dur. (Range: 0 to 20) -bbite – shape of outer-pulses. (Range: 0.1 to 10, default = 3)
             1 = linear rise-fall; > 1 slow-fast rise, fast-slow fall; < 1 fast-slow rise, slow-fast fall.
-vvary – advance-step in source-read; randomly-varies from one outer-pulse to the next.(Range: 0-1)
             0 = no variation; 1 = max. variation range (from no advance to maximum-step).
-sseed – different seed values give different randomised outputs. (Range: 0 to 256)
-a – inner-events under outer-pulse-cresc advance by fixed step.
             (Default: inner-events advance to end of source, unless vary set.
-c  (Mode 2-3 only) – cycle through input sources.(Default: randomly permute order.)

Understanding the MOTOR Process

Those familiar with older (pre-welded) railway track may remember a series of sounds like "clickety-clack", pause, "clickety-clack", pause, etc. In other words, a faster "inner" pulsed sound within a slower "outer" repeating sequence.

Similarly, MOTOR creates a faster "inner" pulse-stream (at freq Hz) within a slower "outer" enveloped pulse (at pulseHz). A set of inner events is cut successively from the input sourc(es), as the outer-envelope rises, then in reverse order as it falls. This is then repeated at the "outer" pulse rate.

The relationship between the outer frequency parameter pulse and the inner one freq is not obvious, but the outer-pulse, shortened by pratio, must hold at least 2 inner-pulses.

The process handles single or multiple sources (Modes 3,6,9). The references in the modes to reads advancing or regressing refers to the "inner" cuts advancing or otherwise, within the source. Although there are many parameters, most are optional and the main difference is that Modes 2,5 and 8 use a file that specifies cut-times. It is useful to begin with fratio, pratio and sym all set to 0.5, and all optional parameters unset; then gradually explore different settings of these.

Musical Applications

...

End of MOTOR


MULTIOSC – nested FM-style oscillations

Usage

multiosc multiosc 1 outfile dur frq1 frq2 amp2 srate dovesplice
multiosc multiosc 2 outfile dur frq1 frq2 amp2 frq3 amp3 srate dovesplice
multiosc multiosc 3 outfile dur frq1 frq2 amp2 frq3 amp3 frq4 amp4 srate dovesplice

Modes

1 Oscillation of oscillation
2 Oscillation of oscillation of oscillation
3 Oscillation of oscillation of oscillation of oscillation

Parameters

dur – duration of synthesized sound, or textfile output. (secs)
frq1 – driving frequency of output. (Range: 0.001-10000 Hz, time-variable)
frq2,3,4 – nested oscillations of table read (Range: 0.001-10000 Hz, time-variable).
amp2,3,4 – amplitude of suboscillations (Range 0 to 1).
srate – sample rate of synthesized sound.
     Val: 96000, 88200, 48000, 24000, 44100, 22050, 32000, or 16000
dovesplice – length of splice of start and end of output sound (Range: 1-50 mS).

Parameters frq1, frq2, frq3 and frq4 can vary over time.

Understanding the MULTIOSC Process

MULTIOSC creates FM-style nested oscillations from a wavetable. In Mode 1 (oscillation of oscillation), a wavetable is frequency modulated – by frq2. In Mode 2 (oscillation of oscillation of oscillation), Mode 1's modulations are themselves modulated – by frq3. In Mode 3 (oscillation of oscillation of oscillation of oscillation), Mode 2's modulations are modulated – by frq4. The driving frequency (frq1) and all the other frqs can be time-varying.

However, the amplitude is not really time-variable (which would envelope the output) – that is, the program does give an output if (say) amp2 is a breakpoint file, but the result invariaby seems to be white noise.

Musical Applications

...

End of MULTIOSC


MULTISYNTH – Synthesize several sound-streams from a score

Usage

multisynth synth outfile score MM [-jjitter] [-oochans] [-b]

Example commandline:
     multisynth synth synout.wav instr.txt 120
     instr.txt:
     cello 0 60 .7 6 8 62 .7 6 16 64 .7 6 24 65 .7 6 32 67 .9 12

Parameters

score – Text file with each line in the form:
Insname followed by any number of sets-of-4 values representing
Time   Pitch   Loudness and Duration
e.g. (with two 4-sets) trumpet 0 62 .7 3   8 64 .9 12
  • Insname: name of instrument – one of the following:
         flute   clarinet   trumpet   violin   cello   pianoRH   and pianoLH
    PianoLH (left-hand) notes must immediately follow pianoRH (right-hand) notes in the score file and both must be present.

  • Time: Note onset time, measured in thirds-of-semiquavers from time 0 (integer). Times must progress along each line of sets-of-4.
      Cello, violin and piano (LH and RH) may play up to 4 different notes simultaneously,
      so long as the note-combinations are possible on the real instrument.

  • Pitch: Pitch of the note, as a MIDI value (integer).
  • Loudness: A positive number between 0 and 1.
  • Duration: Duration of the note, measured in thirds-of-semiquavers (integer).
    Piano notes may overlay one another (sustained resonance), but other instruments may not:
    their duration values must not extend beyond the start of the following note.
    Simultaneously sounding notes must have the same duration.
MM – Metronome mark determining tempo of sound output (BPM).
-jjitter – Maximum random divergence from regular note placement (in mS; default 15 mS).
-oochans – Number of output channels (2-8; default stereo).
     The sounds in successive lines will be spaced in the output-space from line-1, at the far left, to the last-line, at far right.
     A single-line score output will be placed at front centre.
-b – If ochans is greater than stereo, the loudspeaker array is assumed to be surround.
     Use the "-b" flag to force a bounded array (with a left extreme and right extreme).
     For surround, outputs numbered in order clockwise from front-centre.
     For bounded, outputs numbered in order from far-left to far-right.

Understanding the MULTISYNTH Process

The process uses a special score format to mix a limited set of given sounds, optionally across multi-channel space. Once the score format has been grasped, the process is easy enough to run.

However, the use of third-of-a-semiquaver timings and an insistence on piano LH as well as RH suggest that this function may have been written for personal rather than general use. It also seems to ignore the fact that there are many free instrumental samples available nowadays and suitable ways of playing them.

Musical Applications

It might be helpful to run the example above with different instruments before deciding whether to use this function.

End of MULTISYNTH


NEWSCALES – Synthesise a series of short tones with defined frequency and timbre

Usage

newscales outfile datafile spectrumfile [srate]

Parameters

outfile – Generic name for output soundfiles: must not end with a number
      Files are numbered <outname>0.wav, <outname>1.wav, etc.
datafile – Textfile of freq-amp pairs defining note-events in output files, for example:
      220 0.5
      275 0.5
      330 0.5
      440 0.5
spectrumfile – Textfile of harmonic-number & amplitude pairs, defining the spectrum.
      EITHER one line for all notes (e.g. 1 1.0 2 0.5 3 0.4 4 0.3 5 0.2)
      OR one line for each frequency listed in datafile. (First line corresponds to lowest note, etc.)
srate – Optional sample-rate (Values: 96000, 88200, 48000, 44100 or 32000 [not confirmed]).

Understanding the NEWSCALES Process

The process outputs a series of fixed-length (0.5 sec) tones, each defined by frequency and amplitude (in datafile) and by timbre (in spectrumfile). The spectrum can be different for each note, or the same for all notes.

Musical Applications

The function may have been written for test purposes (it appears to be unsupported in Sound Loom).

A more flexible solution with similar parameters would be a number of calls to NEWSYNTH Mode 1, which also defines an additive-synthesis spectrum for each output, but adds a DURATION parameter. NEWSYNTH Mode 2 also allows the sounds to be enveloped.

End of NEWSCALES


NEWSYNTH SYNTHESIS – Synthesize complex spectra

Two new modes (4 and 5) have been added to this process in Realease 8.

Usage

newsynth synthesis 1 outfile spectrum srate dur frq
newsynth synthesis 2 outfile spectrum srate dur frq [-nnarrowing] [-ccentring]
newsynth synthesis 3 outfile spectrum srate dur frq chans maxrange rate
    [-urise] [-dfall][-fsteady][-ssplice] [-nN] [-a] [-z] [-x] [-tspacetype] [-rrotspeed]
    [[-m] [-j] [-efrom -Etime] [-cto -Ctime]]
newsynth synthesis 4 outfile srate dur frq atk ea dec ed atoh gtow [-fflv] [-rrnd | -e]
newsynth synthesis 5 outfile srate dur frq damping k b

Example command line to create complex spectra:

newsynth synthesis 1 outsndfile spectrum.txt 44100 5.0 110

Modes

1  Generate tones with any number of (possibly varying) partials
2  Generate wave-packet streams with any number of (possibly varying) partials
3  Multi-channel mode: partials spread over N octaves fade in and out randomly
4  Fractally arrayed spikes
5  Duffing damped oscillator

Parameters

outfile – output soundfile generated by the data
spectrum (Modes 1-3) – textfile of times, then a series of partial ratios and their relative levels.
     Every line must have the same number of partials and levels.
     On each line:
  • TIME: the first entry on each line is a time. Times must start at zero and increase.
  • PARTIAL-NUMBER: can be whole-number or fractional (e.g. 2.5); first one must be 1.
    Partial numbers must increase from entry to entry.
  • LEVEL: values are relative to 1st value. Normal range -1 to 0 to +1; negative values invert phase
    Values >1 and <1 are also possible, as these are relative values
     Example data line: 0.00  1 1.0  2 0.9  3 0.8  4 0.7  5 0.6 [etc.]

All Modes:
srate – sample rate of the synthesised sound
    Possible values: 96000, 48000, 24000, 44100, 32000, 22050
dur – duration of the synthesised sound (Range: 0.04 - 7200 secs.)
frq – fundamental frequency of the output. (Range Modes 1-4: 0.001 to 10000 Hz; Mode 5: 1.0 to 200 Hz.)
     frq can vary over time.

Mode 2 only:
-nnarrowing – narrowing (>1) or broadening (<1) of the packet envelope (Range: 0 to 1000).
     Values near zero may produce clicks (square-wave envelope).
     Very high values with very high frequencies may produce click-impulses or silence.
-ccentring – position of peak of packet envelope:
  •  0 peak at the centre
  • -1 peak at the start
  •  1 peak at the end
Mode 3 (multi-channel) only:
chans – number of output channels
maxrange – maximum range of transposition of the spectral components (in whole octaves)
rate – average time between changes to partial content of output (0.004-100 secs)
-urise – time to expand to the maximum range (0-100 secs)
-dfall – time to return to the initial range, before the end (0-100 secs)
-fsteady duration of steady-state sound at the end (0-3600 secs)
-ssplice – splice-width for partial entry and exit (2-50 mS)
-nN – Same fixed number of partials chosen for each event (0-1000)
-tspacetype – type of output spatialisation:
     0=random; other values only if chans=8:
  1. Positions alternate between Left and Right sides, but are otherwise random.
  2. Positions alternate between Front and Back, but are otherwise random.
  3. Rotating clockwise or anticlockwise.
  4. Random permutations of all 8 channels.
  5. ... plus all possible pairs of channels.
  6. ... plus all possible meaningful small and large triangles.
  7. ... plus square, diamond and all-at-once.
    In types 4 to 7, all members of perm are used before next perm starts.
  8. Alternate between all-left and all-right.
  9. Alternate between all-front and all-back.
  10. Alternate between all-square and all-diamond.
  11. Rotate triangle formed by loudspeakers 2-apart clockwise.
  12. Rotate triangle formed by loudspeakers 3-apart clockwise.
  13. Rotate triangle formed by loudspeakers 2-apart anticlockwise.
  14. Rotate triangle formed by loudspeakers 3-apart anticlockwise.
-rrotspeed – the rotation speed (for certain spatialisation types)
-a – activate an initial increase in the number of partials starting from only the fundamental
-z – activate a decrease in the number of partials as the sound moves from steady-state back to the fundamental
-x – (Xclusive): change all partials (as far as possible) from event to event
-m – (Move): distribute partials in space
-j – (Jump): all partials are assigned to the same location for any one event
-efrom (Emerge): the sound emerges from channel from, used with
-Etime – (Emerge): the time from the beginning of the sound over which the sound emerges
-cto – (Converge): the sound converges to channel to, used with
-Ctime – (Converge): the time from the end over which the sound converges
NB: flags -j, -e, -E, -c and -C are only operational if -m is set. They work together as an optional set of parameters, but note the following:
NB: flags with NO parameters must be placed on the command line AFTER any flags WITH parameters.

Mode 4 (fractal spikes) only:
Waveform consists of spikes distributed fractally over the wavelength.
atk – Length of spike attack (0-16 samples).
ea – Rise curve of attack (Range: 0.25 to 4.0; <1 rise slow-then-fast; >1 fast-then-slow)
dec – Length of spike decay (0-16 samples).
ed – Fall curve of decay (Range: 0.25 to 4.0; >1 fall fast-then-slow; <1 slow-then-fast)
  Spike placement parameters:
atoh – Ratio of on-time (a) to 1/2-grouplength (see diagram*) in grouplength,
    which determines relative length of "a" (ON) and "b" (OFF).
gtow – Ratio of grouplen to total-wavelength, which determines length of trailing silence (see diagram*).
    Blocks "a" then subdivided in same proportions again, etc. iteratively.
    Spikes are then placed at start of each "a" block in each subdivision.
-fflv – Alternate "a" blocks in waveform are assigned positive and negative values.
    flv determines at which fractal level this +- switch takes place. (Range: 0-256)
    Level 0 uses the large blocks in the uppermost (slowest) level.
    NB Maximum level of flv will depend on various other parameters.
    If flv is set too high it will be reset to the maximum fractal level achievable with the current parameters.
-rrnd – Subdivision places 2nd "a" segment randomly between the true pos and the grouplenth-end (Range: 0-1).
-e   (not with rnd) – Subdivision places 2nd "a" at END of grouplength.

*diagram is available in commandline usage

frq, atoh, gtow and rnd can vary over time.

Mode 5 (duffing) only:
damping – Damping of forced oscillation (Range: 0.15 to 2)
       damping can vary over time.
k, b – Coefficients determining the nature of the damping. (Ranges: k -10 to 10; b 20 to 50)

Understanding the NEWSYNTH Process

Modes 1 and 2 generate a waveform based on a pre-defined and possibly time-varying spectrum.

The partial number can be harmonic (e.g. 2) or inharmonic (e.g. 2.1), except for the fundamental, which must be 1.

Mode 2 further allows a narrowing of each wave-cycle envelope (too high a value produces silence), which ultimately reduces to clicks, and a centring of this envelope's peak on the start, middle or end of each cycle.

Mode 3 produces a multi-channel output, and its partial content changes by random transposition every rate seconds, within maxrange, with further parameters to control this change.

In Mode 4, the waveform consists of spikes distributed fractally over the wavelength and the output is invariably a buzzy tone, due to the added spikes and fractalisation. (See the CDP commandline usage for a useful diagram which helps to explain the parameters.)

Each wavelength is divided into two portions – a group-length followed by a trailing silence. The group-length is subdivided into two ON-OFF blocks "a" and "b". The ratio between these is set by atoh (on-ratio), while gtow sets the ratio of the grouplength to the overall wavelength and hence determines the length of the trailing silence. The ON blocks are subdivided in the same proportions iteratively and spikes are placed at the start of each ON block in the subdivision. The optional flv (fractal level) determines the level at which positive and negative values are switched. Finally, the optional rnd randomizes the position of the second ON segment, in relation to the grouplength end, but must not be used with the -e flag, which places the second ON block at the grouplength end.

Mode 5 is an experimental Duffing oscillator. (In tests the damping parameter seemed to have no effect.)

N.B. Care should be taken, especially with middle to high fundamental frequencies, that no partial is specified which would be above the Nyquist limit (22050 Hz). In Mode 4, with a very restricted frequency range, a common error message is: "Cannot proceed with these parameters (frq possibly too high)".

Musical Applications

...

End of NEWSYNTH


ONSET – Return the succession of sound-onsets in each channel of a multichannel file

Usage

onset onset infile outtextfile

Parameters

infile – input soundfile (MULTICHANNEL)
outtextfile – textfile giving order of sound-onsets across all channels
onsetlevel – level at which sound onset is recognised

Understanding the ONSET Process

ONSET is a simple utility reporting the order in which channels in a multichannel file reach the given onset level. The output is a list of channel numbers only.

Musical Applications

...

End of ONSET


PAIREX – Extract any pair of channels from a multichannel sound

Usage

pairex pairex infile outfile pair

Parameters

infile – input soundfile (MULTI-CHANNEL).
outfile – output soundfile (STEREO).
pair – the channel numbers of the two channels to be extracted as a stereo pair.
         N.B. NO SPACES between the numbers, e.g. 12 or 34 or 43 or 87, depending on the infile channels.

Understanding the PAIREX Process

CDP already has the function CHANNELX for extracting channels from a multichannel file, though it outputs separate mono files. This function outputs a single stereo file.

Musical Applications

It can be useful to process multi-channel files as stereo pairs, before perhaps interleaving them to re-make a single multi-channel file.

End of PAIREX


PHASOR – introduce phasing into (mono) signal

Usage

phasor phasor infile outfile streams phasfrq shift ochans [-ooffset] [-s] [-e]

Parameters

infile – input soundfile (MONO).
outfile – output soundfile (MONO, STEREO or MULTI-CHANNEL).
streams – number of output streams that phase-interact. (Range 2 to 8; >= ochans)
phasfrq – frequency of packets (phase shifts forward then back in a single packet). (Hz)
shift – maximum phaseshift with packet. (Range 0 - 12 semitones)
ochans – number of output channels (not greater than the number of streams). (Range: 1 to 8)
-ooffset – streams may be time-offset from one another: offset is the time-offset of the most-offset stream. (Range 0 - 500 mS)
         The other streams are offset by intermediate amounts.
-s – output channels (loudspeakers) encircle the audience; use only with more than two output channels
-e – prints warnings about rounding-errors in calculating time-shifted streams.

shift and phasfrq can vary through time, but extreme phasfrq changes or reversals will produce anomalous output.

Understanding the PHASOR Process

PHASOR produces a phasing effect, with mono, stereo or multi-channel output. The signal is divided into a number of output streams that phase-interact. The key paramaters are phase frequency (phasfrq) and pitch shift shift, which actually drives the phasing process (value 0 has no phasing effect). There is also an optional offset parameter which time-offsets the streams: even without pitch shifting, this is an effective way of creating a pseudo-stereo effect out of a mono signal, since it is phase and timing differences that create the stereo illusion.

The program can produce a chorus effect, too, by setting phasfrq fairly low (e.g. 0.5), plus some pitch shift (e.g. 2) and offset (>40mS). As a phasing effect, PHASOR surpasses the earlier FILTER PHASING 2, although the latter has some value for chorusing.

Musical Applications

...

End of PHASOR


PULSER – generate a pulsed stream of sound-packets by iteration

A sub-group of 3 related processes: PULSER PULSER,   PULSER MULTI,   PULSER SYNTH


PULSER PULSER –
Iterate a sound to create a stream of enveloped and pitched sound-packets

Usage

pulser pulser 1 infile outfile dur pitch
             minrise maxrise minsus maxsus mindecay maxdecay speed scatter
             [-eexpr] [-Eexpd] [-ppscat] [-aascat] [-ooctav] [-bbend] [-sseed]
pulser pulser 2 infile outfile dur
             minrise maxrise minsus maxsus mindecay maxdecay speed scatter
             [-eexpr] [-Eexpd] [-ppscat] [-aascat] [-ooctav] [-bbend] [-sseed]
pulser pulser 3 infile outfile spacedata dur
             minrise maxrise minsus maxsus mindecay maxdecay speed scatter
             [-eexpr] [-Eexpd] [-ppscat] [-aascat] [-ooctav] [-bbend] [-sseed] [-wwidth]

Modes

1  Packets take spectral brightness (only) from source, and pitch from pitch parameter
2  Packets derived from (start of) source
3  Packets derived from random startpoints within source

Parameters

infile – input soundfile (MONO).
outfile – output soundfile.
dur – duration of output stream. (Range: 0.02 to 32767 secs)
pitch  (Mode 1) – MIDI pitch of packets. (Range 24 to 96; may vary over time.)
spacedata – spatialisation data: EITHER zero (stereo output)
             OR a list of channels to use (values in range 1-8, in order, no repeats)
             OR a datafile (for multi-channel output) – a set of lines, each having:
                  time, followed by a list of channnels to use (values in range 1-8, no repeated values).
minrise,maxrise – min. and max. rise-time of packet envelope (range 0.002 to 0.2 secs). Risetime is set as a random value between the 2 limits.
minsus,maxsus – min. and max. sustain-time of packet envelope (range 0.0 to 0.2 secs). Sustain is set as a random value between the 2 limits.
mindecay,maxdecay – min. and max. decay-time of packet envelope (range 0.02 to 2 secs). Decaytime is set as a random value between the 2 limits.
speed – (average) time between packets in output. (Range 0.05 to 1 sec)
scatter – randomisation of speed. (Range: 0 to 1)

-eexpr – rise slope. (Range: .25 to 4; 1 = linear, >1 steeper, <1 shallower)
-Eexpd – decay slope (Range: .25 to 4; 1 = linear, >1 steeper, <1 shallower)
-ppscat – random jitter of pitch of packets. (Range: 0 to 1 semitones)
-aascat – random jitter of amplitude of packets. (Range: 0 – no jitter – to 1)
-ooctav – amount of lower-octave reinforcement. (Range: 0 to 1)
-bbend – amount of upward pitchbend of packets. (Range: 0 to 1 semitones)
-sseed – same seed-number produces identical output on re-run. (Integer >=1)
-wwidth  (Mode 3 only) – spatialisation width. (Range: 0 to 1) Zero value produces Mono output.
             In Stereo (where spacedata = 0): width of scatter-positions of packets across stereo panorama.
             In multi-channel (where spacedata is a datafile): width of scatter-positions away from loudspeaker-centric.
             Zero value here produces outputs centred in the loudspeakers.

All parameters except dur, seed and min/maxrise, min/maxsus and min/maxdecay can vary over time.

Understanding the PULSER PULSER Process

PULSER PULSER repeats short bursts of sound - enveloped "sound packets" - at regular intervals (up to 1") to give a pulsed effect. The key parameter is speed – the speed of repetition – modifiable randomly by scatter; both of these can be time-varying.

The envelope is shaped by minrise,maxrise rise time, minsus,maxsus sustain time and mindecay,maxdecay decay time, the value in each case being set randomly between the min and max values. The steepness of the rise and decay slopes is set by the exponent values expr for rise and expdfor decay. The longest available time among these values is a maximum of 2 seconds for the decay; if longer than speed , there will be some overlap of pulses.

The pitch (Mode 1) is time-variable, so can be precisely controlled. Various optional parameters enhance pitch, amplitude or spatial variation, scattering over stereo or multi-channel space (up to 8 channels).

The process is related to PULSER MULTI, which works with multiple inputs, and PULSER SYNTH, which synthesises a pulse stream in a similar fashion

Musical Applications

...

End of PULSER PULSER


PULSER MULTI –
Iterate a number of sounds, randomly permutated, to create a stream of enveloped and pitched sound-packets

Usage

pulser multi 1 infile1,infile2,[infile3,...] outfile dur pitch
             minrise maxrise minsus maxsus mindecay maxdecay speed scatter
             [-eexpr] [-Eexpd] [-ppscat] [-aascat] [-ooctav] [-bbend] [-sseed] [-r]
pulser multi 2,3 infile1,infile2,[infile3,...] outfile dur
             minrise maxrise minsus maxsus mindecay maxdecay speed scatter
             [-eexpr] [-Eexpd] [-ppscat] [-aascat] [-ooctav] [-bbend] [-sseed] [-r]

Modes

1  Packets take spectral brightness (only) from sources, and pitch from pitch parameter
2  Packets derived from (start of) sources.
3  Packets derived from random start-points within sources

Parameters

infile1,infile2,[infile3,...] – input soundfiles (MONO).
outfile – output soundfile.
dur – duration of output stream. (Range: 0.02 to 32767 secs)
pitch  (Mode 1) – MIDI pitch of packets. (Range 24 to 96; may vary over time.)
minrise,maxrise – min. and max. rise-time of packet envelope (range 0.002 to 0.2 secs). Risetime is set as a random value between the 2 limits.
minsus,maxsus – min. and max. sustain-time of packet envelope (range 0.0 to 0.2 secs). Sustain is set as a random value between the 2 limits.
mindecay,maxdecay – min. and max. decay-time of packet envelope (range 0.02 to 2 secs). Decaytime is set as a random value between the 2 limits.
speed – (average) time between packets in output. (Range 0.05 to 1 sec)
scatter – randomisation of speed. (Range: 0 to 1)
-eexpr – rise slope. (Range: .25 to 4; 1 = linear, >1 steeper, <1 shallower)
-Eexpd – decay slope (Range: .25 to 4; 1 = linear, >1 steeper, <1 shallower)
-ppscat – random jitter of pitch of packets. (Range: 0 to 1 semitones)
-aascat – random jitter of amplitude of packets. (Range: 0 – no jitter – to 1)
-ooctav – amount of lower-octave reinforcement. (Range: 0 to 1)
-bbend – amount of upward pitchbend of packets. (Range: 0 to 1 semitones)
-sseed – same seed-number produces identical output on re-run. (Integer >=1)
-r– selection of source file used for the next packet is entirely random.
             (Default: all files are used once, in random order, then followed by a new random order.)

All parameters except dur, seed and min/maxrise, min/maxsus and min/maxdecay can vary over time.

Understanding the PULSER MULTI Process

PULSER MULTI is a variant of PULSER PULSER, generating a stream of enveloped sound-packets taken from two or more input files. The sources are selected at random or used in randomly permutated sequences.

Parameters are the same as for PULSER PULSER: the key one is speed – the speed of repetition – modifiable randomly by scatter; both of these can be time-varying.

The envelope is shaped by minrise,maxrise rise time, minsus,maxsus sustain time and mindecay,maxdecay decay time, the value in each case being set randomly between the min and max values. The steepness of the rise and decay slopes is set by the exponent values expr for rise and expdfor decay. The longest available time among these values is a maximum of 2 seconds for the decay; if longer than speed, there will be some overlap of pulses.

The pitch (Mode 1) is time-variable, so can be precisely controlled. Various optional parameters enhance pitch, amplitude or spatial variation, scattering over stereo or multi-channel space (up to 8 channels).

The process is related to PULSER PULSER, which works with a single infile, and PULSER SYNTH, which synthesises a pulse stream in a similar fashion.

Musical Applications

...

End of PULSER MULTI


PULSER SYNTH – Iterate synthesized wave-packets defined by partials data

Usage

pulser synth 1-3 outfile partials-data dur pitch
             minrise maxrise minsus maxsus mindecay maxdecay speed scatter
             [-eexpr] [-Eexpd] [-ppscat] [-aascat] [-ooctav] [-bbend] [-sseed] [-Ssrate] [-ccount]

Modes

1  Packets all have the same spectrum
2  Spectrum changes through time from one packet to the next
3  Spectrum changes at random from one packet to the next

Parameters

outfile – output soundfile.
partials-data – text datafile; lines of format:
             Mode 1: pairs of   pno   level    (where pno = partial number)
             Modes 2 & 3: time   pno1   level1   [pno2   level2   ...]
             Mode 2: times must begin at zero and increase. Mode 3: times are ignored.
             All modes: pno range: 1-64; level range -1 to 1 (negative values invert the phase).
dur – duration of output stream.
pitch  – MIDI pitch of packets. (Range 24 to 96; may vary over time.)
minrise,maxrise – min. and max. rise-time of packet envelope (range 0.002 to 0.2 secs). Risetime is set as a random value between the 2 limits.
minsus,maxsus – min. and max. sustain-time of packet envelope (range 0.0 to 0.2 secs). Sustain is set as a random value between the 2 limits.
mindecay,maxdecay – min. and max. decay-time of packet envelope (range 0.02 to 2 secs). Decaytime is set as a random value between the 2 limits.
speed – (average) time between packets in output. (Range 0.05 to 1 sec)
scatter – randomisation of speed. (Range: 0-1)

-eexpr – rise slope. (Range: .25 to 4 – 1 linear; >1 steeper; <1 shallower)
-Eexpd – decay slope (Range: .25 to 4 – 1 linear: >1 steeper: <1 shallower)
-ppscat – random jitter of pitch of packets. (Range: 0 - 1 semitones)
-aascat – random jitter of amplitude of packets. (Range: 0 – no jitter – to 1)
-ooctav – amount of lower-octave reinforcement. (Range: 0 to 1)
-bbend – amount of upward pitchbend of packets. (Range: 0 to 1 semitones)
-sseed – same seed-number produces identical output on re-run. (Integer >=1)
-Ssrate – sampling rate for synthesis (44100 to 96000)
-ccount – number of partials to use in synthesis. (Range: 1 to 64)
             Fractional values: e.g. 2.4 uses partials 1 & 2 at specified level and partial 3 at 0.4 of specified level.
             Zero (default) means ignore this parameter and use ALL partials.

All parameters except dur, seed, srate and min/maxrise, min/maxsus and min/maxdecay can vary over time.

Understanding the PULSER SYNTH Process

This third member of the PULSER group (see also PULSER PULSER and PULSER MULTI) generates its stream of wave-packets by synthesis. The spectrum is defined in a datafile of partials and can be fixed, time-varying, or change randomly.

Many parameters are similar to those of the other PULSER processes. The key one is speed – the speed of repetition – modifiable randomly by scatter; both of these can be time-varying.

The envelope is shaped by minrise,maxrise rise time, minsus,maxsus sustain time and mindecay,maxdecay decay time, the value in each case being set randomly between the min and max values. The steepness of the rise and decay slopes is set by the exponent values expr for rise and expdfor decay.

The pitch (Mode 1) is time-variable, so can be precisely controlled. Various optional parameters enhance pitch, amplitude or spatial variation, scattering over stereo or multi-channel space (up to 8 channels).

Musical Applications

...

End of PULSER SYNTH


PVOCEX2 – Stereo phase vocoder based on CARL pvoc (Mark Dolson)

Usage

pvocex2 [-A |-S] [-fx] [-oNosc] [-K | -H | -R] [-Px | -Tx] [-Wx] [-Nsamps] [-m] [-v] infile outfile

Example command line to convert a soundfile to PVOC-EX:
       pvocex2 -A one.wav oneX.pvx [using defaults]

Example command line to convert a PVOC-EX file to a soundfile:
       pvocex2 -S one.pvx one.wav

Parameters

infile – input soundfile for analysis or PVOC-EX file (.pvx) for re-synthesis.
outfile – output .pvx file (analysis) or soundfile (synthesis).
    Soundfile formats supported: .wav, .aiff, .aif, .afc, .aifc
    N.B. the soundfile extension must be included in the filename.

Flags:
-A – perform Analysis only: output is .pvx file.
or
-S – perform Synthesis only: input is .pvx file.
or
-I – show Format info of .pvx file (no outfile required).
-fx – set Frame Type for analysis file:
  • x = 0 = Amplitude, Frequency (default)
  • x = 1 = Amplitude, Phase (= Soundhack format)
  • x = 2 = Complex (real, imaginary)
    NB: The -f flag is ignored unless -A is set.
-oNosc – use osc-bank resynthesis using Nosc oscillators (default = N/2 +1)
-K – use Kaiser window
-H – use von Hann window
-R – use Rectangular window
Default: Hamming window, or window from .pvx header
-Px – Apply Pitch scaling rate x (synthesis)
-Tx – Apply Time scaling rate x (synthesis)
NB: time/pitch scaling requires the default AMP,FREQ pvx format
-Wx – Set window overlap factor (analysis) Values: 0,1,2,3, default 1
-Nsamps – Set analysis window to samps samples (default 1024)
-m – Write soundfile with minimum header (no PEAK data)
-v – Suppress progress messages

Understanding the PVOCEX2 Process

CDP supports two phase vocoder formats for frequency analysis files: those converted using PVOC ANAL (suffix .ana), and the PVOC-EX format (suffix .pvx), devised by Richard Dobson and based on WAVE_EX. (See his PVOC-EX page for further details.)

PVOCEX2 is a stereo phase vocoder, converting a soundfile to PVOC-EX or from PVOC-EX to a soundfile.
The -A (analysis) or -S (re-synthesis) flag must be specified in the commandline.

A third option (-I) gives information about a .pvx file.

Some points to note in connection with .pvx files:

  • All of the CDP spectral processes support PVOC-EX; however, you cannot process stereo .pvx files within CDP, only mono ones
  • You must supply suitable file suffixes when converting, e.g. myfile.wav, not just myfile.
  • The CDP documentation tends to assume that frequency analysis files are exclusively .ana files.
  • The key analysis parameters for PVOCEX2 are the same as for PVOC ANAL: see -N (points) and -W (overlap) flags.
  • PVOC-EX is the phase-vocoder file format used throughout Csound.

The Sound Loom GUI has now been converted (vn. 17.04E) to handle .pvx, and Soundshaper will also be revised.

Related functions

ANA2PVX: Convert CDP analysis file (.ana format) to PVOC-EX format (.pvx)
PVOC ANAL: Convert soundfile to spectral file (.ana format)
PVOC SYNTH: Convert spectral file (.ana format) to soundfile

End of PVOCEX2


QUIRK – Distort signal by raising sample values to a power

Usage

quirk quirk 1-2 infile outfile powfac

Modes

1  Apply power factor over amplitude range of individual half-wavesets
2  Apply power factor over amplitude range of entire signal

Parameters

infile – input soundfile (MONO).
outfile – output soundfile.
powfac – exponent. (Range: 0.01 to 100; <1 exaggerates signal contour; >1 smooths signal contour.)

Understanding the QUIRK Process

QUIRK introduces distortion into a signal by raising sample values to a power. The power factor (powfac ) is applied to individual half-wavesets (pseudo half-cycles) or to the whole file. powfac values less than 1 tend to flatten the tops of the waveform, while values >1 tend to narrow the waveform shape, modifying the timbre accordingly. With higher values of powfac (e.g. >5), the signal is in danger of disappearing altogether; however, this is also a simple means of finding the times of its most prominent peaks.

Quirk may be compared with Cross-modulation (modify radical 6), which produces similar distortion if the signal is multiplied with itself.

Musical Applications

...

End of QUIRK


REPAIR – Join a list of mono sounds into stereo or multi-channel outputs

Usage

repair repair infiles generic-outfilename channels

Parameters

infiles – input MONO soundfiles of the same length in order of output channels.
         Input files must be listed with all channel 1 sources in order, first, then all channel 2 sources in order, etc.
generic-outfilename – root name for a series of outfiles.
channels – number of channels in the output files.

Understanding the REPAIR Process

REPAIR (or "re-pair") interleaves mono soundfiles of the same length to make a stereo or multichannel file. The number of inputs must be a multiple of 2 and the output channels likewise. The program produces multiple outputs named <outname>_0.wav, <outname>_1.wav, etc.

REPAIR assigns output channels to the input files according to the total required number of output channels, by dividing them into groups. Sources A, B, C and D with channels=2 are interleaved as 2 stereos: A+C and B+D. With six input files and channels=2, output channels are assigned as 1 1 1 2 2 2 and there are three outputs: from inputs 1+4, 2+5 and 3+6. For 12 inputs and channels=4, the inputs are grouped as 1+4+7+10, 2+5+8+11 and 3+6+9+12.

CDP already has an easy-to-use interleaving program: INTERLX, in which you simply list the files you wish to interleave, in output-channel order. INTERLX requires the inputs to have the same number of channels, but these can be mono or stereo and do not have to be the same length. (The alternative CDP program SUBMIX INTERLEAVE does the same job, but requires mono inputs, like REPAIR.)

Musical Applications

...

End of REPAIR


REPEATER – Play source, with specified elements repeating

Usage

repeater repeater 1-2 infile outfile datafile [-rrand] [-pprand] [-sseed]
repeater repeater 3 infile outfile datafile accel warp fade [-rrand] [-pprand] [-sseed]

Modes

1   Create a delay in the start times between repeated elements (i.e. can overlap).
2   Create a gap between the end of one element and the start of the next.
3   Produces a dimming, accelerating output, like a bouncing object.

Parameters

infile – input soundfile.
outfile – output soundfile.
datafile consisting of lines of 4 values:
1) Start-time of segment; 2) End-time of segment 3) No. of repeats
4) Mode 1 – the delay time between the start of one repeat and the start of the next.
0 = delay same as segment length; delays <0.05" may sound more like an oscillator.
Mode 2 – the "offset" or gap-time between the end of one repeat and the start of the next.
Mode 3 – no effect: fades are determined by other parameters.
Range (times): 0.01 to file-length (seconds)
Elements can overlap, or backtrack in the source (? earlier times are not accepted)
accel (Mode 3) – delay (and segment) shortening by the end of the repeats; e.g. accel = 2 gradually shortens delay to 1/2 its duration.
warp (Mode 3) – warp delay change. 1 = no warp; >1 shortens less initially, more later.
fade (Mode 3) – decay curve. 1 = linear, >1 fast then slow decay, <1 slow then fast.
-rrand – randomise delay:
Modes 1 & 3: extend each delay-time by a random multiple. Multiplier is generated within specified range (1 to 2).
Mode 2: extend each offset-time by a random multiple. Multiplier is generated within specified range (1 to 8).
Value 1 gives no randomisation; rand may vary through time.
-pprand – randomise pitch of repeats within given semitone range (0 to 12); prand may vary through time.
-sseed – an integer value. Repeated runs of the process with the same input and same seed value will give identical output. (-s flag is not currently recognised)

Understanding the REPEATER Process

REPEATER is one of the simplest and most versatile of the many ways within CDP to repeat segments. The repeats are specified in a datafile, each line consisting of start-time, end-time, no. of repeats and finally either (Mode 1) the delay time between repetitions or (Mode 2) the gap time between them. This value has no effect in Mode 3, which produces fading repeats. Element times can overlap, but note that each set of repetitions is laid down before the next one starts (which is not the same as simultaneous delays, as in a delay-line).

In Mode 3 (only), accel gradually shortens the delay time as skewed by warp (>1 shortens less initially and more later), while fade similarly skews the fade speed (<1 = slow then fast)

The other parameters are options for all three modes: rand randomizes the delay/gap times, prand randomizes the pitch of the repeats and seed ensures identical output with the same input and seed value. (At the present time,however, the -s flag for seed is not recognised by the program.)

Musical Applications

...

End of REPEATER


ROTOR – Generate note-sets that grow and shrink in pitch-range and speed (and spatial-width)

Usage

rotor rotor 1 fi fo env cnt minp maxp step prot trot phas dur gstp [-ddove] [-s]
rotor rotor 2-3 fi fo env cnt minp maxp step prot trot phas dur [-ddove] [-s]

Modes

1   Note-set start-times separated by time-step
2   Note-set start-time depends on spacings within current set
3   Note-set first event overlaid on last event of previous set

Parameters

fi – input soundfile (MONO), to be read at different speeds to generate output events.
         (Should start and end at sample value 0.0, OR use option -ddove)
fo – output soundfile (MONO or STEREO).
env – breakpoint file of envelope (Time-Amp) imposed over output events; envelope duration determines the duration of all events.
    Ranges: Time – nominally 0 to file-length, but can take longer values; Amp – 0 to 1
cnt – number of events in each (changing) set. (Range: 3 to 127)
minp – minimum (MIDI) pitch of events. (Range: 0 to 127)
maxp – maximum (MIDI) pitch of events. (Range: 0 to 127 > minp )
step – maximum time-step between event-onsets. (Range: 0 to 4 secs)
prot – number of notesets before pitch-sequence returns to original. (Range: 4 to 256)
trot – number of speeds before speed returns to original (Range: 4 to 256)
phas – initial phase difference between prot and trot. (Range: 0 - 1)
dur – duration of output to generate (Range: 1 to 32767 secs)
gstp  (Mode 1 only) – time-step between each note-group. (Range: 1 to 60)
-ddove – size of start/end dovetails of input soundfile. (Range: 0 to 5 mS)
-s – stereo output: output grows and shrinks in spatial width.

Understanding the ROTOR Process

ROTOR appears to generate a shimmering type of noise, which is potentially restricted to a limited pitch range. This doesn't seem to match the program description. Some sources and parameter settings produce a series of pulsed noises.

Env can be any arbitrary envelope shape, or one previously extracted as a breakpoint envelope.

Musical Applications

...

End of ROTOR


SCRAMBLE – Scramble waveset order randomly or by size and level

Usage

scramble scramble     1-2  infile outfile dur seed [-ccnt] [-ttrns] [-aatten]
scramble scramble     3-4  infile outfile        seed [-ccnt] [-ttrns] [-aatten]
scramble scramble     5-8  infile outfile cuts seed [-ccnt] [-ttrns] [-aatten]
scramble scramble   9-10  infile outfile        seed [-ccnt] [-ttrns] [-aatten]
scramble scramble 11-14  infile outfile cuts seed [-ccnt] [-ttrns] [-aatten]

Modes

Reassembly is:
1    In random order.
2    In permuted random order (all wavesets used before any are re-used).
3    In order of increasing size (falling pitch).
4    In order of decreasing size (rising pitch).
5    In order of increasing size, in each segment.
6    In order of decreasing size, in each segment.
7    In order of increasing then decreasing size.
8    In order of decreasing then increasing size.
9    In order of increasing level.
10  In order of decreasing level.
11  In order of increasing level, in each segment.
12  In order of decreasing level, in each segment.
13  In order of increasing then decreasing level.
14  In order of decreasing then increasing level.

Parameters

infile – input soundfile (MONO).
outfile – output soundfile (MONO).
dur – duration of output file. (Range: 1 to 7200 secs)
cuts – textfile of (increasing) times in source: process in each separate segment. (Range: >0 to file-length)
seed – random seed; same seed with same random parameters gives same output. (Range: 0 to 256)
-ccnt – number of wavesets in waveset-groups to be scrambled. (Range: 1 to 256)
-ttrns – range of any random transposition of wavesets. (Range: 0 to 12 semitones)
-aatten – range of any random attenuation of wavesets. (Range: 0 to 1)

Understanding the SCRAMBLE Process

As the name suggests, this process scrambles the order of wavesets (pseudo-wavecycles): randomly and by size and level. The fourteen modes set out the various possibilities. Some modes use a cuts datafile of times to define the segments. These can be set to the start of each segment that might be re-positioned. There is scope for optional random transposition and attenuation.

Musical Applications

...

End of SCRAMBLE


SORTER – Chop sound into elements, then reorganise by loudness or duration

Usage

sorter sorter 1-4 infile outfile esiz [-ssmooth] [-oopch] [-ppch] [-mmeta] [-f]
sorter sorter 5 infile outfile esiz seed [-ssmooth] [-oopch] [-ppch] [-mmeta] [-f]

Modes

1   Sort to Crescendo – re-order elemnts by increasing loudness
2   Sort to Decrescendo – re-order elements by decreasing loudness
3   Sort to Accelerando – re-order elements so they speed up (if small, pitch may rise)
4   Sort to Ritardando – re-order elements so they slow down (if small, pitch may fall))
5   Order elements randomly

Parameters

infile – input soundfile (MONO).
outfile – output soundfile (MONO)
esiz – approximate size of elements to sort, in seconds. (Range: 0 to infile-length)
         If zero, individual wavesets are chosen as elements.
seed  (Mode 5) – random order: same seed no. gives same ordering on a re-run; 0 gives different order each time (Range: 0 to 256)
-ssmooth – Splice length to fade in and out each segment. Parameter is ignored if element size (esiz) is zero. (Range: 0 to 50 mS)
-oopch – output elements with separation equivalent to MIDI pitch opch.
         (Range: 1 to 127 (MIDI), or 0 – ignored, or 128: use median pitch of source if -f flag also set

The following parameters can only be used if -f flag is set:
-ppch – transpose the input elements to the MIDI pitch specified. (MIDI range: 0 to 127; if 0, parameter is ignored.)
         If set to 128, the median pitch of the source is used.
-mmeta   (only useful if -ppch is set) – size of meta-grouping, in seconds; allows larger units to be (approx.) pitch-correlated.
(The source is first cut to pitch-wavelength-scale elements and transpositions are calculated. Then these elements are further grouped to approx. meta group size.)
Value must be larger than largest element (1/freq) from frequency trace. If set to zero, the parameter is ignored.
         If -ppch is not set, larger groupings are obtained by a larger value of esiz.

-f – element-size (esiz) is read as a frequency value (= 1.0/duration) and could be a frequency-trace of the source pitch.

Understanding the SORTER Process

SORTER cuts elements from the source and re-orders them by size or loudness. (This is very similar to SCRAMBLE.) The main parameter is the Element-size (esiz) to be cut from the source. This can be time-varying, though the elements must not overlap *t.b.c.). If zero, it uses individual wavesets.

The other main parameter is the optional Output-pitch (opch), which causes elements to be output with separation equivalent to its MIDI pitch value. It is not entirely clear what this means, although wavesets are seen in other processes as having a frequency (e.g. DISTORT MULTIPLY). The higher this value, the faster the elements are output. (A suitable starting point might be <10.)

There is enough variation here to generate all manner of jumbled re-orderings, though many of them arguably sound much the same.

SPECIAL NOTE:
The extra parameters used with the -f flag have given the following recurring error messages –
1) If the element-size (esiz) is not time-varying, the following error is given, if Output-pitch (opch) is used:
      "ERROR: Cannot transpose elements to a given pitch if sizedata is not time-varying frequency"
2) If the -f flag is set, the following invariably occurs:
      "ERROR: Elementsize (0.2) too big for infile. (If data's frq, set flag)".
      This seems to happen whatever element size is used.

Musical Applications

...

End of SORTER


SPECENV – Extract the spectral envelope of file 2 and apply it to file 1

Usage

specenv specenv inanalfil1 inanalfil2 outanalfil windowsize [-bbal] [-p] [-i] [-k]

Parameters

inanalfil1 – input analysis file onto which the spectral envelope is applied
inanalfil2 – input analyis file from which the spectral envelope is taken. File 2 must be at least as long as file 1
outanalfil – output analysis file
windowsize – spectral bandwidth (no. of analysis channels) to process (Range: 1 to no. of channels)
-bbal – proportion of original files in output. (Range: almost -1 to almost +1: -1 and +1 give errors.)
     > 1: balance of shaped-file to infile1 = (1-bal) : bal   (Higher balance keeps more of the original file1.)
     < 1: balance of shaped-file to infile2 = (1+bal) : -bal (Lower balance keeps more of the imposed file2.)
     Default 0.0: none of the original files in the output.
-p – window-size counted in octave steps. Default: counted in analysis-channel-widths (sample-rate/analysis-channels).
-i – impose spectral envelope. (Default: replace spectral envelope)
-k – keep the loudness contour of the imposed file. (Default: keep the loudness contour of the original file.)

Understanding the SPECENV Process

SPECENV extracts the spectral envelope of Infile 2 and applies it to Infile 1. Infile 1 must normally be shorter than Infile 2.

The process is equivalent to formant extraction plus formant impose/replace, but allows for larger spectral windows. It is a variant of VOCODE or CROSS, although the output is different from both.

The default is to replace Infile 1's spectral envelope, as CROSS does (though the result is not as clear as CROSS). Alternatively, Infile 2's spectral envelope may be imposed on Infile 1, like VOCODE. BALANCE controls the proportion of either input in the output: -99 is 'wet'.

The ouput length is taken from the shorter Infile 1, rather than the imposing/replacing one (Infile 2). Before applying the process, some silence may need to be added to Infile 1 and/or 2 to ensure the whole of the active material in the imposing/replacing file is used.

SEE ALSO: COMBINE CROSS, FORMANTS VOCODE, FORMANTS GET/PUT, SPECSPHINX

Musical Applications

...

End of SPECENV


SPECFNU – Modify spectral shape in relation to formant peaks, or show formant data

SEE SEPARATE file SPECFNU.HTM.




SPECFOLD – Fold, invert or randomise the spectrum

Usage

specfold specfold 1 inanalfile outanalfile stt len cnt [-a]
specfold specfold 2 inanalfile outanalfile stt len [-a]
specfold specfold 3 inanalfile outanalfile stt len seed [-a]

Modes

1   Fold the spectrum.
2   Invert the spectrum.
3   Randomise the spectrum.

Parameters

inanalfile – input analysis file.
outanalfile – output analysis file.
stt – lowest spectral channel to process (Range: >=1)
len – number of channels to process (>= 4); for folding (Mode 1) this must be an even number.
cnt – (Mode 1) number of folds (less than len).
seed – (Mode 3) seed value sets a specific random permutation of channels. (Range: 1 to 64)
-a – process the amplitudes only. Default: process frequencies and amplitudes.

Understanding the SPECFOLD Process

SPECFOLD is an alternative to the original CDP processes FOCUS FOLD and SPECNU SLICE (Mode 5: Invert spectrum), offering also a randomising of spectral frequencies. For all three modes, the frequency range to work within is set by the lowest channel (stt) and the number of channels len to process above that. (The utility SPECINFO FREQUENCY reports the centre frequency for any given channel, while SPECINFO CHANNEL gives the channel for a given frequency.)

The folding process in Mode 1 is as follows:

  • Channels in the fold group are split into two equal sets of consecutive channels.
  • Values in the first set are moved from channel N to channel 2N.
  • Values in the second set are assigned to remaining channels, in descending order.
  • cnt sets the number of fold groups to fit into the frequency range defined by stt and len.

Mode 2 inverts the spectrum, putting high frequency channels into low ones and vice versa, while Mode 3 randomly permutates the channels within the channel range.

Setting the -a flag processes just the amplitudes, not the frequencies; in a typical sound with harmonics reducing in amplitude as frequency rises, this should make the sound brighter. Overall, the channel settings tend to brighten the sound considerably, above the lowest channel (set this higher to preserve the bass).

Musical Applications

...

End of SPECFOLD


SPECTSTR – Time-stretch analysis file, suppressing artefacts when stretch is > 1.0

Usage

spectstr stretch infile outfile timestretch d-ratio d-rand

Parameters

infile – input analysis file
outfile – output analysis file
timestretch – stretch/shrink multiplier, which may itself vary over time. (Range: 0.0001 to 10000; <1 shrinks the time)
d-ratio – proportion of channels to discohere. (Range: 0 to 1)
d-rand – frequency randomisation of discohered channels. (Range: 0 to 1)

Understanding the SPECTSTR Process

Timestretch stretches or shrinks the sound over time, without changing frequency. It creates extra time-windows to expand the overall time-base of the sound, without a change of frequency. The stretching itself can be time-varying. If the stretch factor TSTRETCH is <1, a time-shrinking occurs.

SPECTSTR is identical to the original STRETCH TIME process in respect of time-stretching, but adds the DISCOHERE and RANDOMISE parameters.
(It is not clear yet what is meant by "discohere" in the context of time-stretching.)

Musical Applications

...

End of SPECTSTR


SPECTUNE – Find most prominent pitch and transpose file to it

Usage

spectune tune 1 inanalfile outanalfile
     [-mmatch] [-llop] [-hhip] [-stim] [-etim] [-iintune] [-wwins] [-nnois] [-r] [-b] [-f]
spectune tune 2-3 inanalfile outanalfile tuning
     [-mmatch] [-llop] [-hhip] [-stim] [-etim] [-iintune] [-wwins] [-nnois] [-r] [-b] [-f]
spectune tune 4 inanalfile outanalfile
     [-mmatch] [-llop] [-hhip] [-stim] [-etim] [-iintune] [-wwins] [-nnois] [-r] [-b]
spectune tune 5 inanalfile outanalfile tuning peakcnt
spectune tune 6 inanalfile outanalfile segmentation
     [-mmatch] [-llop] [-hhip] [-iintune] [-wwins] [-nnois] [-r] [-b]

Modes

Find most prominent pitch in input file, then transpose file to:
1  Nearest tempered pitch
2  Nearest of pitches listed in tuning file
3  Nearest pitch, or its octave equivalents, listed in tuning file
4  Report the pitch found (no sound output)
5  Tune sound to a given (possibly time-varying) pedal pitch and its harmonics
6  Report median pitch in all segments indicated

Parameters

inanalfile – input analysis file.
outanalfile – output analysis file.
tuning – textfile list of (possibly fractional) MIDI pitches. (Range: 0 to 127)
peakcnt – how many spectral peaks to tune. (Range: 1 to 128 max.)
segmentation – datafile of times of segment starts and ends in the input analysis file.
-mmatch – number of partials lying on harmonic series, to affirm pitch. (Range: 1 to 8, default: 5)
-llop – minimum (MIDI) pitch to accept. (Range: 4 to 127, default: 4 = c. 10Hz)
-hhip – maximum (MIDI) pitch to accept. (Range: 4 to 127, default: 127)
-stim – time in file where pitch search begins. (Default: 0.0)
-etim – time in file where pitch search ends. (Default: end-of-file)
-iintune – how closely tuned must harmonics be (Range: 0 to 6 semitones, default: 1).
-wwins – minimum no consective pitched analysis windows, to confirm pitch found. (1 to no. of windows, default: 2)
-nnois – signal-to-noise ratio (dB). (Default: 80 dB)
         Windows more than nois dB below loudest window are ignored.
-r – ignore relative loudness of pitched windows when assessing most prominent pitch.
-b – smooth pitch data & eliminate blips, before searching for most prominent pitch.
-f – ignore the formant envelope, when transposing.

Understanding the SPECTUNE Process

SPECTUNE does not tune the partials, as the name may suggest – that is done by PITCH TUNE and TUNEVARY.
Instead it finds the most prominent pitch in the spectral file and transposes the whole input to the nearest tempered pitch (Mode 1), or the nearest listed pitch (Modes 2 and 3), or to a given pedal pitch and its harmonics (Mode 5). You can also optionally set limits for low and high MIDI pitch, plus start and end times for the effect. Other optional parameters are probably best left at their default values.

The other modes produce text reports on the pitch(es) found, which may be useful in understanding what the effect is doing.

Musical Applications

...

End of SPECTUNE


SPECULATE – Generate versions of source with channel data progressively permutated

Usage

speculate speculate inanalfile outname minfrq maxfrq [-r]

Parameters

inanalfile – input frequency-analysis file outname – generic name for the (numbered) output files to generate. Files are named <outname>_0, <outname>_1,... etc.
minfrq – lowest frequency used for channel-permutations. (Range: 5-10000 Hz)
maxfrq – highest frequency used for channel-permutations. (Range: 150-10000 Hz)
      NB: maxfrq must be at least 129.199 Hz more than minfrq.
-r – remove any other components.

Understanding the SPECULATE Process

SPECULATE progressively swaps channel data, following a permutation sequence like "Plain-Bob" bell-ringing. It produces an output file for each swap, so these typically number several hundred files, unless the frequency range is restricted (see minfreq and maxfreq). The audio outputs start with the original sound and progressively become shriller (like successive high-pass filtering); once the sequence has passed the half-way point, this process is reversed and they become progressively more like the original again.

Setting the -r flag to "Remove other components" may reduce the number of output files. Every ten files or so will sound a little different, but it's hard to know how to handle such a vast amount of timbral variation.

Musical Applications

...

End of SPECULATE


SPIKE – Envelope the sound to spike at the peak

Usage

spike spike infile outfile peak(s) upslope downslope [-mmaxup] [-dmaxdown] [-n]

Parameters

infile – input soundfile.
outfile – output soundfile.
peak(s)– either a single time (single peak)
                or – a datafile of peak times, listed as trough-peak-trough triples (times).
                Adjacent troughs may be at the same time, but other times must advance.
upslope – power-value for slope of envelope before peak(s). (Range: 1 to 100)
downslope – power-value for slope of envelope after peak(s). (Range: 1 to 100)
-mmaxup – maximum duration of upward approach. (Range: 0 to 1 secs; 0 implies no maximum.)
-dmaxdown – maximum duration of downward approach. (Range: 0 to 1 secs; 0 implies no maximum.)
-n – Raise all peaks to that of maximum.

Understanding the SPIKE Process

SPIKE is a more pronounced version of ENVEL SWELL, spiking either at a single time, like SWELL, or at listed times. SPIKE adds controls for the up and down slope to and from the peak. If a single time is used, the whole sound will crescendo up to that time and decay after it. Multiple times should produce multiple spikes, but there are often silences at other times (to be investigated).

Musical Applications

...

End of SPIKE


SPIN – Spin one or two stereo images across a multichannel space

A sub-group of two: SPIN STEREO and SPIN QUAD

Usage

spin name mode infile outfile parameters, where name can be stereo or quad

SPIN STEREO – Spin a wide stereo image across stereo or multichannel space, with possible doppler-shift

Usage

spin stereo 1 infile outfile rate dopl xbuf [-bboost] [-aatt] [-eexpbuf]
spin stereo 2 infile outfile rate chns cntr dopl xbuf [-bboost] [-aatt] [-kcmn] [-ccmx]
spin stereo 3 infile outfile rate chns cntr dopl xbuf [-bboost] [-aatt] [-kcmn]

Modes

1  spin with doppler pitch-shift
2, 3  create a 3-channel-wide output, centred on channel "centre", in an "ochans"-channel outfile.

When the spinning image crosses the centre:
Mode 2 uses the outer channels to project a stereo-at-centre image.
Mode 3 uses ONLY the central channel to project a stereo-at-centre image.

Parameters

infile – input soundfile (STEREO).
outfile – output soundfile (STEREO or MULTI-CHANNEL).
rate – spin speed in cycles per second (can vary over time):
         Positive values spin clockwise and negative values anticlockwise (as viewed from above). (Range: -100 to +100 Hz)

Modes 2 & 3 only:
chns   (Modes 2 & 3) – number of channels in output file. (Range: 4 to 16)
cntr – central channel of the 3-channel output. (Range: 1 to chns)

dopl – maximum doppler pitch-shift (Range: 0 to 12 semitones)
xbuf – multiply size of buffer for Doppler shift (may be necessary for large shift). (Range: 1 to 64)
-bboost – optional boost of level, as edges pass through the centre; (Range: 0 to 16)
         gradually increases (*boost) as edge passes "FRONT" centre
         and decreases (*1/boost) as edge passes "REAR" centre.
         As the two edges pass through the centre simultaneously, one edge gets louder and the other quieter.
-aatt – overall level attenuation (*att) as both edges pass through the centre. (Range: 0 to 1)
-eexpbuf(Mode 1) – [optional parameter not defined]
-kcmn (Modes 2,3) – minimum level on the central channel. (Range: 0 to 1)
-ccmx (Mode 2 only) – maximum level on the central channel. (Range: 0 to 1, <=cmn)

Understanding the SPIN STEREO Process

A stereo sound is rotated within stereo (Mode 1) or multichannel space (Modes 2/3), with optional Doppler Shift. In Mode 1, the main parameters are the rate of spin and doppler shift (dopl).

Modes 2 and 3 produce a 3-channel-wide rotation within multichannel space, which must be at least 4 channels wide (chns).

Musical Applications

...

End of SPIN STEREO


SPIN QUAD – Spin two wide stereo-images across a 5-channel-wide sound image, with possible doppler-shift

Usage

spin quad 1 infile1 infile2 outfile rate ochns cntr dopl xbuf [-bboost] [-aatt] [-kcmn] [-ccmx]
spin quad 2 infile1 infile2 outfile rate ochns cntr dopl xbuf [-bboost] [-aatt] [-kcmn]

Modes

When the spinning image crosses the centre:
1  use the outer channels to project the stereo-at-centre image.
2  use only the central channel to project the stereo-at-centre image.

Parameters

infile1, infile2 – two input soundfiles (STEREO).
outfile – output soundfile (MULTI-CHANNEL).
rate – spin speed in cycles per second (can vary over time):
         Positive values spin clockwise and negative values anticlockwise (as viewed from above). (Range: -100 to +100 Hz)
ochns – number of channels in the output file. (Range: 5 to 16)
cntr – central channel of the 5-channel output. (Range: 1 to ochns)
dopl – maximum doppler pitch-shift (Range: 0 to 12 semitones)
xbuf – multiply size of buffer for Doppler shift (may be necessary for large shift). (Range: 1 to 64)
-bboost – optional boost of level, as edges pass through the centre; (Range: 0 to 16)
         gradually increases (*boost) as edge passes "FRONT" centre
         and decreases (*1/boost) as edge passes "REAR" centre.
         As the two edges pass through the centre simultaneously, one edge gets louder and the other quieter.
-aatt – overall level attenuation (*att) as both edges pass through the centre. (Range: 0 to 1)
-kcmn – minimum level on the central channel. (Range: 0 to 1)
-ccmx (Mode 1 only) – maximum level on the central channel. (Range: 0 to 1, <=cmn)

Understanding the SPIN QUAD Process

Two stereo sounds are rotated around multichannel space, with optional Doppler Shift. ("QUAD" refers to 2 x stereo.) The program produces a 5-channel-wide spin within multichannel space, which must be at least 5 channels wide (ochns).
The main parameters are the speed of rotation (rate) and any Doppler pitch-shift (dopl).

SPIN QUAD complements SPIN STEREO which rotates a single stereo sound in stereo or mutichannel space.

Musical Applications

...

End of SPIN QUAD


SPLINTER – Create splinters by repeating & shrinking selected waveset-group

Usage

splinter splinter 1-4 infile outfile target wcnt shrcnt ocnt p1 p2
         [-eecnt] [-sscv] [-ppcv] [-ffrq |-ddur] [-rrand] [-vshrand] [-i] [-I]

Modes

1, 3 Splinters lead into the original sound. Mode 1: splinters change pitch.
2, 4 Splinters emerge from the original sound. Mode 2: splinters change pitch.

Parameters

infile – input soundfile.
outfile – output soundfile
target – time in the source immediately before the desired waveset group. (Range: 0 to file-length secs.)
wcnt – number of wavesets used to create the splinter group. Must be < frq in 'length' (if frq used)
    (Range: 1 to 256; maximum length 1 minute)
shrcnt – number of waveset-group repeats that are shrunk. (Range: 2 to 256)
ocnt – number of maximally-shrunken splinters beyond the shrink shrct. (Range: 0 to 256)
p1 – pulse-speed of waveset repetitions at the originating waveset (Range: 0 to 50 Hz).
         If zero, Pulse-speed 1 is determined by the duration of the selected waveset-group (wcnt).
p2 – pulse-speed at end of repetitions (shrcnt+ocnt splinters away). (Range: 0 to 50 Hz)
         If zero, Pulse-speed 2 = Pulse-speed 1.
-eecnt – number of extra regular pulses beyond shrcnt+ocnt. (Range: 0 to 10000)
-sscv – shrinkage curve. (Range: 0.1-10; 1 = linear, >1 contracts more rapidly near originating waveset, <1 less rapidly)
-ppcv – pulse-speed curve. (Range: 0.1-10; 1 = linear, >1 accelerates more rapidly near originating waveset, <1 less rapidly)
-ffrq (Modes1+2) – approx. frequency (1/wavelength) of maximally-shrunk splinters. (Range: 1000 Hz-Nyquist/2; default: c.6000 Hz)
-ddur (Modes3+4) – approx. duration of maximally-shrunk splinters (Range: 5 to 50 mS).
-rrand – randomisation of pulse timing; may vary over time. (Range: 0 to 1)
-vshrand – randomisation of pulse shrinkage; may vary over time. (Range: 0 to 1)
-i – mix all source into output. (Default: source used only where there are no splinters.)
-I – mix none of source into output.

Understanding the SPLINTER Process

SPLINTER cuts a short segment from the soundfile (at or near target) and repeats it as pulses, shrinking and optionally transposing it on each repetition. This pulsed portion is either followed by the reset of the soundfile (Modes 1,3) or precedes it (Modes 2,4). Alternatively, the option NOT to mix any of the source (flag -I) will just give the pulsed segment. In Modes 1 and 2, the splinters also change pitch.

The segment length is a group of pseudo-cycles (wcnt), so may be a bit hard to predict. Shrcnt and ocnt determine the number of pulses – those that are shrunk and those after the shrinkage, while ecnt can extend this number further. Pulse-speeds 1 (p1) and 2 (p2) set the speed of repetition, which can be arranged so that the repetitions speed up or slow down; if p1 is zero, the speed is taken from the waveset group length wcnt . The speed of pulse and shrinkage can be skewed by pcv and scv, respectively.

Modes 1 and 2 gradually change pitch with each repetition; Modes 3 and 4 do not. Frq optionally sets a goal frequency to reach. In this context, the group of cycles has a notional 'frequency' (see also other waveset processes affecting frequency); if this exceeds frq, a CDP Error is raised.

Optional parameters include duration (dur, Modes 3 and 4), which sets the length of maximally shrunk splinters; rand and shrand, which randomize pulse and shrink timing, respectively.

Musical Applications

...

End of SPLINTER


STUTTER – Randomly repeat segments cut from elements

Usage

stutter stutter infile outfile datafile dur segjoins silprop silmin silmax seed [-ttrans] [-aatten] [-bbias] [-mmindur] [-p]

Parameters

infile – input soundfile.
outfile – output soundfile
datafile – list of times at which to slice source into elements
         Minimum timestep between times = 0.016 secs; maximum is file-length-Min.
dur – duration of output.
segjoins – Value 1: use the specified elements as sources to cut
                 Value 2: also use pairs of segments as sources
                 Value N: also use 2,3,...N joined-segments as sources
                 (Range: 1 to 8)
silprop – if silence is inserted at joins between cut-segments, the proportion of joins to have inserted silence.
               Range 0 (no silence) to 1; if >0, minimum is 1 in 20 (0.05)
silmin – minimum duration of any silences at joins. (Range: 0-10)
silmax – maximum duration of any silences at joins. (Range: 0-10)
seed – same seed value (with all other params same) produces identical output from any random-varying processes.
-ttrans – range of any random transposition of segments. (Range: 0-3 semitones)
-aatten – range of any random attenuation of segment level. (Range 0-1)
-bbias – bias size of segments cut. (Range -1 to 1; 0 = no bias.)
              Negative values bias towards smaller segments; positive values towards larger ones.
-mmindur – minimum duration of cut segments. (Range: >8mS to 250mS).
-p – permutate elements: all elements are used before any used again. (Default: segments cut from elements taken entirely at random.)
              If option set: randomly order elements, cut segments from each and play; then permute order, cut new segments and play, etc.

Understanding the STUTTER Process

The source sound (e.g. speech) is sliced into elements (e.g. words or syllables). Segments are cut from elements, always cutting from the start of the element. These are then played in a random order, with possible intervening silence.

Musical Applications

...

End of STUTTER


SUPPRESS PARTIALS – Suppress the most prominent partials in the frequency band indicated

Usage

suppress partials inanal outanal timeslots lofrq hifrq chancnt

Parameters

inanal – input analysis file
outanal – output analysis file
timeslots – datafile of (from-to) time-pairs between which bands are suppressed.
lofrq – low frequency limit of band where partials to be suppressed. (Range: 5 to 22050 Hz)
hifrq – high frequency limit of band where partials to be suppressed.(Range: 5 to 22050 Hz)
chancnt – number of most prominent analysis channels in band to be suppressed. (Range: 1 to no. of channels, e.g. 513)

Understanding the SUPPRESS PARTIALS Process

SUPPRESS PARTIALS suppresses the most prominent partials in a specified frequency band, at given times. Lofrq and hifrq set the lower and upper limits of the frequency band, while chancnt gives the number of spectral channels in that band that you wish to suppress. The timeslots datafile gives the times that these are to be suppressed. For the whole file, enter 0 and its approx. end time.

Care must be taken in setting the number of channels (chancnt) correctly to avoid a CDP Error. Divide the frequency band by the channel bandwidth (for the PVOC resolution in use) to give the number of channels in the band.

Suppressing the normally weaker upper partials will make very little difference to the sound. The greatest timbral change is through selective high-pass filtering, that is, in eliminating some of the lower partials, under 1000Hz.

SUPPRESS expands the provision of the earlier BLUR SUPPRESS, which suppresses the most prominent N partials.

Musical Applications

...

End of SUPPRESS PARTIALS


SYNFILT – Noise filtered by time-varying filterbank, with time-variable Q

Usage

synfilt synfilt mode outfile data srate chans Q hcnt rolloff seed [-d] [-o]

Modes

1 Single (varying) pitch
2 Simultaneous pitches

Parameters

outfile – output soundfile. In both modes, the output duration is set by the last entry in data.
data – Mode 1: enter filter pitch as time & MIDI-pitch pairs (MIDI range: 0 to 127; 0 produces silence)
           Mode 2: VARIBANK-style data for filter bands at successive times, each line containing:
           Time   MIDIPitch1 Amp1   [MIDIPitch2 Amp2 etc....]
      In Mode 2:
  • Pitch and amp values must be paired.
  • Each line can contain any number of pairs, but must have SAME number of pairs.
  • Time values (in secs) must be in ascending order (and >=0.0)
    MAXIMUM TIME must be >0.03 secs (30mS).
  • To eliminate a band in any line(s), set its amplitude to 0.0
  • Amp values may be numeric, or dB values (e.g. -4.1dB)
  • Comment-lines may be used: start these with ';'.
srate – Sample rate of output file (Vals: 96000, 48000, 88200 or 44100 Hz)
chans – Output mono (1) or stereo (2).
Q – tightness of filter. High values produce more clarity of pitch. (Range: 0 to 10000.0)
hcnt – no. of harmonics of each pitch to use. (Range: 1 to 8, default 1)
     Care! High harmonics of high pitches may be beyond Nyquist frequency.
     (No. of pitches times no. of harmonics determines program speed).
rolloff – drop in level from one harmonic to next. (Range: 0 to -96.0dB)
seed – initialises random-noise generation (Range: 1 to 1000; default 0).
-d – double filtering.
-o – Drop out if filter overflows.

Understanding the SYNFILT Process

SYNFILT filters noise to create a time-variable single pitch (Mode 1) or a time-variable chord (Mode 2). Mode 1 (single pitch) uses a breakpoint daafile of Time and MIDI-pitch values, while Mode 2 (chord) uses the VARIBANK format of Time, Pch1, Amp1, Pch2, Amp2,... The output length is set by the last time value in this datafile.

The filter tightness (Q) determines how noisy the output will be: a high value (in the 100s) focusses mostly on the pitch(es) and less noise is present. Note that this is time-variable. Double-filtering will also make the pitch more prominent.

Because white noise is randomly generated, the output is more naturally varied than some synthesis methods. You also specify the number of harmonics to generate for each pitch: care must be taken that these never exceed the Nyquist frequency for the sample rate (typically 11050Hz for 44100 Sample Rate). Rolloff shapes the decrease in amplitude from one harmonic to the next, higher harmonics being normally quieter than lower ones.

There are two ways of introducing silence: one is by specifying MIDI-pitch 0 (more suitable for Mode 1), the other is by setting amplitude in Mode 2 to 0, which can be done for different pitches at different times, as required. As always with CDP, if you don't want a gradual change from one pitch to the next, insert a value just before the change that is the same as the previous value.


Note that the CDP Usage is currently misleading: the parameters are as above, in that order – the datafile is Param.1, Sample Rate is Param. 2, and so on. The supposed dur param. does not exist (duration is set by the datafile) and gain also does not exist, nor does the -n flag.

Musical Applications

The link with VARIBANK (Mode 2) is significant, as you can employ an existing datafile (as used by VARIBANK filtering or TUNEVARY, for instance) and possibly fade from one process into the other using MIX BALANCE. SYNFILT's output can also be rhythmicised using VOCODE, CROSS or similar processes.

End of SYNFILT


SYNSPLINE – Synthesise waveforms by smoothly joining randomly generated points

Usage

synspline synspline outfile srate dur frq splinecnt interpval seed [-smaxspline] [-imaxinterp] [-dpdrift -vdriftrate] [-n]

Parameters

outfile – output soundfile.
srate – sample rate of synthesized sound.
         Legal srates are 16000, 22050, 32000, 44100, 48000, 88200 and 96000
dur – duration of synthesized sound. (Range: 0.04 to 7200 secs.)
frq – fundamental frequency of output. (Range: 0.001 to 10000 Hz)
splinecnt – number of random values (to smooth between) per half-wavecycle. (Range: 0 to 64)
interpval – number of wavecycles over which one waveshape morphs to the next. (Range: 0 to 4096)
seed – same seed value produces identical output with same parameters. (Range: 0 to 64)
-smaxspline – maximum splinecnt. Causes random values of splinecnt to be generated in the range splinecnt to maxspline. (Range: 0 to 64; >=splinecount; ignored if zero.)
-imaxinterp – maximum interpval. Causes random values of interpval to be generated in the range interpval to maxinterp. (Range: 0 to 4096; >=interpval; ignored if zero.)
-dpdrift – semitone (half-)range of random drift in frequency. (Range: 0 - 12)
-vdriftrate – average time (in mS) to the next drift offset. (True time is 1/2 to 3/2 of this.) (Range: 1-1000 mS)
-n – normalise every cycle. (Default: cycles retain random valued amplitudes.)
frq, splinecnt, interpval, maxspline and maxinterp may vary over time.

Understanding the SYNSPLINE Process

SynSpline smoothly connects randomly generated points to create a constantly changing synthetic waveform. SPLINECOUNT sets the number of points to create per half-cycle, while MAXSPLINE sets an upper range for this value - the actual value being between SPLINECOUNT and MAXSPLINE; both of these are also time-variable.

The wavecycles morph (change shape) over a number of cycles. This is set by INTERPOLATE; again, the actual value is between this and MAXINTERP and, again, bth are time-variable.

Optional parameters PITCHDRIFT and DRIFTRATE set an amount of pitch variation and the rate of pitch drift. Minute changes of pitch are also an important factor in synthesising "realistic"-sounding tones. The level of each cycles is also set randomly, with an option to normlalize all cycles evenly.

Musical Applications

...

End of SYNSPLINE


TESSELATE – Create repeating patterns with shift in space and time

Usage

tesselate tesselate infile1 [infile2, infile3, ...] outfile datafile chans cycledur outdur type [-ffrom]

Parameters

infile – input soundfile(s) (MONO).
outfile – output soundfile (STEREO or MULTI-CHANNEL).
datafile – textfile containing two lines, with the same number of entries per line; the number of entries corresponding to the number of input files:
         Line 1 – Lists number of repeats before time-delayed repeat-cycle re-sychronises with the "cycledur"-delayed source.
         For example, with value 5,
         x    x    x    x    x    x    x   – "cycledur"-delayed source
         x     x     x     x     x     x   –  time-delayed source
         Line 2 – time-delay of initial entry of each source; maximum time-delay must be < cycledur.
         Allows sources to be arranged in some initial rhythmic order.
         For example, 0.0 0.1 0.2 0.3 0.4 0.45 0.55 0.7

chans – number of output channels. (Even number >= 2)
cycledur – delay between repetitions; the same for every source (secs).
         Sources can have a staggered entry, so they form a rhythmic phrase (see datafile, line 2).
         An increase in the delay on paired-channel(s) is determined by line 2 in the datafile.
outdur – duration of output sound (secs).
type –
         0: Delay drift between odd and even channels (e.g. 1 3 5 7 v. 2 4 6 8).
         1: Delay drift between adjacent channels (1 v. 2, 2 v. 3, 3 v. 4, etc).
         2: Delay drift between alternate channels (1 v. 3, 2 v. 4, 3 v. 5, etc).
         3 :Delay drift between every 3rd channel (1 v. 4, 2 v. 5, 3 v. 6, etc).
         and so on.
-ffrom – the pattern normally starts with all channels in sync. at time zero.
              To start later in the pattern, specify an integer number of cycles from which to start outputting sound (not working at the time of writing).

Understanding the TESSELATE Process

TESSELATE repeats a number of different (mono) sources with staggered start-times and projects these across stereo or multi-channel space. The whole of each source is used and is repeated over the course of the given outfile-length (outdur), with overlapping as necessary. The number of repeats and the starting times for each are given in the datafile, lines 1 and two respectively. For example, with three sources:
     line 1 – 5    5    5
     line 2 – 0.0 0.1 0.2
The delay-time between repeats (the same for each source) is set by cycledur. All sources start at different times (the program objects if they're the same).

The pattern normally starts with all channels synchonized at time zero. As sounds are repeated they drift out of sync; this delay drift is projected across different channels, as set by the type parameter.

Although the sounds are supposed to be different, the same source could be used by first copying it to different filenames.
The process is perhaps best explored using short sounds (such as single words or notes) to appreciate the cross-rhythms it creates. Similar cross-rhythmic processes are CERACU and SHIFTER.

Musical Applications

...

End of TESSELATE


TOSTEREO – Diverge from mono to stereo, in a stereo file

Usage

tostereo tostereo infile outfile start end [-oochans -lleftchan -rrightchan -mmixlev]

Parameters

infile – input soundfile (STEREO)
outfile – output stereo or multi-channel soundfile.
start – start time of divergence from mono to stereo.
end – end time of divergence from mono to stereo.
         N.B. If end time is before start time, the file goes from stereo to mono.

For multichannel output, the following optional parameters are selected as a group:
-oochans – output channel count (Range: 2 to 16; default: stereo).
-lleftchan – output left channel (Range: 1 to 16; default: 1).
-rrightchan – output right channel (Range: 1 to 16; default: 2).
-mmixlev – level of each channel when mixed to mono. Set this to avoid clipping.(Set to ZERO for a good default level.
         Value: 0 OR range 0.5 to 1. (Set to ZERO for a good default level.) >0.707 is not recommended.

Understanding the TOSTEREO Process

TOSTEREO causes a stereo file to start mixed to mono and then diverge to real stereo (or vice versa). The output is either to a stereo file or to a stereo pair within multi-channel space. For stereo output, the only parameters needed are the start and end times of the divergence.

For multichannel output, various optional parameters are used: the number of output channels (ochans), which of these carries the left channel of stereo (leftchan) and which the right (rightchan), and mixlev, the level of each channel when mixed to mono – also relevant for stereo output. In multichannel, if leftchan is selected but rightchan is set to zero, the signal will fork from the indicated channel to the channels on either side.

Musical Applications

...

End of TOSTEREO


TREMENV – Tremolo a sound, with width narrowed after peak

Usage

tremenv tremenv infile outfile frq depth winsize fineness

Parameters

infile –input soundfile.
outfile – output soundfile.
frq – frequency of the tremolo. (Range: 0 to 500 Hz)
depth – depth of the tremolo. (Range: 0 to 1; default: 1)
winsize – size of window for envelope extraction. (Range: 1 to 40 mS)
fineness – squeeze width of the tremolo. (Range: 1 to 100, integer)

Understanding the TREMENV Process

TREMENV is a variant of TREMOLO, in which the tremolo variation does not take effect until after the sound's peak amplitude.

Tremolo is a classic treatment, producing a cyclic amplitude variation. It uses a built-in Low-Frequency Oscillator (LFO), set in the traditional manner by the size depth and rate (frq) of amplitude variation. Above about 20 Hz frequency, the cycles are perceived as a pitch. The fineness parameter narrows the width of the tremolo, leaving gaps between the tremoloed segments.

Musical Applications

...

End of TREMENV


TS OSCIL – Create sound from time-series text data

Usage

ts oscil indata outsnd downsample [-dmaxdur] [-c] [-f]

Parameters

indata – text data as a list of numerical values.
outsound – output soundfile.
downsample – downward transposition of data in octaves (0 - 16)
     = timestretch (by speed) as a power of two
     downsample can vary over time: time values are times in output sound.
maxdur – maximum duration of output sound.(Range 1 - 600 secs)
-c – Interpolate downsampled data using cubic spline (default linear).
-f – Force duration to 'maxdur' (if Ness) by looping input data.
     Flag is invalid if maxdur is not specified.

Understanding the TS OSCIL Process

Time-series data for a waveform consists of a series of amplitude values – normally in the range -1.0 to +1.0. TS OSCIL takes a textfile list of such numbers and treats it as a soundwave plot, converting them into sound. The numbers are arbitrary (within the range) and can come from any source. The utility TS CONVERT can be used to convert arbitrary values into the required range for sound.

A simple test for this program is:

  1. take an existing very short sound, apply SNDINFO PRNTSND (which outputs two columns),
  2. then apply SNDINFO GETCOL to column 2, to extract the list of amplitudes
         NB: at CD sampling rate of 44.1KHz there will be over 41,100 numbers per second!
  3. apply TS OSCIL to turn the numbers back into the source sound.
         (The sample rate is not specified but appears to be 441000.)

Musical Applications

TS OSCIL is a means of turning an arbitrary series of numbers into sound. It may have been inspired by Xenakis's UPIC system, in which users could draw a waveform that could be sonified. A table of numbers, representing a single wavecycle, could be copied and pasted a number of times to lengthen it (though a dedicated application would be preferable). Note that unless the numbers are cyclic in some way, the result will be noise of some sort.

It may be possible to utilise CDP's PACKET and WAVEFORM functions to assist in creating an interesting series of numbers.

The reference to "Ness" in -f suggests that this function (part of the SoundLoom Data Pack) was intended for use with Ness Brass (physical modelling).

Related Functions

TS TRACE: Create sound from time-series data treated as a pitch-trace
TSCONVERT: Convert input data to specified range and format

End of TS OSCIL


TS TRACE – Create sound from time-series data treated as a pitch-trace

Usage

ts oscil indata outsnd harmdata tstr frq hrange [-dmaxdur] [-c] [-f]

Parameters

indata – text data as a list of numerical values.
outsound – output soundfile.
harmdata – textfile list of number pairs (harmonic-number & amplitude) for each harmonic in waveform.
     Fractional values (> 1) for harmonic-number generate inharmonic spectra.
     '0' (zero), instead of a filename, outputs a pure sinetone.
tstr – time-stretch of data (Range 1 - 10000).
     tstr can vary over time: time values are times in output sound.
frq – frequency of the mean pitch of the output. (Range 16 - 11025 Hz)
hrange – pitch range upwards (or down) from mean. (Range 0 - 48 semitones)
maxdur – maximum duration of output sound.(Range 1 - 600 secs)
-c – Interpolate downsampled data using cubic spline (default linear).
-f – Force duration to 'maxdur' (if Ness) by looping input data.
     Flag is invalid if maxdur is not specified.

Understanding the TS TRACE Process

A single column of numbers (within frequency range) is treated as the pitch-trace of some defined waveform. For timbre, additive harmonic data in defined in harmdata.

To experiment with the program, an actual pitch trace (from a short sound) can be extracted by running REPITCH GETPITCH Mode 2 (extract pitch as breakpoint file), followed by SNDINFO GETCOL for column 2. This gives a raw list of frequencies with no time values.

The relationship between these frequencies and that specified by frq is not too clear. In a test, a frq value matching roughly that of the extracted pitch-trace produced a very high steady pitch (hrange=0) and only the lowest acceptable value for frq came close to the original pitch. MAXDUR did not define the output duration, which was extremely short. Some further user experience of this function would therefore be welcome.

Musical Applications

A more useful function along similar lines may be REPITCH SYNTH, perhaps preceded by REPITCH GENERATE (creates pitchdata from time & midi values) and BRKTOPI.

The reference to "Ness" in -f suggests that this function (part of the SoundLoom Data Pack) was intended for use with Ness Brass (physical modelling).

Related Functions

TS OSCIL: Create sound from time-series text data
REPITCH SYNTH: Create the spectrum of a sound following the pitch contour in a pitch file
TSCONVERT: Convert input data to specified range and format.

End of TS TRACE


TSCONVERT – Convert input data to specified range and format.

Usage

tsconvert indata outdata min max [-cminstep | -r | -q | -Q]
               [-ddur [-ftimes]]  [-mmaxoutdur] [-l]

Parameters

indata – Input text data as a list of numerical values.
outdata – Output text data as a list of numerical values or other format.
min – Minimum value in output data values.
max – Maximum value in output data values.
         If minimum > maximum, the data contour is inverted in the output.

-cminstep – Compact data, so that no absolute value is less than minstep, and steps in the same direction are joined into the same step.
-r – Rectify the data around the mean.
       Mean value = minimum: other values become deviations from the mean.
-q – Quantise the data to whole-number values only.
-Q – Quantise the data and suppress adjacent equal-values.

-ddur – Generate a breakpoint file of time-value pairs, and duration dur, thus determining the timestep between output values.
-ftimes – Textfile: output (untimed) values at times specified in times file (needs -d flag).
-mmaxoutdur – Curtail the total outlength to the maximum of maxoutdur.
         With breakpoint outputs, values generated beyond maxoutdur are ignored.
         With the -c flag, the absolute size of values are summed.

-l – Output values vary as log of input values.

Understanding the TSCONVERT Process

TSCONVERT is not a synthesis function, but a data-editing utility that converts a simple list of numbers into an output text file that can be used with TS OSCIL, TS TRACE, and other functions as well.

The compulory parameters min and max set limits within which the data will be scaled. For TS OSCIL, these would be -1 and +1, for amplitude values. For TS TRACE: any reasonable frequency range between 16Hz and 11025 Hz (see its frq parameter).

Other options within the parameter set include setting a step value between successive numbers, quantising the data values, and generating a breakpoint data file with either equal timesteps determined by the total outlength or by a an optional list of times.

Musical Applications

The scope of this function is clearly greater than re-scaling values for use with TS OSCIL and TS TRACE.

User feedback on other applications would be most welcome.

Related Functions

TS OSCIL: Create sound from time-series text data
TS TRACE: Create sound from time-series data treated as a pitch-trace
COLUMNS: Utilities for data manipulation

End of TSCONVERT


TWEET – Replace FOFs in vocal sound by synthetic tweets or noise

Usage

tweet tweet 1 infile outfile exclude pitchdata minlevel pkcnt chirp [-w]
tweet tweet 2 infile outfile exclude pitchdata minlevel frq chirp [-w]
tweet tweet 3 infile outfile exclude pitchdata minlevel [-w]

Modes

1   Replace FOFs by synthetic tweets, based on number of peaks
2   Replace FOFs by synthetic tweets, based on frequency of peaks
3   Replace FOFs by noise

Parameters

infile –input soundfile.
outfile – output soundfile.
exclude – '0' or text file containing pairs of times from which FOFs will not be extracted.
         Enter '0' if not wanted.
pitchdata – breakpoint pitch data file of time and frequency, as created by REPITCH GETPITCH Mode 2.
         The pitch data may contain zeros (indicating moments of no-signal), but it must contain some significant frequency information.
minlevel – a level in dBs below the level of loudest FOF found; FOFs below this level are rejected. (Zero = no FOFS are rejected.)
pkcnt – Mode 1: number of peaks in the impulse: frequency changes with FOF size. (Range: 1 to 200)
frq – Mode 2: frequency of peaks in the impulse: frequency is fixed. (Range:1 to 200)
chirp – glissing of impulse. NB Care: output may clip. (Range: 0 to 30)
-w – FOFs are windowed (cosine smoothing of edges).

Understanding the TWEET Process

TWEET replaces FOFs found in the infile with synthetic sounds. It may be compared with PSOW SYNTH, which impose vocal FOFs on a stream of synthesized sound.

Musical Applications

...

End of TWEET


VERGES – Play source, with specified brief moments glissing up or down

Usage

verges verges infile outfile times [-ttransp] [-eexp] [-ddur] [-n] [-b |-s]

Parameters

infile –input soundfile.
outfile – output soundfile.
times – datafile of approx. times to introduce the glissando.
-ttransp – semitone transposition at start of verge (Range: -24 to +24 semitones; default: 5)
-eexp – slope of glissandi; higher values gliss faster. (Range: 1 [default] to 8)
-ddur – duration of glissandi. (Range: 20 to 1000 mS; default: 100 mS)
-n – use times given. (Default: looks for peak closest to time in source.)
-b – boost the level of the verges.
-s – suppress all input except verges (boost verges).

Understanding the VERGES Process

VERGES introduces a brief glissando up or down at the times specified. The normal operation would be to extract a set of times matching elements in the source. The duration dur, degree of transposition (transp) and speed of the glissando exp can all be set.

Musical Applications

...

End of VERGES


WAVEFORM – Generate a wavetable from existing sound

Usage

waveform make 1 infile outfile time cnt
waveform make 2 infile outfile time dur
waveform make 3 infile outfile time dur balance

Modes

1   Cut at time: extract a group of half-wavesets at specified time in infile
2   Cut at duration: extract given duration of source, cutting at zero-crossing
3   Impoose sine: combines specified duration-segment of infile with a sinusoid

Parameters

infile –input soundfile (MONO).
outfile – output soundfile.
time – time in infile where data is extracted. (Range: 0 to file-length secs.)
cnt – number of half-wavesets to extract. (Range: 1 to 256)
dur (Modes 2,3) – duration of sound-clip to extract (1 to 10000 mS; <= file-length).
balance – level of extracted material relative to the imposed sinusoid. (Range: 0.001 to 1)

Understanding the WAVEFORM Process

Waveform generates a wavetable cut from an existing sound or imposed on a sine wave. In each case, the cut segment is abutted to its inversion, making a symmetrical wavecycle (and doubling its duration). In Modes 1 & 2 this forms the output. In Mode 3 this is superimposed on a sinusoid of wavelength dur * 2.

The output of the process can provide a suitable input file for FRACTAL WAVE Mode 2.

Musical Applications

...

End of WAVEFORM

Last Updated 18 Jan 2024 for CDP Rel.8
Documentation: Archer Endrich and Robert Fraser
All observations & ideas for improvement appreciated
Composers Desktop Project
Email: composersdesktop@gmail.com
© Copyright 2023-24 Archer Endrich & CDP.