Colin Sullivan

Jnana (Generative Ableton Live Plugin)

"Jnana" is an algorithmic accompaniment system integrated into Ableton Live. It can analyze MIDI input and generate melodic and rhythmic material in a similar style.

Demo of Jnana v0.1

The system is written entirely in JavaScript with a bit of Max/MSP patching to get the UI for the plug-in working. It interfaces with the Max For Live API directly, but this logic is abstracted away from the actual analysis and generative logic so it can easily be adapted to any JavaScript environment. Much of it has been unit tested and it is all documented well.

The analysis and generation logic is fairly basic relative to current research in the area. The Jnana system is primarily based on dynamically building Markov chains over the pitch, duration, and velocity of notes. These state machines are then used to generate new material. Some additional statistics can optionally be enabled that will track the first N (order of Markov tables) states of each input "phrase", using these statistics to choose a starting state in the system for each generated phrase.

For more information on the system's functionality, check out the project page.1