Table of Contents
Related Links
In reading this
document, it will be helpful to know some music theory for chord progressions,
such as Roman
numeral analysis, cadences,
and dominant chords.
Occasional reference to the Glossary in Appendix I may
help with some of the terminology.
Version 5 of Impro-Visor
introduced a new feature called roadmaps. For any leadsheet,
an optional roadmap can be produced automatically. For example, below we have a
snapshot of the provided leadsheet _tutorial.ls and its corresponding analyzed
roadmap.
Impro-Visor leadsheet
window opened on _tutorial.ls
Impro-Visor roadmap window
showing analyzed roadmap for _tutorial.ls
In Impro-Visor, a roadmap for a tune consists of the chord
progression, annotated with two additional tracks of information:
The
inferred key underlying the chord progression.
There is a third
element, joins that identify transitions between certain bricks.
The information
provided will be of use in at least two ways:
For
the soloist, the key information is useful in determining which accidentals to
use in a melodic line with a given general shape and placement.
In Impro-Visor, chords can be entered into a roadmap, then turned into a leadsheet. It
is also possible to construct the roadmap using bricks or chords, in any
combination.
There are two
important references that provide the background for the use of bricks and
joins, including philosophy and examples:
Conrad
Cork, The New Guide to Harmony with LEGO bricks, Tadley
Ewing Publications, 1996 (available from jazzwise.com).
John
Elliott, Insights in Jazz, 2009 (available from dropback.co.uk
where purchase includes an electronic version, with audio examples).
The term
roadmaps comes from the second reference, although essentially
the same format was used in A Book of
LEGO, by Phil Clark. Impro-Visor roadmaps
have a slightly different format. We include key information, and we put
joins below the bars with a horizontal orientation for better readability.
Impro-Visor roadmaps are also available in an
unanalyzed version, which Ill call raw for short. In a raw roadmap, there
are chords but no brick names. Each chord will have a separate key and there may
be joins, which should mostly be ignored.
It is also
possible to break down bricks hierarchically, into simpler bricks, so there
is generally a range of views between raw and fully-analyzed.
Analysis takes a
bit of time. While it is going on, you will see this in the GUI:
While the status
is yellow, it is best not to adjust this particular window. However, you can
edit or play in another window. By
selecting only a subset of the chords, analysis goes faster.
From the Impro-Visor 5.05 File menu, open leadsheets/changes/TuneUp.ls.
This is a leadsheet for the Miles Davis tune Tune Up. From the Roadmap menu in the menu bar at the top of the screen, select Roadmap this & analyze (or just
press the accelerator shift-semicolon). A second window should open, and after
a brief delay, the roadmap should appear as follows:
Analyzed roadmap for Tune
Up
This roadmap
consists of four lines, each with three tracks, the top track being the colored
one. The lines correspond to sections of the tune, which has an ABAC form. The
tracks are:
The key of this region of the tune.
The name of the brick, or possibly empty if no brick can be identified.
The chords from the leadsheet.
The third track is
taken directly from the leadsheet data. The other two
tracks are inferred algorithmically.
Based on a brief
examination of colors in the upper track of the roadmap, we can see that the
tune is predominantly in the keys of D, C, and Bb, not quite equally
distributed.
In the first line,
we see two Straight Cadences, i.e.
major ii-V7-I cadences, but in different keys, D and C major
respectively. Those cadences are joined together with a New Horizon join,
which is a common way to step down a whole step in key space. The join point is
at the right end of the join tag. For
example, below the join in the fourth line, repeated below, is a Bauble
between the BbM7 and Em7 chords.
Showing join point (marked Bauble)
What in the world
is a Bauble, you ask? What it means
as a join and the etymology of the name are two different things. It usually
means a transition from one tonality to another tonality, the latter normally
being a major third higher (i.e. Bb to D in the case). However, there is more to
the story, so dont fix on that explanation just yet. As for the etymology, the
name is from the tune Baubles,
Bangles, and Beads, which is from the Broadway show Kismet. A Bauble is
a kind of round blown glass ornament, which the tune suggests is wearable.
As it happens, all of the joins in that tune are of the same nature, although
in different keys.
The transition to
the Em7 chord in line 2 is also a bauble, parallel to the one in line 4.
However, there is significance between the two lines. In line 4, the Em7 begins
a cadence to the tonic DM7, which is quite normal. In line 2, the Em7 jogs to
an F7, which begins a perfect (i.e. V7 – I) cadence in Bb. It
is difficult to describe this as any sort of harmonic progression that I know.
So the Em7 is treated not as part of a cadence, but as a tonic (On) in its
own right. Then we have another join marked Stella
to the cadence in Bb.
You might be able
to guess why Stella. In the tune Stella by Starlight, between bars 11 and 12,
the interval of a minor 6th occurs: Dm7 to Bbm7, which is followed by
Eb7. Normally this would cadence to an Ab, which is a
tritone above the D. So a jump of a minor 6th
to a ii chord, or of a semitone to a V chord, is
called a Stella join. Unfortunately,
in the tune itself, it is not a normal cadence, so the next tonality actually
ends up being F rather than Ab as one might predict.
This is one of the tricky things about joins.
The names of joins
as original prescribed by Conrad Cork are of two varieties: ones derived from
specific tunes in which those joins occur (such as Bauble and Stella) and
ones that have a somewhat functional explanation (such as Backslider, which normally takes the harmony backward a step in the
cycle of fifths). In
both cases, I would say the explanations are a bit personal to Mr. Cork. So
those of us who want to know this lingo just have to bite down and learn the
names, of which there are twelve total. A table is given in Appendix
II. Eventually I suspect that Impro-Visor will
allow the user to give her own names for the joins, although we do not
encourage this at the moment, because it will result in even more confusion of
terminology.
Impro-Visor allows the user to play all, or any
portion of a roadmap. Simply press the arrow button:
or the return key. If nothing is selected, then the
entire roadmap will be played. If one or more bricks are selected, they will be
played.
To stop playback,
use the k (kill) key or the stop
button:
To loop the
playing through the selection, first press the Loop button:
To select a brick, just click on it.
To select multiple successive bricks,
first select one brick by pressing the mouse over it. Then extend the selection by holding the shift key and pressing the
mouse over some other brick. The selection can be extended multiple times in
this way. In the roadmap segment below, the last two bricks are selected, as
indicated by the cyan highlighting.
Showing selected chords
and bricks in cyan
To unselect all bricks, click in the
background area, rather than on a brick.
In the current
release, the entire roadmap play is restricted to a single style, even though
the leadsheet may have multiple styles. We expect to
include style changes in future versions. If the roadmap is derived from a leadsheet, the style will be the first style in the leadsheet.
The style can be
set to any Impro-Visor style using the Preferences > Roadmap Preferences
menu. The default style is swing, which has bass and drums, with chords in
patterns determined from the style specification. If you want a less-busy
style, consider selecting style no-style,
which eliminates the drums and patterns.
Sometimes the roadmaps can be quite dense, impairing readability. To spread things out a bit, the feature width slider on the toolbar can be adjusted:
Feature width adjuster
In addition, double-clicking
on this slider will cause it to be linked to the window size, so that the
feature width will be adjusted as the window size is changed.
Feature width adjuster
constrained with window size (double-click to toggle)
The number of bars per line can be set with the pulldown menu provided. Normally you would probably choose 8 (the default) or 4, because this is the way a lot of compositions are structured. A reason for choosing fewer than 8 is that complex maps can get rather long if all text within is readable. A reason for not choosing 8 is that 8 often shows the structure of a typical AABA form tune the best.
Each key has a
designated color code. The colors are arranged so that keys that are close
together in the cycle of fifths are similar in color. The full color map is
given below. Minor keys are colored according to their relative major, and
similarly for dominant keys. In a later version, we expect that the colors will
be modifiable by the user.
Key coloration legend
It is possible to
turn off key coloration altogether: Just press the button B/W on the toolbar of
the Roadmap window:
It is also possible
to color the keys relative to any selected home key, by selecting Preferences > Key Coloration and the
key of choice. For example, for Tune Up, we might designate D as the home key. The corresponding
roadmap would then appear as follows:
Roadmap with coloration
relative to D
Using this
approach can be an aid to learning a tune in a key-independent fashion, similar to movable-do vs. fixed-do in solfge.
As we have
explained, the roadmap chords can be derived from a leadsheet.
We can also add chords to an existing roadmap, or even start with an empty
roadmap and enter all the chords. With some practice, the latter may be a
superior way to create a leadsheet afresh. A new leadsheet can be created from any roadmap by selecting from
the menu bar File > Save As to a new leadsheet (or use control-w) and add selected chords to
the roadmap. Copying chunks of chords is sometimes easier using the roadmap
editor than it is in the leadsheet editor.
We already
described selecting a sequence of chords or bricks in the previous section.
Using Edit > Copy, or just
pressing the c key, the selection
can be copied to the invisible clipboard. Then the contents of the clipboard
can be pasted anywhere on the leadsheet.
To add new chords, select a brick or chord before
which you wish to paste. The use Edit
> Paste, or just press the v
key. The means of entering chords is the same as in the leadsheet
window. Use a vertical bar or a comma to separate measures. Separate individual
chords with at least one space. For example,
Textual chord entry area
will produce the following. The upper and lower
tick marks show the measure sub-divisions.
Two measures, as
identified by three tick marks above and below
If you wish to paste at the end of the leadsheet, first unselect
everything by using Edit >
Unselect All, or pressing the Escape key, or just click in the blank area
around the road map. Then use paste as in the preceding paragraph.
For
unequal spacing within a measure, use a / to hold the space of a chord. For example,
produces (all one bar, with C getting twice as much
space as the other two chords):
One measure, as identified
by tick marks only on ends
Click
Save or control-s to save changes to your leadsheet.
Sometimes it may
be necessary to break down a brick one or more levels so that you can insert inside the brick. Bricks may be
constructed hierarchically. Keep in mind that breaking down a brick will keep
the same chords selected, so you may need to reselect the chord before which
you wish to insert.
Another
convenience is flatten (or press the f key) which means to break down the
brick all the way to the chord level in one operation. To flatten the entire
roadmap, select all (control-a), then press f. Note that joins and keys wont
make much sense once flattened. You will need to reanalyze, as describe in the
next section.
Editing operations
can be undone arbitrarily far back by pressing the z key or using Edit >
Undo, and redone by pressing the y
key or using Edit > Redo.
To change a single
chord, double-click on the chord. A small dialog window will open, allowing the
name and the duration of the chord to be changed. For example, if I want to
make the Dm7 above into a D7, I double-click on the lower track Dm7. The
following dialog opens:
Chord Modification Dialog
The number in the
dialog indicates the number of beats allocated to the chord.
The
durations of all bricks in a selection can be changed by using the Scale Duration pull-down in tool bar.
This permits scaling
by a factor of 1 and 5, multiplying or dividing. If other ratios are desired,
this can sometimes be accomplished by multiple scaling operations. For example,
to scale by 3/2, first multiply by 3, then divide by
2.
Scaling a brick by 3/2
After entering a
raw chord sequence, or modifying an existing roadmap, the analysis may need to
be repeated. Select the brick or chord sequence to be analyzed, or unselect
everything to analyze all. Then use the button
or press the a key as a shortcut.
Analysis is based
on a specially-designed parsing algorithm, which will
be described in a forthcoming research paper. At this point, the main thing to
note is that analysis is always relative to a Brick Dictionary. One dictionary
is supplied with the current release, but this dictionary can
be modified by the user. This is especially important, as there will
undoubtedly be bricks that we did not anticipate. The current dictionary is built
largely based on definitions in John Elliotts and
Conrad Corks books. There are undoubtedly some mistakes and omissions, and we
hope to correct these in time.
Bricks can be added
to a roadmap in formation by making menu selections from the dictionary. Open My Dictionary from the menu bar. There
is only one dictionary in the initial release. To save the current dictionary
under some other name, for subsequent modification, select Editor > Save Dictionary As
prior
to modifying. That name will become your current working dictionary. Below is
how the initial dictionary appears, with Ending
> Four Star Ending selected:
Dictionary menu
When a brick is selected
from the dictionary menu, its typical pattern appears in the Brick preview
window. In present case, here is what appears in the preview field:
Previewed brick
From the preview,
the user can drag the brick into
position in the roadmap using the mouse, or press the button on the right
to insert it.
Similarly, bricks
that have already been placed into the roadmap can be repositioned by dragging.
The cut (x key), paste (v key), and copy (c key) operations also work pretty much as standard, within the
roadmap.
Another way to get
bricks from the dictionary into the roadmap is to double-click the brick name in the dictionary itself. This will
cause the brick to be inserted at the insertion point.
Before a brick is
inserted into the roadmap as above, the user can preset the key of the brick
using the features at the bottom of the dictionary menu. The duration is a
relative indication of how long the brick will be.
Both the key and
duration can also be adjusted once the brick has been inserted. Use the d (down) and e (up) keys to transpose any selection. Use the Scale Duration menu in the menu bar to
scale the selection by various factors (x2, x3, /2, /3, etc.).
In some cases,
there will be multiple variations on a brick with a given name. In the
dictionary menu, these are seen as folders. For example, under Turnarounds > Foggy Turnaround we
see two options:
When previewed, we
see that the distinction between them is just in their penultimate chords:
Two variant bricks
It may also be
noted that, in the current release, which variation is used is not evident in
the roadmap. Below, for example, we use both variations in a roadmap, but they
are only differentiated by content, not by name. We plan to enable an option
for specifying the variation in the future.
Two variants analyzed from
a sequence
When a brick is
composed of sub-bricks, and those bricks have variations, we can get a kind of
explosion of variations. These are all usable in recognizing bricks, but not
all of them will be previewable from the dictionary.
For each brick of
type Cadence, the Impro-Visor system automatically
generates two extra brick definitions for that cadence, one with an overrun and one with a dropback.
An overrun means that after the cadence to
a I chord, the progression goes to a IV chord, for example C going to F
following a cadence in the key of C. This is common in many songs, such as
Autumn Leaves.
A dropback follows the I chord with a VI7 chord, typically used to lead to the ii chord. For example, following a cadence to C, the dropback would be A7. There are many variations on dropbacks in the dictionary. The ones that are auto-generated currently are just a plain VI7 from any cadence.
Part of the
roadmap analysis is based on hard-coded tables that cannot be modified by the
user. We hope to reduce the amount of information that is represented in this
way in future releases. An example of information that a user cannot change is
the names of joins, and even the definition
of a join, which in my experience still somewhat nebulous.
In the current
release, a join is defined as a connection between two bricks, in which the
first brick ends with a stable chord and the following brick begins with an
unstable chord. Typically the stable chord is a major or minor tonic, and the
unstable chord is a minor seventh or dominant. The name of the join is
determined by the distance between the roots
of stable chord and the unstable one. If the following chord is a minor
seventh, then one distance is used, whereas if the following chord is a
dominant, the distance is as if to the companion V chord of the corresponding
ii chord as a minor seventh. See the table in Appendix II
for a list of all joins.
My own inference
from Corks presentation, as well as from discussion with John Elliott, that
the meaning of a join is fundamentally based on the sound of the connection
between the two bricks (what Cork calls the magic moment of the local
progression). Thus it is not quite correct to base it on the tonality of the
typical resolution, because in many
cases the brick following the join does not resolve in the typical manner. This
distinction often throws newcomers off. It did in my case.
Also, we do not,
in this release, go along with John Elliotts suggestion that in the case of a
brick ending with an overrun (following a I chord by a IV chord), that the
join be based on the I chord. Although Cork discusses this distinction, I feel
that based on the sound of the chord ending the first brick and not its
tonality, I hear the join as coming from the IV chord. Algorithmically, this
distinction is easy to change and we may provide an option for doing so in the
future. However, for sake of not introducing too many nuances in this first
release, we adopt the more uniform policy. A consequence of this is that where
Johns joins to an overrun might be a Backslider, ours
would be a Bauble, a difference of a perfect fifth, for example. But being off
a perfect fifth in sound is not really of such dire consequence.
Sections play a
role in analysis, because it is not generally possible to infer sub-phrasing
from a flat chord sequence of the length of an entire song. A section is
division in the chord sequence. For example, a 32-bar AABA form would have four
8-bar sections. Sections were already present in previous releases of Impro-Visor, serving primarily as the indicator for style
changes.
With the
introduction of roadmaps, sections play an additional role: bricks are not allowed to cross from one
section to another. This constraint often prevents analyses that would be
considered wrong. In the roadmap GUI display, a section will also start a new line
if not already at the maximum number of measures per line, which is 8 by
default, but which can be set by the user to any number from 1 to 24.
To have the effect
of a section end without starting a new line, we introduced phrases. For roadmaps, phrases and
sections behave the same way, except that a phrase does not force a new line in
the GUI display. On the lead sheet, phrases show up as apostrophes, the
traditional phrase marker in music, above the staves. These markers can be
suppressed by using the View menu in
the leadsheet window. Sections, on the other hand,
show as double bars, and these cannot be suppressed in the current release.
If one starts with
a leadsheet with no sections or phrases, as are many
in the current version of The
Imaginary Book, it may be beneficial for the user to add sections and
possibly phrases and save them with the leadsheet.
Familiarity with the tune will usually indicate where these are to be placed.
They are easier to add in the roadmap view than in the leadsheet.
To end a section on the roadmap, select the last chord or brick of the
section and press key m. This key
will toggle the section on or off. It will cause a line break if the chord or
brick is not already at the end of a line. To
end a phrase, press shift-m.
This will toggle the phrase on or off. It will not cause a line break.
Entering style change information can only be done on the leadsheet view, because roadmaps only know about a single
style per tune. From the leadsheet window, open Preferences
> Section & Style. There each section has a style. The Phrase box is
checked if the measures are to be viewed as a phrase. Checking and unchecking
this box can also be used to control the section phrase distinction. Also
sections and phrases can be added are deleted in this view. Deleting does not
change the content of the measures themselves, only whether or not there is a
section or phrase break.
Style preference dialog in
the leadsheet window
Example 3:
In this example, we will demonstrate use of sections and phrases, as well as
the introduction of new brick definitions. Lets enter a standard tune Blue Moon,
which has an AABA form. The chord progression for this tune may be expressed in
Impro-Visor leadsheet notation as follows:
(section
(style swing))
Eb
Cm7 | Fm7 Bb7 | Eb Cm7 | Fm7 Bb7 |
Eb
Cm7 | Fm7 Bb7 | Eb | Fm7 Bb7 |
(section)
Eb
Cm7 | Fm7 Bb7 | Eb Cm7 | Fm7 Bb7 |
Eb
Cm7 | Fm7 Bb7 | Eb | / |
(section)
Fm7 Bb7 | Eb
Cm7 | Fm7 Bb7 | Eb |
Abm7 Db7 | Gb | Bb F7 | Fm7 Bb7 |
(section)
Eb
Cm7 | Fm7 Bb7 | Eb Cm7 | Fm7 Bb7 |
Eb
Cm7 | Fm7 Bb7 | Eb | / |
Open a new leadsheet window, then open the Textual editor (control-F). Select with the mouse everything
therein, delete it, then copy and paste the text above into the Textual editor
and press Editor to Leadsheet.
You could save this leadsheet for future possible use
as well. Impro-Visor will automatically add meta data to your chord sequence.
Now select Roadmap
this & analyze from the Roadmap menu (or use shift-semicolon). At
first, the roadmap will appear without bricks and the keys will not be
cohesive. After the analysis is complete, however, we get a better view:
Blue Moon roadmap
Focus on the first
line, where the brick is labeled POT:
POT is an acronym for Plain Ol
Turnaround coined by Conrad Cork. By one definition at least, a turnaround is a progression from a given
tonic back to itself. In this case the tonic is an Eb
major chord, and the progression sequence Eb
Cm7 | Fm7 Bb7 | turns around back to Eb
major. The Plain Ol aspect is due to the
prevalence of this turnaround in popular music. It is, of course, the I –
vi – ii – V progression, using roman
numeral notation from music theory.
The first line
consists of four identical POTs. The second line is almost the same, except
that it ends with POT + On:
On is a code
word meaning a stable tonicity, typically a I chord in the key of the moment. In
this case, the turning around temporarily ends. The last three or four chords
also form an example of an implied cadence.
Now focus on the
first half of the third line:
The word dropback is overloaded (has more than one meaning,
depending on context), due to John Elliott. One of several uses of dropback is that of a VI or vi
chord, which typically leads to a ii chord in the same key. In this case, Cm7
is such a chord. The other use is this particular brick, which contains the dropback
chord.
Just for fun,
lets try breaking down this brick into smaller parts. Select the brick and
press the b key. Heres how it now looks:
This reveals that
the original brick is really two cadences, although the second cadence has
already been broken into an approach and a cadence. It might have been better
to have this brick defined in the dictionary as two cadences separated by a dropback chord, but this is the way it was defined in this
release.
We can analyze a
contiguous selection of bricks and chords. For example, if we select the bricks
above, flatten (f key) them, which
means to remove all brick structure, then analyze (a key) the first four, heres what we find:
If we now analyze
the remaining three chords, heres what we get, which better shows the
structure of the 7-chord dropback.
Ideally one should
never have to define new bricks. However, given that the developers are not
omniscient, it may be occasionally necessary. Return to Example 1, Tune Up.
Recall the following situation at the end of line 2:
It would be nice
if this were a 4-bar brick, since then the entire tune would consist of just 8
bricks, in two distinct classes. When deciding whether to define a brick, one
should ponder how much utility it is likely to have, i.e. will it recur. In the present case, probably not, but to give an
example of how bricks are defined, we ignore our own advice and proceed. Select
the chords and sub-bricks.
Selection made to create
new brick
Now press the
button Define Brick in the tool bar:
A small dialog
should open:
New-brick dialog
The dialog invites
us to give this brick a name, so lets call it Tune Up Cadence, in
recognition of its source. It is also important to give it the correct key,
which in this case is the key of resolution, Bb. We should select the Type as
Cadence, then press Accept:
New-brick dialog with
information entered
If there were
already bricks with the same name in the dictionary, the Variant field would be
enabled, inviting to type the name of this variant. In this case, the brick is unique,
so there is no variant name. The brick should immediately change to reflect the
new definition.
New-brick as it first
appears in the roadmap
Moreover, if we
flatten (f key) the brick, then reanalyze (a key), we should recognize this
brick. A stronger test is to reanalyze the entire tune, by unselecting all
bricks, then pressing the a key. This implicitly
flattens everything before analyzing. The result in the present case is as
desired. Once again, defining a Tune Up Cadence is just for illustration
purposes. We dont recommend this particular definition.
Analysis after the new
brick definition
A cadence can be
broken down into two parts:
The approach, such as ii – V.
The resolution, i.e. the I.
When the approach
occurs at the end of a section, and the resolution occurs at the beginning of
the next section, the approach is called a launcher,
because it launches or drives forward into the next section.
Tension tonics (dominants
that behave as I chords) have presented somewhat of a problem for analysis
throughout our research and development. Fairly late in the development, I
decided to try the following idea: If a dominant is to behave as a tonic, then
suffix an underscore to it, to let the analyzer know. However, in the Impro-Visor vocabulary, the corresponding chord can be
defined as the same chord without the underscore. For example, C7_ is
interpreted as a tonic, but its voicings and so forth
would be the same as C7.This appears to work, but requires more evaluation. In
the 12-bar blues shown in the introduction, only the F13 chord, which would be
considered the I chord in this blues, has the _
affixed.
Very few of our leadsheets currently include the tension tonic notation. We
need to go back and add them in.
Most of these
points describe differences from John Elliotts roadmaps.
We
dont call out hovers (multiple measures of the same chord). We just leave
them as implicit, or cover them with an On brick.
We
dont have a notion of aborted
bricks. Conceptually this would not be difficult to add, but it increases the
ambiguity in analysis, which might make the results less satisfying.
Currently
we dont call out nicknames for
certain stand-alone chords based on keys, such as Nowhere
for bVI and Somewhere for II. This can be done by in
principle by adding a further pass over the roadmap, but it requires additional
implementation work.
We use
Dogleg Cycle for our Rhythm Bridge currently. There seems to be a bug
preventing this special case of a dogleg cycle from being recognized as a
rhythm bridge. It is expected that this will be fixed in a future version.
Sometimes
our algorithm gets confused about what is On vs. Off. Some of this confusion
is remediable by a refined algorithm.
Although there is a Delete button on the Dictionary menu, this appears to be not
working at present, so Ill tell you a different way to do it. From the menu
bar, open Editor > Dictionary Textual
Editor. New definitions are placed near the bottom, so scrolling to the bottom, we find a textual version of our definition in
parentheses. Carefully select the entire definition, as shown:
Editing the dictionary text
Then press the delete key, then press Editor to Dictionary. The brick deleted should no
longer appear among cadences. Its a good idea to check for other bricks that
use the deleted one, and either delete them or replace their use with something
else. Otherwise there will be complaints when the dictionary is loaded next.
Also, be very careful in editing, because even a small mistake can invalidate
the entire dictionary.
You can use any text editor for this
purpose. The built-in editor is rather impoverished, as it has no search or replace features.
User-defined
bricks will generally appear at the bottom and their definitions can be edited
and the dictionary saved.
The format of
definitions in the dictionary text file is:
(defbrick
name-of-brick-being-defined
optional-variant-name-in-parens mode category key
sub-brick-1
sub-brick-2
)
where
mode is one of {Major, Minor, Dominant}.
category is one of the categories listed at the top of the file.
key is the prevalent key of the brick. For example, if it is a
cadence, then the key is the key of resolution.
Currently the
categories are:
(brick-type Approach
45)
(brick-type Cadence
30)
(brick-type CESH
10)
(brick-type Deceptive-Cadence 60)
(brick-type Dropback
30)
(brick-type Ending
30)
(brick-type Invisible 2000)
(brick-type Overrun
30)
(brick-type On-Off
1005)
(brick-type Off-On
1010)
(brick-type On-Off+
100)
(brick-type On
550)
(brick-type Opening
25)
(brick-type Pullback
45)
(brick-type Turnaround 20)
(brick-type Misc
40)
The numbers are
used in the analysis algorithm, and we will provide an explanation of their
meaning to an appropriate forum.
Keys should be
chosen carefully, as they are used in the key inference algorithm.
For the
sub-bricks, each must be one of the following two forms:
(chord chord-name duration)
(brick brick-name key duration)
where durations are relative to each other.
Editing the
dictionary text is not to be undertaken casually, needless to say. Always back
up your work.
The
major part of the implementation of roadmap analysis and the roadmap GUI was
done by Zack Merritt, Xanda Schofield, and August Toman-Yih.
John Elliott
provided critique of some of the on-going work and valuable suggestions. Also,
his roadmaps were immensely valuable in providing training examples (for us
humans; there is no machine learning, yet).
Finally, I thank
Conrad Cork for getting the whole concept started and providing encouragement
as I was learning about the method.
I take
responsibility for any mistakes and misinterpretations.
Meanings in the glossary that refer to other defined terms have the first occurrence of the term italicized.
Term |
Meaning |
approach |
The part of a cadence that would lead up to, but not
include, the resolving tonic. Can
occur by itself, i.e. unresolved, outside a cadence.
See also launcher. |
backslider |
A type of join (see Appendix
II). |
bauble |
A type of join (see Appendix
II). |
bird |
Short for Yardbird. |
bootstrap |
A type of join (see Appendix
II). |
brick |
An idiomatic
sequence of chords. |
cadence |
A harmonic
progression starting with tension
and resolving to a stable chord. It
is important to note that, in the present context, cadences end a harmonic
phrase, but not necessarily a melodic one. |
CESH |
An acronym for Contrapuntal
Elaboration of Static Harmony, popularized by Jerry Coker. It means that
the harmony moves very little, but one of the notes, typically the fifth or
seventh, moves chromatically. Also sometimes called a line clich. Examples
are the James Bond theme and My Funny Valentine. |
Cherokee |
A type of join (see Appendix
II). |
cycle |
Shorthand for
the cycle of fifths. |
diatonic |
in the scale. A progression that moves up or down the
scale. |
dogleg |
A change from a
dominant to the parallel minor seventh. Sometimes thought of as being similar
to a join, although technically it is not. Dogleg cycle is a cycle of the
form D7 Dm7 G7 Gm7 C7 Cm7 , which breaks down a
cycle of dominants by introducing the corresponding ii chord before each
dominant, as if the latter were a V7 chord. |
downwinder |
A type of join (see Appendix
II). |
dropback |
A chord or
progression following a cadence
which is either a VI7 or leads to one. It typically progresses to a ii chord. Also, in John Elliotts terminology, a 7
Chord Dropback, a cadence followed by a dropback chord,
followed by the same cadence again. |
ending |
A progression known
to end certain songs, although the progression itself could occur anywhere in
other songs. |
further away |
The ii chord, in
Conrad Corks terminology, where a cadence
is described as the sequence further away, then nearly there, then
there. See TTFA. |
Half Nelson |
A type of join (see Appendix
II). |
happenstance |
A cadence that goes #IVm7 bVII7
I. The name derives from the tune It Could Happen to You, which contains
this cadence near the start. |
high jump |
A type of join (see Appendix
II). |
homer |
A type of join (see Appendix
II). |
IV n |
Stands for IV
chord and . Moving to the IV chord is very common in standards. The rest is
about how to return to the I chord. Variants are IV n Back (back directly, e.g. by via a diminished seventh),
IV n Yak (back via Yardbird),
IV n Hack (back via happenstance),
and IV n Mack (back via minor IV) (all John Elliotts terminology). |
join |
A particular
kind of transition between two bricks |
Ladybird
turnaround |
A turnaround that occurs at the end of
Ladybird. It can be seen as a sequence of tritone
substitutions for a POT. |
launcher |
An approach that extends to a cadence at the beginning of the next
section. |
leadsheet |
A sheet of music
containing just chords and melody. |
new horizon |
A type of join (see Appendix
II). |
Off |
A chord that
contrasts with an On, often
alternating with it more than once. For example, C Bb7 C Bb7 would be On Off
Twice. |
On |
Shorthand for a
(usually-stable) tonic. |
opening |
A progression
known to start certain songs, although the progression itself could occur
anywhere in other songs. |
overrun |
A IV chord following the I chord in a cadence. |
pennies |
Referring to
certain progressions from Pennies from Heaven. |
perfect cadence |
A V7
I progression |
POT |
Acronym for
plain ol turnaround,
a I vi ii V7 progression, or variation
thereof. |
pullback |
A progression
that pulls back from a ii V7, by going
to a iii VI7. |
rainy |
An adjective
referring to the use of a diminished chord as a downward passing chord, as it
occurs in the last section of Heres That Rainy Day. |
sad cadence |
A minor cadence, IIm7b5 V7(altered)
Im. |
side-slip |
A progression in
which a ii V7 is followed by another a
half-step below. (Not exactly the same as melodic side-slipping.) |
sidewinder |
A type of join (see Appendix
II). Not related to the Lee Morgan tune with that name. |
Slow approach |
An approach that consists of II7
V7, or vi II7 V7, or II7 ii V7,
or vi II7 ii V7. It is slow because it fills more
space than simply a ii V7. |
SPOT |
Acronym for
suspended turnaround, a
progression similar to a turnaround, except that initial I chord is replaced
with a iii chord. (It has nothing to do with sus chords.) |
Stella |
A type of join
(see Appendix II). |
starlight |
Referring to
certain progressions in Stella by Starlight. |
stable |
A chord that
doesnt sound as if it does not need to move to another chord. |
straight cadence |
A major cadence, ii V7 I. |
surge |
A diminished
chord moving upward to another chord. |
surprise cadence |
A cadence that starts as if major but
resolves to minor, or vice-versa. |
tension |
A chord that
suggests movement to another chord. |
tension tonic |
A dominant chord
that is treated as if a tonic. |
To IV n |
A progression
that goes from a I chord to a IV chord, then
returns. See IV n . |
A chord with a
stable sound, or one that is treated as if it were stable. |
|
TTFA |
Turnaround to further away. A
turnaround to the ii chord. Because such a turnaround usually ends with V7
of ii, which is VI7, this progression is a dropback. |
tritone substitution |
The substitution
of a dominant a tritone (augmented fourth) away from the dominant for
which substitution occurs. Usually the substituted chord leads to the next
chord by a descending half-step. |
turnaround |
A progression
that starts with a tonic and leads back to (but does not include) the tonic. |
Woody |
A type of join
(see Appendix II). |
Yardbird |
The cadence IVm
- bVII7 – I, with the IVm being
optional. Yardbird is derived from this
progression, as it occurs in the start of Yardbird
Suite by Charlie Parker. Apart from the Lego literature, this
is called a Backdoor cadence, by Jerry Coker and others. |
The following
table describes the join names, which are based on Conrad Corks definitions.
Distance
to ii |
Join
Name |
Stable |
ii
(minor 7) |
V7 (dominant) |
Typical
Resolution (from C) |
Etymology |
0 |
New Horizon |
C |
Cm7 |
F7 |
Bb |
The key focus
typically moves down a whole step. |
1 |
Downwinder |
C |
Dbm7 |
Ab7 |
B |
The key focus
typically moves down a half step. |
2 |
Homer |
C |
Dm7 |
G7 |
C |
The key focus
typically stays the same. |
3 |
Cherokee |
C |
Ebm7 |
Ab7 |
Db |
The key focus
shifts up a half step, as in entering the bridge of Cherokee. |
4 |
Woody |
C |
Em7 |
A7 |
D |
The key focus
shifts up a whole step, as inside the bridge of Woody n You. |
5 |
High Jump |
C |
Fm7 |
Bb7 |
Eb |
The key focus
jumps up a minor third, often from minor to the relative major. |
6 |
Bauble |
C |
F#m7 |
B7 |
E |
The key focus jumps
up a major third, as in Baubles, Bangles, and Beads. |
7 |
Bootstrap |
C |
Gm7 |
C7 |
F |
The key focus
moves forward around the cycle of fifths. |
8 |
Stella |
C |
Abm7 |
Db7 |
Gb |
The key focus
jumps a tritone away, as loosely derived from Stella
by Starlight. |
9 |
Backslider |
C |
Am7 |
D7 |
G |
The focus moves
backward around the cycle of fifths. |
10 |
Half Nelson |
C |
Bbm7 |
Eb7 |
Ab |
The key focus
moves down a major third, as in Half Nelson (although the tune itself does not
contain a true Half Nelson, but Ladybird does. |
11 |
Sidewinder |
C |
Bm7 |
E7 |
A |
The key focus
moves down a minor third, often from major to the relative minor. |
Appendix
III: Sample Brick Definitions
Note that these are
samples. Not every brick currently in the dictionary is listed.
Appendix IV: Roadmap Keystroke Summary
By
parent window we mean the window from which the current roadmap was derived, if
any.
Key |
Action |
control-a |
Select All of the roadmap. |
a |
Analyze the selection (or analyze all, if nothing selected). |
b |
Break the bricks in the selection (can be repeated). |
c |
Copy the selection to the clipboard. |
d |
Transpose the
selection Down a half-stop. |
e |
Transpose the
selection Up a half-stop. |
f |
Flatten the selection. |
i |
Play the selection. |
k |
Stop playing. |
m |
Insert or remove
(i.e. toggle) section marker after
brick or chord. |
shift-m |
Insert or remove
(i.e. toggle) phrase marker after
brick or chord. |
control-o |
Open a different
leadsheet in the parent window. |
control-p |
Print the
current roadmap. |
control-q |
Close the
current roadmap window. |
control-s |
Save chords to
the new leadsheet (not to the parent window). |
v |
Paste from clipboard before the current selection, or paste at
end if nothing is selected. |
control-w |
Save as to a new leadsheet. |
x |
Cut the selection from the roadmap. |
y |
Redo the previously undone operation. |
z |
Undo the previous operation. |
delete |
Delete the current selection from the roadmap (same as x). |
escape |
Unselect everything in the roadmap. (Can also be
done by clicking on the background.) |
return |
Play the selection. |