World Library  
Flag as Inappropriate
Email this Article


Developer(s) Robert M. (Bob) Keller and others at Harvey Mudd College and elsewhere
Initial release 2006 March
Stable release 6.0 / 2014 June 15
Operating system Microsoft Windows, Mac OS X, Linux
License GPLv2
Website [1]

Impro-Visor is an educational tool for creating and playing a lead sheet, with a particular orientation toward representing jazz solos.


  • Improvisation Advisor 1
  • Leadsheet Notation 2
  • Tone Categorization 3
  • Grammatical Lick Generation 4
  • Grammar Learning 5
  • Auto-Accompaniment 6
  • See also 7
  • References 8
  • External links 9

Improvisation Advisor

Screen shot of Impro-Visor

The philosophy of Impro-Visor is to provide a tool to help musicians construct jazz solos over chord progressions. It includes a database capability for creating, saving, and recalling licks, as well as a lick generation capability based on a user-modifiable grammar. More recent versions of Impro-Visor include auto-generated playback accompaniment in various styles, and a style extraction (from MIDI) capability. Most musical knowledge, including lick generation, database, lead sheets, styles, and other information, is represented as text files, permitting the tool to be customized.

Leadsheet Notation

Rendering Leadsheet Notation

Impro-Visor saves lead sheets in a textual notation,[1] and lead sheets may be created from that notation as well as by point-and-click. The notation was designed to be friendly to the jazz musician, by resembling directly what appears on the lead sheet staff. For example, the lead sheet fragment to the right, similar to that in article lead sheet, can be created by the following text:

C C7 | F |
c+2 bb2 bb8 a8 f2.

The reading of this text is: Chords C and C7 equally spaced in the first bar, and F in the second bar. A melody of c (the + means an octave above middle C, the 2 means a half-note), bb2, meaning a B-flat half-note, bb8, meaning a B-flat eighth-note, f2., meaning an F dotted half-note. Other meta-data can be supplied, such as for style specification, but is not required.

Tone Categorization

Using colors for tone categories

Impro-Visor categorizes tones that can be played over any chord into one of four categories.[2] This serves two purposes: (i) as visual feedback to the user, where each category is rendered as a different color, and (ii) as a basis for lick generation. The categories are:

  • Chord tones: tones that are in the chord, and which are thus the most consonant with it (shown as black on the right)
  • Color tones: tones that are not in the chord, but which are also consonant with it (shown as green on the right)
  • Approach tones: tones that are neither of the above, but which approach one of the above chromatically (shown as blue on the right)
  • Other tones: none of the above (shown as red on the right)

The idea is that, aided by visual clues, the musician can learn to appreciate the degree to which a melody will be sonorous over a chord progression prior to hearing it.

Grammatical Lick Generation

Lick generated using grammar to produce notes

Categories of notes discussed above are one of the key ingredients in automating the generation of melodies, which can be used by the musician in constructing solos. The other key ingredient is a context-free grammar having terminal symbols for each of the four categories, along with a few other terminal symbols for convenience. The grammar defines ways in which the melody space can be filled probabilistically by tones of various durations. By associating a probability with each grammar rule, the distribution of generated melodies can be controlled, for example to create melodies that are simple or complex, relatively consonant or dissonant, etc. The user indicates the chord progression, and the grammar drives the melody generation over that progression.[3] The figure at the right demonstrates an example generated lick. This particular grammar is constructed so as not to produce any discordant notes (notes in the "other" category above), thus no red notes appear in the figure.

Grammar Learning

Version 4 added a feature for learning a grammar from a corpus of transcribed solos.[4] The learned grammar loosely approximates the playing style of the soloist by creating abstract melodies from the solos, which can be re-instantiated into similar melodies through the grammar. Connections between learned abstract melodic fragments are represented as a Markov chain, which is encoded into the stochastic context-free grammar.


Impro-Visor automatically creates accompaniment, such as piano, bass, and drums, from the chord sequence on a leadsheet (a capability similar to, but currently not as full-featured as that of Band-in-a-Box). The style of accompaniment is derived from a set of pattern specifications using a textual notation similar to that for melodies.[5] For example, a common to swing jazz would be notated as

x4 x8 x8 x4 x8 x8

with x4 signifying a quarter-note hit and x8 an eighth-note hit. The swung note aspect, wherein eighth-notes on the beat get approximately twice the value of the beat, is rendered automatically by a numeric swing parameter, such as .67, which indicates that the beat is divided as .67 + .33 = 1. A similar pattern notation is used for chord comping and bassline patterns. In the latter type of pattern, a note category coding scheme similar to that for the grammatical notation is used to provide probabilistic creation of basslines.

See also


  1. ^ "Leadsheet Notation". 
  2. ^ "A Computational Framework Enhancing Jazz Creativity". Proceedings Third Workshop on Computational Creativity (ECAI '06). European Conference on Artificial Intelligence. 2006. 
  3. ^ "A Grammatical Approach to Automatic Improvisation". Proceedings 4th International Sound and Music Computing Conference (SMC '07). 2007. 
  4. ^ "Learning Jazz Grammars" (PDF). Proceedings 6th International Sound and Music Computing Conference (SMC '09). 2009. 
  5. ^ "Design Abstractions for a Jazz Improvisation Assistant" (PDF). ENTCS (Electronic Notes in Theoretical Computer Science) 193. 2007. pp. 47–60. 

External links

  • Video tutorial
  • Impro-Visor homepage
  • Video on Backing Tracks (in French)
  • Download from SourceForge
  • Yahoo! Impro-Visor users' group
  • Sample solo rendering (leadsheet and MIDI sound)
  • Independent review (
  • Independent review of Impro-Visor (March, 2007)
  • Independent review of Impro-Visor (Outside Notes, August, 2009)
  • Independent review of Impro-Visor (Linux Magazine, March, 2010)
  • Independent Music Ed review (2013)
  • Impro-Visor: The Free Band in a Box
  • Music Notation Programs in PCLinuxOS
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.