Patch - Group 3, Project 3
metro_counter.jpg

This first toggle switches on the metro, which outputs a bang every 400 milliseconds. The counter keeps track of the number of bangs put out by the metro, and counts every group of 32 bangs, which amounts to eight measures of four beats. (The number of beats in each group can be changed using the number box above the “max $1” message.) The counter object keeps track of the number of times 32 beats have passed with the number box connected to the right inlet. Using % 3, we get an output of 0, 1, or 2, which allows us to choose between one of three sections.

random.png

The metro sends a bang to the random object, which generates a random number between 0 and 99. A list of integers to the right of the random is selected based on the amplitude of the audio input. This list is fed into the zl len object, which determines the length of the list. The % object divides the number output by the random by the length of the list and finds the remainder. The zl lookup then uses this number to designate a number in the list.

tempo.png

The metro from the first image starts the tempo, which outputs bangs at 96 beats per minute and opens the gate, which allows information to flow through. The dial going to the second inlet of the tempo allows the user to change the number of beats per minute. The number output by the zl lookup in the previous image goes into the right inlet of the tempo and is interpreted as a subdivision of the beat.

inprobs.png

The tempo object feeds into the three subpatches, two inprobs and one soloist. The three sections are wired in such a way that when the counter selects a section, the flow of information to the other two is stopped by gate objects. The two inprob objects take audio input from an outside source, but the gate objects cause input to go into only one inprob at a time. The three sections feed into the keyboard, makenote, and noteout objects in order to produce sound.

inside_inprob.png

Inside the inprob subpatch, the user can select to input midi information either through audio input or a midi keyboard. The pitch~ object converts audio data into midi and registers amplitude, while the notein object separates the note, velocity, and channel of a midi note. The note information feeds into the anal and prob objects, which keeps track of the order and rate of recurrence the notes and output a likely note based on that information.

soloist.jpg

The lists on the right represent different scales, represented as intervals above the tonic, that feed into the soloist subpatch. They are categorized by emotion. The metro on the right chooses randomly between the scales every second.

inside_soloist.png

The scales feed into inlet 2 of the subpatch. They are fed into the zl len object, which determines the length of the list. The % object divides the number output by the random by the length of the list and finds the remainder. The zl lookup then uses this number to designate a number in the list. The drunk object chooses a random number between 0 and 9, but the difference between the current and previous numbers is never more than 2 as determined by the second argument. The number output by the drunk object designates a position in the list, to which 60 (the midi value of middle C) is added. The number box can change the tonic of the key.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License