chordmelody.io

|Background| |Instructions| |Method| |FAQ| |Contact|

Arrangement Method

The arrangement process is as follows:

For each note we need to decide the chord to which it "belongs", which determines the position that the note should be played on the fretboard. Similarly for each chord we need to decide what the melody note (highest voice) should be, which determines the position and voicing of the chord. The following cases are possible:

  1. When a note and chord both change simultaneously, then the note "belongs" to that chord, and the chord gets that note as its highest voice. These are the truest "chord melody" moments.
  2. When a note changes without a chord, then the new note belongs to the most recent chord played and so is played from the position of that chord. For any notes that happen before any chords (pickup notes, for example), they belong to no chord and so their playing position is determined by other means.
  3. When a chord changes without a new note, then the new chord gets as its highest voice the most recent note played. (It's questionable whether this approach is correct or ideal, but seems to produce reasonable results for now.) For chords that happen before any note is played (intro chords), they have no prescribed highest voice.

Each chord symbol is then realized into an actual chord voicing. Because the voicings are to be limited to drop voicings, we start with the following requirements:

  1. The number of notes in the final voicing must be exactly 4.
  2. The highest note must be the melody note found in the previous step.
  3. As a corollary, the chord must contain the melody note, regardless of how it relates to the chord symbol.
The final voicings are constructed from the chord symbols as follows:
  1. The chord is reduced to the closest 4-note seventh chord from among: This is done by removing all additional alterations and extensions (b9, #9, b5, #5, #11, 13, etc) and by ignoring figured bass (slash chords are currently not supported).
  2. In the case of a chord symbol that starts with less than 4 notes (a triad, in most cases), the chord is expanded to 4 notes by adding a single note (6th or 7th) and optionally moving the root to the 9th. Different expansions for major and minor triads are available as options in the settings: (It's questionable whether this approach is ideal. This step might be a good place to reconsider options. Chords with less than 3 starting notes are currently not supported.)
  3. Next, the melody note belonging to the chord (the most recent melody note) is added, if not already present in the chord, within the octave starting at the current root note of the chord (so an 11th is added as a 4th, a 13th is added as a 6th, etc). This will result in either the same 4-note chord from the last step (no change), or else a 5-note chord, consisting of the seventh chord plus one additional note.
  4. If there is now a 5-note chord, it is reduced to 4 notes by removing one of the notes from the original seventh chord, necessarily leaving the melody note. The note removed will be the root, the third, the fifth or the seventh (or, rarely, the fourth in the case of suspended chords). The note that gets removed is based on the chord quality of the original chord symbol (major, minor, dominant, etc.) and proximity to the melody note so that, in effect, the final voicing is like the seventh chord with one note being shifted up or down to become the melody note. Refer to the following tables for note substitutions:
  5. At this point, any extensions that were previously removed to reduce to a 4-note chord (e.g. b9, #9, 11, #11, 13...) are re-considered. For each extension, if it's possible to modify a note in the chord to fit a desired extension without affecting the melody note or the fundamental chord structure, it is modified in-place. Right now this is done with rules-of-thumb: (More research is needed to accommodate other extensions, in other situations.)
  6. The resulting 4-note chord is inverted to place the melody note in the highest voice.
  7. The octave of the inverted chord is increased (or decreased) so that the highest voice matches the octave of the original melody.
  8. Finally, the appropriate voice(s) are dropped an octave to produce the final drop chord voicing with the required melody note on top.

The next step is to decide the fret position in which to play the drop voicing. This is currently done naively using the following rules:

The process of determining the position is as follows:
  1. Find the melody note on the highest string possible, while respecting the "preferred minimum fret".
  2. Check if the remaining chord notes can be placed on the remaining adjacency-restricted strings, while respecting the "preferred minimum fret". If it is possible on the current string set, this is the final voicing.
  3. If it's not possible on the current string set, move the melody note down to the next lowest string and repeat the process until a voicing is found where all notes can be played on adjacency-restricted strings while respecting the "preferred minimum fret".
  4. If you run out of string sets to try (likely if the melody note is very low), then decrease the "preferred minimum fret" and repeat the process.
  5. If you run out of string sets with a preferred minimum fret of 0, then the drop voicing with this melody note can't be played on the guitar. (This will currently cause the entire arrangement process to error out with the message that the melody goes too low.)

Finally, the fretboard positions and tablature for each melody note are determined simply by two rules:

Et voilĂ ! All chords have been turned into drop voicings with melody notes on top where appropriate. The voicings have been mapped on the guitar to produce chord diagrams, and all melody notes have been given a string and fret to produce tablature. Your chord melody arrangement is complete!