Rock-It has been progressing. I changed the start-up behavior so that touching any control will initiate playback. I have also created song arc events that include modifying the root note, scale, and tempo of playback. Styles (my name for the pre-stored performance data) now posess a length field and an event list that drives these song arc changes.
One of the interesting problems I ran into is that a root or scale change would produce a situation where sustaining notes were still playing in the old root/scale and would clash with any new notes. I fixed this problem by walking the sustaining note list and re-triggering any notes that changed as a result of the new root/scale. This made the root/scale changes sound more dramatic too – a good thing!
On tap for today: Implementing Drum, Bass, Melody, and FX panel changes in the song arc. And after that, making sure that control panels under active user control do not get driven by the song event list.