Generalities about score
The score language was originally designed as an interactive interface to Soundblaster Pro. It has, therefore, some limitations, such as:
- 9 channels (or voices) numbered 0 to 8
- cannot play glissando
- cannot play crescendo/diminuendo on a single note
In the millenia since, Soundblaster Pro became unusable, as it conflicts with multitasking Windows. So I remap the score results
to a midi file, which is quite general, but:
- cannot create new instruments, e.g., by munging oscillators
- does not allow interaction, e.g. the score printing "Gavotte" on the screen as it plays the Gavotte.
Some basic details:
- rest are showed as r
- pitches as shown; c5 is middle C, c6 an octave above, etc
- chords are groups of pitches, separated by commas. If, for example, voice 2 meets the chord c,e,g then:
- voice 2 will play C
- voice 3 will play E simultaneously
- voice 4 will play G simultaneously
After that voices 3 and 4 become inactive, and have to be reactivated to play later.
- durations as fractions ( quarter = 1/4 or just /4 ; dotted quarter 3/8 )
- missing durations are copied from the previous duration.
- text in balanced braces {} is comment, no influence on sound production
numerous instructions
The ones most relevant for this score:
- sound voices; halt voices;
e.g. sound 12; halt all;
When a voice meets sound 12; the voices 1 and 2 become active, and start reading the score
and emitting sound; when a voice meets these halt all; all the voices stop, and the piece actually ends.
One voice may activate or stop others, or itself.
- goto label
- the current voice plays the text following label: – the colon marks labels.
- send voices to label
- the voices play the text following label: – one voice may send other voices to labels.
- gosub label
- The current voice goes to label and interprets the text there; eventually it meets the instruction ret
and returns to the text after the gosub instruction.
This is quite standard notation in programming, in musical scores? refrains...
- if cur = voice0 ( ... text ... )
- Several voices may read the same text at arbitrary times. If the current voice is voice0, then the text in brackets is played; otherwise it is skipped.
- vvol
- the instruction for crescendo/diminuendo (vary volume). In the etudes, all the volumes are random.
- tra_voices = transpo
- the voices get transposed by transpo semitones; transpo may be positive, negative or zero. Exactly like orchestral transposing instruments.