Example of text files read by note
generating computer programs


In 1986 Study No. 37 for Player Piano was realized using Gareth Loy's Player program. First the notes of a canon (for example, canon I) were entered into a text file:

partI:
page1
T8/4 r 1+1 x
e7 1+1 ff
a7 1+1 ff
g7 1 ff f7 1 ff
e7 1 ff r 1 x Stop;

After specifying the first information for the first voice, the notes for the twelve voices could be generated by reading a text file with the a program using the Player software. Each line represents one voice: a call to the program, the tempo the voices uses, the synthesizer channel it is to be played on, and the transposition. The synthezer channel was derived from the line of the score, so that the highest line of the score would come out on the highest MIDI channel, and that synthezer would be set up in the mix on the far right.

partI 281.25 1 canonI 0
partI
262.50 2 canonI -7
partI
250.00 3 canonI -14
partI
240.00 4 canonI -21
partI
225.00 5 canonI -28
partI
210.00 6 canonI -35
partI
200.00 7 canonI -42
partI
187.50 8 canonI -49
partI
180.00 9 canonI -56
partI
168.80 10 canonI -63
partI
160.71 11 canonI -70
partI
150.00 12 canonI -77

The program ran on a Sun computer and the MIDI data would be sent out live as the program ran through a Roland MPU-401 MIDI interface. The PC-XT computer that I had at the time did not have enough memory to be able to record all the note data into its sequencer.

The project was revisited almost twenty years later. A machine to read the mag tapes that the software was recorded on and the computer to run it are no longer available, so I wrote a new program to read similar text files.  What follows is an example of that format.

Textfile to represent the notes for first voice in first canon:

1 {canon 1}
p, 1 {page 1 of score}
m, 1 {first measure}
r, d {rest double whole note}
m, 2
r, q
e, 7, s, d, ff, n
{e7, single note, double whole note, ff dynamic, normal articulation}
a, 7, s, d, ff, n
g, 7, s, w, ff, n
f, 7, s, w, ff, n
e, 7, s, w, ff, n


Once a voice file has been created, it is read by a computer program along with a second text file that specity the tempo, start time, and pitch. The program outputs the note data and draws the graphs.  Here is the shell file to generate twelve parts for first canon:

12, 12, 0, 0 {tempo #, score line, start time, semitones of transposition}
11, 11, 0, -7
10, 10, 0, -14
9 , 9, 0, -21
8 , 8, 0, -28
7 , 7, 0, -35
6 , 6, 0, -42
5 , 5, 0, -49
4 , 4, 0, -56
3 , 3, 0, -63
2 , 2, 0, -70
1 , 1, 0, -77

This version includes the tempo number (in the first column) so that the timbre can change depending on the tempo of the voice. The score line becomes the channel number, which will later determine the sounds location in space.

The output of this program is read by another program (in Max/MSP) that generates a MIDI file, which is then imported into Pro Tools, and played on plugged in Reason.


[ Study No. 37 ]