CIM is a computational music agent designed for duet performance with a human musician.
It communicates via MIDI, listening to human perfromances on MIDI instruments and responding with MIDI output to an attached instrument.
This implementation is coded in the Extempore language.
For details see: Brown, A. R., Gifford, T., & Voltz, B. (2016). Stimulating Creative Partnerships in Human-Agent Musical Interaction. Computers in Entertainment, 14(2). https://doi.org/10.1145/2991146