Skip to content

Progressions

The progressions module renders a fixed catalog of 5 named chord progressions and labels scale degrees with correctly-cased roman numerals:

  • I-V-vi-IV - the “pop” progression
  • ii-V-I - jazz cadence
  • I-IV-V - three-chord/blues-rock
  • vi-IV-I-V - the “axis” progression
  • 12-bar-blues - standard 12-bar form

getRomanNumeral(degree, mode) returns the roman numeral for a scale degree (1-7) in a mode, reflecting that degree’s diatonic triad quality - uppercase for major ("I"), lowercase for minor ("ii"), lowercase with a ° suffix for diminished ("vii°").

getProgressionInKey(progressionId, root) transposes a catalog progression into any key, returning its chords in order.

getProgressionInKey

getProgressionInKey(progressionId: ProgressionId, root: Note): Chord[]

Renders a named catalog progression as chords in a given key, in order.

Result
[
  {
    "root": "C",
    "type": "major-triad"
  },
  {
    "root": "G",
    "type": "major-triad"
  },
  {
    "root": "A",
    "type": "minor-triad"
  },
  {
    "root": "F",
    "type": "major-triad"
  }
]

getRomanNumeral

getRomanNumeral(degree: number, mode?: ModeName): string

Returns the roman numeral for a scale degree in a mode - case and suffix reflect diatonic triad quality.

Result
"I"