Ask a machine to emulate human creativity, and at the very least, you’re guaranteed to learn something. Modeling creative rules and intuitive algorithms as generative code is itself an eminently human activity – think of it as interactive theory. And where the computer fails to sound like a human, you learn something, too.

Improv-Visor is an artificially-intelligent jazz improviser tool, but it’s quite a lot more. It can be used to make lead sheets, to experiment with jazz harmonies and solos, and – by asking human students to fill in their own parts – a teaching tool. It continues some of the legacy of Band-in-a-Box, but it seems to be more in keeping with current-generation software, it supports more platforms, and it’s free and open source. (Yes, it even runs on Linux.)

Rendered in low-fidelity, unaltered General MIDI soft synth sounds, I’m not sure you’ll be tossing your Bill Evans records in favor of the computer’s attempt. But looking past the superficial quality of the sounds to the musical content, the software is pretty impressive. And because it’s a multi-purpose jazz tool and do-everything lead sheet utility, I could see all sorts of uses.

Franz Keller, CDM reader and son of the developer Robert Keller, forwards a description from his father. There’s actually a bit to wrap your head around as far as how this might be used, so I welcome some constructive comments. I think the tool looks great, though; it’d be interesting to hear this integrated with more traditional jazz songwriting and practice workflows.

Impro-Visor, by Prof. Bob Keller and students at Harvey Mudd College

Impro-Visor (“Improvisation Advisor”) is a software tool designed by musician and computer scientist Bob Keller to help jazz musicians work out, hear, and record solo ideas, including studying the work of others. It provides a notation capability for lead sheets that consist of a single melody line and chord changes. Melody content can be entered by a point-and-click interface, typed text, or a MIDI keyboard. Chord progressions are entered by typing the chord names or loading from an existing text file. Using the point-and-click interface, notes are sounded with the corresponding chord background as they are entered. Visual feedback is provided by an optional coloring scheme: chord tones show as black, color tones or tensions show as green, chromatic approach tones show as blue, and everything else shows as red.

A typical use of Impro-Visor is to ask students to compose a solo of one or more choruses over a tune being studied. By working out lines for the solo, a better understanding of both the tune and of line construction is acquired. In addition to the visual and audio feedback described above, there are various ways of getting suggestions for ideas, such as using scales, cells, licks, idioms, and quotes. These are part of Impro-Visor’s vocabulary and are automatically transposed to the chord of the moment. The user can then tweak the melodies as desired or choose alternatives. Ideas can be saved in the vocabulary for later reference. In one use, students submit their solos to the instructor, who then collects them and projects and plays them in the
classroom, for mutual critique.

Another feature of Impro-Visor is the ability to generate brand new licks over a chord progression selected by the user. Lick generation is based on a specific “grammar”, and different grammars can be used to get different styles. Grammars can also be used in conjunction with Impro-Visor’s play-along capabilities to support trading fours or eights with the user playing in real time. Looping over the entire chorus or a small segment is supported. The accompaniment is generated automatically from the chord changes, and various styles can be specified. Grammars can be learned by Impro-Visor from a set of one or more transcribed solos that have been entered as leadsheets. A large collection of chord changes for standard tunes is available in leadsheet form from the Impro-Visor user group. Users can also create new styles, enter voicings using a keyboard interface, etc.

Reference links:

main page:

user group:

solo samples:

tutorial (translates to many languages):

wikipedia description: