Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  ·...

38
Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller 6 December 2005 Introduction Impro-Visor (a contraction of “Improvisation Advisor”) is a music notation program designed to help jazz musicians write out melody lines of the sort that could be used in an improvised solo. We are not suggesting that such a solo be memorized and played verbatim, as this would not constitute true improvisation. However, even professional jazz musicians are known to work out melodic ideas in advance of performance and Impro-Visor is in keeping with that concept. Although a pre-constructed solo might never be played intact in a performance, writing it for oneself is helpful in a number of ways: It helps the soloist understand (and hear) the chord changes that occur in the tune (“get inside” the tune). It helps the soloist generate ideas of a sort that could be played in this and other tunes with similar chord changes. It provides a medium for recording and review of ideas. Impro-Visor can also be used as a transcription tool for solos of others, or simply to compose a melody (“head”). Composing melodies of any sort can be an enjoyable pastime in itself. A side benefit is that someone else might actually enjoy hearing or seeing the result. Because solos constructed with Impro-Visor can be saved as text files and reloaded, it provides a way to keep a notebook of ideas or for an instructor to illustrate ideas. It can also be used as a way of submitting and assessing homework assignments in a jazz improvisation course, which was one of my

Transcript of Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  ·...

Page 1: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

Harvey Mudd CollegeComputer Science Department

Impro-Visor User’s Guide

Bob Keller6 December 2005

Introduction

Impro-Visor (a contraction of “Improvisation Advisor”) is a music notationprogram designed to help jazz musicians write out melody lines of the sortthat could be used in an improvised solo. We are not suggesting that such asolo be memorized and played verbatim, as this would not constitute trueimprovisation. However, even professional jazz musicians are known to workout melodic ideas in advance of performance and Impro-Visor is in keepingwith that concept.

Although a pre-constructed solo might never be played intact in aperformance, writing it for oneself is helpful in a number of ways:

• It helps the soloist understand (and hear) the chord changes thatoccur in the tune (“get inside” the tune).

• It helps the soloist generate ideas of a sort that could be played inthis and other tunes with similar chord changes.

• It provides a medium for recording and review of ideas.

Impro-Visor can also be used as a transcription tool for solos of others, orsimply to compose a melody (“head”). Composing melodies of any sort can bean enjoyable pastime in itself. A side benefit is that someone else mightactually enjoy hearing or seeing the result.

Because solos constructed with Impro-Visor can be saved as text files andreloaded, it provides a way to keep a notebook of ideas or for an instructorto illustrate ideas. It can also be used as a way of submitting and assessinghomework assignments in a jazz improvisation course, which was one of my

Page 2: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

2

original motivations for creating it. Finally, it could be used as a means ofmaintaining one’s own library of compositions or transcriptions.

Impro-Visor Features

Impro-Visor is part of a research project, and as such is subject toevolutionary growth. The current set of features include:

• Entry of a melody and chord symbols by any of three methods:• Point-and-click interface• Typing in text• Reading from a file

• Playing chords and melody• Offering melodic suggestions in the form of:

• Chord tones• Color tones• Approach tones• Scales• Cells (small sequence of notes) that fit particular chords• Licks that fit particular chord sequences

• Permitting the user to edit and save new cells and licks• Users can maintain their own vocabularies, and can exchange and merge

them as text files.

The musical form that Impro-Visor is based on “leadsheets”. A leadsheet is aseries of musical staves that have the chord symbols written above thestaves and a companion melody line on the staves. The choice of stavesincludes treble, bass, and double clefs. Figure 1 shows a typical leadsheet asproduced by Impro-Visor.

Page 3: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

3

Figure 1: A typical leadsheet (as rendered in Impro-Visor)

Figure 2 shows a solo for the tune constructed with the aid of Impro-Visor.

Figure 2: A solo constructed with the aid of Impro-Visor

Using Impro-Visor

There are two parts to learning how to use Impro-Visor:• mechanical aspects of the interface• musical aspects.

Page 4: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

4

We will begin with enough of the mechanical aspects to get started. Thereader interested in preview the musical aspects should skip ahead to aboutpage 9 to see what musical capabilities are offered.

It would be good to do the example commands that we given in this narrativeusing a running Impro-Visor. When Impro-Visor first starts, you will see awindow similar to the one in Figure 3.

Figure 3: Impro-Visor at start-up

From top to bottom, the major sections of the interface are identified asfollows:

• The toolbar provides different functions that will be useful in creating aleadsheet, either for a “head” (the original melody) or for a composedsolo, in the form of pull-down menus and buttons.

• The text-entry provides a way of entering chords and melody withminimal use of point-and-click.

Page 5: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

5

• The part display is the bulk of the window, being devoted to display ofmusical staves to be used for the melody.

The part display window scrolls to provide more staves than are shown in theview. It is also possible to add more “tabs”, e.g. to hold multiple choruses ofa multi-chorus solo.

