Homework Assignment 2
Due Thursday, March 1st, 2007
Shuffle Blues Band Conductor
Design a master "conductor" patcher
that will keep time for all the "musician" patchers in a virtual
blues band. The conductor must provide the current tick, beat, measure,
and verse number,
as
well as keeping the current chord table updated. The user should be able
to start and stop the performance, modify the tempo dynamically, and load
a file containing the chord progression for the piece to be played. To test
whether
your conductor
is working properly, you should create a slave patcher that simply displays
the data being transmitted by the conductor. Bring your conductor and slave
patcher to class on March 1st.
Hints:
- Use tempo (rather than metro) to generate the ticks.
- Use 12 subdivisions of the whole note for the 12/8 "shuffle"
rhythm. These are the "ticks."
- All ticks, beats, measures, and verses that you send or
post should start with "1" not "0". (E.g., tempo will
output 0-11, so you'll need to add 1 to this before posting it for the
musicians.)
- Use a send object to send the current tick number to all
the musician patchers, which should contain a receive object named "tick."
- Use select and counter to count the beats (dotted
quarter notes). The beats will occur on tempo's ticks 0, 3, 6, and 9 of
each measure. Send the current beat number, but also store it in a value
box.
Use the
name "beat" for both the send object and the value box. Don't
forget to add 1 to the beat numbers.
- Count the number of measures (also called "bars") and post
the measure number using a value box called "measure".
- Count the number of verses (each verse is 12 bars long)
and post the current verse number using a value box called "verse".
- Use a coll to contain the 12-bar blues progression. (See
the folder for the February 22nd class notes for the correct chord progression.
You can use this file for testing.)
- Create a table called "CurrentChord", and keep it willed
with pitches taken from the coll. At the beginning of every measure, read
the next set of pitches from the coll and store them in the table.