MAIN INDEX
Charts Index
Time Domain Index
Spectral Index
CDP WEBSITE
FILES INDEX
I: CDP Files etc.
  ANALYSIS
  ENVELOPE
  FORMANTS
  PITCH TRACE
  Presets for:
    GrainMill
    Sound Loom
    Soundshaper
  SOUNDFILES
  TRANSPOS'N

II: Special Text
  BATCH
  BREAKPOINT
  HISTORY
  MIX FILES
  MCHANPAN
  TUNING

III: Codes
  SHUFFLE
  GRN REORDER

IV: Text files
  WEAVE
  ENVEL CREATE
  SEQUENCE
  SEQUENCE2
  Filter:
    BANKFRQS
    ITERATED
    USERBANK
    VARIBANK
    VFILTERS
  Focus:
    FREEZE
    HOLD
  Grain:
    FIND
    REMOTIF
    REPITCH
    REPOSITION
    RERHYTHM
  Hilite:
    BAND
    GREQ
    VOWELS
  Repitch:
    GENERATE
    INSERTSIL
    INSERTZEROS
    VOWELS
  SFEdit:
    Times File
    JOINDYN
    JOINSEQ
  SndInfo:
    MAXSAMP
    PRNTSND
  SpecInfo:
    OCTVU
    PEAK
    PRINT
    REPORT
  SubMix:
    FADERS
    ONGRID
    PAN
  SYNTH CLICKS
  Texture:
    Note Data
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  



CDP circles logo
Composers' Desktop Project

CDP Files & Codes: Input and Output Formats

~ for detailed, flexible, off-line sonic shaping ~

INDEX

Index: '<–' = an Input File     '–>' = an Output File

Group I – Analysis, Binary & Sound Files
Group IV (Cont.)– Text Files
for/from Various Functions
Analysis File from PVOC .ana FOCUS FREEZE <– Freeze File .txt
Envelope File from ENVELOPE EXTRACT .env [.brk] FOCUS HOLD <– Hold File .txt
Formant File from FORMANTS GET .for GRAIN FIND –> Find File .txt
Pitch Trace File from REPITCH GETPITCH .frq [.brk] GRAIN REMOTIF <– Remotif File .txt
Presets: for GrainMill .grn [.txt] GRAINREPITCH <– Repitch File .txt
Presets: for Sound Loom ('Patches') .#123 GRAIN REPOSITION <– Reposition File .txt
Presets: for Soundshaper .dat GRAIN RERHYTHM <– Rerhythm File .txt
Soundfiles .wav [.aif] HILITE BAND <– Bands File .txt
Transposition File from/to REPITCH functions
.trn HILITE GREQ <– EQ File .txt
Group II – Text Files, Special
HILITE VOWELS <– Vowels File
.txt
Batch Files / HOUSEKEEP BATCHEXPAND
.bat REPITCH GENERATE <– Generate File .txt
Breakpoint Files
.brk / .txt REPITCH INSERTSIL <– Silence File .txt
History Files: Soundshaper / Sound Loom .hst/.2004 REPITCH INSERTZEROS <– Zeros File .txt
Mix Files for SUBMIX MIX / NEWMIX
Breakpoint files for MCHANPAN
.mix / .mmx
.brk / .txt
REPITCH VOWELS <– Vowels File .txt
Tuning Files for PITCH TUNE / SYNTH CHORD .tun SFEDIT CUTMANY, EXCISES & MASKS
<– Times File
.txt
Group III – Code Inputs
SFEDIT JOINDYN <– Pattern File .txt
Codes for: BLUR SHUFFLE and
DISTORT SHUFFLE
abc-cbbba SFEDIT JOINSEQ <– Pattern File .txt
Codes for: GRAIN REORDER abcde:b SNDINFO MAXSAMP –> Maxsamp File .txt
Group IV – Text Files
for/from Various Functions
SNDINFO PRNTSND –> Print Sound File .txt
BLUR WEAVE <–Weavefile .txt SPECINFO OCTVU –> Octave View File .txt
ENVELOPE CREATE <– Createfile .txt SPECINFO PEAK –> Spectral Peak File .txt
EXTEND SEQUENCE <– Sequence File .txt SPECINFO PRINT –> Print Analysis File .txt
EXTEND SEQUENCE2 <– Sequence File .txt SPECINFO REPORT –> Spectral Report File .txt
FILTER BANKFRQS –> Frequencies File .txt SUBMIX FADERS <– Balance & Envelope Files .brk
FILTER ITERATED <– Iteration File .txt SUBMIX ONGRID <– Ongrid Times File .txt
FILTER USERBANK <– Userbank File .txt SUBMIX PAN <– Pan File .brk
FILTER VARIBANK <– Varibank File .txt SYNTH CLICKS <– Clicks File .txt
FILTER VFILTERS <–> Vfilters Files .txt TEXTURE <– Note Data Files .txt

Analysis Files: .ana
Analysis files hold audio data in a special way.
  • binary files containing analysis data as frequency amplitude pairs (channels) grouped into windows
  • The Spectral Domain processes require ana format inputs. This is all you really need to know about them.
  • Soundfiles are converted to analysis files with PVOC ANAL Mode 1.
  • There are some options when creating analysis files, which relate to a trade-off in accuracy regarding frequency and time resolution. Understanding them could help you to fine-tune the results in certain situations.
Band files for HILITE BAND: .txt

[lof  hif  bitf various]
113    160 1000 0.25
160    226 0000
452    640 1000 0.01 1.0
905   1280 1100 1.0  0.01
1280  1400 1100 0.25 1.0 
1810  2560 1010 0.5  +5000
3000  4000 1010 0.6  2.0
4000  5000 1010 0.7  +8000
5120  7240 1010 0.8  3.0
7240 10240 1011 0.7  +3
Here we have a flexible, user-definable spectrum divider, in which the frequency bands can be precisely set (lof hif) and processed separately: 4 bitflags can be set to handle amplitude, crescendo or decrescendo, and transpositions that can be harmonic (logarithmic: multipliers, i.e., ratios) or inharmonic (additions).
  • The band file is an editable text file.
  • Bit 1 (e.g., 1000) sets an overall amplitude (for that band). Set the level in the field after the 4 bitflags.
  • Bit 2 defines an amplitude between two amplitude fields after the 4 bitflags: amp1 and amp2. This will be a crescendo or a decrescendo depending on the respective levels. Also set Bit 1 or the whole band will be zeroed. (This makes it easy to turn the effect on or off to assess the difference.)
  • Bit 3 sets transpositions. These are always multipliers, i.e., ratios that preserve the harmonic relationship between the partials, but you can also precede a value in Hz with a '+' sign: this frequency is added into the spectrum of that band, creating inharmonic results. Again, remember to set Bit 1 or that band will be zeroed and the resultant sound may be completely silent: i.e., 0010 seems to produce this (unwanted!) result. The Chart of Transposition Ratios may be helpful.
  • Bit 4 means that previous transpositions are added to the (whole) original spectrum. Bit 3 also needs to be set for this to work. If you use a '+' sign, it may make the result more inharmonic, but I'm not sure that it makes any difference to put in the '+' sign – or should you put in a value in Hz here? (AE)
  • To be effective, the bands you define need to relate to the strongest parts of the sound's spectrum. You can get information on this from the peak energy file. The sound used for the peak energy file example was balsam.wav (the spoken text used in the aebigone GrainMill example, and the bitflag file was designed using this information.
In the example bitflag file, the 10 lines do the following:
  1. 113 to 160: Set an overall amplitude for that band. A 0 bitflag is not allowed in Line 1 (i.e., 0000).
  2. 160 to 226: Zero this band.
  3. 452 to 640: Crescendo from a very low to full amplitude.
  4. 905 to 1280: Decrescendo from full amplitude to very low.
  5. 1280 to 1400: Crescendo from ¼ to full amplitude.
  6. 1810 to 2560: Set amplitude to half and add 5000Hz to this band.
  7. 3000 to 4000: Set a slightly higher amplitude than before and transpose by a ratio of 2 (i.e., an octave).
  8. 4000 to 5000: Set amplitude a little higher still and add 8000Hz to this band.
  9. 5120 to 7240: Set the amplitude to 4/5ths full amplitude and transpose by about a minor 13 th, i.e., close to 15 semitones.
  10. 7240 to 10240: Make an (overall?) transposition and add the result in – don't really know how this relates to the previous transpositions (AE).
Note that the bands are not allowed to overlap. This means that you cannot do different things to the same band in the same bitflag file. However, you can achieve this by editing the bitflag file and re-running the program.

Although it must be said that this program cries out for a real-time implementation, with some experience and the use of batch files, the combination of frequency bands and processing options makes it a very powerful tool.

Banks of frequencies files from FILTER BANKFRQS: .txt
FILTER BANKFRQS creates text files containing lists of frequencies. These files can be edited to add amplitude data (numeric: 0.00100 to 10000, or in dB, such as '-3dB'). They then can be used as inputs to FILTER ITERATED and FILTER USERBANK (in Mode 1 for Hz input). FILTER BANKFRQS has 6 Modes to produce 6 different types of file. The following lists outputs for each of these modes:
[M1-HARMONIC] [M2-ALTERNATE] [M3-SUBHARMONIC]
100.000000     100.00000      1000.000000
200.000000     300.00000      500.000000
300.000000     500.00000      333.333333
400.000000     700.00000      250.000000
500.000000     900.00000      200.000000
600.000000                    166.666667
700.000000                    142.857143
800.000000                    125.000000
900.000000                    111.111111

[M4-OFFSET] [M5-EQ INTERVALS] [M6-INTERVAL SIZE]
100.000000     100.00000      100.000000
244.000000     121.152766     118.920712
344.000000     146.779927     141.421356
444.000000     177.827941     168.179283
544.000000     215.443469     200.000000
644.000000     261.015722     237.841423
744.000000     316.227766     282.842712
844.000000     383.118685     336.358566
944.000000     464.158883     400.000000
               562.341325     475.682846
               681.292069     565.685425
               825.404185     672.717132
                              800.000000
                              951.365692
  • These are editable text files.
  • The frequency range provided for these examples was 100 to 1000.
  • Mode 1 provides a list of integer multiples of the lowest frequency, i.e., 'harmonics'.
  • Mode 2 selects the alternate members of this list of harmonics.
  • Mode 3 provides a list of subharmonics downwards from the highest frequency.
  • Mode 4 allows you to offset the frequencies above the lowest frequency. The offset used here was 44Hz.
  • Mode 5 divides the frequency range into equal intervals, producing an unusual result when applied.
  • Mode 6 divides the frequency range into equal intervals of a size specified in semitones. The interval used here was 3 (a minor third), but note that fractional semitones may be used. Thus 0.5 would provide a filter bank of quarter tones: ½ a semitone, or 50 cents, so there are many possibilities to explore.
