Suff:Progs

From JimboWiki
Revision as of 03:00, 26 March 2007 by J (Talk | contribs)

Jump to: navigation, search

 · Suff Home  · Style Research  · Functional Requirements  · Algorithm  · Patches  ·


Helper Patches

advmetro

The "Advanced Metronome" (advmetro) is used to time different note types simultaneously and synchronously. It uses a "tempo" object to produce 48 bangs per beat. The bangs are counted by "counter" objects to produce measure count, half note count, quarter note count, eighth note count, sixteenth note count, and triplet count. The counts are sent out the outlets and to variable names using the "send" object. This way, patches can be synchronized without the need of connecting clocks.

randline

The "Random Line Generator" (randline) is used to generate a random bunch of notes within a given (or default) range. The notes have random velocities which are all greater than 50. Duration of the note is selected randomly, but conforms to the rhythm supplied by "advmetro"'s send variables. This algorithm was first developed in the "Duel-Metro" patch and later put into a separate patch for easy reuse.

Program Patches

Duel-Basic

This is random music very close to its simplest form. Two lines of completely random notes spanning the entire MIDI range are played at completely random velocity (0-127) with a duration of less than 250ms. Because duration is a limit, the music isn't completely random, but its pretty close and most unmusical.

Duel-Metro

Two lines of restricted range notes are played at velocities above 50. Duration is selected randomly from three settings: 1/4 note, 1/8 note, 1/16 note. Tempo is enforced by the "advmetro" patcher. The first note is caused by the on-switch. At this time a random note is generated (within the range) at a random velocity (above 50). A duration is also randomly selected and passed to a "switch" object. When the slected duration is over and "advmetro" sends out a value, that value is converted into a bang which simultaneously ends the currently playing note and starts the process over. This sort of approach has the potential to cause some very strange note durations - such as if a triplet were started, then after the triplet finished a half note was selected, you wouldn't actually get a half note following a triplet. You would get a triplet followed by a note lasting until the next half not event (2 tripplets plus a 1/4 note away). This is very desireable because it will force the music to stay aligned in measures.

Multi-Line-Metro

Several "randline" patches with different ranges defined are all connected to a single on/off switch and "advmetro" object. The result is quite interesting. The music produced is completely atonal, as axpected. Because "advmetro" is based in 4/4 time, the music actually takes on 4/4 characteristics because of the way notes are distributed in a measure. For instance, there is a 100% chance that there will be a note started on the first beat of a measure because every type of note has a "advmetro" event at that time. It doesn't matter what the duration selector switch is set to - there has to be an event.

Beat 1 1 1/4 1 1/3 1 1/2 1 2/3 2 2 1/4 2 1/3 2 1/2 2 2/3 3 3 1/4 3 1/3 3 1/2 3 2/3 4 4 1/4 4 1/3 4 1/2 4 2/3
Notes Playing 4,2,1,1/2,1/3,1/4 1/4 1/3 1/4, 1/2 1/3 1/4,1/3,1/2,1 1/4 1/3 1/4, 1/2 1/3 1/4,1/3,1/2,1,2 1/4 1/3 1/4, 1/2 1/3 1/4,1/3,1/2,1 1/4 1/3 1/4,1/2 1/3
Probability of event (notes/6) 100% 16.6% 16.6% 33.3% 16.6% 66.6% 16.6% 16.6% 33.3% 16.6% 83.3% 16.6% 16.6% 33.3% 16.6% 66.6% 16.6% 16.6% 33.3% 16.6%