<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/chordease/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 20 Feb 2017 22:30:51 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/chordease/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v22
+++ v23
@@ -30,6 +30,7 @@
 &lt;dd&gt;&lt;a href="#Lead"&gt;Lead&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Comp"&gt;Comp&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Harmonizer"&gt;Harmonizer&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto"&gt;Auto&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_MIDI"&gt;MIDI&lt;/a&gt;
 &lt;/dd&gt;&lt;dt&gt;Menus
@@ -301,6 +302,7 @@
 &lt;a href="#Lead"&gt;Lead&lt;/a&gt;Input notes are transposed in position by adding accidentals as needed, so that the output notes remain as close as possible to the input notes. This function is useful for soloing because it minimizes differences between chords and preserves the input's shape.
 &lt;a href="#Comp"&gt;Comp&lt;/a&gt;A single input note triggers a chord, with user control over &lt;a href="#Voicing"&gt;voicings&lt;/a&gt;, &lt;a href="#Variation"&gt;variations&lt;/a&gt;, and &lt;a href="#Arpeggio_Period"&gt;arpeggiation&lt;/a&gt;. The input note's pitch determines the pitch window within which the output chord is voiced.
 &lt;a href="#Bass"&gt;Bass&lt;/a&gt;Input notes are transposed via shifting, so that C is always the chord root, E is always the third, G is always the fifth, etc. This function also supports &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt;, which shifts the current scale so that C is the root of the chord being approached (or as close as possible).
+&lt;a href="#Numbers"&gt;Numbers&lt;/a&gt;Input notes are mapped to a tonal palette consisting of four scale tones, chosen to facilitate melodious intervals. Seven palettes are available, and they gradate smoothly from mostly chord tones to mostly tensions, allowing dissonance to be managed consistently.
 

 &lt;p&gt;Depending on which function is used, the relationship between input and output notes can be one to one, or one to many. The Comp function is one to many, i.e. one input note generates multiple output notes, whereas the melodic functions (Lead and Bass) are one to one, unless the &lt;a href="#Harmonizer"&gt;harmonizer&lt;/a&gt; is active.
@@ -685,9 +687,7 @@

 &lt;a name="Lead"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Lead"&gt;Lead&lt;/a&gt;&lt;/h2&gt;

-&lt;p&gt;This page contains settings related to the Lead &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; for the current &lt;a href="#Part"&gt;part&lt;/a&gt;. Currently this page consists entirely of &lt;a href="#Harmonizer"&gt;harmonizer&lt;/a&gt; settings, though this may change in the future.
-
-&lt;/p&gt;&lt;p&gt;The lead function maps input notes to output notes by adding accidentals, i.e. sharps or flats. Unlike the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function which transposes by shifting the entire scale, the lead function transposes &lt;em&gt;in place&lt;/em&gt;. For any given input note, the lead function generates an output note as close as possible to the input note in terms of pitch, usually within a half step. If a consistent melodic pattern is input, the output notes vary in response to the &lt;a href="#Song"&gt;song&lt;/a&gt;'s chord progression, but only by small amounts. The overall shape of the input is preserved, and this quality makes the lead function ideal for soloing.
+&lt;/p&gt;&lt;p&gt;The lead &lt;a href="#Mapping_functions"&gt;function&lt;/a&gt; maps input notes to output notes by adding accidentals, i.e. sharps or flats. Unlike the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function which transposes by shifting the entire scale, the lead function transposes &lt;em&gt;in place&lt;/em&gt;. For any given input note, the lead function generates an output note as close as possible to the input note in terms of pitch, usually within a half step. If a consistent melodic pattern is input, the output notes vary in response to the &lt;a href="#Song"&gt;song&lt;/a&gt;'s chord progression, but only by small amounts. The overall shape of the input is preserved, and this quality makes the lead function ideal for soloing. The lead function doesn't have any settings.

 &lt;/p&gt;&lt;p&gt;
@@ -700,6 +700,276 @@
 &lt;table border="1" cellpadding="2" cellspacing="0"&gt;
 &lt;tbody&gt;&lt;tr&gt;&lt;th rowspan="2"&gt;Input&lt;/th&gt;&lt;th colspan="2"&gt;Output&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;Ab&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;Bb&lt;/td&gt;&lt;/tr&gt;
 &lt;/tbody&gt;&lt;/table&gt;
+
+&lt;a name="Numbers"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Numbers"&gt;Numbers&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;The numbers &lt;a href="#Mapping_functions"&gt;function&lt;/a&gt; purposefully limits the number of scale tones in use at any one time, in order to facilitate melodious intervals and allow consistent management of dissonance. Input notes are mapped to a four-note subset of the current heptatonic scale, called a &lt;em&gt;group&lt;/em&gt;. Seven different groups are available, and they gradate smoothly in their &lt;em&gt;tension&lt;/em&gt; or distance from the tonal center. Each group has two variants, one for major chords and one for minor chords. The groups are summarized in the table below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th colspan="7"&gt;Numbers System&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Group&lt;/th&gt;&lt;th&gt;Majors&lt;/th&gt;&lt;th&gt;Minors&lt;/th&gt;&lt;th&gt;Tension&lt;/th&gt;&lt;th&gt;Temperature&lt;/th&gt;&lt;th colspan="2"&gt;Color&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1 - 5&lt;/td&gt;&lt;td&gt;1 2 3 5&lt;/td&gt;&lt;td&gt;1 3 4 5&lt;/td&gt;&lt;td&gt;consonant&lt;/td&gt;&lt;td&gt;warm&lt;/td&gt;&lt;td style="background-color: red;"&gt;   &lt;/td&gt;&lt;td&gt;red&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3 - 7&lt;/td&gt;&lt;td&gt;3 5 6 7&lt;/td&gt;&lt;td&gt;3 4 5 7&lt;/td&gt;&lt;td rowspan="3"&gt;↓ more tense&lt;/td&gt;&lt;td rowspan="3"&gt;↓ cooler&lt;/td&gt;&lt;td style="background-color: orange;"&gt;   &lt;/td&gt;&lt;td&gt;orange&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5 - 2&lt;/td&gt;&lt;td&gt;5 6 7 2&lt;/td&gt;&lt;td&gt;5 7 1 2&lt;/td&gt;&lt;td style="background-color: yellow;"&gt;   &lt;/td&gt;&lt;td&gt;yellow&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7 - 4&lt;/td&gt;&lt;td&gt;7 2 3 4&lt;/td&gt;&lt;td&gt;7 1 2 4&lt;/td&gt;&lt;td style="background-color: green;"&gt;   &lt;/td&gt;&lt;td&gt;green&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2 - 6&lt;/td&gt;&lt;td&gt;2 3 4 6&lt;/td&gt;&lt;td&gt;2 4 5 6&lt;/td&gt;&lt;td&gt;dissonant&lt;/td&gt;&lt;td&gt;cool&lt;/td&gt;&lt;td style="background-color: blue;"&gt;   &lt;/td&gt;&lt;td&gt;blue&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4 - 1&lt;/td&gt;&lt;td&gt;4 6 7 1&lt;/td&gt;&lt;td&gt;4 5 6 1&lt;/td&gt;&lt;td rowspan="2"&gt;↓ less tense&lt;/td&gt;&lt;td rowspan="2"&gt;↓ warmer&lt;/td&gt;&lt;td style="background-color: indigo;"&gt;   &lt;/td&gt;&lt;td&gt;indigo&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6 - 3&lt;/td&gt;&lt;td&gt;6 7 1 3&lt;/td&gt;&lt;td&gt;6 1 2 3&lt;/td&gt;&lt;td style="background-color: violet;"&gt;   &lt;/td&gt;&lt;td&gt;violet&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;The triad plus the seventh (1, 3, 5, 7) are &lt;em&gt;chord tones&lt;/em&gt;, while the remaining scale tones (2, 4, 6) are &lt;em&gt;tensions&lt;/em&gt;. The groups can be viewed as tonal &lt;em&gt;palettes&lt;/em&gt; ranging from mostly chord tones to mostly tensions. At one extreme, group 1 - 5 contains the triad, and therefore sounds consonant, warm, or red. At the other extreme, group 2 - 6 contains all three tensions, and therefore sounds dissonant, cool, or blue. The groups in between gradually add tensions, or gradually remove them.
+
+&lt;/p&gt;&lt;p&gt;The group setting simply selects one of the seven groups. As long as you continue to use the same group, you're maintaining a consistent degree of dissonance relative to the chord changes. Think of the group setting as a tension knob. By changing the group setting periodically you can vary the mood of your improvisation.
+
+&lt;/p&gt;&lt;p&gt;The following table shows the output of the numbers function for various major and minor chords. Only the first two groups are shown. Notice that the numbers function transposes &lt;em&gt;in place&lt;/em&gt;, inverting the group as needed to maximize continuity between different chords. Also notice that the output spans nearly two octaves for every input octave; this asymmetry is discussed further &lt;a href="#Numbers_origin"&gt;below&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th rowspan="3"&gt;Input&lt;/th&gt;&lt;th colspan="8"&gt;Output&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th colspan="4"&gt;Group 1 - 5&lt;/th&gt;&lt;th colspan="4"&gt;Group 3 - 7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Amaj7&lt;/th&gt;&lt;th&gt;A-7&lt;/th&gt;&lt;th&gt;Fmaj7&lt;/th&gt;&lt;th&gt;F-7&lt;/th&gt;&lt;th&gt;Amaj7&lt;/th&gt;&lt;th&gt;A-7&lt;/th&gt;&lt;th&gt;Fmaj7&lt;/th&gt;&lt;th&gt;F-7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C4&lt;/td&gt;&lt;td&gt;C#4&lt;/td&gt;&lt;td&gt;C4&lt;/td&gt;&lt;td&gt;C4&lt;/td&gt;&lt;td&gt;C4&lt;/td&gt;&lt;td&gt;C#4&lt;/td&gt;&lt;td&gt;C4&lt;/td&gt;&lt;td&gt;C4&lt;/td&gt;&lt;td&gt;C4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D4&lt;/td&gt;&lt;td&gt;E4&lt;/td&gt;&lt;td&gt;D4&lt;/td&gt;&lt;td&gt;F4&lt;/td&gt;&lt;td&gt;F4&lt;/td&gt;&lt;td&gt;E4&lt;/td&gt;&lt;td&gt;D4&lt;/td&gt;&lt;td&gt;D4&lt;/td&gt;&lt;td&gt;Eb4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E4&lt;/td&gt;&lt;td&gt;A4&lt;/td&gt;&lt;td&gt;E4&lt;/td&gt;&lt;td&gt;G4&lt;/td&gt;&lt;td&gt;Ab4&lt;/td&gt;&lt;td&gt;F#4&lt;/td&gt;&lt;td&gt;E4&lt;/td&gt;&lt;td&gt;E4&lt;/td&gt;&lt;td&gt;Ab4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F4&lt;/td&gt;&lt;td&gt;B4&lt;/td&gt;&lt;td&gt;A4&lt;/td&gt;&lt;td&gt;A4&lt;/td&gt;&lt;td&gt;Bb4&lt;/td&gt;&lt;td&gt;G#4&lt;/td&gt;&lt;td&gt;G4&lt;/td&gt;&lt;td&gt;A4&lt;/td&gt;&lt;td&gt;Bb4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;G4&lt;/td&gt;&lt;td&gt;C#5&lt;/td&gt;&lt;td&gt;C5&lt;/td&gt;&lt;td&gt;C5&lt;/td&gt;&lt;td&gt;C5&lt;/td&gt;&lt;td&gt;C#5&lt;/td&gt;&lt;td&gt;C5&lt;/td&gt;&lt;td&gt;C5&lt;/td&gt;&lt;td&gt;C5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A4&lt;/td&gt;&lt;td&gt;E5&lt;/td&gt;&lt;td&gt;D5&lt;/td&gt;&lt;td&gt;F5&lt;/td&gt;&lt;td&gt;F5&lt;/td&gt;&lt;td&gt;E5&lt;/td&gt;&lt;td&gt;D5&lt;/td&gt;&lt;td&gt;D5&lt;/td&gt;&lt;td&gt;Eb5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B4&lt;/td&gt;&lt;td&gt;A5&lt;/td&gt;&lt;td&gt;E5&lt;/td&gt;&lt;td&gt;G5&lt;/td&gt;&lt;td&gt;Ab5&lt;/td&gt;&lt;td&gt;F#5&lt;/td&gt;&lt;td&gt;E5&lt;/td&gt;&lt;td&gt;E5&lt;/td&gt;&lt;td&gt;Ab5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C5&lt;/td&gt;&lt;td&gt;B5&lt;/td&gt;&lt;td&gt;A5&lt;/td&gt;&lt;td&gt;A5&lt;/td&gt;&lt;td&gt;Bb5&lt;/td&gt;&lt;td&gt;G#5&lt;/td&gt;&lt;td&gt;G5&lt;/td&gt;&lt;td&gt;A5&lt;/td&gt;&lt;td&gt;Bb5&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;a name="Numbers_origin"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Numbers_origin"&gt;Numbers origin&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting aligns the &lt;a href="#Numbers"&gt;numbers&lt;/a&gt; mapping function with the diatonic scale. Alignment is necessary because the numbers system is &lt;em&gt;tetratonic&lt;/em&gt;, meaning it has only four notes per octave, unlike the diatonic scale which has seven notes per octave. Each octave of the diatonic scale spans nearly two octaves of the numbers system, and consequently they diverge rapidly from each other in terms of pitch.
+
+&lt;/p&gt;&lt;p&gt;Alignment occurs at a single note, called the &lt;em&gt;origin&lt;/em&gt;. By default, the numbers system is aligned to the diatonic scale at middle C (C4). The origin is specified as a positive or negative offset from middle C, in tetratonic degrees. Increasing the origin by one raises the pitch of the entire numbers system by one tetratonic degree, as the following table shows for group 1 - 5 and Amaj7.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th rowspan="2"&gt;Input&lt;/th&gt;&lt;th colspan="2"&gt;Output&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Origin=0&lt;/th&gt;&lt;th&gt;Origin=1&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C4&lt;/td&gt;&lt;td&gt;C#4&lt;/td&gt;&lt;td&gt;E4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D4&lt;/td&gt;&lt;td&gt;E4  ↗&lt;/td&gt;&lt;td&gt;A4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E4&lt;/td&gt;&lt;td&gt;A4  ↗&lt;/td&gt;&lt;td&gt;B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F4&lt;/td&gt;&lt;td&gt;B4  ↗&lt;/td&gt;&lt;td&gt;C#5&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;Alignment matters most when switching from a heptatonic function such as &lt;a href="#Lead"&gt;Lead&lt;/a&gt; to the numbers system or vice versa. If you're playing near the origin when you switch, the transition is smooth, but if you're playing significantly above or below the origin, a jump in pitch occurs. If this jump is undesirable, you can avoid it by adjusting the numbers origin to suit the range of your instrument. You can also change the numbers origin during a performance as a kind of pitch-shifting effect.
+
+&lt;a name="Numbers_theory"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Numbers_theory"&gt;Numbers theory&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;The numbers system was popularized by tenor saxophonist and music educator Jerry Bergonzi in his book "Inside Improvisation, Vol 1: Melodic Structures." The groups can be derived from a tetratonic pattern superimposed onto a heptatonic scale. The pattern consists of three adjacent scale tones followed by a skipped scale tone, as shown in the column heading of the table below. The groups are four-note subsets of this repeating pattern, arranged so that each group starts two scale tones beyond its predecessor.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="1" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;1&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;2&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;3&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;5&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;6&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;7&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;2&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;3&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;4&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;6&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;7&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;1&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;3&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;4&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;5&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;7&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;1&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;2&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;4&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;5&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;6&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;1&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;2&lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;3&lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th rowspan="7"&gt;Majors&lt;/th&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;1235&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;3567&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;5672&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;7234&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;2346&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;4671&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;6713&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th rowspan="7"&gt;Minors&lt;/th&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;1345&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;3457&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;5712&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;7124&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt;2456&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: gray; color: white;"&gt;4561&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td style="background-color: black;"&gt; &lt;/td&gt;&lt;td&gt;6123&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;a name="Comp"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Comp"&gt;Comp&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This page contains comping-related settings for the current &lt;a href="#Part"&gt;part&lt;/a&gt;. Comping is an abbreviation for &lt;em&gt;accompanying&lt;/em&gt;. Comping is enabled by selecting the Comp &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. In the Comp function, playing a single note on the &lt;a href="#Part_Input"&gt;input&lt;/a&gt; device produces a chord on the &lt;a href="#Part_Output"&gt;output&lt;/a&gt; device, specifically a tetrachord or a triad. The current &lt;a href="#Song_position"&gt;song position&lt;/a&gt; determines the &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;. Which note is played determines the frequency range of the chord, i.e. higher notes result in higher chords. Specifically, the input note is used as the bottom of a one-octave window within which the output chord is voiced. The chord is inverted as needed to keep it within the specified window. The output notes all have the same velocity as the input note. The chord &lt;a href="#Voicing"&gt;voicing&lt;/a&gt; and &lt;a href="#Variation"&gt;variation&lt;/a&gt; are configurable, and the chords can also be &lt;a href="#Arpeggio_Period"&gt;arpeggiated&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;The performer's input to the Comp function is primarily &lt;em&gt;rhythmic&lt;/em&gt;. An effective chordal accompaniment can be achieved by playing a single note with suitable rhythm. It may be desirable to vary the input note (and thereby vary the frequency range of the output chords) for dramatic effect and to account for the range of the soloist or other performers.
+
+&lt;/p&gt;&lt;p&gt;The Comp function is also useful for self-accompaniment, e.g. on a keyboard instrument. This is achieved by creating a &lt;em&gt;split&lt;/em&gt; consisting of two parts, one set to Comp and the other set to &lt;a href="#Lead"&gt;Lead&lt;/a&gt;. Both parts receive their input from the same device, but occupy different &lt;a href="#Zone_Low"&gt;zones&lt;/a&gt; of the input device. For example to play Lead with the right hand and Comp with the left hand, assuming a split point of C4, you might give the Lead part a zone of C4 to G9 and the Comp part a zone of C−1 to B3.
+
+&lt;/p&gt;&lt;p&gt;The Comp part is normally played with only one input note at time. Multiple input notes at once are permitted, and may create interesting effects, but at the risk of too many simultaneous output notes exceeding the polyphony of the output device.
+
+&lt;a name="Voicing"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Voicing"&gt;Voicing&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines the chord voicing. For close voicing, the chord is inverted as needed to fit within a one-octave window, the bottom of which is determined by the input note, as explained above. For other voicings, the close voicing is still computed, but serves as a preliminary stage: one or more notes of the close voicing are then dropped an octave, as shown in the table below. Drop 2 and drop 3 voicings are characteristic of guitar. Note that this setting only affects tetrachords; triads always use close voicing.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Voicing&lt;/th&gt;&lt;th&gt;Notes dropped&lt;/th&gt;&lt;th&gt;Cmaj7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Close&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;C4 E4 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2&lt;/td&gt;&lt;td&gt;2nd from top&lt;/td&gt;&lt;td&gt;G3 C4 E4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 3&lt;/td&gt;&lt;td&gt;3rd from top&lt;/td&gt;&lt;td&gt;E3 C4 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 4&lt;/td&gt;&lt;td&gt;4th from top&lt;/td&gt;&lt;td&gt;C3 E4 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2 3&lt;/td&gt;&lt;td&gt;2nd and 3rd from top&lt;/td&gt;&lt;td&gt;E3 G3 C4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2 4&lt;/td&gt;&lt;td&gt;2nd and 4th from top&lt;/td&gt;&lt;td&gt;C3 G3 E4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 3 4&lt;/td&gt;&lt;td&gt;3rd and 4th from top&lt;/td&gt;&lt;td&gt;C3 E3 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2 3 4&lt;/td&gt;&lt;td&gt;2nd, 3rd and 4th from top&lt;/td&gt;&lt;td&gt;C3 E3 G3 B4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;a name="Variation"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Variation"&gt;Variation&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines if and how chords vary. Two variations are defined for each &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;. The variations are referred to as A and B. Typically A is a more conventional spelling, whereas B alters one or more chord tones, e.g. for the major seventh chord type, A is 1 3 5 7 and B is 2 3 5 6, effectively substituting a 69 chord. The variations are a matter of taste, and may be customized by editing the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;. The variation schemes are shown below. The "A to B" and "B to A" schemes are only distinguishable if &lt;a href="#Chord_change_resets_alternation"&gt;Chord change resets alternation&lt;/a&gt; is enabled.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Scheme&lt;/th&gt;&lt;th&gt;Behavior&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A only&lt;/td&gt;&lt;td&gt;Only the A variation of the chord is output.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B only&lt;/td&gt;&lt;td&gt;Only the B variation of the chord is output.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A to B&lt;/td&gt;&lt;td&gt;The output chord alternates between the A and B variations. If "Chord change resets alternation" is enabled, a change of chord resets the alternation to A.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B to A&lt;/td&gt;&lt;td&gt;The output chord alternates between the B and A variations. If "Chord change resets alternation" is enabled, a change of chord resets the alternation to B.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;a name="Chord_change_resets_alternation"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Chord_change_resets_alternation"&gt;Chord change resets alternation&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines whether a change of chord resets the alternation state for the "A to B" and "B to A" &lt;a href="#Variation"&gt;variation schemes&lt;/a&gt;. In these schemes, successive input notes alternate the output chord between the two variations defined for the current &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The alternation is never reset. This lets the performer create arbitrary patterns of chord variation. This option is more challenging, but also more expressive. Note that in this case, the "A to B" and "B to A" schemes are indistinguishable.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Enabled&lt;/td&gt;&lt;td&gt;The alternation is reset to a known state at the start of each new chord. This makes it easy to maintain a consistent pattern of variation.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;a name="Arpeggio_Period"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Arpeggio_Period"&gt;Arpeggio Period&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;The notes of a chord can be played in sequence instead of simultaneously, forming an arpeggio. The speed of the arpeggio is determined by the arpeggio period, i.e. the duration of the pause between successive arpeggio notes, expressed as a fraction of a whole note. Because it's a period, not a frequency, smaller values result in faster arpeggios. If the period is zero, arpeggiation is disabled. The drop list lets you select common fractional values, e.g. an 1/8 note. You can also type a fraction or floating-point value in the edit box; see &lt;a href="#Durations"&gt;durations&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;The arpeggio speed can be varied at any time, including during an arpeggio. With precise timing, an arpeggio can be gradually sped up or slowed down. This technique lets you realistically emulate strumming, e.g. on guitar. It's easier to achieve the needed precision via a physical remote control, assigned to the Comp Arp Period &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;. In some cases it may be preferable to control the arpeggio period in a quantized manner instead of continuously. In this case the Comp Arp Period Quant MIDI target should be used instead. It selects the arpeggio period from the following list of durations:
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1/1&lt;/td&gt;&lt;td&gt;whole&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/2&lt;/td&gt;&lt;td&gt;half&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/2&lt;/td&gt;&lt;td&gt;triplet half (1/3)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/4&lt;/td&gt;&lt;td&gt;quarter&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/4&lt;/td&gt;&lt;td&gt;triplet quarter (1/6)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/8&lt;/td&gt;&lt;td&gt;eighth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/8&lt;/td&gt;&lt;td&gt;triplet eighth (1/12)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/16&lt;/td&gt;&lt;td&gt;sixteenth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/16&lt;/td&gt;&lt;td&gt;triplet sixteenth (1/24)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/32&lt;/td&gt;&lt;td&gt;thirty-second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/32&lt;/td&gt;&lt;td&gt;triplet thirty-second (1/48)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/64&lt;/td&gt;&lt;td&gt;sixty-fourth&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;a name="Arpeggio_Order"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Arpeggio_Order"&gt;Arpeggio Order&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines the order of the notes when a chord is &lt;a href="#Arpeggio_Period"&gt;arpeggiated&lt;/a&gt;. The options are listed in the table below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Order&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Default&lt;/td&gt;&lt;td&gt;The chord's notes are played in their default order, which is determined by the &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;, &lt;a href="#Voicing"&gt;voicing&lt;/a&gt;, and &lt;a href="#Variation"&gt;variation&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ascending&lt;/td&gt;&lt;td&gt;The chord's notes are played in ascending order, from lowest to highest.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Descending&lt;/td&gt;&lt;td&gt;The chord's notes are played in descending order, from highest to lowest.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alternate&lt;/td&gt;&lt;td&gt;The arpeggio alternates between ascending and descending order. This is useful for emulating guitar strumming.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Random&lt;/td&gt;&lt;td&gt;The chord's notes are played in random order, avoiding repeated notes. This is useful for emulating guitar fingerpicking.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;a name="Arpeggio_Repeat"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Arpeggio_Repeat"&gt;Arpeggio Repeat&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines whether chord &lt;a href="#Arpeggio_Period"&gt;arpeggios&lt;/a&gt; are repeated.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The arpeggio stops when all of the chord's notes have been played, after which continuing to hold the input note has no effect.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Enabled&lt;/td&gt;&lt;td&gt;The arpeggio repeats for as long as the input note remains pressed.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;Arpeggio repeat can be combined with &lt;a href="#Auto_Play"&gt;auto play&lt;/a&gt;, resulting in continuous automated arpeggios. The effect is similar to a music box. It's more interesting if the &lt;a href="#Arpeggio_Order"&gt;arpeggio order&lt;/a&gt; is random.
+
+&lt;a name="Arpeggio_Adapt"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Arpeggio_Adapt"&gt;Arpeggio Adapt&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting causes arpeggios that span a chord change to &lt;em&gt;adapt&lt;/em&gt; to the change. Ordinarily an arpeggio's notes are determined solely by the chord during which it begins, and remain constant. Consequently if an ordinary arpeggio spans two chords, it may clash with the latter chord. Adaptive arpeggios avoid this potential clash. When the chord changes, any unplayed arpeggio note that's not found in the new chord is replaced with the nearest unused note from the new chord.
+
+&lt;/p&gt;&lt;p&gt;In the following example, an arpeggio is evenly split between two chords, i.e. its first two notes occur during Cmaj7 and its remaining notes occur during Dbmaj7. In the ordinary case, G and B clash with Dbmaj7, whereas in the adaptive case, they're replaced with the nearest notes of Dbmaj7's arpeggio. Notice that the adapted arpeggio spells C+(b9) rather than Cmaj7. Adaptive arpeggios combine chords, resulting in &lt;em&gt;hybrids&lt;/em&gt; which may be nonstandard and/or dissonant.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Adapt&lt;/th&gt;&lt;th&gt;Cmaj7&lt;/th&gt;&lt;th&gt;Dbmaj7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;C4 E4&lt;/td&gt;&lt;td&gt;G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;C4 E4&lt;/td&gt;&lt;td&gt;Ab4 Db5&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;Note that for adaptive arpeggios to work properly, the &lt;a href="#Fix_held_notes"&gt;fix held notes&lt;/a&gt; feature must be disabled, because otherwise it would correct the entire arpeggio, preventing hybrids. Adaptation takes &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; into account, i.e. a given &lt;a href="#Part"&gt;part&lt;/a&gt; can update its arpeggios early (or late) relative to other parts. Adaptation works best with one-shot arpeggios; a &lt;a href="#Arpeggio_Repeat"&gt;repeating&lt;/a&gt; arpeggio can only adapt during its first pass.
+
+&lt;a name="Bass"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Bass"&gt;Bass&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This page contains settings related to the Bass &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; for the current &lt;a href="#Part"&gt;part&lt;/a&gt;. The purpose of the bass function is to make it easy to find chord tones, particularly the root. In the bass function, the chord tones remain stationary on the input device, i.e. each note of the input diatonic scale has a fixed harmonic role. For example C is always the root of the current chord, G is always the fifth of the current chord, etc. The following table shows the mapping for two arbitrary chords.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th rowspan="2"&gt;Input&lt;/th&gt;&lt;th rowspan="2"&gt;Role&lt;/th&gt;&lt;th colspan="2"&gt;Output&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;A-7&lt;/th&gt;&lt;th&gt;F-7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;Root&lt;/td&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;Second&lt;/td&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;G&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;Third&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;Ab&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;Fourth&lt;/td&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;Bb&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;Fifth&lt;/td&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;Sixth&lt;/td&gt;&lt;td&gt;F#&lt;/td&gt;&lt;td&gt;D&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;Seventh&lt;/td&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;Eb&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;The table above assumes the default setup, in which the output chord scale maps to the C major scale (i.e. the white keys) on the input device. Note that this is only the case when &lt;a href="#Input_Transpose"&gt;input transpose&lt;/a&gt; is zero or a multiple of twelve.
+
+&lt;/p&gt;&lt;p&gt;The bass function lets you effortlessly maintain a constant harmonic relationship to changing chords. For example, to play the roots of all the chords, simply play C throughout the entire &lt;a href="#Song"&gt;song&lt;/a&gt;. To play a simple Latin bass line, just switch between C and G: this is equivalent to playing the root and the fifth of each chord. For swing, you may also want to use &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;Unlike the &lt;a href="#Lead"&gt;Lead&lt;/a&gt; function, which transposes in position, the bass function transposes by shifting, and can therefore produce drastic pitch changes. For example if the chord changes from a C to a G, the bass note corresponding to any given input note leaps a fifth. The bass function doesn't necessarily preserve the input's shape, and consequently the lead function may be more useful for soloing.
+
+&lt;a name="Lowest_note"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Lowest_note"&gt;Lowest note&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines the lowest output note the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function will generate. Output notes below this limit are shifted up as many octaves as needed to stay above the limit. This helps prevent the inadvertent playing of extremely low notes that might otherwise damage audio equipment.
+
+&lt;/p&gt;&lt;p&gt;The setting can be used to model actual bass instruments. The default value (E1) models a typical four-string bass. Other common values are D1, C1, or B0 for a typical five-string bass. These values assume middle C is C4 per the MIDI specification, and may need to be adjusted by one or more octaves for non-compliant instruments.
+
+&lt;/p&gt;&lt;p&gt;This setting also affects the transposition direction, i.e. for a given chord root, whether input notes are transposed up or down to produce the corresponding output notes. For example if the lowest note is an E, for chord roots C, Db, D, and Eb, the input is transposed up, whereas for all other roots, the input is transposed down.
+
+&lt;a name="Slash_chords"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Slash_chords"&gt;Slash chords&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines whether the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function respects alternate bass notes appended to chord symbols. Chord symbols may be followed by a slash and a bass note, indicating that the bass should play a different note instead of the chord's root, e.g. Cmaj7/G indicates that the bass should play G instead of C. Such symbols are known as &lt;em&gt;slash chords&lt;/em&gt;.
+
+&lt;/p&gt;&lt;p&gt;If this setting is enabled, slash chords are respected: the current chord scale is shifted so that C maps to the chord's bass note instead of its root. The bass note may not belong to the scale, in which case the bass note is substituted for the root, potentially resulting in a non-standard scale. If this setting is disabled, slash chords have no effect on the bass function.
+
+&lt;a name="Approach_mode"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Approach_mode"&gt;Approach mode&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;The &lt;a href="#Bass"&gt;bass&lt;/a&gt; function features an approach mode. An approach is a melodic line that proceeds predictably towards a chord tone of a subsequent chord, known as the &lt;em&gt;target chord&lt;/em&gt;. The target note is usually the root or the fifth of the target chord. A well-executed approach is timed so as to arrive at the target note just as the target chord begins. An approach anticipates both the target chord and the target note, and creates an expectation that they will coincide.
+
+&lt;/p&gt;&lt;p&gt;The bass function normally maps C to the current chord's root. This makes it trivial to locate the root and other chord tones of the &lt;em&gt;current&lt;/em&gt; chord, but isn't necessarily helpful for &lt;em&gt;future&lt;/em&gt; chords. Approach mode solves this problem by shifting the current chord's scale so that C maps to the target chord's root, or as close as possible. In approach mode, you approach the target root by simply approaching C, regardless of what the target chord actually is. To approach the target fifth, just approach G instead of C. Thus you can make accurate approaches without knowing the song's chords at all.
+
+&lt;/p&gt;&lt;p&gt;Approach can be automatic or manually triggered. Automatic approach is enabled by setting a non-zero &lt;a href="#Approach_length"&gt;approach length&lt;/a&gt;. For manual operation, specify the desired &lt;a href="#Target_alignment"&gt;target alignment&lt;/a&gt;, and then manually &lt;a href="#Approach_trigger"&gt;trigger&lt;/a&gt; approach mode before each approach. It's possible to combine automatic and manual approaches, in which case the manual approach takes precedence.
+
+&lt;a name="Approach_length"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Approach_length"&gt;Approach length&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines the length of automatic &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt; in the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function. Setting this length non-zero enables automatic approach. The length is specified via a duration combo box; see &lt;a href="#Durations"&gt;durations&lt;/a&gt; for details. For example if the approach length is 1/2 (a half note), assuming 4/4 time, approach mode is automatically enabled halfway through each measure. In other words, during the second half of each measure, if you play a melodic line that converges on C, you will be approaching the root of the following measure's chord. The approach length can be varied dynamically via remote control, using the Bass Approach Length &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;.
+
+&lt;a name="Target_alignment"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Target_alignment"&gt;Target alignment&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines the alignment of the target chord for manually triggered &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt; in the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function. The available alignments are shown in the table below. Alignments are relative to the start of the &lt;a href="#Song"&gt;song&lt;/a&gt;. In addition to specifying the desired alignment, a manual approach must also be &lt;a href="#Approach_trigger"&gt;triggered&lt;/a&gt;. Triggering a manual approach immediately shifts the current chord's scale so that C maps to the root of the target chord, or as close as possible. The target may be further away than the next chord, in which case the chords between the current and target chords also have their scales similarly shifted.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Alignment&lt;/th&gt;&lt;th&gt;Target chord&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/4&lt;/td&gt;&lt;td&gt;First chord of the next quarter-measure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/2&lt;/td&gt;&lt;td&gt;First chord of the next half-measure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;First chord of the next measure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;First chord of the next measure that's aligned on a two-measure boundary.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;First chord of the next measure that's aligned on a four-measure boundary.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;For example suppose approach is triggered halfway through the first measure of the following song. If the alignment is 1, the target chord is A7b9, if it's 2, the target is C-7, and if it's 4, the target is F-7.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;E-7b5&lt;/td&gt;&lt;td&gt;A7b9&lt;/td&gt;&lt;td&gt;C-7&lt;/td&gt;&lt;td&gt;F7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F-7&lt;/td&gt;&lt;td&gt;Bb7&lt;/td&gt;&lt;td&gt;Ebmaj7&lt;/td&gt;&lt;td&gt;Ab7#4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;a name="Approach_trigger"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Approach_trigger"&gt;Approach trigger&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This button triggers a manual &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt; in the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function. The target of a manual approach depends on the current &lt;a href="#Song_position"&gt;song position&lt;/a&gt; and the &lt;a href="#Target_alignment"&gt;target alignment&lt;/a&gt;, as explained above. For best results, trigger approach mode slightly before playing the approach. It's usually more convenient to trigger manual approaches via the Bass Approach Trigger &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;.

 &lt;a name="Harmonizer"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Harmonizer"&gt;Harmonizer&lt;/a&gt;&lt;/h2&gt;

@@ -815,191 +1085,13 @@

 &lt;ol&gt;
 &lt;li&gt;Create a lead part.
-&lt;/li&gt;&lt;li&gt;Give the lead part a harmony, by setting its &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; non-zero, e.g. −2 for thirds below. Also set a static harmony range and/or constrain the harmony to a chord, e.g by setting Chord Size to 4.
+&lt;/li&gt;&lt;li&gt;Give the lead part a harmony, by setting its &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; non-zero, e.g. −2 for thirds below. Also set a static harmony range and/or constrain the harmony to a chord, e.g. by setting Chord Size to 4.
 &lt;/li&gt;&lt;li&gt;Create one or more copies of the lead part via copy/paste. Note that the original and its copies must all be &lt;em&gt;contiguous&lt;/em&gt; in the parts list.
 &lt;/li&gt;&lt;li&gt;Give each part a &lt;em&gt;different&lt;/em&gt; non-zero generic interval. You may also want to give the parts different names to avoid confusion.
 &lt;/li&gt;&lt;li&gt;For all parts &lt;em&gt;except&lt;/em&gt; the first one, check Omit melody and Subpart.
 &lt;/li&gt;&lt;/ol&gt;

 &lt;p&gt;Harmony group members can have different static harmony and chord constraint settings. They can also be output to different instruments, in which case they should all have &lt;a href="#Controllers_thru"&gt;controllers thru&lt;/a&gt; set. However each member of a harmony group &lt;em&gt;must&lt;/em&gt; have a unique generic interval, otherwise collisions will occur. Note that only the group leader's &lt;a href="#Part_Input"&gt;input settings&lt;/a&gt; are meaningful, and consequently the input page is disabled for subparts.
-
-&lt;a name="Comp"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Comp"&gt;Comp&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This page contains comping-related settings for the current &lt;a href="#Part"&gt;part&lt;/a&gt;. Comping is an abbreviation for &lt;em&gt;accompanying&lt;/em&gt;. Comping is enabled by selecting the Comp &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. In the Comp function, playing a single note on the &lt;a href="#Part_Input"&gt;input&lt;/a&gt; device produces a chord on the &lt;a href="#Part_Output"&gt;output&lt;/a&gt; device, specifically a tetrachord or a triad. The current &lt;a href="#Song_position"&gt;song position&lt;/a&gt; determines the &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;. Which note is played determines the frequency range of the chord, i.e. higher notes result in higher chords. Specifically, the input note is used as the bottom of a one-octave window within which the output chord is voiced. The chord is inverted as needed to keep it within the specified window. The output notes all have the same velocity as the input note. The chord &lt;a href="#Voicing"&gt;voicing&lt;/a&gt; and &lt;a href="#Variation"&gt;variation&lt;/a&gt; are configurable, and the chords can also be &lt;a href="#Arpeggio_Period"&gt;arpeggiated&lt;/a&gt;.
-
-&lt;/p&gt;&lt;p&gt;The performer's input to the Comp function is primarily &lt;em&gt;rhythmic&lt;/em&gt;. An effective chordal accompaniment can be achieved by playing a single note with suitable rhythm. It may be desirable to vary the input note (and thereby vary the frequency range of the output chords) for dramatic effect and to account for the range of the soloist or other performers.
-
-&lt;/p&gt;&lt;p&gt;The Comp function is also useful for self-accompaniment, e.g. on a keyboard instrument. This is achieved by creating a &lt;em&gt;split&lt;/em&gt; consisting of two parts, one set to Comp and the other set to &lt;a href="#Lead"&gt;Lead&lt;/a&gt;. Both parts receive their input from the same device, but occupy different &lt;a href="#Zone_Low"&gt;zones&lt;/a&gt; of the input device. For example to play Lead with the right hand and Comp with the left hand, assuming a split point of C4, you might give the Lead part a zone of C4 to G9 and the Comp part a zone of C−1 to B3.
-
-&lt;/p&gt;&lt;p&gt;The Comp part is normally played with only one input note at time. Multiple input notes at once are permitted, and may create interesting effects, but at the risk of too many simultaneous output notes exceeding the polyphony of the output device.
-
-&lt;a name="Voicing"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Voicing"&gt;Voicing&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting determines the chord voicing. For close voicing, the chord is inverted as needed to fit within a one-octave window, the bottom of which is determined by the input note, as explained above. For other voicings, the close voicing is still computed, but serves as a preliminary stage: one or more notes of the close voicing are then dropped an octave, as shown in the table below. Drop 2 and drop 3 voicings are characteristic of guitar. Note that this setting only affects tetrachords; triads always use close voicing.
-
-&lt;/p&gt;&lt;p&gt;
-
-
-
-
-
-
-
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Voicing&lt;/th&gt;&lt;th&gt;Notes dropped&lt;/th&gt;&lt;th&gt;Cmaj7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Close&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;C4 E4 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2&lt;/td&gt;&lt;td&gt;2nd from top&lt;/td&gt;&lt;td&gt;G3 C4 E4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 3&lt;/td&gt;&lt;td&gt;3rd from top&lt;/td&gt;&lt;td&gt;E3 C4 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 4&lt;/td&gt;&lt;td&gt;4th from top&lt;/td&gt;&lt;td&gt;C3 E4 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2 3&lt;/td&gt;&lt;td&gt;2nd and 3rd from top&lt;/td&gt;&lt;td&gt;E3 G3 C4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2 4&lt;/td&gt;&lt;td&gt;2nd and 4th from top&lt;/td&gt;&lt;td&gt;C3 G3 E4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 3 4&lt;/td&gt;&lt;td&gt;3rd and 4th from top&lt;/td&gt;&lt;td&gt;C3 E3 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2 3 4&lt;/td&gt;&lt;td&gt;2nd, 3rd and 4th from top&lt;/td&gt;&lt;td&gt;C3 E3 G3 B4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;a name="Variation"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Variation"&gt;Variation&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting determines if and how chords vary. Two variations are defined for each &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;. The variations are referred to as A and B. Typically A is a more conventional spelling, whereas B alters one or more chord tones, e.g. for the major seventh chord type, A is 1 3 5 7 and B is 2 3 5 6, effectively substituting a 69 chord. The variations are a matter of taste, and may be customized by editing the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;. The variation schemes are shown below. The "A to B" and "B to A" schemes are only distinguishable if &lt;a href="#Chord_change_resets_alternation"&gt;Chord change resets alternation&lt;/a&gt; is enabled.
-
-&lt;/p&gt;&lt;p&gt;
-
-
-
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Scheme&lt;/th&gt;&lt;th&gt;Behavior&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A only&lt;/td&gt;&lt;td&gt;Only the A variation of the chord is output.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B only&lt;/td&gt;&lt;td&gt;Only the B variation of the chord is output.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A to B&lt;/td&gt;&lt;td&gt;The output chord alternates between the A and B variations. If "Chord change resets alternation" is enabled, a change of chord resets the alternation to A.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B to A&lt;/td&gt;&lt;td&gt;The output chord alternates between the B and A variations. If "Chord change resets alternation" is enabled, a change of chord resets the alternation to B.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;a name="Chord_change_resets_alternation"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Chord_change_resets_alternation"&gt;Chord change resets alternation&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting determines whether a change of chord resets the alternation state for the "A to B" and "B to A" &lt;a href="#Variation"&gt;variation schemes&lt;/a&gt;. In these schemes, successive input notes alternate the output chord between the two variations defined for the current &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;.
-
-&lt;/p&gt;&lt;p&gt;
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The alternation is never reset. This lets the performer create arbitrary patterns of chord variation. This option is more challenging, but also more expressive. Note that in this case, the "A to B" and "B to A" schemes are indistinguishable.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Enabled&lt;/td&gt;&lt;td&gt;The alternation is reset to a known state at the start of each new chord. This makes it easy to maintain a consistent pattern of variation.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;a name="Arpeggio_Period"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Arpeggio_Period"&gt;Arpeggio Period&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;The notes of a chord can be played in sequence instead of simultaneously, forming an arpeggio. The speed of the arpeggio is determined by the arpeggio period, i.e. the duration of the pause between successive arpeggio notes, expressed as a fraction of a whole note. Because it's a period, not a frequency, smaller values result in faster arpeggios. If the period is zero, arpeggiation is disabled. The drop list lets you select common fractional values, e.g. an 1/8 note. You can also type a fraction or floating-point value in the edit box; see &lt;a href="#Durations"&gt;durations&lt;/a&gt;.
-
-&lt;/p&gt;&lt;p&gt;The arpeggio speed can be varied at any time, including during an arpeggio. With precise timing, an arpeggio can be gradually sped up or slowed down. This technique lets you realistically emulate strumming, e.g. on guitar. It's easier to achieve the needed precision via a physical remote control, assigned to the Comp Arp Period &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;. In some cases it may be preferable to control the arpeggio period in a quantized manner instead of continuously. In this case the Comp Arp Period Quant MIDI target should be used instead. It selects the arpeggio period from the following list of durations:
-
-&lt;/p&gt;&lt;p&gt;
-
-
-
-
-
-
-
-
-
-
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;1/1&lt;/td&gt;&lt;td&gt;whole&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/2&lt;/td&gt;&lt;td&gt;half&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/2&lt;/td&gt;&lt;td&gt;triplet half (1/3)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/4&lt;/td&gt;&lt;td&gt;quarter&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/4&lt;/td&gt;&lt;td&gt;triplet quarter (1/6)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/8&lt;/td&gt;&lt;td&gt;eighth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/8&lt;/td&gt;&lt;td&gt;triplet eighth (1/12)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/16&lt;/td&gt;&lt;td&gt;sixteenth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/16&lt;/td&gt;&lt;td&gt;triplet sixteenth (1/24)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/32&lt;/td&gt;&lt;td&gt;thirty-second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/32&lt;/td&gt;&lt;td&gt;triplet thirty-second (1/48)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/64&lt;/td&gt;&lt;td&gt;sixty-fourth&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;a name="Arpeggio_Order"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Arpeggio_Order"&gt;Arpeggio Order&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting determines the order of the notes when a chord is &lt;a href="#Arpeggio_Period"&gt;arpeggiated&lt;/a&gt;. The options are listed in the table below.
-
-&lt;/p&gt;&lt;p&gt;
-
-
-
-
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Order&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Default&lt;/td&gt;&lt;td&gt;The chord's notes are played in their default order, which is determined by the &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;, &lt;a href="#Voicing"&gt;voicing&lt;/a&gt;, and &lt;a href="#Variation"&gt;variation&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ascending&lt;/td&gt;&lt;td&gt;The chord's notes are played in ascending order, from lowest to highest.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Descending&lt;/td&gt;&lt;td&gt;The chord's notes are played in descending order, from highest to lowest.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alternate&lt;/td&gt;&lt;td&gt;The arpeggio alternates between ascending and descending order. This is useful for emulating guitar strumming.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Random&lt;/td&gt;&lt;td&gt;The chord's notes are played in random order, avoiding repeated notes. This is useful for emulating guitar fingerpicking.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;a name="Arpeggio_Repeat"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Arpeggio_Repeat"&gt;Arpeggio Repeat&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting determines whether chord &lt;a href="#Arpeggio_Period"&gt;arpeggios&lt;/a&gt; are repeated.
-
-&lt;/p&gt;&lt;p&gt;
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The arpeggio stops when all of the chord's notes have been played, after which continuing to hold the input note has no effect.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Enabled&lt;/td&gt;&lt;td&gt;The arpeggio repeats for as long as the input note remains pressed.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;/p&gt;&lt;p&gt;Arpeggio repeat can be combined with &lt;a href="#Auto_Play"&gt;auto play&lt;/a&gt;, resulting in continuous automated arpeggios. The effect is similar to a music box. It's more interesting if the &lt;a href="#Arpeggio_Order"&gt;arpeggio order&lt;/a&gt; is random.
-
-&lt;a name="Arpeggio_Adapt"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Arpeggio_Adapt"&gt;Arpeggio Adapt&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting causes arpeggios that span a chord change to &lt;em&gt;adapt&lt;/em&gt; to the change. Ordinarily an arpeggio's notes are determined solely by the chord during which it begins, and remain constant. Consequently if an ordinary arpeggio spans two chords, it may clash with the latter chord. Adaptive arpeggios avoid this potential clash. When the chord changes, any unplayed arpeggio note that's not found in the new chord is replaced with the nearest unused note from the new chord.
-
-&lt;/p&gt;&lt;p&gt;In the following example, an arpeggio is evenly split between two chords, i.e. its first two notes occur during Cmaj7 and its remaining notes occur during Dbmaj7. In the ordinary case, G and B clash with Dbmaj7, whereas in the adaptive case, they're replaced with the nearest notes of Dbmaj7's arpeggio. Notice that the adapted arpeggio spells C+(b9) rather than Cmaj7. Adaptive arpeggios combine chords, resulting in &lt;em&gt;hybrids&lt;/em&gt; which may be nonstandard and/or dissonant.
-
-&lt;/p&gt;&lt;p&gt;
-
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Adapt&lt;/th&gt;&lt;th&gt;Cmaj7&lt;/th&gt;&lt;th&gt;Dbmaj7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;C4 E4&lt;/td&gt;&lt;td&gt;G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;C4 E4&lt;/td&gt;&lt;td&gt;Ab4 Db5&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;/p&gt;&lt;p&gt;Note that for adaptive arpeggios to work properly, the &lt;a href="#Fix_held_notes"&gt;fix held notes&lt;/a&gt; feature must be disabled, because otherwise it would correct the entire arpeggio, preventing hybrids. Adaptation takes &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; into account, i.e. a given &lt;a href="#Part"&gt;part&lt;/a&gt; can update its arpeggios early (or late) relative to other parts. Adaptation works best with one-shot arpeggios; a &lt;a href="#Arpeggio_Repeat"&gt;repeating&lt;/a&gt; arpeggio can only adapt during its first pass.
-
-&lt;a name="Bass"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Bass"&gt;Bass&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This page contains settings related to the Bass &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; for the current &lt;a href="#Part"&gt;part&lt;/a&gt;. The purpose of the bass function is to make it easy to find chord tones, particularly the root. In the bass function, the chord tones remain stationary on the input device, i.e. each note of the input diatonic scale has a fixed harmonic role. For example C is always the root of the current chord, G is always the fifth of the current chord, etc. The following table shows the mapping for two arbitrary chords.
-
-&lt;/p&gt;&lt;p&gt;
-
-
-
-
-
-
-
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th rowspan="2"&gt;Input&lt;/th&gt;&lt;th rowspan="2"&gt;Role&lt;/th&gt;&lt;th colspan="2"&gt;Output&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;A-7&lt;/th&gt;&lt;th&gt;F-7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;Root&lt;/td&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;Second&lt;/td&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;G&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;Third&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;Ab&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;Fourth&lt;/td&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;Bb&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;Fifth&lt;/td&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;Sixth&lt;/td&gt;&lt;td&gt;F#&lt;/td&gt;&lt;td&gt;D&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;Seventh&lt;/td&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;Eb&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;/p&gt;&lt;p&gt;The table above assumes the default setup, in which the output chord scale maps to the C major scale (i.e. the white keys) on the input device. Note that this is only the case when &lt;a href="#Input_Transpose"&gt;input transpose&lt;/a&gt; is zero or a multiple of twelve.
-
-&lt;/p&gt;&lt;p&gt;The bass function lets you effortlessly maintain a constant harmonic relationship to changing chords. For example, to play the roots of all the chords, simply play C throughout the entire &lt;a href="#Song"&gt;song&lt;/a&gt;. To play a simple Latin bass line, just switch between C and G: this is equivalent to playing the root and the fifth of each chord. For swing, you may also want to use &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt;.
-
-&lt;/p&gt;&lt;p&gt;Unlike the &lt;a href="#Lead"&gt;Lead&lt;/a&gt; function, which transposes in position, the bass function transposes by shifting, and can therefore produce drastic pitch changes. For example if the chord changes from a C to a G, the bass note corresponding to any given input note leaps a fifth. The bass function doesn't necessarily preserve the input's shape, and consequently the lead function may be more useful for soloing.
-
-&lt;a name="Lowest_note"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Lowest_note"&gt;Lowest note&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting determines the lowest output note the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function will generate. Output notes below this limit are shifted up as many octaves as needed to stay above the limit. This helps prevent the inadvertent playing of extremely low notes that might otherwise damage audio equipment.
-
-&lt;/p&gt;&lt;p&gt;The setting can be used to model actual bass instruments. The default value (E1) models a typical four-string bass. Other common values are D1, C1, or B0 for a typical five-string bass. These values assume middle C is C4 per the MIDI specification, and may need to be adjusted by one or more octaves for non-compliant instruments.
-
-&lt;/p&gt;&lt;p&gt;This setting also affects the transposition direction, i.e. for a given chord root, whether input notes are transposed up or down to produce the corresponding output notes. For example if the lowest note is an E, for chord roots C, Db, D, and Eb, the input is transposed up, whereas for all other roots, the input is transposed down.
-
-&lt;a name="Slash_chords"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Slash_chords"&gt;Slash chords&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting determines whether the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function respects alternate bass notes appended to chord symbols. Chord symbols may be followed by a slash and a bass note, indicating that the bass should play a different note instead of the chord's root, e.g. Cmaj7/G indicates that the bass should play G instead of C. Such symbols are known as &lt;em&gt;slash chords&lt;/em&gt;.
-
-&lt;/p&gt;&lt;p&gt;If this setting is enabled, slash chords are respected: the current chord scale is shifted so that C maps to the chord's bass note instead of its root. The bass note may not belong to the scale, in which case the bass note is substituted for the root, potentially resulting in a non-standard scale. If this setting is disabled, slash chords have no effect on the bass function.
-
-&lt;a name="Approach_mode"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Approach_mode"&gt;Approach mode&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;The &lt;a href="#Bass"&gt;bass&lt;/a&gt; function features an approach mode. An approach is a melodic line that proceeds predictably towards a chord tone of a subsequent chord, known as the &lt;em&gt;target chord&lt;/em&gt;. The target note is usually the root or the fifth of the target chord. A well-executed approach is timed so as to arrive at the target note just as the target chord begins. An approach anticipates both the target chord and the target note, and creates an expectation that they will coincide.
-
-&lt;/p&gt;&lt;p&gt;The bass function normally maps C to the current chord's root. This makes it trivial to locate the root and other chord tones of the &lt;em&gt;current&lt;/em&gt; chord, but isn't necessarily helpful for &lt;em&gt;future&lt;/em&gt; chords. Approach mode solves this problem by shifting the current chord's scale so that C maps to the target chord's root, or as close as possible. In approach mode, you approach the target root by simply approaching C, regardless of what the target chord actually is. To approach the target fifth, just approach G instead of C. Thus you can make accurate approaches without knowing the song's chords at all.
-
-&lt;/p&gt;&lt;p&gt;Approach can be automatic or manually triggered. Automatic approach is enabled by setting a non-zero &lt;a href="#Approach_length"&gt;approach length&lt;/a&gt;. For manual operation, specify the desired &lt;a href="#Target_alignment"&gt;target alignment&lt;/a&gt;, and then manually &lt;a href="#Approach_trigger"&gt;trigger&lt;/a&gt; approach mode before each approach. It's possible to combine automatic and manual approaches, in which case the manual approach takes precedence.
-
-&lt;a name="Approach_length"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Approach_length"&gt;Approach length&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting determines the length of automatic &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt; in the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function. Setting this length non-zero enables automatic approach. The length is specified via a duration combo box; see &lt;a href="#Durations"&gt;durations&lt;/a&gt; for details. For example if the approach length is 1/2 (a half note), assuming 4/4 time, approach mode is automatically enabled halfway through each measure. In other words, during the second half of each measure, if you play a melodic line that converges on C, you will be approaching the root of the following measure's chord. The approach length can be varied dynamically via remote control, using the Bass Approach Length &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;.
-
-&lt;a name="Target_alignment"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Target_alignment"&gt;Target alignment&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting determines the alignment of the target chord for manually triggered &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt; in the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function. The available alignments are shown in the table below. Alignments are relative to the start of the &lt;a href="#Song"&gt;song&lt;/a&gt;. In addition to specifying the desired alignment, a manual approach must also be &lt;a href="#Approach_trigger"&gt;triggered&lt;/a&gt;. Triggering a manual approach immediately shifts the current chord's scale so that C maps to the root of the target chord, or as close as possible. The target may be further away than the next chord, in which case the chords between the current and target chords also have their scales similarly shifted.
-
-&lt;/p&gt;&lt;p&gt;
-
-
-
-
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Alignment&lt;/th&gt;&lt;th&gt;Target chord&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/4&lt;/td&gt;&lt;td&gt;First chord of the next quarter-measure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/2&lt;/td&gt;&lt;td&gt;First chord of the next half-measure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;First chord of the next measure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;First chord of the next measure that's aligned on a two-measure boundary.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;First chord of the next measure that's aligned on a four-measure boundary.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;/p&gt;&lt;p&gt;For example suppose approach is triggered halfway through the first measure of the following song. If the alignment is 1, the target chord is A7b9, if it's 2, the target is C-7, and if it's 4, the target is F-7.
-
-&lt;/p&gt;&lt;p&gt;
-
-
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;E-7b5&lt;/td&gt;&lt;td&gt;A7b9&lt;/td&gt;&lt;td&gt;C-7&lt;/td&gt;&lt;td&gt;F7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F-7&lt;/td&gt;&lt;td&gt;Bb7&lt;/td&gt;&lt;td&gt;Ebmaj7&lt;/td&gt;&lt;td&gt;Ab7#4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
-
-&lt;a name="Approach_trigger"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Approach_trigger"&gt;Approach trigger&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This button triggers a manual &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt; in the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function. The target of a manual approach depends on the current &lt;a href="#Song_position"&gt;song position&lt;/a&gt; and the &lt;a href="#Target_alignment"&gt;target alignment&lt;/a&gt;, as explained above. For best results, trigger approach mode slightly before playing the approach. It's usually more convenient to trigger manual approaches via the Bass Approach Trigger &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;.

 &lt;a name="Auto"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Auto"&gt;Auto&lt;/a&gt;&lt;/h2&gt;

&lt;/dt&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Mon, 20 Feb 2017 22:30:51 -0000</pubDate><guid>https://sourceforge.net7ee277f4d9df31ac051556188a9324020636a7a1</guid></item><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v21
+++ v22
@@ -1,4 +1,3 @@
-&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&lt;title&gt;ChordEase Help&lt;/title&gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;
 &lt;h1&gt;ChordEase Help&lt;/h1&gt;
 &lt;h2&gt;Contents&lt;/h2&gt;

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Sun, 13 Mar 2016 23:23:09 -0000</pubDate><guid>https://sourceforge.net6e135812afd3f464592bcf57cd62d491cd31a3a2</guid></item><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v20
+++ v21
@@ -1,3 +1,4 @@
+&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&lt;title&gt;ChordEase Help&lt;/title&gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;
 &lt;h1&gt;ChordEase Help&lt;/h1&gt;
 &lt;h2&gt;Contents&lt;/h2&gt;

@@ -265,7 +266,7 @@
 GoalMethod
 Change a chord's rootRight-click the chord to show the context menu, select &lt;span class="cmd"&gt;Root&lt;/span&gt;, and then select the desired root from the list.
 Change a chord's typeRight-click the chord to show the context menu, select &lt;span class="cmd"&gt;Type&lt;/span&gt;, and then select the desired chord type from the list. If the number of available &lt;a href="#Chord_types"&gt;chord types&lt;/a&gt; makes the context menu inconveniently long, you can alternatively use the &lt;a href="#Chord_bar"&gt;Chord bar&lt;/a&gt; to change the chord type.
-Change a chord's bass noteRight-click the chord to show the context menu, select &lt;span class="cmd"&gt;Bass&lt;/span&gt;, and then select the desired bass note from the list.
+Change a chord's bass noteRight-click the chord to show the context menu, select &lt;span class="cmd"&gt;Bass&lt;/span&gt;, and then select the desired &lt;a href="#Slash_chords"&gt;bass note&lt;/a&gt; from the list.
 Change a chord's durationRight-click the chord to show the context menu, select &lt;span class="cmd"&gt;Duration&lt;/span&gt;, and then select the desired duration from the list. The listed durations are in measures or fractions of a measure. To specify a duration other than those listed, select "Other" to display the Duration dialog, enter the desired duration in beats, and press OK.
 Edit a chord as textSelect the chord, and then select &lt;span class="cmd"&gt;Edit/Rename&lt;/span&gt; in the main menus or &lt;span class="cmd"&gt;Rename&lt;/span&gt; in the context menu, or press &lt;span class="key"&gt;F2&lt;/span&gt;. A popup edit control is displayed. Make your changes, and then save them by pressing &lt;span class="key"&gt;Enter&lt;/span&gt; or clicking anywhere outside the edit control. To cancel, press &lt;span class="key"&gt;Esc&lt;/span&gt;. This method lets you change the chord's root, type, and bass note, but not its duration.
 Edit a chord's propertiesDouble-click the chord, or select the chord and press the &lt;span class="key"&gt;Enter&lt;/span&gt; key. You can also right-click the chord to show the context menu, and select &lt;span class="cmd"&gt;Properties&lt;/span&gt;. The &lt;a href="#Chord_Properties"&gt;chord properties&lt;/a&gt; dialog is displayed. Change the properties as desired, and then press OK to save your changes.
@@ -540,6 +541,8 @@
 PartThis is the name of the part. To change the name, assuming the part is already selected, left-click the name to display a popup edit control. You can also begin editing the name via &lt;span class="cmd"&gt;Edit/Rename&lt;/span&gt; on the main menu, &lt;span class="cmd"&gt;Rename&lt;/span&gt; on the list's context menu, or the &lt;span class="key"&gt;F2&lt;/span&gt; shortcut. After making your changes, save them by pressing &lt;span class="key"&gt;Enter&lt;/span&gt; or clicking anywhere outside the edit control. To cancel, press &lt;span class="key"&gt;Esc&lt;/span&gt;. If the part isn't selected, left-click its name once to select the part, wait a second, and then left-click its name again to display the popup edit control.
 FunctionThis is the part's &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt;. To change it, left-click it to display a popup drop list, and select the desired function from the list.
 
+
+&lt;p&gt;Certain part settings can be displayed and edited for multiple parts at once, via the &lt;a href="#MIDI_Note_Mapping_Properties"&gt;Note Mapping Properties&lt;/a&gt; dialog. To display this dialog, select the desired parts and then choose &lt;span class="cmd"&gt;Properties&lt;/span&gt; from the list's context menu, or press &lt;span class="key"&gt;Alt+Enter&lt;/span&gt;.

 &lt;a name="Part_Input"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Part_Input"&gt;Input&lt;/a&gt;&lt;/h2&gt;

@@ -639,7 +642,7 @@

 &lt;a name="Output_Patch"&gt;&lt;h2&gt;Patch&lt;/h2&gt;&lt;/a&gt;

-&lt;p&gt;This is the optional patch number to send to the output instrument. If this setting is −1 (shown as N/A), no patch change message is sent. If this setting is greater than or equal to zero, the corresponding patch is set during startup, and whenever a &lt;a href="#Song"&gt;song&lt;/a&gt; is loaded.
+&lt;/p&gt;&lt;p&gt;This is the optional patch number to send to the output instrument. If this setting is −1 (shown as N/A), no Program Change message is sent. If this setting is greater than or equal to zero, the corresponding patch is set during startup, and whenever a &lt;a href="#Song"&gt;song&lt;/a&gt; is loaded. To access more than 128 patches, &lt;a href="#Bank_Select"&gt;Bank Select&lt;/a&gt; must also be specified.

 &lt;a name="Output_Volume"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Output_Volume"&gt;Volume&lt;/a&gt;&lt;/h2&gt;

@@ -651,6 +654,18 @@

 &lt;p&gt;Note that harmonic anticipation affects the behavior of the &lt;a href="#Fix_held_notes"&gt;fix held notes&lt;/a&gt; feature. Without harmonic anticipation, if a note is struck just before a chord change and held, and the chord changes in such a way as to make that note invalid, the note gets corrected. However if harmonic anticipation is in effect, and the note is struck within the harmonic anticipation window, it's mapped using the coming chord's scale. This ensures that the note will remain valid when the chord change arrives, and avoids the possibility of a correction. For example if harmonic anticipation is set to an eighth note, notes can be struck and held up to an eighth note ahead of a chord change without any risk that they will become invalid. Even if held note correction is disabled, it's still recommended to use a small amount of harmonic anticipation, to provide "slack" for notes played slightly early.

+&lt;a name="Fix_held_notes"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Fix_held_notes"&gt;Fix held notes&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting enables or disables held note correction for the &lt;a href="#Part"&gt;part&lt;/a&gt;. If a note is held over a chord change, the held note may become invalid, i.e. it may not be a member of the new chord's scale. ChordEase can optionally correct the invalid note, by replacing it with the new chord's nearest scale tone. The effect is more obvious when playing a sound that doesn't decay, e.g. an organ. Held note correction is supported for &lt;a href="#Comp"&gt;comp&lt;/a&gt;, but works slightly differently: notes that become invalid are corrected to the nearest tetrachord tone, instead of the nearest scale tone. This can result in interesting chord evolution and unusual voicings. Held note correction interacts with &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt;.
+
+&lt;a name="Bank_Select"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Bank_Select"&gt;Bank Select&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This optional setting selects a bank of patches on the output device. The &lt;a href="#Output_Patch"&gt;Patch&lt;/a&gt; setting by itself can only access 128 patches, but when combined with Bank Select, as many as two million patches can potentially be accessed, depending on the device (up to 16,384 banks, each containing 128 patches).
+
+&lt;/p&gt;&lt;p&gt;Bank Select is divided into two values, Coarse (MSB) and Fine (LSB). It's possible to specify one value but not the other. Devices having less than 128 banks may only use the MSB. If a value is −1 (shown as N/A), it's unspecified. If the value is greater than or equal to zero, the corresponding Bank Select message is sent during startup, and whenever a &lt;a href="#Song"&gt;song&lt;/a&gt; is loaded.
+
+&lt;/p&gt;&lt;p&gt;If you change Bank Select, your device likely won't switch patches until you also change the patch setting. This is in accordance with the MIDI specification. When a device receives Bank Select, it stores the selection in anticipation of a Program Change. When the device subsequently receives a Program Change, it then switches to the specified patch within the selected bank.
+
 &lt;a name="Controllers_thru"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Controllers_thru"&gt;Controllers thru&lt;/a&gt;&lt;/h2&gt;

 &lt;p&gt;This setting determines whether MIDI controllers are passed through to the output device or not. In addition to controller messages, it also affects all other non-note MIDI messages, e.g. patch change, pitch wheel, and channel aftertouch messages. This setting should normally be enabled, so that the input instrument's controls are forwarded to the output device. Common controls affected by this setting include sustain, modulation, pitch bend, and volume. Note that MIDI messages that are &lt;a href="#MIDI_targets"&gt;assigned&lt;/a&gt; to ChordEase parameters will never be passed through, regardless of this setting.
@@ -664,10 +679,6 @@
 &lt;/p&gt;&lt;p&gt;Local control only matters if you're using the same device for both input and output. If your input device doesn't generate audio, or you're using a different device for output, local control is irrelevant. Disabling local control disconnects the instrument's user interface (e.g. its keyboard) from its audio generator. The usual symptom of failing to disable local control is that when you play a note on the instrument, you hear two notes. The notes may or may not differ, and if they're the same, the audio may sound "thin" due to acoustic cancellations. This occurs because the instrument is sending notes to ChordEase, and receiving (possibly different) notes back, but the audio generator is playing the local notes in addition to the notes received from ChordEase.

 &lt;/p&gt;&lt;p&gt;Note that not all MIDI instruments respond to the local control message. In this case you should consult your instrument's user manual to determine whether it's possible to disable local control, and if so how to do it.
-
-&lt;a name="Fix_held_notes"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Fix_held_notes"&gt;Fix held notes&lt;/a&gt;&lt;/h2&gt;
-
-&lt;p&gt;This setting enables or disables held note correction for the &lt;a href="#Part"&gt;part&lt;/a&gt;. If a note is held over a chord change, the held note may become invalid, i.e. it may not be a member of the new chord's scale. ChordEase can optionally correct the invalid note, by replacing it with the new chord's nearest scale tone. The effect is more obvious when playing a sound that doesn't decay, e.g. an organ. Held note correction is supported for &lt;a href="#Comp"&gt;comp&lt;/a&gt;, but works slightly differently: notes that become invalid are corrected to the nearest tetrachord tone, instead of the nearest scale tone. This can result in interesting chord evolution and unusual voicings. Held note correction interacts with &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt;.

 &lt;a name="Output_device_name"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Output_device_name"&gt;Device name&lt;/a&gt;&lt;/h2&gt;

@@ -693,7 +704,7 @@

 &lt;a name="Harmonizer"&gt;&lt;h2&gt;Harmonizer&lt;/h2&gt;&lt;/a&gt;

-&lt;p&gt;The harmonizer automatically generates a harmony line for the &lt;a href="#Part"&gt;part&lt;/a&gt;'s output melody notes. The harmonizer is available for all melodic &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;, including &lt;a href="#Lead"&gt;lead&lt;/a&gt; and &lt;a href="#Bass"&gt;bass&lt;/a&gt;, but has no effect on the &lt;a href="#Comp"&gt;comp&lt;/a&gt; mapping function. The harmonization is diatonic, meaning the specified &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; is altered as needed to fit the current chord scale. The harmonizer also supports &lt;a href="#Static_harmony_range"&gt;static harmony&lt;/a&gt;. It's possible to generate multiple harmony lines for a given melody, e.g. three-part or four-part harmony, but only by creating multiple parts; for more information, see &lt;a href="#Omit_melody"&gt;omit melody&lt;/a&gt; below.
+&lt;/p&gt;&lt;p&gt;The harmonizer automatically generates a harmony line for the &lt;a href="#Part"&gt;part&lt;/a&gt;'s output melody notes. The harmonizer is available for all melodic &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;, including &lt;a href="#Lead"&gt;lead&lt;/a&gt; and &lt;a href="#Bass"&gt;bass&lt;/a&gt;, but has no effect on the &lt;a href="#Comp"&gt;comp&lt;/a&gt; mapping function. The harmonization is diatonic, meaning the specified &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; is altered as needed to fit the current chord scale. Other harmonizer features include &lt;a href="#Static_harmony_range"&gt;static harmony&lt;/a&gt; and constraining the harmony to a &lt;a href="#Constrain_to_chord"&gt;chord&lt;/a&gt;. It's possible to generate multiple harmony lines for a given melody, e.g. three-part or four-part harmony, by creating multiple parts; for more information, see &lt;a href="#Omit_melody"&gt;omit melody&lt;/a&gt; and &lt;a href="#Harmony_groups"&gt;harmony groups&lt;/a&gt; below.

 &lt;a name="Generic_interval"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Generic_interval"&gt;Generic interval&lt;/a&gt;&lt;/h2&gt;

@@ -722,7 +733,7 @@

 &lt;a name="Static_harmony_range"&gt;&lt;h2&gt;Static harmony range&lt;/h2&gt;&lt;/a&gt;

-&lt;p&gt;This setting lets you configure the &lt;a href="#Harmonizer"&gt;harmonizer&lt;/a&gt; to generate static harmony under certain circumstances. Static harmony is when the melody note changes but the harmony note doesn't, i.e. a stationary, non-moving harmony line. Normally the harmony is a fixed &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; from the melody, and consequently when the melody changes, the harmony changes too. However if a static harmony range is specified, the following rule is applied: if the interval between a new melody note and the previous harmony note is within the specified range, the previous harmony note is reused, resulting in static harmony.
+&lt;/p&gt;&lt;p&gt;This setting lets you configure the &lt;a href="#Harmonizer"&gt;harmonizer&lt;/a&gt; to generate static harmony under certain circumstances. Static harmony is when the melody note changes but the harmony note doesn't, i.e. a stationary, non-moving harmony line. Normally the harmony is a fixed &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; from the melody, and consequently when the melody changes, the harmony changes too. However if a static harmony range is specified, the following rule is applied: if the interval between a new melody note and the previous harmony note is within the specified range, the previous harmony note is reused, resulting in static harmony. By default, the static harmony can cross the melody, but this is &lt;a href="#Crossing"&gt;configurable&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;The static harmony range is specified as a minimum interval and a maximum interval in semitones. The maximum must be greater than or equal to the minimum. If the maximum is zero, static harmony is disabled. The wider the static harmony range is, the more intervals are allowed, and the more often static harmony will occur. Note that if the minimum is zero, unisons may occur, i.e. the harmony and melody notes may be identical. In the extreme case where the minimum is zero and the maximum is twelve, the melody must deviate from the harmony by more than an octave before the harmony changes, resulting in a drone-like effect. The best results are obtained by carefully matching the static harmony range to the generic interval. For example if the generic interval is thirds, a range of 3 to 7 works well: as long as the melody stays within a minor third to a perfect fifth of the harmony, static harmony occurs.

@@ -747,6 +758,72 @@

 &lt;/p&gt;&lt;p&gt;This setting lets you output a harmony without outputting the melody on which the harmony is based. Normally both the melody and the harmony are output. If this setting is enabled, the melody note is omitted, so that only the harmony note is output. This may be useful if you're using multiple parts to generate multiple harmony lines, as in three-part or four-part harmony. For example, suppose you have two parts harmonizing in response to the same input, one generating thirds, and the other generating fifths. By default, each part outputs a melody note and a harmony note, resulting in two copies of the melody note. This might be acceptable if the parts are sent to different instruments, but otherwise it's likely to cause undesirable acoustic artifacts such as flanging. To avoid this, you should enable omit melody for one of the parts. If you're unsure, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt; to check for &lt;a href="#Duplicate_notes"&gt;duplicate notes&lt;/a&gt;.

+&lt;a name="Subpart"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Subpart"&gt;Subpart&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting causes the part to join a &lt;a href="#Harmony_groups"&gt;harmony group&lt;/a&gt;. Harmony groups are useful for preventing note collisions in multipart harmonization. A harmony group consists of two or more harmony &lt;a href="#Part"&gt;parts&lt;/a&gt; which are &lt;em&gt;adjacent&lt;/em&gt; in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;, and all but the &lt;em&gt;first&lt;/em&gt; of which have the subpart setting checked. The group's first part (the one with subpart unchecked) is the &lt;em&gt;leader&lt;/em&gt;, and the subparts are subordinate to it.
+
+&lt;a name="Crossing"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Crossing"&gt;Crossing&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This setting determines whether &lt;a href="#Static_harmony_range"&gt;static harmony&lt;/a&gt; can cross the melody. If a harmony that's normally below the melody moves above the melody, or vice versa, i.e. if the harmony switches sides, this is called &lt;em&gt;crossing&lt;/em&gt;. Allowing crossing makes static harmony more likely, and more complex. By default, crossing is allowed.
+
+&lt;/p&gt;&lt;p&gt;The static harmonizer computes the difference between each new melody note and the previous harmony note, and reuses the previous harmony note if the difference is within a specified range. If crossing is enabled, the difference is computed as an absolute value so its sign doesn't matter, whereas if crossing is disabled, the difference must have the same sign as the &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; for static harmony to occur.
+
+&lt;a name="Constrain_to_chord"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Constrain_to_chord"&gt;Chord&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;These settings let you constrain the harmonizer to the notes of a chord. The chord is specified via its diatonic &lt;em&gt;degree&lt;/em&gt; in thirds, and its &lt;em&gt;size&lt;/em&gt; in notes. Degree is relative to the current chord scale, which changes as the &lt;a href="#Song"&gt;song&lt;/a&gt; progresses. The most common sizes are four (tetrachordal harmony) and three (triadic harmony). A size of zero disables the chord constraint feature. The following table shows the constraint resulting from each degree, for the two most common sizes.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th rowspan="2"&gt;Degree&lt;/th&gt;&lt;th colspan="2"&gt;Constraint&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Size=4&lt;/th&gt;&lt;th&gt;Size=3&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1 3 5 7&lt;/td&gt;&lt;td&gt;1 3 5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;3 5 7 2&lt;/td&gt;&lt;td&gt;3 5 7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;5 7 2 4&lt;/td&gt;&lt;td&gt;5 7 2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;7 2 4 6&lt;/td&gt;&lt;td&gt;7 2 4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;2 4 6 1&lt;/td&gt;&lt;td&gt;2 4 6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;4 6 1 3&lt;/td&gt;&lt;td&gt;4 6 1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;6 1 3 5&lt;/td&gt;&lt;td&gt;6 1 3&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;For example, suppose the current chord is Cmaj7. If degree is 1 and size is 4, the harmony is constrained to 1,3,5,7 in the C major scale, or C,E,G,B. However if degree is 3, the harmony is constrained to 3,5,7,2 instead, or E,G,B,D. This is analagous to substituting the III chord for the I chord. Degree lets you control the harmony's &lt;em&gt;tension&lt;/em&gt; or distance from the tonal center. If degree is kept constant, the harmony maintains a consistent tension relative to the chord progression. A degree of 1 is the most "in" (minimal tension).
+
+&lt;/p&gt;&lt;p&gt;The &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; still determines the harmony's approximate distance from the melody. The harmony note is first calculated using the generic interval, and then quantized to the nearest chord tone.
+
+&lt;/p&gt;&lt;p&gt;The chord constraint can be combined with &lt;a href="#Static_harmony_range"&gt;static harmony&lt;/a&gt;, in which case static harmony has priority: if the previous harmony note passes the static harmony range test, it's reused regardless of whether it's a chord tone. However if the previous harmony note is out of range, the new harmony note is constrained to the nearest chord tone.
+
+&lt;a name="Harmony_groups"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Harmony_groups"&gt;Harmony groups&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;Harmony groups are a means of avoiding collisions in multipart harmony. Harmony groups are only useful if all the following statements are true:
+&lt;/p&gt;&lt;ul&gt;
+&lt;li&gt;You want multipart harmony, i.e. a melody plus two or more harmony lines.
+&lt;/li&gt;&lt;li&gt;You want the harmony lines to be &lt;a href="#Static_harmony_range"&gt;static&lt;/a&gt;, or constrained to a &lt;a href="#Constrain_to_chord"&gt;chord&lt;/a&gt;, or both.
+&lt;/li&gt;&lt;li&gt;You care about collisions.
+&lt;/li&gt;&lt;/ul&gt;
+
+&lt;p&gt;A &lt;em&gt;collision&lt;/em&gt; is when two harmony lines generate the exact same note. Collisions might be acceptable, for example if the harmony lines are output to different instruments. However if the harmony lines are output to the same instrument (i.e. the same MIDI &lt;a href="#Output_Port"&gt;port&lt;/a&gt; and &lt;a href="#Output_Channel"&gt;channel&lt;/a&gt;), collisions will likely produce undesirable audio artifacts such as cancellation or flanging (see &lt;a href="#Duplicate_notes"&gt;duplicate notes&lt;/a&gt;).
+
+&lt;/p&gt;&lt;p&gt;A harmony group consists of two or more harmony &lt;a href="#Part"&gt;parts&lt;/a&gt; which are &lt;em&gt;adjacent&lt;/em&gt; in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;, and all but the &lt;em&gt;first&lt;/em&gt; of which have the &lt;a href="#Subpart"&gt;subpart&lt;/a&gt; setting checked. The group's first part is the &lt;em&gt;leader&lt;/em&gt;, and the group's remaining parts are &lt;em&gt;subparts&lt;/em&gt;. Below is an example setup for four-voice harmony constrained to a tetrachord.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Part name&lt;/th&gt;&lt;th&gt;Part function&lt;/th&gt;&lt;th&gt;Generic interval&lt;/th&gt;&lt;th&gt;Omit melody&lt;/th&gt;&lt;th&gt;Subpart&lt;/th&gt;&lt;th&gt;Chord size&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Melody &amp;amp; Harmony1&lt;/td&gt;&lt;td&gt;Lead&lt;/td&gt;&lt;td&gt;−2&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Harmony2&lt;/td&gt;&lt;td&gt;Lead&lt;/td&gt;&lt;td&gt;−3&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Harmony3&lt;/td&gt;&lt;td&gt;Lead&lt;/td&gt;&lt;td&gt;−5&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;The ChordEase distribution includes a &lt;a href="#Patch"&gt;patch&lt;/a&gt; for the above setup, in the patches subfolder, with the file name "harmony group (4-voice, constrained to chord).cep". Without the use of a harmony group, this patch would produce collisions frequently due to Harmony1 and Harmony2 being only one scale step apart. A similar patch for a harmony group with static harmony is also provided.
+
+&lt;/p&gt;&lt;p&gt;Use the following steps to create a typical harmony group:
+
+&lt;/p&gt;&lt;ol&gt;
+&lt;li&gt;Create a lead part.
+&lt;/li&gt;&lt;li&gt;Give the lead part a harmony, by setting its &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; non-zero, e.g. −2 for thirds below. Also set a static harmony range and/or constrain the harmony to a chord, e.g by setting Chord Size to 4.
+&lt;/li&gt;&lt;li&gt;Create one or more copies of the lead part via copy/paste. Note that the original and its copies must all be &lt;em&gt;contiguous&lt;/em&gt; in the parts list.
+&lt;/li&gt;&lt;li&gt;Give each part a &lt;em&gt;different&lt;/em&gt; non-zero generic interval. You may also want to give the parts different names to avoid confusion.
+&lt;/li&gt;&lt;li&gt;For all parts &lt;em&gt;except&lt;/em&gt; the first one, check Omit melody and Subpart.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;p&gt;Harmony group members can have different static harmony and chord constraint settings. They can also be output to different instruments, in which case they should all have &lt;a href="#Controllers_thru"&gt;controllers thru&lt;/a&gt; set. However each member of a harmony group &lt;em&gt;must&lt;/em&gt; have a unique generic interval, otherwise collisions will occur. Note that only the group leader's &lt;a href="#Part_Input"&gt;input settings&lt;/a&gt; are meaningful, and consequently the input page is disabled for subparts.
+
 &lt;a name="Comp"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Comp"&gt;Comp&lt;/a&gt;&lt;/h2&gt;

 &lt;p&gt;This page contains comping-related settings for the current &lt;a href="#Part"&gt;part&lt;/a&gt;. Comping is an abbreviation for &lt;em&gt;accompanying&lt;/em&gt;. Comping is enabled by selecting the Comp &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. In the Comp function, playing a single note on the &lt;a href="#Part_Input"&gt;input&lt;/a&gt; device produces a chord on the &lt;a href="#Part_Output"&gt;output&lt;/a&gt; device, specifically a tetrachord or a triad. The current &lt;a href="#Song_position"&gt;song position&lt;/a&gt; determines the &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;. Which note is played determines the frequency range of the chord, i.e. higher notes result in higher chords. Specifically, the input note is used as the bottom of a one-octave window within which the output chord is voiced. The chord is inverted as needed to keep it within the specified window. The output notes all have the same velocity as the input note. The chord &lt;a href="#Voicing"&gt;voicing&lt;/a&gt; and &lt;a href="#Variation"&gt;variation&lt;/a&gt; are configurable, and the chords can also be &lt;a href="#Arpeggio_Period"&gt;arpeggiated&lt;/a&gt;.
@@ -1584,7 +1661,7 @@

 &lt;a name="MIDI_Note_Mapping_Properties"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="MIDI_Note_Mapping_Properties"&gt;Properties&lt;/a&gt;&lt;/h2&gt;

-&lt;p&gt;This dialog lets you edit certain properties of one or more &lt;a href="#Part"&gt;parts&lt;/a&gt;. It's particularly useful for changing the port and/or channel settings of multiple parts at once. Any changes you make in the dialog are applied to all of the selected parts. If the selected parts currently have different values for a given property, that property will be blank in the dialog. To display the dialog, choose &lt;span class="cmd"&gt;Properties&lt;/span&gt; from the &lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt; dialog's context menu, or press &lt;span class="key"&gt;Alt+Enter&lt;/span&gt;.
+&lt;/p&gt;&lt;p&gt;This dialog lets you edit certain properties of one or more &lt;a href="#Part"&gt;parts&lt;/a&gt;. It's particularly useful for changing the port and/or channel settings of multiple parts at once. Any changes you make in the dialog are applied to all of the selected parts. If the selected parts currently have different values for a given property, that property will be blank in the dialog. To display the dialog, choose &lt;span class="cmd"&gt;Properties&lt;/span&gt; from the &lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt; dialog's context menu, or press &lt;span class="key"&gt;Alt+Enter&lt;/span&gt;. You can also get to this dialog directly from the &lt;a href="#Parts_list"&gt;Parts List&lt;/a&gt;.

 &lt;a name="MIDI_Output_bar"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;&lt;/h2&gt;

@@ -1592,10 +1669,25 @@

 &lt;a name="Output_Notes_bar"&gt;&lt;h2&gt;Output Notes&lt;/h2&gt;&lt;/a&gt;

-&lt;p&gt;This dockable bar dynamically displays the output notes on a virtual piano keyboard. To show or hide the bar, use &lt;span class="cmd"&gt;View/Output Notes&lt;/span&gt;. The piano keyboard's orientation can be horizontal or vertical, depending on whether the bar is docked horizontally or vertically. This bar is useful for examining the behavior of the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. To monitor MIDI output messages other than notes, e.g. controllers, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt; instead.
+&lt;/p&gt;&lt;p&gt;This dockable bar dynamically displays the output notes on a virtual piano keyboard. To show or hide the bar, use &lt;span class="cmd"&gt;View/Output Notes&lt;/span&gt;. The piano keyboard's orientation can be horizontal or vertical, depending on whether the bar is docked horizontally or vertically. This bar is useful for examining the behavior of the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. To monitor MIDI output messages other than notes, e.g. controllers, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt; instead. To display input notes, use the &lt;a href="#Piano_dialog"&gt;Piano dialog&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;By default, output notes are displayed for all ports and all channels, except the port and channel used by the &lt;a href="#Metronome"&gt;metronome&lt;/a&gt;. To restrict the display to a particular port and/or channel, use the port and channel submenus of the bar's context menu. The context menu also lets you to change the size of the piano keyboard, show or hide the key labels, rotate the key labels, and enable or disable the display of metronome notes.

+&lt;a name="Output_Notes_context_menu"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Output_Notes_context_menu"&gt;Context menu&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Port&lt;/td&gt;&lt;td colspan="2"&gt;To restrict the display to a particular port, select the corresponding submenu item, or select "All" to show notes from all ports.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Channel&lt;/td&gt;&lt;td colspan="2"&gt;To restrict the display to a particular channel, select the corresponding submenu item, or select "All" to show notes from all channels.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Piano Size&lt;/td&gt;&lt;td colspan="2"&gt;To resize the keyboard, select a standard piano size from the submenu, or select "Custom" to specify a custom size.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="4"&gt;Key Labels&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;No labels are shown on the piano keys.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Output Notes&lt;/td&gt;&lt;td&gt;Display output note names (including octave) on the piano keys. If the labels are too small, rotate them via the Rotate Labels option (see below).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Intervals&lt;/td&gt;&lt;td&gt;Show intervals on the piano keys, relative to the root of the current chord. The labels are updated dynamically as the chords change.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scale Tones&lt;/td&gt;&lt;td&gt;Show scale tones on the piano keys, using numbers from 1 to 7. Keys that aren't scale tones are left blank. The labels are updated dynamically as the chords change.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Rotate Labels&lt;/td&gt;&lt;td colspan="2"&gt;Rotate the key labels 90° counterclockwise, so that they're vertical instead of horizontal. This may allow the labels to use a larger font. This option is only supported when the bar is docked horizontally.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Metronome&lt;/td&gt;&lt;td colspan="2"&gt;Display metronome notes, which are normally hidden.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Color Velocities&lt;/td&gt;&lt;td colspan="2"&gt;Color the keys to show the velocities of the output notes. The colors range spectrally from blue (softest) to red (loudest).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
 &lt;a name="Path_List"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Path_List"&gt;Path List&lt;/a&gt;&lt;/h2&gt;

 &lt;p&gt;This dialog lets you enter and edit a list of file paths. To insert a path at the current selection, press the Insert button, or the &lt;span class="key"&gt;Insert&lt;/span&gt; key. A file dialog will be displayed. Navigate to the desired file, select it, and press OK. To delete a path from the list, select it and then press the Delete button, or the &lt;span class="key"&gt;Delete&lt;/span&gt; key. The list also can be reordered by selecting and dragging paths one by one. When you're done, press OK to save your changes, or Cancel to abandon them.
@@ -1630,12 +1722,17 @@

 &lt;/p&gt;&lt;p&gt;
-
+
+
+
+
+
+
@@ -1935,10 +2032,15 @@
 
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -1993,6 +2095,7 @@
 
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;
 &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Piano Size&lt;/td&gt;&lt;td colspan="2"&gt;This submenu lets you select a standard piano size. For nonstandard sizes, use the &lt;a href="#Start_note"&gt;start note&lt;/a&gt; and &lt;a href="#Key_count"&gt;key count&lt;/a&gt; drop lists.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="6"&gt;Key Labels&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;No labels are shown on the piano keys.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="7"&gt;Key Labels&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;No labels are shown on the piano keys.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Shortcuts&lt;/td&gt;&lt;td&gt;The labels show keyboard shortcuts, i.e. the correspondence between your computer keyboard and the piano keys.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Input Notes&lt;/td&gt;&lt;td&gt;The labels show the names of the input notes, i.e. for each key, what note is input to the &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt;. The labels are unaffected by chord changes, transposition, etc.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Output Notes&lt;/td&gt;&lt;td&gt;The labels show the names of the output notes, i.e. for each key, what note is output by the &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt;. The labels vary depending on the current chord scale, and are updated dynamically as the chords change. The labels are also affected by various settings including global &lt;a href="#Transpose"&gt;transposition&lt;/a&gt; and the part's &lt;a href="#Input_Transpose"&gt;input transposition&lt;/a&gt;. Note that a forward slash shown on a key indicates that the key is mapped to the &lt;a href="#Comp"&gt;comp&lt;/a&gt; function.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Intervals&lt;/td&gt;&lt;td&gt;The labels show the intervals created by each piano key, e.g. relative to the root of the current chord. The labels are updated dynamically, as described above.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Scale Tones&lt;/td&gt;&lt;td&gt;The labels show the scale tones created by each piano key, as numbers from 1 to 7. Keys that don't generate a scale tone are left blank. The labels are updated dynamically, as described above.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Velocities&lt;/td&gt;&lt;td&gt;The labels show the velocities of the input notes numerically.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="4"&gt;Key Colors&lt;/td&gt;&lt;td&gt;Input Notes&lt;/td&gt;&lt;td&gt;Color the keys to show which input notes are currently on.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Velocities&lt;/td&gt;&lt;td&gt;Color the keys to show the velocities of the input notes. The colors range spectrally from blue (softest) to red (loudest).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scale Tones&lt;/td&gt;&lt;td&gt;Color the keys so that scale tones are linearly mapped to a rainbow palette: 1=red, 2=orange, 3=yellow, 4=green, 5=blue, 6=indigo, 7=violet.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Thirds&lt;/td&gt;&lt;td&gt;Color the keys so that scale tones are mapped to a rainbow palette in thirds: 1=red, 3=orange, 5=yellow, 7=green, 2=blue, 4=indigo, 6=violet.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Rotate Labels&lt;/td&gt;&lt;td colspan="2"&gt;This setting rotates the key labels 90° counterclockwise, so that they're vertical instead of horizontal. This may allow the labels to use a larger font.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Show Octaves&lt;/td&gt;&lt;td colspan="2"&gt;This setting determines whether note names displayed on the piano keys include the octave number. Including the octave lengthens the labels, which may reduce the font size and thereby make the labels harder to read. Only key label types that show notes are affected.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Vertical Keyboard&lt;/td&gt;&lt;td colspan="2"&gt;This setting rotates the entire piano keyboard 90° counterclockwise, so that it's oriented vertically instead of horizontally. This may allow the key labels to use a larger font. The Rotate Labels setting has no effect in this case.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Output Volume&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Output volume, or -1 if none&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Output Harm. Anticipation&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Harmonic anticipation, as fraction of whole note&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Output Fix Held Notes&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Correct held notes that become non-diatonic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead Harm Interval&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Generic harmony interval, in diatonic steps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead Harm Omit Melody&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;True if harmonizer should omit melody note&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead Harm Static Min&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Minimum static harmony interval, in semitones&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead Harm Static Max&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Maximum static harmony interval, in semitones&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bank Select MSB&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Most significant byte of bank select, or -1 if none&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bank Select LSB&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Least significant byte of bank select, or -1 if none&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Harmonizer Interval&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Generic harmony interval, in diatonic steps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Harmonizer Omit Melody&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;True if harmonizer should omit melody note&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Harmonizer Crossing&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;True if harmony can cross melody&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Harmonizer Static Min&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Minimum static harmony interval, in semitones&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Harmonizer Static Max&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Maximum static harmony interval, in semitones&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Harmonizer Chord Degree&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Constrain harmony to chord of this diatonic degree&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Harmonizer Chord Size&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Constrain harmony to chord of this size, in notes&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Comp Voicing&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Chord voicing type&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Comp Variation&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Chord variation scheme&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Chord Resets Alternation&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;True if chord change resets variant alternation&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Insert&lt;/td&gt;&lt;td&gt;Copy&lt;/td&gt;&lt;td&gt;Copy the selection and put it on the Clipboard&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Shift+Insert&lt;/td&gt;&lt;td&gt;Paste&lt;/td&gt;&lt;td&gt;Insert Clipboard contents&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+Enter&lt;/td&gt;&lt;td&gt;Next Section&lt;/td&gt;&lt;td&gt;Continue to next section&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alt+Enter&lt;/td&gt;&lt;td&gt;Edit properties&lt;/td&gt;&lt;td&gt;Edit properties of selected items&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+Space&lt;/td&gt;&lt;td&gt;Play&lt;/td&gt;&lt;td&gt;Play or stop song&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Shift+Space&lt;/td&gt;&lt;td&gt;Pause&lt;/td&gt;&lt;td&gt;Pause or resume song&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+W&lt;/td&gt;&lt;td&gt;Rewind&lt;/td&gt;&lt;td&gt;Rewind to start of song&lt;/td&gt;&lt;/tr&gt;

&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Sun, 13 Mar 2016 23:22:35 -0000</pubDate><guid>https://sourceforge.net16b9d716befdd5df3877a1008e0dba3518252873</guid></item><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v19
+++ v20
@@ -108,6 +108,7 @@
 &lt;dd&gt;&lt;a href="#Status_bar"&gt;Status bar&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_bar"&gt;Patch bar&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Parts_bar"&gt;Parts bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_bar"&gt;Chord bar&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano"&gt;Piano&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes"&gt;Output Notes&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Threads"&gt;Threads&lt;/a&gt;
@@ -136,6 +137,7 @@
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes_bar"&gt;Output Notes&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Path_List"&gt;Path List&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano_dialog"&gt;Piano&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player_dialog"&gt;Record Player&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List_dialog"&gt;Section List&lt;/a&gt;
@@ -145,6 +147,7 @@
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Scales"&gt;Scales&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_types"&gt;Chord types&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_dictionary"&gt;Chord dictionary&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_substitution"&gt;Chord substitution&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_file_format"&gt;Song file format&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Durations"&gt;Durations&lt;/a&gt;
 &lt;/dd&gt;&lt;dd&gt;&lt;a href="#Duplicate_notes"&gt;Duplicate notes&lt;/a&gt;
@@ -261,7 +264,7 @@
 &lt;p&gt;
-
+
@@ -1225,13 +1228,15 @@

 &lt;a name="Start_Tag"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;&lt;a name="Start_Tag"&gt;Start Tag&lt;/a&gt;&lt;/h3&gt;

-&lt;p&gt;This command spontaneously repeats one or more measures, which is also known as &lt;em&gt;tagging&lt;/em&gt;. Tags can be impromptu, unlike &lt;a href="#Sections"&gt;sections&lt;/a&gt; which must be arranged beforehand. A tag can repeat a fixed number of times or indefinitely. A fixed repeat count is useful for endings, whereas indefinite repeat is useful for jamming on part of a &lt;a href="#Song"&gt;song&lt;/a&gt;. Tagging is only permitted while the song is &lt;a href="#Play-Stop"&gt;playing&lt;/a&gt;.
+&lt;/p&gt;&lt;p&gt;This command spontaneously repeats one or more measures, which is also known as &lt;em&gt;tagging&lt;/em&gt;. Tags can be impromptu, unlike &lt;a href="#Sections"&gt;sections&lt;/a&gt; which must be arranged beforehand. A tag can repeat a fixed number of times or indefinitely. A fixed repeat count is useful for endings, whereas indefinite repeat is useful for jamming on part of a &lt;a href="#Song"&gt;song&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;A tag is specified via its last measure, its &lt;a href="#Tag_Length"&gt;length&lt;/a&gt; in measures, and its &lt;a href="#Tag_Repeat"&gt;repeat count&lt;/a&gt;. To start tagging, first adjust the length and repeat count if needed. Then issue the Start Tag command during the last of the measures you wish to repeat, using &lt;span class="cmd"&gt;Transport/Start Tag&lt;/span&gt;, &lt;span class="key"&gt;Ctrl+T&lt;/span&gt;, or a suitably &lt;a href="#MIDI_targets"&gt;assigned&lt;/a&gt; MIDI controller. It's recommended to issue the command approximately halfway through the last measure, in order to minimize the risk of tagging the wrong measures. Issuing the command too late can also cause incorrect &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;To exit a tag, use the Start Tag command again, or the &lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt; command if you prefer. Either command finishes the current pass through the tag before proceeding on to the following measure. A tag with a fixed repeat count exits automatically after the specified number of repetitions, though you can also exit it prematurely. An indefinitely repeating tag doesn't exit until you tell it to.

 &lt;/p&gt;&lt;p&gt;Note that a tag can't wrap around from the end of the song to the beginning. For example if the tag length is two measures, a tag can't be started until the song's second measure.
+
+&lt;/p&gt;&lt;p&gt;Tagging is normally done with the song &lt;a href="#Play-Stop"&gt;playing&lt;/a&gt;, but it's also supported in free time mode, i.e. when the song is stopped and you're stepping through its chords manually via the &lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt; and &lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt; commands.

 &lt;a name="Next_Chord"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;&lt;a name="Next_Chord"&gt;Next Chord&lt;/a&gt;&lt;/h3&gt;

@@ -1349,6 +1354,23 @@
 &lt;table border="1" cellpadding="2" cellspacing="0"&gt;
 &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Goal&lt;/th&gt;&lt;th&gt;Method&lt;/th&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Change a chord's root&lt;/td&gt;&lt;td&gt;Right-click the chord to show the context menu, select &lt;span class="cmd"&gt;Root&lt;/span&gt;, and then select the desired root from the list.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Change a chord's type&lt;/td&gt;&lt;td&gt;Right-click the chord to show the context menu, select &lt;span class="cmd"&gt;Type&lt;/span&gt;, and then select the desired chord type from the list.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Change a chord's type&lt;/td&gt;&lt;td&gt;Right-click the chord to show the context menu, select &lt;span class="cmd"&gt;Type&lt;/span&gt;, and then select the desired chord type from the list. If the number of available &lt;a href="#Chord_types"&gt;chord types&lt;/a&gt; makes the context menu inconveniently long, you can alternatively use the &lt;a href="#Chord_bar"&gt;Chord bar&lt;/a&gt; to change the chord type.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Change a chord's bass note&lt;/td&gt;&lt;td&gt;Right-click the chord to show the context menu, select &lt;span class="cmd"&gt;Bass&lt;/span&gt;, and then select the desired bass note from the list.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Change a chord's duration&lt;/td&gt;&lt;td&gt;Right-click the chord to show the context menu, select &lt;span class="cmd"&gt;Duration&lt;/span&gt;, and then select the desired duration from the list. The listed durations are in measures or fractions of a measure. To specify a duration other than those listed, select "Other" to display the Duration dialog, enter the desired duration in beats, and press OK.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Edit a chord as text&lt;/td&gt;&lt;td&gt;Select the chord, and then select &lt;span class="cmd"&gt;Edit/Rename&lt;/span&gt; in the main menus or &lt;span class="cmd"&gt;Rename&lt;/span&gt; in the context menu, or press &lt;span class="key"&gt;F2&lt;/span&gt;. A popup edit control is displayed. Make your changes, and then save them by pressing &lt;span class="key"&gt;Enter&lt;/span&gt; or clicking anywhere outside the edit control. To cancel, press &lt;span class="key"&gt;Esc&lt;/span&gt;. This method lets you change the chord's root, type, and bass note, but not its duration.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Part_MIDI"&gt;MIDI&lt;/a&gt;&lt;/td&gt;&lt;td&gt;List of the part MIDI targets; each row corresponds to a part parameter or command that can be remotely controlled via MIDI. &lt;/td&gt;&lt;/tr&gt;
 &lt;/tbody&gt;&lt;/table&gt;

+&lt;a name="Chord_bar"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Chord_bar"&gt;Chord bar&lt;/a&gt;&lt;/h3&gt;
+
+&lt;p&gt;This command shows or hides the Chord bar. This toolbar lets you quickly edit chords within the current &lt;a href="#Song"&gt;song&lt;/a&gt;, or change the default chord if no song is open. You can also use the chord bar to change which &lt;a href="#Scales"&gt;scale&lt;/a&gt; and &lt;a href="#Modes"&gt;mode&lt;/a&gt; are associated with a given chord, but note that this affects &lt;em&gt;all instances&lt;/em&gt; of that &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt; in &lt;em&gt;all songs&lt;/em&gt;, because you're effectively editing the corresponding definition in the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;. The chord bar's properties are further explained in the table below. Note that "current chord" refers either to the chord at the current &lt;a href="#Song_position"&gt;song position&lt;/a&gt;, or if no song is open, to the default chord.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Root&lt;/td&gt;&lt;td&gt;This changes the current chord's root.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Type&lt;/td&gt;&lt;td&gt;This changes the current chord's type.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass&lt;/td&gt;&lt;td&gt;This changes the current chord's bass note. Note that if '*' is selected, the bass note is the same as the root.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Key&lt;/td&gt;&lt;td&gt;This displays the current chord's key, which depends on its type, scale and mode.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scale&lt;/td&gt;&lt;td&gt;This changes the scale in the chord dictionary definition corresponding to the current chord.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mode&lt;/td&gt;&lt;td&gt;This changes the mode in the chord dictionary definition corresponding to the current chord.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;&lt;a href="#Undo-Redo"&gt;Undo/redo&lt;/a&gt; is supported within the chord bar, but note that since the bar can modify two different documents (the song and the chord dictionary), the behavior of undo/redo depends on which of the bar's drop lists has focus. If you've changed the scale or mode of a chord type, you'll be prompted to save your chord dictionary changes when you exit the application.
+
+&lt;/p&gt;&lt;p&gt;Chord bar properties have corresponding &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt; which allow them to be remotely controlled via MIDI. This is particularly useful for creating a song spontaneously (with no song open) by changing the default chord while you play. Note that the chord bar supports MIDI &lt;a href="#Learn"&gt;learn&lt;/a&gt;; while learn is enabled, you can assign a MIDI message to a chord bar property by selecting its corresponding drop list and then moving the desired MIDI control.
+
 &lt;a name="Piano"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;&lt;a name="Piano"&gt;Piano&lt;/a&gt;&lt;/h3&gt;

 &lt;p&gt;This command shows or hides the &lt;a href="#Piano_dialog"&gt;Piano dialog&lt;/a&gt;. The dialog functions as a virtual piano that lets you play ChordEase via your computer's mouse or keyboard. The dialog can also display input notes received from an external instrument. Various types of informational labels can be shown on the piano keys, some of which may help you visualize the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. Use the dialog's &lt;a href="#Piano_context_menu"&gt;context menu&lt;/a&gt; to configure the key labels.
@@ -1367,7 +1389,7 @@

 &lt;a name="Chord_Dictionary_Editor"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;&lt;a name="Chord_Dictionary_Editor"&gt;Chord Dictionary&lt;/a&gt;&lt;/h3&gt;

-&lt;p&gt;This command displays the &lt;a href="#Chord_Dictionary_dialog"&gt;Chord Dictionary dialog&lt;/a&gt;. The dialog lets you edit the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt; via a tabular interface, which is typically more convenient than using a text editor. The dialog is modeless, so the rest of the application's user interface is accessible while the dialog is open. Note that changes don't affect the current &lt;a href="#Song"&gt;song&lt;/a&gt; immediately; they're applied when you close the dialog via the OK button. To apply pending changes while the dialog is open, use the Apply button.
+&lt;/p&gt;&lt;p&gt;This command displays the &lt;a href="#Chord_Dictionary_dialog"&gt;Chord Dictionary dialog&lt;/a&gt;. The dialog lets you edit the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt; via a tabular interface, which is typically more convenient than using a text editor. The dialog is modeless, so the rest of the application's user interface is accessible while the dialog is open.

 &lt;/p&gt;&lt;h2&gt;Help&lt;/h2&gt;
@@ -1488,12 +1510,12 @@

 &lt;a name="Chord_Dictionary_dialog"&gt;&lt;h2&gt;Chord Dictionary&lt;/h2&gt;&lt;/a&gt;

-&lt;p&gt;This dialog lets you edit the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;, using a tabular interface. To display the dialog, use the &lt;span class="cmd"&gt;View/Chord Dictionary&lt;/span&gt; &lt;a href="#Chord_Dictionary_Editor"&gt;command&lt;/a&gt;. Each row defines a &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;, by associating a unique chord symbol with a scale and mode, along with other properties, as shown in the table below. All the usual &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands are supported, including unlimited undo/redo. The chord types can also be reordered by dragging and dropping one or more rows. Before editing the dictionary, it's recommended to make a backup via the dialog's &lt;span class="cmd"&gt;File/Save As&lt;/span&gt; command.
+&lt;/p&gt;&lt;p&gt;This dialog lets you edit the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;, using a tabular interface. To display the dialog, use the &lt;span class="cmd"&gt;View/Chord Dictionary&lt;/span&gt; &lt;a href="#Chord_Dictionary_Editor"&gt;command&lt;/a&gt;. Each row defines a &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;, by associating a unique chord symbol with a scale and mode, along with other properties, as shown in the table below. All the usual &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands are supported, including unlimited undo/redo. The chord types can also be reordered by dragging and dropping one or more rows.

 &lt;/p&gt;&lt;p&gt;
-
-
+
+
@@ -1502,19 +1524,17 @@

 &lt;/p&gt;&lt;p&gt;To rename a chord type, select the corresponding row and then left-click the chord name, or press &lt;span class="key"&gt;F2&lt;/span&gt;; alternatively you can select &lt;span class="cmd"&gt;Rename&lt;/span&gt; from the dialog's Edit menu or context menu. To edit a chord type's other properties, left-click the property to display a popup drop list or edit box. After making the desired change, save it by pressing &lt;span class="key"&gt;Enter&lt;/span&gt;, or by left-clicking outside of the popup control. You can also press &lt;span class="key"&gt;Tab&lt;/span&gt; or &lt;span class="key"&gt;Shift+Tab&lt;/span&gt; to save your change and then proceed to the next or previous column. To cancel an edit, press &lt;span class="key"&gt;Esc&lt;/span&gt;.

-&lt;/p&gt;&lt;p&gt;Note that changes don't affect the current &lt;a href="#Song"&gt;song&lt;/a&gt; immediately; they're applied when you close the dialog via the OK button, or by pressing &lt;span class="key"&gt;Enter&lt;/span&gt;. To apply pending changes while the dialog is open, use the Apply button. Changes are applied to a copy of the dictionary in memory. If you've modified the dictionary, you'll be prompted to save your changes to ChordDictionary.txt when you close the application.
-
-&lt;/p&gt;&lt;p&gt;To cancel your changes, use the Cancel button, or press &lt;span class="key"&gt;Esc&lt;/span&gt;. Canceling reverts the dictionary to the state it was in before the dialog was opened, regardless of whether the changes were applied. If you unintentionally discard changes, you can restore them by reopening the dialog and undoing the cancel via &lt;span class="cmd"&gt;Edit/Undo&lt;/span&gt; or &lt;span class="key"&gt;Ctrl+Z&lt;/span&gt;. Closing the dialog via the caption bar's Close button, the system menu's Close command, or by pressing &lt;span class="key"&gt;Alt+F4&lt;/span&gt; is equivalent to canceling.
-
 &lt;/p&gt;&lt;p&gt;It's often useful to define multiple symbols for a given chord type, e.g. maj7 and M7 for a major seventh chord. The additional symbols are &lt;em&gt;aliases&lt;/em&gt;. A chord type and its aliases form a group, the members of which stay synchronized with each other; any change made to the properties of one member is automatically propagated to the others. To create a new alias for a chord type, copy and paste it, and then rename the copy. To convert an existing chord type into an alias, left-click its Alias Of property, and then select the desired chord type from the drop list.

-&lt;/p&gt;&lt;p&gt;You can use any symbols you like, so long as every symbol is unique, but remember that songs are restricted to the chord symbols defined in the dictionary. If you update the dictionary while a song is open, the song is reloaded, and the reload will fail if any of the song's chord symbols are undefined.
+&lt;/p&gt;&lt;p&gt;You can use any symbols you like, so long as every symbol is unique, but remember that songs are restricted to the chord symbols defined in the dictionary. If you edit the dictionary while a song is open, and you attempt to undefine a symbol used by the song or its undo history, you will get an error message.

 &lt;/p&gt;&lt;p&gt;The chord types can be sorted via the dialog's &lt;span class="cmd"&gt;Edit/Sort&lt;/span&gt; submenu, but note that the sort commands reorder the dictionary itself, as opposed to merely changing its presentation. Consequently you should avoid using the sort commands if you've put effort into a custom ordering.

+&lt;/p&gt;&lt;p&gt;You can have multiple chord dictionaries providing different definitions for the same chord types, and seamlessly switch between dictionaries while performing; see &lt;a href="#Chord_substitution"&gt;chord substitution&lt;/a&gt; for details. When it's set up correctly, the names of your chord dictionaries appear in the dialog's &lt;span class="cmd"&gt;Subs&lt;/span&gt; menu.
+
 &lt;a name="Chord_Properties"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Chord_Properties"&gt;Chord Properties&lt;/a&gt;&lt;/h2&gt;

-&lt;p&gt;This modal dialog lets you edit the properties of an existing chord, including its duration, root, type, and bass note. First select the desired chord in the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;, and then display the dialog by selecting &lt;span class="cmd"&gt;Properties&lt;/span&gt; from the chart view's context menu. Adjust the properties as desired, and then press OK to save your changes. The dialog is identical to the &lt;a href="#Insert_Chord"&gt;Insert Chord&lt;/a&gt; dialog, except that the insert type is disabled.
+&lt;/p&gt;&lt;p&gt;This modal dialog lets you edit the properties of an existing chord, including its duration, root, type, and bass note. First select the desired chord in the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;, and then display the dialog by selecting &lt;span class="cmd"&gt;Properties&lt;/span&gt; from the chart view's context menu. Adjust the properties as desired, and then press OK to save your changes. The dialog is identical to the &lt;a href="#Insert_Chord"&gt;Insert Chord&lt;/a&gt; dialog, except that the insert type is disabled. A chord's root, type, and bass note can also be changed via the &lt;a href="#Chord_bar"&gt;Chord bar&lt;/a&gt;.

 &lt;a name="Insert_Chord"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Insert_Chord"&gt;Insert Chord&lt;/a&gt;&lt;/h2&gt;

@@ -1530,10 +1550,14 @@

 &lt;a name="MIDI_Assignments"&gt;&lt;h2&gt;MIDI Assignments&lt;/h2&gt;&lt;/a&gt;

-&lt;p&gt;This dialog lists all &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt; to which controllers are currently assigned. Assignments from the &lt;a href="#Patch"&gt;patch&lt;/a&gt; and from all the &lt;a href="#Part"&gt;parts&lt;/a&gt;, which are normally accessed separately, are merged. The resulting master list of assignments can be useful for debugging your MIDI setup. One or more assignments can be selected and deleted, via the dialog's context menu. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Assignments&lt;/span&gt;.
+&lt;/p&gt;&lt;p&gt;This dialog lists all &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt; to which controllers are currently assigned. Assignments from the &lt;a href="#Patch"&gt;patch&lt;/a&gt; and from all the &lt;a href="#Part"&gt;parts&lt;/a&gt;, which are normally accessed separately, are merged. The resulting master list of assignments can be useful for debugging your MIDI setup. Assignments can be deleted by selecting one or more rows and then choosing &lt;span class="cmd"&gt;Delete&lt;/span&gt; from the context menu, or pressing the &lt;span class="key"&gt;Delete&lt;/span&gt; key. Assignments can also be edited by selecting one or more rows and then choosing &lt;a href="#MIDI_Assignment_Properties"&gt;Properties&lt;/a&gt; from the context menu, or pressing &lt;span class="key"&gt;Alt+Enter&lt;/span&gt;. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Assignments&lt;/span&gt;.

 &lt;/p&gt;&lt;p&gt;The input to output &lt;a href="#MIDI_Note_Mappings"&gt;MIDI note mappings&lt;/a&gt; for each part are not included in this dialog, because they have their own dialog; see below.

+&lt;a name="MIDI_Assignment_Properties"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="MIDI_Assignment_Properties"&gt;Properties&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This dialog lets you edit the properties of one or more &lt;a href="#MIDI_targets"&gt;MIDI assignments&lt;/a&gt;. It's particularly useful for changing the port and/or channel of multiple MIDI assignments at once. Any changes you make in the dialog are applied to all of the selected assignments. If the selected assignments currently have different values for a given property, that property will be blank in the dialog. To display the dialog, choose &lt;span class="cmd"&gt;Properties&lt;/span&gt; from the &lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt; dialog's context menu, or press &lt;span class="key"&gt;Alt+Enter&lt;/span&gt;.
+
 &lt;a name="MIDI_Devices"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="MIDI_Devices"&gt;MIDI Devices&lt;/a&gt;&lt;/h2&gt;&lt;p&gt;This dockable bar contains two lists, one showing all available MIDI input devices, and the other showing all available MIDI output devices. Inputs are on the left, and outputs are on the right. The device indices shown in these lists are synonymous with &lt;em&gt;ports&lt;/em&gt; in ChordEase. Throughout ChordEase, input ports correspond to MIDI input devices, and output ports correspond to MIDI output devices.
@@ -1556,7 +1580,11 @@

 &lt;a name="MIDI_Note_Mappings"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;&lt;/h2&gt;

-&lt;p&gt;This dialog lists the input to output note mapping for each &lt;a href="#Part"&gt;part&lt;/a&gt;. The note mappings from all the parts, which are normally accessed separately, are merged. The resulting master list of note mappings can be useful for debugging your MIDI setup. Each row corresponds to a part. For each part, the &lt;a href="#Input_Port"&gt;input port&lt;/a&gt;, &lt;a href="#Input_Channel"&gt;input channel&lt;/a&gt;, &lt;a href="#Zone_Low"&gt;input zone&lt;/a&gt;, &lt;a href="#Output_Port"&gt;output port&lt;/a&gt;, and &lt;a href="#Output_Channel"&gt;output channel&lt;/a&gt; are displayed, along with the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Note Mappings&lt;/span&gt;.
+&lt;/p&gt;&lt;p&gt;This dialog lists the input to output note mapping for each &lt;a href="#Part"&gt;part&lt;/a&gt;. The note mappings from all the parts, which are normally accessed separately, are merged. The resulting master list of note mappings can be useful for debugging your MIDI setup. Each row corresponds to a part. For each part, the &lt;a href="#Input_Port"&gt;input port&lt;/a&gt;, &lt;a href="#Input_Channel"&gt;input channel&lt;/a&gt;, &lt;a href="#Zone_Low"&gt;input zone&lt;/a&gt;, &lt;a href="#Output_Port"&gt;output port&lt;/a&gt;, and &lt;a href="#Output_Channel"&gt;output channel&lt;/a&gt; are displayed, along with the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. These properties can be edited by selecting one or more rows and then choosing &lt;a href="#MIDI_Note_Mapping_Properties"&gt;Properties&lt;/a&gt; from the context menu, or pressing &lt;span class="key"&gt;Alt+Enter&lt;/span&gt;. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Note Mappings&lt;/span&gt;.
+
+&lt;a name="MIDI_Note_Mapping_Properties"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="MIDI_Note_Mapping_Properties"&gt;Properties&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This dialog lets you edit certain properties of one or more &lt;a href="#Part"&gt;parts&lt;/a&gt;. It's particularly useful for changing the port and/or channel settings of multiple parts at once. Any changes you make in the dialog are applied to all of the selected parts. If the selected parts currently have different values for a given property, that property will be blank in the dialog. To display the dialog, choose &lt;span class="cmd"&gt;Properties&lt;/span&gt; from the &lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt; dialog's context menu, or press &lt;span class="key"&gt;Alt+Enter&lt;/span&gt;.

 &lt;a name="MIDI_Output_bar"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;&lt;/h2&gt;

@@ -1567,6 +1595,12 @@
 &lt;p&gt;This dockable bar dynamically displays the output notes on a virtual piano keyboard. To show or hide the bar, use &lt;span class="cmd"&gt;View/Output Notes&lt;/span&gt;. The piano keyboard's orientation can be horizontal or vertical, depending on whether the bar is docked horizontally or vertically. This bar is useful for examining the behavior of the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. To monitor MIDI output messages other than notes, e.g. controllers, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt; instead.

 &lt;/p&gt;&lt;p&gt;By default, output notes are displayed for all ports and all channels, except the port and channel used by the &lt;a href="#Metronome"&gt;metronome&lt;/a&gt;. To restrict the display to a particular port and/or channel, use the port and channel submenus of the bar's context menu. The context menu also lets you to change the size of the piano keyboard, show or hide the key labels, rotate the key labels, and enable or disable the display of metronome notes.
+
+&lt;a name="Path_List"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Path_List"&gt;Path List&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;This dialog lets you enter and edit a list of file paths. To insert a path at the current selection, press the Insert button, or the &lt;span class="key"&gt;Insert&lt;/span&gt; key. A file dialog will be displayed. Navigate to the desired file, select it, and press OK. To delete a path from the list, select it and then press the Delete button, or the &lt;span class="key"&gt;Delete&lt;/span&gt; key. The list also can be reordered by selecting and dragging paths one by one. When you're done, press OK to save your changes, or Cancel to abandon them.
+
+&lt;/p&gt;&lt;p&gt;This dialog is currently used to edit the list of chord dictionary paths for &lt;a href="#Chord_substitution"&gt;chord substitution&lt;/a&gt;.

 &lt;a name="Piano_dialog"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Piano_dialog"&gt;Piano&lt;/a&gt;&lt;/h2&gt;

@@ -1666,9 +1700,22 @@
 &lt;table border="1" cellpadding="2" cellspacing="0"&gt;
 &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt;The chord symbol to define.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scale&lt;/td&gt;&lt;td&gt;The scale to associate with this chord symbol.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mode&lt;/td&gt;&lt;td&gt;The mode to associate with this chord symbol.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scale&lt;/td&gt;&lt;td&gt;The &lt;a href="#Scales"&gt;scale&lt;/a&gt; to associate with this chord symbol.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mode&lt;/td&gt;&lt;td&gt;The &lt;a href="#Modes"&gt;mode&lt;/a&gt; to associate with this chord symbol.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Comp A&lt;/td&gt;&lt;td&gt;The chord's primary spelling for &lt;a href="#Comp"&gt;comping&lt;/a&gt;, as a comma-separated list of chord tone numbers, each of which ranges from 1 to 7, e.g. 1,3,5,7. The list can contain from zero to seven tones, though triads and tetrachords are typical. Spaces can be used as separators instead of commas.
 &lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Comp B&lt;/td&gt;&lt;td&gt;The chord's secondary spelling. This &lt;a href="#Variation"&gt;variation&lt;/a&gt; typically substitutes one or more tensions for chord tones, e.g. 2,3,5,6.&lt;/td&gt;&lt;/tr&gt;

 &lt;tr&gt;&lt;td&gt;ASYM_DIMINISHED&lt;/td&gt;&lt;td&gt;C Eb F Gb Ab A B&lt;/td&gt;&lt;/tr&gt;
 &lt;/tbody&gt;&lt;/table&gt;

+&lt;a name="Modes"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Modes"&gt;Modes&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;#&lt;/th&gt;&lt;th&gt;Name&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;I&lt;/td&gt;&lt;td&gt;IONIAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;II&lt;/td&gt;&lt;td&gt;DORIAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;III&lt;/td&gt;&lt;td&gt;PHRYGIAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;IV&lt;/td&gt;&lt;td&gt;LYDIAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;V&lt;/td&gt;&lt;td&gt;MIXOLYDIAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VI&lt;/td&gt;&lt;td&gt;AEOLIAN&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;VII&lt;/td&gt;&lt;td&gt;LOCRIAN&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
+
 &lt;a name="Chord_types"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Chord_types"&gt;Chord types&lt;/a&gt;&lt;/h2&gt;

-&lt;p&gt;ChordEase can support any set of chord types. All chord symbols in a &lt;a href="#Song"&gt;song&lt;/a&gt; must be defined in the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;, which is a user-editable plain text file called ChordDictionary.txt. The chord dictionary shipped with ChordEase defines the most commonly used chord symbols, and should be adequate for most users. Advanced users may want to add new symbols, or redefine existing symbols, by associating them with different scales and modes. Before &lt;a href="#Editing_the_chord_dictionary"&gt;editing the chord dictionary&lt;/a&gt;, you should familiarize yourself with its format.
+&lt;/p&gt;&lt;p&gt;ChordEase can support any set of chord types. All chord symbols in a &lt;a href="#Song"&gt;song&lt;/a&gt; must be defined in the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;, which is a user-editable plain text file called ChordDictionary.txt. The chord dictionary shipped with ChordEase defines the most commonly used chord symbols, and should be adequate for most users. Advanced users may want to add new symbols, or redefine existing symbols, by associating them with different &lt;a href="#Scales"&gt;scales&lt;/a&gt; and &lt;a href="#Modes"&gt;modes&lt;/a&gt;. Before &lt;a href="#Editing_the_chord_dictionary"&gt;editing the chord dictionary&lt;/a&gt;, you should familiarize yourself with its format.

 &lt;a name="Chord_dictionary"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Chord_dictionary"&gt;Chord dictionary&lt;/a&gt;&lt;/h2&gt;

@@ -1681,7 +1728,7 @@
 &lt;li&gt;The two chord variations (A and B) to use for &lt;a href="#Comp"&gt;comping&lt;/a&gt;. Each variation consists of a comma-separated list of chord tone numbers, enclosed in square brackets. Valid chord tone numbers range from 1 to 7.
 

-&lt;p&gt;The names of the &lt;a href="#Scales"&gt;scales&lt;/a&gt; and modes must be upper case, with words separated by underscores. Here's a sample dictionary definition, defining the symbol maj7 as the Lydian mode of the major scale:
+&lt;/p&gt;&lt;p&gt;The names of the &lt;a href="#Scales"&gt;scales&lt;/a&gt; and &lt;a href="#Modes"&gt;modes&lt;/a&gt; must be upper case, with words separated by underscores. Here's a sample dictionary definition, defining the symbol maj7 as the Lydian mode of the major scale:

 &lt;/p&gt;&lt;p&gt;maj7 MAJOR LYDIAN [1,3,5,7] [2,3,5,6]

@@ -1698,6 +1745,22 @@
 &lt;/p&gt;&lt;p&gt;The chord dictionary normally resides in same folder as the ChordEase application, and if you're using the &lt;a href="#Installing"&gt;installed&lt;/a&gt; version of ChordEase, you may lack sufficient privileges to modify the dictionary file. This can be solved by running as administrator, but if that isn't an option, you may instead override the default dictionary, by copying ChordDictionary.txt from the application folder to your user profile. The profile folder path is typically &lt;span class="path"&gt;C:\Users\foo\AppData\Roaming\ChordEase&lt;/span&gt;, where foo is a placeholder for your user name. The copy of ChordDictionary.txt in your profile can be modified as needed, and will take precedence so long as you continue to log in as the same user.

 &lt;/p&gt;&lt;p&gt;Another option which may be more convenient is to change the location of the &lt;a href="#Application_data_folder"&gt;application data folder&lt;/a&gt; to something other than your profile, but in this case be careful to also copy ChordEasePatch.ini, otherwise you'll lose your default patch settings. Note that ChordEase only reads the chord dictionary once during initialization, so if you edit it while ChordEase is running, your changes won't take effect until you exit and restart ChordEase. All of these complications can be avoided by using the chord dictionary dialog instead of directly editing the dictionary file.
+
+&lt;a name="Chord_substitution"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Chord_substitution"&gt;Chord substitution&lt;/a&gt;&lt;/h2&gt;
+
+&lt;p&gt;Chord substitution is supported by switching between two or more chord dictionaries. A &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt; defines the set of &lt;a href="#Chord_types"&gt;chord types&lt;/a&gt; that a &lt;a href="#Song"&gt;song&lt;/a&gt; can use, by mapping each type to a &lt;a href="#Scales"&gt;scale&lt;/a&gt; and &lt;a href="#Modes"&gt;mode&lt;/a&gt;. Substituting a different dictionary alters the harmonic content of all your songs at once, by redefining their chord types. Substitution can be &lt;a href="#MIDI_targets"&gt;remotely controlled&lt;/a&gt; via MIDI, so it's possible to switch dictionaries seamlessly during a performance. For example you might have one dictionary for playing melodies and another dictionary for soloing, with a third dictionary containing unorthodox definitions for playing "out".
+
+&lt;/p&gt;&lt;p&gt;Note that for chord substitution to be effective, &lt;em&gt;all chord dictionaries must define the same chord symbols in the same order&lt;/em&gt;, otherwise switching performance will be greatly reduced, timing of notes may be disrupted, and audible glitches may result.
+
+&lt;/p&gt;&lt;p&gt;To set up basic chord substition, use the following steps:
+
+&lt;/p&gt;&lt;ol&gt;
+&lt;li&gt;Create a primary chord dictionary, by saving the current chord dictionary under a new name (e.g. "primary chord dictionary.txt") via the &lt;a href="#Chord_Dictionary_dialog"&gt;Chord Dictionary dialog&lt;/a&gt;'s &lt;span class="cmd"&gt;File/Save As&lt;/span&gt; command. The destination can be any folder you like, but the &lt;a href="#Application_data_folder"&gt;application data folder&lt;/a&gt; would be a good choice.
+&lt;/li&gt;&lt;li&gt;Create an alternate chord dictionary, by editing the definitions of one or more chord symbols. Be careful to avoid renaming or reordering the symbols themselves. When you're done, save the chord dictionary under another name (e.g. "alternate chord dictionary.txt") as explained above, ideally in the same folder as your primary dictionary.
+&lt;/li&gt;&lt;li&gt;Use the &lt;span class="cmd"&gt;Subs/Edit&lt;/span&gt; command to bring up the &lt;a href="#Path_List"&gt;Substitute Chord Dictionaries&lt;/a&gt; dialog. This dialog lets you create a list of the paths to your chord dictionaries. Use this dialog's Insert command to insert your primary chord dictionary. Then similarly insert your alternate chord dictionary. Note that the path list can be reordered via dragging. Press OK to save your changes. If you get a message warning that your chord dictionaries are incompatible, it's because you violated the requirement that they must define the same chord symbols in the same order.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;p&gt;The names of your chord dictionaries should now appear as items in the Chord Dictionary dialog's &lt;span class="cmd"&gt;Subs&lt;/span&gt; menu. To switch to a different chord dictionary, simply select its corresponding menu item. For seamless switching, it's recommended to assign a MIDI controller to the Chord Dictionary &lt;a href="#MIDI_target_list"&gt;MIDI target&lt;/a&gt;.

 &lt;a name="Song_file_format"&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;&lt;a name="Song_file_format"&gt;Song file format&lt;/a&gt;&lt;/h2&gt;

@@ -1851,6 +1914,12 @@
 Previous ChordMomentarySkip backward to previous chord
 Song PositionFaderSong position, in chords
 Start TagMomentaryStart a tag ending on the current measure
+Chord RootFaderCurrent chord's root
+Chord TypeFaderCurrent chord's type
+Chord BassFaderCurrent chord's bass note if any
+Chord ScaleFaderCurrent chord's scale
+Chord ModeFaderCurrent chord's mode
+Chord DictionaryFaderSelect substitute chord dictionary
 Part Targets
 NameTypeDescription
 Part EnableToggleEnable this part
@@ -1872,11 +1941,13 @@
 Lead Harm Static MaxFaderMaximum static harmony interval, in semitones
 Comp VoicingFaderChord voicing type
 Comp VariationFaderChord variation scheme
+Chord Resets AlternationToggleTrue if chord change resets variant alternation
 Comp Arp PeriodFaderTime between arpeggio notes, in whole notes
 Comp Arp Period QuantFaderTime between arpeggio notes, in quantized units
 Comp Arp OrderFaderArpeggio note order
 Comp Arp RepeatToggleTrue if arpeggio repeats; false for one-shot
 Comp Arp AdaptToggleAdapt arpeggio to chord changes
+Bass Lowest NoteFaderLowest bass note allowed
 Bass Slash ChordsToggleRespect slash chord bass notes
 Bass Approach LengthFaderFixed bass approach length, as fraction of whole note
 Bass Approach TriggerMomentaryTrigger bass approach to target chord
&lt;/li&gt;&lt;/dd&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Fri, 07 Aug 2015 23:41:57 -0000</pubDate><guid>https://sourceforge.net7c14a2201f1638420429823c7eb1711bfd8b1f45</guid></item><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v18
+++ v19
@@ -1,11 +1,165 @@
 &lt;h1&gt;ChordEase Help&lt;/h1&gt;
+&lt;h2&gt;Contents&lt;/h2&gt;
+
+&lt;dl&gt;
+&lt;dt&gt;Getting Started
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Introduction"&gt;Introduction&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#License"&gt;License&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Requirements"&gt;Requirements&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Installing"&gt;Installing&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Uninstalling"&gt;Uninstalling&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Getting_help"&gt;Getting help&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Concepts
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Song"&gt;Song&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Sections"&gt;Sections&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch"&gt;Patch&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part"&gt;Part&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Mapping_functions"&gt;Mapping functions&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Recording"&gt;Recording&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Patch bar
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#General"&gt;General&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Metronome"&gt;Metronome&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Sync"&gt;Sync&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_MIDI"&gt;MIDI&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Parts bar
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Input"&gt;Input&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Output"&gt;Output&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Lead"&gt;Lead&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Comp"&gt;Comp&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto"&gt;Auto&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_MIDI"&gt;MIDI&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Menus
+&lt;/dt&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;File
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#New"&gt;New&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Open"&gt;Open&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save"&gt;Save&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save_As"&gt;Save As&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Edit_Text"&gt;Edit Text&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Properties"&gt;Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Setup"&gt;Print Setup&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Preview"&gt;Print Preview&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print"&gt;Print&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Exit"&gt;Exit&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Edit
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Editing"&gt;Editing&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Undo-Redo"&gt;Undo/Redo&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Clipboard"&gt;Clipboard&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Cut"&gt;Cut&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Copy"&gt;Copy&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Paste"&gt;Paste&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert"&gt;Insert&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Delete"&gt;Delete&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Select_All"&gt;Select All&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rename"&gt;Rename&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Section
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Section_Create"&gt;Create&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Delete"&gt;Delete&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties"&gt;Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List"&gt;List&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Transpose_Selection"&gt;Transpose&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Length"&gt;Length&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options"&gt;Options&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Patch
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Patch_New"&gt;New&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Open"&gt;Open&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save"&gt;Patch&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save_As"&gt;Save As&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Transport
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Play-Stop"&gt;Play/Stop&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Pause"&gt;Pause&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rewind"&gt;Rewind&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Repeat"&gt;Repeat&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record"&gt;Record&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Start_Tag"&gt;Start Tag&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Go_To"&gt;Go To&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto_Rewind"&gt;Auto Rewind&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;MIDI
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Devices"&gt;Devices&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input"&gt;Input&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output"&gt;Output&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Learn"&gt;Learn&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Assignments"&gt;Assignments&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Note_Mappings"&gt;Note Mappings&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chase_Events"&gt;Chase Events&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Reset_All_Targets"&gt;Reset All Targets&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Panic"&gt;Panic&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;View
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Toolbar"&gt;Toolbar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Status_bar"&gt;Status bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_bar"&gt;Patch bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Parts_bar"&gt;Parts bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano"&gt;Piano&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes"&gt;Output Notes&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Threads"&gt;Threads&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player"&gt;Record Player&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_Dictionary_Editor"&gt;Chord Dictionary&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Help
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Help_topics"&gt;Help topics&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#ChordEase_on_the_Web"&gt;ChordEase on the Web&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Check_for_updates"&gt;Check for updates&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Demo"&gt;Demo&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#About"&gt;About&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dt&gt;Options
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chart"&gt;Chart&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options_Record"&gt;Record&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Other"&gt;Other&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Dialogs
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chord_Dictionary_dialog"&gt;Chord Dictionary&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_Properties"&gt;Chord Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert_Chord"&gt;Insert Chord&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Devices"&gt;MIDI Devices&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input_bar"&gt;MIDI Input&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes_bar"&gt;Output Notes&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano_dialog"&gt;Piano&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player_dialog"&gt;Record Player&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List_dialog"&gt;Section List&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties_dialog"&gt;Section Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_Properties"&gt;Song Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Loose ends
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Scales"&gt;Scales&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_types"&gt;Chord types&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_dictionary"&gt;Chord dictionary&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_file_format"&gt;Song file format&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Durations"&gt;Durations&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Duplicate_notes"&gt;Duplicate notes&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Latency"&gt;Latency&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Relative_intervals"&gt;Relative intervals&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_target_list"&gt;MIDI target list&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Shortcuts"&gt;Shortcuts&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;

 &lt;h1&gt;Getting Started&lt;/h1&gt;
 &lt;a name="Introduction"&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;/a&gt;

 &lt;p&gt;ChordEase makes it easier to play music with complicated chords. No matter what the chords are, you can play as if they were all in the key of C. You don't need to play sharps or flats, because ChordEase automatically adds them for you. Though ChordEase is intended for jazz, it could be useful for any type of music that modulates frequently. ChordEase alters your notes in &lt;a href="#Latency"&gt;real time&lt;/a&gt; in order to make them harmonically correct, while preserving their rhythm and dynamics. By delegating rapid music theory calculations to ChordEase, you gain freedom to concentrate on other aspects of musical performance, such as feel and aesthetics.

-&lt;/p&gt;&lt;p&gt;ChordEase is a translator that takes MIDI notes as input, and produces MIDI notes as output. The input notes are translated to the current chord scale, so that the output notes fit the chord progression of a &lt;a href="#Song"&gt;song&lt;/a&gt;. ChordEase supports various &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt; which determine how the translating is done. ChordEase can handle multiple translations at once, so multiple performers can play through a single instance of ChordEase, using any number of MIDI instruments. ChordEase parameters can be &lt;a href="#MIDI_targets"&gt;remotely controlled&lt;/a&gt; via MIDI for additional effects. ChordEase can also &lt;a href="#Recording"&gt;record&lt;/a&gt; its own output as MIDI data.
+&lt;/p&gt;&lt;p&gt;ChordEase is a translator that takes MIDI notes as input, and produces MIDI notes as output. The input notes are translated to the current chord scale, so that the output notes fit the chord progression of a &lt;a href="#Song"&gt;song&lt;/a&gt;. ChordEase supports various &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt; that determine how the translating is done. ChordEase can handle multiple translations at once, so multiple performers can play through a single instance of ChordEase, using any number of MIDI instruments. ChordEase parameters can be &lt;a href="#MIDI_targets"&gt;remotely controlled&lt;/a&gt; via MIDI for additional effects. ChordEase can also &lt;a href="#Recording"&gt;record&lt;/a&gt; its own output as MIDI data.

 &lt;a name="License"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="License"&gt;License&lt;/a&gt;&lt;/h2&gt;

@@ -73,13 +227,13 @@

 &lt;a name="Song"&gt;&lt;h2&gt;Song&lt;/h2&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;A song consists of a prearranged &lt;em&gt;chord progression&lt;/em&gt; (i.e. a series of chords), along with a time signature and a key signature. A song may also include optional properties such as a tempo or a transposition, and the chord progression may be separated into repeating &lt;a href="#Sections"&gt;sections&lt;/a&gt;.
+&lt;/p&gt;&lt;p&gt;A song consists of a prearranged &lt;em&gt;chord progression&lt;/em&gt; (i.e. a series of &lt;a href="#Chord_types"&gt;chords&lt;/a&gt;), along with a time signature and a key signature. A song may also include optional &lt;a href="#Song_Properties"&gt;properties&lt;/a&gt; such as a tempo or a transposition, and the chord progression may be separated into repeating &lt;a href="#Sections"&gt;sections&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;Normally a song is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt; at a specified &lt;a href="#Tempo"&gt;tempo&lt;/a&gt;, and the performer is expected to stay in sync with ChordEase. A built-in &lt;a href="#Metronome"&gt;metronome&lt;/a&gt; is provided to facilitate this. It's also possible to use ChordEase in free-time mode, in which case the performer manually steps through the song's chords, usually via a continuous controller &lt;a href="#MIDI_targets"&gt;assigned&lt;/a&gt; to the &lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt; command. Note that &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; is not supported in free-time mode.

 &lt;/p&gt;&lt;p&gt;Songs can be entered and edited using the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;, or via text editor. In the chart view, chords can be inserted, deleted, cut, copied, pasted, and renamed via standard &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands. Chords can also be edited via context menu, and reordered via dragging and dropping. The chart view is easier for beginners, but once the &lt;a href="#Song_file_format"&gt;song syntax&lt;/a&gt; is learned, &lt;a href="#Edit_Text"&gt;editing the song as text&lt;/a&gt; may be preferable. A song is stored as a plain text file, usually having the .ces file extension.

-&lt;/p&gt;&lt;p&gt;The song is the primary document type in ChordEase. The File menu operates on songs, and contains commands to create a &lt;a href="#New"&gt;new&lt;/a&gt; song, &lt;a href="#Open"&gt;open&lt;/a&gt; an existing song, &lt;a href="#Save"&gt;save&lt;/a&gt; the current song, etc. The secondary document type is the &lt;a href="#Patch"&gt;patch&lt;/a&gt;, and patches have their own menu (the Patch menu) which behaves like a second file menu. Note that ChordEase also has two &lt;a href="#Undo-Redo"&gt;undo&lt;/a&gt; histories, one for the current song and one for the current patch.
+&lt;/p&gt;&lt;p&gt;The song is the primary document type in ChordEase. The File menu operates on songs, and contains commands to create a &lt;a href="#New"&gt;new&lt;/a&gt; song, &lt;a href="#Open"&gt;open&lt;/a&gt; an existing song, &lt;a href="#Save"&gt;save&lt;/a&gt; the current song, etc. The secondary document type is the &lt;a href="#Patch"&gt;patch&lt;/a&gt;, and patches have their own menu (the Patch menu) that behaves like a second file menu. Note that ChordEase also has two &lt;a href="#Undo-Redo"&gt;undo&lt;/a&gt; histories, one for the current song and one for the current patch.

 &lt;a name="Song_position"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Song_position"&gt;Song position&lt;/a&gt;&lt;/h2&gt;

@@ -102,7 +256,7 @@

 &lt;/p&gt;&lt;p&gt;Multiple selection is supported: you can copy, cut, paste, delete, rename, or drag a range of chords. To select a single chord, left-click it. To select a range of chords, left-click the first chord in the range, and then while holding down the &lt;span class="key"&gt;Shift&lt;/span&gt; key, left-click the last chord in the range. The arrow keys move the current position, as do the &lt;span class="key"&gt;Page Up&lt;/span&gt;, &lt;span class="key"&gt;Page Down&lt;/span&gt;, &lt;span class="key"&gt;Home&lt;/span&gt;, and &lt;span class="key"&gt;End&lt;/span&gt; keys. These keys can also be used to select a range of chords, by combining them with the &lt;span class="key"&gt;Shift&lt;/span&gt; key.

-&lt;/p&gt;&lt;p&gt;The chart view has a context menu, which includes the editing commands, as well as the commands for creating and modifying &lt;a href="#Sections"&gt;sections&lt;/a&gt;. If the song is &lt;a href="#Transpose"&gt;transposed&lt;/a&gt;, the chart view displays the transposed chords. Advanced users may prefer to &lt;a href="#Edit_Text"&gt;edit songs as text&lt;/a&gt;.
+&lt;/p&gt;&lt;p&gt;The chart view has a context menu, which includes the &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands, as well as the commands for creating and modifying &lt;a href="#Sections"&gt;sections&lt;/a&gt;. If the song is &lt;a href="#Transpose"&gt;transposed&lt;/a&gt;, the chart view displays the transposed chords. Advanced users may prefer to &lt;a href="#Edit_Text"&gt;edit songs as text&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;
@@ -118,7 +272,7 @@

 &lt;/p&gt;&lt;p&gt;A section is a contiguous subset of a &lt;a href="#Song"&gt;song&lt;/a&gt; that repeats, either a specific number of times or indefinitely. Sections are useful for introductions, endings, interludes, vamps, breaks, etc. A section with a &lt;a href="#Section_Repeat"&gt;repeat count&lt;/a&gt; greater than zero loops the specified number of times, unless it's exited prematurely via the &lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt; command. A section with a repeat count of zero loops forever, or until it's exited via the Next Section command. In both the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt; and &lt;a href="#Song_file_format"&gt;song file format&lt;/a&gt;, a section is indicated by enclosing one or more chords in square brackets. A song can contain any number of sections, but sections can't overlap, and can't be nested.

-&lt;/p&gt;&lt;p&gt;The section-related commands are located on the &lt;span class="cmd"&gt;Section&lt;/span&gt; submenu of the &lt;span class="cmd"&gt;Edit&lt;/span&gt; menu. The &lt;span class="cmd"&gt;Section&lt;/span&gt; submenu is also available from the chart view's context menu. To create a new section containing the selected chords, use &lt;a href="#Section_Create"&gt;Section Create&lt;/a&gt;. To delete an existing section, use &lt;a href="#Section_Delete"&gt;Section Delete&lt;/a&gt;. To edit a section's properties, including its repeat count, use &lt;a href="#Section_Properties"&gt;Section Properties&lt;/a&gt;. To view a list of all the current sections, use &lt;a href="#Section_List"&gt;Section List&lt;/a&gt;. Advanced users may prefer to create or modify sections by &lt;a href="#Edit_Text"&gt;editing the song as text&lt;/a&gt;.
+&lt;/p&gt;&lt;p&gt;The section-related commands are located on the &lt;span class="cmd"&gt;Section&lt;/span&gt; submenu of the &lt;span class="cmd"&gt;Edit&lt;/span&gt; menu. The &lt;span class="cmd"&gt;Section&lt;/span&gt; submenu is also available from the chart view's context menu. To create a new section containing the selected chords, use &lt;a href="#Section_Create"&gt;Section Create&lt;/a&gt;. To delete an existing section, use &lt;a href="#Section_Delete"&gt;Section Delete&lt;/a&gt;. To edit a section's properties, including its repeat count, use &lt;a href="#Section_Properties"&gt;Section Properties&lt;/a&gt;. To view a list of all the current sections, use &lt;a href="#Section_List"&gt;Section List&lt;/a&gt;. Advanced users may prefer to create or modify sections by &lt;a href="#Edit_Text"&gt;editing the song as text&lt;/a&gt;. To spontaneously repeat one or more measures, use &lt;a href="#Start_Tag"&gt;tagging&lt;/a&gt; instead of sections.

 &lt;a name="Patch"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Patch"&gt;Patch&lt;/a&gt;&lt;/h2&gt;

@@ -132,7 +286,7 @@

 &lt;a name="Part"&gt;&lt;h2&gt;Part&lt;/h2&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;A &lt;em&gt;part&lt;/em&gt; specifies how input notes should be &lt;em&gt;mapped&lt;/em&gt; (i.e. translated) to output notes. A part includes many settings which can affect the mapping, e.g. &lt;a href="#Part_Input"&gt;input&lt;/a&gt; and &lt;a href="#Part_Output"&gt;output&lt;/a&gt; parameters, which &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; to use, and mapping function parameters. A &lt;a href="#Patch"&gt;patch&lt;/a&gt; can contain any number of parts. Each part has its own independent state and can be configured differently from other parts. The existing parts are shown in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;, which supports the usual &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands. The selected part's settings are edited via the tabbed pages of the &lt;a href="#Parts_bar"&gt;parts bar&lt;/a&gt;. Settings common to all parts are edited via the tabbed pages of the &lt;a href="#Patch_bar"&gt;patch bar&lt;/a&gt;.
+&lt;/p&gt;&lt;p&gt;A &lt;em&gt;part&lt;/em&gt; specifies how input notes should be &lt;em&gt;mapped&lt;/em&gt; (i.e. translated) to output notes. A part includes many settings that can affect the mapping, e.g. &lt;a href="#Part_Input"&gt;input&lt;/a&gt; and &lt;a href="#Part_Output"&gt;output&lt;/a&gt; parameters, which &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; to use, and mapping function parameters. A &lt;a href="#Patch"&gt;patch&lt;/a&gt; can contain any number of parts. Each part has its own independent state and can be configured differently from other parts. The existing parts are shown in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;, which supports the usual &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands. The selected part's settings are edited via the tabbed pages of the &lt;a href="#Parts_bar"&gt;parts bar&lt;/a&gt;. Settings common to all parts are edited via the tabbed pages of the &lt;a href="#Patch_bar"&gt;patch bar&lt;/a&gt;.

 &lt;a name="Mapping_functions"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Mapping_functions"&gt;Mapping functions&lt;/a&gt;&lt;/h2&gt;

@@ -170,7 +324,7 @@

 &lt;a name="MIDI_targets"&gt;&lt;h2&gt;MIDI targets&lt;/h2&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;Many ChordEase parameters can be changed remotely via a MIDI device, e.g. a MIDI control surface, and certain commands can also be triggered remotely. The parameters and commands that can be remotely controlled are called &lt;em&gt;MIDI targets&lt;/em&gt;. In order to remotely control a MIDI target, you must first assign a MIDI message to it. This process of assigning messages to targets is sometimes known as &lt;em&gt;MIDI mapping&lt;/em&gt;.
+&lt;/p&gt;&lt;p&gt;Many ChordEase parameters can be changed remotely via a MIDI device, e.g. a MIDI control surface, and certain commands can also be triggered remotely. The parameters and commands that can be remotely controlled are called &lt;em&gt;MIDI targets&lt;/em&gt;. For information about each target, see the &lt;a href="#MIDI_target_list"&gt;MIDI target list&lt;/a&gt;. In order to remotely control a MIDI target, you must first assign a MIDI message to it. This process of assigning messages to targets is sometimes known as &lt;em&gt;MIDI mapping&lt;/em&gt;.

 &lt;/p&gt;&lt;p&gt;MIDI assignments can be edited manually, or &lt;a href="#Learn"&gt;learned&lt;/a&gt;. Learning is usually easier. The &lt;a href="#Patch"&gt;patch&lt;/a&gt; and the &lt;a href="#Part"&gt;part&lt;/a&gt; have different MIDI targets, and they're edited in different places. To edit patch MIDI assignments, use the &lt;a href="#Patch_MIDI"&gt;patch MIDI page&lt;/a&gt;. To edit a part's MIDI assignments, use the &lt;a href="#Part_MIDI"&gt;part MIDI page&lt;/a&gt;. Each part has its own MIDI targets, so be sure the correct part is selected in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. To see a summary of the current MIDI mapping, use the &lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt; dialog. It lists all MIDI targets to which controllers are currently assigned, for the patch and all parts.

@@ -199,7 +353,7 @@

 &lt;a name="Tempo"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Tempo"&gt;Tempo&lt;/a&gt;&lt;/h2&gt;

-&lt;/p&gt;&lt;p&gt;This is the speed at which the current &lt;a href="#Song"&gt;song&lt;/a&gt; is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt;, in beats per minute (BPM). Fractional tempos are allowed. This setting also affects timing parameters that accept note durations, such as &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; and &lt;a href="#Arpeggio_Period"&gt;arpeggio period&lt;/a&gt;. This setting is the &lt;em&gt;nominal&lt;/em&gt; tempo; the actual tempo is influenced by the &lt;a href="#Tempo_Multiple"&gt;tempo multiple&lt;/a&gt; (see below) and therefore may differ from this setting. The actual tempo is displayed in the &lt;a href="#Status_bar"&gt;status bar&lt;/a&gt;. A song may optionally specify a tempo (see &lt;a href="#Song_Properties"&gt;song properties&lt;/a&gt;), in which case the song's tempo overrides the patch tempo.
+&lt;/p&gt;&lt;p&gt;This is the speed at which the current &lt;a href="#Song"&gt;song&lt;/a&gt; is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt;, in beats per minute (BPM). Fractional tempos are allowed. This setting also affects timing parameters that accept note durations, such as &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; and &lt;a href="#Arpeggio_Period"&gt;arpeggio period&lt;/a&gt;. This setting is the &lt;em&gt;nominal&lt;/em&gt; tempo; the actual tempo is influenced by the &lt;a href="#Tempo_Multiple"&gt;tempo multiple&lt;/a&gt; (see below) and therefore may differ from this setting. The actual tempo is displayed in the &lt;a href="#Status_bar"&gt;status bar&lt;/a&gt;. A song may optionally specify a tempo (see &lt;a href="#Song_Properties"&gt;song properties&lt;/a&gt;), in which case the song's tempo overrides the patch tempo. Tempo can also be specified via &lt;a href="#Tap_Tempo"&gt;tapping&lt;/a&gt;.

 &lt;a name="Tempo_Multiple"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Tempo_Multiple"&gt;Tempo Multiple&lt;/a&gt;&lt;/h2&gt;

@@ -220,6 +374,18 @@
 &lt;a name="Lead-in"&gt;&lt;h2&gt;Lead-in&lt;/h2&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This is the length of the lead-in, or count-off, in measures. If it's non-zero, the &lt;a href="#Metronome"&gt;metronome&lt;/a&gt; plays for the specified period before the &lt;a href="#Song"&gt;song&lt;/a&gt; actually starts. This allows the performer(s) to be in sync with the tempo by the time the song begins.
+
+&lt;a name="Tag_Length"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Tag_Length"&gt;Tag Length&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the length of a tag, in measures. Tagging is the spontaneous repetition of one or more measures. Note that this parameter only affects &lt;em&gt;subsequent&lt;/em&gt; tags; it has no effect on a tag that's already in progress. For more information, see the &lt;a href="#Start_Tag"&gt;Start Tag&lt;/a&gt; command.
+
+&lt;a name="Tag_Repeat"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Tag_Repeat"&gt;Tag Repeat&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the number of times to repeat a tag, or zero for indefinite repeat. Tagging is the spontaneous repetition of one or more measures. Note that this parameter only affects &lt;em&gt;subsequent&lt;/em&gt; tags; it has no effect on a tag that's already in progress. For more information, see the &lt;a href="#Start_Tag"&gt;Start Tag&lt;/a&gt; command.
+
+&lt;a name="Tap_Tempo"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Tap_Tempo"&gt;Tap Tempo&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;Tap tempo lets you specify the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; by tapping instead of numerically. To tap a tempo, repeatedly press the Tap Tempo button on the beat of the desired tempo. Alternatively you can use the &lt;span class="key"&gt;Ctrl+M&lt;/span&gt; shortcut, or a MIDI controller assigned to the Tap Tempo &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;. At least two taps are necessary to establish a tempo. Additional taps may improve the accuracy, because taps are averaged. To clear the running average and start over, wait at least two seconds. Tempos slower than 30 BPM must be entered numerically. To adjust the tempo while playing, tap once exactly on the beat, and then tap slightly ahead of the following beat to speed up, or slightly behind it to slow down. Note that if a &lt;a href="#Tempo_Multiple"&gt;tempo multiple&lt;/a&gt; is in effect (i.e. tempo multiple has any value other than one), tapping still works, but the tempo shown in the &lt;a href="#Patch_bar"&gt;patch bar&lt;/a&gt; isn't the actual tempo; the &lt;a href="#Status_bar"&gt;status bar&lt;/a&gt; shows the actual tempo, taking tempo multiple into account.

 &lt;a name="Metronome"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Metronome"&gt;Metronome&lt;/a&gt;&lt;/h2&gt;

@@ -286,7 +452,7 @@

 &lt;/p&gt;&lt;p&gt;If this setting is enabled, ChordEase expects to receive MIDI clocks and sequencer control messages from the input device specified by the &lt;a href="#Sync_input_port"&gt;From port&lt;/a&gt; setting. This is useful for synchronizing ChordEase to a device, so that the device is the master, and ChordEase is the slave. During playback, be careful to avoid touching any ChordEase controls that affect the song position or transport state, otherwise synchronization may be lost. Commands to avoid include &lt;a href="#Play-Stop"&gt;Play/Stop&lt;/a&gt;, &lt;a href="#Pause"&gt;Pause&lt;/a&gt;, &lt;a href="#Rewind"&gt;Rewind&lt;/a&gt;, &lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt;, &lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt;, &lt;a href="#Go_To"&gt;Go To&lt;/a&gt;, and the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;'s positioning shortcuts.

-&lt;/p&gt;&lt;p&gt;Enabing this setting disables the internal timer that normally drives playback. Consequently if MIDI clocks aren't received from the specified device, ChordEase will be incapable of playback, and other timer-dependent features such as &lt;a href="#Arpeggio_Period"&gt;arpeggiation&lt;/a&gt; won't work either. Note that some devices only send MIDI clocks while they're playing. If ChordEase is slaved to such a device, arpeggiation will only work during playback, so it's preferable to use a device that sends MIDI clocks all the time.
+&lt;/p&gt;&lt;p&gt;Enabling this setting disables the internal timer that normally drives playback. Consequently if MIDI clocks aren't received from the specified device, ChordEase will be incapable of playback, and other timer-dependent features such as &lt;a href="#Arpeggio_Period"&gt;arpeggiation&lt;/a&gt; won't work either. Note that some devices only send MIDI clocks while they're playing. If ChordEase is slaved to such a device, arpeggiation will only work during playback, so it's preferable to use a device that sends MIDI clocks all the time.

 &lt;/p&gt;&lt;p&gt;In addition to sending MIDI clocks, the device must also send the following sequencer control messages: Start, Stop, Continue, and Song Position. The device may have a separate setting to enable sending sequencer control messages. If necessary, use the &lt;a href="#MIDI_Input_bar"&gt;MIDI input bar&lt;/a&gt; to verify that these messages are being received.

@@ -306,7 +472,7 @@

 &lt;/p&gt;&lt;p&gt;Enabling this setting causes ChordEase to send MIDI clocks and sequencer control messages to the output device specified by the &lt;a href="#Sync_output_port"&gt;To port&lt;/a&gt; setting. This is useful for synchronizing a device to ChordEase, so that ChordEase is the master, and the device is the slave. ChordEase sends the &lt;a href="#Song_position"&gt;song position&lt;/a&gt; to the slave device, and also remotely executes the &lt;a href="#Play-Stop"&gt;play/stop&lt;/a&gt; and &lt;a href="#Pause"&gt;pause&lt;/a&gt; commands. During playback, be careful to avoid touching any controls on the slave device that affect the song position or transport state, otherwise synchronization may be lost.

-&lt;/p&gt;&lt;p&gt;Some devices automatically detect and synchronize to an external clock, but it's often necessary to explicitly configure the device to recognize an external clock. In addition to receiving MIDI clocks, the device must also support receiving the following sequencer control messages: Start, Stop, Continue, and Song Position. The device may have a separate setting to enable receiving sequencer control messages. Not all devices are capabable of synchronizing to an external clock. When in doubt, check your device's MIDI implementation chart.
+&lt;/p&gt;&lt;p&gt;Some devices automatically detect and synchronize to an external clock, but it's often necessary to explicitly configure the device to recognize an external clock. In addition to receiving MIDI clocks, the device must also support receiving the following sequencer control messages: Start, Stop, Continue, and Song Position. The device may have a separate setting to enable receiving sequencer control messages. Not all devices are capable of synchronizing to an external clock. When in doubt, check your device's MIDI implementation chart.

 &lt;/p&gt;&lt;p&gt;Note that ChordEase only supports sending MIDI clocks to a single device. To synchronize multiple devices to ChordEase, use a hardware MIDI splitter to distribute the MIDI clock from ChordEase to the devices. Avoid daisy-chaining if possible, as this may cause timing discrepancies due to &lt;a href="#Latency"&gt;latency&lt;/a&gt;.

@@ -320,7 +486,7 @@

 &lt;a name="Patch_MIDI"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Patch_MIDI"&gt;MIDI&lt;/a&gt;&lt;/h2&gt;

-&lt;/p&gt;&lt;p&gt;This page lists the patch &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. Each row corresponds to a &lt;a href="#Patch"&gt;patch&lt;/a&gt; parameter or command that can be remotely controlled via MIDI. In order to remotely control a MIDI target, you must first assign a MIDI message to it. MIDI assignments can be created by editing the items on this page, though it's usually easier to have ChordEase &lt;a href="#Learn"&gt;learn&lt;/a&gt; the assignments. This page also lets you change or delete existing MIDI assignments. &lt;a href="#Part_MIDI"&gt;Part&lt;/a&gt; MIDI targets have a similar page.
+&lt;/p&gt;&lt;p&gt;This page lists the patch &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. Each row corresponds to a &lt;a href="#Patch"&gt;patch&lt;/a&gt; parameter or command that can be remotely controlled via MIDI. In order to remotely control a MIDI target, you must first assign a MIDI message to it. MIDI assignments can be created by editing the items on this page, though it's usually easier to have ChordEase &lt;a href="#Learn"&gt;learn&lt;/a&gt; the assignments. This page also lets you change or delete existing MIDI assignments. &lt;a href="#Part_MIDI"&gt;Part&lt;/a&gt; MIDI targets have a similar page. For information about each target, see the &lt;a href="#MIDI_target_list"&gt;MIDI target list&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;To create a MIDI assignment manually, you need to know what message your MIDI device is sending, and what port and channel it's sending it on. For example, suppose you want to assign a keyboard's modulation wheel to the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; parameter, and you happen to know that the wheel sends a continuous controller message for controller number one, and that the message will be received on port zero and channel two. In this case you could make the assignment as follows:

@@ -440,7 +606,7 @@

 &lt;/p&gt;&lt;p&gt;&lt;table border="1" cellpadding="2" cellspacing="0"&gt;
 &lt;tr&gt;&lt;th&gt;Goal&lt;/th&gt;&lt;th&gt;Method&lt;/th&gt;&lt;/tr&gt;

 &lt;/table&gt;
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;
 &lt;tr&gt;&lt;td&gt;Allow&lt;/td&gt;&lt;td&gt;Black keys are allowed, and &lt;em&gt;may&lt;/em&gt; create non-scale tones, i.e. "out" notes. The uncertainty results from the fact that remapping can reduce the interval between two adjacent white keys from a whole step to a half step. In such cases the black key between them generates a duplicate note. This means that a given chromaticism may or may not generate unique notes, depending on the chord. Playing a complete chromatic scale is only consistently possible when the &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; is "Bypass".
+&lt;/td&gt;&lt;td&gt;Black keys are allowed, and &lt;em&gt;may&lt;/em&gt; create non-scale tones, i.e. "out" notes. The uncertainty results from the fact that remapping can reduce the interval between two adjacent white keys from a whole step to a half step. In such cases the black key between them generates a &lt;a href="#Duplicate_notes"&gt;duplicate note&lt;/a&gt;. This means that a given chromaticism may or may not generate unique notes, depending on the chord. Playing a complete chromatic scale is only consistently possible when the &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; is "Bypass".
 &lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Quantize&lt;/td&gt;
 &lt;td&gt;All black keys are quantized to the nearest scale tone and therefore generate duplicate notes. This may be useful on inherently sloppy instruments, e.g. MIDI guitars.
@@ -576,7 +742,7 @@

 &lt;a name="Omit_melody"&gt;&lt;h2&gt;Omit melody&lt;/h2&gt;&lt;/a&gt;

-&lt;p&gt;This setting lets you output a harmony without outputting the melody on which the harmony is based. Normally both the melody and the harmony are output. If this setting is enabled, the melody note is omitted, so that only the harmony note is output. This may be useful if you're using multiple parts to generate multiple harmony lines, as in three-part or four-part harmony. For example, suppose you have two parts harmonizing in response to the same input, one generating thirds, and the other generating fifths. By default, each part outputs a melody note and a harmony note, resulting in two copies of the melody note. This might be acceptable if the parts are sent to different instruments, but otherwise it's likely to cause undesirable acoustic artifacts such as flanging. To avoid this, you should enable omit melody for one of the parts. If you're unsure, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt; to check for duplicate notes.
+&lt;/p&gt;&lt;p&gt;This setting lets you output a harmony without outputting the melody on which the harmony is based. Normally both the melody and the harmony are output. If this setting is enabled, the melody note is omitted, so that only the harmony note is output. This may be useful if you're using multiple parts to generate multiple harmony lines, as in three-part or four-part harmony. For example, suppose you have two parts harmonizing in response to the same input, one generating thirds, and the other generating fifths. By default, each part outputs a melody note and a harmony note, resulting in two copies of the melody note. This might be acceptable if the parts are sent to different instruments, but otherwise it's likely to cause undesirable acoustic artifacts such as flanging. To avoid this, you should enable omit melody for one of the parts. If you're unsure, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt; to check for &lt;a href="#Duplicate_notes"&gt;duplicate notes&lt;/a&gt;.

 &lt;a name="Comp"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Comp"&gt;Comp&lt;/a&gt;&lt;/h2&gt;

@@ -621,8 +787,8 @@
 &lt;/p&gt;&lt;p&gt;This setting determines whether a change of chord resets the alternation state for the "A to B" and "B to A" &lt;a href="#Variation"&gt;variation schemes&lt;/a&gt;. In these schemes, successive input notes alternate the output chord between the two variations defined for the current &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;
+
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The alternation is never reset. This lets the performer create arbitrary patterns of chord variation. This option is more challenging, but also more expressive. Note that in this case, the "A to B" and "B to A" schemes are indistinguishable.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Enabled&lt;/td&gt;&lt;td&gt;The alternation is reset to a known state at the start of each new chord. This makes it easy to maintain a consistent pattern of variation.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The alternation is never reset. This lets the performer create arbitrary patterns of chord variation, by keeping track of the alternation and playing with it. This option is more challenging, but also more expressive. Note that in this case, the "A to B" and "B to A" schemes are indistinguishable.&lt;/td&gt;&lt;/tr&gt;
 &lt;/table&gt;

 &lt;a name="Arpeggio_Period"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Arpeggio_Period"&gt;Arpeggio Period&lt;/a&gt;&lt;/h2&gt;
@@ -664,11 +830,25 @@
 &lt;/p&gt;&lt;p&gt;This setting determines whether chord &lt;a href="#Arpeggio_Period"&gt;arpeggios&lt;/a&gt; are repeated.

 &lt;/p&gt;&lt;p&gt;
+
-&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The arpeggio stops when all of the chord's notes have been played, after which continuing to hold the input note has no effect.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Enabled&lt;/td&gt;&lt;td&gt;The arpeggio repeats for as long as the input note remains pressed.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The arpeggio stops when all of the chord's notes have been played, after which continuing to hold the input note has no effect.&lt;/td&gt;&lt;/tr&gt;
 &lt;/table&gt;

 &lt;/p&gt;&lt;p&gt;Arpeggio repeat can be combined with &lt;a href="#Auto_Play"&gt;auto play&lt;/a&gt;, resulting in continuous automated arpeggios. The effect is similar to a music box. It's more interesting if the &lt;a href="#Arpeggio_Order"&gt;arpeggio order&lt;/a&gt; is random.
+
+&lt;a name="Arpeggio_Adapt"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Arpeggio_Adapt"&gt;Arpeggio Adapt&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting causes arpeggios that span a chord change to &lt;em&gt;adapt&lt;/em&gt; to the change. Ordinarily an arpeggio's notes are determined solely by the chord during which it begins, and remain constant. Consequently if an ordinary arpeggio spans two chords, it may clash with the latter chord. Adaptive arpeggios avoid this potential clash. When the chord changes, any unplayed arpeggio note that's not found in the new chord is replaced with the nearest unused note from the new chord.
+
+&lt;/p&gt;&lt;p&gt;In the following example, an arpeggio is evenly split between two chords, i.e. its first two notes occur during Cmaj7 and its remaining notes occur during Dbmaj7. In the ordinary case, G and B clash with Dbmaj7, whereas in the adaptive case, they're replaced with the nearest notes of Dbmaj7's arpeggio. Notice that the adapted arpeggio spells C+(b9) rather than Cmaj7. Adaptive arpeggios combine chords, resulting in &lt;em&gt;hybrids&lt;/em&gt; which may be nonstandard and/or dissonant.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Adapt&lt;/th&gt;&lt;th&gt;Cmaj7&lt;/th&gt;&lt;th&gt;Dbmaj7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;C4 E4&lt;/td&gt;&lt;td&gt;G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;C4 E4&lt;/td&gt;&lt;td&gt;Ab4 Db5&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;Note that for adaptive arpeggios to work properly, the &lt;a href="#Fix_held_notes"&gt;fix held notes&lt;/a&gt; feature must be disabled, because otherwise it would correct the entire arpeggio, preventing hybrids. Adaptation takes &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; into account, i.e. a given &lt;a href="#Part"&gt;part&lt;/a&gt; can update its arpeggios early (or late) relative to other parts. Adaptation works best with one-shot arpeggios; a &lt;a href="#Arpeggio_Repeat"&gt;repeating&lt;/a&gt; arpeggio can only adapt during its first pass.

 &lt;a name="Bass"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Bass"&gt;Bass&lt;/a&gt;&lt;/h2&gt;

@@ -694,7 +874,7 @@

 &lt;a name="Lowest_note"&gt;&lt;h2&gt;Lowest note&lt;/h2&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;This setting determines the lowest output note the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function will generate. Output notes below this limit are shifted up as many octaves as needed to stay above the limit. This helps prevent the inadvertent playing of extremely low notes which might otherwise damage audio equipment.
+&lt;/p&gt;&lt;p&gt;This setting determines the lowest output note the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function will generate. Output notes below this limit are shifted up as many octaves as needed to stay above the limit. This helps prevent the inadvertent playing of extremely low notes that might otherwise damage audio equipment.

 &lt;/p&gt;&lt;p&gt;The setting can be used to model actual bass instruments. The default value (E1) models a typical four-string bass. Other common values are D1, C1, or B0 for a typical five-string bass. These values assume middle C is C4 per the MIDI specification, and may need to be adjusted by one or more octaves for non-compliant instruments.

@@ -753,7 +933,7 @@
 &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;&lt;/td&gt;&lt;td&gt;At each chord change boundary, the new chord's root is played once.&lt;/td&gt;&lt;/tr&gt;
 &lt;/table&gt;

-&lt;/p&gt;&lt;p&gt;ChordEase implements auto-accompaniment by sending itself an input note, using the &lt;a href="#Part"&gt;part&lt;/a&gt;'s &lt;a href="#Input_Port"&gt;input port&lt;/a&gt; and &lt;a href="#Input_Channel"&gt;input channel&lt;/a&gt;. The &lt;a href="#Window"&gt;window&lt;/a&gt; setting determines which note is sent. In effect, the part generates its own input, and thereby triggers itself. In addition to triggering itself, an auto-accompaniment part also triggers any other part having the same input port and channel. This allows layering, but it can also cause unexpected behavior. Interesting effects can be achieved by having multiple auto-accompaniment parts, but be careful to give each part a unique input channel, otherwise each part triggers all the others, resulting in spurious and/or duplicate notes.
+&lt;/p&gt;&lt;p&gt;ChordEase implements auto-accompaniment by sending itself an input note, using the &lt;a href="#Part"&gt;part&lt;/a&gt;'s &lt;a href="#Input_Port"&gt;input port&lt;/a&gt; and &lt;a href="#Input_Channel"&gt;input channel&lt;/a&gt;. The &lt;a href="#Window"&gt;window&lt;/a&gt; setting determines which note is sent. In effect, the part generates its own input, and thereby triggers itself. In addition to triggering itself, an auto-accompaniment part also triggers any other part having the same input port and channel. This allows layering, but it can also cause unexpected behavior. Interesting effects can be achieved by having multiple auto-accompaniment parts, but be careful to give each part a unique input channel, otherwise each part triggers all the others, resulting in spurious and/or &lt;a href="#Duplicate_notes"&gt;duplicate notes&lt;/a&gt;.

 &lt;a name="Auto_Play"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Auto_Play"&gt;Auto Play&lt;/a&gt;&lt;/h2&gt;

@@ -769,7 +949,7 @@

 &lt;a name="Part_MIDI"&gt;&lt;h2&gt;MIDI&lt;/h2&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;This page lists the part &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. Each row corresponds to a &lt;a href="#Part"&gt;part&lt;/a&gt; parameter or command that can be remotely controlled via MIDI. Each part has its own MIDI targets, and only the current part's targets are shown. To view the targets for a different part, select it in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. In order to remotely control a MIDI target, you must first assign a MIDI message to it. MIDI assignments can be created by editing the items on this page, though it's usually easier to have ChordEase &lt;a href="#Learn"&gt;learn&lt;/a&gt; the assignments. This page also lets you change or delete existing MIDI assignments. For additional information, see the &lt;a href="#Patch_MIDI"&gt;Patch MIDI&lt;/a&gt; page, which works similarly.
+&lt;/p&gt;&lt;p&gt;This page lists the part &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. Each row corresponds to a &lt;a href="#Part"&gt;part&lt;/a&gt; parameter or command that can be remotely controlled via MIDI. Each part has its own MIDI targets, and only the current part's targets are shown. To view the targets for a different part, select it in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. In order to remotely control a MIDI target, you must first assign a MIDI message to it. MIDI assignments can be created by editing the items on this page, though it's usually easier to have ChordEase &lt;a href="#Learn"&gt;learn&lt;/a&gt; the assignments. This page also lets you change or delete existing MIDI assignments. For additional information, see the &lt;a href="#Patch_MIDI"&gt;Patch MIDI&lt;/a&gt; page, which works similarly. For information about each target, see the &lt;a href="#MIDI_target_list"&gt;MIDI target list&lt;/a&gt;.

 &lt;h1&gt;Menus&lt;/h1&gt;
@@ -983,11 +1163,11 @@

 &lt;a name="Transpose_Selection"&gt;&lt;h3&gt;Transpose&lt;/h3&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;This command transposes the selected chords. To temporarily transpose an entire &lt;a href="#Song"&gt;song&lt;/a&gt;, use the &lt;a href="#Transpose"&gt;transpose&lt;/a&gt; setting instead. Unlike the transpose setting, which applies a global transposition to all songs without modifying them, the transpose command actually modifies one or more chords within the current song. The command displays a dialog which prompts the user to enter a transposition amount. The transposition amount is expressed in semitones, and ranges from −11 to +11. For a list of transposition amounts and their resulting intervals, see &lt;a href="#Relative_intervals"&gt;relative intervals&lt;/a&gt;.
+&lt;/p&gt;&lt;p&gt;This command transposes the selected chords. To temporarily transpose an entire &lt;a href="#Song"&gt;song&lt;/a&gt;, use the &lt;a href="#Transpose"&gt;transpose&lt;/a&gt; setting instead. Unlike the transpose setting, which applies a global transposition to all songs without modifying them, the transpose command actually modifies one or more chords within the current song. The command displays a dialog that prompts the user to enter a transposition amount. The transposition amount is expressed in semitones, and ranges from −11 to +11. For a list of transposition amounts and their resulting intervals, see &lt;a href="#Relative_intervals"&gt;relative intervals&lt;/a&gt;.

 &lt;a name="Length"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Length"&gt;Length&lt;/a&gt;&lt;/h3&gt;

-&lt;/p&gt;&lt;p&gt;This command changes the length of the selected chords. The command displays a dialog which prompts the user to enter a scaling percentage. Enter 200% to make the selection twice as long, 50% to make it half as long, etc. Note that the scaling can potentially cause rounding errors, because ChordEase uses integers to represent chord durations. If the specified scaling would cause rounding errors, a warning is displayed.
+&lt;/p&gt;&lt;p&gt;This command changes the length of the selected chords. The command displays a dialog that prompts the user to enter a scaling percentage. Enter 200% to make the selection twice as long, 50% to make it half as long, etc. Note that the scaling can potentially cause rounding errors, because ChordEase uses integers to represent chord durations. If the specified scaling would cause rounding errors, a warning is displayed.

 &lt;/p&gt;&lt;p&gt;For example, if the &lt;a href="#Song"&gt;song&lt;/a&gt; is in 4/4 time and has one chord per measure, any of its chords can be scaled by 50% without rounding errors, because each chord has a duration of 4 and half of 4 is an integer. However if the song is in 3/4, since each chord has a duration of 3 and half of 3 isn't an integer, the scaling would cause rounding errors, and consequently a warning is displayed. In this particular case the problem could be avoided by doubling the song's time signature from 3/4 to 6/8; see the discussion of time signature changes in &lt;a href="#Song_Properties"&gt;song properties&lt;/a&gt;. In some cases it may be preferable to cancel the length change, and manually edit the chord durations instead; see &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;.

@@ -1042,6 +1222,16 @@
 &lt;/p&gt;&lt;p&gt;This command tells ChordEase to stop repeating the current &lt;a href="#Sections"&gt;section&lt;/a&gt;, i.e. when the end of the current section is reached, continue to the next section instead of returning to the beginning of the current section. The command doesn't immediately affect the &lt;a href="#Song_position"&gt;song position&lt;/a&gt;, rather it effectively clears a repeat flag. It works for sections that specify a &lt;a href="#Section_Repeat"&gt;repeat count&lt;/a&gt; as well as sections that repeat indefinitely.

 &lt;/p&gt;&lt;p&gt;The command is only accepted during a repeating section, and doesn't accumulate, so once it's been given, any additional next section commands are ignored until the section advances. The command should be given as soon as possible, i.e. near the beginning of the last pass through the repeating section. If the command is received too late, the section may unexpectedly repeat again, and even if the section advances, the &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; may be incorrect. Though it's possible to give this command via the menus or &lt;a href="#Toolbar"&gt;toolbar&lt;/a&gt;, it's usually more convenient to give it via remote control, by assigning a button or foot pedal to the Next Section &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;.
+
+&lt;a name="Start_Tag"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Start_Tag"&gt;Start Tag&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command spontaneously repeats one or more measures, which is also known as &lt;em&gt;tagging&lt;/em&gt;. Tags can be impromptu, unlike &lt;a href="#Sections"&gt;sections&lt;/a&gt; which must be arranged beforehand. A tag can repeat a fixed number of times or indefinitely. A fixed repeat count is useful for endings, whereas indefinite repeat is useful for jamming on part of a &lt;a href="#Song"&gt;song&lt;/a&gt;. Tagging is only permitted while the song is &lt;a href="#Play-Stop"&gt;playing&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;A tag is specified via its last measure, its &lt;a href="#Tag_Length"&gt;length&lt;/a&gt; in measures, and its &lt;a href="#Tag_Repeat"&gt;repeat count&lt;/a&gt;. To start tagging, first adjust the length and repeat count if needed. Then issue the Start Tag command during the last of the measures you wish to repeat, using &lt;span class="cmd"&gt;Transport/Start Tag&lt;/span&gt;, &lt;span class="key"&gt;Ctrl+T&lt;/span&gt;, or a suitably &lt;a href="#MIDI_targets"&gt;assigned&lt;/a&gt; MIDI controller. It's recommended to issue the command approximately halfway through the last measure, in order to minimize the risk of tagging the wrong measures. Issuing the command too late can also cause incorrect &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;To exit a tag, use the Start Tag command again, or the &lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt; command if you prefer. Either command finishes the current pass through the tag before proceeding on to the following measure. A tag with a fixed repeat count exits automatically after the specified number of repetitions, though you can also exit it prematurely. An indefinitely repeating tag doesn't exit until you tell it to.
+
+&lt;/p&gt;&lt;p&gt;Note that a tag can't wrap around from the end of the song to the beginning. For example if the tag length is two measures, a tag can't be started until the song's second measure.

 &lt;a name="Next_Chord"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Next_Chord"&gt;Next Chord&lt;/a&gt;&lt;/h3&gt;

@@ -1134,7 +1324,7 @@

 &lt;a name="Patch_bar"&gt;&lt;h3&gt;Patch bar&lt;/h3&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;This command shows or hides the Patch bar. The patch bar lets you edit &lt;a href="#Patch"&gt;patch&lt;/a&gt; settings which are common to all &lt;a href="#Part"&gt;parts&lt;/a&gt;. The patch bar includes the following tabbed pages:
+&lt;/p&gt;&lt;p&gt;This command shows or hides the Patch bar. The patch bar lets you edit &lt;a href="#Patch"&gt;patch&lt;/a&gt; settings that are common to all &lt;a href="#Part"&gt;parts&lt;/a&gt;. The patch bar includes the following tabbed pages:

 &lt;/p&gt;&lt;p&gt;
@@ -1175,6 +1365,10 @@

 &lt;/p&gt;&lt;p&gt;This command displays the &lt;a href="#Record_Player_dialog"&gt;Record Player dialog&lt;/a&gt;. The dialog allows previously &lt;a href="#Recording"&gt;recorded&lt;/a&gt; performances to be played back, or exported as standard MIDI files.

+&lt;a name="Chord_Dictionary_Editor"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Chord_Dictionary_Editor"&gt;Chord Dictionary&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command displays the &lt;a href="#Chord_Dictionary_dialog"&gt;Chord Dictionary dialog&lt;/a&gt;. The dialog lets you edit the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt; via a tabular interface, which is typically more convenient than using a text editor. The dialog is modeless, so the rest of the application's user interface is accessible while the dialog is open. Note that changes don't affect the current &lt;a href="#Song"&gt;song&lt;/a&gt; immediately; they're applied when you close the dialog via the OK button. To apply pending changes while the dialog is open, use the Apply button.
+

 &lt;h2&gt;Help&lt;/h2&gt;

@@ -1253,6 +1447,10 @@
 &lt;li&gt;Press the Export button, change the filename if needed, and press OK to save the recording as a MIDI file.
 

+&lt;a name="Fix_duplicate_notes"&gt;&lt;h2&gt;Fix duplicate notes&lt;/h2&gt;&lt;/a&gt;
+
+&lt;p&gt;This setting determines whether &lt;a href="#Duplicate_notes"&gt;duplicate notes&lt;/a&gt; are fixed when a &lt;a href="#Recording"&gt;recording&lt;/a&gt; is exported as a MIDI file. If you need to play your MIDI files with an instrument or software synth that can't handle duplicate notes, you should enable this setting. Enabling it only affects subsequent recordings and exports. To fix duplicate notes in an &lt;em&gt;existing&lt;/em&gt; recording, first enable this setting and then reexport the recording, by opening its &lt;a href="#Record_output_files"&gt;.cemr&lt;/a&gt; file in the &lt;a href="#Record_Player_dialog"&gt;Record Player&lt;/a&gt; and using the dialog's Export button.
+
 &lt;a name="Output_folder"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Output_folder"&gt;Output folder&lt;/a&gt;&lt;/h2&gt;

 &lt;/p&gt;&lt;p&gt;This is the destination folder for recording files if &lt;a href="#Prompt_for_filename"&gt;filename prompting&lt;/a&gt; is disabled, or &lt;a href="#Always_record"&gt;continuous recording&lt;/a&gt; is enabled. By default, it's a subfolder called Recordings within the &lt;a href="#Application_data_folder"&gt;application data folder&lt;/a&gt;. To specify a different location, left-click the Custom radio button, and then either type the desired path in the edit box, or press the Browse button to display a folder dialog, navigate to the desired folder, and press OK.
@@ -1287,6 +1485,32 @@

 &lt;h1&gt;Dialogs&lt;/h1&gt;
+
+&lt;a name="Chord_Dictionary_dialog"&gt;&lt;h2&gt;Chord Dictionary&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This dialog lets you edit the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;, using a tabular interface. To display the dialog, use the &lt;span class="cmd"&gt;View/Chord Dictionary&lt;/span&gt; &lt;a href="#Chord_Dictionary_Editor"&gt;command&lt;/a&gt;. Each row defines a &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;, by associating a unique chord symbol with a scale and mode, along with other properties, as shown in the table below. All the usual &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands are supported, including unlimited undo/redo. The chord types can also be reordered by dragging and dropping one or more rows. Before editing the dictionary, it's recommended to make a backup via the dialog's &lt;span class="cmd"&gt;File/Save As&lt;/span&gt; command.
+
+&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/li&gt;&lt;table border="1" cellpadding="2" cellspacing="0"&gt;
 &lt;tr&gt;&lt;th&gt;Page&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/table&gt;
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Name&lt;/td&gt;&lt;td&gt;The chord symbol to define.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scale&lt;/td&gt;&lt;td&gt;The scale to associate with this chord symbol.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Mode&lt;/td&gt;&lt;td&gt;The mode to associate with this chord symbol.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp A&lt;/td&gt;&lt;td&gt;The chord's primary spelling for &lt;a href="#Comp"&gt;comping&lt;/a&gt;, as a comma-separated list of chord tone numbers, each of which ranges from 1 to 7, e.g. 1,3,5,7. The list can contain from zero to seven tones, though triads and tetrachords are typical. Spaces can be used as separators instead of commas.
+&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp B&lt;/td&gt;&lt;td&gt;The chord's secondary spelling. This &lt;a href="#Variation"&gt;variation&lt;/a&gt; typically substitutes one or more tensions for chord tones, e.g. 2,3,5,6.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alias Of&lt;/td&gt;&lt;td&gt;Which chord type this symbol is an alias of, or "None" if it's not an alias.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;To rename a chord type, select the corresponding row and then left-click the chord name, or press &lt;span class="key"&gt;F2&lt;/span&gt;; alternatively you can select &lt;span class="cmd"&gt;Rename&lt;/span&gt; from the dialog's Edit menu or context menu. To edit a chord type's other properties, left-click the property to display a popup drop list or edit box. After making the desired change, save it by pressing &lt;span class="key"&gt;Enter&lt;/span&gt;, or by left-clicking outside of the popup control. You can also press &lt;span class="key"&gt;Tab&lt;/span&gt; or &lt;span class="key"&gt;Shift+Tab&lt;/span&gt; to save your change and then proceed to the next or previous column. To cancel an edit, press &lt;span class="key"&gt;Esc&lt;/span&gt;.
+
+&lt;/p&gt;&lt;p&gt;Note that changes don't affect the current &lt;a href="#Song"&gt;song&lt;/a&gt; immediately; they're applied when you close the dialog via the OK button, or by pressing &lt;span class="key"&gt;Enter&lt;/span&gt;. To apply pending changes while the dialog is open, use the Apply button. Changes are applied to a copy of the dictionary in memory. If you've modified the dictionary, you'll be prompted to save your changes to ChordDictionary.txt when you close the application.
+
+&lt;/p&gt;&lt;p&gt;To cancel your changes, use the Cancel button, or press &lt;span class="key"&gt;Esc&lt;/span&gt;. Canceling reverts the dictionary to the state it was in before the dialog was opened, regardless of whether the changes were applied. If you unintentionally discard changes, you can restore them by reopening the dialog and undoing the cancel via &lt;span class="cmd"&gt;Edit/Undo&lt;/span&gt; or &lt;span class="key"&gt;Ctrl+Z&lt;/span&gt;. Closing the dialog via the caption bar's Close button, the system menu's Close command, or by pressing &lt;span class="key"&gt;Alt+F4&lt;/span&gt; is equivalent to canceling.
+
+&lt;/p&gt;&lt;p&gt;It's often useful to define multiple symbols for a given chord type, e.g. maj7 and M7 for a major seventh chord. The additional symbols are &lt;em&gt;aliases&lt;/em&gt;. A chord type and its aliases form a group, the members of which stay synchronized with each other; any change made to the properties of one member is automatically propagated to the others. To create a new alias for a chord type, copy and paste it, and then rename the copy. To convert an existing chord type into an alias, left-click its Alias Of property, and then select the desired chord type from the drop list.
+
+&lt;/p&gt;&lt;p&gt;You can use any symbols you like, so long as every symbol is unique, but remember that songs are restricted to the chord symbols defined in the dictionary. If you update the dictionary while a song is open, the song is reloaded, and the reload will fail if any of the song's chord symbols are undefined.
+
+&lt;/p&gt;&lt;p&gt;The chord types can be sorted via the dialog's &lt;span class="cmd"&gt;Edit/Sort&lt;/span&gt; submenu, but note that the sort commands reorder the dictionary itself, as opposed to merely changing its presentation. Consequently you should avoid using the sort commands if you've put effort into a custom ordering.

 &lt;a name="Chord_Properties"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Chord_Properties"&gt;Chord Properties&lt;/a&gt;&lt;/h2&gt;

@@ -1304,6 +1528,12 @@
 Insert typeWhether to insert the chord before or after the &lt;a href="#Song_position"&gt;current position&lt;/a&gt;. After is easier for entering multiple chords in a row.
 

+&lt;a name="MIDI_Assignments"&gt;&lt;h2&gt;MIDI Assignments&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This dialog lists all &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt; to which controllers are currently assigned. Assignments from the &lt;a href="#Patch"&gt;patch&lt;/a&gt; and from all the &lt;a href="#Part"&gt;parts&lt;/a&gt;, which are normally accessed separately, are merged. The resulting master list of assignments can be useful for debugging your MIDI setup. One or more assignments can be selected and deleted, via the dialog's context menu. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Assignments&lt;/span&gt;.
+
+&lt;/p&gt;&lt;p&gt;The input to output &lt;a href="#MIDI_Note_Mappings"&gt;MIDI note mappings&lt;/a&gt; for each part are not included in this dialog, because they have their own dialog; see below.
+
 &lt;a name="MIDI_Devices"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Devices"&gt;MIDI Devices&lt;/a&gt;&lt;/h2&gt;

 &lt;/p&gt;&lt;p&gt;This dockable bar contains two lists, one showing all available MIDI input devices, and the other showing all available MIDI output devices. Inputs are on the left, and outputs are on the right. The device indices shown in these lists are synonymous with &lt;em&gt;ports&lt;/em&gt; in ChordEase. Throughout ChordEase, input ports correspond to MIDI input devices, and output ports correspond to MIDI output devices.
@@ -1324,20 +1554,14 @@

 &lt;/p&gt;&lt;p&gt;To show or hide the bar, use &lt;span class="cmd"&gt;MIDI/Input&lt;/span&gt;. To display output events, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt;, which works similarly.

+&lt;a name="MIDI_Note_Mappings"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dialog lists the input to output note mapping for each &lt;a href="#Part"&gt;part&lt;/a&gt;. The note mappings from all the parts, which are normally accessed separately, are merged. The resulting master list of note mappings can be useful for debugging your MIDI setup. Each row corresponds to a part. For each part, the &lt;a href="#Input_Port"&gt;input port&lt;/a&gt;, &lt;a href="#Input_Channel"&gt;input channel&lt;/a&gt;, &lt;a href="#Zone_Low"&gt;input zone&lt;/a&gt;, &lt;a href="#Output_Port"&gt;output port&lt;/a&gt;, and &lt;a href="#Output_Channel"&gt;output channel&lt;/a&gt; are displayed, along with the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Note Mappings&lt;/span&gt;.
+
 &lt;a name="MIDI_Output_bar"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;&lt;/h2&gt;

 &lt;/p&gt;&lt;p&gt;This dockable bar displays output MIDI events in real time, which can be useful for debugging your MIDI setup. By default, the bar shows all output sent to all MIDI output devices. For event filtering and other details, see the &lt;a href="#MIDI_Input_bar"&gt;MIDI Input bar&lt;/a&gt;. To show or hide the bar, use &lt;span class="cmd"&gt;MIDI/Output&lt;/span&gt;.

-&lt;a name="MIDI_Assignments"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt;&lt;/h2&gt;
-
-&lt;/p&gt;&lt;p&gt;This dialog lists all &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt; to which controllers are currently assigned. Assignments from the &lt;a href="#Patch"&gt;patch&lt;/a&gt; and from all the &lt;a href="#Part"&gt;parts&lt;/a&gt;, which are normally accessed separately, are merged. The resulting master list of assignments can be useful for debugging your MIDI setup. One or more assignments can be selected and deleted, via the dialog's context menu. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Assignments&lt;/span&gt;.
-
-&lt;/p&gt;&lt;p&gt;The input to output &lt;a href="#MIDI_Note_Mappings"&gt;MIDI note mappings&lt;/a&gt; for each part are not included in this dialog, because they have their own dialog; see below.
-
-&lt;a name="MIDI_Note_Mappings"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;&lt;/h2&gt;
-
-&lt;/p&gt;&lt;p&gt;This dialog lists the input to output note mapping for each &lt;a href="#Part"&gt;part&lt;/a&gt;. The note mappings from all the parts, which are normally accessed separately, are merged. The resulting master list of note mappings can be useful for debugging your MIDI setup. Each row corresponds to a part. For each part, the &lt;a href="#Input_Port"&gt;input port&lt;/a&gt;, &lt;a href="#Input_Channel"&gt;input channel&lt;/a&gt;, &lt;a href="#Zone_Low"&gt;input zone&lt;/a&gt;, &lt;a href="#Output_Port"&gt;output port&lt;/a&gt;, and &lt;a href="#Output_Channel"&gt;output channel&lt;/a&gt; are displayed, along with the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Note Mappings&lt;/span&gt;.
-
 &lt;a name="Output_Notes_bar"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Output_Notes_bar"&gt;Output Notes&lt;/a&gt;&lt;/h2&gt;

 &lt;/p&gt;&lt;p&gt;This dockable bar dynamically displays the output notes on a virtual piano keyboard. To show or hide the bar, use &lt;span class="cmd"&gt;View/Output Notes&lt;/span&gt;. The piano keyboard's orientation can be horizontal or vertical, depending on whether the bar is docked horizontally or vertically. This bar is useful for examining the behavior of the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. To monitor MIDI output messages other than notes, e.g. controllers, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt; instead.
@@ -1358,11 +1582,11 @@

 &lt;a name="Start_note"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Start_note"&gt;Start note&lt;/a&gt;&lt;/h2&gt;

-&lt;/p&gt;&lt;p&gt;This drop list lets you select the virtual piano's lowest note. In combination with the &lt;a href="#Piano_size"&gt;piano size&lt;/a&gt; setting (see below), it lets you emulate the layout of any standard or nonstandard piano.
-
-&lt;a name="Piano_size"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Piano_size"&gt;Piano size&lt;/a&gt;&lt;/h2&gt;
-
-&lt;/p&gt;&lt;p&gt;This drop list lets you select the virtual piano's size, in keys. It's usually used in combination with the &lt;a href="#Start_note"&gt;Start note&lt;/a&gt; setting (see above).
+&lt;/p&gt;&lt;p&gt;This drop list lets you specify the virtual piano's lowest note. In combination with the &lt;a href="#Key_count"&gt;key count&lt;/a&gt; setting (see below), it lets you emulate the layout of any standard or nonstandard piano. Standard layouts can also be selected via the &lt;a href="#Piano_context_menu"&gt;context menu&lt;/a&gt;'s Piano Size submenu.
+
+&lt;a name="Key_count"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Key_count"&gt;Key count&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This drop list lets you specify how many keys the virtual piano should have. It's usually used in combination with the &lt;a href="#Start_note"&gt;start note&lt;/a&gt; setting (see above).

 &lt;a name="Piano_velocity"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Piano_velocity"&gt;Velocity&lt;/a&gt;&lt;/h2&gt;

@@ -1371,6 +1595,7 @@
 &lt;a name="Piano_context_menu"&gt;&lt;h2&gt;Context menu&lt;/h2&gt;&lt;/a&gt;

 &lt;/p&gt;&lt;p&gt;
+
@@ -1416,7 +1641,7 @@

 &lt;a name="Song_Properties"&gt;&lt;h2&gt;Song Properties&lt;/h2&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;This dialog lets you edit certain properties of the current &lt;a href="#Song"&gt;song&lt;/a&gt;, including its time signature and key signature. To display the dialog, use &lt;span class="cmd"&gt;File/Properties&lt;/span&gt; &lt;a href="#Properties"&gt;command&lt;/a&gt;. You can also specify optional properties such as tempo, transposition to a different key, and comments. If tempo is zero, the song is played at the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; specified by the &lt;a href="#Patch"&gt;patch&lt;/a&gt;.
+&lt;/p&gt;&lt;p&gt;This dialog lets you edit certain properties of the current &lt;a href="#Song"&gt;song&lt;/a&gt;, including its time signature and key signature. To display the dialog, use the &lt;span class="cmd"&gt;File/Properties&lt;/span&gt; &lt;a href="#Properties"&gt;command&lt;/a&gt;. You can also specify optional properties such as tempo, transposition to a different key, and comments. If tempo is zero, the song is played at the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; specified by the &lt;a href="#Patch"&gt;patch&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;If the song's time signature is changed, the chord durations are automatically scaled, in an attempt to preserve each chord's length in terms of measures. This scaling can potentially cause rounding errors, because ChordEase uses integers to represent chord durations. If applying the specified time signature to the current song would cause rounding errors, a warning is displayed. In some cases the user is offered a different but equivalent time signature that would avoid the rounding errors.

@@ -1468,7 +1693,11 @@

 &lt;a name="Editing_the_chord_dictionary"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Editing_the_chord_dictionary"&gt;Editing the chord dictionary&lt;/a&gt;&lt;/h2&gt;

-&lt;/p&gt;&lt;p&gt;The chord dictionary can be edited with an ordinary text editor such as Notepad. Note however that the chord dictionary normally resides in same folder as the ChordEase application, and if you're using the &lt;a href="#Installing"&gt;installed&lt;/a&gt; version of ChordEase, you may lack sufficient privileges to modify the dictionary. This can be solved by running as administrator, but if that isn't an option, you may instead override the default dictionary, by copying ChordDictionary.txt from the application folder to your user profile. The profile folder path is typically &lt;span class="path"&gt;C:\Users\foo\AppData\Roaming\ChordEase&lt;/span&gt;, where foo is a placeholder for your user name. The copy of ChordDictionary.txt in your profile can be modified as needed, and will take precedence so long as you continue to log in as the same user. Another option which may be more convenient is to change the location of the &lt;a href="#Application_data_folder"&gt;application data folder&lt;/a&gt; to something other than your profile, but in this case be careful to also copy ChordEasePatch.ini, otherwise you'll lose your default patch settings. Note that ChordEase only reads the chord dictionary once during initialization, so if you edit it while ChordEase is running, your changes won't take effect until you exit and restart ChordEase.
+&lt;/p&gt;&lt;p&gt;The recommended way to edit the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt; is via the &lt;a href="#Chord_Dictionary_dialog"&gt;chord dictionary dialog&lt;/a&gt;, because it provides a convenient tabular interface and restricts you to syntactically correct choices. It's also possible to edit the chord dictionary with an ordinary text editor such as Notepad, but you should familiarize yourself with the dictionary's syntax before attempting this, and you may encounter permissions problems as explained below.
+
+&lt;/p&gt;&lt;p&gt;The chord dictionary normally resides in same folder as the ChordEase application, and if you're using the &lt;a href="#Installing"&gt;installed&lt;/a&gt; version of ChordEase, you may lack sufficient privileges to modify the dictionary file. This can be solved by running as administrator, but if that isn't an option, you may instead override the default dictionary, by copying ChordDictionary.txt from the application folder to your user profile. The profile folder path is typically &lt;span class="path"&gt;C:\Users\foo\AppData\Roaming\ChordEase&lt;/span&gt;, where foo is a placeholder for your user name. The copy of ChordDictionary.txt in your profile can be modified as needed, and will take precedence so long as you continue to log in as the same user.
+
+&lt;/p&gt;&lt;p&gt;Another option which may be more convenient is to change the location of the &lt;a href="#Application_data_folder"&gt;application data folder&lt;/a&gt; to something other than your profile, but in this case be careful to also copy ChordEasePatch.ini, otherwise you'll lose your default patch settings. Note that ChordEase only reads the chord dictionary once during initialization, so if you edit it while ChordEase is running, your changes won't take effect until you exit and restart ChordEase. All of these complications can be avoided by using the chord dictionary dialog instead of directly editing the dictionary file.

 &lt;a name="Song_file_format"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Song_file_format"&gt;Song file format&lt;/a&gt;&lt;/h2&gt;

@@ -1534,11 +1763,27 @@

 &lt;/p&gt;&lt;p&gt;Durations are displayed as fractions if they can be represented using a denominator that's a reasonably small power of two, otherwise they're shown in floating-point notation. Durations can be specified very precisely, but the resulting actual durations may be considerably less precise; the achievable resolution depends on the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; and &lt;a href="#PPQ"&gt;PPQ&lt;/a&gt;.

+&lt;a name="Duplicate_notes"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Duplicate_notes"&gt;Duplicate notes&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;Duplicates notes describes a situation where multiple instances of the exact same MIDI note exist simultaneously on a single channel of an instrument. This situation can easily arise when using ChordEase, and some instruments don't handle it correctly, resulting in glitches due to notes being cut off prematurely. To determine whether an instrument handles duplicates notes correctly, use the following procedure:
+
+&lt;ol&gt;
+&lt;li&gt;Select the &lt;a href="#Lead"&gt;Lead&lt;/a&gt; mapping function.
+&lt;/li&gt;&lt;li&gt;Make sure the &lt;a href="#Non-diatonic_notes"&gt;Non-diatonic notes&lt;/a&gt; setting is "Allow".
+&lt;/li&gt;&lt;li&gt;Make sure the current scale is something other than C major.
+&lt;/li&gt;&lt;li&gt;Find a pair of adjacent keys (one white, one black) that map to the same note. The easiest way to do this is by playing the chromatic scale. If you don't find any duplicates, &lt;a href="#Transpose"&gt;transpose&lt;/a&gt; to a different key signature and try again.
+&lt;/li&gt;&lt;li&gt;Depress both keys simultaneously, and then quickly release one but not the other. If the note gets cut off, the instrument isn't handling duplicate notes correctly.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;/p&gt;&lt;p&gt;It's recommended to only use instruments that handle duplicate notes correctly. However it is possible to &lt;a href="#Fix_duplicate_notes"&gt;fix duplicate notes&lt;/a&gt; when exporting a &lt;a href="#Recording"&gt;recording&lt;/a&gt; to a MIDI file. This is useful if you need to play your MIDI files with an instrument or software synth that can't handle duplicate notes.
+
+&lt;/p&gt;&lt;p&gt;Duplicate notes are properly handled via reference counting. The instrument maintains a counter for each MIDI note, which reflects how many instances of that note currently exist. Note On commands increment the appropriate count, Note Off commands decrement it, and the note is sustained until its count drops to zero.
+
 &lt;a name="Latency"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Latency"&gt;Latency&lt;/a&gt;&lt;/h2&gt;&lt;/p&gt;&lt;p&gt;Latency is the time interval between the performer triggering a note on an instrument and hearing the audio corresponding to that note. The expected latency of a typical ChordEase setup is between 5 and 8 milliseconds. By far the largest share of this latency is incurred by the MIDI hardware protocol itself, which takes between 2 and 3 ms to send a single message. Because each note has to take a roundtrip from the instrument to the computer and then back to the instrument, the latency resulting from MIDI hardware alone is in the range of 4 to 6 ms.

-&lt;/p&gt;&lt;p&gt;Most modern MIDI interfaces use USB, and this may add an additional delay in both directions, depending the USB driver's implementation. The MIDI instrument may also introduce delay between pressing a key and sending the corresponding note on command, and between receiving a note on command and playing the corresponding audio. ChordEase also has computational overhead, but it's comparatively small and doesn't contribute significantly to latency, provided ChordEase is running on a modern multi-core CPU, with minimal competition from other applications. Here are some things you can do to reduce latency:
+&lt;/p&gt;&lt;p&gt;Most modern MIDI interfaces use USB, and this may add an additional delay in both directions, depending on the USB driver's implementation. The MIDI instrument may also introduce delay between pressing a key and sending the corresponding Note On command, and between receiving a Note On command and playing the corresponding audio. ChordEase also has computational overhead, but it's comparatively small and doesn't contribute significantly to latency, provided ChordEase is running on a modern multi-core CPU, with minimal competition from other applications. Here are some things you can do to reduce latency:

 &lt;ul&gt;
 &lt;li&gt;Use a good quality MIDI interface. PCI interfaces have the lowest latency but they're increasingly hard to find. USB MIDI interfaces vary in quality, but we've had good results with the M-Audio Uno. You may be able to improve performance by installing the manufacturer's drivers, instead of relying on Microsoft's class compliant drivers.
@@ -1583,6 +1828,64 @@
 &lt;/li&gt;&lt;/ul&gt;&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Piano Size&lt;/td&gt;&lt;td colspan="2"&gt;This submenu lets you select a standard piano size. For nonstandard sizes, use the &lt;a href="#Start_note"&gt;start note&lt;/a&gt; and &lt;a href="#Key_count"&gt;key count&lt;/a&gt; drop lists.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td rowspan="6"&gt;Key Labels&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;No labels are shown on the piano keys.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Shortcuts&lt;/td&gt;&lt;td&gt;The labels show keyboard shortcuts, i.e. the correspondence between your computer keyboard and the piano keys.&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Input Notes&lt;/td&gt;&lt;td&gt;The labels show the names of the input notes, i.e. for each key, what note is input to the &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt;. The labels are unaffected by chord changes, transposition, etc.&lt;/td&gt;&lt;/tr&gt;

 &lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;octave&lt;/td&gt;&lt;/tr&gt;
 &lt;/table&gt;

+&lt;a name="MIDI_target_list"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_target_list"&gt;MIDI target list&lt;/a&gt;&lt;/h2&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th colspan="3"&gt;Patch Targets&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Name&lt;/th&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tempo&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Tempo, in beats per minute&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tempo Multiple&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Tempo multiplier&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tap Tempo&lt;/td&gt;&lt;td&gt;Momentary&lt;/td&gt;&lt;td&gt;Set tempo via tapping&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Transpose&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Key transposition, in semitones&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead-in&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Lead-in length, in measures&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tag Length&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Length of tag, in measures&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tag Repeat&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Tag repeat count, or zero for indefinite&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Metro. Enable&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Enable metronome&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Metro. Volume&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Output volume, or -1 if none&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Play&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Play or stop song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Pause&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Pause or resume song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Rewind&lt;/td&gt;&lt;td&gt;Momentary&lt;/td&gt;&lt;td&gt;Rewind to start of song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Repeat&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Repeat song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Next Section&lt;/td&gt;&lt;td&gt;Momentary&lt;/td&gt;&lt;td&gt;Continue to next section&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Next Chord&lt;/td&gt;&lt;td&gt;Momentary&lt;/td&gt;&lt;td&gt;Skip forward to next chord&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Previous Chord&lt;/td&gt;&lt;td&gt;Momentary&lt;/td&gt;&lt;td&gt;Skip backward to previous chord&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Song Position&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Song position, in chords&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Start Tag&lt;/td&gt;&lt;td&gt;Momentary&lt;/td&gt;&lt;td&gt;Start a tag ending on the current measure&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th colspan="3"&gt;Part Targets&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;Name&lt;/th&gt;&lt;th&gt;Type&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Part Enable&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Enable this part&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Part Function&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Part mapping function&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Input Zone Low&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Lowest note of input range&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Input Zone High&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Highest note of input range&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Input Transpose&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Input transposition, in semitones&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Input Vel. Offset&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Input note velocity offset&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Input Non-Diatonic&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Handling for non-diatonic input notes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Input CC Note&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Note input via continuous controller&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Input CC Note Velocity&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Velocity of note input via continuous controller&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Output Patch&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Patch number, or -1 if none&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Output Volume&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Output volume, or -1 if none&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Output Harm. Anticipation&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Harmonic anticipation, as fraction of whole note&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Output Fix Held Notes&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Correct held notes that become non-diatonic&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead Harm Interval&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Generic harmony interval, in diatonic steps&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead Harm Omit Melody&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;True if harmonizer should omit melody note&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead Harm Static Min&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Minimum static harmony interval, in semitones&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead Harm Static Max&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Maximum static harmony interval, in semitones&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp Voicing&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Chord voicing type&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp Variation&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Chord variation scheme&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp Arp Period&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Time between arpeggio notes, in whole notes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp Arp Period Quant&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Time between arpeggio notes, in quantized units&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp Arp Order&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Arpeggio note order&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp Arp Repeat&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;True if arpeggio repeats; false for one-shot&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp Arp Adapt&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Adapt arpeggio to chord changes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass Slash Chords&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Respect slash chord bass notes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass Approach Length&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Fixed bass approach length, as fraction of whole note&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass Approach Trigger&lt;/td&gt;&lt;td&gt;Momentary&lt;/td&gt;&lt;td&gt;Trigger bass approach to target chord&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass Target Alignment&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Alignment of triggered bass approach target, in measures&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Auto Play&lt;/td&gt;&lt;td&gt;Toggle&lt;/td&gt;&lt;td&gt;Play part automatically&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Auto Window&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Start of auto-play pitch window&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Auto Velocity&lt;/td&gt;&lt;td&gt;Fader&lt;/td&gt;&lt;td&gt;Auto-play note velocity&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
 &lt;a name="Shortcuts"&gt;&lt;h2&gt;Shortcuts&lt;/h2&gt;&lt;/a&gt;

 &lt;/p&gt;&lt;p&gt;
@@ -1591,6 +1894,7 @@
 
+
@@ -1600,6 +1904,7 @@
 
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Ctrl+E&lt;/td&gt;&lt;td&gt;Edit Song Text&lt;/td&gt;&lt;td&gt;Edit the current song as text&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+G&lt;/td&gt;&lt;td&gt;Go To&lt;/td&gt;&lt;td&gt;Jump to specified song position&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+L&lt;/td&gt;&lt;td&gt;MIDI Learn&lt;/td&gt;&lt;td&gt;Learn MIDI target assignments&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+M&lt;/td&gt;&lt;td&gt;Tap Tempo&lt;/td&gt;&lt;td&gt;Set tempo via tapping&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+N&lt;/td&gt;&lt;td&gt;New&lt;/td&gt;&lt;td&gt;Create a new song&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+Shift+N&lt;/td&gt;&lt;td&gt;New Patch&lt;/td&gt;&lt;td&gt;Create a new patch&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+O&lt;/td&gt;&lt;td&gt;Open&lt;/td&gt;&lt;td&gt;Open an existing song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+R&lt;/td&gt;&lt;td&gt;Record&lt;/td&gt;&lt;td&gt;Record performance&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+S&lt;/td&gt;&lt;td&gt;Save&lt;/td&gt;&lt;td&gt;Save the current song&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+Shift+S&lt;/td&gt;&lt;td&gt;Save&lt;/td&gt;&lt;td&gt;Save the current patch&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+T&lt;/td&gt;&lt;td&gt;Start Tag&lt;/td&gt;&lt;td&gt;Start a tag ending on the current measure&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+V&lt;/td&gt;&lt;td&gt;Paste&lt;/td&gt;&lt;td&gt;Insert Clipboard contents&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Ctrl+Backspace&lt;/td&gt;&lt;td&gt;Repeat&lt;/td&gt;&lt;td&gt;Repeat song&lt;/td&gt;&lt;/tr&gt;
 &lt;tr&gt;&lt;td&gt;Alt+Backspace&lt;/td&gt;&lt;td&gt;Undo&lt;/td&gt;&lt;td&gt;Undo the last action&lt;/td&gt;&lt;/tr&gt;

&lt;/table&gt;&lt;/p&gt;&lt;/pre&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Thu, 28 May 2015 16:36:48 -0000</pubDate><guid>https://sourceforge.netecd62d8d599edfa191b5d8cffd5afdf9f163dd53</guid></item><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v17
+++ v18
@@ -1,4 +1,5 @@
 &lt;h1&gt;ChordEase Help&lt;/h1&gt;
+
 &lt;h1&gt;Getting Started&lt;/h1&gt;
 &lt;a name="Introduction"&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;/a&gt;

@@ -175,7 +176,19 @@

 &lt;p&gt;When a parameter is changed remotely, the corresponding control in the user interface is updated. However this update is only apparent if that control's parent page is visible. ChordEase can automatically show the appropriate page; see &lt;a href="#Chase_Events"&gt;Chase Events&lt;/a&gt;.

-&lt;/p&gt;&lt;p&gt;Note that the same MIDI message can be assigned to multiple targets. This is occasionally useful, but it can cause confusion. If you assign a message to a target, and then assign the same message to a different target, it now controls both targets. If that's undesirable, you must manually delete the unwanted assignment. This can be accomplished by right-clicking the corresponding target's row in the appropriate MIDI page, and choosing &lt;span class="cmd"&gt;Reset&lt;/span&gt; in the context menu. It can also be done via the MIDI Assignments dialog, by selecting one or more rows and choosing &lt;span class="cmd"&gt;Delete&lt;/span&gt; in the context menu. To delete all MIDI assignments at once, use the &lt;a href="#Reset_All_Targets"&gt;Reset All Targets&lt;/a&gt; command.
+&lt;/p&gt;&lt;p&gt;An assignment can be deleted by right-clicking the corresponding target's row in the appropriate &lt;a href="#Patch_MIDI"&gt;MIDI page&lt;/a&gt;, and choosing &lt;span class="cmd"&gt;Reset&lt;/span&gt; in the context menu. Assignments can also be deleted via the MIDI Assignments dialog, by selecting one or more rows and choosing &lt;span class="cmd"&gt;Delete&lt;/span&gt; in the context menu. To delete all MIDI assignments at once, use the &lt;a href="#Reset_All_Targets"&gt;Reset All Targets&lt;/a&gt; command.
+
+&lt;a name="Shared_assignments"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Shared_assignments"&gt;Shared assignments&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;A MIDI message can be assigned to multiple targets at once. This is known as a &lt;em&gt;shared assignment&lt;/em&gt;, and while it's occasionally useful, it can also cause confusion. If you assign a message to a target, and then assign the same message to a different target, it now controls both targets. If that's undesirable, you must manually delete the unwanted assignment, using one of the methods described above. Shared assignments are indicated in the &lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt; dialog, via the "Shared" column.
+
+&lt;/p&gt;&lt;p&gt;If you attempt to create a shared assignment, whether manually or via &lt;a href="#Learn"&gt;learn&lt;/a&gt;, a warning dialog is displayed. The dialog asks if you want to remove the previous assignments, and lists the target(s) to which the message is already assigned. The possible responses are as follows:
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;The message's previous assignments are removed, and the message is then reassigned to the new target. This is the default behavior.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;The message is assigned to the new target, without removing the message's previous assignments. This results in a shared assignment, i.e. the message controls multiple targets.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Cancel&lt;/td&gt;&lt;td&gt;The current assignment is canceled, leaving the previous assignments unchanged.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

 &lt;h1&gt;Patch bar&lt;/h1&gt;
@@ -307,7 +320,7 @@

 &lt;a name="Patch_MIDI"&gt;&lt;h2&gt;MIDI&lt;/h2&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;This page lists the patch &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. Each row corresponds to a &lt;a href="#Patch"&gt;patch&lt;/a&gt; parameter or command that can be remotely controlled via MIDI. In order to remotely control a MIDI target, you must first assign a MIDI message to it. MIDI assignments can be created by editing the items on this page, though it's usually easier to have ChordEase &lt;a href="#Learn"&gt;learn&lt;/a&gt; the assignments. This page also lets you change or delete existing MIDI assignments.
+&lt;/p&gt;&lt;p&gt;This page lists the patch &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. Each row corresponds to a &lt;a href="#Patch"&gt;patch&lt;/a&gt; parameter or command that can be remotely controlled via MIDI. In order to remotely control a MIDI target, you must first assign a MIDI message to it. MIDI assignments can be created by editing the items on this page, though it's usually easier to have ChordEase &lt;a href="#Learn"&gt;learn&lt;/a&gt; the assignments. This page also lets you change or delete existing MIDI assignments. &lt;a href="#Part_MIDI"&gt;Part&lt;/a&gt; MIDI targets have a similar page.

 &lt;/p&gt;&lt;p&gt;To create a MIDI assignment manually, you need to know what message your MIDI device is sending, and what port and channel it's sending it on. For example, suppose you want to assign a keyboard's modulation wheel to the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; parameter, and you happen to know that the wheel sends a continuous controller message for controller number one, and that the message will be received on port zero and channel two. In this case you could make the assignment as follows:

@@ -339,7 +352,7 @@

 &lt;/p&gt;&lt;p&gt;For example, suppose you've assigned a MIDI message to the &lt;a href="#Transpose"&gt;Transpose&lt;/a&gt; parameter, which ranges from 0 to 11. By default, your MIDI control covers this entire range, i.e. 0 maps to 0, and 127 maps to 11. Let's say you want your MIDI control to cover only the middle of this range. In the Transpose row, set Start to 0.25, and End to 0.75. Now 0 maps to 3, and 127 maps to 8. Or suppose you want your control to transpose up or down a tritone, with zero in the middle. Set Start to −0.5, and End to 0.5. Now 0 maps to −6, and 127 maps to 6.

-&lt;/p&gt;&lt;p&gt;The normalized range can be reversed, i.e. Start can be greater than End, in which case the target parameter moves backwards. Since the same MIDI message can be assigned to multiple targets, it's possible to set up a crossfader. For example, suppose you assign a controller to the output volume of two different parts, and then for one of the parts, reverse the normalized range, so that Start is 1 and End is 0. Moving the assigned control now changes both output volumes, but in opposite directions. This could be useful if you're layering two parts, and want a single control that adjusts the mix between them.
+&lt;/p&gt;&lt;p&gt;The normalized range can be reversed, i.e. Start can be greater than End, in which case the target parameter moves backwards. Since a MIDI message can be assigned to &lt;a href="#Shared_assignments"&gt;multiple targets&lt;/a&gt;, it's possible to set up a crossfader. For example, suppose you assign a controller to the output volume of two different parts, and then for one of the parts, reverse the normalized range, so that Start is 1 and End is 0. Moving the assigned control now changes both output volumes, but in opposite directions. This could be useful if you're layering two parts, and want a single control that adjusts the mix between them.

 &lt;h1&gt;Parts bar&lt;/h1&gt;
@@ -1084,7 +1097,7 @@
 &lt;li&gt;Disable learn mode. The green highlight disappears.
 

-&lt;p&gt;If you're making multiple assignments, it's not necessary to enable and disable learn mode each time. Instead you can enable it once, learn the assignments, and then disable it. Be careful to always disable learn mode when you're done assigning, to avoid inadvertently creating spurious assignments. Each part has its own MIDI targets, so before learning part assignments, make sure the appropriate part is selected in the parts list. Note that the same MIDI message can be assigned to multiple targets.
+&lt;/p&gt;&lt;p&gt;If you're making multiple assignments, it's not necessary to enable and disable learn mode each time. Instead you can enable it once, learn the assignments, and then disable it. Be careful to always disable learn mode when you're done assigning, to avoid inadvertently creating spurious assignments. Each part has its own MIDI targets, so before learning part assignments, make sure the appropriate part is selected in the parts list. Note that a MIDI message can be assigned to &lt;a href="#Shared_assignments"&gt;multiple targets&lt;/a&gt;.

 &lt;/p&gt;&lt;p&gt;The part's input port and channel can also be learned, even though they don't appear in the list of part MIDI targets; for details, see &lt;a href="#Input_Port"&gt;input port&lt;/a&gt;.

&lt;/p&gt;&lt;/li&gt;&lt;/p&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Sat, 14 Mar 2015 14:32:00 -0000</pubDate><guid>https://sourceforge.net994f1d604de225d37bcda9ea804e29deed563915</guid></item><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v16
+++ v17
@@ -1,154 +1,4 @@
 &lt;h1&gt;ChordEase Help&lt;/h1&gt;
-&lt;h2&gt;Contents&lt;/h2&gt;
-
-&lt;dl&gt;
-&lt;dt&gt;Getting Started
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Introduction"&gt;Introduction&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#License"&gt;License&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Requirements"&gt;Requirements&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Installing"&gt;Installing&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Uninstalling"&gt;Uninstalling&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Getting_help"&gt;Getting help&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Concepts
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Song"&gt;Song&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Sections"&gt;Sections&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch"&gt;Patch&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part"&gt;Part&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Mapping_functions"&gt;Mapping functions&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Recording"&gt;Recording&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Patch bar
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#General"&gt;General&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Metronome"&gt;Metronome&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Sync"&gt;Sync&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_MIDI"&gt;MIDI&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Parts bar
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Input"&gt;Input&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Output"&gt;Output&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Lead"&gt;Lead&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Comp"&gt;Comp&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto"&gt;Auto&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_MIDI"&gt;MIDI&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Menus
-&lt;/dt&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;File
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#New"&gt;New&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Open"&gt;Open&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save"&gt;Save&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save_As"&gt;Save As&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Edit_Text"&gt;Edit Text&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Properties"&gt;Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Setup"&gt;Print Setup&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Preview"&gt;Print Preview&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print"&gt;Print&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Exit"&gt;Exit&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Edit
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Editing"&gt;Editing&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Undo-Redo"&gt;Undo/Redo&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Clipboard"&gt;Clipboard&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Cut"&gt;Cut&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Copy"&gt;Copy&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Paste"&gt;Paste&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert"&gt;Insert&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Delete"&gt;Delete&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Select_All"&gt;Select All&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rename"&gt;Rename&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Section
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Section_Create"&gt;Create&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Delete"&gt;Delete&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties"&gt;Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List"&gt;List&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Transpose_Selection"&gt;Transpose&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Length"&gt;Length&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options"&gt;Options&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Patch
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Patch_New"&gt;New&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Open"&gt;Open&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save"&gt;Patch&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save_As"&gt;Save As&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Transport
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Play-Stop"&gt;Play/Stop&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Pause"&gt;Pause&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rewind"&gt;Rewind&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Repeat"&gt;Repeat&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record"&gt;Record&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Go_To"&gt;Go To&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto_Rewind"&gt;Auto Rewind&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;MIDI
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Devices"&gt;Devices&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input"&gt;Input&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output"&gt;Output&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Learn"&gt;Learn&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Assignments"&gt;Assignments&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Note_Mappings"&gt;Note Mappings&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chase_Events"&gt;Chase Events&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Reset_All_Targets"&gt;Reset All Targets&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Panic"&gt;Panic&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;View
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Toolbar"&gt;Toolbar&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Status_bar"&gt;Status bar&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_bar"&gt;Patch bar&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Parts_bar"&gt;Parts bar&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano"&gt;Piano&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes"&gt;Output Notes&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Threads"&gt;Threads&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player"&gt;Record Player&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Help
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Help_topics"&gt;Help topics&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#ChordEase_on_the_Web"&gt;ChordEase on the Web&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Check_for_updates"&gt;Check for updates&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Demo"&gt;Demo&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#About"&gt;About&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dt&gt;Options
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chart"&gt;Chart&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options_Record"&gt;Record&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Other"&gt;Other&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Dialogs
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chord_Properties"&gt;Chord Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert_Chord"&gt;Insert Chord&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Devices"&gt;MIDI Devices&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input_bar"&gt;MIDI Input&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes_bar"&gt;Output Notes&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano_dialog"&gt;Piano&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player_dialog"&gt;Record Player&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List_dialog"&gt;Section List&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties_dialog"&gt;Section Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_Properties"&gt;Song Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Loose ends
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Scales"&gt;Scales&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_types"&gt;Chord types&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_dictionary"&gt;Chord dictionary&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_file_format"&gt;Song file format&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Durations"&gt;Durations&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Latency"&gt;Latency&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Relative_intervals"&gt;Relative intervals&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Shortcuts"&gt;Shortcuts&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-
 &lt;h1&gt;Getting Started&lt;/h1&gt;
 &lt;a name="Introduction"&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;/a&gt;

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Tue, 21 Oct 2014 19:13:28 -0000</pubDate><guid>https://sourceforge.net637f95450207115c435de7adad8847200888d47e</guid></item><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v15
+++ v16
@@ -1,3 +1,154 @@
+&lt;h1&gt;ChordEase Help&lt;/h1&gt;
+&lt;h2&gt;Contents&lt;/h2&gt;
+
+&lt;dl&gt;
+&lt;dt&gt;Getting Started
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Introduction"&gt;Introduction&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#License"&gt;License&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Requirements"&gt;Requirements&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Installing"&gt;Installing&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Uninstalling"&gt;Uninstalling&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Getting_help"&gt;Getting help&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Concepts
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Song"&gt;Song&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Sections"&gt;Sections&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch"&gt;Patch&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part"&gt;Part&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Mapping_functions"&gt;Mapping functions&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Recording"&gt;Recording&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Patch bar
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#General"&gt;General&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Metronome"&gt;Metronome&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Sync"&gt;Sync&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_MIDI"&gt;MIDI&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Parts bar
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Input"&gt;Input&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Output"&gt;Output&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Lead"&gt;Lead&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Comp"&gt;Comp&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto"&gt;Auto&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_MIDI"&gt;MIDI&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Menus
+&lt;/dt&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;File
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#New"&gt;New&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Open"&gt;Open&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save"&gt;Save&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save_As"&gt;Save As&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Edit_Text"&gt;Edit Text&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Properties"&gt;Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Setup"&gt;Print Setup&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Preview"&gt;Print Preview&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print"&gt;Print&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Exit"&gt;Exit&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Edit
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Editing"&gt;Editing&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Undo-Redo"&gt;Undo/Redo&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Clipboard"&gt;Clipboard&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Cut"&gt;Cut&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Copy"&gt;Copy&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Paste"&gt;Paste&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert"&gt;Insert&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Delete"&gt;Delete&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Select_All"&gt;Select All&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rename"&gt;Rename&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Section
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Section_Create"&gt;Create&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Delete"&gt;Delete&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties"&gt;Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List"&gt;List&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Transpose_Selection"&gt;Transpose&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Length"&gt;Length&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options"&gt;Options&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Patch
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Patch_New"&gt;New&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Open"&gt;Open&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save"&gt;Patch&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save_As"&gt;Save As&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Transport
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Play-Stop"&gt;Play/Stop&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Pause"&gt;Pause&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rewind"&gt;Rewind&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Repeat"&gt;Repeat&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record"&gt;Record&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Go_To"&gt;Go To&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto_Rewind"&gt;Auto Rewind&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;MIDI
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Devices"&gt;Devices&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input"&gt;Input&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output"&gt;Output&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Learn"&gt;Learn&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Assignments"&gt;Assignments&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Note_Mappings"&gt;Note Mappings&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chase_Events"&gt;Chase Events&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Reset_All_Targets"&gt;Reset All Targets&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Panic"&gt;Panic&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;View
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Toolbar"&gt;Toolbar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Status_bar"&gt;Status bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_bar"&gt;Patch bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Parts_bar"&gt;Parts bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano"&gt;Piano&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes"&gt;Output Notes&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Threads"&gt;Threads&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player"&gt;Record Player&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Help
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Help_topics"&gt;Help topics&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#ChordEase_on_the_Web"&gt;ChordEase on the Web&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Check_for_updates"&gt;Check for updates&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Demo"&gt;Demo&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#About"&gt;About&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dt&gt;Options
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chart"&gt;Chart&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options_Record"&gt;Record&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Other"&gt;Other&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Dialogs
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chord_Properties"&gt;Chord Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert_Chord"&gt;Insert Chord&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Devices"&gt;MIDI Devices&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input_bar"&gt;MIDI Input&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes_bar"&gt;Output Notes&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano_dialog"&gt;Piano&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player_dialog"&gt;Record Player&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List_dialog"&gt;Section List&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties_dialog"&gt;Section Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_Properties"&gt;Song Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Loose ends
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Scales"&gt;Scales&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_types"&gt;Chord types&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_dictionary"&gt;Chord dictionary&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_file_format"&gt;Song file format&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Durations"&gt;Durations&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Latency"&gt;Latency&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Relative_intervals"&gt;Relative intervals&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Shortcuts"&gt;Shortcuts&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+
 &lt;h1&gt;Getting Started&lt;/h1&gt;
 &lt;a name="Introduction"&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;/a&gt;

@@ -197,11 +348,11 @@

 &lt;a name="Transpose"&gt;&lt;h2&gt;Transpose&lt;/h2&gt;&lt;/a&gt;

-&lt;p&gt;This is the amount to transpose the current &lt;a href="#Song"&gt;song&lt;/a&gt; by, in semitones. The amount may be positive or negative. If it's zero, the song is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt; in its original key. This setting is automatically synchronized with the &lt;a href="#Key"&gt;key&lt;/a&gt; setting (see above). Transposition can be accomplished by either method. The transpose setting is useful for transposing by an interval, whereas the key setting is useful when the desired key is known. Note that it's possible to transpose during a performance, e.g. &lt;a href="#MIDI_targets"&gt;remotely&lt;/a&gt; via a MIDI controller. A song may optionally specify a transposition (see &lt;a href="#Song_Properties"&gt;song properties&lt;/a&gt;), in which case the song's transposition overrides the patch transposition.
+&lt;/p&gt;&lt;p&gt;This is the amount to transpose the current &lt;a href="#Song"&gt;song&lt;/a&gt; by, in semitones. The amount may be positive or negative. If it's zero, the song is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt; in its original key. This setting is automatically synchronized with the &lt;a href="#Key"&gt;key&lt;/a&gt; setting (see above). Transposition can be accomplished by either method. The transpose setting is useful for transposing by an interval, whereas the key setting is useful when the desired key is known. Note that it's possible to transpose during a performance, e.g. &lt;a href="#MIDI_targets"&gt;remotely&lt;/a&gt; via a MIDI controller. A song may optionally specify a transposition (see &lt;a href="#Song_Properties"&gt;song properties&lt;/a&gt;), in which case the song's transposition overrides the patch transposition. To permanently transpose one or more chords within the current song, use the &lt;a href="#Transpose_Selection"&gt;Edit/Transpose&lt;/a&gt; command instead. For a list of transposition amounts and their resulting intervals, see &lt;a href="#Relative_intervals"&gt;relative intervals&lt;/a&gt;.

 &lt;a name="PPQ"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="PPQ"&gt;PPQ&lt;/a&gt;&lt;/h2&gt;

-&lt;/p&gt;&lt;p&gt;This is the time resolution, in pulses per quarter note. It affects all time-related functions. Higher PPQ values increase the accuracy of note durations and timing parameters such as &lt;a href="#Arpeggio_Period"&gt;arpeggio period&lt;/a&gt;, but at the cost of decreasing the granularity of the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; setting. Large PPQ values will reduce the number of available tempos, particularly faster tempos, and may cause the error message "Can't create timer." Though a wide range of PPQ values are permitted, values greater than 48 are not recommended. The default PPQ is 24.
+&lt;/p&gt;&lt;p&gt;This is the time resolution, in pulses per quarter note. It affects all time-related functions. Higher PPQ values increase the accuracy of note durations and timing parameters such as &lt;a href="#Arpeggio_Period"&gt;arpeggio period&lt;/a&gt;, but at the cost of decreasing the granularity of the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; setting. Large PPQ values will reduce the number of available tempos, particularly faster tempos, and may cause the error message "Can't create timer." Though a wide range of PPQ values are permitted, values greater than 48 are not recommended. The default PPQ is 24. Note that if &lt;a href="#Sync_to_MIDI_clock"&gt;Sync to MIDI clock&lt;/a&gt; is enabled, PPQ is restricted to 24 and can't be edited.

 &lt;a name="Lead-in"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Lead-in"&gt;Lead-in&lt;/a&gt;&lt;/h2&gt;

@@ -252,6 +403,57 @@
 &lt;a name="Use_same_note"&gt;&lt;h2&gt;Use same note&lt;/h2&gt;&lt;/a&gt;

 &lt;/p&gt;&lt;p&gt;If this setting is enabled, the same MIDI note is used for both normal and accented metronome beats, in which case they must have different velocities to be distinguishable.
+
+&lt;a name="Metronome_device_name"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Metronome_device_name"&gt;Device name&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the name of the MIDI output device to which metronome notes will be sent. To change the output device, edit the &lt;a href="#Metronome_Port"&gt;metronome port&lt;/a&gt;.
+
+&lt;a name="Sync"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Sync"&gt;Sync&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This &lt;a href="#Patch"&gt;patch&lt;/a&gt; page contains settings related to synchronizing ChordEase with external devices. Timing synchronization is implemented via MIDI clock messages, combined with the Start, Stop, Continue, and Song Position MIDI messages. ChordEase can be a slave or a master.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;To make ChordEase a slave:&lt;/td&gt;&lt;td&gt;Enable &lt;a href="#Sync_to_MIDI_clock"&gt;Sync to MIDI clock&lt;/a&gt;, and set the &lt;a href="#Sync_input_port"&gt;From port&lt;/a&gt; to the input device from which ChordEase should receive synchronization messages.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;To make ChordEase a master:&lt;/td&gt;&lt;td&gt;Enable &lt;a href="#Output_MIDI_clock"&gt;Output MIDI clock&lt;/a&gt;, and set the &lt;a href="#Sync_output_port"&gt;To port&lt;/a&gt; to the output device to which ChordEase should send synchronization messages.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase can be both slave and master simultaneously, i.e. it can synchronize to clocks from a master device while also sending clocks to a slave device. However since daisy-chaining increases &lt;a href="#Latency"&gt;latency&lt;/a&gt;, it's preferable to route the master clock to all slaves in parallel, via a hardware MIDI splitter.
+
+&lt;a name="Sync_to_MIDI_clock"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Sync_to_MIDI_clock"&gt;Sync to MIDI clock&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;If this setting is enabled, ChordEase expects to receive MIDI clocks and sequencer control messages from the input device specified by the &lt;a href="#Sync_input_port"&gt;From port&lt;/a&gt; setting. This is useful for synchronizing ChordEase to a device, so that the device is the master, and ChordEase is the slave. During playback, be careful to avoid touching any ChordEase controls that affect the song position or transport state, otherwise synchronization may be lost. Commands to avoid include &lt;a href="#Play-Stop"&gt;Play/Stop&lt;/a&gt;, &lt;a href="#Pause"&gt;Pause&lt;/a&gt;, &lt;a href="#Rewind"&gt;Rewind&lt;/a&gt;, &lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt;, &lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt;, &lt;a href="#Go_To"&gt;Go To&lt;/a&gt;, and the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;'s positioning shortcuts.
+
+&lt;/p&gt;&lt;p&gt;Enabing this setting disables the internal timer that normally drives playback. Consequently if MIDI clocks aren't received from the specified device, ChordEase will be incapable of playback, and other timer-dependent features such as &lt;a href="#Arpeggio_Period"&gt;arpeggiation&lt;/a&gt; won't work either. Note that some devices only send MIDI clocks while they're playing. If ChordEase is slaved to such a device, arpeggiation will only work during playback, so it's preferable to use a device that sends MIDI clocks all the time.
+
+&lt;/p&gt;&lt;p&gt;In addition to sending MIDI clocks, the device must also send the following sequencer control messages: Start, Stop, Continue, and Song Position. The device may have a separate setting to enable sending sequencer control messages. If necessary, use the &lt;a href="#MIDI_Input_bar"&gt;MIDI input bar&lt;/a&gt; to verify that these messages are being received.
+
+&lt;/p&gt;&lt;p&gt;ChordEase must use a &lt;a href="#PPQ"&gt;PPQ&lt;/a&gt; of 24 in order to synchronize to external MIDI clocks. This is because MIDI clocks have a fixed PPQ of 24, and ChordEase isn't capable of interpolating between them. If sync is enabled and the PPQ isn't already 24, ChordEase automatically changes it to 24 after displaying a warning. This may affect the precision of various &lt;a href="#Durations"&gt;durations&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;While ChordEase is slaved to an external device, tempo is entirely controlled by the external device. To indicate this, the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; and &lt;a href="#Tempo_Multiple"&gt;tempo multiple&lt;/a&gt; controls are disabled, and the &lt;a href="#Status_bar"&gt;status bar&lt;/a&gt; displays "SYNC" instead of the current tempo.
+
+&lt;a name="Sync_input_port"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Sync_input_port"&gt;From port&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the device index of the MIDI input device from which ChordEase expects to receive synchronization messages if &lt;a href="#Sync_to_MIDI_clock"&gt;Sync to MIDI clock&lt;/a&gt; is enabled. Note that port numbers are zero-origin, unlike MIDI channels. For a list of the available input devices, see the left-hand pane of the &lt;a href="#MIDI_Devices"&gt;devices&lt;/a&gt; bar.
+
+&lt;a name="Sync_input_device_name"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Sync_input_device_name"&gt;Input device name&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the name of the MIDI input device from which ChordEase expects to receive synchronization messages if &lt;a href="#Sync_to_MIDI_clock"&gt;Sync to MIDI clock&lt;/a&gt; is enabled. To change the input device, edit the &lt;a href="#Sync_input_port"&gt;From port&lt;/a&gt; setting, as explained above.
+
+&lt;a name="Output_MIDI_clock"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Output_MIDI_clock"&gt;Output MIDI clock&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;Enabling this setting causes ChordEase to send MIDI clocks and sequencer control messages to the output device specified by the &lt;a href="#Sync_output_port"&gt;To port&lt;/a&gt; setting. This is useful for synchronizing a device to ChordEase, so that ChordEase is the master, and the device is the slave. ChordEase sends the &lt;a href="#Song_position"&gt;song position&lt;/a&gt; to the slave device, and also remotely executes the &lt;a href="#Play-Stop"&gt;play/stop&lt;/a&gt; and &lt;a href="#Pause"&gt;pause&lt;/a&gt; commands. During playback, be careful to avoid touching any controls on the slave device that affect the song position or transport state, otherwise synchronization may be lost.
+
+&lt;/p&gt;&lt;p&gt;Some devices automatically detect and synchronize to an external clock, but it's often necessary to explicitly configure the device to recognize an external clock. In addition to receiving MIDI clocks, the device must also support receiving the following sequencer control messages: Start, Stop, Continue, and Song Position. The device may have a separate setting to enable receiving sequencer control messages. Not all devices are capabable of synchronizing to an external clock. When in doubt, check your device's MIDI implementation chart.
+
+&lt;/p&gt;&lt;p&gt;Note that ChordEase only supports sending MIDI clocks to a single device. To synchronize multiple devices to ChordEase, use a hardware MIDI splitter to distribute the MIDI clock from ChordEase to the devices. Avoid daisy-chaining if possible, as this may cause timing discrepancies due to &lt;a href="#Latency"&gt;latency&lt;/a&gt;.
+
+&lt;a name="Sync_output_port"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Sync_output_port"&gt;To port&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the device index of the MIDI output device to which ChordEase sends synchronization messages if &lt;a href="#Output_MIDI_clock"&gt;Output MIDI clock&lt;/a&gt; is enabled. Note that port numbers are zero-origin, unlike MIDI channels. For a list of the available output devices, see the right-hand pane of the &lt;a href="#MIDI_Devices"&gt;devices&lt;/a&gt; bar.
+
+&lt;a name="Sync_output_device_name"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Sync_output_device_name"&gt;Output device name&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the name of the MIDI output device to which ChordEase sends synchronization messages if &lt;a href="#Output_MIDI_clock"&gt;Output MIDI clock&lt;/a&gt; is enabled. To change the output device, edit the &lt;a href="#Sync_output_port"&gt;To port&lt;/a&gt; setting, as explained above.

 &lt;a name="Patch_MIDI"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Patch_MIDI"&gt;MIDI&lt;/a&gt;&lt;/h2&gt;

@@ -382,7 +584,9 @@
 Disable
 The black keys do nothing.
 Skip
-The diatonic scale is compressed onto the chromatic scale, so that all keys are active and output unique scale tones. This is useful when inputting notes via a continuous controller, theremin, or similar device, because it ensures that the scale tones are linearly mapped to controller coordinates, i.e. any two adjacent scale tones are always separated by the same increment of physical motion. Note that interval distances are significantly reduced, e.g. playing a fifth yields an octave. The mapping is aligned so that middle C (C4) remains constant, but all other notes are shifted.
+The diatonic scale is compressed onto the chromatic scale, so that all keys are active and output unique scale tones. This is useful when inputting notes via a continuous controller, theremin, or similar device, because it ensures that the scale tones are linearly mapped to controller coordinates, i.e. any two adjacent scale tones are always separated by the same increment of physical motion. Interval distances are greatly reduced, e.g. playing a fifth yields an octave. The mapping is aligned so that middle C (C4) remains constant, but all other notes are shifted.
+Thirds
+Input notes are mapped to output notes in such a way that successive white keys form the cycle of thirds. This makes it much easier to play arpeggios. Adjacent white keys output scale tones separated by two scale degrees instead of one. Each black key outputs the scale tone that its white neighbors step over. Non-scale notes are inaccessible. Interval distances are greatly reduced: each input octave spans two output octaves.
 

 &lt;a name="Input_device_name"&gt;&lt;h2&gt;Device name&lt;/h2&gt;&lt;/a&gt;
@@ -727,11 +931,13 @@

 &lt;a name="Edit_Text"&gt;&lt;h3&gt;Edit Text&lt;/h3&gt;&lt;/a&gt;

-&lt;/p&gt;&lt;p&gt;Use this command to edit the current &lt;a href="#Song"&gt;song&lt;/a&gt; as a text file. You should familiarize yourself with the &lt;a href="#Song_file_format"&gt;song file format&lt;/a&gt; before attempting this. Advanced users may find this method faster than using the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt; editing functions. The shortcut for this command is &lt;span class="key"&gt;Ctrl+E&lt;/span&gt;. The command displays a simple dialog containing a multiline edit control. Clipboard editing functions are supported. You can also edit songs with an external text editor such as Notepad.
+&lt;/p&gt;&lt;p&gt;Use this command to edit the current &lt;a href="#Song"&gt;song&lt;/a&gt; as a text file. You should familiarize yourself with the &lt;a href="#Song_file_format"&gt;song file format&lt;/a&gt; before attempting this. Advanced users may find this method faster than using the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt; editing functions. The shortcut for this command is &lt;span class="key"&gt;Ctrl+E&lt;/span&gt;. The command displays a simple editing dialog containing a multiline edit control. The usual clipboard &lt;a href="#Editing"&gt;editing&lt;/a&gt; functions are supported. The editing dialog also supports find and replace, via the following keyboard shortcuts: &lt;span class="key"&gt;Ctrl+F&lt;/span&gt; for Find, &lt;span class="key"&gt;F3&lt;/span&gt; for Find Next, and &lt;span class="key"&gt;Ctrl+H&lt;/span&gt; for Replace.
+
+&lt;/p&gt;&lt;p&gt;If you prefer, you can also edit songs with an external text editor such as Notepad. Note however that if you externally edit a song, your edits won't be visible within ChordEase until you close and reopen the song. To avoid confusion, it's recommended to use the editing dialog.

 &lt;a name="Properties"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Properties"&gt;Properties&lt;/a&gt;&lt;/h3&gt;

-&lt;/p&gt;&lt;p&gt;Use this command to edit the current &lt;a href="#Song"&gt;song&lt;/a&gt;'s &lt;a href="#Song_Properties"&gt;properties&lt;/a&gt;, including its time signature and key signature. You can also specify optional properties such as tempo, transposition to a different key, and comments. If tempo is zero, the song is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt; at the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; specified by the &lt;a href="#Patch"&gt;patch&lt;/a&gt;.
+&lt;/p&gt;&lt;p&gt;Use this command to edit the &lt;a href="#Song_Properties"&gt;properties&lt;/a&gt; of the current &lt;a href="#Song"&gt;song&lt;/a&gt;, including its time signature and key signature. You can also specify optional properties such as tempo, transposition to a different key, and comments. If tempo is zero, the song is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt; at the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; specified by the &lt;a href="#Patch"&gt;patch&lt;/a&gt;.

 &lt;a name="Print_Setup"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Print_Setup"&gt;Print Setup&lt;/a&gt;&lt;/h3&gt;

@@ -912,6 +1118,16 @@
 &lt;/p&gt;&lt;p&gt;This command displays the &lt;a href="#Section_List_dialog"&gt;Section List dialog&lt;/a&gt;, which lists all the &lt;a href="#Sections"&gt;sections&lt;/a&gt; in the current &lt;a href="#Song"&gt;song&lt;/a&gt;.

+&lt;a name="Transpose_Selection"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Transpose_Selection"&gt;Transpose&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command transposes the selected chords. To temporarily transpose an entire &lt;a href="#Song"&gt;song&lt;/a&gt;, use the &lt;a href="#Transpose"&gt;transpose&lt;/a&gt; setting instead. Unlike the transpose setting, which applies a global transposition to all songs without modifying them, the transpose command actually modifies one or more chords within the current song. The command displays a dialog which prompts the user to enter a transposition amount. The transposition amount is expressed in semitones, and ranges from −11 to +11. For a list of transposition amounts and their resulting intervals, see &lt;a href="#Relative_intervals"&gt;relative intervals&lt;/a&gt;.
+
+&lt;a name="Length"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Length"&gt;Length&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command changes the length of the selected chords. The command displays a dialog which prompts the user to enter a scaling percentage. Enter 200% to make the selection twice as long, 50% to make it half as long, etc. Note that the scaling can potentially cause rounding errors, because ChordEase uses integers to represent chord durations. If the specified scaling would cause rounding errors, a warning is displayed.
+
+&lt;/p&gt;&lt;p&gt;For example, if the &lt;a href="#Song"&gt;song&lt;/a&gt; is in 4/4 time and has one chord per measure, any of its chords can be scaled by 50% without rounding errors, because each chord has a duration of 4 and half of 4 is an integer. However if the song is in 3/4, since each chord has a duration of 3 and half of 3 isn't an integer, the scaling would cause rounding errors, and consequently a warning is displayed. In this particular case the problem could be avoided by doubling the song's time signature from 3/4 to 6/8; see the discussion of time signature changes in &lt;a href="#Song_Properties"&gt;song properties&lt;/a&gt;. In some cases it may be preferable to cancel the length change, and manually edit the chord durations instead; see &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;.
+
 &lt;a name="Options"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Options"&gt;Options&lt;/a&gt;&lt;/h3&gt;

 &lt;/p&gt;&lt;p&gt;This command displays the Options dialog, which lets you edit various user preferences. The options are organized into pages by category, e.g. &lt;a href="#Chart"&gt;chart&lt;/a&gt; options, &lt;a href="#Options_Record"&gt;record&lt;/a&gt; options, and &lt;a href="#Other"&gt;other&lt;/a&gt; options. To reset all options to their default states, press the Reset All button. The &lt;a href="#Installing"&gt;installed&lt;/a&gt; version of ChordEase stores options in the registry, whereas the portable version stores them in a file (ChordEase.ini) in the same folder as the executable.
@@ -1337,7 +1553,11 @@

 &lt;a name="Song_Properties"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Song_Properties"&gt;Song Properties&lt;/a&gt;&lt;/h2&gt;

-&lt;/p&gt;&lt;p&gt;This dialog lets you edit certain properties of the current &lt;a href="#Song"&gt;song&lt;/a&gt;, including its time signature and key signature. To display the dialog, use &lt;span class="cmd"&gt;File/Properties&lt;/span&gt;. You can also specify optional properties such as tempo, transposition to a different key, and comments. If tempo is zero, the song is played at the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; specified by the &lt;a href="#Patch"&gt;patch&lt;/a&gt;.
+&lt;/p&gt;&lt;p&gt;This dialog lets you edit certain properties of the current &lt;a href="#Song"&gt;song&lt;/a&gt;, including its time signature and key signature. To display the dialog, use &lt;span class="cmd"&gt;File/Properties&lt;/span&gt; &lt;a href="#Properties"&gt;command&lt;/a&gt;. You can also specify optional properties such as tempo, transposition to a different key, and comments. If tempo is zero, the song is played at the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; specified by the &lt;a href="#Patch"&gt;patch&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;If the song's time signature is changed, the chord durations are automatically scaled, in an attempt to preserve each chord's length in terms of measures. This scaling can potentially cause rounding errors, because ChordEase uses integers to represent chord durations. If applying the specified time signature to the current song would cause rounding errors, a warning is displayed. In some cases the user is offered a different but equivalent time signature that would avoid the rounding errors.
+
+&lt;/p&gt;&lt;p&gt;For example, converting a song from 4/4 to 3/4 involves scaling each chord's duration by 75%. If the song doesn't contain split measures, the scaling can be accomplished without rounding errors. However if the song does contain split measures, since each half-measure chord has a duration of 2 in 4/4, and 75% of 2 isn't an integer, rounding errors would result. In this case the user is given the opportunity to convert to 6/8 instead, which achieves the same effect as 3/4 but avoids the rounding errors.

 &lt;h1&gt;Loose ends&lt;/h1&gt;
@@ -1469,6 +1689,36 @@
 

 &lt;/p&gt;&lt;p&gt;Note that using a software synthesizer as your output MIDI device may increase latency, sometimes drastically. The Microsoft GS Wavetable Synth that ships with Windows is particularly bad: it exhibits latency on the order of 250 milliseconds, which makes it unusable except for testing.
+
+&lt;a name="Relative_intervals"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Relative_intervals"&gt;Relative intervals&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;−12&lt;/td&gt;&lt;td&gt;octave&lt;/td&gt;&lt;td rowspan="12"&gt;below&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−11&lt;/td&gt;&lt;td&gt;major seventh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−10&lt;/td&gt;&lt;td&gt;minor seventh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−9&lt;/td&gt;&lt;td&gt;major sixth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−8&lt;/td&gt;&lt;td&gt;minor sixth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−7&lt;/td&gt;&lt;td&gt;perfect fifth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−6&lt;/td&gt;&lt;td&gt;tritone&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−5&lt;/td&gt;&lt;td&gt;perfect fourth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−4&lt;/td&gt;&lt;td&gt;major third&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−3&lt;/td&gt;&lt;td&gt;minor third&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−2&lt;/td&gt;&lt;td&gt;major second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−1&lt;/td&gt;&lt;td&gt;minor second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;unison&lt;/td&gt;&lt;td&gt;N/A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;minor second&lt;/td&gt;&lt;td rowspan="12"&gt;above&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;major second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;minor third&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;major third&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;perfect fourth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;tritone&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;perfect fifth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;minor sixth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;major sixth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;minor seventh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;major seventh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;octave&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

 &lt;a name="Shortcuts"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Shortcuts"&gt;Shortcuts&lt;/a&gt;&lt;/h2&gt;

&lt;/p&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Tue, 21 Oct 2014 19:12:22 -0000</pubDate><guid>https://sourceforge.net6ab067b0903a9464fe505c601b8a3747ecedfcd0</guid></item><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v14
+++ v15
@@ -1,147 +1,3 @@
-&lt;dl&gt;
-&lt;dt&gt;Getting Started
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Introduction"&gt;Introduction&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#License"&gt;License&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Requirements"&gt;Requirements&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Installing"&gt;Installing&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Uninstalling"&gt;Uninstalling&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Getting_help"&gt;Getting help&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Concepts
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Song"&gt;Song&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Sections"&gt;Sections&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch"&gt;Patch&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part"&gt;Part&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Mapping_functions"&gt;Mapping functions&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Recording"&gt;Recording&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Patch bar
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#General"&gt;General&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Metronome"&gt;Metronome&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_MIDI"&gt;MIDI&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Parts bar
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Input"&gt;Input&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Output"&gt;Output&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Lead"&gt;Lead&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Comp"&gt;Comp&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto"&gt;Auto&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_MIDI"&gt;MIDI&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Menus
-&lt;/dt&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;File
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#New"&gt;New&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Open"&gt;Open&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save"&gt;Save&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save_As"&gt;Save As&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Edit_Text"&gt;Edit Text&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Properties"&gt;Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Setup"&gt;Print Setup&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Preview"&gt;Print Preview&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print"&gt;Print&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Exit"&gt;Exit&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Edit
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Editing"&gt;Editing&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Undo-Redo"&gt;Undo/Redo&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Clipboard"&gt;Clipboard&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Cut"&gt;Cut&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Copy"&gt;Copy&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Paste"&gt;Paste&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert"&gt;Insert&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Delete"&gt;Delete&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Select_All"&gt;Select All&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rename"&gt;Rename&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Section
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Section_Create"&gt;Create&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Delete"&gt;Delete&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties"&gt;Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List"&gt;List&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options"&gt;Options&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Patch
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Patch_New"&gt;New&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Open"&gt;Open&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save"&gt;Patch&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save_As"&gt;Save As&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Transport
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Play-Stop"&gt;Play/Stop&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Pause"&gt;Pause&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rewind"&gt;Rewind&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Repeat"&gt;Repeat&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record"&gt;Record&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Go_To"&gt;Go To&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto_Rewind"&gt;Auto Rewind&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;MIDI
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Devices"&gt;Devices&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input"&gt;Input&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output"&gt;Output&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Learn"&gt;Learn&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Assignments"&gt;Assignments&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Note_Mappings"&gt;Note Mappings&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chase_Events"&gt;Chase Events&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Reset_All_Targets"&gt;Reset All Targets&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Panic"&gt;Panic&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;View
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Toolbar"&gt;Toolbar&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Status_bar"&gt;Status bar&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_bar"&gt;Patch bar&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Parts_bar"&gt;Parts bar&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano"&gt;Piano&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes"&gt;Output Notes&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Threads"&gt;Threads&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player"&gt;Record Player&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
-&lt;dt&gt;Help
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Help_topics"&gt;Help topics&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#ChordEase_on_the_Web"&gt;ChordEase on the Web&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Check_for_updates"&gt;Check for updates&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Demo"&gt;Demo&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#About"&gt;About&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-&lt;/dd&gt;&lt;dt&gt;Options
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chart"&gt;Chart&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options_Record"&gt;Record&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Other"&gt;Other&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Dialogs
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chord_Properties"&gt;Chord Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert_Chord"&gt;Insert Chord&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Devices"&gt;MIDI Devices&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input_bar"&gt;MIDI Input&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes_bar"&gt;Output Notes&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano_dialog"&gt;Piano&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player_dialog"&gt;Record Player&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List_dialog"&gt;Section List&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties_dialog"&gt;Section Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_Properties"&gt;Song Properties&lt;/a&gt;
-&lt;/dd&gt;&lt;dt&gt;Loose ends
-&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Scales"&gt;Scales&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_types"&gt;Chord types&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_dictionary"&gt;Chord dictionary&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_file_format"&gt;Song file format&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Durations"&gt;Durations&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Latency"&gt;Latency&lt;/a&gt;
-&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Shortcuts"&gt;Shortcuts&lt;/a&gt;
-&lt;/dd&gt;&lt;/dl&gt;
-
 &lt;h1&gt;Getting Started&lt;/h1&gt;
 &lt;a name="Introduction"&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;/a&gt;

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Sun, 31 Aug 2014 13:12:40 -0000</pubDate><guid>https://sourceforge.netbc2fbaaca074fcb94ba02f09351b72daafde88a2</guid></item><item><title>Home modified by Chris Korda</title><link>https://sourceforge.net/p/chordease/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v13
+++ v14
@@ -1,63 +1,1659 @@
-&lt;p&gt;Note: Provisional help is &lt;a href="https://sourceforge.net/p/chordease/wiki/help"&gt;HERE&lt;/a&gt;.
-
-&lt;/p&gt;&lt;p&gt;1. Overview
-
-&lt;/p&gt;&lt;p&gt;ChordEase is a MIDI remapper that lets you play music with difficult chords easily on any MIDI instrument. Though it's intended for jazz, it could be useful for any type of music that modulates frequently. ChordEase ensures that all your notes are harmonically correct, but leaves their sequence and rhythm up to you. In other words, ChordEase handles the rapid music theory calculations, so you can relax and concentrate on groove, feel, and aesthetics.
-
-&lt;/p&gt;&lt;p&gt;ChordEase plays songs, which are prepared beforehand. You're expected to stay in sync with ChordEase, and it provides a metronome to facilitate this. Normally you play only in the key of C major, and your notes are then adjusted in real time to fit the song's harmony, using various schemes. Any number of performers can perform through a single instance of ChordEase, using any number of MIDI instruments. MIDI input is translated to MIDI output according to various parameters, which are contained in a part. Any number of parts can be defined; splits and layers can be set up, etc. The available part functions (so far) are as follows:
-
-&lt;/p&gt;&lt;p&gt;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-&lt;table border="1"&gt;&lt;tr&gt;&lt;th&gt;Mode&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead&lt;/td&gt;&lt;td&gt;Input notes are transposed in position by adding accidentals as needed, so that the output notes remain as close as possible to the input notes; this scheme minimizes the differences between chords and is very useful for soloing.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp&lt;/td&gt;&lt;td&gt;A single input note triggers a tetrachord, with user control over variations, voicings, arpeggiation, etc. The input note's pitch determines the pitch window within which the output chord is voiced.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass&lt;/td&gt;&lt;td&gt;Input notes are transposed via shifting, so that C is always the chord root, E is always the third, G is always the fifth, etc. Bass mode also supports an approach mode, which shifts the current scale so that C is the root of the chord being approached (or as close as possible). Approach can use a fixed time window, or be triggered manually e.g. via MIDI controller.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Vocabulary&lt;/td&gt;&lt;td&gt;Input notes are mapped to the notes of pre-arranged melodic snippets. Or alternatively, input notes trigger a continuous sequence of vocabulary notes, with input pitch determining the speed, e.g. 1/8 notes, triplets, etc.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Numbers&lt;/td&gt;&lt;td&gt;Input notes are remapped according a scale tone palette scheme, e.g. playing (1,2,3,5) for all major chords and (1,3,4,5) for all minor chords.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
-
-&lt;/p&gt;&lt;p&gt;ChordEase parameters can be changed in real time via MIDI controllers for additional effects. ChordEase can also record its own output and export it as a standard MIDI file. The screenshot below shows the ChordEase main window, with all of its major toolbars visible, including the Patch and Part bars, and bars that permit MIDI input and output to be monitored in real time with filtering. Note that the number of parts is arbitrary.
-
-&lt;/p&gt;&lt;p&gt;How the note C is mapped in each mode
-
-&lt;/p&gt;&lt;p&gt;
-
-
-
-
-
-
-
-
-
-
-
-
-&lt;table border="1"&gt;&lt;tr&gt;&lt;th&gt;Mode&lt;/th&gt;&lt;th&gt;C mapped to&lt;/th&gt;&lt;th&gt;Note order&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Lead&lt;/td&gt;&lt;td&gt;C or as close as possible given needed accidentals&lt;/td&gt;&lt;td&gt;Conventional&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Comp&lt;/td&gt;&lt;td&gt;N/A&lt;/td&gt;&lt;td&gt;N/A&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass&lt;/td&gt;&lt;td&gt;Root of current chord, except in approach mode&lt;/td&gt;&lt;td&gt;Conventional&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
-
-&lt;/p&gt;&lt;p&gt;Note that in the Comp scheme, the input note's pitch is only used indirectly, as the bottom of a pitch window within which tetrachords are generated in various voicings.
- 
-&lt;/p&gt;&lt;p&gt;Note that that ChordEase can handle multiple performers (i.e. a whole band at once), and any number of splits or layers.
- 
-&lt;/p&gt;&lt;p&gt;ChordEase also allows a "part" (corresponding to a range of notes on a MIDI instrument) to have harmonic anticipation, i.e. be playing "ahead" of the chord changes. Harmonic anticipation is a very common technique in jazz. Supposing the harmonic anticipation is 1/8 note, then the part changes its scale to that of the next chord 1/8 note early, relative to other parts. Notes played during that 1/8 note time window of harmonic anticipation will sound "out", because they are derived from the next chord's harmony instead of the current one. ChordEase also allows negative harmonic anticipation, i.e. playing behind the changes instead of ahead of them.
-
-&lt;/p&gt;&lt;p&gt;2. Summary
-
-&lt;/p&gt;&lt;p&gt;ChordEase is a tool for aspiring improvisational musicians. It involves a trade-off, in which a performer sacrifices some control over which pitches will be played, in exchange for the ability to improvise over harmonically challenging music with little or no musical knowledge, even at fast tempos. ChordEase greatly facilitates the playing of harmonically correct notes, and thereby creates space for the performer to concentrate on other aspects of improvisation. Pitch selection is partially delegated to the computer, but the performer retains considerable control over pitch sequence, and total control over rhythm. This is an equitable division of labor, because computers excel at rapid calculations, but do poorly at rhythm, groove, feel, and aesthetics, whereas people are generally the opposite. The resulting combination of human and machine skills is a type of cybernetic organism.
-
-
-
-
-
-
+&lt;dl&gt;
+&lt;dt&gt;Getting Started
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Introduction"&gt;Introduction&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#License"&gt;License&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Requirements"&gt;Requirements&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Installing"&gt;Installing&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Uninstalling"&gt;Uninstalling&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Getting_help"&gt;Getting help&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Concepts
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Song"&gt;Song&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Sections"&gt;Sections&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch"&gt;Patch&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part"&gt;Part&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Mapping_functions"&gt;Mapping functions&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Recording"&gt;Recording&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Patch bar
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#General"&gt;General&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Metronome"&gt;Metronome&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_MIDI"&gt;MIDI&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Parts bar
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Input"&gt;Input&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_Output"&gt;Output&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Lead"&gt;Lead&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Comp"&gt;Comp&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto"&gt;Auto&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Part_MIDI"&gt;MIDI&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Menus
+&lt;/dt&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;File
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#New"&gt;New&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Open"&gt;Open&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save"&gt;Save&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Save_As"&gt;Save As&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Edit_Text"&gt;Edit Text&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Properties"&gt;Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Setup"&gt;Print Setup&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print_Preview"&gt;Print Preview&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Print"&gt;Print&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Exit"&gt;Exit&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Edit
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Editing"&gt;Editing&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Undo-Redo"&gt;Undo/Redo&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Clipboard"&gt;Clipboard&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Cut"&gt;Cut&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Copy"&gt;Copy&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Paste"&gt;Paste&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert"&gt;Insert&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Delete"&gt;Delete&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Select_All"&gt;Select All&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rename"&gt;Rename&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Section
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Section_Create"&gt;Create&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Delete"&gt;Delete&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties"&gt;Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List"&gt;List&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options"&gt;Options&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Patch
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Patch_New"&gt;New&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Open"&gt;Open&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save"&gt;Patch&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_Save_As"&gt;Save As&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Transport
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Play-Stop"&gt;Play/Stop&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Pause"&gt;Pause&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Rewind"&gt;Rewind&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Repeat"&gt;Repeat&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record"&gt;Record&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Go_To"&gt;Go To&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Auto_Rewind"&gt;Auto Rewind&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;MIDI
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Devices"&gt;Devices&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input"&gt;Input&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output"&gt;Output&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Learn"&gt;Learn&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Assignments"&gt;Assignments&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Note_Mappings"&gt;Note Mappings&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chase_Events"&gt;Chase Events&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Reset_All_Targets"&gt;Reset All Targets&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Panic"&gt;Panic&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;View
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Toolbar"&gt;Toolbar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Status_bar"&gt;Status bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Patch_bar"&gt;Patch bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Parts_bar"&gt;Parts bar&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano"&gt;Piano&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes"&gt;Output Notes&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Threads"&gt;Threads&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player"&gt;Record Player&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;dl&gt;
+&lt;dt&gt;Help
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Help_topics"&gt;Help topics&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#ChordEase_on_the_Web"&gt;ChordEase on the Web&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Check_for_updates"&gt;Check for updates&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Demo"&gt;Demo&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#About"&gt;About&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+&lt;/dd&gt;&lt;dt&gt;Options
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chart"&gt;Chart&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Options_Record"&gt;Record&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Other"&gt;Other&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Dialogs
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Chord_Properties"&gt;Chord Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Insert_Chord"&gt;Insert Chord&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Devices"&gt;MIDI Devices&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Input_bar"&gt;MIDI Input&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Output_Notes_bar"&gt;Output Notes&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Piano_dialog"&gt;Piano&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Record_Player_dialog"&gt;Record Player&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_List_dialog"&gt;Section List&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Section_Properties_dialog"&gt;Section Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_Properties"&gt;Song Properties&lt;/a&gt;
+&lt;/dd&gt;&lt;dt&gt;Loose ends
+&lt;/dt&gt;&lt;dd&gt;&lt;a href="#Scales"&gt;Scales&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_types"&gt;Chord types&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Chord_dictionary"&gt;Chord dictionary&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Song_file_format"&gt;Song file format&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Durations"&gt;Durations&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Latency"&gt;Latency&lt;/a&gt;
+&lt;/dd&gt;&lt;dd&gt;&lt;a href="#Shortcuts"&gt;Shortcuts&lt;/a&gt;
+&lt;/dd&gt;&lt;/dl&gt;
+
+&lt;h1&gt;Getting Started&lt;/h1&gt;
+&lt;a name="Introduction"&gt;&lt;h2&gt;Introduction&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase makes it easier to play music with complicated chords. No matter what the chords are, you can play as if they were all in the key of C. You don't need to play sharps or flats, because ChordEase automatically adds them for you. Though ChordEase is intended for jazz, it could be useful for any type of music that modulates frequently. ChordEase alters your notes in &lt;a href="#Latency"&gt;real time&lt;/a&gt; in order to make them harmonically correct, while preserving their rhythm and dynamics. By delegating rapid music theory calculations to ChordEase, you gain freedom to concentrate on other aspects of musical performance, such as feel and aesthetics.
+
+&lt;/p&gt;&lt;p&gt;ChordEase is a translator that takes MIDI notes as input, and produces MIDI notes as output. The input notes are translated to the current chord scale, so that the output notes fit the chord progression of a &lt;a href="#Song"&gt;song&lt;/a&gt;. ChordEase supports various &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt; which determine how the translating is done. ChordEase can handle multiple translations at once, so multiple performers can play through a single instance of ChordEase, using any number of MIDI instruments. ChordEase parameters can be &lt;a href="#MIDI_targets"&gt;remotely controlled&lt;/a&gt; via MIDI for additional effects. ChordEase can also &lt;a href="#Recording"&gt;record&lt;/a&gt; its own output as MIDI data.
+
+&lt;a name="License"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="License"&gt;License&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+&lt;a name="Requirements"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Requirements"&gt;Requirements&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;Recommended:
+
+&lt;/p&gt;&lt;p&gt;Windows 7 or higher, 64-bit
+&lt;br /&gt;4GB memory or more
+&lt;br /&gt;Quad-core CPU, 3GHz or better, with Hyperthreading
+&lt;br /&gt;Multi-timbral MIDI instrument*
+&lt;br /&gt;MIDI adapter with at least 1 in and 1 out
+&lt;br /&gt;ChordEase 64-bit
+
+&lt;/p&gt;&lt;p&gt;Minimum:
+
+&lt;/p&gt;&lt;p&gt;Windows XP SP2
+&lt;br /&gt;2GB memory
+&lt;br /&gt;ChordEase 32-bit
+
+&lt;/p&gt;&lt;p&gt;*Note that the instrument should have a MIDI in and a MIDI out, and be capable of disabling &lt;a href="#Local_control"&gt;local control&lt;/a&gt;.
+
+&lt;a name="Installing"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Installing"&gt;Installing&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase comes in two flavors (Installer and Portable), each of which is available in both 64-bit and 32-bit versions. If you have a 64-bit CPU, it's strongly recommended to use the 64-bit version of ChordEase. Most users want an installer, because it's easier. For example, installing adds ChordEase to the Windows start menu, and allows ChordEase to register its file types, so that they have appropriate icons and can be opened via double-clicking in Explorer.
+
+&lt;/p&gt;&lt;p&gt;The portable flavor is useful if you want ChordEase to run from a USB flash drive, and store its settings on the flash drive instead of in the local machine's registry. The portable application has NO INSTALLER, and doesn't use the registry at all; settings are stored in an INI file in the same folder as the app. The instructions below apply to the installed flavor only. To use the portable app, simply unzip the distribution file to a folder and double-click ChordEase.exe.
+
+&lt;/p&gt;&lt;p&gt;&lt;b&gt;Installing for the first time:&lt;/b&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase is distributed as a zip file containing an installer. Unzip the distribution file, using WinZip or an equivalent program, and then double-click on ChordEase.msi to launch the installer. The installer is about as simple as an installer can be: for the default setup, just keep hitting "Next." Note that on the "Select Installation Folder" page, you have the option to install for all users, but the default is to only install for the current user.
+
+&lt;/p&gt;&lt;p&gt;&lt;b&gt;Upgrading a previous installation:&lt;/b&gt;
+
+&lt;ol&gt;
+&lt;li&gt;Unzip the distribution file to a folder, if you haven't already.
+&lt;/li&gt;&lt;li&gt;In that folder, double-click Upgrade.bat to launch the installer.
+&lt;/li&gt;&lt;li&gt;In the installer, select the "Repair" option.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;/p&gt;&lt;p&gt;Note that double-clicking ChordEase.msi won't work: you will get the message "Another version of this product is already installed". If you're connected to the Internet, you can upgrade to the latest version via &lt;span class="cmd"&gt;Help/Check for Updates&lt;/span&gt;.
+
+&lt;a name="Uninstalling"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Uninstalling"&gt;Uninstalling&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;To uninstall ChordEase, use Add/Remove Programs in the Control Panel, or double-click on ChordEase.msi and select the "Remove" option.
+
+&lt;a name="Getting_help"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Getting_help"&gt;Getting help&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase has context-sensitive help, which means that pressing &lt;span class="key"&gt;F1&lt;/span&gt; shows different topics depending on the situation. Context-sensitive help is available for the following types of user-interface objects:
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Object type&lt;/th&gt;&lt;th&gt;To get help:&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Menus and context menus&lt;/td&gt;&lt;td&gt;Highlight a menu item and press &lt;span class="key"&gt;F1&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Toolbar buttons&lt;/td&gt;&lt;td&gt;Hover over a button and press &lt;span class="key"&gt;F1&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Other toolbar controls&lt;/td&gt;&lt;td&gt;Left-click the control and press &lt;span class="key"&gt;F1&lt;/span&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Modal dialogs&lt;/td&gt;&lt;td&gt;Press &lt;span class="key"&gt;F1&lt;/span&gt; while the dialog is displayed. For some dialogs, the topic shown depends on which control has focus.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;If none of the above cases apply, or if help is accessed via &lt;a href="#Help_topics"&gt;Help Topics&lt;/a&gt;, a default topic is shown.
+
+
+&lt;h1&gt;Concepts&lt;/h1&gt;
+
+&lt;a name="Song"&gt;&lt;h2&gt;Song&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;A song consists of a prearranged &lt;em&gt;chord progression&lt;/em&gt; (i.e. a series of chords), along with a time signature and a key signature. A song may also include optional properties such as a tempo or a transposition, and the chord progression may be separated into repeating &lt;a href="#Sections"&gt;sections&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;Normally a song is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt; at a specified &lt;a href="#Tempo"&gt;tempo&lt;/a&gt;, and the performer is expected to stay in sync with ChordEase. A built-in &lt;a href="#Metronome"&gt;metronome&lt;/a&gt; is provided to facilitate this. It's also possible to use ChordEase in free-time mode, in which case the performer manually steps through the song's chords, usually via a continuous controller &lt;a href="#MIDI_targets"&gt;assigned&lt;/a&gt; to the &lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt; command. Note that &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; is not supported in free-time mode.
+
+&lt;/p&gt;&lt;p&gt;Songs can be entered and edited using the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;, or via text editor. In the chart view, chords can be inserted, deleted, cut, copied, pasted, and renamed via standard &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands. Chords can also be edited via context menu, and reordered via dragging and dropping. The chart view is easier for beginners, but once the &lt;a href="#Song_file_format"&gt;song syntax&lt;/a&gt; is learned, &lt;a href="#Edit_Text"&gt;editing the song as text&lt;/a&gt; may be preferable. A song is stored as a plain text file, usually having the .ces file extension.
+
+&lt;/p&gt;&lt;p&gt;The song is the primary document type in ChordEase. The File menu operates on songs, and contains commands to create a &lt;a href="#New"&gt;new&lt;/a&gt; song, &lt;a href="#Open"&gt;open&lt;/a&gt; an existing song, &lt;a href="#Save"&gt;save&lt;/a&gt; the current song, etc. The secondary document type is the &lt;a href="#Patch"&gt;patch&lt;/a&gt;, and patches have their own menu (the Patch menu) which behaves like a second file menu. Note that ChordEase also has two &lt;a href="#Undo-Redo"&gt;undo&lt;/a&gt; histories, one for the current song and one for the current patch.
+
+&lt;a name="Song_position"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Song_position"&gt;Song position&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;The current position within the song is indicated by the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;'s cursor. The song position can be changed at any time by left-clicking a chord within the chart view. If the chart view has focus, the song position can also be changed via the arrow keys, &lt;span class="key"&gt;Page Up&lt;/span&gt;, &lt;span class="key"&gt;Page Down&lt;/span&gt;, &lt;span class="key"&gt;Home&lt;/span&gt;, and &lt;span class="key"&gt;End&lt;/span&gt;. To skip to the next or previous chord, use the &lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt; and &lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt; commands. To jump to a specific numeric song position, use the &lt;a href="#Go_To"&gt;Go To&lt;/a&gt; command. The song position is updated automatically while the song is &lt;a href="#Play-Stop"&gt;playing&lt;/a&gt;. The &lt;a href="#Status_bar"&gt;status bar&lt;/a&gt; shows the song position numerically in measures, beats, and ticks. Note that measures and beats are one-origin, i.e. the beginning of the song is 1:1:0.
+
+&lt;a name="Impro-Visor"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Impro-Visor"&gt;Impro-Visor&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;In addition to its native &lt;a href="#Song_file_format"&gt;song file format&lt;/a&gt;, ChordEase also supports the file format of a free music notation program called Impro-Visor (Improvisation Advisor). Impro-Visor files are known as lead sheet (.ls) files. A lead sheet is opened in the same manner as a ChordEase song file, e.g. via the &lt;a href="#Open"&gt;File/Open&lt;/a&gt; command, drag/drop from Windows Explorer, or the command line. ChordEase reads lead sheets, but doesn't write them, so when you open a lead sheet, it's automatically converted to ChordEase song file format. Not all the data in a lead sheet is useful to ChordEase. ChordEase imports the chord changes, along with a subset of the metadata, including the time signature, key signature, tempo, title, and composer. The melody track is ignored. The import has been tested against all of the files in the Impro-Visor lead sheet download, and opens about 97% of them. The most common failures are listed below.
+
+&lt;ul&gt;
+&lt;li&gt;Lead sheet format allows any number of chord symbols to appear in a measure, and divides the measure equally between them, whereas ChordEase song format requires each chord's duration to be specified explicitly. Because durations are expressed in beats and must be integers, ChordEase does not permit three equally spaced chords per measure in a 4/4 song. This accounts for the majority of the problem cases. Many of these cases turn out to be errors, usually caused by a missing bar line. Valid cases can be dealt with by converting the song to a suitably divisible time signature, e.g. 12/16.
+&lt;/li&gt;&lt;li&gt;Lead sheet format allows polychords, indicated via a backslash, e.g. C\E, but ChordEase doesn't support this concept.
+&lt;/li&gt;&lt;/ul&gt;
+
+&lt;/p&gt;&lt;p&gt;The Impro-Visor lead sheet download is available from the &lt;a href="http://www.cs.hmc.edu/~keller/jazz/improvisor" rel="nofollow"&gt;Impro-Visor web site&lt;/a&gt;. For the details of lead sheet format, see &lt;a href="http://www.cs.hmc.edu/~keller/jazz/improvisor/LeadsheetNotation.pdf" rel="nofollow"&gt;Impro-Visor Leadsheet Notation&lt;/a&gt;.
+
+&lt;a name="Chart_view"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Chart_view"&gt;Chart view&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;The chart view displays the chord progression of the current &lt;a href="#Song"&gt;song&lt;/a&gt;, and indicates the current &lt;a href="#Song_position"&gt;song position&lt;/a&gt;. The chart view also lets you edit the song, using standard &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands, e.g. &lt;a href="#Copy"&gt;copy&lt;/a&gt;, &lt;a href="#Cut"&gt;cut&lt;/a&gt;, &lt;a href="#Paste"&gt;paste&lt;/a&gt;, etc. To insert a new chord, use the &lt;a href="#Insert"&gt;insert&lt;/a&gt; command. To modify an existing chord, double-click it, or select it and press the &lt;span class="key"&gt;Enter&lt;/span&gt; key. You can also &lt;a href="#Rename"&gt;rename&lt;/a&gt; a chord. For additional methods, see the table below. Chords can be reordered by dragging and dropping them.
+
+&lt;/p&gt;&lt;p&gt;Multiple selection is supported: you can copy, cut, paste, delete, rename, or drag a range of chords. To select a single chord, left-click it. To select a range of chords, left-click the first chord in the range, and then while holding down the &lt;span class="key"&gt;Shift&lt;/span&gt; key, left-click the last chord in the range. The arrow keys move the current position, as do the &lt;span class="key"&gt;Page Up&lt;/span&gt;, &lt;span class="key"&gt;Page Down&lt;/span&gt;, &lt;span class="key"&gt;Home&lt;/span&gt;, and &lt;span class="key"&gt;End&lt;/span&gt; keys. These keys can also be used to select a range of chords, by combining them with the &lt;span class="key"&gt;Shift&lt;/span&gt; key.
+
+&lt;/p&gt;&lt;p&gt;The chart view has a context menu, which includes the editing commands, as well as the commands for creating and modifying &lt;a href="#Sections"&gt;sections&lt;/a&gt;. If the song is &lt;a href="#Transpose"&gt;transposed&lt;/a&gt;, the chart view displays the transposed chords. Advanced users may prefer to &lt;a href="#Edit_Text"&gt;edit songs as text&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Goal&lt;/th&gt;&lt;th&gt;Method&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Change a chord's root&lt;/td&gt;&lt;td&gt;Right-click the chord to show the context menu, select &lt;span class="cmd"&gt;Root&lt;/span&gt;, and then select the desired root from the list.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Change a chord's type&lt;/td&gt;&lt;td&gt;Right-click the chord to show the context menu, select &lt;span class="cmd"&gt;Type&lt;/span&gt;, and then select the desired chord type from the list.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Change a chord's bass note&lt;/td&gt;&lt;td&gt;Right-click the chord to show the context menu, select &lt;span class="cmd"&gt;Bass&lt;/span&gt;, and then select the desired bass note from the list.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Change a chord's duration&lt;/td&gt;&lt;td&gt;Right-click the chord to show the context menu, select &lt;span class="cmd"&gt;Duration&lt;/span&gt;, and then select the desired duration from the list. The listed durations are in measures or fractions of a measure. To specify a duration other than those listed, select "Other" to display the Duration dialog, enter the desired duration in beats, and press OK.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Edit a chord as text&lt;/td&gt;&lt;td&gt;Select the chord, and then select &lt;span class="cmd"&gt;Edit/Rename&lt;/span&gt; in the main menus or &lt;span class="cmd"&gt;Rename&lt;/span&gt; in the context menu, or press &lt;span class="key"&gt;F2&lt;/span&gt;. A popup edit control is displayed. Make your changes, and then save them by pressing &lt;span class="key"&gt;Enter&lt;/span&gt; or clicking anywhere outside the edit control. To cancel, press &lt;span class="key"&gt;Esc&lt;/span&gt;. This method lets you change the chord's root, type, and bass note, but not its duration.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Edit a chord's properties&lt;/td&gt;&lt;td&gt;Double-click the chord, or select the chord and press the &lt;span class="key"&gt;Enter&lt;/span&gt; key. You can also right-click the chord to show the context menu, and select &lt;span class="cmd"&gt;Properties&lt;/span&gt;. The &lt;a href="#Chord_Properties"&gt;chord properties&lt;/a&gt; dialog is displayed. Change the properties as desired, and then press OK to save your changes.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Sections"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Sections"&gt;Sections&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;A section is a contiguous subset of a &lt;a href="#Song"&gt;song&lt;/a&gt; that repeats, either a specific number of times or indefinitely. Sections are useful for introductions, endings, interludes, vamps, breaks, etc. A section with a &lt;a href="#Section_Repeat"&gt;repeat count&lt;/a&gt; greater than zero loops the specified number of times, unless it's exited prematurely via the &lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt; command. A section with a repeat count of zero loops forever, or until it's exited via the Next Section command. In both the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt; and &lt;a href="#Song_file_format"&gt;song file format&lt;/a&gt;, a section is indicated by enclosing one or more chords in square brackets. A song can contain any number of sections, but sections can't overlap, and can't be nested.
+
+&lt;/p&gt;&lt;p&gt;The section-related commands are located on the &lt;span class="cmd"&gt;Section&lt;/span&gt; submenu of the &lt;span class="cmd"&gt;Edit&lt;/span&gt; menu. The &lt;span class="cmd"&gt;Section&lt;/span&gt; submenu is also available from the chart view's context menu. To create a new section containing the selected chords, use &lt;a href="#Section_Create"&gt;Section Create&lt;/a&gt;. To delete an existing section, use &lt;a href="#Section_Delete"&gt;Section Delete&lt;/a&gt;. To edit a section's properties, including its repeat count, use &lt;a href="#Section_Properties"&gt;Section Properties&lt;/a&gt;. To view a list of all the current sections, use &lt;a href="#Section_List"&gt;Section List&lt;/a&gt;. Advanced users may prefer to create or modify sections by &lt;a href="#Edit_Text"&gt;editing the song as text&lt;/a&gt;.
+
+&lt;a name="Patch"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Patch"&gt;Patch&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase uses two types of documents: &lt;a href="#Song"&gt;songs&lt;/a&gt; and patches. A song contains data that's unique to each song, e.g. the song's chord progression, whereas a patch contains &lt;em&gt;settings&lt;/em&gt; that determine how songs are handled. All of the settings found in the &lt;a href="#Patch_bar"&gt;patch bar&lt;/a&gt; and the &lt;a href="#Parts_bar"&gt;parts bar&lt;/a&gt; are stored in the patch. Patches allow you to save useful configurations of these settings and recall them easily.
+
+&lt;/p&gt;&lt;p&gt;ChordEase effectively has two file menus, one for &lt;a href="#Song"&gt;songs&lt;/a&gt; and one for patches. The standard File menu operates on songs, whereas the Patch menu operates on patches. The Patch menu contains commands to create a &lt;a href="#Patch_New"&gt;new&lt;/a&gt; patch, &lt;a href="#Patch_Open"&gt;open&lt;/a&gt; an existing patch, and &lt;a href="#Patch_Save"&gt;save&lt;/a&gt; the current patch. Note that ChordEase also has two &lt;a href="#Undo-Redo"&gt;undo&lt;/a&gt; histories, one for the current song and one for the current patch.
+
+&lt;/p&gt;&lt;p&gt;If you change any patch settings, you will be prompted to save your changes when you exit ChordEase. Even if you don't save your changes, your most recent patch will be restored the next time you run ChordEase. The most recent patch is stored in a special file called ChordEasePatch.ini, located in the &lt;a href="#Application_data_folder"&gt;application data folder&lt;/a&gt;. ChordEase can initially open either a song or a patch, specified via the command line. The &lt;a href="#Installing"&gt;installed&lt;/a&gt; version of ChordEase automatically associates itself with both the song and patch file extensions, but for the portable version, these associations must be created manually.
+
+&lt;/p&gt;&lt;p&gt;A patch is a plain text file that uses standard Windows INI file format. Patches normally have a file extension of .cep (ChordEase Patch). The patch excludes certain user preferences such as &lt;a href="#Options"&gt;options&lt;/a&gt; and window positions: these are stored in the registry for the installed version, or in ChordEase.ini for the portable version.
+
+&lt;a name="Part"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Part"&gt;Part&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;A &lt;em&gt;part&lt;/em&gt; specifies how input notes should be &lt;em&gt;mapped&lt;/em&gt; (i.e. translated) to output notes. A part includes many settings which can affect the mapping, e.g. &lt;a href="#Part_Input"&gt;input&lt;/a&gt; and &lt;a href="#Part_Output"&gt;output&lt;/a&gt; parameters, which &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; to use, and mapping function parameters. A &lt;a href="#Patch"&gt;patch&lt;/a&gt; can contain any number of parts. Each part has its own independent state and can be configured differently from other parts. The existing parts are shown in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;, which supports the usual &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands. The selected part's settings are edited via the tabbed pages of the &lt;a href="#Parts_bar"&gt;parts bar&lt;/a&gt;. Settings common to all parts are edited via the tabbed pages of the &lt;a href="#Patch_bar"&gt;patch bar&lt;/a&gt;.
+
+&lt;a name="Mapping_functions"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Mapping_functions"&gt;Mapping functions&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;Each &lt;a href="#Part"&gt;part&lt;/a&gt; has a mapping function, which determines how that part &lt;em&gt;maps&lt;/em&gt; input to output, i.e. translates input notes to output notes. To change a part's mapping function, find the corresponding row in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;, left-click within the Function column to display a popup drop list, and then select the desired function. The supported functions are briefly summarized in the table below. For more information about a function, click on the function's name.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Function&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bypass&lt;/td&gt;&lt;td&gt;No operation: the output is identical to the input regardless of the current chord.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Lead"&gt;Lead&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Input notes are transposed in position by adding accidentals as needed, so that the output notes remain as close as possible to the input notes. This function is useful for soloing because it minimizes differences between chords and preserves the input's shape.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Comp"&gt;Comp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;A single input note triggers a chord, with user control over &lt;a href="#Voicing"&gt;voicings&lt;/a&gt;, &lt;a href="#Variation"&gt;variations&lt;/a&gt;, and &lt;a href="#Arpeggio_Period"&gt;arpeggiation&lt;/a&gt;. The input note's pitch determines the pitch window within which the output chord is voiced.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Input notes are transposed via shifting, so that C is always the chord root, E is always the third, G is always the fifth, etc. This function also supports &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt;, which shifts the current scale so that C is the root of the chord being approached (or as close as possible).&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;Depending on which function is used, the relationship between input and output notes can be one to one, or one to many. The Comp function is one to many, i.e. one input note generates multiple output notes, whereas the melodic functions (Lead and Bass) are one to one, unless the &lt;a href="#Harmonizer"&gt;harmonizer&lt;/a&gt; is active.
+
+&lt;a name="Recording"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Recording"&gt;Recording&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase allows performances to be recorded as MIDI data. To record a performance, select the &lt;a href="#Record"&gt;Record&lt;/a&gt; command, via &lt;span class="cmd"&gt;Transport/Record&lt;/span&gt; or &lt;span class="key"&gt;Ctrl+R&lt;/span&gt;. A recording can be started at any time: a &lt;a href="#Song"&gt;song&lt;/a&gt; needn't be open, and if it is open, it needn't be &lt;a href="#Play-Stop"&gt;playing&lt;/a&gt;, thus introductions, interludes, and endings can all be recorded. By default, you're prompted for an output filename, but if you prefer "one touch" recording, uncheck the &lt;a href="#Prompt_for_filename"&gt;prompt for filename&lt;/a&gt; option. It's also possible to &lt;a href="#Always_record"&gt;always record&lt;/a&gt;, and thereby avoid data loss due to failure to press record. To play back the completed recording, use the &lt;a href="#Record_Player_dialog"&gt;Record Player dialog&lt;/a&gt;, or play the MIDI file in a suitable application; also see &lt;a href="#Record_output_files"&gt;record output files&lt;/a&gt; below. Recording a performance as MIDI is often more convenient than recording the audio, for the following reasons:
+
+&lt;ul&gt;
+&lt;li&gt;MIDI data is extremely compact compared to audio.
+&lt;/li&gt;&lt;li&gt;The recording can't be ruined by incorrect levels.
+&lt;/li&gt;&lt;li&gt;The MIDI data can be imported into a Digital Audio Workstation (DAW), edited, played through higher quality instruments, and properly mixed like a studio recording.
+&lt;/li&gt;&lt;/ul&gt;
+
+&lt;a name="Record_output_files"&gt;&lt;h2&gt;Record output files&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;Recording creates two output files: a standard MIDI file, and a .cemr file. The .cemr file is unique to ChordEase, and has some important advantages over the MIDI file, detailed below. It's recommended that you keep both files, even though they contain similar data. Note that a .cemr can be converted to a MIDI file, whereas the reverse is not true.
+
+&lt;ul&gt;
+&lt;li&gt;The .cemr file has superior timing resolution compared to a standard MIDI file, and thus captures rhythmic subtleties more faithfully. The timestamps in a .cemr file are accurate to within tenths of a microsecond.
+&lt;/li&gt;&lt;li&gt;Unlike a MIDI file, the .cemr file preserves the port information, i.e. which output device each &lt;a href="#Part"&gt;part&lt;/a&gt; is associated with. Consequently if a .cemr file is played back via the &lt;a href="#Record_Player_dialog"&gt;Record Player dialog&lt;/a&gt;, assuming the output MIDI setup is unchanged, the performance should sound exactly as it did originally.
+&lt;/li&gt;&lt;li&gt;The .cemr file can be exported as a standard MIDI file via the Record Player dialog, and the resulting MIDI file can have a different PPQ than the original MIDI file had, without loss of precision; for instructions, see &lt;a href="#MIDI_file_resolution"&gt;MIDI file resolution&lt;/a&gt;.
+&lt;/li&gt;&lt;/ul&gt;
+
+&lt;a name="MIDI_targets"&gt;&lt;h2&gt;MIDI targets&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;Many ChordEase parameters can be changed remotely via a MIDI device, e.g. a MIDI control surface, and certain commands can also be triggered remotely. The parameters and commands that can be remotely controlled are called &lt;em&gt;MIDI targets&lt;/em&gt;. In order to remotely control a MIDI target, you must first assign a MIDI message to it. This process of assigning messages to targets is sometimes known as &lt;em&gt;MIDI mapping&lt;/em&gt;.
+
+&lt;/p&gt;&lt;p&gt;MIDI assignments can be edited manually, or &lt;a href="#Learn"&gt;learned&lt;/a&gt;. Learning is usually easier. The &lt;a href="#Patch"&gt;patch&lt;/a&gt; and the &lt;a href="#Part"&gt;part&lt;/a&gt; have different MIDI targets, and they're edited in different places. To edit patch MIDI assignments, use the &lt;a href="#Patch_MIDI"&gt;patch MIDI page&lt;/a&gt;. To edit a part's MIDI assignments, use the &lt;a href="#Part_MIDI"&gt;part MIDI page&lt;/a&gt;. Each part has its own MIDI targets, so be sure the correct part is selected in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. To see a summary of the current MIDI mapping, use the &lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt; dialog. It lists all MIDI targets to which controllers are currently assigned, for the patch and all parts.
+
+&lt;/p&gt;&lt;p&gt;When a parameter is changed remotely, the corresponding control in the user interface is updated. However this update is only apparent if that control's parent page is visible. ChordEase can automatically show the appropriate page; see &lt;a href="#Chase_Events"&gt;Chase Events&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;Note that the same MIDI message can be assigned to multiple targets. This is occasionally useful, but it can cause confusion. If you assign a message to a target, and then assign the same message to a different target, it now controls both targets. If that's undesirable, you must manually delete the unwanted assignment. This can be accomplished by right-clicking the corresponding target's row in the appropriate MIDI page, and choosing &lt;span class="cmd"&gt;Reset&lt;/span&gt; in the context menu. It can also be done via the MIDI Assignments dialog, by selecting one or more rows and choosing &lt;span class="cmd"&gt;Delete&lt;/span&gt; in the context menu. To delete all MIDI assignments at once, use the &lt;a href="#Reset_All_Targets"&gt;Reset All Targets&lt;/a&gt; command.
+
+
+&lt;h1&gt;Patch bar&lt;/h1&gt;
+
+&lt;a name="General"&gt;&lt;h2&gt;General&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This &lt;a href="#Patch"&gt;patch&lt;/a&gt; page contains general settings that have systemwide effects.
+
+&lt;a name="Tempo"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Tempo"&gt;Tempo&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the speed at which the current &lt;a href="#Song"&gt;song&lt;/a&gt; is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt;, in beats per minute (BPM). Fractional tempos are allowed. This setting also affects timing parameters that accept note durations, such as &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; and &lt;a href="#Arpeggio_Period"&gt;arpeggio period&lt;/a&gt;. This setting is the &lt;em&gt;nominal&lt;/em&gt; tempo; the actual tempo is influenced by the &lt;a href="#Tempo_Multiple"&gt;tempo multiple&lt;/a&gt; (see below) and therefore may differ from this setting. The actual tempo is displayed in the &lt;a href="#Status_bar"&gt;status bar&lt;/a&gt;. A song may optionally specify a tempo (see &lt;a href="#Song_Properties"&gt;song properties&lt;/a&gt;), in which case the song's tempo overrides the patch tempo.
+
+&lt;a name="Tempo_Multiple"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Tempo_Multiple"&gt;Tempo Multiple&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is a scaling factor which is applied to the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; setting (see above). The actual tempo is the product of the tempo and the tempo multiple. The actual tempo is displayed in the &lt;a href="#Status_bar"&gt;status bar&lt;/a&gt;. Tempo multiple is especially useful if your songs all specify different tempos, and you want to &lt;a href="#Play-Stop"&gt;play&lt;/a&gt; them all faster or slower by the same percentage. Instead of editing each song's tempo, you can simply adjust the tempo multiple. Because it's independent of song tempos and scales them proportionally, tempo multiple provides a convenient means of adjusting tempo during a performance, e.g. &lt;a href="#MIDI_targets"&gt;remotely&lt;/a&gt; via a MIDI controller.
+
+&lt;a name="Key"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Key"&gt;Key&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the transposed key signature of the current &lt;a href="#Song"&gt;song&lt;/a&gt;. It shows the sum of the song's key signature and the &lt;a href="#Transpose"&gt;transpose&lt;/a&gt; setting (see below). Transposition can be accomplished either by selecting a different key, or by adjusting the transpose setting. The key and transpose settings are automatically synchronized with each other and have the same effect, so use whichever method is more convenient. If transpose is zero (no transposition), the song's actual key signature is shown. The transposed key signature is also displayed in the &lt;a href="#Status_bar"&gt;status bar&lt;/a&gt;.
+
+&lt;a name="Transpose"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Transpose"&gt;Transpose&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the amount to transpose the current &lt;a href="#Song"&gt;song&lt;/a&gt; by, in semitones. The amount may be positive or negative. If it's zero, the song is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt; in its original key. This setting is automatically synchronized with the &lt;a href="#Key"&gt;key&lt;/a&gt; setting (see above). Transposition can be accomplished by either method. The transpose setting is useful for transposing by an interval, whereas the key setting is useful when the desired key is known. Note that it's possible to transpose during a performance, e.g. &lt;a href="#MIDI_targets"&gt;remotely&lt;/a&gt; via a MIDI controller. A song may optionally specify a transposition (see &lt;a href="#Song_Properties"&gt;song properties&lt;/a&gt;), in which case the song's transposition overrides the patch transposition.
+
+&lt;a name="PPQ"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="PPQ"&gt;PPQ&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the time resolution, in pulses per quarter note. It affects all time-related functions. Higher PPQ values increase the accuracy of note durations and timing parameters such as &lt;a href="#Arpeggio_Period"&gt;arpeggio period&lt;/a&gt;, but at the cost of decreasing the granularity of the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; setting. Large PPQ values will reduce the number of available tempos, particularly faster tempos, and may cause the error message "Can't create timer." Though a wide range of PPQ values are permitted, values greater than 48 are not recommended. The default PPQ is 24.
+
+&lt;a name="Lead-in"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Lead-in"&gt;Lead-in&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the length of the lead-in, or count-off, in measures. If it's non-zero, the &lt;a href="#Metronome"&gt;metronome&lt;/a&gt; plays for the specified period before the &lt;a href="#Song"&gt;song&lt;/a&gt; actually starts. This allows the performer(s) to be in sync with the tempo by the time the song begins.
+
+&lt;a name="Metronome"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Metronome"&gt;Metronome&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase expects the performer(s) to stay in sync with it, and provides a metronome to facilitate this. For practicing, it may be acceptable to route the metronome and the musical output to the same MIDI instrument and output speakers. For performances however, it's probably undesirable for the audience to hear the metronome. In this case it's recommended to route the metronome to a separate MIDI instrument, such as a drum machine, so that the performer(s) can listen to it privately via headphones. A headphone distribution amplifier may be useful for ensembles.
+
+&lt;/p&gt;&lt;p&gt;The metronome can be configured to start before the song actually begins, via the &lt;a href="#Lead-in"&gt;lead-in&lt;/a&gt; setting. Some performers may be able to stay in sync with ChordEase without relying on the metronome. In an ensemble, it may be possible for only one member (e.g. the drummer) to listen to the metronome. It's also possible to play in free time, advancing the chord manually via the &lt;a href="#Next_Chord"&gt;next chord&lt;/a&gt; command, in which case the metronome is irrelevant.
+
+&lt;a name="Enable"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Enable"&gt;Enable&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This check box enables or disables the metronome.
+
+&lt;a name="Metronome_Port"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Metronome_Port"&gt;Port&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the device index of the MIDI output device to be used as a metronome. For a list of the available output devices, see the right-hand pane of the &lt;a href="#Devices"&gt;devices&lt;/a&gt; bar. Note that unlike MIDI channels, ports are zero-origin.
+
+&lt;a name="Metronome_Channel"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Metronome_Channel"&gt;Channel&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the MIDI channel number to which metronome messages will be sent. MIDI channels range from 1 to 16. The user must ensure that the desired output device is listening on the specified channel. If necessary, the output messages can be examined using the &lt;a href="#MIDI_Output"&gt;MIDI output&lt;/a&gt; bar. In typical MIDI setups channel 10 is reserved for drums.
+
+&lt;a name="Metronome_Patch"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Metronome_Patch"&gt;Patch&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the optional patch number to send to the metronome instrument. If this setting is −1 (shown as N/A), no patch change message is sent. If this setting is greater than or equal to zero, the corresponding patch is set during startup, and whenever a &lt;a href="#Song"&gt;song&lt;/a&gt; is loaded.
+
+&lt;a name="Metronome_Volume"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Metronome_Volume"&gt;Volume&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the optional volume level to send to the metronome instrument. If this setting is −1 (shown as N/A), no volume message is sent. If this setting is greater than or equal to zero, the corresponding volume is set during startup, and whenever a &lt;a href="#Song"&gt;song&lt;/a&gt; is loaded.
+
+&lt;a name="Normal_Note"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Normal_Note"&gt;Normal Note&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the MIDI note sent for normal (non-accented) metronome beats. In typical MIDI setups, Eb3 on channel 10 gives good results.
+
+&lt;a name="Normal_Velocity"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Normal_Velocity"&gt;Normal Velocity&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the velocity of normal (non-accented) metronome beats.
+
+&lt;a name="Accent_Note"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Accent_Note"&gt;Accent Note&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the MIDI note sent for accented metronome beats. The first beat of each measure is accented. This setting is only applicable if &lt;a href="#Use_same_note"&gt;use same note&lt;/a&gt; is unchecked.
+
+&lt;a name="Accent_Velocity"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Accent_Velocity"&gt;Accent Velocity&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the velocity of accented metronome beats. It should typically be greater than the &lt;a href="#Normal_Velocity"&gt;normal velocity&lt;/a&gt;, particularly if normal and accented metronome beats share the same note.
+
+&lt;a name="Use_same_note"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Use_same_note"&gt;Use same note&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;If this setting is enabled, the same MIDI note is used for both normal and accented metronome beats, in which case they must have different velocities to be distinguishable.
+
+&lt;a name="Patch_MIDI"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Patch_MIDI"&gt;MIDI&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This page lists the patch &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. Each row corresponds to a &lt;a href="#Patch"&gt;patch&lt;/a&gt; parameter or command that can be remotely controlled via MIDI. In order to remotely control a MIDI target, you must first assign a MIDI message to it. MIDI assignments can be created by editing the items on this page, though it's usually easier to have ChordEase &lt;a href="#Learn"&gt;learn&lt;/a&gt; the assignments. This page also lets you change or delete existing MIDI assignments.
+
+&lt;/p&gt;&lt;p&gt;To create a MIDI assignment manually, you need to know what message your MIDI device is sending, and what port and channel it's sending it on. For example, suppose you want to assign a keyboard's modulation wheel to the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; parameter, and you happen to know that the wheel sends a continuous controller message for controller number one, and that the message will be received on port zero and channel two. In this case you could make the assignment as follows:
+
+&lt;ol&gt;
+&lt;li&gt;Find the row named "Tempo".
+&lt;/li&gt;&lt;li&gt;Left-click the port and change it to zero.
+&lt;/li&gt;&lt;li&gt;Left-click the channel and change it to two.
+&lt;/li&gt;&lt;li&gt;Left-click the event type and change it to "Control".
+&lt;/li&gt;&lt;li&gt;Left-click the controller number and change it to one.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;/p&gt;&lt;p&gt;To delete an existing assignment, right-click within the corresponding row to display its context menu, and select &lt;span class="cmd"&gt;Reset&lt;/span&gt;. This resets all of the target's properties to their default state. To disable a target without resetting all its properties, just set its event type to "None".
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th colspan="2"&gt;MIDI target columns&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Target&lt;/td&gt;&lt;td&gt;The name of the MIDI target this row corresponds to.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Port&lt;/td&gt;&lt;td&gt;The input port on which the assigned MIDI message is expected to arrive. This is equivalent to a MIDI input device index. See the &lt;a href="#MIDI_Devices"&gt;MIDI Devices&lt;/a&gt; bar for a list of MIDI input devices. Note that unlike channels, ports are zero-origin.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Chan&lt;/td&gt;&lt;td&gt;The channel on which the assigned MIDI message is expected to arrive. Note that unlike ports, channels are one-origin.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Event&lt;/td&gt;&lt;td&gt;The event type of the assigned MIDI message. The supported event types are: None, Control (continuous controller), Wheel (pitch bend), Program Change, and Channel Aftertouch.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Control&lt;/td&gt;&lt;td&gt;The controller number of the assigned MIDI message. This parameter only applies to the continuous controller event type.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Start&lt;/td&gt;&lt;td&gt;The start of the &lt;a href="#Normalized_controller_range"&gt;normalized controller range&lt;/a&gt;; see below.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;End&lt;/td&gt;&lt;td&gt;The end of the normalized controller range; see below.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Value&lt;/td&gt;&lt;td&gt;The current value of the assigned MIDI message. The value is read-only, and is updated dynamically. Note that this is the raw MIDI value, ranging from 0 to 127, not the normalized value.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Normalized_controller_range"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Normalized_controller_range"&gt;Normalized controller range&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;Each target has a normalized controller range, defined by the values in the Start and End columns. This range determines how the assigned MIDI message is mapped to the target parameter. The default normalized range is from 0 to 1, which maps the raw MIDI value (ranging from 0 to 127) to the target parameter's entire range (which varies depending on the parameter). In some cases you may want your control to cover only a subset of the target parameter's range. You can accomplish this by adjusting the normalized range.
+
+&lt;/p&gt;&lt;p&gt;For example, suppose you've assigned a MIDI message to the &lt;a href="#Transpose"&gt;Transpose&lt;/a&gt; parameter, which ranges from 0 to 11. By default, your MIDI control covers this entire range, i.e. 0 maps to 0, and 127 maps to 11. Let's say you want your MIDI control to cover only the middle of this range. In the Transpose row, set Start to 0.25, and End to 0.75. Now 0 maps to 3, and 127 maps to 8. Or suppose you want your control to transpose up or down a tritone, with zero in the middle. Set Start to −0.5, and End to 0.5. Now 0 maps to −6, and 127 maps to 6.
+
+&lt;/p&gt;&lt;p&gt;The normalized range can be reversed, i.e. Start can be greater than End, in which case the target parameter moves backwards. Since the same MIDI message can be assigned to multiple targets, it's possible to set up a crossfader. For example, suppose you assign a controller to the output volume of two different parts, and then for one of the parts, reverse the normalized range, so that Start is 1 and End is 0. Moving the assigned control now changes both output volumes, but in opposite directions. This could be useful if you're layering two parts, and want a single control that adjusts the mix between them.
+
+
+&lt;h1&gt;Parts bar&lt;/h1&gt;
+
+&lt;a name="Parts_list"&gt;&lt;h2&gt;Parts list&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This control contains a list of the existing &lt;a href="#Part"&gt;parts&lt;/a&gt;. The parts list selection determines which part's settings are shown and editable. The parts list also lets you create new parts, remove existing parts, enable, disable and rename parts, and select &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. When the parts list has focus, the standard &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands are supported, e.g. &lt;a href="#Copy"&gt;copy&lt;/a&gt;, &lt;a href="#Cut"&gt;cut&lt;/a&gt;, &lt;a href="#Paste"&gt;paste&lt;/a&gt;, etc. The parts can also be reordered by dragging and dropping their list control items.
+
+&lt;/p&gt;&lt;p&gt;The settings shown in the &lt;a href="#Parts_bar"&gt;parts bar&lt;/a&gt;'s tabbed pages correspond to whichever part is currently selected in the parts list. The parts list supports multiple selection, i.e. multiple parts can be selected at once. Note however that since the tabbed pages can only show one part at a time, if multiple parts are selected, the part pages correspond to the focused part, indicated by a dotted rectangle around the list item.
+
+&lt;/p&gt;&lt;p&gt;Before editing part settings, make sure the intended part is selected in the parts list. To select a single part, left-click its name in the Part column. To select a contiguous range of parts, left-click the first part in the range, and then while holding down the &lt;span class="key"&gt;Shift&lt;/span&gt; key, left-click the last part in the range. To select multiple non-contiguous parts, left-click each part while holding down the &lt;span class="key"&gt;Ctrl&lt;/span&gt; key. To unselect all parts, left-click the list control's background.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Column&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Checkbox&lt;/td&gt;&lt;td&gt;This checkbox enables or disables the part. If it's checked, the part is enabled, otherwise it's disabled. A disabled part doesn't generate any MIDI output.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Part&lt;/td&gt;&lt;td&gt;This is the name of the part. To change the name, assuming the part is already selected, left-click the name to display a popup edit control. You can also begin editing the name via &lt;span class="cmd"&gt;Edit/Rename&lt;/span&gt; on the main menu, &lt;span class="cmd"&gt;Rename&lt;/span&gt; on the list's context menu, or the &lt;span class="key"&gt;F2&lt;/span&gt; shortcut. After making your changes, save them by pressing &lt;span class="key"&gt;Enter&lt;/span&gt; or clicking anywhere outside the edit control. To cancel, press &lt;span class="key"&gt;Esc&lt;/span&gt;. If the part isn't selected, left-click its name once to select the part, wait a second, and then left-click its name again to display the popup edit control.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Function&lt;/td&gt;&lt;td&gt;This is the part's &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt;. To change it, left-click it to display a popup drop list, and select the desired function from the list.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Part_Input"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Part_Input"&gt;Input&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This page contains input-related settings for the current &lt;a href="#Part"&gt;part&lt;/a&gt;, including which MIDI port and channel the part should receive its input from.
+
+&lt;a name="Input_Port"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Input_Port"&gt;Port&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the device index of the MIDI input device from which the &lt;a href="#Part"&gt;part&lt;/a&gt; expects to receive its input. For a list of the available input devices, see the left-hand pane of the &lt;a href="#Devices"&gt;devices&lt;/a&gt; bar. Note that unlike MIDI channels, ports are zero-origin. The input port and &lt;a href="#Input_Channel"&gt;channel&lt;/a&gt; can also be &lt;a href="#Learn"&gt;learned&lt;/a&gt;, as follows:
+
+&lt;ol&gt;
+&lt;li&gt;Enable learn mode, via &lt;span class="cmd"&gt;MIDI/Learn&lt;/span&gt; in the menus or the &lt;a href="#Toolbar"&gt;toolbar&lt;/a&gt;, or the &lt;span class="key"&gt;Ctrl+L&lt;/span&gt; shortcut.
+&lt;/li&gt;&lt;li&gt;Select the Input page in the &lt;a href="#Parts_bar"&gt;parts bar&lt;/a&gt;, and select the intended part in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;.
+&lt;/li&gt;&lt;li&gt;Left-click in either the port or channel edit box. A green outline appears around the edit box, indicating that it's ready to learn. Note that the port and channel are learned simultaneously, regardless of which one you select.
+&lt;/li&gt;&lt;li&gt;Play a note on your MIDI device. The input port and channel should snap to appropriate values.
+&lt;/li&gt;&lt;li&gt;Disable learn mode, the same way you enabled it. The green outline disappears.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;a name="Input_Channel"&gt;&lt;h2&gt;Channel&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the MIDI channel number on which the &lt;a href="#Part"&gt;part&lt;/a&gt; listens for its input. MIDI channels range from 1 to 16. To discover which channel the input device is sending on, the input messages can be examined using the &lt;a href="#MIDI_Input"&gt;MIDI input&lt;/a&gt; bar. The input port and channel can also be &lt;a href="#Learn"&gt;learned&lt;/a&gt;, in which case it's not necessary to know their values; for instructions, see &lt;a href="#Input_Port"&gt;input port&lt;/a&gt; above.
+
+&lt;a name="Zone_Low"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Zone_Low"&gt;Zone Low&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;Each &lt;a href="#Part"&gt;part&lt;/a&gt; responds to a range of input notes, also known as the part's &lt;em&gt;zone&lt;/em&gt;. This setting specifies the zone's lowest note. The highest note is specified via &lt;a href="#Zone_High"&gt;Zone High&lt;/a&gt;. By default the zone is C−1 to G9, which covers the entire 128-note range of MIDI.
+
+&lt;/p&gt;&lt;p&gt;Zones let you play multiple parts from the same instrument, using different ranges of notes. The usual case is self-accompaniment on a keyboard instrument, using two non-overlapping zones, one for each hand. This is known as a &lt;em&gt;split&lt;/em&gt;. Normally the right-hand zone is used for soloing, while the left-hand zone is used for playing chords. To set up a typical split, create two parts, both receiving on the same input port and channel. Assuming a split point of C4, for the right-hand part, select the &lt;a href="#Lead"&gt;Lead&lt;/a&gt; &lt;a href="#Mapping_functions"&gt;function&lt;/a&gt; and a zone of C4 to G9. For the left-hand part, select the &lt;a href="#Comp"&gt;Comp&lt;/a&gt; function and a zone of C−1 to B3.
+
+&lt;/p&gt;&lt;p&gt;It's also possible to play multiple parts from the same instrument, using the &lt;em&gt;same&lt;/em&gt; range of notes. This is called &lt;em&gt;layering&lt;/em&gt;. In this case the parts may have partially or completely overlapping zones.
+
+&lt;a name="Zone_High"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Zone_High"&gt;Zone High&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting is the upper limit of the range of notes the &lt;a href="#Part"&gt;part&lt;/a&gt; responds to; see &lt;a href="#Zone_Low"&gt;Zone Low&lt;/a&gt;.
+
+&lt;a name="Input_Transpose"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Input_Transpose"&gt;Transpose&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting is the amount of transposition to apply to input notes, in semitones. The transposition is applied &lt;em&gt;before&lt;/em&gt; the notes are passed to the part's &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt;. For normal operation, it should be zero. To transpose by a number of octaves, it should be a multiple of 12, e.g. 12 for up an octave, 24 for up two octaves, −12 for down an octave, etc.
+
+&lt;/p&gt;&lt;p&gt;This setting also lets you play in a diatonic scale other than C. This may be useful for MIDI instruments on which playing in C would be inconvenient. To use an input scale other than C, specify a non-octave input transposition, i.e. an input transposition that isn't a multiple of 12. For example, if you prefer to play in the key of Bb, set input transposition to 2 (or −10). For other examples, see the table below.
+
+&lt;/p&gt;&lt;p&gt;Note that the terms "white keys" and "black keys" are used as shorthand for diatonic and non-diatonic notes respectively, but this no longer holds true if a non-octave input transposition is applied. For example, if input transposition is 2, the notes of the Bb major scale are the "white keys" in the sense that they map to the notes of the current chord scale. The remaining input notes are "black keys" and their behavior is determined by the &lt;a href="#Non-diatonic_notes"&gt;non-diatonic notes&lt;/a&gt; setting.
+
+&lt;/p&gt;&lt;p&gt;Input transposition is unrelated to the global &lt;a href="#Transpose"&gt;transpose&lt;/a&gt; function, which affects output notes, not input notes.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Key&lt;/th&gt;&lt;th&gt;Up&lt;/th&gt;&lt;th&gt;Down&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;−12&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Db&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;−1&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;−2&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Eb&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;−3&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;−4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;−5&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Gb&lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;−6&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;−7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ab&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;−8&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;−9&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bb&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;−10&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;−11&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Velocity_Offset"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Velocity_Offset"&gt;Velocity Offset&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting is an offset which is added to each input note's velocity. The offset ranges from −127 to 127. For normal operation, it should be zero. Specify a positive offset to increase velocity, or a negative offset to decrease velocity. In either direction, compression may occur, i.e. dynamic range may be reduced. Note that extreme negative values may effectively mute the part. Altering note velocities may cause timbral changes in addition to or instead of volume changes, depending on the output MIDI instrument. To change a part's volume without affecting its timbre, use &lt;a href="#Output_Volume"&gt;output volume&lt;/a&gt; instead.
+
+&lt;a name="Non-diatonic_notes"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Non-diatonic_notes"&gt;Non-diatonic notes&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines how non-diatonic input notes (also known as black keys) are handled. The terms "white keys" and "black keys" are used loosely here to mean diatonic and non-diatonic notes respectively, but bear in mind that ChordEase can accept diatonic scales other than C as input; see &lt;a href="#Input_Transpose"&gt;input transpose&lt;/a&gt;. By default, non-diatonic input notes are allowed, and may generate non-scale output notes. To see the effect of these modes, show the &lt;a href="#Piano_dialog"&gt;piano dialog&lt;/a&gt; and set its key label style to "Output Notes" (via its context menu). The effect can also be seen on the &lt;a href="#Output_Notes_bar"&gt;output notes bar&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Allow&lt;/td&gt;&lt;td&gt;Black keys are allowed, and &lt;em&gt;may&lt;/em&gt; create non-scale tones, i.e. "out" notes. The uncertainty results from the fact that remapping can reduce the interval between two adjacent white keys from a whole step to a half step. In such cases the black key between them generates a duplicate note. This means that a given chromaticism may or may not generate unique notes, depending on the chord. Playing a complete chromatic scale is only consistently possible when the &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; is "Bypass".
+&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Quantize&lt;/td&gt;&lt;td&gt;All black keys are quantized to the nearest scale tone and therefore generate duplicate notes. This may be useful on inherently sloppy instruments, e.g. MIDI guitars.
+&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disable&lt;/td&gt;&lt;td&gt;The black keys do nothing.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Skip&lt;/td&gt;&lt;td&gt;The diatonic scale is compressed onto the chromatic scale, so that all keys are active and output unique scale tones. This is useful when inputting notes via a continuous controller, theremin, or similar device, because it ensures that the scale tones are linearly mapped to controller coordinates, i.e. any two adjacent scale tones are always separated by the same increment of physical motion. Note that interval distances are significantly reduced, e.g. playing a fifth yields an octave. The mapping is aligned so that middle C (C4) remains constant, but all other notes are shifted.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Input_device_name"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Input_device_name"&gt;Device name&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the name of the MIDI input device associated with the current &lt;a href="#Part"&gt;part&lt;/a&gt;. To change the input device, edit the &lt;a href="#Input_Port"&gt;input port&lt;/a&gt;. For a list of input devices, see the &lt;a href="#MIDI_Devices"&gt;devices&lt;/a&gt; bar.
+
+&lt;a name="Part_Output"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Part_Output"&gt;Output&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This page contains output-related settings for the current &lt;a href="#Part"&gt;part&lt;/a&gt;, including which MIDI port and channel the part should send its output to.
+
+&lt;a name="Output_Port"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Output_Port"&gt;Port&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the device index of the MIDI output device to which the &lt;a href="#Part"&gt;part&lt;/a&gt;'s output will be sent. For a list of the available output devices, see the right-hand pane of the &lt;a href="#Devices"&gt;devices&lt;/a&gt; bar. Note that unlike MIDI channels, ports are zero-origin.
+
+&lt;a name="Output_Channel"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Output_Channel"&gt;Channel&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the MIDI channel number on which the &lt;a href="#Part"&gt;part&lt;/a&gt;'s output will be sent. MIDI channels range from 1 to 16. The user must ensure that the desired output device is listening on the specified channel. If necessary, the output messages can be examined using the &lt;a href="#MIDI_Output"&gt;MIDI output&lt;/a&gt; bar.
+
+&lt;a name="Output_Patch"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Output_Patch"&gt;Patch&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the optional patch number to send to the output instrument. If this setting is −1 (shown as N/A), no patch change message is sent. If this setting is greater than or equal to zero, the corresponding patch is set during startup, and whenever a &lt;a href="#Song"&gt;song&lt;/a&gt; is loaded.
+
+&lt;a name="Output_Volume"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Output_Volume"&gt;Volume&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the optional volume level to send to the output instrument. If this setting is −1 (shown as N/A), no volume message is sent. If this setting is greater than or equal to zero, the corresponding volume is set during startup, and whenever a &lt;a href="#Song"&gt;song&lt;/a&gt; is loaded.
+
+&lt;a name="Harmonic_Anticipation"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Harmonic_Anticipation"&gt;Harmonic Anticipation&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines the time relationship between the &lt;a href="#Part"&gt;part&lt;/a&gt;'s harmony and the chord changes. If harmonic anticipation is greater than zero, the part switches to the next chord's scale early. This creates a time window before each chord change, during which the part's input notes are mapped to the next chord's scale instead of the current chord's scale. Depending on the length of the anticipation, the chords involved, and the timing of the accompanying parts, this may be perceived as more or less dissonant. The usual application is for the soloist to be out in front of, or &lt;em&gt;leading&lt;/em&gt; the accompaniment, harmonically speaking. Harmonic anticipation is expressed as a fraction of a whole note; see &lt;a href="#Durations"&gt;durations&lt;/a&gt;. Typical values range from an eighth note to a quarter note. Negative harmonic anticipation is also permitted, in which case the part is behind (dragging) the changes.
+
+&lt;/p&gt;&lt;p&gt;Note that harmonic anticipation affects the behavior of the &lt;a href="#Fix_held_notes"&gt;fix held notes&lt;/a&gt; feature. Without harmonic anticipation, if a note is struck just before a chord change and held, and the chord changes in such a way as to make that note invalid, the note gets corrected. However if harmonic anticipation is in effect, and the note is struck within the harmonic anticipation window, it's mapped using the coming chord's scale. This ensures that the note will remain valid when the chord change arrives, and avoids the possibility of a correction. For example if harmonic anticipation is set to an eighth note, notes can be struck and held up to an eighth note ahead of a chord change without any risk that they will become invalid. Even if held note correction is disabled, it's still recommended to use a small amount of harmonic anticipation, to provide "slack" for notes played slightly early.
+
+&lt;a name="Controllers_thru"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Controllers_thru"&gt;Controllers thru&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines whether MIDI controllers are passed through to the output device or not. In addition to controller messages, it also affects all other non-note MIDI messages, e.g. patch change, pitch wheel, and channel aftertouch messages. This setting should normally be enabled, so that the input instrument's controls are forwarded to the output device. Common controls affected by this setting include sustain, modulation, pitch bend, and volume. Note that MIDI messages that are &lt;a href="#MIDI_targets"&gt;assigned&lt;/a&gt; to ChordEase parameters will never be passed through, regardless of this setting.
+
+&lt;/p&gt;&lt;p&gt;This setting should be considered carefully in some cases. Suppose you have a split, consisting of two parts, both of which receive input from different &lt;a href="#Zone_Low"&gt;zones&lt;/a&gt; of the same device, and both of which send output to the same device. By default, the output device will receive two copies of every controller message, one from each part. This may or may not be appropriate, depending on how the device is set up. If the output device is multi-timbral, and the two parts are being output to two different instruments via two different &lt;a href="#Output_Channel"&gt;MIDI channels&lt;/a&gt;, you probably want to pass the controllers through to both instruments, so that they both respond to sustain, pitch bend, etc. However if the two parts are being output to the same instrument, you may want to disable controllers thru for one of them, because sending two copies of every controller message to the same instrument wastes MIDI bandwidth and may confuse the instrument. To see what exactly controllers are being sent, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI output bar&lt;/a&gt;.
+
+&lt;a name="Local_control"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Local_control"&gt;Local control&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting enables or disables local control on the MIDI input device. For normal operation this setting should be unchecked, in order to disable local control. If the setting is checked, the "local on" message is sent to the device, otherwise the "local off" message is sent. ChordEase sends the local control message whenever this setting is changed, as well as during startup and whenever a &lt;a href="#Song"&gt;song&lt;/a&gt; is opened. The "local off" message is controller number 122, with a parameter of zero.
+
+&lt;/p&gt;&lt;p&gt;Local control only matters if you're using the same device for both input and output. If your input device doesn't generate audio, or you're using a different device for output, local control is irrelevant. Disabling local control disconnects the instrument's user interface (e.g. its keyboard) from its audio generator. The usual symptom of failing to disable local control is that when you play a note on the instrument, you hear two notes. The notes may or may not differ, and if they're the same, the audio may sound "thin" due to acoustic cancellations. This occurs because the instrument is sending notes to ChordEase, and receiving (possibly different) notes back, but the audio generator is playing the local notes in addition to the notes received from ChordEase.
+
+&lt;/p&gt;&lt;p&gt;Note that not all MIDI instruments respond to the local control message. In this case you should consult your instrument's user manual to determine whether it's possible to disable local control, and if so how to do it.
+
+&lt;a name="Fix_held_notes"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Fix_held_notes"&gt;Fix held notes&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting enables or disables held note correction for the &lt;a href="#Part"&gt;part&lt;/a&gt;. If a note is held over a chord change, the held note may become invalid, i.e. it may not be a member of the new chord's scale. ChordEase can optionally correct the invalid note, by replacing it with the new chord's nearest scale tone. The effect is more obvious when playing a sound that doesn't decay, e.g. an organ. Held note correction is supported for &lt;a href="#Comp"&gt;comp&lt;/a&gt;, but works slightly differently: notes that become invalid are corrected to the nearest tetrachord tone, instead of the nearest scale tone. This can result in interesting chord evolution and unusual voicings. Held note correction interacts with &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt;.
+
+&lt;a name="Output_device_name"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Output_device_name"&gt;Device name&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the name of the MIDI output device associated with the current &lt;a href="#Part"&gt;part&lt;/a&gt;. To change the output device, edit the &lt;a href="#Output_Port"&gt;output port&lt;/a&gt;. For a list of output devices, see the &lt;a href="#MIDI_Devices"&gt;devices&lt;/a&gt; bar.
+
+&lt;a name="Lead"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Lead"&gt;Lead&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This page contains settings related to the Lead &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; for the current &lt;a href="#Part"&gt;part&lt;/a&gt;. Currently this page consists entirely of &lt;a href="#Harmonizer"&gt;harmonizer&lt;/a&gt; settings, though this may change in the future.
+
+&lt;/p&gt;&lt;p&gt;The lead function maps input notes to output notes by adding accidentals, i.e. sharps or flats. Unlike the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function which transposes by shifting the entire scale, the lead function transposes &lt;em&gt;in place&lt;/em&gt;. For any given input note, the lead function generates an output note as close as possible to the input note in terms of pitch, usually within a half step. If a consistent melodic pattern is input, the output notes vary in response to the &lt;a href="#Song"&gt;song&lt;/a&gt;'s chord progression, but only by small amounts. The overall shape of the input is preserved, and this quality makes the lead function ideal for soloing.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th rowspan="2"&gt;Input&lt;/th&gt;&lt;th colspan="2"&gt;Output&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;A-7&lt;/th&gt;&lt;th&gt;F-7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;D&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;Eb&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;F#&lt;/td&gt;&lt;td&gt;F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;G&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;Ab&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;Bb&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Harmonizer"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Harmonizer"&gt;Harmonizer&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;The harmonizer automatically generates a harmony line for the &lt;a href="#Part"&gt;part&lt;/a&gt;'s output melody notes. The harmonizer is available for all melodic &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;, including &lt;a href="#Lead"&gt;lead&lt;/a&gt; and &lt;a href="#Bass"&gt;bass&lt;/a&gt;, but has no effect on the &lt;a href="#Comp"&gt;comp&lt;/a&gt; mapping function. The harmonization is diatonic, meaning the specified &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; is altered as needed to fit the current chord scale. The harmonizer also supports &lt;a href="#Static_harmony_range"&gt;static harmony&lt;/a&gt;. It's possible to generate multiple harmony lines for a given melody, e.g. three-part or four-part harmony, but only by creating multiple parts; for more information, see &lt;a href="#Omit_melody"&gt;omit melody&lt;/a&gt; below.
+
+&lt;a name="Generic_interval"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Generic_interval"&gt;Generic interval&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the &lt;em&gt;nominal&lt;/em&gt; interval between the melody note and the harmony note, in scale steps. The actual interval varies as needed to ensure that the harmony note belongs to the current chord scale. For example if the generic interval is a third, the actual interval may be a major third or a minor third, depending on the chord scale and melody note. The generic interval can be conceptualized as how many scale tones are skipped getting from the melody to the harmony. The generic interval can be positive or negative; if it's negative, the harmony is below the melody, otherwise it's above it. A partial table of generic intervals is given below. Intervals larger than those shown in the table are permitted.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Generic interval&lt;/th&gt;&lt;th&gt;Actual interval&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−7&lt;/td&gt;&lt;td&gt;octave below&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−6&lt;/td&gt;&lt;td&gt;7th below&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−5&lt;/td&gt;&lt;td&gt;6th below&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−4&lt;/td&gt;&lt;td&gt;5th below&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−3&lt;/td&gt;&lt;td&gt;4th below&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−2&lt;/td&gt;&lt;td&gt;3rd below&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;−1&lt;/td&gt;&lt;td&gt;2nd below&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;harmony disabled&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;2nd above&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;3rd above&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4th above&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;5th above&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;6th above&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;7th above&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;octave above&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;For a more specific example, suppose the generic interval is 2 (3rd above) and the current scale is C major. If the melody note is C, the harmony note is E, i.e. a major third, but if the melody note is D, the harmony note is F, i.e. a minor third.
+
+&lt;a name="Static_harmony_range"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Static_harmony_range"&gt;Static harmony range&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting lets you configure the &lt;a href="#Harmonizer"&gt;harmonizer&lt;/a&gt; to generate static harmony under certain circumstances. Static harmony is when the melody note changes but the harmony note doesn't, i.e. a stationary, non-moving harmony line. Normally the harmony is a fixed &lt;a href="#Generic_interval"&gt;generic interval&lt;/a&gt; from the melody, and consequently when the melody changes, the harmony changes too. However if a static harmony range is specified, the following rule is applied: if the interval between a new melody note and the previous harmony note is within the specified range, the previous harmony note is reused, resulting in static harmony.
+
+&lt;/p&gt;&lt;p&gt;The static harmony range is specified as a minimum interval and a maximum interval in semitones. The maximum must be greater than or equal to the minimum. If the maximum is zero, static harmony is disabled. The wider the static harmony range is, the more intervals are allowed, and the more often static harmony will occur. Note that if the minimum is zero, unisons may occur, i.e. the harmony and melody notes may be identical. In the extreme case where the minimum is zero and the maximum is twelve, the melody must deviate from the harmony by more than an octave before the harmony changes, resulting in a drone-like effect. The best results are obtained by carefully matching the static harmony range to the generic interval. For example if the generic interval is thirds, a range of 3 to 7 works well: as long as the melody stays within a minor third to a perfect fifth of the harmony, static harmony occurs.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th colspan="2"&gt;Chromatic intervals&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;unison&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;minor second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;major second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;minor third&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;major third&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;perfect fourth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;tritone&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;perfect fifth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;minor sixth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;major sixth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;minor seventh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;major seventh&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;octave&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Omit_melody"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Omit_melody"&gt;Omit melody&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting lets you output a harmony without outputting the melody on which the harmony is based. Normally both the melody and the harmony are output. If this setting is enabled, the melody note is omitted, so that only the harmony note is output. This may be useful if you're using multiple parts to generate multiple harmony lines, as in three-part or four-part harmony. For example, suppose you have two parts harmonizing in response to the same input, one generating thirds, and the other generating fifths. By default, each part outputs a melody note and a harmony note, resulting in two copies of the melody note. This might be acceptable if the parts are sent to different instruments, but otherwise it's likely to cause undesirable acoustic artifacts such as flanging. To avoid this, you should enable omit melody for one of the parts. If you're unsure, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt; to check for duplicate notes.
+
+&lt;a name="Comp"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Comp"&gt;Comp&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This page contains comping-related settings for the current &lt;a href="#Part"&gt;part&lt;/a&gt;. Comping is an abbreviation for &lt;em&gt;accompanying&lt;/em&gt;. Comping is enabled by selecting the Comp &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. In the Comp function, playing a single note on the &lt;a href="#Part_Input"&gt;input&lt;/a&gt; device produces a chord on the &lt;a href="#Part_Output"&gt;output&lt;/a&gt; device, specifically a tetrachord or a triad. The current &lt;a href="#Song_position"&gt;song position&lt;/a&gt; determines the &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;. Which note is played determines the frequency range of the chord, i.e. higher notes result in higher chords. Specifically, the input note is used as the bottom of a one-octave window within which the output chord is voiced. The chord is inverted as needed to keep it within the specified window. The output notes all have the same velocity as the input note. The chord &lt;a href="#Voicing"&gt;voicing&lt;/a&gt; and &lt;a href="#Variation"&gt;variation&lt;/a&gt; are configurable, and the chords can also be &lt;a href="#Arpeggio_Period"&gt;arpeggiated&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;The performer's input to the Comp function is primarily &lt;em&gt;rhythmic&lt;/em&gt;. An effective chordal accompaniment can be achieved by playing a single note with suitable rhythm. It may be desirable to vary the input note (and thereby vary the frequency range of the output chords) for dramatic effect and to account for the range of the soloist or other performers.
+
+&lt;/p&gt;&lt;p&gt;The Comp function is also useful for self-accompaniment, e.g. on a keyboard instrument. This is achieved by creating a &lt;em&gt;split&lt;/em&gt; consisting of two parts, one set to Comp and the other set to &lt;a href="#Lead"&gt;Lead&lt;/a&gt;. Both parts receive their input from the same device, but occupy different &lt;a href="#Zone_Low"&gt;zones&lt;/a&gt; of the input device. For example to play Lead with the right hand and Comp with the left hand, assuming a split point of C4, you might give the Lead part a zone of C4 to G9 and the Comp part a zone of C−1 to B3.
+
+&lt;/p&gt;&lt;p&gt;The Comp part is normally played with only one input note at time. Multiple input notes at once are permitted, and may create interesting effects, but at the risk of too many simultaneous output notes exceeding the polyphony of the output device.
+
+&lt;a name="Voicing"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Voicing"&gt;Voicing&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines the chord voicing. For close voicing, the chord is inverted as needed to fit within a one-octave window, the bottom of which is determined by the input note, as explained above. For other voicings, the close voicing is still computed, but serves as a preliminary stage: one or more notes of the close voicing are then dropped an octave, as shown in the table below. Drop 2 and drop 3 voicings are characteristic of guitar. Note that this setting only affects tetrachords; triads always use close voicing.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Voicing&lt;/th&gt;&lt;th&gt;Notes dropped&lt;/th&gt;&lt;th&gt;Cmaj7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Close&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;C4 E4 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2&lt;/td&gt;&lt;td&gt;2nd from top&lt;/td&gt;&lt;td&gt;G3 C4 E4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 3&lt;/td&gt;&lt;td&gt;3rd from top&lt;/td&gt;&lt;td&gt;E3 C4 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 4&lt;/td&gt;&lt;td&gt;4th from top&lt;/td&gt;&lt;td&gt;C3 E4 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2 3&lt;/td&gt;&lt;td&gt;2nd and 3rd from top&lt;/td&gt;&lt;td&gt;E3 G3 C4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2 4&lt;/td&gt;&lt;td&gt;2nd and 4th from top&lt;/td&gt;&lt;td&gt;C3 G3 E4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 3 4&lt;/td&gt;&lt;td&gt;3rd and 4th from top&lt;/td&gt;&lt;td&gt;C3 E3 G4 B4&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Drop 2 3 4&lt;/td&gt;&lt;td&gt;2nd, 3rd and 4th from top&lt;/td&gt;&lt;td&gt;C3 E3 G3 B4&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Variation"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Variation"&gt;Variation&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines if and how chords vary. Two variations are defined for each &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;. The variations are referred to as A and B. Typically A is a more conventional spelling, whereas B alters one or more chord tones, e.g. for the major seventh chord type, A is 1 3 5 7 and B is 2 3 5 6, effectively substituting a 69 chord. The variations are a matter of taste, and may be customized by editing the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;. The variation schemes are shown below. The "A to B" and "B to A" schemes are only distinguishable if &lt;a href="#Chord_change_resets_alternation"&gt;Chord change resets alternation&lt;/a&gt; is enabled.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Scheme&lt;/th&gt;&lt;th&gt;Behavior&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A only&lt;/td&gt;&lt;td&gt;Only the A variation of the chord is output.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B only&lt;/td&gt;&lt;td&gt;Only the B variation of the chord is output.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A to B&lt;/td&gt;&lt;td&gt;The output chord alternates between the A and B variations. If "Chord change resets alternation" is enabled, a change of chord resets the alternation to A.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B to A&lt;/td&gt;&lt;td&gt;The output chord alternates between the B and A variations. If "Chord change resets alternation" is enabled, a change of chord resets the alternation to B.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Chord_change_resets_alternation"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Chord_change_resets_alternation"&gt;Chord change resets alternation&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines whether a change of chord resets the alternation state for the "A to B" and "B to A" &lt;a href="#Variation"&gt;variation schemes&lt;/a&gt;. In these schemes, successive input notes alternate the output chord between the two variations defined for the current &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Enabled&lt;/td&gt;&lt;td&gt;The alternation is reset to a known state at the start of each new chord. This makes it easy to maintain a consistent pattern of variation.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The alternation is never reset. This lets the performer create arbitrary patterns of chord variation, by keeping track of the alternation and playing with it. This option is more challenging, but also more expressive. Note that in this case, the "A to B" and "B to A" schemes are indistinguishable.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Arpeggio_Period"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Arpeggio_Period"&gt;Arpeggio Period&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;The notes of a chord can be played in sequence instead of simultaneously, forming an arpeggio. The speed of the arpeggio is determined by the arpeggio period, i.e. the duration of the pause between successive arpeggio notes, expressed as a fraction of a whole note. Because it's a period, not a frequency, smaller values result in faster arpeggios. If the period is zero, arpeggiation is disabled. The drop list lets you select common fractional values, e.g. an 1/8 note. You can also type a fraction or floating-point value in the edit box; see &lt;a href="#Durations"&gt;durations&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;The arpeggio speed can be varied at any time, including during an arpeggio. With precise timing, an arpeggio can be gradually sped up or slowed down. This technique lets you realistically emulate strumming, e.g. on guitar. It's easier to achieve the needed precision via a physical remote control, assigned to the Comp Arp Period &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;. In some cases it may be preferable to control the arpeggio period in a quantized manner instead of continuously. In this case the Comp Arp Period Quant MIDI target should be used instead. It selects the arpeggio period from the following list of durations:
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;1/1&lt;/td&gt;&lt;td&gt;whole&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/2&lt;/td&gt;&lt;td&gt;half&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/2&lt;/td&gt;&lt;td&gt;triplet half (1/3)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/4&lt;/td&gt;&lt;td&gt;quarter&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/4&lt;/td&gt;&lt;td&gt;triplet quarter (1/6)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/8&lt;/td&gt;&lt;td&gt;eighth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/8&lt;/td&gt;&lt;td&gt;triplet eighth (1/12)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/16&lt;/td&gt;&lt;td&gt;sixteenth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/16&lt;/td&gt;&lt;td&gt;triplet sixteenth (1/24)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/32&lt;/td&gt;&lt;td&gt;thirty-second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/32&lt;/td&gt;&lt;td&gt;triplet thirty-second (1/48)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/64&lt;/td&gt;&lt;td&gt;sixty-fourth&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Arpeggio_Order"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Arpeggio_Order"&gt;Arpeggio Order&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines the order of the notes when a chord is &lt;a href="#Arpeggio_Period"&gt;arpeggiated&lt;/a&gt;. The options are listed in the table below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Order&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Default&lt;/td&gt;&lt;td&gt;The chord's notes are played in their default order, which is determined by the &lt;a href="#Chord_types"&gt;chord type&lt;/a&gt;, &lt;a href="#Voicing"&gt;voicing&lt;/a&gt;, and &lt;a href="#Variation"&gt;variation&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ascending&lt;/td&gt;&lt;td&gt;The chord's notes are played in ascending order, from lowest to highest.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Descending&lt;/td&gt;&lt;td&gt;The chord's notes are played in descending order, from highest to lowest.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alternate&lt;/td&gt;&lt;td&gt;The arpeggio alternates between ascending and descending order. This is useful for emulating guitar strumming.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Random&lt;/td&gt;&lt;td&gt;The chord's notes are played in random order, avoiding repeated notes. This is useful for emulating guitar fingerpicking.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Arpeggio_Repeat"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Arpeggio_Repeat"&gt;Arpeggio Repeat&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines whether chord &lt;a href="#Arpeggio_Period"&gt;arpeggios&lt;/a&gt; are repeated.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Enabled&lt;/td&gt;&lt;td&gt;The arpeggio repeats for as long as the input note remains pressed.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Disabled&lt;/td&gt;&lt;td&gt;The arpeggio stops when all of the chord's notes have been played, after which continuing to hold the input note has no effect.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;Arpeggio repeat can be combined with &lt;a href="#Auto_Play"&gt;auto play&lt;/a&gt;, resulting in continuous automated arpeggios. The effect is similar to a music box. It's more interesting if the &lt;a href="#Arpeggio_Order"&gt;arpeggio order&lt;/a&gt; is random.
+
+&lt;a name="Bass"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Bass"&gt;Bass&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This page contains settings related to the Bass &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; for the current &lt;a href="#Part"&gt;part&lt;/a&gt;. The purpose of the bass function is to make it easy to find chord tones, particularly the root. In the bass function, the chord tones remain stationary on the input device, i.e. each note of the input diatonic scale has a fixed harmonic role. For example C is always the root of the current chord, G is always the fifth of the current chord, etc. The following table shows the mapping for two arbitrary chords.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th rowspan="2"&gt;Input&lt;/th&gt;&lt;th rowspan="2"&gt;Role&lt;/th&gt;&lt;th colspan="2"&gt;Output&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;th&gt;A-7&lt;/th&gt;&lt;th&gt;F-7&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;Root&lt;/td&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;F&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;Second&lt;/td&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;G&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;Third&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;td&gt;Ab&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F&lt;/td&gt;&lt;td&gt;Fourth&lt;/td&gt;&lt;td&gt;D&lt;/td&gt;&lt;td&gt;Bb&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;Fifth&lt;/td&gt;&lt;td&gt;E&lt;/td&gt;&lt;td&gt;C&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;A&lt;/td&gt;&lt;td&gt;Sixth&lt;/td&gt;&lt;td&gt;F#&lt;/td&gt;&lt;td&gt;D&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;B&lt;/td&gt;&lt;td&gt;Seventh&lt;/td&gt;&lt;td&gt;G&lt;/td&gt;&lt;td&gt;Eb&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;The table above assumes the default setup, in which the output chord scale maps to the C major scale (i.e. the white keys) on the input device. Note that this is only the case when &lt;a href="#Input_Transpose"&gt;input transpose&lt;/a&gt; is zero or a multiple of twelve.
+
+&lt;/p&gt;&lt;p&gt;The bass function lets you effortlessly maintain a constant harmonic relationship to changing chords. For example, to play the roots of all the chords, simply play C throughout the entire &lt;a href="#Song"&gt;song&lt;/a&gt;. To play a simple Latin bass line, just switch between C and G: this is equivalent to playing the root and the fifth of each chord. For swing, you may also want to use &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;Unlike the &lt;a href="#Lead"&gt;Lead&lt;/a&gt; function, which transposes in position, the bass function transposes by shifting, and can therefore produce drastic pitch changes. For example if the chord changes from a C to a G, the bass note corresponding to any given input note leaps a fifth. The bass function doesn't necessarily preserve the input's shape, and consequently the lead function may be more useful for soloing.
+
+&lt;a name="Lowest_note"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Lowest_note"&gt;Lowest note&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines the lowest output note the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function will generate. Output notes below this limit are shifted up as many octaves as needed to stay above the limit. This helps prevent the inadvertent playing of extremely low notes which might otherwise damage audio equipment.
+
+&lt;/p&gt;&lt;p&gt;The setting can be used to model actual bass instruments. The default value (E1) models a typical four-string bass. Other common values are D1, C1, or B0 for a typical five-string bass. These values assume middle C is C4 per the MIDI specification, and may need to be adjusted by one or more octaves for non-compliant instruments.
+
+&lt;/p&gt;&lt;p&gt;This setting also affects the transposition direction, i.e. for a given chord root, whether input notes are transposed up or down to produce the corresponding output notes. For example if the lowest note is an E, for chord roots C, Db, D, and Eb, the input is transposed up, whereas for all other roots, the input is transposed down.
+
+&lt;a name="Slash_chords"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Slash_chords"&gt;Slash chords&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines whether the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function respects alternate bass notes appended to chord symbols. Chord symbols may be followed by a slash and a bass note, indicating that the bass should play a different note instead of the chord's root, e.g. Cmaj7/G indicates that the bass should play G instead of C. Such symbols are known as &lt;em&gt;slash chords&lt;/em&gt;.
+
+&lt;/p&gt;&lt;p&gt;If this setting is enabled, slash chords are respected: the current chord scale is shifted so that C maps to the chord's bass note instead of its root. The bass note may not belong to the scale, in which case the bass note is substituted for the root, potentially resulting in a non-standard scale. If this setting is disabled, slash chords have no effect on the bass function.
+
+&lt;a name="Approach_mode"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Approach_mode"&gt;Approach mode&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;a href="#Bass"&gt;bass&lt;/a&gt; function features an approach mode. An approach is a melodic line that proceeds predictably towards a chord tone of a subsequent chord, known as the &lt;em&gt;target chord&lt;/em&gt;. The target note is usually the root or the fifth of the target chord. A well-executed approach is timed so as to arrive at the target note just as the target chord begins. An approach anticipates both the target chord and the target note, and creates an expectation that they will coincide.
+
+&lt;/p&gt;&lt;p&gt;The bass function normally maps C to the current chord's root. This makes it trivial to locate the root and other chord tones of the &lt;em&gt;current&lt;/em&gt; chord, but isn't necessarily helpful for &lt;em&gt;future&lt;/em&gt; chords. Approach mode solves this problem by shifting the current chord's scale so that C maps to the target chord's root, or as close as possible. In approach mode, you approach the target root by simply approaching C, regardless of what the target chord actually is. To approach the target fifth, just approach G instead of C. Thus you can make accurate approaches without knowing the song's chords at all.
+
+&lt;/p&gt;&lt;p&gt;Approach can be automatic or manually triggered. Automatic approach is enabled by setting a non-zero &lt;a href="#Approach_length"&gt;approach length&lt;/a&gt;. For manual operation, specify the desired &lt;a href="#Target_alignment"&gt;target alignment&lt;/a&gt;, and then manually &lt;a href="#Approach_trigger"&gt;trigger&lt;/a&gt; approach mode before each approach. It's possible to combine automatic and manual approaches, in which case the manual approach takes precedence.
+
+&lt;a name="Approach_length"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Approach_length"&gt;Approach length&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines the length of automatic &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt; in the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function. Setting this length non-zero enables automatic approach. The length is specified via a duration combo box; see &lt;a href="#Durations"&gt;durations&lt;/a&gt; for details. For example if the approach length is 1/2 (a half note), assuming 4/4 time, approach mode is automatically enabled halfway through each measure. In other words, during the second half of each measure, if you play a melodic line that converges on C, you will be approaching the root of the following measure's chord. The approach length can be varied dynamically via remote control, using the Bass Approach Length &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;.
+
+&lt;a name="Target_alignment"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Target_alignment"&gt;Target alignment&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines the alignment of the target chord for manually triggered &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt; in the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function. The available alignments are shown in the table below. Alignments are relative to the start of the &lt;a href="#Song"&gt;song&lt;/a&gt;. In addition to specifying the desired alignment, a manual approach must also be &lt;a href="#Approach_trigger"&gt;triggered&lt;/a&gt;. Triggering a manual approach immediately shifts the current chord's scale so that C maps to the root of the target chord, or as close as possible. The target may be further away than the next chord, in which case the chords between the current and target chords also have their scales similarly shifted.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Alignment&lt;/th&gt;&lt;th&gt;Target chord&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/4&lt;/td&gt;&lt;td&gt;First chord of the next quarter-measure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/2&lt;/td&gt;&lt;td&gt;First chord of the next half-measure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;First chord of the next measure.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;First chord of the next measure that's aligned on a two-measure boundary.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;First chord of the next measure that's aligned on a four-measure boundary.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;For example suppose approach is triggered halfway through the first measure of the following song. If the alignment is 1, the target chord is A7b9, if it's 2, the target is C-7, and if it's 4, the target is F-7.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;E-7b5&lt;/td&gt;&lt;td&gt;A7b9&lt;/td&gt;&lt;td&gt;C-7&lt;/td&gt;&lt;td&gt;F7&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F-7&lt;/td&gt;&lt;td&gt;Bb7&lt;/td&gt;&lt;td&gt;Ebmaj7&lt;/td&gt;&lt;td&gt;Ab7#4&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Approach_trigger"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Approach_trigger"&gt;Approach trigger&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This button triggers a manual &lt;a href="#Approach_mode"&gt;approach&lt;/a&gt; in the &lt;a href="#Bass"&gt;bass&lt;/a&gt; function. The target of a manual approach depends on the current &lt;a href="#Song_position"&gt;song position&lt;/a&gt; and the &lt;a href="#Target_alignment"&gt;target alignment&lt;/a&gt;, as explained above. For best results, trigger approach mode slightly before playing the approach. It's usually more convenient to trigger manual approaches via the Bass Approach Trigger &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;.
+
+&lt;a name="Auto"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Auto"&gt;Auto&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This page contains settings related to auto-accompaniment. ChordEase is primarily oriented towards live performance and thus has very limited support for auto-accompaniment. Each &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt; handles auto-accompaniment differently, as shown in the table below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Mapping function&lt;/th&gt;&lt;th&gt;Auto-accompaniment&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Lead"&gt;Lead&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Not supported.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Comp"&gt;Comp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;At each chord change boundary, the new chord is played once, using the current &lt;a href="#Voicing"&gt;voicing&lt;/a&gt; and &lt;a href="#Variation"&gt;variation&lt;/a&gt;. The chord can be &lt;a href="#Arpeggio_Period"&gt;arpeggiated&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;&lt;/td&gt;&lt;td&gt;At each chord change boundary, the new chord's root is played once.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase implements auto-accompaniment by sending itself an input note, using the &lt;a href="#Part"&gt;part&lt;/a&gt;'s &lt;a href="#Input_Port"&gt;input port&lt;/a&gt; and &lt;a href="#Input_Channel"&gt;input channel&lt;/a&gt;. The &lt;a href="#Window"&gt;window&lt;/a&gt; setting determines which note is sent. In effect, the part generates its own input, and thereby triggers itself. In addition to triggering itself, an auto-accompaniment part also triggers any other part having the same input port and channel. This allows layering, but it can also cause unexpected behavior. Interesting effects can be achieved by having multiple auto-accompaniment parts, but be careful to give each part a unique input channel, otherwise each part triggers all the others, resulting in spurious and/or duplicate notes.
+
+&lt;a name="Auto_Play"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Auto_Play"&gt;Auto Play&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting enables auto-accompaniment for the current &lt;a href="#Part"&gt;part&lt;/a&gt;.
+
+&lt;a name="Window"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Window"&gt;Window&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting specifies the bottom note of a one-octave pitch window within which auto-accompaniment occurs. Increasing this setting to a higher note raises the overall pitch of the auto-accompaniment. For &lt;a href="#Comp"&gt;comp&lt;/a&gt; parts, the specified note is input directly to the comp function. For &lt;a href="#Bass"&gt;bass&lt;/a&gt; parts, the nearest C above the specified note is input to the bass function, in order to play the root of the current chord. In either case, the function behaves as if it had received the note from a MIDI &lt;a href="#Part_Input"&gt;input&lt;/a&gt; device. The note must be within the part's &lt;a href="#Zone_Low"&gt;zone&lt;/a&gt;, otherwise the note is ignored and no output is generated.
+
+&lt;a name="Velocity"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Velocity"&gt;Velocity&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting specifies the velocity of auto-accompaniment notes. The velocities are also affected by the part's &lt;a href="#Velocity_Offset"&gt;velocity offset&lt;/a&gt;, if any.
+
+&lt;a name="Part_MIDI"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Part_MIDI"&gt;MIDI&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This page lists the part &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. Each row corresponds to a &lt;a href="#Part"&gt;part&lt;/a&gt; parameter or command that can be remotely controlled via MIDI. Each part has its own MIDI targets, and only the current part's targets are shown. To view the targets for a different part, select it in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. In order to remotely control a MIDI target, you must first assign a MIDI message to it. MIDI assignments can be created by editing the items on this page, though it's usually easier to have ChordEase &lt;a href="#Learn"&gt;learn&lt;/a&gt; the assignments. This page also lets you change or delete existing MIDI assignments. For additional information, see the &lt;a href="#Patch_MIDI"&gt;Patch MIDI&lt;/a&gt; page, which works similarly.
+
+
+&lt;h1&gt;Menus&lt;/h1&gt;
+
+&lt;h2&gt;File&lt;/h2&gt;
+
+&lt;a name="New"&gt;&lt;h3&gt;New&lt;/h3&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to create a new, empty &lt;a href="#Song"&gt;song&lt;/a&gt;. To open an existing song, use &lt;a href="#Open"&gt;Open&lt;/a&gt; instead. To create a new &lt;a href="#Patch"&gt;patch&lt;/a&gt;, use &lt;a href="#Patch_New"&gt;Patch/New&lt;/a&gt;.
+
+&lt;a name="Open"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Open"&gt;Open&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to open an existing &lt;a href="#Song"&gt;song&lt;/a&gt;. A song can also be opened by drag/drop from Windows Explorer, or via the command line. Note that the open command also supports &lt;a href="#Impro-Visor"&gt;Impro-Visor&lt;/a&gt; lead sheet files. To open a &lt;a href="#Patch"&gt;patch&lt;/a&gt;, use &lt;a href="#Patch_Open"&gt;Patch/Open&lt;/a&gt;.
+
+&lt;a name="Save"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Save"&gt;Save&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to save the active &lt;a href="#Song"&gt;song&lt;/a&gt; to its current name and directory. If you want to change the name or directory of an existing song before you save it, use &lt;a href="#Save_As"&gt;Save As&lt;/a&gt; instead. To save the &lt;a href="#Patch"&gt;patch&lt;/a&gt;, use &lt;a href="#Patch_Save"&gt;Patch/Save&lt;/a&gt;.
+
+&lt;a name="Save_As"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Save_As"&gt;Save As&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to save and name the active &lt;a href="#Song"&gt;song&lt;/a&gt;. To save and name the &lt;a href="#Patch"&gt;patch&lt;/a&gt;, use &lt;a href="#Patch_Save_As"&gt;Patch/Save As&lt;/a&gt;.
+
+&lt;a name="Edit_Text"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Edit_Text"&gt;Edit Text&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to edit the current &lt;a href="#Song"&gt;song&lt;/a&gt; as a text file. You should familiarize yourself with the &lt;a href="#Song_file_format"&gt;song file format&lt;/a&gt; before attempting this. Advanced users may find this method faster than using the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt; editing functions. The shortcut for this command is &lt;span class="key"&gt;Ctrl+E&lt;/span&gt;. The command displays a simple dialog containing a multiline edit control. Clipboard editing functions are supported. You can also edit songs with an external text editor such as Notepad.
+
+&lt;a name="Properties"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Properties"&gt;Properties&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to edit the current &lt;a href="#Song"&gt;song&lt;/a&gt;'s &lt;a href="#Song_Properties"&gt;properties&lt;/a&gt;, including its time signature and key signature. You can also specify optional properties such as tempo, transposition to a different key, and comments. If tempo is zero, the song is &lt;a href="#Play-Stop"&gt;played&lt;/a&gt; at the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; specified by the &lt;a href="#Patch"&gt;patch&lt;/a&gt;.
+
+&lt;a name="Print_Setup"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Print_Setup"&gt;Print Setup&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to select a printer, page orientation, and paper size before &lt;a href="#Print"&gt;printing&lt;/a&gt; the current &lt;a href="#Song"&gt;song&lt;/a&gt;.
+
+&lt;a name="Print_Setup_Printer"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Print_Setup_Printer"&gt;Printer&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Allows you to specify the printer. If you don't select a printer, ChordEase prints to the Windows default printer.
+
+&lt;ul&gt;
+&lt;li&gt;Name — Displays a list of available printers.
+&lt;/li&gt;&lt;li&gt;Status — Displays the status of the printer and whether it is ready to print.
+&lt;/li&gt;&lt;li&gt;Type — Displays the type of printer.
+&lt;/li&gt;&lt;li&gt;Where — Displays the location of the printer. If the printer is on a network, displays the path to the server.
+&lt;/li&gt;&lt;li&gt;Comment — Displays the physical location of the printer and additional information.
+&lt;/li&gt;&lt;li&gt;Properties — Opens the Properties dialog box specific to the printer where you can choose additional options such as paper and the way graphics are printed.
+&lt;/li&gt;&lt;/ul&gt;
+
+&lt;a name="Print_Setup_Paper"&gt;&lt;h3&gt;Paper&lt;/h3&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;Allows you to select the paper size and source (from among those available for the printer). The sizes and sources available depend on the printer you have selected and they change when you change printers.
+
+&lt;ul&gt;
+&lt;li&gt;Size — Displays a list of the available paper sizes.
+&lt;/li&gt;&lt;li&gt;Source — Displays the available source of paper for the printer you choose.
+&lt;/li&gt;&lt;/ul&gt;
+
+&lt;a name="Print_Setup_Orientation"&gt;&lt;h3&gt;Orientation&lt;/h3&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;Allows you to specify whether the program is to print in Portrait or Landscape orientation.
+
+&lt;a name="Print_Preview"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Print_Preview"&gt;Print Preview&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to see how the current &lt;a href="#Song"&gt;song&lt;/a&gt; will look before &lt;a href="#Print"&gt;printing&lt;/a&gt; it. To print the song, press the Print button. To navigate multiple pages, use the Next Page and Prev Page buttons or the scroll bar. To toggle between single and dual page view, press the Two Page button. To change magnification, use the Zoom In and Zoom Out buttons. To exit preview mode, press the Close button. Note that it may be necessary to increase the size of the chart &lt;a href="#Font"&gt;font&lt;/a&gt; before printing.
+
+&lt;a name="Print"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Print"&gt;Print&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to print the current &lt;a href="#Song"&gt;song&lt;/a&gt;. You may need to &lt;a href="#Print_Setup"&gt;set up&lt;/a&gt; your printer first. You may also want to see a &lt;a href="#Print_Preview"&gt;preview&lt;/a&gt; before printing. Note that it may be necessary to increase the size of the chart &lt;a href="#Font"&gt;font&lt;/a&gt; before printing.
+
+&lt;a name="Exit"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Exit"&gt;Exit&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to end your ChordEase session. You can also use the Close command on the application Control menu. ChordEase prompts you to &lt;a href="#Save"&gt;save&lt;/a&gt; documents with unsaved changes.
+
+
+&lt;h2&gt;Edit&lt;/h2&gt;
+
+&lt;a name="Editing"&gt;&lt;h3&gt;Editing&lt;/h3&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;The editing commands are summarized in the table below. They're also available from the context menu.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Command&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;th&gt;Shortcut&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Undo-Redo"&gt;Undo&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Undo the last action.&lt;/td&gt;&lt;td&gt;&lt;span class="key"&gt;Ctrl+Z&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Undo-Redo"&gt;Redo&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Redo the last action.&lt;/td&gt;&lt;td&gt;&lt;span class="key"&gt;Ctrl+Y&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Cut"&gt;Cut&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Cut the selection and put it on the &lt;a href="#Clipboard"&gt;Clipboard&lt;/a&gt;.&lt;/td&gt;&lt;td&gt;&lt;span class="key"&gt;Ctrl+X&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Copy"&gt;Copy&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Copy the selection and put it on the Clipboard.&lt;/td&gt;&lt;td&gt;&lt;span class="key"&gt;Ctrl+C&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Paste"&gt;Paste&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Insert the Clipboard contents.&lt;/td&gt;&lt;td&gt;&lt;span class="key"&gt;Ctrl+V&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Insert"&gt;Insert&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Insert a new item.&lt;/td&gt;&lt;td&gt;&lt;span class="key"&gt;Insert&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Delete"&gt;Delete&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Delete the selection.&lt;/td&gt;&lt;td&gt;&lt;span class="key"&gt;Delete&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Select_All"&gt;Select All&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Select all items.&lt;/td&gt;&lt;td&gt;&lt;span class="key"&gt;Ctrl+A&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Rename"&gt;Rename&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Rename the selected item.&lt;/td&gt;&lt;td&gt;&lt;span class="key"&gt;F2&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;Note that the editing commands behave differently depending on which window within the application has focus. The possible cases are as follows:
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Focus&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Edit control&lt;/td&gt;&lt;td&gt;The command operates on the text in the edit control.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Chart view&lt;/td&gt;&lt;td&gt;The command operates on the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Parts list&lt;/td&gt;&lt;td&gt;The command operates on the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Undo-Redo"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Undo-Redo"&gt;Undo/Redo&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Any operation that modifies either the &lt;a href="#Song"&gt;song&lt;/a&gt; or the &lt;a href="#Patch"&gt;patch&lt;/a&gt; can be undone via &lt;span class="cmd"&gt;Edit/Undo&lt;/span&gt; or &lt;span class="key"&gt;Ctrl+Z&lt;/span&gt;, and redone via &lt;span class="cmd"&gt;Edit/Redo&lt;/span&gt; or &lt;span class="key"&gt;Ctrl+Y&lt;/span&gt;. Undo is unlimited. Note that the song and the patch have independent undo histories, and consequently the undo/redo command's action depends on which window has focus, as shown below. To undo/redo a song edit, first make sure the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt; has focus, otherwise you may inadvertently undo/redo a patch edit.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Focus&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Chart view&lt;/td&gt;&lt;td&gt;Undo/Redo the most recent song edit.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Any other window&lt;/td&gt;&lt;td&gt;Undo/Redo the most recent patch edit.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Clipboard"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Clipboard"&gt;Clipboard&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The clipboard is the destination for &lt;a href="#Cut"&gt;cut&lt;/a&gt; and &lt;a href="#Copy"&gt;copy&lt;/a&gt;, and the source for &lt;a href="#Paste"&gt;paste&lt;/a&gt;. The &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt; and the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt; both support these standard &lt;a href="#Editing"&gt;editing&lt;/a&gt; commands, as do all edit controls. Consequently the clipboard may contain different types of data, e.g. chords from the chart view, &lt;a href="#Part"&gt;parts&lt;/a&gt; from the parts list, or text from an edit control.
+
+&lt;a name="Cut"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Cut"&gt;Cut&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command deletes the selection after copying it to the &lt;a href="#Clipboard"&gt;clipboard&lt;/a&gt;. To cut, use &lt;span class="cmd"&gt;Edit/Cut&lt;/span&gt;, press &lt;span class="key"&gt;Ctrl+X&lt;/span&gt;, or select &lt;span class="cmd"&gt;Cut&lt;/span&gt; from the view's context menu or the &lt;a href="#Toolbar"&gt;Toolbar&lt;/a&gt;. The command's action depends on which window has focus, as shown below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Focus&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Edit control&lt;/td&gt;&lt;td&gt;Cuts the selected text to the clipboard.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Cuts the selected chords to the clipboard.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Cuts the selected parts to the clipboard.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Copy"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Copy"&gt;Copy&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command copies the selection to the &lt;a href="#Clipboard"&gt;clipboard&lt;/a&gt;. To copy, use &lt;span class="cmd"&gt;Edit/Copy&lt;/span&gt;, press &lt;span class="key"&gt;Ctrl+C&lt;/span&gt;, or select &lt;span class="cmd"&gt;Copy&lt;/span&gt; from the view's context menu or the &lt;a href="#Toolbar"&gt;Toolbar&lt;/a&gt;. The command's action depends on which window has focus, as shown below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Focus&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Edit control&lt;/td&gt;&lt;td&gt;Copies the selected text to the clipboard.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Copies the selected chords to the clipboard.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Copies the selected parts to the clipboard.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Paste"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Paste"&gt;Paste&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command inserts the contents of the &lt;a href="#Clipboard"&gt;clipboard&lt;/a&gt; at the cursor position. To paste, use &lt;span class="cmd"&gt;Edit/Paste&lt;/span&gt;, press &lt;span class="key"&gt;Ctrl+V&lt;/span&gt;, or select &lt;span class="cmd"&gt;Paste&lt;/span&gt; from the view's context menu or the &lt;a href="#Toolbar"&gt;Toolbar&lt;/a&gt;. The command's action depends on which window has focus, as shown below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Focus&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Edit control&lt;/td&gt;&lt;td&gt;Inserts text from the clipboard into the edit control at the cursor position.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Inserts chords from the clipboard into the &lt;a href="#Song"&gt;song&lt;/a&gt; at the current &lt;a href="#Song_position"&gt;position&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Inserts parts from the clipboard into the parts list before the current selection, or at the end of the list if there's no current selection.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Insert"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Insert"&gt;Insert&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command inserts an item at the cursor position. To insert, use &lt;span class="cmd"&gt;Edit/Insert&lt;/span&gt; or press the &lt;span class="key"&gt; Insert&lt;/span&gt; key. The command's action depends on which window has focus, as shown below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Focus&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Displays the &lt;a href="#Insert_Chord"&gt;Insert Chord&lt;/a&gt; dialog and then inserts the specified chord into the &lt;a href="#Song"&gt;song&lt;/a&gt; at the current &lt;a href="#Song_position"&gt;position&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Inserts a new part into the parts list before the current selection, or at the end of the list if there's no current selection.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Delete"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Delete"&gt;Delete&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command deletes the selection. To delete, use &lt;span class="cmd"&gt;Edit/Delete&lt;/span&gt;, press the &lt;span class="key"&gt;Delete&lt;/span&gt; key, or select &lt;span class="cmd"&gt;Delete&lt;/span&gt; from the view's context menu. The command's action depends on which window has focus, as shown below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Focus&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Edit control&lt;/td&gt;&lt;td&gt;Deletes the selected text.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Deletes the selected chords.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Deletes the selected parts.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Select_All"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Select_All"&gt;Select All&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command selects all items. To select all, use &lt;span class="cmd"&gt;Edit/Select All&lt;/span&gt;, or press &lt;span class="key"&gt;Ctrl+A&lt;/span&gt;. The command's action depends on which window has focus, as shown below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Focus&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Edit control&lt;/td&gt;&lt;td&gt;Selects all of the text.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Selects all of the chords.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Selects all of the parts.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Rename"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Rename"&gt;Rename&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command renames the currently selected item. To rename, use &lt;span class="cmd"&gt;Edit/Rename&lt;/span&gt;, or press &lt;span class="key"&gt;F2&lt;/span&gt;. The command's action depends on which window has focus, as shown below.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Focus&lt;/th&gt;&lt;th&gt;Action&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Chart_view"&gt;Chart view&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Renames the currently selected chord.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Parts_list"&gt;Parts list&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Renames the currently selected part.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;h3&gt;Section&lt;/h3&gt;
+
+&lt;a name="Section_Create"&gt;&lt;h4&gt;Create&lt;/h4&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This command creates a new &lt;a href="#Sections"&gt;section&lt;/a&gt; consisting of the currently selected chords. To create a section, first select the desired chords in the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;, and then either use &lt;span class="cmd"&gt;Edit/Section/Create&lt;/span&gt;, or select &lt;span class="cmd"&gt;Section/Create&lt;/span&gt; from the chart view's context menu. The new section's &lt;a href="#Section_Repeat"&gt;repeat count&lt;/a&gt; is initially zero, which means the section repeats indefinitely or until it's exited via the &lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt; command. If you want the section to repeat a specific number of times, first create it, and then use &lt;a href="#Section_Properties"&gt;Section Properties&lt;/a&gt; to edit its repeat count. Note that sections can't be nested.
+
+&lt;a name="Section_Delete"&gt;&lt;/a&gt;&lt;h4&gt;&lt;a name="Section_Delete"&gt;Delete&lt;/a&gt;&lt;/h4&gt;
+
+&lt;/p&gt;&lt;p&gt;This command deletes an existing &lt;a href="#Sections"&gt;section&lt;/a&gt;. Position the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;'s cursor anywhere within the section to be deleted, and use &lt;span class="cmd"&gt;Edit/Section/Delete&lt;/span&gt; or select &lt;span class="cmd"&gt;Section/Delete&lt;/span&gt; from the chart view's context menu.
+
+&lt;a name="Section_Properties"&gt;&lt;/a&gt;&lt;h4&gt;&lt;a name="Section_Properties"&gt;Properties&lt;/a&gt;&lt;/h4&gt;
+
+&lt;/p&gt;&lt;p&gt;This command displays the &lt;a href="#Section_Properties_dialog"&gt;Section Properties dialog&lt;/a&gt;, which lets you edit the properties of an existing &lt;a href="#Sections"&gt;section&lt;/a&gt;. Position the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;'s cursor anywhere within the section to be edited, and use &lt;span class="cmd"&gt;Edit/Section/Properties&lt;/span&gt; or select &lt;span class="cmd"&gt;Section/Properties&lt;/span&gt; from the chart view's context menu.
+
+&lt;a name="Section_List"&gt;&lt;/a&gt;&lt;h4&gt;&lt;a name="Section_List"&gt;List&lt;/a&gt;&lt;/h4&gt;
+
+&lt;/p&gt;&lt;p&gt;This command displays the &lt;a href="#Section_List_dialog"&gt;Section List dialog&lt;/a&gt;, which lists all the &lt;a href="#Sections"&gt;sections&lt;/a&gt; in the current &lt;a href="#Song"&gt;song&lt;/a&gt;.
+
+
+&lt;a name="Options"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Options"&gt;Options&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command displays the Options dialog, which lets you edit various user preferences. The options are organized into pages by category, e.g. &lt;a href="#Chart"&gt;chart&lt;/a&gt; options, &lt;a href="#Options_Record"&gt;record&lt;/a&gt; options, and &lt;a href="#Other"&gt;other&lt;/a&gt; options. To reset all options to their default states, press the Reset All button. The &lt;a href="#Installing"&gt;installed&lt;/a&gt; version of ChordEase stores options in the registry, whereas the portable version stores them in a file (ChordEase.ini) in the same folder as the executable.
+
+
+&lt;h2&gt;Patch&lt;/h2&gt;
+
+&lt;a name="Patch_New"&gt;&lt;h3&gt;New&lt;/h3&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to create a new, empty &lt;a href="#Patch"&gt;patch&lt;/a&gt;. To open an existing patch, use &lt;a href="#Patch_Open"&gt;Patch/Open&lt;/a&gt; instead. To create a new &lt;a href="#Song"&gt;song&lt;/a&gt;, use &lt;a href="#New"&gt;File/New&lt;/a&gt;.
+
+&lt;a name="Patch_Open"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Patch_Open"&gt;Open&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to open an existing &lt;a href="#Patch"&gt;patch&lt;/a&gt;. A patch can also be opened by drag/drop from Windows Explorer, or via the command line. To open a &lt;a href="#Song"&gt;song&lt;/a&gt;, use &lt;a href="#Open"&gt;File/Open&lt;/a&gt;.
+
+&lt;a name="Patch_Save"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Patch_Save"&gt;Patch&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to save the active &lt;a href="#Patch"&gt;patch&lt;/a&gt; to its current name and directory. If you want to change the name or directory of an existing patch before you save it, use &lt;a href="#Patch_Save_As"&gt;Patch/Save As&lt;/a&gt; instead. To save the &lt;a href="#Song"&gt;song&lt;/a&gt;, use &lt;a href="#Save"&gt;File/Save&lt;/a&gt;.
+
+&lt;a name="Patch_Save_As"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Patch_Save_As"&gt;Save As&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to save and name the active &lt;a href="#Patch"&gt;patch&lt;/a&gt;. To save and name the &lt;a href="#Song"&gt;song&lt;/a&gt;, use &lt;a href="#Save_As"&gt;File/Save As&lt;/a&gt;.
+
+
+&lt;h2&gt;Transport&lt;/h2&gt;
+
+&lt;a name="Play-Stop"&gt;&lt;h3&gt;Play/Stop&lt;/h3&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This command toggles &lt;a href="#Song"&gt;song&lt;/a&gt; playback between the playing and stopped states. If &lt;a href="#Lead-in"&gt;Lead-in&lt;/a&gt; is non-zero, the specified number of lead-in measures are played before the song begins. If &lt;a href="#Auto_Rewind"&gt;Auto Rewind&lt;/a&gt; is enabled, stopping automatically rewinds back to the beginning of the song.
+
+&lt;a name="Pause"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Pause"&gt;Pause&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command pauses playback, or it's already paused, resumes it. Unlike &lt;a href="#Play-Stop"&gt;Play/Stop&lt;/a&gt;, pausing doesn't rewind or otherwise affect the &lt;a href="#Song_position"&gt;song position&lt;/a&gt;, and resuming doesn't play a &lt;a href="#Lead-in"&gt;lead-in&lt;/a&gt;.
+
+&lt;a name="Rewind"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Rewind"&gt;Rewind&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command rewinds back to the beginning of the current &lt;a href="#Song"&gt;song&lt;/a&gt;.
+
+&lt;a name="Repeat"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Repeat"&gt;Repeat&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command enables or disables &lt;a href="#Song"&gt;song&lt;/a&gt; repeat. If song repeat is enabled, the entire song loops until playback is &lt;a href="#Play-Stop"&gt;stopped&lt;/a&gt;. Otherwise, playback stops automatically when the end of the song is reached.
+
+&lt;a name="Record"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Record"&gt;Record&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command starts or stops a &lt;a href="#Recording"&gt;recording&lt;/a&gt;. By default, you're prompted for an output filename, but if you prefer "one touch" recording, uncheck the &lt;a href="#Prompt_for_filename"&gt;prompt for filename&lt;/a&gt; option. It's also possible to &lt;a href="#Always_record"&gt;always record&lt;/a&gt;, in which case the Record command is superfluous and gives the error message "Locked to always record." To play back the completed recording, use the &lt;a href="#Record_Player_dialog"&gt;Record Player dialog&lt;/a&gt;, or play the MIDI file in a suitable application; also see &lt;a href="#Record_output_files"&gt;record output files&lt;/a&gt;.
+
+&lt;a name="Next_Section"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Next_Section"&gt;Next Section&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command tells ChordEase to stop repeating the current &lt;a href="#Sections"&gt;section&lt;/a&gt;, i.e. when the end of the current section is reached, continue to the next section instead of returning to the beginning of the current section. The command doesn't immediately affect the &lt;a href="#Song_position"&gt;song position&lt;/a&gt;, rather it effectively clears a repeat flag. It works for sections that specify a &lt;a href="#Section_Repeat"&gt;repeat count&lt;/a&gt; as well as sections that repeat indefinitely.
+
+&lt;/p&gt;&lt;p&gt;The command is only accepted during a repeating section, and doesn't accumulate, so once it's been given, any additional next section commands are ignored until the section advances. The command should be given as soon as possible, i.e. near the beginning of the last pass through the repeating section. If the command is received too late, the section may unexpectedly repeat again, and even if the section advances, the &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt; may be incorrect. Though it's possible to give this command via the menus or &lt;a href="#Toolbar"&gt;toolbar&lt;/a&gt;, it's usually more convenient to give it via remote control, by assigning a button or foot pedal to the Next Section &lt;a href="#MIDI_targets"&gt;MIDI target&lt;/a&gt;.
+
+&lt;a name="Next_Chord"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Next_Chord"&gt;Next Chord&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command skips forward to the next chord within the &lt;a href="#Song"&gt;song&lt;/a&gt;. Note that this isn't necessarily the next measure: the actual distance moved depends on the current chord's duration. This command is particularly useful when performing in free time, i.e. with the song &lt;a href="#Play-Stop"&gt;stopped&lt;/a&gt;. This command is a likely candidate for &lt;a href="#MIDI_targets"&gt;remote control&lt;/a&gt;. To skip backwards, use &lt;a href="#Previous_Chord"&gt;Previous Chord&lt;/a&gt;.
+
+&lt;a name="Previous_Chord"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Previous_Chord"&gt;Previous Chord&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command skips backward to the previous chord within the &lt;a href="#Song"&gt;song&lt;/a&gt;. Note that this isn't necessarily the previous measure: the actual distance moved depends on the previous chord's duration. This command is particularly useful when performing in free time, i.e. with the song &lt;a href="#Play-Stop"&gt;stopped&lt;/a&gt;. This command is a likely candidate for &lt;a href="#MIDI_targets"&gt;remote control&lt;/a&gt;. To skip forward, use &lt;a href="#Next_Chord"&gt;Next Chord&lt;/a&gt;.
+
+&lt;a name="Go_To"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Go_To"&gt;Go To&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command jumps to a specified position within the &lt;a href="#Song"&gt;song&lt;/a&gt;. The command displays a modal dialog, which prompts you to enter a numeric &lt;a href="#Song_position"&gt;song position&lt;/a&gt; in measures, beats, and ticks. Note that measures and beats are one-origin, i.e. the beginning of the song is 1:1:0. If the desired position is on a beat boundary you may omit the ticks, e.g. enter 5:3 for the third beat of the fifth measure; if it's on a measure boundary you may omit both beats and ticks.
+
+&lt;a name="Auto_Rewind"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Auto_Rewind"&gt;Auto Rewind&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command enables or disables auto-rewind. If auto-rewind is enabled, stopping playback via the &lt;a href="#Play-Stop"&gt;Play/Stop&lt;/a&gt; command automatically rewinds back to the beginning of the &lt;a href="#Song"&gt;song&lt;/a&gt;.
+
+
+&lt;h2&gt;MIDI&lt;/h2&gt;
+
+&lt;a name="Devices"&gt;&lt;h3&gt;Devices&lt;/h3&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;span class="cmd"&gt;MIDI/Devices&lt;/span&gt; command shows or hides the &lt;a href="#MIDI_Devices"&gt;MIDI Devices&lt;/a&gt; bar, which lists all MIDI input and output devices, along with their indices (also known as ports).
+
+&lt;a name="MIDI_Input"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="MIDI_Input"&gt;Input&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;span class="cmd"&gt;MIDI/Input&lt;/span&gt; command shows or hides the &lt;a href="#MIDI_Input_bar"&gt;MIDI Input bar&lt;/a&gt;. By default the bar displays all input received from all MIDI input devices. The bar also has filtering capabilities.
+
+&lt;a name="MIDI_Output"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="MIDI_Output"&gt;Output&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;span class="cmd"&gt;MIDI/Output&lt;/span&gt; command shows or hides the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt;. By default the bar displays all output sent to all MIDI output devices. The bar also has filtering capabilities.
+
+&lt;a name="Learn"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Learn"&gt;Learn&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;span class="cmd"&gt;MIDI/Learn&lt;/span&gt; command enables or disables MIDI learn mode. Many ChordEase parameters can be changed remotely via a MIDI device, e.g. a MIDI control surface, and certain commands can also be triggered remotely. The parameters and commands that can be remotely controlled are called &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. In order to remotely control a MIDI target, you must first assign a MIDI message to it. MIDI assignments can be entered manually, but it's usually easier to have ChordEase learn them, because in learn mode you don't need to know what MIDI messages your controller sends, or what port and channel it sends them on. The following example shows how to learn a MIDI assignment, for the &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; parameter in this case.
+
+&lt;ol&gt;
+&lt;li&gt;Enable learn mode, via &lt;span class="cmd"&gt;MIDI/Learn&lt;/span&gt; in the menus or the &lt;a href="#Toolbar"&gt;toolbar&lt;/a&gt;, or the &lt;span class="key"&gt;Ctrl+L&lt;/span&gt; shortcut.
+&lt;/li&gt;&lt;li&gt;Select the page containing the target parameter, in this case the &lt;a href="#Patch_bar"&gt;patch bar&lt;/a&gt;'s General page.
+&lt;/li&gt;&lt;li&gt;Left-click the dialog control associated with the target parameter, in this case the Tempo edit box. A green outline appears around the dialog control, indicating that it's ready to learn a MIDI assignment.
+&lt;/li&gt;&lt;li&gt;On your MIDI device, move the physical control (e.g. knob, slider or button) that you want to assign. The target parameter (tempo in this case) should now change as you move the control.
+&lt;/li&gt;&lt;li&gt;Disable learn mode, the same way you enabled it. The green outline disappears.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;/p&gt;&lt;p&gt;Assignments can also be learned via the &lt;a href="#Patch_MIDI"&gt;patch MIDI page&lt;/a&gt; and the &lt;a href="#Part_MIDI"&gt;part MIDI page&lt;/a&gt;. This method is &lt;em&gt;required&lt;/em&gt; for targets that don't have dialog controls associated with them, e.g. &lt;a href="#Play-Stop"&gt;play/stop&lt;/a&gt; and similar transport-related targets. The following example shows how to learn a MIDI assignment via the part MIDI page, for the &lt;a href="#Velocity_Offset"&gt;velocity offset&lt;/a&gt; parameter in this case.
+
+&lt;ol&gt;
+&lt;li&gt;Enable learn mode.
+&lt;/li&gt;&lt;li&gt;Select the appropriate &lt;a href="#Part"&gt;part&lt;/a&gt; in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;.
+&lt;/li&gt;&lt;li&gt;Select the &lt;a href="#Parts_bar"&gt;parts bar&lt;/a&gt;'s MIDI page.
+&lt;/li&gt;&lt;li&gt;Within the MIDI page, left-click the target parameter's name, "Input Vel. Offset" in this case. The corresponding row is highlighted in green, indicating that it's ready to learn a MIDI assignment.
+&lt;/li&gt;&lt;li&gt;On your MIDI device, move the physical control (e.g. knob, slider or button) that you want to assign. The target row's port, channel, event type, and controller number should snap to the appropriate settings.
+&lt;/li&gt;&lt;li&gt;Disable learn mode. The green highlight disappears.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;/p&gt;&lt;p&gt;If you're making multiple assignments, it's not necessary to enable and disable learn mode each time. Instead you can enable it once, learn the assignments, and then disable it. Be careful to always disable learn mode when you're done assigning, to avoid inadvertently creating spurious assignments. Each part has its own MIDI targets, so before learning part assignments, make sure the appropriate part is selected in the parts list. Note that the same MIDI message can be assigned to multiple targets.
+
+&lt;/p&gt;&lt;p&gt;The part's input port and channel can also be learned, even though they don't appear in the list of part MIDI targets; for details, see &lt;a href="#Input_Port"&gt;input port&lt;/a&gt;.
+
+&lt;a name="Assignments"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Assignments"&gt;Assignments&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;span class="cmd"&gt;MIDI/Assignments&lt;/span&gt; command displays the &lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt; dialog, which lists all &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt; to which controllers are currently assigned.
+
+&lt;a name="Note_Mappings"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Note_Mappings"&gt;Note Mappings&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;span class="cmd"&gt;MIDI/Note Mappings&lt;/span&gt; command displays the &lt;a href="#MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt; dialog, which lists the input to output note mapping for each &lt;a href="#Part"&gt;part&lt;/a&gt;.
+
+&lt;a name="Chase_Events"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Chase_Events"&gt;Chase Events&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;span class="cmd"&gt;MIDI/Chase Events&lt;/span&gt; command enables or disables the "chasing" of remote parameter changes. While chase is enabled, user interface elements are automatically shown as needed to make the effects of remote parameter changes obvious. Remotely controlled parameters are also known as &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt;. When a target parameter is changed via MIDI, the corresponding control in the user interface is updated. However this update is only apparent if that control's parent page is visible. If chase is enabled, ChordEase automatically shows the appropriate page, i.e. the page within the &lt;a href="#Patch_bar"&gt;patch bar&lt;/a&gt; or &lt;a href="#Parts_bar"&gt;parts bar&lt;/a&gt; that contains the updated control. For &lt;a href="#Part"&gt;part&lt;/a&gt; targets, the appropriate part is also selected in the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt;. Note that some MIDI targets can't be chased, e.g. the transport-related targets. The Chase Events feature can be useful for debugging your MIDI setup, but it should normally be disabled to avoid confusion.
+
+&lt;a name="Reset_All_Targets"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Reset_All_Targets"&gt;Reset All Targets&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;span class="cmd"&gt;MIDI/Reset All Targets&lt;/span&gt; command resets all &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt; to their default state. This effectively deletes all MIDI assignments. To delete an individual MIDI assignment, find the corresponding target within the &lt;a href="#Patch_MIDI"&gt;patch MIDI page&lt;/a&gt; or &lt;a href="#Part_MIDI"&gt;part MIDI page&lt;/a&gt;, right-click its row, and select &lt;span class="cmd"&gt;Reset&lt;/span&gt; in the context menu. Individual assignments can also be deleted via the &lt;a href="#MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt; dialog, by selecting one or more rows and choosing &lt;span class="cmd"&gt;Delete&lt;/span&gt; in the context menu.
+
+&lt;a name="Panic"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Panic"&gt;Panic&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The &lt;span class="cmd"&gt;MIDI/Panic&lt;/span&gt; command resets all MIDI notes on all output devices, and also resets the list of mapped notes within ChordEase. This is useful for stopping stuck notes. Avoid using this command during a performance except as a last resort, because it may cause audible artifacts. The shortcut for this command is &lt;span class="key"&gt;Shift+Esc&lt;/span&gt;.
+
+
+&lt;h2&gt;View&lt;/h2&gt;
+
+&lt;a name="Toolbar"&gt;&lt;h3&gt;Toolbar&lt;/h3&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;The toolbar provides buttons for the most frequently used commands. To show or hide the toolbar, use &lt;span class="cmd"&gt;View/Toolbar&lt;/span&gt;.
+
+&lt;a name="Status_bar"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Status_bar"&gt;Status bar&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;The status bar displays hints for the menus, and also shows the time signature, key signature, and position within the current &lt;a href="#Song"&gt;song&lt;/a&gt;. To show or hide the status bar, use &lt;span class="cmd"&gt;View/Status Bar&lt;/span&gt;.
+
+&lt;a name="Patch_bar"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Patch_bar"&gt;Patch bar&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command shows or hides the Patch bar. The patch bar lets you edit &lt;a href="#Patch"&gt;patch&lt;/a&gt; settings which are common to all &lt;a href="#Part"&gt;parts&lt;/a&gt;. The patch bar includes the following tabbed pages:
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Page&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#General"&gt;General&lt;/a&gt;&lt;/td&gt;&lt;td&gt;General settings that have systemwide effects.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Metronome"&gt;Metronome&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Metronome-related settings.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Patch_MIDI"&gt;MIDI&lt;/a&gt;&lt;/td&gt;&lt;td&gt;List of the patch MIDI targets; each row corresponds to a patch parameter or command that can be remotely controlled via MIDI. &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Parts_bar"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Parts_bar"&gt;Parts bar&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command shows or hides the Parts bar. The parts bar lets you create &lt;a href="#Part"&gt;parts&lt;/a&gt; and edit their settings. The parts bar has two panes. The left-hand pane contains the &lt;a href="#Parts_list"&gt;parts list&lt;/a&gt; which lists the existing parts. The right-hand pane contains various tabbed pages of settings, which correspond to the currently selected part. The parts bar includes the following pages:
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Page&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Part_Input"&gt;Input&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Input-related settings, including which MIDI port and channel the part should receive its input from.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Part_Output"&gt;Output&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Output-related settings, including which MIDI port and channel the part should send its output to.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Lead"&gt;Lead&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Settings related to the Lead mapping function.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Comp"&gt;Comp&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Settings related to the Comp mapping function.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Bass"&gt;Bass&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Settings related to the Bass mapping function.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Auto"&gt;Auto&lt;/a&gt;&lt;/td&gt;&lt;td&gt;Settings related to auto-accompaniment.
+&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="#Part_MIDI"&gt;MIDI&lt;/a&gt;&lt;/td&gt;&lt;td&gt;List of the part MIDI targets; each row corresponds to a part parameter or command that can be remotely controlled via MIDI. &lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Piano"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Piano"&gt;Piano&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command shows or hides the &lt;a href="#Piano_dialog"&gt;Piano dialog&lt;/a&gt;. The dialog functions as a virtual piano that lets you play ChordEase via your computer's mouse or keyboard. The dialog can also display input notes received from an external instrument. Various types of informational labels can be shown on the piano keys, some of which may help you visualize the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. Use the dialog's &lt;a href="#Piano_context_menu"&gt;context menu&lt;/a&gt; to configure the key labels.
+
+&lt;a name="Output_Notes"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Output_Notes"&gt;Output Notes&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command shows or hides the &lt;a href="#Output_Notes_bar"&gt;Output Notes bar&lt;/a&gt;, which dynamically displays the output notes on a virtual piano keyboard.
+
+&lt;a name="Threads"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Threads"&gt;Threads&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command shows or hides the Threads dialog, which contains a dynamically refreshed list of all threads owned by the current instance of ChordEase, along with their base priority and how much time they've spent executing in kernel and user modes, in milliseconds. This dialog is intended for debugging only.
+
+&lt;a name="Record_Player"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Record_Player"&gt;Record Player&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;This command displays the &lt;a href="#Record_Player_dialog"&gt;Record Player dialog&lt;/a&gt;. The dialog allows previously &lt;a href="#Recording"&gt;recorded&lt;/a&gt; performances to be played back, or exported as standard MIDI files.
+
+
+&lt;h2&gt;Help&lt;/h2&gt;
+
+&lt;a name="Help_topics"&gt;&lt;h3&gt;Help topics&lt;/h3&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to display the help's table of contents and &lt;a href="#Introduction"&gt;default topic&lt;/a&gt;.
+
+&lt;a name="ChordEase_on_the_Web"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="ChordEase_on_the_Web"&gt;ChordEase on the Web&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to launch your web browser to ChordEase's home page.
+
+&lt;a name="Check_for_updates"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Check_for_updates"&gt;Check for updates&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to determine if a more recent version of ChordEase is available. If a newer version is available, you'll be asked whether you want to download and install it. For more information, see &lt;a href="#Automatically_check_for_updates"&gt;Automatically check for updates&lt;/a&gt;.
+
+&lt;a name="Demo"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="Demo"&gt;Demo&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to run the demo. The demo lets you try out ChordEase, even if you don't have a MIDI instrument. The demo loads an example &lt;a href="#Song"&gt;song&lt;/a&gt; and begins playing it. You should hear the chords of the song, along with a &lt;a href="#Metronome"&gt;metronome&lt;/a&gt; click. If not, make sure the volume is turned up on your computer, and on your audio equipment if any. Otherwise see below.
+
+&lt;/p&gt;&lt;p&gt;The demo also displays the &lt;a href="#Piano"&gt;piano&lt;/a&gt; dialog. To play notes, left-click the keys within the piano dialog. Alternatively, you can play notes via the letter keys on your computer keyboard. Play only the white keys at first. The notes you hear are not necessarily the same as the notes you play. This isn't a bug, it's the whole point of ChordEase! Your notes are being &lt;a href="#Mapping_functions"&gt;translated&lt;/a&gt; to fit the song's chord progression.
+
+&lt;/p&gt;&lt;p&gt;The demo uses the Microsoft GS Wavetable Synth, which is built into Windows. This software synth is normally the first MIDI output device, with a device index of zero. If it has a different device index, the demo won't work, unless you change the &lt;a href="#Output_Port"&gt;output port&lt;/a&gt; for each &lt;a href="#Part"&gt;part&lt;/a&gt;. Use the &lt;a href="#MIDI_Devices"&gt;MIDI devices&lt;/a&gt; bar to see what output devices are available and what indices they have. If the Microsoft synth isn't listed at all, it may have been removed or disabled, in which case you'll need a MIDI instrument.
+
+&lt;/p&gt;&lt;p&gt;There may be significant &lt;a href="#Latency"&gt;latency&lt;/a&gt;, i.e. delay between pressing a key and hearing the corresponding note. This is the fault of the Microsoft synth, and it shouldn't occur when a proper MIDI instrument is used.
+
+&lt;a name="About"&gt;&lt;/a&gt;&lt;h3&gt;&lt;a name="About"&gt;About&lt;/a&gt;&lt;/h3&gt;
+
+&lt;/p&gt;&lt;p&gt;Use this command to display ChordEase's copyleft notice, version number, and license.
+
+
+
+&lt;h1&gt;Options&lt;/h1&gt;
+
+&lt;a name="Chart"&gt;&lt;h2&gt;Chart&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This &lt;a href="#Options"&gt;Options&lt;/a&gt; dialog page contains preferences related to the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;. To display the Options dialog, use &lt;span class="cmd"&gt;Edit/Options&lt;/span&gt; or &lt;span class="key"&gt;Shift+O&lt;/span&gt;. To reset all options to their default states, press the Reset All button.
+
+&lt;a name="Measures_per_line"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Measures_per_line"&gt;Measures per line&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the number of measures shown per line in the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;. It may be convenient to show fewer measures per line in order to avoid horizontal scrolling, e.g. if the measures are very wide due to a large &lt;a href="#Font"&gt;font&lt;/a&gt; or many chords per measure.
+
+&lt;a name="Font"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Font"&gt;Font&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This button lets you select the font used in the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;. Pressing the button displays a common font dialog. Select the desired chart font and press OK. The change doesn't take effect until you exit the options dialog by pressing OK again.
+
+&lt;a name="Default_font"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Default_font"&gt;Default font&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This button resets the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt; font to a system default. The change doesn't take effect until you exit the options dialog by pressing OK.
+
+&lt;a name="Options_Record"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Options_Record"&gt;Record&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This &lt;a href="#Options"&gt;Options&lt;/a&gt; dialog page contains preferences related to &lt;a href="#Recording"&gt;recording&lt;/a&gt;.
+
+&lt;a name="Always_record"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Always_record"&gt;Always record&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting enables or disables the continuous &lt;a href="#Recording"&gt;recording&lt;/a&gt; feature. Normally, recordings are explicitly started via the &lt;a href="#Record"&gt;record&lt;/a&gt; command. However if this setting is enabled, ChordEase automatically starts recording as soon as it's launched, and continues to record until it exits. This prevents performances from being accidentally lost due to operator error. Because recording is automatic, the user is not prompted for the file names of the recordings. Instead, the file names are generated automatically from the song title, date and time, just as if &lt;a href="#Prompt_for_filename"&gt;prompt for filename&lt;/a&gt; were unchecked. The &lt;a href="#Record_output_files"&gt;recording files&lt;/a&gt; are saved in the record &lt;a href="#Output_folder"&gt;output folder&lt;/a&gt;. The performance is automatically broken up into songs: opening a new song closes the current recording and begins a new one. Note that if continuous recording is enabled, the Record command is superfluous and gives the error message "Locked to always record."
+
+&lt;a name="Prompt_for_filename"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Prompt_for_filename"&gt;Prompt for filename&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This setting determines whether the &lt;a href="#Record"&gt;record&lt;/a&gt; command prompts the user for a filename. If it's checked, the record command displays a file dialog, which allows the user to specify the file name and folder for the &lt;a href="#Recording"&gt;recording&lt;/a&gt;. If it's unchecked, the file name is generated automatically from the song title, date and time, and the recording files are saved in the record &lt;a href="#Output_folder"&gt;output folder&lt;/a&gt;. Unchecking this option enables "one touch" recording, i.e. the record command starts recording immediately. Note that if &lt;a href="#Always_record"&gt;always record&lt;/a&gt; is enabled, filename prompting is implicitly disabled.
+
+&lt;a name="Buffer_size"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Buffer_size"&gt;Buffer size&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the size of the record buffer, in events. The default value should be adequate for most scenarios. If you wish to increase the buffer size, note that each event occupies 16 bytes, so the amount of memory required equals the buffer size in events × 16.
+
+&lt;a name="MIDI_file_resolution"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_file_resolution"&gt;MIDI file resolution&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the timing resolution of the output MIDI file, in pulses per quarter note (PPQ). Higher values allow more precision for capturing the rhythmic subtleties of performances. The default value of 960 should be compatible with most applications. The most commonly used PPQ values are integer multiples of 24. Note that this setting is unrelated to the patch &lt;a href="#PPQ"&gt;PPQ&lt;/a&gt; setting.
+
+&lt;/p&gt;&lt;p&gt;When ChordEase saves a &lt;a href="#Recording"&gt;recording&lt;/a&gt;, in addition to creating a standard MIDI file, ChordEase also creates a &lt;a href="#Record_output_files"&gt;.cemr&lt;/a&gt; file, which has much better timing resolution than a MIDI file. If the PPQ of a recorded MIDI file is later deemed unsatisfactory, the corresponding .cemr file can be converted to a new MIDI file with a different PPQ, via the &lt;a href="#Record_Player_dialog"&gt;Record Player dialog&lt;/a&gt;. The procedure is as follows:
+
+&lt;ol&gt;
+&lt;li&gt;First set the desired PPQ in the Record Options.
+&lt;/li&gt;&lt;li&gt;Display the Record Player dialog, via &lt;span class="cmd"&gt;View/Record Player&lt;/span&gt;.
+&lt;/li&gt;&lt;li&gt;Press the Open button, navigate to the recording's .cemr file, and press OK.
+&lt;/li&gt;&lt;li&gt;Press the Export button, change the filename if needed, and press OK to save the recording as a MIDI file.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;a name="Output_folder"&gt;&lt;h2&gt;Output folder&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the destination folder for recording files if &lt;a href="#Prompt_for_filename"&gt;filename prompting&lt;/a&gt; is disabled, or &lt;a href="#Always_record"&gt;continuous recording&lt;/a&gt; is enabled. By default, it's a subfolder called Recordings within the &lt;a href="#Application_data_folder"&gt;application data folder&lt;/a&gt;. To specify a different location, left-click the Custom radio button, and then either type the desired path in the edit box, or press the Browse button to display a folder dialog, navigate to the desired folder, and press OK.
+
+&lt;a name="Other"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Other"&gt;Other&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This &lt;a href="#Options"&gt;Options&lt;/a&gt; dialog page contains miscellaneous preferences.
+
+&lt;a name="Automatically_check_for_updates"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Automatically_check_for_updates"&gt;Automatically check for updates&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This option determines whether ChordEase automatically checks for updates when it launches. If a newer version is available, you will be prompted with the message "A newer version of ChordEase is available. Do you want to download and install it?" The options are as follows:
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Download and install&lt;/td&gt;&lt;td&gt;The newer version is downloaded and installed.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;Skip this version&lt;/td&gt;&lt;td&gt;The newer version is NOT downloaded, and no further notifications are given &lt;em&gt;for this version&lt;/em&gt;, though you'll continue to be notified of subsequent versions.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Later&lt;/td&gt;&lt;td&gt;Defer the update&lt;/td&gt;&lt;td&gt;The newer version is NOT downloaded, but you'll be notified about it again the next time you launch ChordEase.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;To disable automatically checking for updates, uncheck this option. Note that automatic checking costs you nothing in terms of performance, because it's done from a worker thread. Regardless of whether automatic checking is enabled, you can always manually check for a newer version via &lt;a href="#Check_for_updates"&gt;Check for Updates&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;ChordEase must exit before it can be reinstalled. The update procedure attempts to close ChordEase, however if there's an unsaved document, the update stalls until you respond to the "Save changes" dialog. In this case a console window will be visible, repeatedly displaying the message "Waiting for ChordEase to exit...".
+
+&lt;a name="Show_tooltips"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Show_tooltips"&gt;Show tooltips&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This option enables or disables tooltips throughout the entire application. The only exception is &lt;a href="#Toolbar"&gt;toolbar&lt;/a&gt; tooltips, which are always shown.
+
+&lt;a name="Application_data_folder"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Application_data_folder"&gt;Application data folder&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This option lets you customize the location of the folder in which ChordEase expects to find its data files, including the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt; and the current &lt;a href="#Patch"&gt;patch&lt;/a&gt;. The default location depends on whether you're using the &lt;a href="#Installing"&gt;installed&lt;/a&gt; or portable version of ChordEase. For the installed version, it's a subfolder called ChordEase within your profile's local AppData folder, e.g. &lt;span class="path"&gt;C:\Users\foo\AppData\Local\ChordEase&lt;/span&gt;, where foo is a placeholder for your user name. For the portable version, it's the folder that contains the ChordEase executable. To specify a different location, left-click the Custom radio button, and then either type the desired path in the edit box, or press the Browse button to display a folder dialog, navigate to the desired folder, and press OK.
+
+&lt;/p&gt;&lt;p&gt;If you change the location of the data folder, you must copy the chord dictionary (ChordDictionary.txt) to the new location, otherwise the next time you run ChordEase it will display a file not found error for the dictionary, and will be unable to read &lt;a href="#Song"&gt;song&lt;/a&gt; files. You should also copy the current patch (ChordEasePatch.ini) to avoid losing your settings. Also note that the &lt;a href="#Output_folder"&gt;record output folder&lt;/a&gt; defaults to a subfolder of the data folder. Consequently if you relocate the data folder, you may also be relocating the record output folder.
+
+
+&lt;h1&gt;Dialogs&lt;/h1&gt;
+
+&lt;a name="Chord_Properties"&gt;&lt;h2&gt;Chord Properties&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;This modal dialog lets you edit the properties of an existing chord, including its duration, root, type, and bass note. First select the desired chord in the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;, and then display the dialog by selecting &lt;span class="cmd"&gt;Properties&lt;/span&gt; from the chart view's context menu. Adjust the properties as desired, and then press OK to save your changes. The dialog is identical to the &lt;a href="#Insert_Chord"&gt;Insert Chord&lt;/a&gt; dialog, except that the insert type is disabled.
+
+&lt;a name="Insert_Chord"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Insert_Chord"&gt;Insert Chord&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This modal dialog lets you specify the properties of a chord to be inserted into the &lt;a href="#Song"&gt;song&lt;/a&gt;. To display the dialog, use &lt;a href="#Insert"&gt;Edit/Insert&lt;/a&gt; or the &lt;span class="key"&gt;Insert&lt;/span&gt; key, or select &lt;span class="cmd"&gt;Insert&lt;/span&gt; from the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;'s context menu. Adjust the properties as desired, and then press OK to insert the specified chord. The dialog remembers your previous settings.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Root&lt;/td&gt;&lt;td&gt;The root of the chord.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Type&lt;/td&gt;&lt;td&gt;The chord &lt;a href="#Chord_types"&gt;type&lt;/a&gt;. The available types depend on the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass&lt;/td&gt;&lt;td&gt;The chord's optional bass note. The default setting is "Root" which means the bass note is the same as the root.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Duration&lt;/td&gt;&lt;td&gt;The duration of the chord, specified in either measures or beats.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Insert type&lt;/td&gt;&lt;td&gt;Whether to insert the chord before or after the &lt;a href="#Song_position"&gt;current position&lt;/a&gt;. After is easier for entering multiple chords in a row.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="MIDI_Devices"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Devices"&gt;MIDI Devices&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dockable bar contains two lists, one showing all available MIDI input devices, and the other showing all available MIDI output devices. Inputs are on the left, and outputs are on the right. The device indices shown in these lists are synonymous with &lt;em&gt;ports&lt;/em&gt; in ChordEase. Throughout ChordEase, input ports correspond to MIDI input devices, and output ports correspond to MIDI output devices.
+
+&lt;/p&gt;&lt;p&gt;Device indices are zero-origin, i.e. the first device is always device zero, unlike MIDI channel numbers which start at one. Devices indices are unique and contiguous within each list, but not between lists, i.e. there can be an input device zero and an output device zero.
+
+&lt;/p&gt;&lt;p&gt;The device lists are updated automatically when MIDI devices are inserted or removed. In this case Windows will renumber the MIDI devices as needed to keep them contiguous, and ChordEase will attempt to similarly renumber all ports referenced in the current &lt;a href="#Patch"&gt;patch&lt;/a&gt;. However if a device that was in use is removed, ChordEase will be unable to correct the situation, and will issue a warning.
+
+&lt;/p&gt;&lt;p&gt;To show or hide the bar, use &lt;span class="cmd"&gt;MIDI/Devices&lt;/span&gt;.
+
+&lt;a name="MIDI_Input_bar"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Input_bar"&gt;MIDI Input&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dockable bar displays input MIDI events in real time, which can be useful for debugging your MIDI setup. By default, the bar shows all input received from all MIDI input devices. To filter the data, so that only a subset of the events are shown, use the drop lists above the column headings. The filtering is non-destructive, i.e. if you remove a filter, any events that were rejected by that filter reappear. Each column's filter is initially set to a wildcard (shown as an asterisk), which means filtering is disabled for that column. Multiple filters can be applied simultaneously, in which case an event must pass all filters to be displayed. To reset all filters to wildcards and show all events, select &lt;span class="cmd"&gt;Reset Filters&lt;/span&gt; on the bar's context menu.
+
+&lt;/p&gt;&lt;p&gt;For example, to only see events on channel 10, select 10 in the Chan column's drop list. To only see Note On messages, select "Note On" in the Message column's drop list. Note that for the Message column, two special wildcards are available: "Channel *" shows only channel messages, and "System *" shows only system messages.
+
+&lt;/p&gt;&lt;p&gt;To pause the display, set the Timestamp column's drop list to "Pause" or select &lt;span class="cmd"&gt;Pause&lt;/span&gt; in the bar's context menu. Events continue to accumulate while paused, so you will not miss any. To resume the display, set the Timestamp column's drop list back to * or reselect &lt;span class="cmd"&gt;Pause&lt;/span&gt; in the context menu. The context menu also allows you to clear the event history, via &lt;span class="cmd"&gt;Clear History&lt;/span&gt;. It's also possible to show controllers by name instead of only by number, again via the context menu.
+
+&lt;/p&gt;&lt;p&gt;To show or hide the bar, use &lt;span class="cmd"&gt;MIDI/Input&lt;/span&gt;. To display output events, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt;, which works similarly.
+
+&lt;a name="MIDI_Output_bar"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Output_bar"&gt;MIDI Output&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dockable bar displays output MIDI events in real time, which can be useful for debugging your MIDI setup. By default, the bar shows all output sent to all MIDI output devices. For event filtering and other details, see the &lt;a href="#MIDI_Input_bar"&gt;MIDI Input bar&lt;/a&gt;. To show or hide the bar, use &lt;span class="cmd"&gt;MIDI/Output&lt;/span&gt;.
+
+&lt;a name="MIDI_Assignments"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Assignments"&gt;MIDI Assignments&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dialog lists all &lt;a href="#MIDI_targets"&gt;MIDI targets&lt;/a&gt; to which controllers are currently assigned. Assignments from the &lt;a href="#Patch"&gt;patch&lt;/a&gt; and from all the &lt;a href="#Part"&gt;parts&lt;/a&gt;, which are normally accessed separately, are merged. The resulting master list of assignments can be useful for debugging your MIDI setup. One or more assignments can be selected and deleted, via the dialog's context menu. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Assignments&lt;/span&gt;.
+
+&lt;/p&gt;&lt;p&gt;The input to output &lt;a href="#MIDI_Note_Mappings"&gt;MIDI note mappings&lt;/a&gt; for each part are not included in this dialog, because they have their own dialog; see below.
+
+&lt;a name="MIDI_Note_Mappings"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="MIDI_Note_Mappings"&gt;MIDI Note Mappings&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dialog lists the input to output note mapping for each &lt;a href="#Part"&gt;part&lt;/a&gt;. The note mappings from all the parts, which are normally accessed separately, are merged. The resulting master list of note mappings can be useful for debugging your MIDI setup. Each row corresponds to a part. For each part, the &lt;a href="#Input_Port"&gt;input port&lt;/a&gt;, &lt;a href="#Input_Channel"&gt;input channel&lt;/a&gt;, &lt;a href="#Zone_Low"&gt;input zone&lt;/a&gt;, &lt;a href="#Output_Port"&gt;output port&lt;/a&gt;, and &lt;a href="#Output_Channel"&gt;output channel&lt;/a&gt; are displayed, along with the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. To display the dialog, use &lt;span class="cmd"&gt;MIDI/Note Mappings&lt;/span&gt;.
+
+&lt;a name="Output_Notes_bar"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Output_Notes_bar"&gt;Output Notes&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dockable bar dynamically displays the output notes on a virtual piano keyboard. To show or hide the bar, use &lt;span class="cmd"&gt;View/Output Notes&lt;/span&gt;. The piano keyboard's orientation can be horizontal or vertical, depending on whether the bar is docked horizontally or vertically. This bar is useful for examining the behavior of the &lt;a href="#Mapping_functions"&gt;mapping functions&lt;/a&gt;. To monitor MIDI output messages other than notes, e.g. controllers, use the &lt;a href="#MIDI_Output_bar"&gt;MIDI Output bar&lt;/a&gt; instead.
+
+&lt;/p&gt;&lt;p&gt;By default, output notes are displayed for all ports and all channels, except the port and channel used by the &lt;a href="#Metronome"&gt;metronome&lt;/a&gt;. To restrict the display to a particular port and/or channel, use the port and channel submenus of the bar's context menu. The context menu also lets you to change the size of the piano keyboard, show or hide the key labels, rotate the key labels, and enable or disable the display of metronome notes.
+
+&lt;a name="Piano_dialog"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Piano_dialog"&gt;Piano&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This modeless dialog is a virtual piano that lets you play ChordEase via your computer's mouse or keyboard. This allows you to try out ChordEase even if you don't have a MIDI instrument. To display the dialog, use &lt;span class="cmd"&gt;View/Piano&lt;/span&gt;. To play notes, left-click the piano keys, or press letter keys on your computer keyboard. Note that the letter keys only play notes while the piano dialog has focus. If you don't hear any output, ChordEase may be configured incorrectly; you may want to try the &lt;a href="#Demo"&gt;demo&lt;/a&gt;. To see if output notes are being generated, show the &lt;a href="#Output_Notes_bar"&gt;output notes bar&lt;/a&gt; and/or the &lt;a href="#MIDI_Output_bar"&gt;MIDI output bar&lt;/a&gt;. The dialog will also display notes played on an external MIDI device, provided the notes are transmitted on the appropriate port and channel. The dialog has various settings, which are described below.
+
+&lt;a name="Piano_port"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Piano_port"&gt;Port&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This drop list lets you select which &lt;a href="#Input_Port"&gt;input port&lt;/a&gt; notes will be sent to. This setting, in combination with the piano's &lt;a href="#Piano_channel"&gt;channel&lt;/a&gt; setting (see below) determines which part(s) will receive the notes. Since multiple parts can have the same input port and channel, it's possible to layer parts, i.e. play several parts at once. Keyboard splits are also possible if the part &lt;a href="#Zone_Low"&gt;input zones&lt;/a&gt; are configured correctly. For a list of the ports, channels, and zones used by all parts, see the &lt;a href="#MIDI_Note_Mappings"&gt;MIDI note mappings&lt;/a&gt; dialog.
+
+&lt;a name="Piano_channel"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Piano_channel"&gt;Channel&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This drop list lets you select which &lt;a href="#Input_Channel"&gt;input channel&lt;/a&gt; notes will be sent to. This setting, in combination with the piano's &lt;a href="#Piano_port"&gt;port&lt;/a&gt; setting (see above) determines which part(s) will receive the notes.
+
+&lt;a name="Start_note"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Start_note"&gt;Start note&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This drop list lets you select the virtual piano's lowest note. In combination with the &lt;a href="#Piano_size"&gt;piano size&lt;/a&gt; setting (see below), it lets you emulate the layout of any standard or nonstandard piano.
+
+&lt;a name="Piano_size"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Piano_size"&gt;Piano size&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This drop list lets you select the virtual piano's size, in keys. It's usually used in combination with the &lt;a href="#Start_note"&gt;Start note&lt;/a&gt; setting (see above).
+
+&lt;a name="Piano_velocity"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Piano_velocity"&gt;Velocity&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This slider sets the velocity of notes played via the piano dialog.
+
+&lt;a name="Piano_context_menu"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Piano_context_menu"&gt;Context menu&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td rowspan="6"&gt;Key Labels&lt;/td&gt;&lt;td&gt;None&lt;/td&gt;&lt;td&gt;No labels are shown on the piano keys.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shortcuts&lt;/td&gt;&lt;td&gt;The labels show keyboard shortcuts, i.e. the correspondence between your computer keyboard and the piano keys.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Input Notes&lt;/td&gt;&lt;td&gt;The labels show the names of the input notes, i.e. for each key, what note is input to the &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt;. The labels are unaffected by chord changes, transposition, etc.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Output Notes&lt;/td&gt;&lt;td&gt;The labels show the names of the output notes, i.e. for each key, what note is output by the &lt;a href="#Mapping_functions"&gt;mapping function&lt;/a&gt;. The labels vary depending on the current chord scale, and are updated dynamically as the chords change. The labels are also affected by various settings including global &lt;a href="#Transpose"&gt;transposition&lt;/a&gt; and the part's &lt;a href="#Input_Transpose"&gt;input transposition&lt;/a&gt;. Note that a forward slash shown on a key indicates that the key is mapped to the &lt;a href="#Comp"&gt;comp&lt;/a&gt; function.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Intervals&lt;/td&gt;&lt;td&gt;The labels show the intervals created by each piano key, e.g. relative to the root of the current chord. The labels are updated dynamically, as described above.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Scale Tones&lt;/td&gt;&lt;td&gt;The labels show the scale tones created by each piano key, as numbers from 1 to 7. Keys that don't generate a scale tone are left blank. The labels are updated dynamically, as described above.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Rotate Labels&lt;/td&gt;&lt;td colspan="2"&gt;This setting rotates the key labels 90° counterclockwise, so that they're vertical instead of horizontal. This may allow the labels to use a larger font.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Show Octaves&lt;/td&gt;&lt;td colspan="2"&gt;This setting determines whether note names displayed on the piano keys include the octave number. Including the octave lengthens the labels, which may reduce the font size and thereby make the labels harder to read. Only key label types that show notes are affected.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Vertical Keyboard&lt;/td&gt;&lt;td colspan="2"&gt;This setting rotates the entire piano keyboard 90° counterclockwise, so that it's oriented vertically instead of horizontally. This may allow the key labels to use a larger font. The Rotate Labels setting has no effect in this case.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Record_Player_dialog"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Record_Player_dialog"&gt;Record Player&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dialog lets you play back previously &lt;a href="#Recording"&gt;recorded&lt;/a&gt; performances. To display the dialog, use &lt;span class="cmd"&gt;View/Record Player&lt;/span&gt;. If you've just completed a recording, the dialog opens it automatically. Otherwise you must select a recording, via the dialog's Open button. To listen to the recording, press the Play button. Press it again to pause playback. To stop playback and rewind to the beginning, press the Stop button. To skip around within the recording, use the position slider.
+
+&lt;/p&gt;&lt;p&gt;The dialog opens &lt;a href="#Record_output_files"&gt;.cemr&lt;/a&gt; files, which the &lt;a href="#Record"&gt;record&lt;/a&gt; function creates in addition to standard MIDI files. The .cemr file includes the port and channel associations, i.e. for each &lt;a href="#Part"&gt;part&lt;/a&gt;, which port and channel it was output to. This is in contrast to standard MIDI files, which are incapable of storing port associations. If the recording was made with a MIDI setup involving multiple output devices, playing the resulting MIDI file can give unexpected results: parts that were originally on different devices may share the same timbre, and may no longer be distinguishable. The .cemr file avoids this problem. When a .cemr file is played back, assuming the output MIDI setup is identical to what it was when the recording was made, the performance should sound exactly as it originally did.
+
+&lt;/p&gt;&lt;p&gt;This dialog also lets you modify the port and channel associations of an existing recording. This facilitates playing back a recording through a different MIDI setup. It's recommended to stop playback first, otherwise stuck notes may occur. To change a port or channel, left-click the port or channel within the list control, and type a new value in the popup edit box. The part names can similarly be edited, and individual parts can be enabled or disabled using the checkboxes. After changing the part information, you can save the edited recording via the Save As button. You can also export the recording as a new standard MIDI file, via the Export button. The export feature allows you to create a MIDI file with a different &lt;a href="#MIDI_file_resolution"&gt;resolution&lt;/a&gt; than the original MIDI file had.
+
+&lt;a name="Section_List_dialog"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Section_List_dialog"&gt;Section List&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dialog displays a list of all &lt;a href="#Sections"&gt;sections&lt;/a&gt; in the current &lt;a href="#Song"&gt;song&lt;/a&gt;. The list lets you view the &lt;a href="#Section_Name"&gt;name&lt;/a&gt;, &lt;a href="#Section_Start"&gt;start position&lt;/a&gt;, &lt;a href="#Section_Length"&gt;length&lt;/a&gt;, and &lt;a href="#Section_Repeat"&gt;repeat count&lt;/a&gt; of each section. To show the dialog, use &lt;span class="cmd"&gt;Edit/Section/List&lt;/span&gt; or select &lt;span class="cmd"&gt;Section/List&lt;/span&gt; from the chart view's context menu. In addition to sections you explicitly &lt;a href="#Section_Create"&gt;create&lt;/a&gt;, the list may also include &lt;em&gt;implicit&lt;/em&gt; sections. For example, if two explicit sections are separated by one or more chords, the space between the two sections appears in the list as an implicit section. To edit section properties, use the &lt;a href="#Section_Properties_dialog"&gt;Section Properties dialog&lt;/a&gt;.
+
+&lt;a name="Section_Properties_dialog"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Section_Properties_dialog"&gt;Section Properties&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dialog lets you edit the properties of an existing &lt;a href="#Sections"&gt;section&lt;/a&gt;, including its start position, length, repeat count, and name. To edit a section's properties, position the &lt;a href="#Chart_view"&gt;chart view&lt;/a&gt;'s cursor anywhere within the section, and use &lt;span class="cmd"&gt;Edit/Section/Properties&lt;/span&gt; or select &lt;span class="cmd"&gt;Section/Properties&lt;/span&gt; from the chart view's context menu.
+
+&lt;a name="Section_Start"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Section_Start"&gt;Start&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the section's start position, in measures, beats, and ticks. Note that measures and beats are one-origin, i.e. the beginning of the &lt;a href="#Song"&gt;song&lt;/a&gt; is 1:1:0. The start position is rounded as needed so that section begins on a chord boundary.
+
+&lt;a name="Section_Length"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Section_Length"&gt;Length&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the section's length, in measures, beats, and ticks. The length is rounded as needed so that section ends on a chord boundary.
+
+&lt;a name="Section_Repeat"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Section_Repeat"&gt;Repeat&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the section's repeat count. A section with a repeat count greater than zero loops the specified number of times, unless it's exited prematurely via the &lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt; command. A section with a repeat count of zero loops forever, or until it's exited via the Next Section command.
+
+&lt;a name="Section_Name"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Section_Name"&gt;Name&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This is the section's optional name. The name appears in the &lt;a href="#Section_List_dialog"&gt;Section List dialog&lt;/a&gt; but is otherwise unused.
+
+&lt;a name="Song_Properties"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Song_Properties"&gt;Song Properties&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;This dialog lets you edit certain properties of the current &lt;a href="#Song"&gt;song&lt;/a&gt;, including its time signature and key signature. To display the dialog, use &lt;span class="cmd"&gt;File/Properties&lt;/span&gt;. You can also specify optional properties such as tempo, transposition to a different key, and comments. If tempo is zero, the song is played at the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; specified by the &lt;a href="#Patch"&gt;patch&lt;/a&gt;.
+
+
+&lt;h1&gt;Loose ends&lt;/h1&gt;
+
+&lt;a name="Scales"&gt;&lt;h2&gt;Scales&lt;/h2&gt;&lt;/a&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase supports a fixed set of scales, shown in the table below. All &lt;a href="#Chord_types"&gt;chord types&lt;/a&gt; listed in the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt; must be defined in terms of these scales. User-defined scales are not currently supported. Only heptatonic (7-note) scales are allowed, due to design constraints. Workarounds are available for certain non-heptatonic scales, as follows: The whole tone scale is approximated via the Locrian mode of the Neapolitan major, and the symmetric diminished is approximated by removing one note, yielding the "asymmetric diminished".
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Name&lt;/th&gt;&lt;th&gt;Notes (in C)&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MAJOR&lt;/td&gt;&lt;td&gt;C D E F G A B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;MELODIC_MINOR&lt;/td&gt;&lt;td&gt;C D Eb F G A B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HARMONIC_MINOR&lt;/td&gt;&lt;td&gt;C D Eb F G Ab B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;HARMONIC_MAJOR&lt;/td&gt;&lt;td&gt;C D E F G Ab B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NEAPOLITAN_MAJOR&lt;/td&gt;&lt;td&gt;C Db Eb F G A B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;NEAPOLITAN_MINOR&lt;/td&gt;&lt;td&gt;C Db Eb F G Ab B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;DOUBLE_HARMONIC&lt;/td&gt;&lt;td&gt;C Db E F G Ab B&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;ASYM_DIMINISHED&lt;/td&gt;&lt;td&gt;C Eb F Gb Ab A B&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;a name="Chord_types"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Chord_types"&gt;Chord types&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;ChordEase can support any set of chord types. All chord symbols in a &lt;a href="#Song"&gt;song&lt;/a&gt; must be defined in the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt;, which is a user-editable plain text file called ChordDictionary.txt. The chord dictionary shipped with ChordEase defines the most commonly used chord symbols, and should be adequate for most users. Advanced users may want to add new symbols, or redefine existing symbols, by associating them with different scales and modes. Before &lt;a href="#Editing_the_chord_dictionary"&gt;editing the chord dictionary&lt;/a&gt;, you should familiarize yourself with its format.
+
+&lt;a name="Chord_dictionary"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Chord_dictionary"&gt;Chord dictionary&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;The chord dictionary defines the &lt;a href="#Chord_types"&gt;chord types&lt;/a&gt; permitted in a &lt;a href="#Song"&gt;song&lt;/a&gt;. Each line of the dictionary is either a definition, or an alias. A definition must contain the following items, all separated by one or more spaces:
+
+&lt;ol&gt;
+&lt;li&gt;The chord symbol to be defined.
+&lt;/li&gt;&lt;li&gt;The name of the scale to use for this chord type.
+&lt;/li&gt;&lt;li&gt;The name of the mode to use for this chord type.
+&lt;/li&gt;&lt;li&gt;The two chord variations (A and B) to use for &lt;a href="#Comp"&gt;comping&lt;/a&gt;. Each variation consists of a comma-separated list of chord tone numbers, enclosed in square brackets. Valid chord tone numbers range from 1 to 7.
+&lt;/li&gt;&lt;/ol&gt;
+
+&lt;/p&gt;&lt;p&gt;The names of the &lt;a href="#Scales"&gt;scales&lt;/a&gt; and modes must be upper case, with words separated by underscores. Here's a sample dictionary definition, defining the symbol maj7 as the Lydian mode of the major scale:
+
+&lt;/p&gt;&lt;p&gt;maj7 MAJOR LYDIAN [1,3,5,7] [2,3,5,6]
+
+&lt;/p&gt;&lt;p&gt;Aliases let you equate a chord symbol with another chord symbol. An alias consists of a chord symbol, followed by an equals sign, followed by the chord symbol to which the alias refers. These items must be separated by one or more spaces. Note that forward references are not permitted, i.e. an alias can't refer to a symbol that hasn't been defined yet. Here's a sample alias, defining the symbol M7 to be the same as maj7:
+
+&lt;/p&gt;&lt;p&gt;M7 = maj7
+
+&lt;/p&gt;&lt;p&gt;Chord symbols may consist of any number of non-whitespace printable characters. Spaces are not permitted within chord symbols. To create an empty symbol, use the special keyword NULL. The empty symbol is normally reserved for the major triad.
+
+&lt;a name="Editing_the_chord_dictionary"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Editing_the_chord_dictionary"&gt;Editing the chord dictionary&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;The chord dictionary can be edited with an ordinary text editor such as Notepad. Note however that the chord dictionary normally resides in same folder as the ChordEase application, and if you're using the &lt;a href="#Installing"&gt;installed&lt;/a&gt; version of ChordEase, you may lack sufficient privileges to modify the dictionary. This can be solved by running as administrator, but if that isn't an option, you may instead override the default dictionary, by copying ChordDictionary.txt from the application folder to your user profile. The profile folder path is typically &lt;span class="path"&gt;C:\Users\foo\AppData\Roaming\ChordEase&lt;/span&gt;, where foo is a placeholder for your user name. The copy of ChordDictionary.txt in your profile can be modified as needed, and will take precedence so long as you continue to log in as the same user. Another option which may be more convenient is to change the location of the &lt;a href="#Application_data_folder"&gt;application data folder&lt;/a&gt; to something other than your profile, but in this case be careful to also copy ChordEasePatch.ini, otherwise you'll lose your default patch settings. Note that ChordEase only reads the chord dictionary once during initialization, so if you edit it while ChordEase is running, your changes won't take effect until you exit and restart ChordEase.
+
+&lt;a name="Song_file_format"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Song_file_format"&gt;Song file format&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;A &lt;a href="#Song"&gt;song&lt;/a&gt; file consists of tokens, separated by whitespace (spaces, tabs or newlines). There are two mandatory tokens which must appear in order at the beginning of a song: the time signature, and the key signature. These must be followed by one or more chord tokens. A chord token consists of three mandatory elements (chord duration, root, type) and one optional element (bass note). A chord token must not contain any embedded spaces.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Duration&lt;/td&gt;&lt;td&gt;An integer specifying the duration of the chord in beats.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Root&lt;/td&gt;&lt;td&gt;The root of the chord, as a note name, e.g. C, Bb, F#, etc.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Type&lt;/td&gt;&lt;td&gt;The chord type, e.g. maj7, -7, etc. Only &lt;a href="#Chord_types"&gt;chord types&lt;/a&gt; defined in the &lt;a href="#Chord_dictionary"&gt;chord dictionary&lt;/a&gt; are permitted.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Bass&lt;/td&gt;&lt;td&gt;A slash followed by a bass note name, e.g. /E. This element is optional. The &lt;a href="#Bass"&gt;bass&lt;/a&gt; function only respects alternate bass notes if the &lt;a href="#Slash_chords"&gt;slash chords&lt;/a&gt; setting is enabled.&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;The simplest possible song file is given below. It's in 4/4 time and the key of C, and consists of a single measure of C major.
+
+&lt;/p&gt;&lt;p&gt;4/4 C
+&lt;br /&gt;4C
+
+&lt;/p&gt;&lt;p&gt;Here's a slightly more complicated song. It's in 4/4 time and the key of Bb, and consists of II, V, I, followed by a minor turnaround back into II. Note that the final measure is split into two chords. The total length is four measures or 16 beats.
+
+&lt;/p&gt;&lt;p&gt;4/4 Bb
+&lt;br /&gt;4C-7 4F7 4Bbmaj7 2D-7b5 2G7b9
+
+&lt;/p&gt;&lt;p&gt;Comments are permitted, though only comments at the start of the file are guaranteed to be preserved. The single-line comment delimiter is two consecutive slashes. Property assignments may also be specified at the start of the file, after the time and key signatures but before the first chord token. Currently the only properties supported are T (tempo) and K (transposition to the specified key). Here's an example showing comments, property assignments, and an alternate bass note.
+
+&lt;/p&gt;&lt;p&gt;// this song specifies a tempo of 140
+&lt;br /&gt;// and transposition to the key of Eb
+&lt;br /&gt;4/4 Bb T=140 K=Eb
+&lt;br /&gt;4C-7 4F7/C 4Bbmaj7 2D-7b5 2G7b9
+
+&lt;/p&gt;&lt;p&gt;Songs can contain &lt;a href="#Sections"&gt;sections&lt;/a&gt;, which repeat a specific number of times or indefinitely. A section is defined by enclosing one or more chords in square brackets. The brackets must be separated from the chord symbol(s) they enclose by one or more spaces. The section's closing bracket can optionally specify a repeat count. The repeat count must be an integer greater than zero, and must immediately follow the closing bracket. If no repeat count is specified, the section is repeated indefinitely, or until the section is advanced via the &lt;a href="#Next_Section"&gt;Next Section&lt;/a&gt; command. Here's an example that demonstrates sections. The first section repeats indefinitely, whereas the second section repeats twice.
+
+&lt;/p&gt;&lt;p&gt;4/4 C
+&lt;br /&gt;[ 4D-7 4G7 ]
+&lt;br /&gt;[ 4E-7b5 4A7b9 ]2
+
+&lt;/p&gt;&lt;p&gt;Sections can optionally be named. To create a named section, the section's opening bracket must be immediately preceded by the section name, which must not contain any spaces. The following example demonstrates named sections.
+
+&lt;/p&gt;&lt;p&gt;4/4 C
+&lt;br /&gt;vamp[ 4D-7 4G7 ]
+&lt;br /&gt;break[ 4E-7b5 4A7b9 ]2
+
+&lt;a name="Durations"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Durations"&gt;Durations&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;Several ChordEase parameters are relative durations that scale with &lt;a href="#Tempo"&gt;tempo&lt;/a&gt;, just like note durations. The unit of a duration is whole notes, i.e. a duration of one equals a whole note. Durations are usually expressed as fractions of a whole note. Duration parameters include &lt;a href="#Harmonic_Anticipation"&gt;harmonic anticipation&lt;/a&gt;, &lt;a href="#Arpeggio_Period"&gt;arpeggio period&lt;/a&gt;, and bass &lt;a href="#Approach_length"&gt;approach length&lt;/a&gt;.
+
+&lt;/p&gt;&lt;p&gt;A special type of combo box is provided for specifying durations. Common values are selectable via the drop list. Alternatively a fraction or a floating-point value can be typed in the edit box. Triplet values can be specified by preceding the fraction with the letter T, e.g. T1/4 for a triplet quarter note. Dotted notation is also supported: the first dot increases the value by half, a second dot increases it by an additional quarter, and so on. For example 1/2. equals 3/4, 1/2.. equals 7/8, etc. Negative values may be accepted, depending on the parameter. For triplet values, the minus sign must precede the T, e.g. −T1/4. The table below lists some common durations.
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;1/1&lt;/td&gt;&lt;td&gt;whole&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/1&lt;/td&gt;&lt;td&gt;triplet whole (2/3)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/2&lt;/td&gt;&lt;td&gt;half&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/2&lt;/td&gt;&lt;td&gt;triplet half (1/3)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/4&lt;/td&gt;&lt;td&gt;quarter&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/4&lt;/td&gt;&lt;td&gt;triplet quarter (1/6)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/8&lt;/td&gt;&lt;td&gt;eighth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/8&lt;/td&gt;&lt;td&gt;triplet eighth (1/12)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/16&lt;/td&gt;&lt;td&gt;sixteenth&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/16&lt;/td&gt;&lt;td&gt;triplet sixteenth (1/24)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/32&lt;/td&gt;&lt;td&gt;thirty-second&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;T1/32&lt;/td&gt;&lt;td&gt;triplet thirty-second (1/48)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1/64&lt;/td&gt;&lt;td&gt;sixty-fourth&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
+
+&lt;/p&gt;&lt;p&gt;Durations are displayed as fractions if they can be represented using a denominator that's a reasonably small power of two, otherwise they're shown in floating-point notation. Durations can be specified very precisely, but the resulting actual durations may be considerably less precise; the achievable resolution depends on the current &lt;a href="#Tempo"&gt;tempo&lt;/a&gt; and &lt;a href="#PPQ"&gt;PPQ&lt;/a&gt;.
+
+&lt;a name="Latency"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Latency"&gt;Latency&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;Latency is the time interval between the performer triggering a note on an instrument and hearing the audio corresponding to that note. The expected latency of a typical ChordEase setup is between 5 and 8 milliseconds. By far the largest share of this latency is incurred by the MIDI hardware protocol itself, which takes between 2 and 3 ms to send a single message. Because each note has to take a roundtrip from the instrument to the computer and then back to the instrument, the latency resulting from MIDI hardware alone is in the range of 4 to 6 ms.
+
+&lt;/p&gt;&lt;p&gt;Most modern MIDI interfaces use USB, and this may add an additional delay in both directions, depending the USB driver's implementation. The MIDI instrument may also introduce delay between pressing a key and sending the corresponding note on command, and between receiving a note on command and playing the corresponding audio. ChordEase also has computational overhead, but it's comparatively small and doesn't contribute significantly to latency, provided ChordEase is running on a modern multi-core CPU, with minimal competition from other applications. Here are some things you can do to reduce latency:
+
+&lt;ul&gt;
+&lt;li&gt;Use a good quality MIDI interface. PCI interfaces have the lowest latency but they're increasingly hard to find. USB MIDI interfaces vary in quality, but we've had good results with the M-Audio Uno. You may be able to improve performance by installing the manufacturer's drivers, instead of relying on Microsoft's class compliant drivers.
+
+&lt;/li&gt;&lt;li&gt;Avoid daisy-chaining instruments, or merging instruments via MIDI merge devices, as either of these can greatly increase latency. For optimal performance there should be one MIDI interface for each instrument. For larger setups it may be necessary to use a USB hub.
+
+&lt;/li&gt;&lt;li&gt;Make sure ChordEase is not facing competition from other applications. Before you run ChordEase, use the Task Manager to verify that your CPU is in fact idle. If it isn't, your Windows installation may need tuning to remove unnecessary background tasks and services. ChordEase is highly multithreaded, and &lt;a href="#Requirements"&gt;requires&lt;/a&gt; a dual-core CPU at the minimum; a quad-core CPU with hyper-threading is recommended.
+
+&lt;/li&gt;&lt;li&gt;To reduce ChordEase demands on the CPU, hide all of the following user interface elements: &lt;a href="#MIDI_Devices"&gt;MIDI Devices&lt;/a&gt; bar, &lt;a href="#MIDI_Input"&gt;MIDI Input&lt;/a&gt; bar, &lt;a href="#MIDI_Output"&gt;MIDI Output&lt;/a&gt; bar, virtual &lt;a href="#Piano"&gt;Piano&lt;/a&gt; dialog, and &lt;a href="#Output_Notes"&gt;Output Notes&lt;/a&gt; bar.
+
+&lt;/li&gt;&lt;/ul&gt;
+
+&lt;/p&gt;&lt;p&gt;Note that using a software synthesizer as your output MIDI device may increase latency, sometimes drastically. The Microsoft GS Wavetable Synth that ships with Windows is particularly bad: it exhibits latency on the order of 250 milliseconds, which makes it unusable except for testing.
+
+&lt;a name="Shortcuts"&gt;&lt;/a&gt;&lt;h2&gt;&lt;a name="Shortcuts"&gt;Shortcuts&lt;/a&gt;&lt;/h2&gt;
+
+&lt;/p&gt;&lt;p&gt;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;td&gt;Ctrl+A&lt;/td&gt;&lt;td&gt;Select All&lt;/td&gt;&lt;td&gt;Select the entire document&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+C&lt;/td&gt;&lt;td&gt;Copy&lt;/td&gt;&lt;td&gt;Copy the selection and put it on the Clipboard&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+E&lt;/td&gt;&lt;td&gt;Edit Song Text&lt;/td&gt;&lt;td&gt;Edit the current song as text&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+G&lt;/td&gt;&lt;td&gt;Go To&lt;/td&gt;&lt;td&gt;Jump to specified song position&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+L&lt;/td&gt;&lt;td&gt;MIDI Learn&lt;/td&gt;&lt;td&gt;Learn MIDI target assignments&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+N&lt;/td&gt;&lt;td&gt;New&lt;/td&gt;&lt;td&gt;Create a new song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Shift+N&lt;/td&gt;&lt;td&gt;New Patch&lt;/td&gt;&lt;td&gt;Create a new patch&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+O&lt;/td&gt;&lt;td&gt;Open&lt;/td&gt;&lt;td&gt;Open an existing song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shift+O&lt;/td&gt;&lt;td&gt;Edit options&lt;/td&gt;&lt;td&gt;Edit the options&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Shift+O&lt;/td&gt;&lt;td&gt;Open Patch&lt;/td&gt;&lt;td&gt;Open an existing patch&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+P&lt;/td&gt;&lt;td&gt;Print&lt;/td&gt;&lt;td&gt;Print the active document&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+R&lt;/td&gt;&lt;td&gt;Record&lt;/td&gt;&lt;td&gt;Record performance&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+S&lt;/td&gt;&lt;td&gt;Save&lt;/td&gt;&lt;td&gt;Save the current song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Shift+S&lt;/td&gt;&lt;td&gt;Save&lt;/td&gt;&lt;td&gt;Save the current patch&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+V&lt;/td&gt;&lt;td&gt;Paste&lt;/td&gt;&lt;td&gt;Insert Clipboard contents&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Backspace&lt;/td&gt;&lt;td&gt;Repeat&lt;/td&gt;&lt;td&gt;Repeat song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Alt+Backspace&lt;/td&gt;&lt;td&gt;Undo&lt;/td&gt;&lt;td&gt;Undo the last action&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Delete&lt;/td&gt;&lt;td&gt;Delete&lt;/td&gt;&lt;td&gt;Delete the selected items&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shift+Delete&lt;/td&gt;&lt;td&gt;Cut&lt;/td&gt;&lt;td&gt;Cut the selection and put it on the Clipboard&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shift+Esc&lt;/td&gt;&lt;td&gt;Panic&lt;/td&gt;&lt;td&gt;Reset all MIDI notes&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F2&lt;/td&gt;&lt;td&gt;Rename&lt;/td&gt;&lt;td&gt;Rename the selected item&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F6&lt;/td&gt;&lt;td&gt;Next Pane&lt;/td&gt;&lt;td&gt;Switch to the next window pane&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shift+F6&lt;/td&gt;&lt;td&gt;Previous Pane&lt;/td&gt;&lt;td&gt;Switch back to the previous window pane&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+F6&lt;/td&gt;&lt;td&gt;Next Document&lt;/td&gt;&lt;td&gt;Activate the next MDI child window&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Shift+F6&lt;/td&gt;&lt;td&gt;Previous Document&lt;/td&gt;&lt;td&gt;Activate the previous MDI child window&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;F7&lt;/td&gt;&lt;td&gt;Next Chord&lt;/td&gt;&lt;td&gt;Skip forward to next chord&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shift+F7&lt;/td&gt;&lt;td&gt;Previous Chord&lt;/td&gt;&lt;td&gt;Skip backward to previous chord&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Insert&lt;/td&gt;&lt;td&gt;Insert&lt;/td&gt;&lt;td&gt;Insert a new item&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Insert&lt;/td&gt;&lt;td&gt;Copy&lt;/td&gt;&lt;td&gt;Copy the selection and put it on the Clipboard&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shift+Insert&lt;/td&gt;&lt;td&gt;Paste&lt;/td&gt;&lt;td&gt;Insert Clipboard contents&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Enter&lt;/td&gt;&lt;td&gt;Next Section&lt;/td&gt;&lt;td&gt;Continue to next section&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Space&lt;/td&gt;&lt;td&gt;Play&lt;/td&gt;&lt;td&gt;Play or stop song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Shift+Space&lt;/td&gt;&lt;td&gt;Pause&lt;/td&gt;&lt;td&gt;Pause or resume song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+W&lt;/td&gt;&lt;td&gt;Rewind&lt;/td&gt;&lt;td&gt;Rewind to start of song&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+X&lt;/td&gt;&lt;td&gt;Cut&lt;/td&gt;&lt;td&gt;Cut the selection and put it on the Clipboard&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Y&lt;/td&gt;&lt;td&gt;Redo&lt;/td&gt;&lt;td&gt;Redo the previously undone action&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Z&lt;/td&gt;&lt;td&gt;Undo&lt;/td&gt;&lt;td&gt;Undo the last action&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Tab&lt;/td&gt;&lt;td&gt;Next Document&lt;/td&gt;&lt;td&gt;Activate the next MDI child window&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+Shift+Tab&lt;/td&gt;&lt;td&gt;Previous Document&lt;/td&gt;&lt;td&gt;Activate the previous MDI child window&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/p&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chris Korda</dc:creator><pubDate>Sun, 31 Aug 2014 13:11:32 -0000</pubDate><guid>https://sourceforge.net7e3567a5be06c5b75cb380b164e6ce5ca705b939</guid></item></channel></rss>