Note, in measure 1 of the part display in Figure 3, that there are bracketsbelow the staff. These brackets show the current rhythmic divisions in thatstaff. The number “2” means two divisions per beat, i.e. eighth-notes, themain-stay of jazz articulation. Any of those divisions can be adjusted toother numbers, i.e. triplets, sixteenth-notes, etc. The idea is that we wantto be able to enter notes just by pointing and clicking, and not have toseparately set the duration of each note.

Corresponding to the brackets are vertical “grid-lines” that enable accurateselection of the pitch and start points of notes. Both the grid lines andbrackets will be seen to move as the mouse is moved from measure tomeasure. Also, single grid-line selections can be moved using keys:

To move forward to the nextgrid-line:

Type f (“forward”).

To move backward to theprevious grid-line:

Type a.

Incidentally, the key choices are set up like a video-game pad, so thatfrequently used actions may be typed with keys at the left of the keyboard,using the mouse with the right hand.

Clicking on a grid line where it intersects a staff line or space will produce anote.

To enter a note: Click where a staff line or spaceintersects a vertical grid line.

The duration of the note will be to the end of the measure following, asshown in Figure 4.

Page 6: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

6

Figure 4: Adding a note at the start of measure 1

As you enter notes they will be played through the MIDI interface on yourcomputer.

To toggle playback on or off: Press the Play Notes button onthe toolbar.

If you make a mistake in adding a note, just click again. As Impro-Visorconstructs a monophonic melody line, erasure is implied by clickingsomewhere else on the same grid line. In Figure 5, we show the result ofclicking on a different line in Figure 4.

Figure 5: Over-riding a previously entered note (from Figure 4)

If you just want to undo your note entry, not replace it with another note,type “z” instead. As will be seen, it is also possible to undo arbitrarily-manysteps of note entry.

To undo the prior action: Type z.

Once added, a note can be shortened by adding another note or rest afterit, as shown in figures 6 and 7 respectively.

Figure 6: Shortening a note by adding another note (from Figure 5)

Figure 7: Shortening a note by adding a rest following it

Page 7: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

7

One way to add a rest is hold both the shift and control-keys simultaneouslywhen clicking:

To enter a rest (method1):

While holding shift and control, click ona vertical grid line

Another way is to add an arbitrary note, then press the “r” key to replacethe note with a rest.

To enter a rest (method2):

Add an arbitrary note, add a note first,then type “r”.

A third way is to shift click on a grid line to select it, then press the “r” key.

To enter a rest (method3):

Shift click on a grid line, then type “r”.

To change a note to a sharp or flat, use the transposition feature:

To transpose the selectiondown one-half step:

Type d (for “down”).

To transpose the selectionup one-half step:

Type e (which is right above d).

Figure 8: Creating an accidental by transposing (from figure 7)

By “the selection”, we mean a contiguous group of one or more notes. Theselections appear highlighted on the screen and in our figures.

If you want larger transposition steps, you may also use:

To transpose the selectiondown one-octave:

Type g.

To transpose the selectionup one-octave:

Type t (which is right above t).

Page 8: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

8

up one-octave:

To change the notes in a selection to their enharmonic equivalent, press thespace bar. To change them back, press the space bar again. Thesetransformations are given by the following table, where the pitch classes ineach column are equivalent:

c db eb e f gb ab bb cbb# c# d# fb e# f# g# a# b

and so on. Impro-Visor does not support double flats and double sharps, asthey are not used that much in jazz.

To toggle notesenharmonically:

Type the space bar.

Figure 9: Toggling enharmonic (from Figure 8)

An example of changing a selection of several notes to their enharmonicequivalents is shown in Figure 10.

Before:

After:

Figure 10: Toggling enharmonics of a multi-note selection

Page 9: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

9

Working With Leadsheets

Let’s begin by opening a leadsheet with chords but no melody. Select the Filemenu at the upper-left corner and chose Open Leadsheet (or use theshortcut provided: control-o, abbreviated as ^o in the file menu.Incidentally, most of the commands described in keystroke form in thisdocument are also accessible through one of the menus on the toolbar.)

To open a leadsheet: Type control-o

You should get a file menu something like the one in Figure 11.

Figure 11: Open Leadsheet file menu

Select the chords entry, and then from that select BluesForAlice.ls. Yourscreen should now appear similar to the one shown in Figure 12.

Page 10: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

10

Figure 12: Pre-constructed leadsheet with chords for “Blues for Alice”

Playing the Leadsheet

By clicking the triangle on the toolbar just to the right of center, or bytyping i, you can hear a rendition of the chord changes for a 12-bar “BirdBlues” form, for which the composer, Charlie Parker (“Bird”), is well-known.

To play the leadsheet: Type i, or shift-return.

Composing a Solo

