This piece is a study of the technical and aesthetic aspects of
"on-the-fly" audio programming for synthesis and performance. We use the
new ChucK synthesis language,
which supports real-time, sample-synchronous, concurrent audio
programming, and a highly "on-the-fly" style of programming, in which the
composer | performer |programmer augments and modifies multiple programs
while they are running, without stopping or restarting.

"On-the-fly Counterpoint" begins with a blank ChucK program. As part of
the performance, we project the entire process on the screen for the
audience to see and follow. We construct the counterpoint piece-by-piece
in real-time, using the facets of concurrent audio programming and
on-the-fly programming in ChucK. Contrapuntal simultaneities can be
separated and compartmentalized into autonomous, concurrent entities. We
can program and reason about each entity independently, as well as
interact with other entities and with the program as a whole.

This is part of our ongoing investigation into using code as an
interactive and expressive musical instrument. It is also an
instantiation of the ideas in our NIME2004 paper: "On-the-fly
Programming: Using Code as an Expressive Musical Instrument".