Compose a small serial music piece (twelve tone composition).
What did I do:
Define a prime row
Print out the 12-note matrix.
Define functions to directly utilize the four 12-note functions, namely, the prime, inversion, retrograde and retrograde_inversion.
Define 4 separate functions for prime, inversion, retrograde and retrograde_inversion functions which:
Generate MIDI events by using every 12-note row in specific function and in an iterative way, so that it will pay all 12 i.e. prime rows but will not play them twice until it finishes playing all 12 rows
In retrograde function, it will transpose one octave up when it start playing another retrograde row
Will automatically play chords when the keynum hits 60, 62 and 64
Use different 5 different sound fonts
Use RTS to play 12 different sequences in “real time” and each sequence has different start offset by using (sprout :at) function
You can compile the whole file in emacs and it will give you one min sound through rts, if there is no sound, check (rts?) and (rts-stop) if rts is running