Roger Dannenburg's early paper on interactivity,. In it he talks about the CMT midi toolkit and issues around implementing interactive systems.
A couple of interesting observations are made. He talks about implementation issues from the point of view of a tool maker. It is interesting that some of the issues represent tasks that must be accomplished by a non-skilled user, and some are issues around techniques of implementation that are only a tool maker's problems.
á Input. It is often necessary to handle multiple streams of input, but stopping to wait
for input is usually not possible.
á Concurrency. Music generation typically requires many independent threads of
control, but traditional approaches add program complexity.
á Synchronization. Concurrent tasks must communicate and share data.
á Memory Management. Data objects are often allocated in response to input and
must be carefully deallocated when no longer needed.
á Sequencing. Programming is essential for interactive systems, but event sequences
such as musical scores are clumsy to express as programs.
á Parameter adjustment. Compiled programming languages contribute to execution
speed, but make it awkward to adjust and refine many parameters.
á Scheduling. Long computations can interfere with the real-time responsiveness of
á Testing. Interactive systems, especially those with multiple performers, are difficult
to test because testing requires real-time input and because input may not be
reproducible for debugging purposes.
Choice of input, sequencing, parameter adjustments, and testing are user activities.
All of the above are tool maker problems that must be solved. Roger is more looking for the how to solve these problems rather than the how to make them user friendly.