Universal Music Machine
UMM is an algorithmic composition utility that creates independent sequences of pitches, rhythms, and dynamic markings, and then splices these sequences together to create a MIDI sequence. You, the composer, supply the initial "starting material" for each sequence, tell UMM which algorithm to use, and UMM will quickly generate a MIDI sequence. You can then easily change your source material and do it again.
UMM supplies the following algorithms:
- Random: simply chooses among the given source elements with equal probability.
- Sequential: chooses elements from the source in the same order that they were supplied.
- Bottle: similar to Random, except that each element of the source will be chosen before any elements are repeated.
- Persistent-Sequence: similar to Sequential, except that the position of of the sequence expansion is remembered if there is a break in the expansion (this occurs when expanding subsequences or "sets", as will be explained shortly.)
The idea of subsequences, or "sets," as we like to call them, allows for great flexibility and creativity. A set is a mini-sequence, having its own source material, choice of algorithm, and expansion length. You define your sets to be collections of pitches, rhythms, or dynamic markings, and then you can refer to those sets in the future. When UMM creates your sequence, if it comes across a set, it will expand it to the desired length, and then splice its expansion into the sequence. Sets can contain subsets, which can contain subsets, etc...
UMM can play back its MIDI sequences from within the program, or you can export the sequences as standard MIDI files, which in turn can be imported into Finale, Sibelius, or other score editors. We have used UMM mainly to generate fragments of material which we have incorporated into traditionally composed pieces, but of course feel free to do whatever you want. Be sure, however, that when you are importing UMM sequences into a score editor, that you have correctly set the quantization settings (i.e. allowing triplets, quintuplets, etc..) or you will get a big mess in your score editor.
The size and complexity of the sequences that UMM can generate are limited only by the computational power and RAM of your machine.