Recommended MIDI Controllers
Stuck on a song? Try the chord progression generator to instantly create unique and inspiring chord sequences in any key, major or minor.
How to Use the Chord Progression Generator
- Select the Root Note:
Choose the foundational note for your chord progression from the Key dropdown menu (C, C#, D, etc.). This sets the tonal center for the chords that will be generated. If you’re unsure, C Major is a great place to start! - Select the Key Type:
Use the second dropdown to pick either Major or Minor. This determines the overall mood and the specific set of chords available:- Major: Typically sounds bright, happy, or uplifting.
- Minor: Often evokes a more somber, melancholic, or dramatic feeling.
- Choose the Number of Chords:
Use the Number of Chords dropdown to specify how many chords you want in your sequence (from 1 to 8). A standard 4-chord progression is the default, but feel free to experiment with different lengths. - Get That Pop Sound (Optional):
Check the Make it Pop? box if you want the generator to favor chord sequences commonly found in popular music. This uses predefined patterns like the famous I-V-vi-IV progression to give you a familiar, radio-friendly starting point. Leave it unchecked for more randomized (but still musically valid) results based purely on the key. - Add Harmonic Complexity (Optional):
Check the Include Chord Variations? box to explore richer harmonies beyond basic triads. When enabled, the generator uses 7th chords (like Cmaj7, Dm7) as a base and intelligently introduces random variations like 9ths, 13ths, suspended (sus2/sus4), add9, and 6th chords. Leave it unchecked for standard major, minor, and diminished chords. - Generate Your Chord Progression:
Once you’ve set your preferences, click the Generate Progression button. Your unique chord sequence will instantly appear in the output area on the right, displaying both the chord names (e.g., G, Am7) and their corresponding Roman numerals (e.g., I, ii7) within the chosen key. Click each chord to see the specific notes that make up each chord. - Play and Loop Your Progression (Optional):
Want to hear how it sounds?- Click the Play button to listen to your generated chord progression played by a simple synth sound.
- Click the Loop button to make the sequence repeat continuously. Click it again to disable looping.
- Export Midi (Optional):
Ready to use the progression in your own music? Click the Export MIDI button. This downloads your sequence as a standard MIDI file (.mid). You can then drag and drop this file directly into your Digital Audio Workstation (DAW) like Logic Pro, Ableton Live, FL Studio, Pro Tools, etc. - Experiment and Regenerate:
Don’t love the first result? Simply click Generate Progression again! Feel free to tweak any of the settings – Key, Type, Number of Chords, Pop Style, or Chord Variations – between generations. The power of this chord progression generator lies in experimentation, so explore different combinations to spark new ideas and overcome writer’s block.
Chords in Each Key
Key | Major | Minor | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
I | ii | iii | IV | V | vi | vii° | i | ii° | III | iv | v | VI | VII | |
C | C | Dm | Em | F | G | Am | Bdim | Cm | Ddim | Eb | Fm | Gm | Ab | Bb |
C# | C# | D#m | Fm | F# | G# | A#m | Cdim | C#m | D#dim | E | F#m | G#m | A | B |
D | D | Em | F#m | G | A | Bm | C#dim | Dm | Edim | F | Gm | Am | Bb | C |
D# | D# | Fm | Gm | G# | A# | Cm | Ddim | D#m | Fdim | F# | G#m | A#m | B | C# |
E | E | F#m | G#m | A | B | C#m | D#dim | Em | F#dim | G | Am | Bm | C | D |
F | F | Gm | Am | Bb | C | Dm | Edim | Fm | Gdim | Ab | Bbm | Cm | Db | Eb |
F# | F# | G#m | A#m | B | C# | D#m | Fdim | F#m | G#dim | A | Bm | C#m | D | E |
G | G | Am | Bm | C | D | Em | F#dim | Gm | Adim | Bb | Cm | Dm | Eb | F |
A | A | Bm | C#m | D | E | F#m | G#dim | Am | Bdim | C | Dm | Em | F | G |
A# | A# | Cm | Dm | D# | F | Gm | Adim | A#m | Cdim | C# | D#m | Fm | F# | G# |
B | B | C#m | D#m | E | F# | G#m | A#dim | Bm | C#dim | D | Em | F#m | G | A |
This table shows the standard diatonic chords (chords built from the notes of the scale) for every major and natural minor key. The chord progression generator uses these foundational chords. Roman numerals represent the scale degree and quality (e.g., I = Major Tonic, vi = Minor Submediant, V = Major Dominant, i = Minor Tonic).
Understanding Common Chord Progressions
While the chord progression generator can create countless unique sequences, certain progressions appear frequently across various music genres because they sound pleasing and effective. Here are a few examples:
- I-V-vi-IV (The “Axis of Awesome” Progression): (e.g., C-G-Am-F in C Major) Found in countless pop hits. The “Make it Pop” option often favors variations of this.
- I-IV-V (The Foundational Progression): (e.g., G-C-D in G Major) Simple, strong, and common in rock, folk, and blues.
- ii-V-I (The Jazz Turnaround): (e.g., Dm7-G7-Cmaj7 in C Major) A cornerstone of jazz harmony, creating strong resolution to the tonic.
- i-VI-III-VII (The “Andalusian Cadence” in Minor): (e.g., Am-F-C-G in A Minor) Creates a distinctive, often dramatic or flamenco-like sound.
- vi-IV-I-V (The “Sensitive Female” Progression): (e.g., Am-F-C-G in C Major / A Minor context) Another pop staple, often starting on the relative minor.
Experimenting with the chord progression generator will help you discover these patterns and many more!
How The Chord Progression Generator Works
This chord progression generator is a dynamic web-based tool designed to intelligently create chord sequences based on your musical preferences and established music theory principles. It combines user input with internal harmonic data and algorithms to produce useful and inspiring results. Here’s a detailed breakdown of the process:
- User Input & Initial Setup:
The process begins with your selections:- Key Letter (e.g., C, G#, Eb): Sets the tonal center.
- Key Type (Major/Minor): Determines the primary scale and overall mood (happy/bright vs. somber/dramatic).
- Number of Chords (1-8): Specifies the length of the desired progression.
- Make it Pop? (Checkbox): Influences the chord progression generator to use common, popular chord patterns.
- Include Chord Variations? (Checkbox): Enables the use of more complex, extended chords beyond basic triads.
These inputs define the parameters for the generation algorithm.
- The Harmonic Database:
The chord progression generator relies on internal data structures rooted in music theory:- Core Chord Data (chords object): Contains pre-defined lists of diatonic chords (chords naturally occurring within a scale) for all 12 keys, in both Major and Minor modes. Crucially, it stores two sets for each:
- basic: Standard major, minor, and diminished triads (e.g., C, Dm, Edim).
- extended: Corresponding 7th chords (e.g., Cmaj7, Dm7, Bm7b5). The chord progression generator selects from the basic or extended list primarily based on whether the “Include Chord Variations?” box is checked.
- Roman Numerals (romanNumerals object): Maps scale degrees to standard Roman numeral notation (e.g., I, ii, V for Major; i, ii°, III for Minor). This helps understand chord function and is essential for the “Pop Style” logic.
- Note Mapping (chordToNotes object): A comprehensive dictionary linking each specific chord name (e.g., “Am7”, “F#sus4”, “Gmaj9”) to the individual musical notes it contains (e.g., [“A4”, “C5”, “E5”, “G5”]). This is vital for both audio playback and displaying the notes within each chord.
- Core Chord Data (chords object): Contains pre-defined lists of diatonic chords (chords naturally occurring within a scale) for all 12 keys, in both Major and Minor modes. Crucially, it stores two sets for each:
- The Generation Algorithm – Crafting the Sequence:
Once inputs are received, the algorithm generates the progression. The exact method depends on the “Make it Pop?” setting:- A) Pop Style Generation (If “Make it Pop?” is checked):
- A random progression pattern is selected from a predefined list (popProgressions) specific to the chosen Key Type (Major or Minor). These lists contain sequences of Roman numerals known for their popularity (e.g., [“I”, “V”, “vi”, “IV”] or [“i”, “VI”, “III”, “VII”]).
- For each required chord in the sequence (up to the selected “Number of Chords”), the chord progression generator takes the Roman numeral from the pattern.
- It finds the index of that Roman numeral within the standard romanNumerals list for the Key Type.
- It uses this index to pick the corresponding chord from the relevant chords list (either basic or extended based on the “Variations” checkbox) for the selected Key Letter and Type.
- B) Standard Generation (If “Make it Pop?” is unchecked):
- The chord progression generator directly accesses the relevant chords list (either basic or extended based on the “Variations” checkbox) for the chosen Key Letter and Type.
- It then randomly selects chords from this list until the specified “Number of Chords” is reached. This method provides more varied and less predictable (though still diatonic) progressions.
- C) Applying Chord Variations (If “Include Chord Variations?” is checked):
This step occurs after a base chord is selected (via Pop or Standard method) and only if the variations box is checked.- The chord progression generator starts with the selected base chord, which is typically a 7th chord from the extended list.
- It then uses a probabilistic approach (Math.random() checks in the code). There’s a defined chance the base 7th chord might be modified into a more complex variation like a 9th (maj9, m9, 9), 13th (maj13, m13, 13), suspended chord (sus2, sus4), add9 chord, or 6th chord (6, m6).
- This intelligent randomization adds harmonic richness and unexpected color, creating more sophisticated and unique progressions beyond simple 7th chords.
- A) Pop Style Generation (If “Make it Pop?” is checked):
- Displaying the Progression:
The generated sequence is presented clearly in the output area:- Chord Name: The standard symbol (e.g., “Fmaj7”, “Gm”, “C#m7b5”).
- Roman Numeral: The functional notation within the key (e.g., “IVmaj7”, “ii”, “vii°7”).
- Constituent Notes: Below the main chord info, the specific notes comprising the chord (looked up via chordToNotes, e.g., “Notes: F4, A4, C5, E5”) are displayed, offering valuable insight for learning and playing the chords.
- Bringing it to Life: Audio Playback:
- The chord progression generator uses the Tone.js library, a powerful Web Audio framework, to provide auditory feedback.
- A Tone.PolySynth instance is created to play multiple notes simultaneously.
- When you click Play, the chord progression generator iterates through the lastProgression. For each chord, it retrieves the corresponding notes from the chordToNotes map and triggers the synth to play them for a set duration (“8n” or eighth note, effectively playing for roughly 1 second per chord before moving to the next).
- The Loop functionality allows the sequence to repeat seamlessly.
- The code includes specific measures (like initializing Tone.start() on user interaction and checking Tone.context.state) to improve compatibility and handle potential audio context issues on mobile devices, particularly iOS, including a notification if silent mode might be preventing audio playback.
- Taking it Further: MIDI Export:
- The Export MIDI feature leverages the midi-writer-js library.
- When clicked, it creates a new MIDI track.
- It iterates through the generated lastProgression, looking up the notes for each chord in chordToNotes.
- For each chord, it adds a NoteEvent to the MIDI track, containing the pitches of the notes, a set duration (a whole note ‘1’ per chord, suitable for import), and a default velocity (volume).
- The library then compiles this data into a standard MIDI file (.mid) format.
- Finally, it generates a data URI, allowing you to download the MIDI file directly to your computer for easy import into virtually any Digital Audio Workstation (DAW) or music notation software.
By automating chord progression generation and allowing for customisation through key, scale type, and style, this chord progression generator provides a resource for musicians and audio professionals offering professional mixing services and mastering to gain inspiration and develop musical ideas quickly.
What is a Chord Progression?
A chord progression is a series of musical chords played in sequence. These sequences form the harmonic foundation of most Western music, dictating the mood, structure, and emotional journey of a song. Understanding and creating compelling chord progressions is fundamental to songwriting and composition.
Why Use a Chord Progression Generator?
- Spark Inspiration: Break through creative blocks instantly.
- Learn Music Theory: Experiment with different keys and modes visually and aurally.
- Speed Up Workflow: Quickly prototype harmonic ideas for songs or beats.
- Explore Possibilities: Discover chord combinations you might not have thought of.
- Easy for Beginners: No deep music theory knowledge required to start creating!