This tool writes harmonic progressions in four voices (SATB) from Roman numerals such as music students are taught to do in harmony courses. It is an educational tool for visualizing the many ways chord progressions can be expressed in music. The results are free of a number of conventional errors such as parallel perfect intervals, voice-crossing, and poor leading-tone treatment.
DISCLAIMER: There is plenty of variation in part-writing rules. Accordingly, there is no guarantee that the productions of this tool are error-free from everyone's perspective, nor that they include all settings which might be considered acceptable. No claim is made as to the quality of melodic writing—though it is hoped that the user will find appealing results among the possibilities!
Documentation (in progress) of the various constraints followed by the part-writer may be found here.
Enter progressions into the part-writer with the Roman-numeral entry tool.
To get started, try one of the examples shown in the box. Enter it using the buttons. (You can't type directly into the input window.) Press next RN between each chord. Select a major or minor key from the drop-down menu. Check that Show multiple settings is selected. Finally, click Go.
You will see a number of different settings of your progression, all beginning with the first chord in the same configuration.
There may be (many) more possibilities beginning with that same chord. The From this opening buttons will let you page through them.
There likely are settings beginning with different voicings of the opening chord. Use the Change opening buttons to see them.
Try selecting different keys.
Click Go whenever you make a change to the key or the progression.
A lowercase Roman numeral creates a chord with a minor third between the root and third; an uppercase numeral, a chord with a major third. For example, an uppercase Ialways produces a major triad, whether the key is major or minor.
To distinguish MM7 from Mm7, you must enter a MM7 chord with an M: IVM7, IM65. Without the M, a Mm7 (dominant seventh) chord is assumed: IV7 will always refer to a Mm7 chord.
Use the forward slash for secondary chords: V7/V viio43/IV
Lower a root with ♭: ♭VI V7/♭III
Raise a root with ♯: ♯vi
Modulations may be represented (for the time being) using the notation for secondary chords. For example, the pivot-chord modulation C:I vi6=G:ii6 V I might be entered as I vi6 V/V I/V or I ii6/V V/V I/V. (This progression could also be written I vi6 II V.)
At the moment, the cadential six-four chord is entered using a old-fashioned notation, that is with I64 followed by the dominant chord. A more expressive means of entry is planned.
See all available realizations of your progression.
The longer your progression, the more solutions can be found. Realizations can easily number in the thousands for a six or seven-chord progression.
For faster display, results are shown in groups of fifteen at a time. See all settings using the navigation buttons.
By default, settings are organized by the voicing of the first chord. You can turn this off under Options.
Results are ordered by smoothness, with the smoothest first. You can turn sorting off under Options.
Prepare to search for the best settings: some will not be particularly musical.
Highlight a setting by clicking on it; deselect it by clicking it again. Highlighting enables you to export selected realizations to a file.
Create your own setting by choosing from alternatives.
Enter a progression with the entry tool and select a key. Select Build your own setting, followed by Go. You will see a single chord representing a possible voicing for the first harmony.
There is a blue asterix over the currently active chord, and its Roman numeral analysis is colored red.
Use the up and down arrows to choose a voicing for the active chord. The choices available are restricted by the chord's context.
Use the right and left arrows to move forwards and backwards in the progression.
Use the button to change a chord back to rests.
You can solve the progression from left to right, from right to left, inwards from the ends, etc.
Your choices will limit your options for other chords. Sometimes there won't be any chord available which can fit into position with good voice-leading. When this happens, or you want other possibilities, try choosing a different voicing before or after the chord in question, or changing a chord to rests.
The voicings given as choices will fit into the growing setting without creating errors such as parallel fifths and voice overlap. It is up to you, however, to choose combinations that form good melodic lines.
You may listen to settings using the playback controls.
Playback uses the Web Audio API, which may not work on older browsers. (You may need to update to a newer browser release.)
Playback is limited to on-screen results. To hear settings selected (by highlighting), first choose show selected under Options.
During playback, the notes of the currently sounding chord will change color.
Playback may be adjusted in the Play menu. Available settings are tempo and the volume of individual voices.
For more advanced handling of sound, import results as a MusicXML file into software with MIDI editing and playback capabilities (a music notation program, for example).
Change default part-writing guidelines, filter the results, and control presentation.
Important: When you make changes to any options, you need to press Go on the progression entry tool to see the new results.
Selecting keyboard style will output results with three-note chords in the right hand against single notes in the left. Note: tessitura settings will be ignored.
Allowing other doublings of root-position triads opens up more melodic possibilities.
Filtering by tessitura yields settings that lie mostly within each voice's comfortable range. There will still be pitches at the low or high end, but these are kept to a minimum.
If you don't want these high or low outliers at the opening, select First chord within tessitura. Set this with or without Comfortable average range (tessitura).
Greater permissiveness or selectivity can significantly increase or decrease the number of solutions in multiple realization mode. In fact, you can filter out all results by applying too many restrictions.
By default, settings are sorted in order from the smoothest to the least smooth. This may be turned off.
You may sort results according to a weight assigned to contrary, oblique, similar, and parallel motion, as well as simple repetition. The larger a number is in relation to the others, the more prominent that feature will be in the sorted results. The settings which score highest according to your recipe (or the default) appear first.
Select Show settings with the least movement to discover ways to write your progression in the most economical way possible. Settings are shown from all available openings. Finding the shortest distance between two points has the effect of flattening lines, so don't look for melodically interesting results here!
Clicking on a note will display a basic analytical description. Click on the note again to remove the annotation.
Information included is scientific pitch name, scale degree, voice part, intervallic role in the chord (root, third, etc.), and whether the note is a (secondary) leading tone. Note: the dominant scale degree is considered the root of the cadential six-four.
Notes may be shown in color depending on their functional role. Currently, chord roots, chord sevenths, leading tones, and doublings may be highlighted.
While this program is designed to provide error-free settings, it can also create solutions with errors. Currently, this is limited to consecutive perfect intervals.
Output to file
Musical output can be saved as a simple text file in three formats.
Different subsets of the available solutions may be saved to file.