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:

  • salamanderanagram


  • i had an idea to do something like this back in the day when i attended Boston U. i couldn't get higher than a C in my C,C++ classes. Coding is hard. the AI to develop something like this is based on a complex set of variables. i couldn't even begin to explain the math involved. i always thought Band in a Box had it down pretty good. Good to see the Mudds doing it as a Jazz improv tool.

  • You don't have to use a built-in poor quality soft synth as indicated. It has MIDI output, so you can use a good synth and it sounds great. It's not perfect, but is perhaps hipper than BiaB.

    It's free, well documented and fun!

  • Will try that straight away.

  • bagatell

    I've been using this for a while and like it a lot. Well worth checking out.

  • What would be really interesting is something that generates chord sequences based on entered chord sequences.

  • mcpepe

    This is something I have been looking for a lot of time. Thanks!

  • Axel

    OS X 10.5.5 required! Oh my, I think it's time to bite the Apple and finally upgrade.

  • griotspeak

    damnit veqtor, i hoped that was hidden in this program.

    that is EXACTLY what i hoped was hidden in this program.

  • @Djembe Records: Yep, exactly – meaning I think we need to make them some new demo files. 😉

    @salamanderanagram: ha!

  • leMel

    Great tip, I'll have to try it out. I don't know much about this (algorithmic composition tools) but how does a program like this compare to something like a Karma system?

  • Pingback: Bezp?atna alternatywa dla Band-In-A-Box « – twój poziom odniesienia()

  • JavaJ

    Has anyone listened to this demo's- if this is educational- you would think they would have caught the loss of the swing feel whenever a second eigth note is tied to another note- it goes back to straight time.
    Very odd and doesn't feel good when you listen to it.
    Anyone else catch that?

  • Thanks for covering this, Peter!

    To those viewing – this IS a group project, and more help is welcome in coding and entering new songs and "styles" for the library

    Yes, as mentioned – the built in "general midi" style voices are just a place holder – use a midi synth, or export .mid files to your favorite soft synth / daw suite for further voicing / arranging, as I will be doing on parts of my new album!

    You can see my work in the app icon / mascot "Impro-Dog"! 😉

  • <blockquote cite="Ask a machine to emulate human creativity, and at the very least, you’re guaranteed to learn something.">Ask a machine to emulate human creativity, and at the very least, you’re guaranteed to learn something.
    what if – – – you can't read notes?
    you have to learn that first?

  • RichardL@PatternMusi

    @Veqtor Check out Pro Chords for the iPhone. Super intuitive.

    I suspect there may be similar desktop or plugin chord sequence generators, but I don't know what they are.

  • lemmy

    This is very cool, thanks for pointing it out.

  • Pingback: Impro-Visor: Jazz Improvisation Advisor « Binary Heap()

  • Pingback: Open Source Musician Podcast Episode #39 – Community Call (Dan,Steve,Leigh,Mike) « Guitar Emporium Online()

  • musomba

    Bass and drums sound great to my ears so Excellent tool for creating bass and drum accompaniment for the guitar. Just what i was looking for. No need to buy a bass guitar or even pecussion instruments now. Many thanks to the creators!

  • i was struggling with my homeworks. He said "I got you a present"
    when i was left out alone on my birthday night. He said "I fell for you"
    when i w