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.


His list:


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

interactive programs.

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.