Stray Chords

Harmony: Extensive factory for chord progressions

Generate otherworldly and unique progressions with up to two selectable keys and predefined start or end chords to match. This is an experimental, yet very powerful factory that will provide you with an endless supply of inspiring chord progressions. Here are a few tips for adjusting the settings.

Looped
The transition between last and first chord is optimized for loops.
Key-less
Disables the focus on any key signature for free roaming chord progressions.
Key 1, Key 2
The first key is considered the main key, while an optional second key provides additional chord material. Set both to the same key if you don't need a secondary key.
Richness
  • Simple: Up to four notes and favors triads.
  • Medium: Up to five notes and includes diminished chords.

  • Complex: Up to five notes and includes diminished and augmented chords.

  • Open: Up to six notes of all chord types and relaxed constraint checking.

Catalog Priority
Prefer chord structures with a priority in the Catalog equal to or lower than this.
Re-Asses Keys, Scales
After generating the whole progression, apply the keys and scales estimation algorithm. Disable this if you want to keep the keys assigned by the factory.
First, Last Chord
You can predefine a first and/or last chord to have the factory fill everything in between. Input may be chord names or Roman Numeral expressions.
Fixed Notes A, B with Moves
You can require the progression to include specific notes that are transposed with every new chord according to the sequences you enter here. One or more notes can be entered by name or Roman Numeral expression. Transposition is chromatic by default, but can be switched to move along scale steps.
Carry Notes, Steps
You can require a number of notes to be carried (sustained) across chord changes for a minimum number of steps.
Preferences
Multiple sliders allow for adjusting the priority of various properties the chords and transitions between them are supposed to have.
DANGER: This factory is experimental. Some settings may lead to constraints that are impossible to meet and that may possibly hang the algorithm.