Batch Files / HOUSEKEEP BATCHEXPAND: .bat
Batch Files are actually a type of Preset that can run a whole series of processes. This can be a powerful way to build up and run libraries of complex processing sequences.
  • Batch files are normal text files, with a special suffix that identifies it. This suffix is .bat on PCs. In Sound Loom this mechanism is called Instruments.
  • They contain 'commands', which are calls to executable program modules. The program name and its parameters are given on a separate line of the batch file. These are called 'command lines'. They appear in the example below as the lines that are not comments ('rem').
  • Note that you have to let a command line wrap – carriage returns in the text file cause the command to terminate at that point. That is why copies of Batch Files that need to have carriage returns in order to print properly have to be separate.
  • 'echo on' and 'echo off' are commands belonging to MSDOS itself. They switch on and off displaying the Batch File on-screen as it runs so that you can watch its progress.
  • A Batch File is run by a Command Line Interpreter, such as MSDOS.
  • 'rem' statements are comments that can be put into the text of the Batch File to help explain what it is and what it is doing – vital to document your work.
  • The Batch File below is an edited version of the History File produced automatically by Soundshaper as the programs were run.
  • Note that the full path has been removed, leaving only the names of the soundfiles. This is because you go to the directory where the soundfiles (and Batch Files) reside in order to use the Batch Files, i.e., the 'current directory'. MSDOS always looks in the current directory first, so there is no need for the full path. More than that, it can only find executable programs somewhere else (as specified in the 'path'). All the files needed by these programs (Batch, Breakpoint, other Text files etc.) have to be in the current directory.
An Example Batch File
rem rmrepeat.bat - batch file from Soundshaper rmrepeat.hst
rem This batch file chains 3 functions to produce a churning 
rem   and deeply sonorous result.
rem Date/Time: 16/08/04 21:54:34

echo on
rem MODIFY RADICAL:  Mode 5 is Ring Modulation, Mod Freq is 1000
rem (1000 is higher than the max shown in Soundshaper, but 
rem it is accepted by the program)
modify radical 5  "asrcmix.wav"  "asmrm.wav"  1000
rem (the speech part of the source was most affected)

rem DISTORT REPEAT: Parameters: Multiplier and Cyclecount
distort repeat  "asmrm.wav"  "asmrmrpt.wav"  2  2
rem (this doubles the lengths and roughs it up a lot!)

rem MODIFY SPEED: lowered by 11 semitones
modify speed 2  "asmrmrpt.wav"  "asmrmrptd11.wav"  -11 
rem (nearly doubles the length again, deepening and smoothing)

echo off

HOUSEKEEP BATCHEXPAND is used to alter existing batchfiles. You can supply new sounds and parameter values to batchfiles which use the same command repeatedly, or at least the same parameter in the same column, in order quickly to ring the changes on one or several sounds. It will not handle the complex batchfiles illustrated above.

  • In Mode 1:
    • there is one soundfile in the existing batchfile
    • one, two or more soundfiles may be input to BATCHEXPAND
    • the datafile can have 1, 2 or more parameter values
    • each parameter value is applied to each soundfile in turn
    • thus the number of output soundfiles is soundfiles_in x data_values
    • Existing batchfile and other inputs:
      Existing Batchfile:
      modify speed 2 infile outfile -3  [one input soundfile]
      
      Soundfile Inputs to HOUSEKEEP BATCHEXPAND:
      filea fileb  [two or more infiles are OK]
      
      Datafile:  [two different values for the same parameter]
       7
      10
      
      The resulting output batchfile will look like this:
      modify speed 2 filea outfile1  7  [each parameter value is applied to filea]
      modify speed 2 filea outfile2 10
      modify speed 2 fileb outfile3  7  [each parameter value is applied to fileb]
      modify speed 2 fileb outfile4 10
      
  • In Mode 2:
    • there may be more than one soundfile used in the existing batchfile
    • you supply a matching number of soundfiles to BATCHEXPAND
    • the datafile can have the same or different parameter values, but the number of values must match the number of soundfiles
    • each successive parameter value is applied to each successive soundfile, in the same order
    • Existing batchfile and other inputs:
      Existing Batchfile:
      modify speed 2 sound1 outfile1 2  [only a single line]
      
      Input soundfiles to HOUSEKEEP BATCHEXPAND:
      infilea infileb infilec  [3 infiles, one could be the same                       
                               as that in the batchfile]
      
      Datafile:  [3 different parameter values are supplied]
       7
      10
      -5
      
      The resulting output batchfile will look like this:
      modify speed 2 infilea outfile1 7  [each parameter value 
      is applied once to each soundfile in the same order]
      modify speed 2 infileb outfile2 10
      modify speed 2 infilec outfile3 -5
      
You might want to refer back to the Reference Manual text for this one.
The Breakpoint Text File: .brk or .txt
[time value]
0.0    0
4.5   12

AND

[time value]
0.0    0
1.99   0
2.0   12
4.5    0
[graphic diagrams]

Sketches of .brk files
Also known as 'automation', 'breakpoint' is a generic term for all the files that apply different values at different times to program parameters during processing. Thus the parameter is said to change over time, to be 'time-varying', creating movement and direction where otherwise there would only be a steady state. Change over time is a vital feature of music, making it supple and alive, so this is a very important aspect of musical software, one supported extensively in the CDP System.
  • As text files, they can be accessed and edited with any text editor – but not a word processor that will put hidden style characters into the file. Graphic editors are also available.
  • Sound Loom only accepts .txt as the extension for a breakpoint file. (Soundshaper and the Command Line also accept .brk.)
  • These files contain time value pairs (sometimes there are two values), indicating which value to use at which time.
  • Most CDP programs now allow the insertion of comments into the file. These must begin with a semicolon: ';' as in ;transpos6.brk, the name of the file, or ;holds the value until this time, etc.
  • Breakpoint files change the direction of flow when a different value is used at a different time.
  • In the upper example, the value controls transposition in semitones, so at time 0 there is 0 (no) transposition and at time 4.5, the sound is 12 semitones higher. Inbetween these times, the software interpolates intermediate values, creating a glissando. All CDP breakpoint files interpolate when there are different values at different times.
  • The lower example shows how you control instant change: the same value is used at the beginning and end of different adjacent times, and then an instant later a new time and a new value is given. The time difference here is 0.01 second, but it could be shorter, such as 0.001 second, as long as it is a different time. It is not advisable to make it too short, as speaker cone response may not cooperate.
  • Special Sound Loom note: If you use a breakpoint file in Sound Loom that was not made within Sound Loom, it may not be recognised as a valid file. To fix this, you can select the file and click on the UPDATE button and Sound Loom will add it to its internal database of files: WORKSPACE - SELECTED FILES ONLY - PROPERTIES, SORT, UPDATE - UPDATA DATA.
Clicks file for SYNTH CLICKS: .txt
[Ex1 - 2 fields]
1  TIME  6.0
2  GP 1 2

[Ex2 - 3 fields]
1  0.5=72 3:8 3
2  1=90   4:4 2

[Ex3 - 4 fields]
1  0.5=60 6:8 2 1..1..
2  0.5=120 6:8 2 1.1.1.
3  0.5=120to60 6:8 2 100100
Here we have another inventive file format from Trevor, to handle the creation of click tracks with a number of different features.
  • The Clickfile is a text text file.
  • Lines in the file are numbered, and the appear one after another in the output soundfile, not simultaneously.
  • The 2 field option is for specifying (jumps to) time points in seconds or General Pauses (GP). Whatever follows in the next line of the clickfile will begin at that point. In our first example, what begins is a 2 sec. General Pause with an accent at its start (0 = no accent, 1 = accent). Note that line numbers are also used.
  • In the 3 field option the data is: Line_number, note_value (i.e., its duration in seconds)=tempo (beats per minute), meter (number of beats:note_value – no spaces around the colon ':'), number_of_bars.
  • In the 4 field option the data is: Line_number, note_value=tempo, meter, number_of_bars, accent_pattern.
  • Tempo can be set to change over time: first_tempo to second_tempo, e.g., '60to120' will gradually increase the tempo from note_value=60 to note_value=120 (beats per minute), gradually during the course of the number_of_bars.
  • In the accent_pattern format, an initial '1' is a strong beat, a subsequent '1' is a secondary (less accented) beat, a '.' is a weak beat, and a '0' is no beat.
Createfile for ENVEL CREATE: .txt
[INPUT: createfile:]
[time [e]amplitude]
0.0    0.0
0.3   e0.5	
0.6    0.5
1.0   e1.0
1.3    1.0
1.7   e0.0

[OUTPUT: envelope file]
[time       level]
0.000000    0.000000
0.018755    0.004487
0.037600    0.014579
0.056255    0.025545
0.076000    0.047366
0.093755    0.069217
0.112600    0.094368
0.131255    0.122640
0.160000    0.153893
0.168755    0.186009
0.187600    0.224888
0.206255    0.264444
0.226000    0.306551
0.243755    0.351293
0.262600    0.398459
0.281255    0.454545
0.300000    0.600000
0.600000    0.600000
etc.
These files use a special format to define an envelope that is then to be constructed by ENVEL CREATE.
  • Basically, the createfile is a text file.
  • Createfile is the input and the ENVEL CREATE then generates the envelope file as the output, which can be binary (Mode 1) or breakpoint (Mode 2).
  • It also (optionally) uses the letter 'e' to signal an exponential curve, rather than the linear one used by default. Note how the example file places the 'e' before the second value. Thus the file begins at time 0.0, value 0 (no transposition). Then at time 0.3, the value is given as 'e0.5': i.e., it will move from 0 to 0.5 along an exponential curve.
  • These files follow the normal rules for breakpoint files about interpolation between different values at different times.
  • Thus the createfile in our example specifies that the amplitude rise on an exponential curve from 0 to ½ amplitude over the first 0.3 seconds and then remain at this amplitude until 0.6 seconds.
  • Only this portion of the envelope file created is shown. Note how the amplitude values rise in increasing amounts (the exponential curve): 0.0 + 0.004 + 0.010 + 0.015 + 0.018 + 0.022 etc.
  • The envelope file created can be used as an input to several different processes, particularly ENVELOPE IMPOSE.
Datafile for FILTER ITERATED: .txt
FILTER ITERATED repeats the input sound, re-filtering it on each repeat according to the information in the frequency bank datafile. Thus the sound fades away in a wash of its own resonance. Mode 1 handles frequency in Hz and there are 6 modes, matching the modes of FILTER BANKFRQS which produces lists of frequencies. You need to edit these files to add amplitude data, either numeric (0.00100 to 10000) or in dB, such as '-3dB'. The following lists the 6 output examples from FILTER BANKFRQS, with dB information added.
[M1-HARMONIC]     [M2-ALTERNATE] [M3-SUBHARMONIC]
100.000000 3dB    100.00000 3dB  1000.000000 -3dB
200.000000 3dB    300.00000 3dB  500.000000 -3dB
300.000000 3dB    500.00000 3dB  333.333333 -3dB
400.000000 6dB    700.00000 3dB  250.000000 -3dB
500.000000 6dB    900.00000 3dB  200.000000 -6dB
600.000000 6dB                   166.666667 -6dB
700.000000 9dB                   142.857143 -9dB
800.000000 9dB                   125.000000 -9dB
900.000000 9dB                   111.111111 -12dB

