ana2pvx inanalfile outfile.pvx
inanalfile input CDP analysis file (.ana)
The suffix .ana should be included.
outfile output (mono) PVOC-EX file (.pvx)
The suffix .pvx should be included.
ANA2PVX is an easy-to-use utility for converting an existing CDP spectral file (.ana format), as created by PVOC ANAL, to PVOC-EX format. It complements the main conversion program for PVOC-EX: PVOCEX2.
PVOCEX2: Stereo phase vocoder based on CARL pvoc
PVOC ANAL: Convert soundfile to spectral file (.ana format)
PVOC SYNTH: Convert spectral file (.ana format) to soundfile
End of ANA2PVX
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).
CRUMBLE projects mono segments over progressively smaller groups of channels in multi-channel space, with possible timestretch. Specifically, it projects the source onto all channels, then segments it and distribute the segments over smaller and smaller groups of channels.
The choice is limited to 8-channel or 16-channel output, but this can be reduced afterwards by PAIREX (extract stereo pairs) or CHANNELX (extract single chans) plus optional interleaving (INTERLX).
...
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 FOFEX CONSTRUCT
2 A single FOF(group) is extracted
3 All FOF(group)s are extracted to separate soundfiles
infile input soundfile
outfile(s) output binary FOF file or to soundfiles
OUTPUT OF MODE 1 is:pitch-brkpnt-data a breakpoint file of time hertz pairs, created by PTOBRK .
1) a fofbank soundfile containing extracted FOFs in ascending pitch order
2) a fofinfo textfile of position of (semitone) pitchsteps in soundfileThe file may contain zeros (indicating moments of no-signal) but NOT pitch-zeros (indicating moments of no-pitch). It must contain SOME significant frequency information.excludefile (Mode 1) text file of pairs of times as sample-counts, defining areas in the source from which FOFs will NOT be extracted (i.e. sample-count at start of passage and sample-count at end of passage).
minlevel level in dBs below the level of loudest FOF found, below which FOFs are rejected. NB Zero means no FOFS are rejected.
fofcnt size of FOF group to extract
time (Mode 2) time in file at which to extract FOF(group)
-w FOFs are windowed (cosine smooth of edges)
Note that this process is paired with FOFEX CONSTRUCT (see below). Suitable applications have yet to be determined.
To determine time as sample-count (for Mode 1's excludefile), see the utility SNDINFO TIMESMP
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
fofbank soundfile of extracted FOFS created by FOFEX EXTRACT
outfile output soundfile [or FOF-file?]
fofinf a textfile with position of pitchsteps in soundfile, also created by the FOFEX EXTRACT
pbrk breakpoint file of time hertz information, created by PTOBRK.
(May contain zeros (no-signal) but NOT pitch-zeros (no-pitch). Must have SOME freq. info.)
env breakpoint-Envelope file, as text
gain output gain
f1(f2 f3) in mode 1, FOF to use, (lowest=1).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
This process is paired with FOFEX EXTRACT (see above).
Suitable applications have yet to be determined.
...
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
Example commandline:
multisynth synth synout.wav instr.txt 120
instr.txt:
cello 0 60 .7 6 8 62 .7 6 16 64 .7 6 24 65 .7 6 32 67 .9 12
score Text file with each line in the form:Insname followed by any number of sets-of-4 values representing
Time Pitch Loudness and Duration
e.g. (with two 4-sets) trumpet 0 62 .7 3 8 64 .9 12
MM Metronome mark determining tempo of sound output (BPM).
- Insname: name of instrument one of the following:
flute clarinet trumpet violin cello pianoRH   and pianoLH
PianoLH (left-hand) notes must immediately follow pianoRH (right-hand) notes in the score file and both must be present.
- Time: Note onset time, measured in thirds-of-semiquavers from time 0 (integer). Times must progress along each line of sets-of-4.
Cello, violin and piano (LH and RH) may play up to 4 different notes simultaneously,
so long as the note-combinations are possible on the real instrument.
- Pitch: Pitch of the note, as a MIDI value (integer).
- Loudness: A positive number between 0 and 1.
- Duration: Duration of the note, measured in thirds-of-semiquavers (integer).
Piano notes may overlay one another (sustained resonance), but other instruments may not:
their duration values must not extend beyond the start of the following note.
Simultaneously sounding notes must have the same duration.
-jjitter Maximum random divergence from regular note placement (in mS; default 15 mS).
-oochans Number of output channels (2-8; default stereo).
The sounds in successive lines will be spaced in the output-space from line-1, at the far left, to the last-line, at far right.
A single-line score output will be placed at front centre.
-b If ochans is greater than stereo, the loudspeaker array is assumed to be surround.
Use the "-b" flag to force a bounded array (with a left extreme and right extreme).
For surround, outputs numbered in order clockwise from front-centre.
For bounded, outputs numbered in order from far-left to far-right.
The process uses a special score format to mix a limited set of given sounds, optionally across multi-channel space. Once the score format has been grasped, the process is easy enough to run.
However, the use of third-of-a-semiquaver timings and an insistence on piano LH as well as RH suggest that this function may have been written for personal rather than general use. It also seems to ignore the fact that there are many free instrumental samples available nowadays and suitable ways of playing them.
It might be helpful to run the example above with different instruments before deciding whether to use this function.
End of MULTISYNTH
outfile Generic name for output soundfiles: must not end with a number
Files are numbered <outname>0.wav, <outname>1.wav, etc.
datafile Textfile of freq-amp pairs defining note-events in output files, for example:
220 0.5
275 0.5
330 0.5
440 0.5
spectrumfile Textfile of harmonic-number & amplitude pairs, defining the spectrum.
EITHER one line for all notes (e.g. 1 1.0 2 0.5 3 0.4 4 0.3 5 0.2)
OR one line for each frequency listed in datafile. (First line corresponds to lowest note, etc.)
srate Optional sample-rate (Values: 96000, 88200, 48000, 44100 or 32000 [not confirmed]).
The process outputs a series of fixed-length (0.5 sec) tones, each defined by frequency and amplitude (in datafile) and by timbre (in spectrumfile). The spectrum can be different for each note, or the same for all notes.
The function may have been written for test purposes (it appears to be unsupported in Sound Loom).
A more flexible solution with similar parameters would be a number of calls to NEWSYNTH Mode 1, which also defines an additive-synthesis spectrum for each output, but adds a DURATION parameter. NEWSYNTH Mode 2 also allows the sounds to be enveloped.
End of NEWSCALES
Two new modes (4 and 5) have been added to this process in Realease 8.
Example command line to create complex spectra:
newsynth synthesis 1 outsndfile spectrum.txt 44100 5.0 110
1 Generate tones with any number of (possibly varying) partials
2 Generate wave-packet streams with any number of (possibly varying) partials
3 Multi-channel mode: partials spread over N octaves fade in and out randomly
4 Fractally arrayed spikes
5 Duffing damped oscillator
outfile output soundfile generated by the data
spectrum (Modes 1-3) textfile of times, then a series of partial ratios and their relative levels.
Every line must have the same number of partials and levels.
On each line:Example data line: 0.00 1 1.0 2 0.9 3 0.8 4 0.7 5 0.6 [etc.]
- TIME: the first entry on each line is a time. Times must start at zero and increase.
- PARTIAL-NUMBER: can be whole-number or fractional (e.g. 2.5); first one must be 1.
Partial numbers must increase from entry to entry.- LEVEL: values are relative to 1st value. Normal range -1 to 0 to +1; negative values invert phase
Values >1 and <1 are also possible, as these are relative values
All Modes:
srate sample rate of the synthesised sound
Possible values: 96000, 48000, 24000, 44100, 32000, 22050
dur duration of the synthesised sound (Range: 0.04 - 7200 secs.)
frq fundamental frequency of the output. (Range Modes 1-4: 0.001 to 10000 Hz; Mode 5: 1.0 to 200 Hz.)
frq can vary over time.
Mode 2 only:
-nnarrowing narrowing (>1) or broadening (<1) of the packet envelope (Range: 0 to 1000).
Values near zero may produce clicks (square-wave envelope).
Very high values with very high frequencies may produce click-impulses or silence.
-ccentring position of peak of packet envelope:Mode 3 (multi-channel) only:
- 0 peak at the centre
- -1 peak at the start
- 1 peak at the end
chans number of output channels
maxrange maximum range of transposition of the spectral components (in whole octaves)
rate average time between changes to partial content of output (0.004-100 secs)
-urise time to expand to the maximum range (0-100 secs)
-dfall time to return to the initial range, before the end (0-100 secs)
-fsteady duration of steady-state sound at the end (0-3600 secs)
-ssplice splice-width for partial entry and exit (2-50 mS)
-nN Same fixed number of partials chosen for each event (0-1000)
-tspacetype type of output spatialisation:
0=random; other values only if chans=8:-rrotspeed the rotation speed (for certain spatialisation types)
- Positions alternate between Left and Right sides, but are otherwise random.
- Positions alternate between Front and Back, but are otherwise random.
- Rotating clockwise or anticlockwise.
- Random permutations of all 8 channels.
- ... plus all possible pairs of channels.
- ... plus all possible meaningful small and large triangles.
- ... plus square, diamond and all-at-once.
In types 4 to 7, all members of perm are used before next perm starts.- Alternate between all-left and all-right.
- Alternate between all-front and all-back.
- Alternate between all-square and all-diamond.
- Rotate triangle formed by loudspeakers 2-apart clockwise.
- Rotate triangle formed by loudspeakers 3-apart clockwise.
- Rotate triangle formed by loudspeakers 2-apart anticlockwise.
- Rotate triangle formed by loudspeakers 3-apart anticlockwise.
-a activate an initial increase in the number of partials starting from only the fundamental
-z activate a decrease in the number of partials as the sound moves from steady-state back to the fundamental
-x (Xclusive): change all partials (as far as possible) from event to event
-m (Move): distribute partials in space
-j (Jump): all partials are assigned to the same location for any one event
-efrom (Emerge): the sound emerges from channel from, used with
-Etime (Emerge): the time from the beginning of the sound over which the sound emerges
-cto (Converge): the sound converges to channel to, used with
-Ctime (Converge): the time from the end over which the sound convergesNB: flags -j, -e, -E, -c and -C are only operational if -m is set. They work together as an optional set of parameters, but note the following:
NB: flags with NO parameters must be placed on the command line AFTER any flags WITH parameters.
Mode 4 (fractal spikes) only:
Waveform consists of spikes distributed fractally over the wavelength.
atk Length of spike attack (0-16 samples).
ea Rise curve of attack (Range: 0.25 to 4.0; <1 rise slow-then-fast; >1 fast-then-slow)
dec Length of spike decay (0-16 samples).
ed Fall curve of decay (Range: 0.25 to 4.0; >1 fall fast-then-slow; <1 slow-then-fast)
Spike placement parameters:
atoh Ratio of on-time (a) to 1/2-grouplength (see diagram*) in grouplength,
which determines relative length of "a" (ON) and "b" (OFF).
gtow Ratio of grouplen to total-wavelength, which determines length of trailing silence (see diagram*).
Blocks "a" then subdivided in same proportions again, etc. iteratively.
Spikes are then placed at start of each "a" block in each subdivision.
-fflv Alternate "a" blocks in waveform are assigned positive and negative values.
flv determines at which fractal level this +- switch takes place. (Range: 0-256)
Level 0 uses the large blocks in the uppermost (slowest) level.
NB Maximum level of flv will depend on various other parameters.
If flv is set too high it will be reset to the maximum fractal level achievable with the current parameters.
-rrnd Subdivision places 2nd "a" segment randomly between the true pos and the grouplenth-end (Range: 0-1).
-e (not with rnd) Subdivision places 2nd "a" at END of grouplength.
*diagram is available in commandline usage
frq, atoh, gtow and rnd can vary over time.
Mode 5 (duffing) only:
damping Damping of forced oscillation (Range: 0.15 to 2)
damping can vary over time.
k, b Coefficients determining the nature of the damping. (Ranges: k -10 to 10; b 20 to 50)
Modes 1 and 2 generate a waveform based on a pre-defined and possibly time-varying spectrum.
The partial number can be harmonic (e.g. 2) or inharmonic (e.g. 2.1), except for the fundamental, which must be 1.
Mode 2 further allows a narrowing of each wave-cycle envelope (too high a value produces silence), which ultimately reduces to clicks, and a centring of this envelope's peak on the start, middle or end of each cycle.
Mode 3 produces a multi-channel output, and its partial content changes by random transposition every rate seconds, within maxrange, with further parameters to control this change.
In Mode 4, the waveform consists of spikes distributed fractally over the wavelength and the output is invariably a buzzy tone, due to the added spikes and fractalisation. (See the CDP commandline usage for a useful diagram which helps to explain the parameters.)
Each wavelength is divided into two portions a group-length followed by a trailing silence. The group-length is subdivided into two ON-OFF blocks "a" and "b". The ratio between these is set by atoh (on-ratio), while gtow sets the ratio of the grouplength to the overall wavelength and hence determines the length of the trailing silence. The ON blocks are subdivided in the same proportions iteratively and spikes are placed at the start of each ON block in the subdivision. The optional flv (fractal level) determines the level at which positive and negative values are switched. Finally, the optional rnd randomizes the position of the second ON segment, in relation to the grouplength end, but must not be used with the -e flag, which places the second ON block at the grouplength end.
Mode 5 is an experimental Duffing oscillator. (In tests the damping parameter seemed to have no effect.)
N.B. Care should be taken, especially with middle to high fundamental frequencies, that no partial is specified which would be above the Nyquist limit (22050 Hz). In Mode 4, with a very restricted frequency range, a common error message is: "Cannot proceed with these parameters (frq possibly too high)".
...
End of NEWSYNTH
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
pvocex2 [-A |-S] [-fx] [-oNosc] [-K | -H | -R] [-Px | -Tx] [-Wx] [-Nsamps] [-m] [-v] infile outfile
Example command line to convert a soundfile to PVOC-EX:
pvocex2 -A one.wav oneX.pvx [using defaults]
Example command line to convert a PVOC-EX file to a soundfile:
pvocex2 -S one.pvx one.wav
infile input soundfile for analysis or PVOC-EX file (.pvx) for re-synthesis.
outfile output .pvx file (analysis) or soundfile (synthesis).
Soundfile formats supported: .wav, .aiff, .aif, .afc, .aifc
N.B. the soundfile extension must be included in the filename.
Flags:
-A perform Analysis only: output is .pvx file.
or
-S perform Synthesis only: input is .pvx file.
or
-I show Format info of .pvx file (no outfile required).
-fx set Frame Type for analysis file:NB: The -f flag is ignored unless -A is set.
- x = 0 = Amplitude, Frequency (default)
- x = 1 = Amplitude, Phase (= Soundhack format)
- x = 2 = Complex (real, imaginary)
-oNosc use osc-bank resynthesis using Nosc oscillators (default = N/2 +1)
-K use Kaiser window
-H use von Hann window
-R use Rectangular window
Default: Hamming window, or window from .pvx header
-Px Apply Pitch scaling rate x (synthesis)
-Tx Apply Time scaling rate x (synthesis)
NB: time/pitch scaling requires the default AMP,FREQ pvx format
-Wx Set window overlap factor (analysis) Values: 0,1,2,3, default 1
-Nsamps Set analysis window to samps samples (default 1024)
-m Write soundfile with minimum header (no PEAK data)
-v Suppress progress messages
CDP supports two phase vocoder formats for frequency analysis files: those converted using PVOC ANAL (suffix .ana), and the PVOC-EX format (suffix .pvx), devised by Richard Dobson and based on WAVE_EX. (See his PVOC-EX page for further details.)
PVOCEX2 is a stereo phase vocoder, converting a soundfile to PVOC-EX or from PVOC-EX to a soundfile.
The -A (analysis) or -S (re-synthesis) flag must be specified in the commandline.A third option (-I) gives information about a .pvx file.
Some points to note in connection with .pvx files:
- All of the CDP spectral processes support PVOC-EX; however, you cannot process stereo .pvx files within CDP, only mono ones
- You must supply suitable file suffixes when converting, e.g. myfile.wav, not just myfile.
- The CDP documentation tends to assume that frequency analysis files are exclusively .ana files.
- The key analysis parameters for PVOCEX2 are the same as for PVOC ANAL: see -N (points) and -W (overlap) flags.
- PVOC-EX is the phase-vocoder file format used throughout Csound.
The Sound Loom GUI has now been converted (vn. 17.04E) to handle .pvx, and Soundshaper will also be revised.
ANA2PVX: Convert CDP analysis file (.ana format) to PVOC-EX format (.pvx)
PVOC ANAL: Convert soundfile to spectral file (.ana format)
PVOC SYNTH: Convert spectral file (.ana format) to soundfile
End of PVOCEX2
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 of the same length in order of output channels.
Input files must be listed with all channel 1 sources in order, first, then all channel 2 sources in order, etc.
generic-outfilename root name for a series of outfiles.
channels number of channels in the output files.
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.
SEE ALSO: 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.
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 may suggest that is done by PITCH TUNE and TUNEVARY.
Instead it finds the most prominent pitch in the spectral file and transposes the whole input to the nearest tempered pitch (Mode 1), or the nearest listed pitch (Modes 2 and 3), or to a given pedal pitch and its harmonics (Mode 5). You can also optionally set limits for low and high MIDI pitch, plus start and end times for the effect. Other optional parameters are probably best left at their default values.The other modes produce text reports on the pitch(es) found, which may be useful in understanding what the effect is doing.
...
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 PARTIALS
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
ts oscil indata outsnd downsample [-dmaxdur] [-c] [-f]
indata text data as a list of numerical values.
outsound output soundfile.
downsample downward transposition of data in octaves (0 - 16)
= timestretch (by speed) as a power of two
downsample can vary over time: time values are times in output sound.
maxdur maximum duration of output sound.(Range 1 - 600 secs)
-c Interpolate downsampled data using cubic spline (default linear).
-f Force duration to 'maxdur' (if Ness) by looping input data.
Flag is invalid if maxdur is not specified.
Time-series data for a waveform consists of a series of amplitude values normally in the range -1.0 to +1.0. TS OSCIL takes a textfile list of such numbers and treats it as a soundwave plot, converting them into sound. The numbers are arbitrary (within the range) and can come from any source. The utility TS CONVERT can be used to convert arbitrary values into the required range for sound.
A simple test for this program is:
- take an existing very short sound, apply SNDINFO PRNTSND (which outputs two columns),
- then apply SNDINFO GETCOL to column 2, to extract the list of amplitudes
NB: at CD sampling rate of 44.1KHz there will be over 41,100 numbers per second!
- apply TS OSCIL to turn the numbers back into the source sound.
(The sample rate is not specified but appears to be 441000.)
TS OSCIL is a means of turning an arbitrary series of numbers into sound. It may have been inspired by Xenakis's UPIC system, in which users could draw a waveform that could be sonified. A table of numbers, representing a single wavecycle, could be copied and pasted a number of times to lengthen it (though a dedicated application would be preferable). Note that unless the numbers are cyclic in some way, the result will be noise of some sort.
It may be possible to utilise CDP's PACKET and WAVEFORM functions to assist in creating an interesting series of numbers.
The reference to "Ness" in -f suggests that this function (part of the SoundLoom Data Pack) was intended for use with Ness Brass (physical modelling).
TS TRACE: Create sound from time-series data treated as a pitch-trace
TSCONVERT: Convert input data to specified range and format
End of TS OSCIL
indata text data as a list of numerical values.
outsound output soundfile.
harmdata textfile list of number pairs (harmonic-number & amplitude) for each harmonic in waveform.
Fractional values (> 1) for harmonic-number generate inharmonic spectra.
'0' (zero), instead of a filename, outputs a pure sinetone.
tstr time-stretch of data (Range 1 - 10000).
tstr can vary over time: time values are times in output sound.
frq frequency of the mean pitch of the output. (Range 16 - 11025 Hz)
hrange pitch range upwards (or down) from mean. (Range 0 - 48 semitones)
maxdur maximum duration of output sound.(Range 1 - 600 secs)
-c Interpolate downsampled data using cubic spline (default linear).
-f Force duration to 'maxdur' (if Ness) by looping input data.
Flag is invalid if maxdur is not specified.
A single column of numbers (within frequency range) is treated as the pitch-trace of some defined waveform. For timbre, additive harmonic data in defined in harmdata.
To experiment with the program, an actual pitch trace (from a short sound) can be extracted by running REPITCH GETPITCH Mode 2 (extract pitch as breakpoint file), followed by SNDINFO GETCOL for column 2. This gives a raw list of frequencies with no time values.
The relationship between these frequencies and that specified by frq is not too clear. In a test, a frq value matching roughly that of the extracted pitch-trace produced a very high steady pitch (hrange=0) and only the lowest acceptable value for frq came close to the original pitch. MAXDUR did not define the output duration, which was extremely short. Some further user experience of this function would therefore be welcome.
A more useful function along similar lines may be REPITCH SYNTH, perhaps preceded by REPITCH GENERATE (creates pitchdata from time & midi values) and BRKTOPI.
The reference to "Ness" in -f suggests that this function (part of the SoundLoom Data Pack) was intended for use with Ness Brass (physical modelling).
TS OSCIL: Create sound from time-series text data
REPITCH SYNTH: Create the spectrum of a sound following the pitch contour in a pitch file
TSCONVERT: Convert input data to specified range and format.
End of TS TRACE
tsconvert indata outdata min max [-cminstep | -r | -q | -Q]
[-ddur [-ftimes]] [-mmaxoutdur] [-l]
indata Input text data as a list of numerical values.
outdata Output text data as a list of numerical values or other format.
min Minimum value in output data values.
max Maximum value in output data values.
If minimum > maximum, the data contour is inverted in the output.
-cminstep Compact data, so that no absolute value is less than minstep, and steps in the same direction are joined into the same step.
-r Rectify the data around the mean.
Mean value = minimum: other values become deviations from the mean.
-q Quantise the data to whole-number values only.
-Q Quantise the data and suppress adjacent equal-values.
-ddur Generate a breakpoint file of time-value pairs, and duration dur, thus determining the timestep between output values.
-ftimes Textfile: output (untimed) values at times specified in times file (needs -d flag).
-mmaxoutdur Curtail the total outlength to the maximum of maxoutdur.
With breakpoint outputs, values generated beyond maxoutdur are ignored.
With the -c flag, the absolute size of values are summed.
-l Output values vary as log of input values.
TSCONVERT is not a synthesis function, but a data-editing utility that converts a simple list of numbers into an output text file that can be used with TS OSCIL, TS TRACE, and other functions as well.
The compulory parameters min and max set limits within which the data will be scaled. For TS OSCIL, these would be -1 and +1, for amplitude values. For TS TRACE: any reasonable frequency range between 16Hz and 11025 Hz (see its frq parameter).
Other options within the parameter set include setting a step value between successive numbers, quantising the data values, and generating a breakpoint data file with either equal timesteps determined by the total outlength or by a an optional list of times.
The scope of this function is clearly greater than re-scaling values for use with TS OSCIL and TS TRACE.
User feedback on other applications would be most welcome.
End of TSCONVERT
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