Difference between revisions of "Suff:Progs"

From JimboWiki
Jump to: navigation, search
Line 1: Line 1:
 
{{Suff:Header}}
 
{{Suff:Header}}
 +
==Vocabulary==
 +
'''''Max''''' - The software these programs are written in.  Created by [http://www.cycling74.com/ Cycling'74].  I's a graphical programming language focused on music.<br>
 +
'''''Patch''''' or '''''Patcher''''' - This is what the Max folks call the programs writtin in their software.<br>
 +
'''''MIDI''''' - '''M'''usical '''I'''nstrument '''D'''igital '''I'''nterface.  A communications protocol for talking about music.  It's event based, so no sound is actually transmitted, just commands to start, end, or alter notes.  There's a lot of stuff it can do - see [[Wikipedia:MIDI]]<br>
 +
'''''Velocity''''' - This is a MIDI word.  It's a measure of how hard a note is struck.  It usually corresponds directly to the volume the note is played with, and sometimes some other musical elements.  Velocities range from 0 to 127, 1 being softest, and 127 being hardest.  A velocity of "0" will cause a note to stop playing.<br>
 +
'''''Program Path''''' - These patchs are implementations of an algorithm.  They create music (though possibly not good music).<br>
 +
'''''Helper Patch''''' - These patches generally don't do anything on their own, but their functionality can be added to program patches or helper patches quite easily.  They're separated out for reuse or to keep a program patch a little cleaner looking.  Usually, they will require additional information or stimulation to do their job.
 +
 
==Helper Patches==
 
==Helper Patches==
 
===advmetro===
 
===advmetro===
Line 84: Line 92:
 
| 16.6%
 
| 16.6%
 
|}
 
|}
Notice the close correlation between dominant beats and high probabilities over the whole measure.  This shows that although the slection of duration is random, it is likely to produce a fairly pleasing rhythm, thus validating this method of duration selection.
+
Notice the close correlation between dominant beats and high probabilities over the whole measure.  This pattern still applies for larger and smaller duration increments - think 1/32 notes or 4 bar phrases.  This shows that although the slection of duration is random, it is likely to produce a fairly pleasing rhythm, thus validating this method of duration selection.

Revision as of 03:34, 26 March 2007

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


Vocabulary

Max - The software these programs are written in. Created by Cycling'74. I's a graphical programming language focused on music.
Patch or Patcher - This is what the Max folks call the programs writtin in their software.
MIDI - Musical Instrument Digital Interface. A communications protocol for talking about music. It's event based, so no sound is actually transmitted, just commands to start, end, or alter notes. There's a lot of stuff it can do - see Wikipedia:MIDI
Velocity - This is a MIDI word. It's a measure of how hard a note is struck. It usually corresponds directly to the volume the note is played with, and sometimes some other musical elements. Velocities range from 0 to 127, 1 being softest, and 127 being hardest. A velocity of "0" will cause a note to stop playing.
Program Path - These patchs are implementations of an algorithm. They create music (though possibly not good music).
Helper Patch - These patches generally don't do anything on their own, but their functionality can be added to program patches or helper patches quite easily. They're separated out for reuse or to keep a program patch a little cleaner looking. Usually, they will require additional information or stimulation to do their job.

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%

Notice the close correlation between dominant beats and high probabilities over the whole measure. This pattern still applies for larger and smaller duration increments - think 1/32 notes or 4 bar phrases. This shows that although the slection of duration is random, it is likely to produce a fairly pleasing rhythm, thus validating this method of duration selection.