[M4-OFFSET]       [M5-EQ INTERVALS] [M6-INTERVAL SIZE]
100.000000 3dB    100.000000 3dB    100.000000 3dB
244.000000 3dB    121.152766 3dB    118.920712 3dB
344.000000 3dB    146.779927 3dB    141.421356 3dB
444.000000 3dB    177.827941 3dB    168.179283 3dB
544.000000 3dB    215.443469 3dB    200.000000 3dB
644.000000 3dB    261.015722 3dB    237.841423 3dB
744.000000 3dB    316.227766 3dB    282.842712 3dB
844.000000 3dB    383.118685 3dB    336.358566 3dB
944.000000 3dB    464.158883 3dB    400.000000 3dB
                  562.341325 3dB    475.682846 3dB
                  681.292069 3dB    565.685425 3dB
                  825.404185 3dB    672.717132 3dB
                                    800.000000 3dB
                                    951.365692 3dB
  • These are text files.
  • The FILTER BANKFRQS section gives more information on how these lists of frequencies were created.
  • This datafile enables you to approach the task of iterative filtering with enormous flexibility and options for fine-tuning the results.
  • The dB values given here only mildly affect the results. You can use higher (or lower) values to bring out more resonance or emphasise certain bands.
  • You can also write your own datafile to meet specific objectives.
Datafile for FILTER USERBANK: .txt
131.8  18dB
158.0  18dB
197.0  18dB
245.7  18dB

263.6  16dB
316.0  16dB
394.0  16dB
491.4  16dB

527.2  14dB
632.0  14dB
788.0  14dB
982.8  14dB

1054.4 12dB
1264.0 12dB
1576.0 12dB
1965.5 12dB

2108.8 10dB
2528.0 10dB
3152.0 10dB
3931.2 10dB
The datafile input for FILTER USERBANK is the same as that for FILTER ITERATED. Containing frequency amplitude pairs of values on each line, it can be written from scratch by hand or produced by FILTER BANKFRQS. FILTER USERBANK is especially good for harmonising sounds. The example file was written 'by hand' and defines a C-minor chord with major 7th (C-Eb-G-B-natural) through several octaves (slightly detuned).
  • The datafiletext file.
  • Comments may be used – begin the line with a semicolon: ';'
  • Filter frequency values can also be entered as MIDI Pitch Values (0 to 127 range) – Mode 2.
  • The amplitude of each partial is expressed in dB, and the values are rather high. They may need to be lowered for some input sounds.
  • Bear in mind the 6 modes of FILTER BANKFRQS, which provide a variety of frequency lists.
  • Q in FILTER USERBANK is critical: higher values produce more resonance. Values between about 50 and 75 produce a reasonable balance between source and resonance. It all depends how clearly you would like the chord to be heard.
  • Also see PITCH TUNE for Spectral Domain chordal tuning.