We can now add notes to the lead sheet using the methods describedearlier. However, lets see how Impro-Visor can help us make intelligent notechoices. Position the mouse over the first grid line and shift-click. Shift-clicking is a way to select a grid line without adding a note, as we did earlier.

To select a grid-line (whenno selection exists):

Shift-click the line to be selected.

Page 11: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

11

We should point out that the above method works so long as there is noselection already. If there were, that selection would be extended to thenew grid-line. To get back to a single grid line, you would need to click asecond time.

To extend an existingselection:

Shift-click a line outside the existingselection.

To select a single lineinside a selection:

Click the line to be selected.

To select a single lineoutside a selection:

Shift-click the line to be selected, thenclick on the line again.

The above three items are essential to constructing any long solo, so it is agood idea to practice them a few times so that their meaning is understood.

Shift click on the first grid line in the Blues for Alice leadsheet. Make sureonly the first grid line is selected. Then click the light-bulb icon.

Advice (idea) icon

You should get a pop-up advice menu, something like the one in Figure 13.The exact set of items will depend on the chords and note selected, if any.

Figure 14: Advice menu for the first line grid line in Blues for Alice

Page 12: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

12

The advice menu offers some possibilities for selecting notes to be used.Open the chord tones folder and notice the options, as shown in Figure 15.

Figure 15: Chord-tone menu for the first line grid line in Blues for Alice

If we then open the general folder, we see a further sub-menu, as in Figure16

Figure 16: General chord-tone menuWe can then make a selection and it will be entered in the leadsheet.Suppose we select “all tones, descending”. The part display would then showsomething like Figure 17, which could be the start of a melody.

Figure 17: Descending chord tones from the menu selection

Now we want to extend the melody, so select the grid line following what wasjust entered, by shift-clicking on that line, then clicking once more, so that asingle line is selected. This time open the scale tones sub-menu, and then fmajor, to see a display such as the one in Figure 18.

Page 13: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

13

Figure 18: Scale-tone sub-menu

Select the note e, to enter it on the sheet. The part display should resembleFigure 19.

Figure 19: After adding e from the f major scale

Once the e is entered, the advice menu should change to reflect itspresence, qualifying the advice with the phrase “starting with e”, as shown inFigure 20.

Figure 20: Advice after adding e from the f major scale

Page 14: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

14

Next open the “cells” component of the menu. A cell is a melodic figure of afew notes, typically four or five. The menu of cells is pre-qualified in twoways:

• The cells go with the F6 chord.• The cells begin with e.

The cell choices might include the ones shown in Figure 21.

Figure 21: Some cell choices that start with e

The word or words following are informal descriptive phrases of the cells.

Click on different elements in the cell menu to see and hear what the cellsare like in context. Then chose one of the cells and continue constructingyour melody. Here we have chosen cell “4-note-up (e f a c)”, and Figure 22displays the results, as highlighted in Figure 17.

Figure 22: The result of choosing a cell

