The instruction:
The chords are taken from the cyclic join, first two notes at the time, then three, up to five. The 4 and 5 notes chord may be hard to play; actually, since my chip has only 9 channels, 5-notes chords contain five distinct sounds in the right hand, but only four in the left. I check at least that the range
for each hand is less than 15 semitones, and hope that certain pairs can be played with one finger.
As an example, from
This is the end of the piece.
Dodecaphonic piano solo, banging chords up to a final tonal melodic+harmonic cadence. There are no harmony constraints,
except at the final close; any group of notes may be sounded together.
will produce a score bang1234 and a playable midi file bang1234.mid. In more detail, driver executes:
perl driver.pl rnd_1234 irrhy_4
perl preloo.pl @ARGV
type PARM.txt
perl loo.pl > resul.txt
perl bang.pl
copy hdrbang.txt+lh.txt+rh.txt $score
midi $score
preloo.pl
– as supplied to driver.pl – and makes a file PARM.txt to be used later. rnd_1234 irrhy_4
loo.pl
Creates various cyclic joins from the series, and assigns grades to them. This, in addition to other stuff, gets written on the intermediate file
resul.txt
bang.pl
Creates the actual score, from the best cyclic join made by loo.pl. The score consists of 3 parts:
The piece is in ternary rhythm, with the left hand chords repeated 3 times each, and the right hand pattern:
With small probability, the pattern is changed for one measure (a single chord) at a time.
Both hands may play arpeggios over the whole piano range (i.e. my midi piano range), or the right hand may spread 2 or 3 beats, instead
of the standard one.A♭ B C A B♭ E♭ D E C# F F#
G ...
one may generate 4-note chords:
A♭ B C A
There may be overlap in the chords, and, of course, no note may be skipped – that would spoil dodecaphony.
B C A B♭
E♭ D E C# ...
The same changes in rhythm as above, but at higher probabilities. It contains non-overlapping chords of 4,3,3,4,5 notes, 19 notes in total.
This cadence is located in the cyclic join by the routine findcad ( it appears somewhere at random,
and may not exist at all – in this case the program increases
the random seed, and restarts at preloo.pl ) It is played first as a regular measure, than as a two-hands arpeggio,
finally as a melodic cadence above supporting tonal chords.