This is going to get kind of technical, so feel free to skip. I just need to keep track of what I was thinking.
I've decided to begin in the middle. The big wave in the background is a conceptual design for the piece--no specifics right now except that it's related to yin and yang--two opposed but complementary forces/sections of the piece. The rectangle in the middle is the beginning of the second force/section. It will rise gradually out of the first.
Inside the rectangle are six tempo maps that cover about five minutes of the transition. Each map represents a pulse that changes gradually over time according to various curve functions. They progress from fast to slow (bottom to top). The possible ratios are listed in the upper right corner. 3:2 is the base, they progress through a wave in ~75 and ~50 seconds, respectively.
The various kinds of curves are represented in the upper center portion. Only
curves are shown, but
curves would be the same shape but inverted.
The lower left corner contains partial contents of Max messages for the six tempo maps (more on that below).
This is the basic Max patch I'm using to output clicks of each tempo map. My current plan is to output around five minutes of (metronome) clicks for each of six maps, then layer them in Logic. This is mostly to give me a visual sense of the ebb and flow of the various tempo streams. I'm considering the possibility of using Logic to output these streams to headphones worn by six performers in the performance. I'm generally opposed to headphones with click tracks, and if I can simulate the various interactions between tempo streams through another means, I won't, but for now it's an option.
This patch receives a list of three floats: the target tempo, how long (in milliseconds) it will take to get there, and the shape of the curve (i.e. the shape of change in tempo).
This patch is a test environment for sending messages to the patch above. Each stream has a patch "actualcurve" and a level slider. (The patcher impulse_design is where the user can draw the timbre for the click on each stream.) In the lower left corner there is a bit of coding that stores a list of all the targets, times, and curves in a coll object, and outputs the next in line after each target tempo is reached.
More to flesh out. Again, this is primarily to help me remember what I was thinking next spring when I have to write a paper.