From phil_stone@maillink.berkeley.edu Wed Feb 2 12:04:18 1994
From: "Phil STONE"
Date:2/2/94
Doodz, check this out...I apologize if the formatting sucks; I'll
bring
nice neat printouts on Thursday, but I wanted you all to get a
chance
to review this before then...
Hertz Donut
(for n Hubsters, where n is at least 3)
Synopsis: n-note chords will be chosen by group processes, and
smooth or quantized curves of MIDI note and pitch bend data will
be computed by me and sent to each player to accomplish
coordinated movement between the chosen chords.
To play in this piece, you must have a sound-producing device
capable of responding to MIDI note and pitch bend commands, and
the sensitivity of its pitch bend must be able to be calibrated
to +/- one semitone.
At varying intervals of time, I will send out a request, in the
form of a
MIDI Start. When that request is seen, each Hubster should
promptly
choose and send me the following information:
- a vote for the next tonic (MIDI note-on in the range of 1-127)
- an interval from whatever tonic gets chosen; Send this as the
velocity byte of the tonic note-on message, and pick from the
following list; i.e., send me a number between 1 and 18: (notice
that lower numbers tend toward consonance)
1) 1/1
2) 2/1
3) 9/5
4) 7/4
5) 5/3
6) 8/5
7) 3/2
8) 10/7
9) 7/5
10) 4/3
11) 5/4
12) 6/5
13) 7/6
14) 8/7
15) 9/8
16) 10/9
17) 17/16
18) 25/24
- a glissando quantization value; (0 = smooth, 1-100 represent
divisors of total transition-to-next-chord time) Send this as the
data byte of a Program Change message (e.g. C0 33).
After I have received this information from each player, I will
compute note and pitch bend data to send back to each player so
that we will all converge on a new chord, the intervals of which
have been specified by each of you. The path of travel between
each player's current note and his target note in the chords is a
function of the total travel period (set by me for now) divided
by the quantization. If you send me 0 for quantization, I will
compute the smoothest path (in note-ons and pitch bends) from
your current pitch to the target pitch in the next chord, and
send out those note-ons and pitch bends to you at the appropriate
time.
Other quantization values will cause more stepwise changes in
your pitch - a value of 1 will cause an instantaneous jump to the
target pitch; a value of 2 will cause you to spend half of the
period at the current pitch, and half at the target; 5 will cause
a 5-step change, each step taking 1/20 of the total period, and
so on.
You may not play any notes or make any pitch bends directly to
your own sound-producing pile of gear. However, program changes
or timber modifications are ok. Tasteful post-processing is
acceptable if not done so as to destroy the pitch content of the
notes played. Generally, timbre should be chosen so as not to
disguise pitch content. Each Hubster should control his volume
so as to blend with the whole (ulp!) - if you can hear yourself
clearly, you're too loud.
We will have to make sure we are in tune. I am deeply sorry
about
this.
Chord freezing: if, at any time, you hear a chord you like, send
MIDI STOP, and the chord will be held if, at any time, you wish a
chord to be unfrozen, send MIDI CONTINUE, and the transition to
the next chord will begin immediately. in absence of any freeze
or unfreeze requests, chords will be held for a (relatively
short) sustain period chosen by me.
One requirement for freezing/unfreezing: these events should
only be generated by discretionary action (e.g. a button push, a
penile
strain-gauge interface, whatever) NOT as a result of stochastic
processes. In other words, freeze a chord because you like it,
not
because the Tao says it is time for the chord to be frozen.
If our various sound-producing gear does not respond linearly to
pitch bend, pretend I didn't write any of the above.
TOP OF PAGE