Third, it should realize these musical materials with timing that displays awareness of the other performers. Fourth, it should employ timbral control as a coherent part of realizing musical mate rials. The ImprovisationBuilder Program 3.1. One constraint in this project is that at every stage of development, ImprovisationBuilder must remain usable by a composer in actual performance and concerts. The framework supports four basic kinds of activity, corresponding to the four requirements for improvising systems set forth above.
Listeners process the incoming music, parsing it into phrases and focusing the systems attention.
Players create new phrases, either by transforming phrases supplied by the listener or via some compositional algorithm. Players could also supply previously composed phrases. Realizers attempt to express these phrases appropriately, both through timely presentation and timbral control. Smalltalk primitives connect ImprovisationBuilder with input and output devices. A MusicScheduler dispatches all MIDI and Capybara events, decoupling the Players and Listeners from playback timing.