Homework Assignment 3
Beta Version Due In Class - Thursday, March 8th, 2007
Final Version Due In Class - Tuesday, March 13th, 2007
"The Algorithmics"
A MAXimal Blues Band
This is a class project. Each
student in the class is responsible for creating at least one "musician"
patcher, capable of jamming
in a virtual blues band with the following characteristics:
- Consists of a drummer, bass player, keyboard player, and
melodic soloist (guitar, sax, etc.), all of which use General MIDI
sounds.
- Uses a master control patcher (the Blues
Conductor from Assignment 2) that keeps time, posts the current tick,
beat, measure, progression number, and chord, and allows a user to adjust
various
parameters
during performance,
including
the
tempo, and the volume,
and General MIDI patch, of each player.
- Improvises 12-bar blues in a “shuffle rhythm” (triplet 8th feel
in 4/4 at a moderate tempo)
General Requirements
- Each musician patcher should receive tick, beat, measure,
and verse messages from the conductor using receive objects.
- Each musician should be capable of reinitializing itself
when it receives a bang in a receive object named "reset."
- Each musician should be able to play along with the other
musicians in the band using constrained random algorithms to generate the
notes, which should be appropriate to the CurrentChord posted by the conductor.
Specific Requirements
- Drummer: uses a General MIDI drum kit on channel 10 and
improvises a beat in a "shuffle rhythm." Use at least a bass (kick) drum,
high hat, snare, and crash cymbal. Other drums may be used, as well, but
no more than 4 drums should be played at the same time. The drummer should
be able to play at least one basic pattern, and generate variety by controlling
the probability of occurrence of various parts of that pattern.
- Bass Player: uses a General MIDI bass sound on channel
2 and improvises a bass line derived from the CurrentChord table. The bass
line can vary in rhythmic complexity, but it should always play a note
on the first beat of each measure, and usually on the 2nd, 3rd, and 4th
beats, as well. The user should be able to control the probability that
notes will occur on other beats and ticks with a fader. The bassist should
always play the root pitch (0th element) of the CurrentChord on
the first
beat
of each
measure,
but
the
pitches
on all other beats and ticks can vary.
- Keyboard Player: uses a GeneralMIDI piano sound on channel
1 and improvises a chordal accompaniment derived from the CurrentChord
table. The keyboard player can play as many as 10 notes at once, 5 with
each hand, and each hand can only span an octave. The user should be able
to control the maximum number of notes being played simultaneously, the
range of possible notes, and also the probability of occurence for every
note being played, using faders.
- Soloist: uses a GeneralMIDI guitar, sax, or other
monophonic instrumental sound on channel 3. The soloist should improvise
a melodic solo by using either the pitches in the CurrentChord table or
an appropriate scale. The user should be able to click a toggle button
that will force the soloist to stop improvising and randomly generate
a "riffs," consisting of a short
pattern
of
notes
taken
from the
CurrentChord, which it will then repeat over and over until the toggle
button is unchecked. (I.e., the pattern will repeat, but the actual pitches
will change as the chords change during the 12-bar blues.)
NOTE: please send email to r.pinkston@mail.utexas.edu confirming
which type of musician patcher you will be making.
Evaluation Criteria
Technical – 70% [the program should work reliably, be
syntactically correct, and fulfill the minimum requirements of the assignment,
etc.]
Appearance – 20% [the patchers should be neat, well-organized, and adequately
commented, and the user interface should be clean, efficient, and attractive]
Musicality/Creativity – 10% [What can I say? It should be a good
blues musician!]