Several 18th century composers such as Mozart and Haydn composed music which is performed by rolling dice to determine the sequence of measures in the music. The table below contains one of these dice-game compositions: Musikalische Würfelspiele (Musical Dice Game), Kontre-Tänze (Contra-Dance), K6 Anh. C30.01 (K3 Anh. 294d) by Wolfgang Mozart.
The piece is generated by rolling a pair of dice. The outcome of the dice roll is a number between 2 and 12. For each measure in the composition there is a set of 11 possible measures which are chosen by the dice roll. For example, if a 9 is rolled for the first measure of the piece, pre-composed measure #142 will be the first measure of the generated composition. If a three is rolled for the second measure, then measure #64 will be the second measure of the generated composition. You can view the individual measures in Humdrum text format or in MIDI file format in the table below.
To generate a composition, you would roll the dice 16 times, and choose a measure for A1 through A8 and B1 through B8. The table below gives a list of 100 random realizations of the contra-dance. The set on the left contains the music in Humdrum format, and the set on the right contains the music as MIDI files.
To combine the individual measures, use the humcat command. This command will join two or more Humdrum files into a single data stream. For example, with these two files:
humcat can join any Humdrum files which contains the same number of spines and matched exclusive interpretations at the join points.
Suppose the you roll dice with this pattern: "2 5 10 6 3 8 9 9". Then, you can generate the A section of the contra-dance with the following command:
humcat cda000.krn cda070.krn cda114.krn cda086.krn cda071.krn \ cda149.krn cda125.krn cda023.krn cda089.krn > partA.krnIf you use the same dice rolls to generate the second section, this is the command which would be run:
humcat cda155.krn cda157.krn cda029.krn cda019.krn cda031.krn \ cda080.krn cda096.krn cda127.krn > partB.krnTo generate the final composition, combine partA.krn and partB.krn together:
humcat partA.krn partA.krn partB.krn > full.krn
-- Craig Stuart Sapp