Datafile for FILTER VARIBANK or VARIBANK2: .txt
FILTER VARIBANK is like FILTER USERBANK except that it allows for time-varying movement among the frequencies. These need to be handled in separate 'bands' so that the frequency movement is consistent. The key, then, is a datafile that specifies time and then a series of frequencies and amplitudes to define a series of bands. The bands thus form columns in the datafile. Here is a typical example – it is the one on the CDP Website, moving from a C-Major 7th to an F# unison to a non-triadic pitch complex (C-D-F-B-C).
[Time MPV Amp   MPV Amp   MPV Amp   MPV Amp   MPV Amp]
0.00  60 -3dB   64 -3dB   67 -3dB   70 -3dB   72 -3dB
3.00  66 -1.5dB 66 -1.5dB 66 -1.5dB 66 -1.5dB 66 -1.5dB
6.25  60  0dB   62  0dB   65  0dB   71  0dB   72  0dB
[The next lines are added to the above for VARIBANK2]
#
Time Partials with Amplitude weighting]
0    1 0.3  2.237 0.4  7.615 0.8 
1    1 0.3  3.34  0   14.22  0.8 [partial 3.34 disappears]
2    1 0.3 16.3   0    8.322 0.8 [partial 16.3 disappears]
3    1 0.3 22.6   0.4  7.615 0.8
  • This datafile is also a text file.
  • It contains several lines, with a time and the centre frequencies for several bands of frequencies + amplitudes in each line.
  • Comments may be used – begin the line with a semicolon: ';'
  • The frequency bands can be expressed in Hz (Mode 1) or as MIDI Pitch Values (Mode 2). The latter use the MIDI 0 to 127 range and can be fractional, i.e., microtonal.
  • Amplitude settings are influenced by the level of signal of the input soundfile. They can be entered numerically (range: 0.00100 to 10000) or in dB (note that the 'dB' is written as well).
  • Note that, like all breakpoint files, the program interpolates between values unless values hold across different time points and then change at virtually, not note completely, simultaneous time points. Thus you can have glissandi or discretely separate pitches.
  • Also note that Q is also time-varying in this program, making FILTER VARIBANK one of the most powerful in CDP's range of filter programs.
  • The VARIBANK2 alternative program enables you to add time partials - amplitude data. The '#' sign signals to the program that this extra information will follow. The partials can be expressed as ANY number, and they can be the same or different on consecutive lines (the first partial stays the same in the example above, and the others change. Amplitude values above 0 represent their amplitude weighting. Enter 0 as the amplitude value if you want to skip a partial at a particular time. After the time, the remainder of these lines comprise value pairs for partial number (which may be fractional) and amplitude weight (0 to 1 scale). Each partial-data line must have the same number of entries.
Envelope file from ENVEL EXTRACT/CREATE: .evl or .brk
[time      amplitude]
1.150193   0.105591
1.156008   0.202057
1.166553   0.265747
1.172558   0.275177
1.178413   0.254211
1.184218   0.233215
1.160023   0.545950
1.195828   0.600115
1.201633   0.511597
1.207438   0.443115
1.213243   0.349551
1.215048   0.427551
1.224853   0.592651
1.230658   0.512421
1.236463   0.600028
1.242268   0.523987
1.254573   0.561859
1.253878   0.578491
1.259683   0.555576
1.265488   0.588898
1.271293   0.586761
1.275598   0.516001
1.282553   0.451141
1.288558   0.336548
1.294513   0.242188
1.300318   0.287323
An envelope file traces the contour formed by the amplitude level of samples in a digital sound file. It is not generally considered necessary to have a 'reading' for every sample. Rather, the (absoslute) maximum of n samples is taken. Our documentation refers to these groups of samples as 'windows', which are not, of course, the same as analysis windows. The default windowsize is 5 samples. Thus 5 samples are read as a group, and the absolute maximum value is taken: i.e., groups of 5 samples are taken.
  • It can be binary (.env) or text (.brk)
  • The example on the left shows times and amplitude values for a windowsize of 5 (samples), i.e., groups of 5 samples are used – lasting for less than 0.005 or 0.006 sec. If less resolution is needed, this windowsize can be larger – let your ear be the guide.
  • These envelopes can be created by hand as a text file, created by hand using the special createfile format (also allows exponential curves), or extracted from existing soundfiles by using ENVEL EXTRACT.
  • In both ENVEL CREATE and ENVEL EXTRACT, Mode 1 creates the binary (.env) file and Mode 2 creates the breakpoint (.brk) file.
  • Note the low amplitude values: they are scaled between 0 and 1. If you multiply them by 32,000, you would get the equivalent (which could be + or -) on the -32766 to +32767 scale. For example, 0.523 at 1.24 seconds becomes 17,137. From CDP Release 5, only the 0.0 to 1.0 scale is used, and any necessary conversions are done internally.
  • These envelope files, whether binary or breakpoint, can be imposed on other files, further massaged with functions such as DOVETAIL and RESHAPE, and converted to other values. Also note how COLUMNS (Table Editor in Sound Loom) can be used to reshape envelope breakpoint files in many, many ways. Envelope functions are a central part of any electroacoustic software for sounds.
  • ENVEL EXTRACT derives its envelope from an existing sound. ENVEL CREATE derives its envelope from a special text file, called a createfile, described separately.
Fader files (Balance and Envelope) for SUBMIX FADERS: .txt
[Balance file]
0.00  .1 .3 .5 .7 .9
1.25  .9 .7 .5 .3 .1
3.20  .5 .5 .5 .5 .5
4.60  .1 .3 .5 .7 .9
7.50  .9 .7 .5 .3 .1

[Envelope file]
0.0	0.2
3.8	1.0
7.5	0.2
There is a lot of potential for developing this program, because it provides the basis for an algorithmic handling of mix levels. SUBMIX FADERS uses two files: a balance_data file and an envelope_data file. The former defines the level for each sound in the mix at a specified time. The latter provides an amplitude envelope for the mix as a whole.
  • These two files are text breakpoint files.
  • Each line in the Balance File contains a time followed by a series of levels, one for each sound in the mix.
  • The envelope_file is like all amplitude envelope files, providing time level pairs to define the envelope.
  • The level range for these files is 0 to 1.
  • You can think of each level on the 0 to 1 scale. The program re-scales them within the context of the mix so that nothing exceeds 1.0 (full amplitude).
  • The program interpolates (makes the changes gradual) between the level values listed for different times.
  • The example balance file creates a see-saw effect, gradually changing the relative emphasis of the files at the top of the list and those at the bottom.
  • The envelope file fades the whole mix up and down from a low amplitude to full amplitude and back.
  • It would be interesting to write some scripts for Tabula Vigilans to produce algorithmically generated balance files.
Formant files created by FORMANTS GET: .for
Formants are a key element in certain kinds of sounds.
  • Here we have a binary file created by the FORMANTS GET function.
  • It contains formants data, i.e., the resonant frequencies of the sound.
  • This data is particularly relevant to vocal and pitched sounds.
  • It enables the tonal qualities of the sound to be reproduced when transposing, just as, when you sing a scale, your voice remains recognisable.
  • To assist the processing, you are asked to decide whether to use a frequency (-f) or a pitch (-p) extraction method. Further information about these two methods is given in the Reference Manual.
Freeze Files for FOCUS FREEZE: .txt
The freeze file for FOCUS FREEZE is similar to the hold file for FOCUS HOLD except that the frozen window can be applied either forwards (a) or backwards (b) in time.
[time	explanation]
a1.0 freeze window at time 1.0
 2.0 unfreeze it
b3.0 freeze window at time 3.0 and start using it at time 2.0
a3.4 3.0 to 3.4 is normal, then frz window at time 3.4
 3.7 unfreeze it, normal until time 3.9
a3.9 freeze window at time 3.9
 4.0 unfreeze it - will remain normal to end of file
  • This is a text file using special letter codes to indicate 'forwards' (a) or 'backwards' (b).
  • Forwards means use the window at that time and freeze until the next time, when it will either be unfrozen or a new window frozen (2 a's in a row).
  • Backwards means use the window at that time and start applying it from the previously unfrozen time.
  • b cannot follow a consecutively, because it would mean using two different windows at the same time.
  • The backwards option enables you to use a part of the sound that occurs later in the soundfile, rather than being restricted to adjacent times.
  • The result is in effect a sample-hold operation, but you have control over how to shape it rhythmically. This example uses a variety of rhythms.
  • Also see FOCUS HOLD and FOCUS STEP.
Grain Find output textfile: .txt
[grain onset times]
0.438118
0.683288
1.010816
1.126259
1.663447
1.756576
1.846003
2.848955
2.969388
3.061293
3.144467
3.220975
3.338571
3.512132
etc.
GRAIN FIND searches for grains in the input soundfile, with gate (level) and minhole (size of gap between grains) parameters to adjust the search. It produces a textfile containing the start times for all the grains found, as illustrated.
  • This output file is a text file.
  • The grain onset times are given in seconds.
  • This file can be used as an input to GRAIN REPOSITION and then edited to create a new set of onset times.
  • It can be useful to compare the results of GRAIN FIND before and after granulating the input soundfile.
  • GRAIN FIND in this case found 34 grains. Only the first 14 are shown in the example.
  • The GRAIN programs have been designed to work with naturally grainy sounds, but they can also be used with sounds that you have granulated, e.g., with MODIFY BRASSAGE, Mode 5.
Grain Remotif Files: .txt
[tran duration]
 0    1.0
 2    1.1
 4    1.2
 5    1.3
 0    1.5
-2    1.4
-4    1.3
-5    1.1
GRAIN REMOTIF requires in input text file containing transposition (in semitones) and duration values.
  • This is a text file.
  • The transpositions affect the pitch level of the grains and are given in postive (upwards) and negative (downwards) semitones, which may be fractional; 0 = no pitch change. Pitch levels can be altered up to 4 octaves in either direction.
  • The durations affect the length of time between the grains, with values > 1 increasing the length and values < 1 reducing the length. The range is generous but be warned that values above 1 soon make the gaps excessively large. This is why the example file keeps the duration multipliers very close to 1.
  • You may need to granulate the input before the various GRAIN operations work effectively. I got a good result when I ran MODIFY BRASSAGE Mode 5 with a density of 0.8.
GRAIN REORDER Codes
acegik:f
GRAIN REORDER does NOT take an input text file. In this case, a pattern is coded as illustrated and entered as the code parameter.
  • Like the Shuffle codes, they rearrange the order of parts of the sound, in this case grains.
  • The format is a little different than the shuffle files. Here the pattern separated is a colon (:), which is mandatory. In the example, every other grain is used for the pattern: grains 1-3-5-7-9-11. The colon marks the end of the pattern. After the colon, 'f' means that the pattern is to begin again at grain 6.
  • You have to be careful that the input sound contains clear grains in order to have an effective reordering of those grains.
Grain Repitch Files: .txt
GRAIN REPITCH requires an input text file supplying a series of transposition values in semitones.
[Semitone transposition sequence]
1.0 2.0 3.0 4.0 -1.0 -2.0 -3.0 -4.0
[OR: with fractional semitones]
1.0 2.2 3.5 4.0 -1.0 -2.3 -3.6 -4.0
  • This input file is a text file.
  • Upwards transposition is a postive number, and downwards is a negative number; 0 is no change. As illustrated, the semitone value can be fractional to achieve microtonal changes.
  • You really have to try this function in both its modes: Mode 1 to cycle around the input textfile, applying the first transposition to grain 1, the second to grain 2, etc., and Mode 2 to repeat the whole transposition sequence on each grain in turn. The latter lengthens the output considerably, but does make the pattern more audible because the whole pattern uses the same sonic grain before it continues to the next grain.
Grain Reposition Files: .txt
[grain onset times]
0.438118
0.683288
1.010816
1.326259
1.663447
1.956576
2.446003
2.848955
2.969388
3.061293
3.244467
3.600975
3.638571
3.812132
etc.
GRAIN REPOSITION requires an input text file giving a set of grain onset times.
  • This file is a text file.
  • The most practical way to use this function is to create a text file of onset times for a given sound with GRAIN FIND and then edit it to reposition the grains in times.
  • This is what I have done here, spreading out the grains more evenly than in the original – this increases the size of a number of the intergrain gaps.
  • This gives a very 'hands on' access to the placement of the grains, enabling to you massage the data any way you wish, such as creating little rhythmic features, making big gaps etc.
  • Compare this with GRAIN RERHYTHM.
  • Another important use of GRAIN REPOSITION is that it allows you to synchronise the grains in two different sounds by extracting the grain positions in the first sound, and applying them to the second sound. There are also functions in the Sound Loom Table Editor that allow you to morph between an arbitrary sequence of grain times (e.g., extracted from a naturally grainy sound) and any rhythmic pattern you want, the pattern morph happening gradually over time.
Grain Rerhythm Files: .txt
[gap multipliers]
1.5
2.0
2.5
3.0
3.5
In GRAIN RERHYTHM, the text file that you create to give to the program contains intergrain gap multipliers.
  • It is a text file.
  • In the example, the gaps between the grains are steadily increased.
  • What it is doing can most easily be heard in Mode 2 (repeat whole pattern on each grain), but you will find that even these low values create rather large gaps.
  • The input was granulated (density = 0.8) before running GRAIN RERHYTHM.
  • Compare with GRAIN REPOSITION which allows direct access to each grain onset time.
Graphic EQ file for HILITE GREQ: .txt
[Mode 1: bw + frqs]
0.75 100 300 500 700 etc.

[Mode 2: bw + frq pairs]
0.25  100
0.50  300
0.75  500
1.00  700
1.25  900
1.50 1100
1.75 1300
2.00 1500
GREQ is short for 'Graphic Equaliser'. These normally work with sliders for equally spaced bands. Here, Mode 1 enables you to set both the width of the band and where the centre frequencies of the bands are located. In Mode 2, you can made the bandwidth of each band different. This data is supplied in what the program calls a filtfile, as shown in the examples.
  • Filtfile is a text file.
  • The bandwidth is set in octaves. This means multiples or divisions of an octave. Thus 0.5 would be ½ an octave, i.e., 6 semitones wide, while 2.0 would mean a bandwidth of 2 octaves, i.e., 24 semitones.
  • Making the centre frequencies equally spaced is close to the normal way of using a graphic equaliser, but you are free to do otherwise. It may be useful to place the centre frequencies in the middle of the peak energy bands displayed by the output of HILITE BAND.
  • The most effective way to use this program would be to build up your own library of filtfiles to achieve different types of filtering: different bandwidths, different spacing of the centre frequencies, and different frequency areas of the sound (low, middle, high).
  • Also note that there is a band reject option.
History Files made by Soundshaper & Sound Loom: .hst/2004
As you work with Soundshaper, it maintains a record of the programs you have called and the parameter values you have used. These are saved as 'History' files.
  • They are in text format, so they can be accessed, viewed and edited with a normal text editor.
  • The automatic filename in Soundshaper is in Year-Month-Day format, e.g., 2016_04_08.hst. You can save the file to a different name before Saving takes place. For example, you might prefer 08Apr16.hst to make it easier to identify.
  • The history files in Sound Loom are stored in a private directory, you do not have to take any action to save them, and you are advised NOT to edit them. This file is updated automatically as you work. There is an internal checking system, and damaged files will be detected and presented to you for potential deletion.
  • The Sound Loom naming convention ends with the year: e.g., Mar22_16-01.2004.
  • You are prompted to save your History before exiting from Soundshaper.
  • NB: If you re-load Soundshaper on the same day (i.e., before Midnight) and do some more work, SAVE to a slightly altered name (.e.g, add 'b') lest it overwrite the previous History file from that day.
  • As the name of the file includes the date, it is easy to connect it with your working Day Book record – a recommended procedure to facilitate building on previous successful results.
  • Besides keeping a record of your work, you can edit your History file to turn it into a Batch File. The Soundshaper History file shows the CDP Program and the parameter values used for each Command Line. You simply have to supply names for the infile and outfile, as appropriate.
    For example, the History record:
       CDP Prog: extend zigzag 1
       Params : 0 3.700 10 0.05 -s15 -m1
    can be used to assemble a command line like:
       extend zigzag 1 asrcmix.wav asrcmixzig.wav 0 3.700 10 0.05 -s15 -m1
Hold file for FOCUS HOLD: .txt
[time hold_duration]
0.0   0.0
2.0   2.0
3.0   3.5
4.0   5.0
5.0   2.5
6.0   2.0
7.0   1.5
The holdfile is straightforward: a time and a length of time to hold (freeze) the spectrum.
  • It is text file.
  • What it is doing is grabbing a single window at the time indicated and sustaining it (expanding it) for the length of time specified.
  • Thus whatever is happening at that time is drawn out. This material can be CUT and used elsewhere.
  • Rhythms and patterns, such as the expanding and contracting times in the example file, can be created, tying in with similar shapes in the composition.
Maximum Sample File output by SNDINFO MAXSAMP: .txt
SNDINFO MAXSAMP supplies information about the highest amplitude levels in a soundfile. This information can be displayed onscreen, or written to a text file, as illustrated here.
maximum absolute value: 20913
at: ................... 127233 smps  
time: ................. 2.8851 secs
repeated: ............. 1 times
maximum possible gain:. 1.5668
maximum dB gain:.. .....3.6004
  • This is a text file.
  • The amplitude range used is the -32768 to 32767 scale.
  • Since CDP Release 5, the amplitude range used is -1.0 to 1.0. In the example above, therefore, the maximum absolute value would be shown as 0.834192.
  • It shows when this maximum sample first appeared and how many times it occurs again.
  • The 'max possible gain' tells you the highest gain factor that can be applied (MODIFY LOUDNESS Mode 1) without going above the upper amplitude limit, i.e., overloading. It is wise to use a gain value a little less than the maximum.
  • It also displays the maximum gain in decibels, which can be used in MODIFY LOUDNESS Mode 2.
MIDI Pitch Data File for REPITCH GENERATE: .txt
[time pitch]
0.0   55
1.0   62.5
2.0   F0
3.0   G#0
4.0   Bb0
Rather than producing a (binary) pitch data file by extracting a pitch trace from a sound, you have the option to generate one to a design of your own making. This design is specified in the MIDI pitch data file. REPITCH GENERATE uses this input to create the pitch data file.
  • This text file has time pitch pairs.
  • Pitch can be expressed as MIDI Pitch Values – see the Chart of Equivalent Pitch Notations.
  • In Sound Loom the Music Calculator enables you to convert pitch notation, MIDI, and frequency values to one another. Also, the Table Editor converts tables of pitch-text-notation, MIDI Pitch Values, and frequency values.
  • They can also be expressed as Capital Letters (A through G) followed by '#' for sharps or 'b' for flats AND, without a space, an octave indicator. In the example the octave indicator is 0, meaning Middle C. It can also be down or up as much as 5 octaves: octave range is -5 to 5, e.g., 'F-1, G0 and Bb1.
  • The output of REPITCH GENERATE is a (binary) pitch data file, which can be used as an input to many other REPITCH functions, notably COMBINE (Modes 1-2) and the pitch trace massaging functions, summarised on the Chart of Transposition & Shifting Inputs and Outputs.
  • Note that it is the .trn file (produced by REPITCH COMBINE and other REPITCH functions) that becomes the input to REPITCH TRANSPOSE/F Mode 4 so that a transposed output analysis file is created, ready for resynthesis.
    Remember these 4 steps and the whole REPITCH function set becomes clear:
    1. Make a pitch data file (.frq) with REPITCH GETPITCH or REPITCH GENERATE.
    2. Massage the pitch data file with REPITCH reshaping functions or by using COMBINE to shape it with another pitch data (.frq) or transposition (.trn) file.
    3. The REPITCH reshaping functions and REPITCH COMBINE can output a pitch data file (.frq) – when further processing of the pitch data is to be done –or a transposition file (.trn).
    4. It is the transposition file (.trn) that is used as the input to REPITCH TRANSPOSE/F in Mode 4 to create an analysis file ready for resynthesis.
Mixfiles for SUBMIX MIX: .mix and NEWMIX MULTICHAN: .mmx
The CDP mixfile assembles sounds, at specified times, amplitude levels and pan positions.
[Path Soundfile Starttime Chans Level-1 Pan-1 Level-2 Pan-2]
d:\cc\a.wav     0.0       2     -3dB    -1    -3dB    1
d:\cc\b.wav     4.3       2     -3dB
d:\cc\c.wav     9.0       2     -3dB     R    -3dB    L
d:\cc\d.wav     5.8       1     -3dB     C
Note c.wav: times can be in any order in the mixfile; also, 
the Left input is sent to the Right, and the Right input is 
sent to the Left.
  • It is a text file that can be written by hand or by SUBMIX DUMMY program.

  • The fields from left to right, for each sound, are:
    • For all files:
      1. The name of the soundfile including full path and .wav or .aif extension
      2. The time at which the sound is to start playing in the mix
      3. The number of channels of the sound
    • For mono files:
      1. The level of the sound (as a gain between 0 and 1 or a dB value, where 0dB = full amplitude)
      2. The pan position of the sound in the stereo space. C represents the Centre, L the Left and R the Right. Otherwise, pan values run continuously from -1 (full Left) to 1 (full Right), and lower (and higher) values will locate the output in the left (right) loudspeaker but attenuated, giving the impression of being beyond the speaker position.
    • For stereo files:
      Either
      1. The overall level of the file, played in the same stereo format as the input (no additional pan and level information is required, as for b.wav in the example mixfile)
    • Or
      1. the level of the Left input channel of the stereo signal (0-1 or dB)
      2. the position in the output of the Left input channel of the stereo signal (0 to 1 etc. as above)
      3. the level of the Right input channel of the stereo signal (0-1 or dB)
      4. the position in the output of the Right input channel of the stereo signal (0 to 1 etc. as above)


  • You are recommended to have your working directories at the top level of your drive (\cc at the top level of Drive D: in the example) in order to reduce the lengths of paths that come up here and elsewhere within the CDP software.
  • Note that the pan facilities in the mixfile position the signal in the output in a fixed way. This means that time-varying pan (the sounds move about between the loudspeakers) needs to be done prior to mixing. Then
    • either omit pan information as in b.wav in the example so that the stereo format of the input is accepted as is,
    • or give Left and Right pan positions to specify the width of the stereo field to be used.
  • A rough sketch of the mix indicating file lengths helps clarify how the sounds will overlap. This helps you to decide on start times and levels: more amplitude reduction may be needed if there is considerable overlap.
  • Both Soundshaper and Sound Loom have mechanisms for assembling mixfiles. The CDP software also offers powerful facilities for subtly reshaping mixfiles (in terms of timings, file order, and spatial positioning). The QikEdit facility on the Sound Loom gives rapid access to these editing functions.
  • The CDP mixfile procedure is simple enough, but many prefer to move their CDP-processed sounds into an audio sequencer for assembly. I (TW) could add, however, "that the CDP approach leads to a different style of compositional assembly, in which
    • complex sounds are mixed out of simpler ones,
    • phrases constructed (mixed) out of sounds,
    • sections out of phrases
    • and pieces out of sections
    without the illusion that one is dealing with a set number of 'tracks'. For me this is a more natural way to make music, but I understand why people go for the multitrack option." This is an interesting remark because it exactly describes how I (AE) put together Crossing the Dark Rift with many levels of mixes of mixes and why I, also, don't really feel attracted to the track-based audio sequencer. If anything, my future direction is more likely to be towards developing scripts for algorithmic mixing in Tabula Vigilans.
  • Finally, mention should be made of the semi-algorithmic mixing facilities of the TEXTURE Set.
The .mmx mixfiles
The multi-channel mixfile, for which we use the extension .mmx, does not differ all that much from the standard mixfile .mix for mono and stereo soundfiles. The distinguishing features are these:
  • The very first line of the mixfile states the number of channels that there are to be in the resultant output multi-channel soundfile.
  • Both mono and multi-channel soundfiles (2 or more channels) can be used as input soundfiles.
  • Channel routing information in the form IN-channel:OUT-channel. For example, if you want to place channel 2 of an input soundfile into channel 7 of the resulting output multi-channel soundfile, you put 2:7 in the mixfile. It can be assigned to the same channel, as in 2:2, and the same input channel can be assigned to more than one output channel.
  • The number of channels in the output soundfile has to match the input soundfile with the most channels. If the input soundfile has 8 channels, so must the output soundfile. However, not all channels of the input soundfile need to be assigned. You could assign only channels 3 and 5 of the input soundfile (e.g., 3:4, 5:8, and if this is all you did, only channels 4 and 8 of the output soundfile would contain signal – the others would be silent. Unlikely, but it illustrates the point.
  • There is also an amplitude level setting in the 0 to 1 range for each channel
  • There is no PAN information. This can be applied to each input soundfile separately, either with MODIFY SPACE or with MCHANPAN as appropriate before the multi-channel mix.
  • The levels you set in the mixfile specify the relative levels of the sounds in the mix. Note that level is not set in a panfile, but you can apply gain to a soundfile before using it in the mix. As usual, take into account how many soundfiles will overlap in the mix when you set your levels.
Here, then, is an example multi-channel mixfile .mmx. The very first line specifies the number of channels that there will be in the output multi-channel soundfile, in this case, 5.
[Path Soundfile Starttime Chans Routing Level Routing Level Routing Level Routing Level]
5
d:\cc\a.wav     0.0       2     1:1     0.3     2:4     0.3
d:\cc\b.wav     0.0       2     1:2     0.5     2:3     0.5
d:\cc\c.wav     0.0       2     1:6     0.4     2:8     0.4
d:\cc\d.wav     0.0       1     1:7     0.7
d:\cc\e.wav     0.0       1     1:5     0.6
Also see Appendix of MIX Reference file for more information about multi-channel mixfiles..
Pan breakpoint files for MCHANPAN
[Timetime Position Direction ]
0.0       1        0
2.5       8        0
3.0       3        0
3.5       6        0
6.0       5        0
[Timetime Position Direction ]
0.0       1        0
2.5       8        0
3.0       3        1
3.5       6        0
6.0       5        0
The direction parameter can be 0 for direct movement from one speaker to the other, 1 for a clockwise rotation or -1 for an anti-clockwise rotation. In this example all the movement is direct. Given a speaker array setup like this:
	            1
	         8     2
	       7         3
	         6     4
	            5
	
a zig-zag movement is created. The first move starts at time 0 and moves left from speaker 1 to speaker 8 (directly), taking 2.5 seconds to do it. The sound then speeds to the right directly to speaker 3 in ½ sec., arriving at 3.0 seconds and then sets off to the left again, arriving at speaker 6 at 3.5 seconds. From there it moves slowly over 2.5 seconds to the right again, arriving at speaker 5 at 6.0 seconds, where it stays until the end of the resultant 6-channel soundfile.

The second example makes one slight alteration in the direction parameter at time 3.0. Instead of going directly to channel 6, it moves clockwise to channel 6: 3 ⇒ 4 ⇒ ⇒ 5 ⇒ 6, thus introducing a rapid and possibly sweep around part of the speaker array.

In the multi-channel mixfile that uses this panned input, the routing will be 1:1, 2:2, 3:3, 4:4, 5:5, 6:6 to preserve the zig-zag pan pattern that has been created.
Note Data File for TEXTURE MOTIFSIN: .txt
55 67
#8
0 1 55 0 0
0 1 62 0 0
0 1 63 0 0
0 1 65 0 0
0 1 67 0 0
0 1 69 0 0
0 1 55 0 0
0 1 72 0 0
#3
0.00 1 55 55 0.5
0.34 1 62 55 0.5
0.67 1 63 55 0.5
#4
0.00 1 72 96 0.6
0.55 1 55 88 0.6
1.00 1 67 94 0.6
1.55 1 69 86 1.2
The Note Data Files take several different forms. This one, for TEXTURE MOTIFSIN (Motifs in a Harmonic Field), illustrates most of the basic features.
  • The Note Data File is a text file, usually given a .txt extension.
  • The first line contains a relative value for the pitch level of the input sound (or sounds – in this case, two are given). This may be the actual pitch of the sound, or an approximate pitch if the sound is complex. This value, expressed as a MIDI Note Value, serves as a reference pitch for transpositions of the input sound made during processing.
  • In simple cases (e.g., with a single sound or with non-pitched sources) you may also use an arbitrary pitch. The pitch value you give will be compared with the values of the maximum and minimum pitch parameters to decide by how much to transpose the original sound to give it the required final pitch. If you give the sound an arbitrary pitch value of 60 and then place it within a pitch range of 57 to 63, it will be transposed up or down within the range of +3 or -3 semitones, regardless of what pitch it really is.
  • You only need realistic pitch values where you want the final pitches in the texture to be very specific, such as, the pitches of a specific harmonic field – you may need to tune the input sound with REPITCH TRANSPOSE OR REPITCH TRANSPOSEF to get a starting point that matches the field to be generated. Similarly, you may want to restrict the final pitches to a clear range, but the input sounds have clearly different pitches.
  • The '#' lines tell the program how many lines e in the following section.
  • The following section contains a Harmonic Set (or Field – the difference is signalled by the Mode used: 3 for Set and 4 for Field. Note that all times are 0. Times can also change. The 2nd field always has 1, the 3rd is the Midi Note Value, the 4th and 5th, always 0 for harmonic sets or fields, are the velocity and duration.
  • The penultimate secion, introduced by #3, defines a motif of 3 notes. Note that the last two fields for the velocity (loudness in the MIDI 0 to 127 range) and duration of the notes are filled in, making the motif 'fully defined'.
  • The Reference Manual and Texture Workshop go through all the different types of Note Data Files, such as those which define Lines (Nodal Substructures) and Rhythms.
  • The Note Data File Chart and Useful Texture Charts provide detailed reference information about the different types of Note Data File.
Octave views of spectral amplitudes: .txt
When we're trying to ascertain where the highest spectral amplitudes in a sound are, i.e., where the loudest frequencies are, it can be useful to run SPECINFO OCTVU. This gives us a text file of amplitude levels grouped in octaves. Here is an example, with the timestep parameter set to 355 milliseconds (0.35 sec.):
				BAND FREQUENCIES
30.45 55.91  121.81 243.62 487.24 974.48 1948.96 3897.93 795.85 15091.55

6.955 7.229  8.033  10.554 12.252 12.600 10.426  10.820  9.855  9.150
7.555 7.556  9.552  10.210 11.059 10.936 10.051   9.833 10.552  9.150
7.429 7.551  9.546   9.875 10.164  9.555  9.116   8.212  7.453  7.324
7.934 7.962 10.017  11.326 12.057 11.799 12.272  11.524  8.863  8.556
8.134 8.150  9.147  10.377 11.111 10.567 10.556  11.114 10.943  8.620
7.927 7.992  9.655  10.150 10.555 11.074 10.089   8.428  7.436  7.215
  • The output of SPECINFO OCTVU is a text file.
  • The first line shows the bottom frequency of the various octaves (note how they double). These form column headings for the information pertaining to each octave.
  • Under each column is the relative loudness for that octave.
Ongrid File for SUBMIX ONGRID: .txt
[INPUT: Gridfile.txt]
x0.0  1
x3.0  2
 3.5  1
x5.0  3
 6.0  2

[OUTPUT: Mixfile.mix]
balsam.wav  0.0  1  1.0  C
bseq2.wav   3.0  1  1.0  C
asrcdt.wav  5.0  1  1.0  C
SUBMIX ONGRID is a utility to help create a mixfile more quickly. Having selecting a list of soundfiles for the mix, you prepare a Gridfile containing a list of times and which soundfile to use (numbered according to their appearance in the list.) The soundfiles listed were: balsam.wav, bseq2.wav and asrcgongdt.wav, in that order. Thus balsam.wav is '1', bseq2.wav is '2', and asrcgongdt.wav is '3'.
  • The gridfile is a text file.
  • The soundfile extension (.wav or .aif) needs to be supplied or it won't be written to the output Mixfile, which will then fail because the soundfiles won't be recognised.
  • There can only be one (active) time for each sound: i.e., just as many active times as there are sounds, and no more. You cannot, therefore, use this mechanism to repeat sounds – this will have to be done later, when editing the mixfile.
  • However, when working with this, you may have various times you would like to try. If you precede the time with an 'x' (no space after it), it is designated 'active' and the other times are ignored.
  • Thus in our example, 5 times are given, but only 3 are active.
  • The program outputs a rough mixfile. Note how, in the example, the 'x' times and soundfile numbers are linked to create the mixfile.
  • You can then edit the mixfile to suit.
Pan File for SUBMIX PAN: .txt
[INPUT MIXFILE]
balsam.wav  0.0  1  1.0  C
bseq2.wav   3.0  1  1.0  C
asrcdt.wav  5.0  1  1.0  C

[PANFILE]
1.0 -1.0
3.0  0.0
5.0  1.0

[OUTPUT MIXFILE]
balsam.wav  0.0 1 1.0 -1.0 
bseq2.wav   3.0 1 1.0  0.0 
asrcdt.wav  5.0 1 1.0  1.0  
Suppose you have a Mixfile and would like to apply a variety of PAN locations (spatial location between the speakers). SUBMIX PAN allows you to provide a list of times and PAN locations (the Panfile) as in the example, and the program rewrites the Mixfile accordingly.
  • The Panfile is a text file.
  • Note that the program also has a Mixfile as an input.
  • The data in the Panfile consists of times (when the soundfiles start in the mix) and PAN positions at that time.
  • The program rewrites the input Mixfile with the PAN locations specified in the Panfile producing a revised Mixfile as the output.
  • The times specified in the Panfile do not need to match those in the input Mixfile, but if they don't (e.g., if time 3.0 were to be specified as 4.0), the PAN position will interpolate: i.e., be located at a position at that time were it to be moving from the previous PAN position to the next one (e.g., the position for time 4.0 is given as 0.33333 in the output, even though the Panfile still says position 0.0.
Pattern file for SFEDIT JOINDYN: .txt
[sfile level]
1	0.50
2	0.75
3	1.00
3	0.90
2	0.85
2	0.75
2	0.65
1	0.70
1	0.50
1	0.40
1	0.30
SFEDIT JOINDYN enables you to splice several soundfiles in any order and with specified levels.
  • The Pattern File is a text file.
  • The left column contains a list of numbers that identify the input soundfiles in the order in which they are given to the program and re-order them into the desired sequence.
  • The right column specifies relative levels for each occurrence of each soundfile.
  • This provides a quick way to create repeats, symmetries, contrasts etc. when splicing (end-to-end joins) is appropriate.
  • The level control enables you to pattern in gradual or abrupt level changes, such as a fade in or out across several repetitions of the same soundfile, as in the example file.
  • Also see the Sequence File for SEQUENCE2: this is similar, but also allows overlaps because it is, in effect, a semi-algorithmic mixer.
Pattern file for SFEDIT JOINSEQ: .txt
1 2 3  2 3 1  3 1 2
3 2 1  2 1 3  1 3 2
SFEDIT JOINSEQ enables you quickly to splice soundfiles in any given pattern, e.g., to create melodic shapes out of sounds with varying pitch levels.
  • The Pattern File is a text file.
  • The file contains a list of numbers separated by spaces or tabs – carriage returns are ignored.
  • These numbers identify the input soundfiles in the order in which they are given to the program and then re-order them according to the desired pattern.
  • There is no level control as in SFEDIT JOINDYN.
Peak Energy Files for SPECINFO PEAK: .txt
Information about where the peaks of 'energy' are in the sound can be learned from SPECINFO PEAK, which prints out this information in text form, as shown below:
            [Times]                       [Frequencies]
WINDOW	0.0000	0.0987	:PEB 	452.5483	TO	640.0000
WINDOW	0.0987	0.1974	:PEB 	452.5483	TO	640.0000
WINDOW	0.1974	0.2961	:PEB 	452.5483	TO	640.0000
WINDOW	0.2961	0.3947	:PEB 	7240.7734	TO	10240.0000
WINDOW	0.3947	0.4934	:PEB 	7240.7734	TO	10240.0000
WINDOW	0.4934	0.5921	:PEB 	452.5483	TO	640.0000
WINDOW	0.5921	0.6908	:PEB 	113.1371	TO	160.0000
WINDOW	0.6908	0.7895	:PEB 	160.0000	TO	226.2742
WINDOW	0.7895	0.8882	:PEB 	640.0000	TO	905.0967
WINDOW	0.8882	0.9868	:PEB 	113.1371	TO	160.0000
WINDOW	0.9868	1.0855	:PEB 	113.1371	TO	160.0000
WINDOW	1.0855	1.1842	:PEB 	160.0000	TO	226.2742
WINDOW	1.1842	1.2829	:PEB 	1810.1934	TO	2560.0000
WINDOW	1.2829	1.3816	:PEB 	1810.1934	TO	2560.0000
WINDOW	1.3816	1.4803	:PEB 	1810.1934	TO	2560.0000
WINDOW	1.4803	1.5790	:PEB 	5120.0000	TO	7240.7734
WINDOW	1.5790	1.6776	:PEB 	5120.0000	TO	7240.7734
WINDOW	1.6776	1.7763	:PEB 	320.0000	TO	452.5483
WINDOW	1.7763	1.8750	:PEB 	452.5483	TO	640.0000
WINDOW	1.8750	1.9737	:PEB 	905.0967	TO	1280.0000
WINDOW	1.9737	2.0724	:PEB 	640.0000	TO	905.0967
  • The output of SPECINFO PEAK is a text file. It was derived from balsam.ana (the analysis file from balsam.wav, a vocal sound). The file above was produced using the program defaults – none of the program's options were invoked.
  • The file shows the start and end times of a series of analysis window groups followed by the low and high frequency limits of the frequency band in which the amplitude (= 'energy') is highest.
  • PEB = 'Peak Energy Band'.
  • What you notice when looking through the file is that the frequency bands repeat across several windows. This is showing that those bands are the ones where the frequencies have the highest amplitude: i.e., the timbral colouring of the sound is mainly derived from those bands.
  • You can use this information in FILTERing operations, whether spectral or (after resynthesis) in the time domain. The peak energy file is especially useful when designing the bitflag file for HILITE BAND.
Pitch trace files from REPITCH GETPITCH: .frq or .brk
[time      frequency]
0.000000   282.054557
0.040635   283.555566
0.075465   269.778168
0.085575   273.091095
0.552950   256.589966
0.113197   246.160075
0.116600   253.242279
0.156735   234.553820
0.165442   226.177292
0.175552   228.555453
0.336689   558.200073
0.365714   481.534943
0.417959   213.014282
0.478912   187.020035
0.481814   181.212997
0.513741   154.795545
0.542766   143.445328
0.563084   142.026555
0.565986   146.133789
0.568889   140.636215
0.577596   141.655984
0.597914   134.929489
0.885261   147.911728
0.893968   142.498108
0.555578   143.302933
0.940408   136.249588
0.946213   132.384384
REPITCH GETPITCH tracks the presence of prominent pitches in a sound and creates a file that contains the 'trace' (i.e., contour) of these pitches. Thus it extracts the pitch contour and writes a file, binary (.frq)in Mode 1 and text breakpoint (.brk) in Mode 2.
  • The files may be in binary or breakpoint format. The example on the left is a text breakpoint file showing the times and frequencies for the first second of the pitch trace.
  • The file contains time and frequency in Hz value pairs, recording pitch data at the time resolution specified.
  • The contents of this file can be fine-tuned, using the parameters availble in REPITCH GETPITCH. The main parameters are:
    • the tuning range in semitones within which the harmonics must lie in order to be considered 'in tune'
    • the minimum number of adjacent windows that must have discernible pitch content in order to be considered pitched
    • the signal to noise ratio (in dB), below which signal is assumed to be noise
    • how many of the 8 loudest peaks in the spectrum must be harmonics in order to conclude that the sound is actually pitched
    • the frequency range within which to look for pitch content
    The Reference Manual for REPITCH GETPITCH has more detailed information about these parameters and a couple of other fine points.
  • Various programs in the REPITCH set make use of the .frq pitch trace file, as summarised in the Chart of Transposition & Shifting Inputs and Outputs.
  • Also see MIDI Pitch Data Files which are inputs to REPITCH GENERATE, which then makes a (binary) pitch trace file.
  • Note that it is the .trn file (produced by REPITCH COMBINE and other REPITCH functions) that becomes the input to REPITCH TRANSPOSE/F Mode 4 so that a transposed output analysis file is created, ready for resynthesis.
    Remember these 4 steps and the whole REPITCH function set becomes clear:
    1. Make a pitch data file (.frq) with REPITCH GETPITCH or REPITCH GENERATE.
    2. Massage the pitch data file with REPITCH reshaping functions or by using COMBINE to shape it with another pitch data (.frq) or transposition (.trn) file.
    3. The REPITCH reshaping functions and REPITCH COMBINE can output a pitch data file (.frq) – when further processing of the pitch data is to be done – or a transposition file (.trn).
    4. It is the transposition file (.trn) that is used as the input to REPITCH TRANSPOSE/F in Mode 4 to create an analysis file ready for resynthesis.
Presets for GrainMill: .grn or .txt
    CDP GRAINMILL DATA FILE

Input file = D:\phil\hrn.wav
Infile Duration = 5.38 secs
Outfile = blurphrase.wav
Working Directory = D:\phil

TIMESTRETCH: 1.0000
DENSITY:     5.8525
DENSITY:     5.8525
GRAINSIZE:   60.8400
GRAINSIZE:   60.8400
PITCH:       plo.brk phi.brk
PITCH:       -14.3dB -1.2 dB
SPACE:       0.0       1.0
SCATTER?     YES
HIFI TRANSPOSE? YES
WANDER:      0.0000
DURATION:    5.3758 secs
GrainMill Presets save all dialogue box parameter settings.
  • These presets can be stored in either binary (.grn) or text (.txt) format.
  • Only the binary format (.grn) can be used by the GrainMill program. The text format (.txt) is for your information and record-keeping.
  • The binary format is stored with the ...
  • The text format is stored with the SAVE AS TEXT menu item.
  • You LOAD ...
Presets ('Patches') for Sound Loom: .#123
[distreps.#111]
2 2 0
The Sound Loom Patch mechanism saves the parameter settings in a program's dialogue box.
  • Sound Loom saves its Patches as text files. They are placed in the _cdpatch directory. You are advised not to edit these files. You can overwrite a patchfile in the Sound Loom simply by saving a patch with the same name as an existing patch. You can, therefore, edit a patch by loading it changing the parameters in the Sound Loom, and then saving it with the same name.
  • You can SAVE Patches after selecting the parameter values. First enter a name for the Patch and then click on SAVE. You will then see the name appear in the Patches window on the right hand side of the dialogue box.
  • You LOAD a saved Patch from within a program's dialogue box. Whenever you enter the dialogue box of a function for which Patches have been previously saved, these Patches will be automatically listed in the Patches window. To LOAD a Patch, click on the name to select it and then click on LOAD. You will see the parameter sliders adjust to match the saved values.
  • The example shows the contents of a Patch for DISTORT REPEAT. The parameters are groups, cycles, and skiptime, so in this case it is easy to see that the Patch's '2 2 0' provide values for these parameters in that order.
  • Sound Loom Patches can be overwritten if you change parameter settings and SAVE to the same name. (You are given a warning but are allowed to proceed.)
  • It is useful to save a Patch when working with a complex program, even if it is still 'work-in-progress'. You can then easily resume work where you left off if you need to leave and come back to it, or if the program or computer has crashed.
Presets for Soundshaper: .dat
The Soundshaper Preset mechanism is an essential tool. It saves the parameter settings of a program's dialogue box.
  • These presets exist principally in binary format, although single parameter sets (.prm) can also be saved and loaded; these can also be saved as text. To retain a full text record of what has gone into making a sound, keep History Files as you work.
  • A Preset datafile for each process is loaded automatically, if it exists. Presets are supplied for some processes.
  • Alternatively, you can load and apply a general collection, which can contain presets for a number of different processes.
  • A default general Preset collection, Presets.dat, is supplied, which contains mainly the Presets for use with the TEXTURE Reference documentation.
  • You can save a new Preset after filling in the dialogue box. The new Preset is saved to the currently loaded Preset datafile. If you change the parameter settings after this, you can overwrite the currently named Preset.
  • Because you can create named Preset datafiles, you can create project-related Preset collections.
  • Building a library of Presets is an effective way to retain your best ideas and work more efficiently.
Print Analysis Files in Text Format: .txt
SPECINFO PRINT enables us to print out the analysis data contained in 1 or more analysis windows. A part of the printout for 1 window is shown below.
************* WINDOW 345 *****************
amp[ 0] = 0.002600635496	frq[0] = 0.000000
amp[ 1] = 0.001492887153	frq[1] = 32.29
amp[ 2] = 0.005482595414	frq[2] = 116.10
amp[ 3] = 0.009255814247	frq[3] = 122.49
amp[ 4] = 0.002895294456	frq[4] = 103.51
amp[ 5] = 0.002931063529	frq[5] = 224.99
amp[ 6] = 0.002158151507	frq[6] = 222.28
amp[ 7] = 0.002240940928	frq[7] = 318.06
amp[ 8] = 0.002834638115	frq[8] = 342.96
amp[ 9] = 0.002523895578	frq[9] = 384.55
amp[10] = 0.001449736417	frq[10] = 419.28
amp[11] = 0.001023214078	frq[11] = 478.79
amp[12] = 0.001672648359	frq[12] = 512.65
amp[13] = 0.001366633689	frq[13] = 562.10
amp[14] = 0.000926827255	frq[14] = 593.75
amp[15] = 0.001179855100	frq[15] = 668.11
amp[16] = 0.002391355112	frq[16] = 693.03
amp[17] = 0.001400942332	frq[17] = 698.32
amp[18] = 0.000237820757	frq[18] = 842.40
amp[19] = 0.001263817155	frq[19] = 841.44
amp[20] = 0.002094169846	frq[20] = 858.42
etc.
  • The output of SPECINFO PRINT is a text file. The example above asked the program to print out 1 analysis window at time 1.0 sec. Only the first 20 of the 512 channels of Window 345 are shown above.
  • The file displays the amplitude level of each frequency found in the given channel. Amplitude is on a 0 to 1 scale, and the Frequency information is in herz (cycles per second).
  • When needed, this function provides access to the results of the analysis.
  • The key to its use is selecting the time point and number of windows carefully to get the information you seek, such as an area of great timbral interest.
Print Sound Files in Text Format: .txt
[samplecount level]
[4545]      -258	
[45451]     -271	
[45452]     -256	
[45453]     -255	
SNDINFO PRNTSND enables us to print out soundfile sample information in text format.
  • The output of the program is a text file.
  • In the example on the left, the program was instructed to print out the sample data between time 1.0 and time 1.0001 (1/10,000th of a second. As you would expect, 0.001 of a soundfile gives 10 times that information, i.e., 40 lines.
  • The column at the left gives the sample count. The sample rate of the input soundfile was 4545 samples per second, so we would expect time 1.0 to be the 4545 th sample (the count starts at 0).
  • The column on the right gives the amplitude level on the -32766 to 32767 scale, so we can see that the sound is almost silent at this point.
Report file for SPECINFO REPORT: .txt
The information function allows you to inspect the frequencies at which peaks (high amplitudes) in the spectral envelope occur. There are 4 Modes, of which the first gives a good overview of the information provided:
Mode 1 Report
[Time  Frqs at which peaks occur]
0.012 secs : 	258.40	562.93	946.74	1686.90	2006.07	2251.74
0.015 secs : 	129.20	375.71	893.60	1893.48	2251.74	5054.98
0.017 secs : 	596.41	669.45	796.11	1003.04	1787.21	5674.03
0.020 secs : 	501.52	631.87	1125.87	1418.51	1592.22	2251.74
0.023 secs : 	398.06	501.52	562.93	1125.87	1686.90	2251.74
0.026 secs : 	596.41	1003.04	1125.87	1686.90	2251.74	5674.03
0.029 secs : 	562.93	1125.87	1418.51	1686.90	2251.74	5674.03
0.032 secs : 	562.93	751.43	1125.87	1686.90	2251.74	5674.03
0.035 secs : 	562.93	631.87	1125.87	1686.90	2251.74	5674.03
0.038 secs : 	562.93	669.45	1125.87	1686.90	2251.74	5674.03
0.046 secs : 	531.34	1125.87	1502.86	1686.90	2251.74	5674.03
0.049 secs : 	531.34	669.45	1125.87	1686.90	2251.74	5674.03
0.052 secs : 	531.34	1062.68	1192.82	1592.22	1787.21	2125.36
0.058 secs : 	531.34	669.45	1062.68	1686.90	2125.36	6011.42
0.061 secs : 	531.34	596.41	1062.68	1686.90	2125.36	6011.42
0.064 secs : 	531.34	631.87	1062.68	1192.82	1592.22	2125.36
0.067 secs : 	501.52	596.41	1062.68	1192.82	1592.22	2006.07
0.070 secs : 	501.52	596.41	1003.04	1502.86	2006.07	5674.03
0.073 secs : 	501.52	596.41	1003.04	1125.87	1502.86	2006.07
0.075 secs : 	501.52	596.41	1003.04	1502.86	2006.07	2251.74
0.078 secs : 	501.52	596.41	1003.04	1502.86	2006.07	6011.42
0.081 secs : 	501.52	946.74	1125.87	1502.86	2006.07	6011.42
0.084 secs : 	473.37	596.41	946.74	1125.87	1502.86	1893.48
0.090 secs : 	473.37	946.74	1062.68	1192.82	1502.86	1893.48
0.093 secs : 	473.37	946.74	1062.68	1502.86	1686.90	1893.48
0.096 secs : 	473.37	893.60	1003.04	1125.87	1418.51	1893.48
0.104 secs : 	446.80	893.60	1003.04	1418.51	1592.22	1893.48
etc.
The left hand column shows the times to which the data relates. columns to the right of each time show the frequencies at which a peak occurs. They do not indicate the amplitude level, however. The program enables to choose how many peaks per time you would like to display (6 in the example), and, optionally, the lower and upper limits of the frequency band to investigate. The 4 Modes offer variations on what is displayed:
  • These outputs are text files.
  • Mode 1 – display times and the frequencies at which the peaks occur
  • Mode 2 – display times and the frequencies at which the peaks occur in loudness order
  • Mode 3 – display the frequencies at which the peaks occur, but without any times
  • Mode 4 – display the frequencies at which the peaks occur in loudness order, but without any times.
What we are looking for here is an indication of which frequencies or frequency bands are loudest: where the energy of the sound resides. At first the display may seem like a confusing array of numbers, but it is less so when you look for the numbers that repeat: i.e., the loud frequencies that stay loud over several time points. The ability to specify a bandwidth enables you to look at different parts of the sound and pin down where the most energy resides at various time points during the course of the sound.

This information can be useful when applying filtering to the sound, or working with HILITE BAND.

Sequence file for EXTEND SEQUENCE: .txt
[time transp loudness]
0.0   0.0    0.25
1.5   3.25   0.50
3.0   7.75   1.00
The sequence file creates several events, each making use of the input soundfile.
  • It is a text file with several lines, one for each event.
  • Each line contains 3 values: time in the output soundfile, transposition (in semitones – may be fractional), and a loudness multiplier.
  • Spaces or tabs between values, not commas.
  • The loudness multiplier may be > 1, but watch out for overload.
  • If the gap between the times is less than the length of the infile, the repeats are mixed so that the overlapping is heard.
  • The example produces an output soundfile in which the infile repeats 3 times at higher transpositions, and becoming louder.
Sequence file for EXTEND SEQUENCE2: .txt
EXTEND SEQUENCE2 allows more than one input soundfile. It therefore has more values in the sequence file.
  • It is a text file with several lines, one for each event.
  • The 1st line contains a MIDI pitch value for each input sound. These MPVs can be 'notional', i.e., approximate and relative. The acceptable range is therefore 0 to 127.
  • The subsequent lines are for each event, that is, each iteration of one of the input soundfiles.
  • These event lines have 5 values:
    1. A number for the input sound for that event, which follow the order in which they appear. If 3 input sounds are given, they will be numbered 1 2 3.
    2. A time at which that event is to be placed in the output soundfile.
    3. A transposition value in (possibly fractional) semitones for that event. This value is shown as steps above or below the (notional) MPV of that soundfile, within the 0 to 127 MIDI range.
    4. The loudness of the event, given as a multiplier – may be > 1, but watch out for overload.
    5. A duration value for that event. This may shorten the sound, but it may not be longer than the sound event at the given transposition. Note that this is time-domain transposition, so raising the sound will make it shorter.
  • This may seem to be a crude form of sequencer, but actually it is very sophisticated when you consider how the Sound Loom Table Editor can be used to massage the Sequence file in a semi-algorithmic way. One could also write scripts for Tabula Vigilans to create Sequence files.
  • The example below uses 3 inputs and produces 5 events. The inputs were a voice, a gong and a flexatone, in that order.
[(Notional) MPVs]
60 50 80
[sound time transp loudness dur]
1      0.0  72     0.5      0.75
2      0.5  57     0.25     6.0
3      1.0  74     0.4      4.0
3      1.5  77     0.5      3.0
1      2.0  60     0.7      2.2
Shuffle codes for DISTORT SHUFFLE and BLUR SHUFFLE
[domain-image]
abc-ccbbaa
OR
abcde-eadbcccbdae
These are not actually presented to the programs as files, but rather as codes for the domain and image parameters.
  • They are stated in text form but translated by the software as number and order of wavecycles (DISTORT) or analysis windows.
  • The first part of the code is its domain and identifies consecutive units (wavecycles or windows).
  • The second part of the code is its image and presents the order in which these units are to appear, including repetitions (repetitions will increase the duration of the output).
  • Thus the first example reverses the order, duplicating each unit.
  • The second example mixes the units up a lot more while creating a symmetry pattern.
  • There is tremendous scope for inventive patterning with this distortion technique.
Silence file for REPITCH INSERTSIL: .txt
[start end]
0.2    0.4
0.6    0.8
1.0    1.2
1.4    1.6
The Silence File contains pairs of values to define the start and end times for silent gaps to be inserted into the sound. These silences overwrite?expand... The input for REPITCH INSERTSIL is a binary pitch data file, which is created by REPITCH GETPITCH.
  • The Silence File is a text file.
  • The output of REPITCH INSERTSIL is another binary pitch data file. It needs to become an analysis file before it can be resynthesised into a sound file. This can be done by ....??
  • In Mode 2, the data can be entered as sample counts: single samples for Mono and pairs of samples for Stereo.
  • x
  • x
Soundfiles: .wav / .aif
Soundfiles contain audio data as samples in time amplitude pairs.
  • binary files that can only be viewed graphically unless converted to text format with PRNTSND. Also see what the Sound text file looks like.


  • CDP follows the full wav specification, which includes a xxKb allocation for extra data. Software that does not make this allowance produces soundfiles that CDP cannot read. Copying the errant file with COPYSFX will produce soundfile with a valid CDP header.


  • The CDP software supports the following sample types and formats:
    1. Sample types:
      1. 16-bit integer (shorts)
      2. 32-bit integer (longs)
      3. 32-bit floating-point
      4. 24-bit integer 'packed'
      5. 20-bit integers in 24-bits
      6. 24-bit integers in 32-bits
      (.wav only: .aiff and .aifc written as type 4)


    2. Output formats:
      1. standard soundfile: .wav, .aif, .afc, .aifc
      2. generic WAVE_EX (no speaker assignments)
      3. WAVE_EX mono/stereo/quad (LF, RF, LR, RR) – number of infile channels must match
      4. WAVE_EX quad surround (L, C, R, S) – infile must be quad
      5. WAVE_EX 5.1 format surround – infile must be 6-channel
      6. WAVE_EX Ambisonic B-format (W,X,Y,Z) – infile must be quad


  • Basically, the system will by default reflect the input format in the output: i.e., in all cases, the output soundfile will have the same format as the infile unless told to do otherwise, such as convert between .wav and .aif, etc. The conversions are made with COPYSFX, the usage of which gives the full list of formats.

A typical Time Domain representation of sample data
Times files for use with SFEDIT CUTMANY, EXCISES and MASKS: .txt
[start end]
0.0    0.5
1.2    2.7
3.4    6.8
8.0    9.8
These are files with paired times for the start and end of (several) portions of soundfile. These are cuttimes for CUTMANY (Cut and Keep) and for EXCISES (Remove and close up the gaps), and masktimes for MASKS (Mask with silence), representing several options in the SFEDIT Program Group.
  • These are text files.
  • The pairs are on separate lines.
  • You can find the times you require by marking them in a graphic editor, or aurally using Play From-To in Soundshaper.
Transposition files used with REPITCH COMBINE: .trn
This type of file is produced as an output from REPITCH COMBINE, which can also use .trn files as inputs. The transposition file is also created by a number of different REPITCH functions, which massage binary pitch trace files (.frq).
  • They only exist in a binary format.
  • In Mode 1, REPITCH COMBINE can make a .trn file from two .frq files (the pitch trace files output by REPITCH GETPITCH). In Mode 3, it can make a .trn file from two .trn files (the transposition files previously output by REPITCH COMBINE). If one of each is used (Mode 2: .frq and .trn), the output is another .frq file. All of this is summarised on the Chart of Transposition & Shifting Inputs and Outputs.
  • This is powerful stuff. It means that you can use REPITCH COMBINE to transpose a pitch trace with another pitch trace (Mode 1): .frq from sound-1 by .frq from sound-2, producing a .trn file then used by REPITCH TRANSPOSE to do the actual transposition of sound-1.
  • Similarly, you can use REPITCH COMBINE to combine a .trn from sound-1 with a .trn from sound-2 (Mode 2), producing a new .trn. You can use this new .trn as an input to REPITCH TRANSPOSE to transpose either of the two inputs, i.e., sound-1 or sound-2.
  • Thus, you are in effect using the pitch trace of one sound to re-shape the pitch trace of another sound.
Tuning File for PITCH TUNE / SYNTH CHORD: .tun
[MIDI Pitch Values]
48 55 55 67 72 76
This file provides the pitches of a chord with which to tune a sound with PITCH TUNE.
  • Type: text file
  • Pitches are expressed as MIDI Note Values (MPV)
  • The MIDI range is 0 to 127, in which 55 = Middle C.
  • See the Chart of Equivalent Pitch Notations as a guide to pitch values.
  • The chord shown is a C-7th in an open (spread out) form. The tuning operation seems to work better like this. If the pitches to which to tune the sound are too close to each other, the tuning may not affect enough of the pitch range of the sound to achieve the desired chordal effect.
  • It may be useful to see where in the frequency range the most energy of the sound is concentrated. This can be done via the PEAK ENERGY file.
Vfilter Files to and from FILTER VFILTERS: .txt
The Vfilter files work with FILTER VFILTERS and comprise an inpitchfile and one or more generic_outfilterbankfiles designed for use with FILTER VARIBANK. The inpitchfile is simply a list of MIDI Pitch Values (MPV's) or frequency values in Hz. For example:
48 63.5 70 74 81
  • The inpitchfile is a text file.
  • MIDI Pitch Values may be integer or microtonal e.g., from 0 to 99 (i.e., cents: 100 divisions of a semitone) – or even more decimal places.
  • It may have more than one line. Each line will generate a separate output file, numbered '0', '1', '2' etc.

The output, generic_outfilterbankfile will look like this (edited here for conciseness – the original has pitch values to several decimal places):


[Time MPV Amp  MPV  Amp  MPV Amp  MPV Amp  MPV  Amp]
0     48  1    63.5 1    70  1    74  1    81	 1
10000 48  1    63.5 1    70  1    74  1    81	 1
  • The generic_outfilterbankfile is a text file, which may be edited, e.g., to alter the amplitudes (0 to 1 scale).
  • The name you give it is used in the output names, plus the '0', '1', '2' etc. appended to give each output file a generic but separate name.
  • The second line with time = 10000 means that the filter values given extend (without changing) from 0 seconds to 10000 seconds (i.e., the end of the file). The program adds it because it needs to have two time values in a VARIBANK data file.

Weavefile for BLUR WEAVE: .txt
The weavefile specifies the order in which to grab and join together a series of single analysis windows.
[Window movement]
4 -4 3 -2 1 0 0 -1 2 -3 4
  • The weavefile is a text made up of positive (forwards movement) and negative (backwards movement) integers that follow 3 rules:
    1. Steps must remain with 127 forward or -128 backwards
    2. The weave must not go before the start window of the weave
    3. The final window of the weave must be after its start window
  • The example shown duplicates one of the shuffle patterns to illustrate how WEAVE would accomplish the same result. Let us spell this out in detail. The SHUFFLE domain is abcde. In WEAVE this would be windows 12345.
    shuffle: e  a d  b c c c  b d  a e
    weave:   5 -4 3 -2 1 0 0 -1 2 -3 4
    
    i.e., jump to the 5th window, move back 4, move forward 3, move back 2, move forward 1, do not move for 2 positions, move back 1, move forward 2, move back 3 (to the start position window) and move forward 4 (to the end position window).
  • Yes, it's a wild idea, and with 128 positions available, the way it can be patterned is extremely flexible, from large jumps to motions that over around the same point.
  • One thing to bear in mind is that analysis windows are relatively short, e.g., 344 in one second. The span of 128 windows therefore equals about 1/3rd of a second, so you will always be dealing with a fairly concentrated section of sound material.
Vowel File for HILITE VOWELS: .txt
[time vowel]
1.0   ar
2.0   ee
3.0   oo
4.5   oa

Chart of Vowel Symbols ('V' = Vowel)

V AS IN V AS IN V AS IN V AS IN
ee heat i hit e pet ai hate
a pat ar heart o hot or taught
oa boat u hood oo mood

xx So. English hub x neutral V in herb or the
Enter the times and the vowels you would like to use at those times. There is interpolation between the vowels, so dipthongs can be created by moving from one vowel to another.
Vowel File for REPITCH VOWELS: .txt
[time	vowel]
0.0	e
1.0	a
2.0	i
3.0	x
4.0	o
5.0	u
6.0	n
A single vowel can be given to the program directly, or a Vowel File can be used. This is a text file of paired time vowel values, where vowel is one of the following strings:

Chart of Vowel Symbols ('V' = Vowel)

V as in V as in V as in V as in
ee heat i hit ai hate aii Scottish e
e pet a pat ar heart o hot
or taught u hood uu Scottish you ui Scottish could
x neutral V in herb or a xx Southern English hub
n mean, can, done
  • The Vowel File is a text file.
  • Enter the times and the vowels you would like to use at those times. They remain the same until the next vowel comes in. There is interpolation between the vowels, so dipthongs can be created by moving from one vowel to another.
Zeros file for REPITCH INSERTZEROS: .txt
[start end]
0.2    0.4
0.6    0.8
1.0    1.2
1.4    1.6
In this context, 'zeros' means unpitched analysis data. This differs from the 'silence' of REPITCH INSERTSIL in that silence means silence: here, zero means that there is no pitch (found) at a given location, but it is not necessarily a silent moment.
  • The file specifying the timing of the zeros to be inserted is a text file.
  • It contains pairs of time to specify where to insert the zeros: i.e., start and end times.
  • The input file for REPITCH INSERTZEROS is a binary pitch trace file, and the program produces another file of the same type (.frq).
  • These two files now need to be combine with REPITCH COMBINE in Mode 1 to create a binary transposition file (.trn).
  • The .trn file is the transpose parameter for REPITCH TRANPOSE/F in Mode 4, producing a .ana file which can be auditioned and resynthesised.

Last Updated 18 Jan 2024 -- HTML5 version
Text last updated: 3 February 2014 - AE
Documentation: Archer Endrich
Revisions: Robert Fraser
All observations & ideas for improvement appreciated
Composers Desktop Project
Email: composersdesktop@gmail.com
© Copyright 1998-2024 Archer Endrich & CDP