Jan Buchholz, Jonathan Klein

coJIVE - A Software-System for Computer-Aided Jazz Improvisation

coJIVE allows a wide variety of people to improvise over jazz tunes in collaborative sessions

Nominee of the digital sparks award 2006

coJIVE - collaborative Jazz Improvisation Environment

coJIVE - collaborative Jazz Improvisation Environment

Technical Description

coJIVE was implemented in two main parts: a back-end implements the harmony analysis and the database of chord voicings, while a front-end creates the session and coordinates the interaction with the users. Both parts were created in Mac OS X.

The back-end was implemented in the form of a Mac OS framework in C++ to allow for an easy connection with the front-end. It contains an object-oriented representation of musical elements and structures (e.g., notes, chords). For the analysis of a song's chord structure, there are also representations of patterns --- short sequences of chords that have a certain relationship --- as well as the rules, with which these patterns can be identified. We created a special XML format for songs to allow the back-end to load a song's structure for the analysis and for displaying the structure in the front-end. The chord voicings are stored as sets of notes.

The front-end was developed in Objective-C using Apple's Cocoa application framework. It accounts for the communication with the instruments via MIDI, creates the accompaniment based on an internal clock, and implements the supporting mechanisms. Therefore, it uses the back-end to obtain the note probabilities and general information about the current song (e.g., name, sequence of chords). In additon, it displays feedback on
the users' performances. The application's main window depicts the digital version of a lead sheet --- a lead sheet contains the name of a song, its tempo and metre, the chord progression, and a notation of the main melody --- highlighting the current chord and showing the current position using a cursor.

Hardware / Software

coJIVE was developed and tested by users on Dual G5 Power Mac computers with 23 inch Cinema displays.
We used a USB MIDI keyboard and the Buchla Lightning II system as instruments and the open-source software SimpleSynth for audio output.
The LEDs used for mediating the roles in collaboration were controlled with a Teleo module connected to the computer via USB.