filename name of an ASCII textfile
ASCIIGET is a utility to print the characters in a text file to the console together with the corresponding ASCII decimal code.
...
End of ASCIIGET
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.
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.)
End of BOUNCE
1 Source is sampled as a waveform
2 Whole source is transposed for output events
fi (mono) input soundfile to be read at different speeds to generate output eventsMode 1: source must start & end at sample value 0.0: sampled as waveform.fo output file
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.)
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)
-l loudspeakers arrayed in a line. (Default: arrayed in a 'circle')
- 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)
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.
...
Brownian-controlled granular-like texture ??
End of BROWNIAN
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)
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.
End of CALTRAIN
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.
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).-eechosmax maximum number of echoes (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.
-rrand randomise timesteps between echoes in the echo-set; Range: 0-1, 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.
-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.)
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.
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
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
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.
...
End of CLICKNEW
1 Clip signal at specified_level
2 Clip half-waveforms at specified_fraction
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)
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.
...
End of CLIP
1 8-channel output
2 16-channel output (mode faulty at time of writing)
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)oscat* scatter time-placement (in output) in range used. (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.
ostrch* stretch time-placement in output. (Range: 1 to 64)
- 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.
pscast* pitch variation of output segments (Range: 0 to 12 semitones)
- The step to the next segment-placement in the output is multiplied by ostrch
- ostrch > 1 should generate silent gaps in the output.
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).
CRUNBLE 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).
...
End of CRUMBLE
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.
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.]
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
...
End of CRYSTAL
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).
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.
DISTCUT may have uses in creating segments for TEXTURE, or for other creative mixes derived from the same material.
End of DISTCUT
1 Interpolate between waveset-groups at marked points
2 Interpolate within alternate marked blocks
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
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.
...
End of DISTMARK
Sub-Group of 4:
DISTMORE BRIGHT DISTMORE DOUBLE DISTMORE SEGSBKWD DISTMORE SEGSZIG
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
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)
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.
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
infile input soundfile (MONO)
outfile output soundfile (MONO)
mult octave step up (Range: 1 to 4 octaves, possibly fractional)
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.
...
End of DISTMORE DOUBLE
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
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.
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.
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
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
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)
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.
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
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.
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.
End of DISTORTT
1 Timestretch file by repeating 'wavecycles'
2 Repeat 'wavecycles', but skip cycles to avoid timestretch
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
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.
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
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)
infile input soundfile (MONO)
outfile output soundfile (MONO)
grpcnt size of elements to operate on:
1 = single half-wavesetshift move alternate groups forward by shift waveset(group)s. (Range: 1 to 32767)
2 = 1 waveset + single half-waveset
3 = 2 wavesets + single half-waveset
etc.
(Range: 1 to 32767)
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.
...
End of DISTSHIFT
1 Warp-multiplier increments samplewise
2 Warp-multiplier increments wavesetwise.
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)
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.
...
End of DISTWARP
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)
DVDWIND shortens the sound by skipping portions, simulating the way information is skipped in a CD/DVD when fast-forwarded.
...
End of DVDWIND
1 Segments are adjacent
2 Segments are separated by step
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)
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.
...
End of ENVCUT
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
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 timetimesfile (Mode 25 only) times used to remove silent gaps in source sound.
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.)
...
End of ENVSPEAK
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)
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.
...
End of FLATTEN
1 All FOF(group)s extracted to special FOF-file, to use with FOFOEX CONSTRUCTOUTPUT OF MODE 1 is:2 A single FOF(group) is extracted
1) a fofbank soundfile containing extracted FOFs in ascending pitch order
2) a fofinfo textfile of position of (semitone) pitchsteps in soundfile
3 All FOF(group)s are extracted to separate soundfiles
infile input soundfile
outfile output binary FOF file or to soundfiles
pitch-brkpnt-data a breakpoint file with time and frq information.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 a file which defines the areas in the source sound from which FOFs will NOT be extracted.The information is provided as pairs of times-as-samplecnts: samplecount at start of passage to be excluded, and samplecount at end of passage to be excluded.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 time in file at which to extract FOF(group)
-w FOFs are windowed (cosine smooth of edges)
...
...
End of FOFEX EXTRACT
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
infile input fofbank (from FOFEX EXTRACT)
outfile output soundfile [AE: FOF-file?]
fofbank soundfile of extracted FOFS created by 'fofex extract'
fofinf a textfile with position of pitchsteps in soundfile, also created by the fofex extract process
pbrk breakpoint file of time frequency information. May contain zeros (no-signal) but NOT pitch-zeros (no-pitch). Must have SOME frq info.
env breakpoint-Envelope file, as text
gain output gain
f1(f2 f3) in mode 1, FOF to use, (lowest=1).nIn modes 6,7 use specifically numbered FOFsminf 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
...
...
End of FOFEX CONSTRUCT
1 Fractally distort soundfile by transposition
2 Generate fractal wave from (mono) input wavecycle
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:dur (Mode 2) Output duration (Range: 1-7200 secs)
- (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)
-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).
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.
...
End of FRACTAL WAVE
infile input analysis file[Query: is there a dur parameter as in WARP?]
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)
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.
See also the soundfile version FRACTAL WAVE....
...
End of FRACTAL SPECTRUM
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.
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 TailsE.g.: consonant onset, and vowel continuation of source.
(It is assumed that the first mark is at a Head segment.)
...
...
End of FTURANAL ANAL
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
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)
...
...
End of FTURANAL SYNTH
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:loc time in infile from which samples are read.
• frq = 1 Hz: reads 22050 samples forward and 22050 samples back.
• frq = 10 Hz: reads 2205 sampless forward and 2205 samples back.
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.
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]).
...
End of HOVER2
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-ssrate sample-rate of output file. (Default: 44100)
If < zero, chirps overlap, raises apparent pitch of stream
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.
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.
...
End of IMPULSE
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
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.
...
RF: Mode 1 tends to produce extreme distortion, even with very low-level infile.
End of MATRIX
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
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.)
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.
...
End of MOTOR
1 Oscillation of oscillation
2 Oscillation of oscillation of oscillation
3 Oscillation of oscillation of oscillation of oscillation
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.
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.
...
End of MULTIOSC
infile input soundfile (MULTICHANNEL)
outtextfile textfile giving order of sound-onsets across all channels
onsetlevel level at which sound onset is recognised
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.
...
End of ONSET
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.
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.
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
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.
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.
...
End of PHASOR
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
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.
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
...
End of PULSER PULSER
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
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.
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.
...
End of PULSER MULTI
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
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.
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).
...
End of PULSER SYNTH
1 Apply power factor over amplitude range of individual half-wavesets
2 Apply power factor over amplitude range of entire signal
infile input soundfile (MONO).
outfile output soundfile.
powfac exponent. (Range: 0.01 to 100; <1 exaggerates signal contour; >1 smooths signal contour.)
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.
...
End of QUIRK
infiles input MONO soundfiles 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.
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.)
...
End of REPAIR
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.
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 repeatsaccel (Mode 3) delay (and segment) shortening by the end of the repeats; e.g. accel = 2 gradually shortens delay to 1/2 its duration.
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)
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).-pprand randomise pitch of repeats within given semitone range (0 to 12); prand may vary through time.
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.
-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)
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.)
...
End of REPEATER
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
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.
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.
...
End of ROTOR
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.
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)
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.
...
End of SCRAMBLE
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
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.
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.
...
End of SORTER
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.)
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.
Also see: COMBINE CROSS, FORMANTS VOCODE, FORMANTS GET/PUT, SPECSPHINX
...
End of SPECENV
SEE SEPARATE file SPECFNU.HTM.
1 Fold the spectrum.
2 Invert the spectrum.
3 Randomise the spectrum.
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.
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).
...
End of SPECFOLD
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)
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.
The Release 8 version 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.
...
End of SPECTSTR
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
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.
SPECTUNE does not tune the partials, as the name suggests - that is done by PITCH TUNE and TUNE. 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.
...
End of SPECTUNE
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.
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.
...
End of SPECULATE
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.
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).
...
End of SPIKE
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.
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)
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).
...
End of SPIN STEREO
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.
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)
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.
...
End of SPIN QUAD
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.
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.
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.
...
End of SPLINTER
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.
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.
...
End of STUTTER
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)
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.
...
End of SUPPRESS
1 Single (varying) pitch
2 Simultaneous pitches
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:srate Sample rate of output file (Vals: 96000, 48000, 88200 or 44100 Hz)
- 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 ';'.
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.
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.
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
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.
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.
...
End of SYNSPLINE
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).
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.
...
End of TESSELATE
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.
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.
...
End of TOSTEREO
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)
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.
...
End of TREMENV
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
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).
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.
...
End of TWEET
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).
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.
...
End of VERGES
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
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)
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.
...
End of WAVEFORM