Now select the last line containing a note, in this case c. From the advicemenu open “chord tones approaching target in next chord (Em7)”. There willbe only one choice and that is to approach b from c (or b# as it may show),as in Figure 23.

Page 15: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

15

Figure 23: Advice menu for approach tones.

Our part now appears as in Figure 24.

Figure 24: An approach tone for the next chord

Next select the b in the second measure and open the “licks” folder in theadvice menu, as in Figure 25.

Figure 25: Part of the licks menu

Try some of the licks offered and pick one that you like, giving a resultsomething like that shown in Figure 26.

Figure 26: Inserting a chosen lick

By continuing in a similar fashion, a complete solo can be built.

Page 16: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

16

Notice that it is not necessary to go strictly from left to right; one canstart on any bar of the piece and skip around.

If for some reason you don’t wish to see advice, simply toggle the light-bulbbutton in the toolbar. If you are just entering notes and don’t want advice,this is a good idea, as the computation of advice slows down the process.

Summary of Advice Menu Types

Note that not every chord, chord-note combination, or chord-chordcombination will necessarily have every type of advice. The following typesof advice are currently available.

• Chord tone: These are the pitches that are in the given chord. Theyare listed in the order of the tones that most characterize theuniqueness of the chord first, down to the more generic tones. Theycan be sub-classed as tones in both the current chord and the nextchord and tones that are in the current chord but not in the nextchord.

• Color tone: These are pitches that are not in the given chord, but maybe played with it to add more color. Some of these are derived fromextensions of the chord.

• Approach target in current chord: These are “approach tones”, tonesthat are not in the chord, but can be used to approach tones that are,one of the main devices that gives jazz its sound. Approach tones areorganized by the tone being approached first (the “target”), then theapproaching tone.

• Approach target in next chord: Using a tone in the current chord toapproach a tone in the next chord gives a very resonant sound to themelody.

• Scale tone: Part of advice is indicating the scales that arerecommended for use with specific chords. In this sense, a scale is

Page 17: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

17

regarded as a set of notes rather than a sequence of notes. Forexample, for C7b9 we show two possible scales:

o Db diminished (db eb e gb g a bb c)o F harmonic minor (f g ab bb c db e)

When a scale is clicked, the notes comprising it are shown and may beclicked to add them to the leadsheet.

• Cell: A cell is a melodic grouping of a small number of notes that workwith the given chord. A single cell may work with multiple chordchoices.

• Idiom: An idiom is a cell that has prominence in the jazz realm.Admittedly the difference between a cell and an idiom is a gray area,but idioms generally are more familiar sounds, whereas cells are moreneutral..

• Lick: A melody, usually one or two measures in length, that is moreextensive than a single cell and which works with a chord sequencerather than necessarily a single chord.

• Quote: A quote is like a like that has significance as being from aparticular song.

Defining Your Own Cells and Licks

Although Impro-Visor offers a selection of cells, idioms, licks and quotesinitially, these are just ones I happen to have entered myself. You can createyour own cells and licks and add them to your vocabulary for future use. Youonly need to add a lick in one key and it will be available in all keys. Forexample, suppose we want to save the lick in the selection in Figure 27. Wepress key “U” (for user) and a menu will open permitting us to name the lick,as shown in Figure 27.

To save a selection as alick:

Type shift-U.

Page 18: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

18

Figure 27: A selection to be saved

Figure 28: Save-selection dialog

Figure 29: Recalling the lick in a different key

Type lower-case u to save as a cell rather than a lick. Only the first chord isrecorded in the case of a cell.

Marking Cells and Licks

A cell or lick can be marked in the advice menu. It will subsequently showwith an asterisk in its name. A possible use of marking is for subsequentdeletion of the cell or lick. Another might be to note it as a favorite forfuture reference.

To mark a cell or lick: Type shift-M in the advice menu.To unmark a cell or lick: Type m in the advice menu.

Copying from the Leadsheet to the Text Window

The text window can be used as a holding area for melody or chords.Sometimes it is easier to edit using text than pointing and clicking.

To copy melody in theselection to the textwindow:

Type j in the leadsheet window.

Page 19: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

19

window:To copy chords in theselection to the textwindow:

Type shift-J in the leadsheet window.

To copy melody andchords in the selection tothe text window:

Type control-J in the leadsheet window.

Taste Not Quantified

Not every juxtaposition of cells or licks is going to sound good. There areelements of taste that should be exercised. This tool can help one to learnsome of those elements. Here are some elements I use in my own solos. I amnot suggesting they be applied universally, but more as rules of thumb.

• Most connections between notes should be small intervals, say afourth or less. Occasional large leaps can be used, but should be usedfor a specific effect, such as angular lines.

• Avoid using the same note twice in succession, unless a monotone typeof effect is specifically desired.

• Leave space. Feel free to remove notes from licks and cells orbetween them, especially when you have long uninterrupted sequences.

• Feel free to modify any of the given cells or licks once introduced.o Change one or more pitches.o Change durations, e.g. from eighth-note triplets to an eight and

two sixteenths.o “Side slip”: transpose the entire lick up a half step.

All the above are part of the intention of Impro-Visor to give the musicianmaximum flexibility for creativity.

Unlimited Undo-Redo

Over-writing is but one of several means of changing what you have entered.Since it is easy to make mistakes, we will list some of the other ways now.

Page 20: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

20

In Impro-Visor, most editing commands can be un-done. The easiest way todo this is to use the shortcut control-z:

To undo the previouscommand or commands:

Type z until your sheet is returned tothe desired previous state.

If you type undo several times, you can see that you can undo back to thevery beginning if desired. If you change your mind, you can redo by control-y:

To redo a previously-undone command orcommands:

Type control-y until your sheet isreturned to the desired previous state.

Selecting All Notes and Chords

To select everything, use the control-a key.

To select everything: Type control-a.

To unselect everything, use the escape key.

To unselect everything: Type escape.

Cutting and Pasting

The notes in a selection will can be cut, copied, pasted, and dragged.

• Cut: The notes in the selection are removed. If there is a note beforethe selection, that note will auto-expand to fill the gap that wasbetween it and the notes following. The positioning of notes followingthe cut is not changed. (Auto-expansion will expand a note up to theend of the bar following the one in which the note starts.) Theremoved notes are held in an off-screen “clipboard” for possiblesubsequent pasting.

To cut the notes in aselection:

Type x.

Page 21: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

21

• Copy: Copying is like cutting, except that the notes are not removed,just copied to the clipboard.

To copy the notes in aselection:

Type c.

• Paste: Select a grid line where you want the first note to be pasted,and then give the paste command. The notes in the clipboard will bepasted. You can paste the same notes multiple times.

To paste notes previouslycut or copied:

Type v.

Cutting and Pasting Chords

A parallel set of commands applies to chords. Hold the shift key to apply theoperation to chords rather than melody notes.

To cut the chords in aselection:

Type shift-X.

• Copy: Copying is like cutting, except that the chords are not removed,just copied to the clipboard.

To copy the chords in aselection:

Type shift-C.

• Paste: Select a grid line where you want the first chord to be pasted,and then give the paste command. The chords in the clipboard will bepasted. You can paste the same notes multiple times.

To paste chords previouslycut or copied:

Type shift-V.

Cutting and Pasting Chords and Notes Simultaneously

Page 22: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

22

A third parallel set of commands applies to chords and notes together. Holdthe control key to apply the operation to both chords and notes.

To cut the chords andnotes in a selection:

Type control-x.

• Copy: Copying is like cutting, except that the chords and notes are notremoved, just copied to the clipboard.

To copy the chords andnotes in a selection:

Type control-c.

• Paste: Select a grid line where you want the first chord or note to bepasted, and then give the paste command. The chords and notes in theclipboard will be pasted. You can paste the same chords multiple times.

To paste chords and notespreviously cut or copied:

Type control-v.

Dragging

A way to move selection and paste it in a new place is to hold the mouse downwithin the selection, then drag laterally to a new grid line. This will paste theselection to the point at which you stop. You may also drag to another stave.

Deleting Entire Measures

Currently the only way to delete entire measures, as opposed to content ofmeasures, is to cut-and-paste or drag all of the measures following themeasures to be deleted over the measures themselves, then shorten thepiece or remove content from the measures following.

Example: Suppose we want to eliminate the first two measures of the fourshown below.

Select the two measures following:

Page 23: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

23

Cut the content using control-x:

Paste the cut content over the first two measures using control-v:

Then shorten the length of the part (see next section on preferences),giving:

Setting Sheet Preferences

The preference dialog allows one to enter information such as tempo and keysignature. This dialog can be opened by clicking this icon that appears just tothe left of the light bulb in the toolbar:

Figure 30: Tool icon for leadsheet preferences

The dialog contents appear as in Figure 31.

Page 24: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

24

Figure 31: Leadsheet preferences dialog

Key Signature

The key signature may be set either in the preference dialog or by draggingthe mouse up or down in the key signature area (between the clef symbol andthe time signature).

Swinging

You may have notice that the playback automatically renders the melodywith a “swing feel”, wherein eighth notes are unequal. This is a feature thatcan be adjusted. Set the swing value to 0.5 if you want equal eighth notes.

It is possible to have the playback transposed in the case one is working witha transposing instrument, such as Bb or Eb instruments. On the right of the

Page 25: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

25

toolbar is a field that will adjust the playback in semi-tones. For example, inworking with a Bb instrument, you would first transpose the melody andchords up two half-steps and also enter –2 in the transpose field. For Ebinstruments, you would transpose the melody up 9 half-steps and enter –9 inthe transpose field.

Setting Sheet Layout

The layout, specifically the number of bars per stave is automaticallyadjusted based on note density. However this automation can be over-riddenby control-clicking over the stave to be adjusted, then choosing over-ridenumber of measures. You should get a dialog specific to that staff, as shownin Figure 32.

Figure 32: Staff measure adjustment dialog

To set the number ofmeasures in a specific line:

Shift click on the line, then chooseover-ride measures for this line.

Although the default stave type is treble, it is also possible to select bass ora grand stave from the Stave menu in the menu-bar.

To set a specific stavetype:

Open the Stave menu in the menu bar,then select Stave Type.

Stave type Automatic will select the stave depending upon note octavevalues.

Controlling Grid-Line Spacing

The square brackets below the grid lines are labeled with a number thatgives the number of notes per quarter-note. This label is 2 (eight-notes) bydefault. There are two ways to change the grid-line spacing:

Page 26: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

26

• Select a line within in the group, then type the new label. The labelmust be one of the following:

1 2 3 4 5 6 8

Note that 7 and 9 are not included, primarily for technical reasons.

• Press at the right end of a bracket then drag to attain the desiredspacing.

The second method is a little trickier because you have to hit the bracketprecisely, otherwise you will enter a note. The following table summarizesthe note durations corresponding to the labeling.

Table 1: Grid-Line Spacing vs. Note Duration

Label Note Duration1 Quarter-note, Crotchet2 Eighth note, Quaver3 Eighth note triplet4 Sixteenth note, Semiquaver5 Eighth note pentuplet6 Sixteenth note triplet8 Thirty-second note, Demisemiquaver

Chord Entry

It is not necessary to use the pre-constructed leadsheets that come withImpro-Visor. It is very easy to construct one’s own chord sheets or tomodify existing ones. This is accomplished through the long field below thetoolbar labeled Textual Entry. This field can be used to enter chords andmelody both, or either individually. The complete system is described in acompanion document “Leadsheet Notation”.

The general idea is: Select the grid line (using control-shift-click) at whichyou want to add a chord. Type the name of the chord, such as C7b9, in thetext entry field, and hit return. Or from the leadsheet itself, you can select

Page 27: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

27

a line, and then type B and it will enter the chord from the textual entryfield. In this way you can rapidly enter the same chord multiple times atdifferent selection points.

To enter chords from thetext field at the selectedgrid line:

Type shift-B.

Multiple chords can be entered at one time by typing them in a sequence inthe text entry field. If the chords to be entered extend over more than onebar, then use a vertical bar symbol | to separate the bars. For example, theentire first line of Blues for Alice chords could be entered at once by typingthis in the text entry tool bar:

F6 | Em7 A7 | Dm7 | Cm7 F7 |

More specifics can be found in the leadsheet notation document.

It is also possible to enter melody notes from the same text entry field.Melody notes are distinguished from chords in that they begin with lowercase. Specifics are given in the leadsheet notation document. For example,here is the first measure of Blues for Alice in the melody notation:

f+4 c+8 a8 e+4 c+8 a8

To enter melody from thetext field at the selectedgrid line:

Type b.

To enter chords andmelody from the textfield at the selected gridline:

Type control-b.

The commands regarding chords generally parallel those regarding notes. Forexample, where x cuts a note, X cuts a chord. Both chords and melody aresaved in their respective clipboards and can be pasted individually, or bothtogether. The general scheme is:

Page 28: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

28

• lower-case letter: note command• upper-case letter: chord command• control + letter: both notes and chords

Table 2 below summarizes the parallelism across the various cut, paste, andtranspose commands.

Table 2: Parallel note and chord commands

Action Notes Chords Notes & ChordsCut x shift-X control-xCopy c shift-C control-cPaste v shift-V control-vEnter from text b shift-B control-bTranspose up 1/2 e shift-E control-eTranspose down 1/2 d shift-D control-dTranspose up octave t

Transpose down octave g

There is no parallel for transposing chords up and down octaves, since thechords do not change under such transposition.

File Management

A quick way to create the chords for a leadsheet is to enter them as textinto a file using the leadsheet notation, and then open the file. Thepreferred extension is .ls. For example, this file content will create thecomplete chords for Blues for Alice:

F6 | Em7 A7 | Dm7 | Cm7 F7 |Bb7 | Bbm7 Eb7 | FM7 | Abm7 Db7 |Gm7 | C7#9 | Am7 D7b9 | Gm7 C7b9 |

Although we have aligned the spacing for readability, the input is actuallyfree-form. Line layout does not matter. Once saved from Impro-Visor,additional meta data will be added, but this is optional for the original sheet.

Page 29: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

29

To open a leadsheet file: Type control-o, then select from thefile menu.

To save your work the first time with a new file name, use the “save as”command.

To save a file with a newname:

Type control-w, then type the name ofthe file.

To save modifications to the current leadsheet, use the “save” command.

To save a file with thecurrent name:

Type control-s.

To start a new leadsheet in a new window, use the “new” command. Yourcurrent leadsheet will still be accessible

To start a new leadsheet: Type control-n.

To print the current leadsheet, use the “print” command.

To start print the currentleadsheet:

Type control-p.

Using Parts

It is possible to create multiple parts for over the same chord changeswithin a single document. For example these might represent successivechoruses of soloing. To do so, click on the page icon in the toolbar that has a+ in the lower right corner. Parts can be deleted by the companion icon witha * in the lower right corner. The Stave pull-down menu provides analternate way to access these functions.

Figure 33: Part creation and deletion icons

Page 30: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

30

To create or delete parts: Click the page + or * icons on thetoolbar.

Some Known Shortcomings in the First Release:

• Quarter- and half-note triplets don’t get represented as they shouldbe. They are shown as if juxtapositions of eight-note triplets.

• There is no beaming of notes.• Only 4/4 time is handled.• Licks do not automatically get filtered based on whether the

application is, say, 1-bar vs. 2-bar. This is left to the user.• Layout information is not saved.• Multiple parts don’t save and load properly.• Certain changes, such as changing the number of measures in a part,

are not undoable but probably should be.

Acknowledgments

Impro-Visor was conceived by the author. The first version was designed bythe author, Professor Belinda Thom, Stephen Jones, and Aaron Wolin, in thesummer of 2005. Stephen and Aaron did most of the initial implementation,while the author contributed functionality subsequently.

The implementation of Impro-Visor is entirely in Java, version 1.5. We madeuse of the jMusic collection of classes in getting started with the musicdisplay, and the Polya Java library to help with representation of the advicefile. We used NetBeans 4.1 for building the graphical user interface.

We are grateful for support from the Mellon Foundation Faculty CareerEnhancement Grants Program, which partially supported thedevelopment work of Impro-Visor.

Page 31: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

31

Appendix A: Summary of All Commands

To enter a note: Click where a staff line or spaceintersects a vertical grid line.

To enter a rest (method 1): While holding shift and control, clickwhere a staff line or space intersectsa vertical grid line

To enter a rest (method 2): Add an arbitrary note, then type r.To enter a rest (method 3): Select a single grid line (by shift

clicking), then type r.To move forward to the nextgrid-line:

Type f.

To move backward to theprevious grid-line:

Type a.

To select a grid-line (when noselection exists):

Shift-click the line to be selected.

To extend an existing selection: Shift-click a line outside the existingselection.

To select a single line inside aselection:

Click the line to be selected.

To select a single line outside aselection:

Shift-click the line to be selected,then click on the line again.

To select everything: Type control-a.To unselect everything: Type escape.To cut the notes in a selection: Type x.To copy the notes in aselection:

Type c.

To paste notes previously cut orcopied:

Type v.

To cut the chords in aselection:

Type shift-X.

To copy the chords in aselection:

Type shift-C.

To paste chords previously cutor copied:

Type shift-V.

To cut the chords and notes ina selection:

Type control-x.

To copy the chords and notes ina selection:

Type control-c.

To paste chords and notespreviously cut or copied:

Type control-D.

Page 32: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

32

previously cut or copied:To transpose the selectiondown one-half step:

Type d (for “down”).

To transpose the selection upone-half step:

Type e (which is right above d).

To transpose the selectiondown one-octave:

Type g.

To transpose the selection upone-octave:

Type t (which is right above g).

To toggle notes enharmonically: Type the space bar.To enter melody from the textfield at the selected grid line:

Type b.

To enter chords from the textfield at the selected grid line:

Type shift-B.

To enter chords and melodyfrom the text field at theselected grid line:

Type control-b.

To set the number of measuresin a specific line:

Shift click on the line, then chooseover-ride measures for this line.

To set a specific stave type: Open the Stave menu in the menu bar,then select Stave Type.

To undo the previous commandor commands:

Type control-z until your sheet isreturned to the desired previous state.

To redo a previously-undonecommand or commands:

Type control-y until your sheet isreturned to the desired previous state.

To play the leadsheet: Type i.To open a leadsheet: Type control-o.To save a file with a new name: Type control-w, then type the name of

the file.To save a file with the currentname:

Type control-s.

To start a new leadsheet: Type control-n.To start print the currentleadsheet:

Type control-p.

To save a selection as a cell: Type u.To save a selection as a lick: Type shift-U.To mark a cell or lick: Type shift-M in the advice menu.To unmark a cell or lick: Type m in the advice menu.To copy melody in the selectionto the text window:

Type j in the leadsheet window.

Page 33: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

33

To copy chords in the selectionto the text window:

Type shift-J in the leadsheet window.

To copy melody and chords inthe selection to the textwindow:

Type control-J in the leadsheetwindow.

To toggle advice on or off: Click the light-bulb button in thetoolbar.

To toggle note playing on oroff:

Click the Play Notes button in thetoolbar.

To set the key signature: Drag the mouse up or down in the keysignature area, or use the preferencesdialog.

To open the preferences dialog: Click on the preferences icon in thetoolbar.

To add or remove new parts: Click on one of the two icons in thetoolbar.

To play the current selection. Press the return key (or shift-returnto play to the end of the piece).

Page 34: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

34

Appendix B: Key Shortcuts Organized Alphabetically

Key Functiona Move grid line selection backward to previous grid line.control-a Select all chords and melody.b Enter melody to leadsheet from text entry field.shift-b Enter chords to leadsheet from text entry field.control-B Enter melody and chords to leadsheet from text entry

field.c Copy melody in selection to clipboard.shift-C Copy chords in selection to clipboard.control-c Copy melody and chords in selection to clipboard.d Transpose selected melody down 1/2 step.shift-D Transpose selected chords down 1/2 step.control-d Transpose selected melody and chords down 1/2 step.e Transpose selected melody up 1/2 step.shift-E Transpose selected chords up 1/2 step.control-e Transpose selected melody and chords up 1/2 step.f Move selection forward to next grid line.g Transpose selected melody down one octave.h Help.i Start playback of entire piece.j Copy melody in selection to text window.Shift-J Copy chords in selection to text window.control-j Copy melody and chords in selection to text window.k Stop playback.control-l Perform one-time layout adjustment.m Unmark cell or lickshift-M Mark cell or lickcontrol-n Start a new leadsheet in place of the current one.control-o Open a new leadsheet in place of the current one.control-p Print the current leadsheet.control-q Quit Impro-Visor.r Add a rest at selected grid line.control-s Save file.t Transpose selected melody up one octave.u Save selection to vocabulary as a cell.shift-U Save selection to vocabulary as a lick.

Page 35: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

35

v Paste melody from clipboard.shift-V Paste chords from clipboard.control-v Paste melody and chords from clipboard.^w Write file as.x Cut melody in selection, saving to clipboard.shift-X Cut chords in selection, saving to clipboard.control-x Cut melody and chords in selection, saving to clipboard.control-y Redo undone command.control-z Undo previous command.space Toggle enharmonics in selection.escape Unselect everything.return Play selection.shift-return Play from selection start to the end of the piece.

Appendix C: Structure of the Vocabulary File

One of the features of Impro-Visor is that the vocabulary is completelyuser-definable. This allows it to evolve, be reduced for specific exercises,etc.

The vocabulary file is a free-form text file. The default vocabulary is takenfrom the release sub-directory:

vocab/My.voc

Each item in the file is an S-expression, meaning an expression insideparentheses (…) with nested sub-structure.

There are four types of items:

1. scale definitions2. chord definitions3. cell and idiom definitions4. lick and quote definitions

Cells and idioms are played over a single chord, although multiple choices forthat chord can be specified. The difference between a cell and an idiom isinformal. Cells are more neutral and possibly synthetic, whereas idioms are arecognizable jazz idiom.

Page 36: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

36

Licks and quotes are played over a sequence of one or more chords. A singlesequence must be specified. The difference between a lick and a quote isthat a quote comes from a known head whereas a lick can be a contrivance ofa soloist.

As scales are used in chord definitions, they should come first. Similarly,chords are used in cell and lick definitions, so chords should come second.Cells, idioms, licks, and quotes can be freely intermixed.

Scale Definition Format

A scale definition consists of the word scale followed by a sub-structure ofthe form (name C scale-name), followed by a sub-structure (notes …)giving the tones in the scale. Currently all scales must be defined based on C.Here are some examples:

(scale (name C lydian) (notes c d e f# g a b c))(scale (name C major-pentatonic) (notes c d e g a c))(scale (name C minor-pentatonic) (notes c eb f g bb c))

Chord Definition Format

Chords are the most complex of the vocabulary items, as they have manyparts, some of which are optional.

Chords are defined just once, with root C. Impro-Visor takes care oftransposing to other keys.

Each part of a chord definition is a sub-structure starting with anidentifying keyword. The allowed keywords are:

• name gives the name of the chord. The root should be C for the timebeing.

• pronounce gives the pronunciation of the chord. This has no formalsignificance at present, but can be useful for clarifying cryptic namesand for searching.

• key is used to determine the way in which accidentals are displayed.It is optional.

Page 37: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

37

• family is used to identify uses within cells and licks. It is optional. Ifnot defined, then the chord name (without the root) is used as thefamily name.

• spell is the chord spelling, usually in root position. It is required.• color gives some tones that can be added to color the chord. It is

optional.• priority gives the chord tones in order of most-distinguishing first.

Some tones can be left out, such as the fifth of a dominant chord.Currently priority is also used in voicing chords for playback. Priorityis optional.

• approach lists approach tones for each of the chord tones. The tonebeing approached is given first, followed by the tones that approachit.

• scales list scales that fit with this chord. This is optional.• extensions lists chords that extend this chord. These are used to

determine additional color tones. This is optional.• substitute lists chords that sometimes substitute for this chord.

This is optional.

Below is an example of a single chord entry. The formatting with indentationis not required, but it makes the entries more readable.

(chord (name C7) (prononounce C seven) (key f) (family dominant) (spell c e g bb) (color f# g) (priority bb e c) (approach (c b c# d) (e f eb) (g f# g#) (bb a b)) (scales (C mixolydian) (C lydian dominant) (C bebop dominant) (C whole tone) (G dorian) (G minor pentatonic) (C major pentatonic) (G minor six-pentatonic) (Eb major flat two pentatonic) (A major flat two pentatonic) (Gb major flat two pentatonic) ) (extensions C9 C7b9) (substitute Gb7 Gm7 Dbo7 GmM7) )

Page 38: Impro-Visor User’s Guide - HMC Computer Sciencekeller/jazz/improvisor/Impro... ·  · 2005-12-07Harvey Mudd College Computer Science Department Impro-Visor User’s Guide Bob Keller

38

Cell Definition Format

A cell definition consists of the word cell, a name (which need not be unique),a list of chords to which the cell applies, and a list of notes that define thecell. The latter are in leadsheet notation. Here is an example of a celldefinition.

(cell (name 4-note-3-b9) (chords C7 Gm7b5) (notes e8 db+8 c+8 bb8) )

An idiom has the same form as a cell, except the word cell is replaced withthe word idiom.

Lick Definition Format

Lick definitions are similar to cells, but rather than a list of chords to eachof which the notes apply, a sequence of chords is specified. The sequencecan be in any key and Impro-Visor will transpose as appropriate to make thelick usable. Here is an example of a lick definition.

(lick (name 1-bar-2-5) (sequence Dm7 G7) (notes a8 d+8 c+8 a8 b8 d+8 b8 ab8) )

A quote has the same form as a lick, except the word lick is replaced withthe word quote.