This tool loops over a chord progression, playing each chord for a configurable number of beats. The idea is to use this alongside another tool like Pitch Match or Sight Sing, to provide constant grounding to the key while practicing altered notes, or to practice matching or singing pitches over changing chords.
The progression is a sequence of roman numeral chord descriptors separated by whitespace. Each chord is written as:
[b or #] [roman numeral] [optional 7th suffix]
The roman numeral (I through VII) refers to a scale degree root.
Each numeral refers to the major scale root for
that degree: I = do, II = re, III = mi, IV = fa, V = so, VI = la,
VII = ti. To get other roots, use b (flat) or
# (sharp) before the numeral. For example,
bVII is a chord on te, and #IV is a chord
on fi. For instance, in a minor key you would typically write
bIII to get a major chord on me, or bVI to
get a major chord on le.
Uppercase numerals produce major triads; lowercase numerals produce
minor triads. For example, I is a major chord and
i is a minor chord, both on the tonic.
You can add a 7th chord suffix after the numeral:
7 or D7 — dominant 7th (major
triad + minor 7th)
M7 — major 7th (major triad + major 7th)m7 — minor 7th (minor triad + minor 7th)d7 — diminished 7th (diminished triad +
diminished 7th)
hd7 — half-diminished 7th (diminished triad +
minor 7th)
When a 7th suffix is present, it determines the full chord quality; the case of the numeral affects only the root, not the chord type.
You can specify a bass note using slash notation, written after the
chord: I/so means a I chord with so in the bass.
V7/3 means a V7 chord with the 3rd scale degree in the
bass. The bass note can be written as:
If the bass note is already a chord tone, it is moved to the bass. If it is not a chord tone, it is added as an extra bass note below the chord.
Examples: I IV V I is a basic major cadence.
ii V7 I is a common jazz turnaround in major.
i bVI V7 i is a minor turnaround with a dominant V.
bVII I uses the Mixolydian VII chord.
Each of these tools has a configuration import/export feature to save your configuration in JSON, as well as edit it by hand. To import a saved configuration, paste it into the box and use the Import Config button. Press the Export Config button to replace the text in the box with the current configuration. Use Control+A to select all of the text, copy it, and paste it somewhere to save or edit.
This is a companion to the Pitch Match tool, the Chord Match tool, and the Sight Sing tool.
This tool is free and open source software. Feel free to check out the source code and submit changes at the hosted repository.
2026-02-04: Initial release