Skip to content

Introduce some basic chord progressions #14

@braaar

Description

@braaar

We want to have some kind of harmonic logic in the app so that you can get chords that fit together harmonically.

In the harmonic style of 18th century european musicians, chords are grouped into their harmonic functions with a number from 1 to 7.

Function Extension Notes
I The root (tonic)
II
III
IV Subdominant
V Dominant
VI
VII

In the C major scale, these chords are

  • I: C major
  • II: D minor
  • III: E minor
  • IV: F major
  • V: G major
  • VI: A minor
  • VII: B dim

We want to write a function that will take some numbers and translate them into actual chords

const fourChords = {
  chords: [1, 5, 6, 4],
  mode: "major"
}
const keyCenter = "C";

writeChordProgression(fourChords, keyCenter); // returns [ "C", "G", "Am", "F"]

We can use this function alongside a large catalogue of chord progressions to get a random chord progression from the selection. If you grab two progressions you now have an A and B part you can alternate between.

getRandomProgression("C", "major"); // returns [ "C", "G", "Am", "F"]
getRandomProgression("C", "major"); // returns [ "C", "F", "G", "F"]

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions