LF

ldrolez/free-midi-chords

Deployment & DevOps
2.3K stars Quality 45 Trend 65

A collection of free MIDI chords and progressions ready to be used in your DAW, Akai MPC, or Roland MC-707/101

Overview

Now over than 13000 MIDI files and 195 chord progressions per key! This is a collaborative project to create a collection of all chords and useful chord progressions in all keys, as MIDI files, usable with your favorite DAW. Each progression comes with mood-based tags, yes you can finally find that "nostalgic but hopeful" progression without scrolling for hours. New progressions are now tagged with 'New'. This collection is FREE and you can contribute to it using the issue tracker above. Please use the bug tracker if you find incorrect chords! All the MIDI files are licensed under the MIT license, and . * More details in my blog * How to use a MIDI Chord Pack Just download and unzip one of the release file to your DAWs User Library or Content Library. Then drag and drop the MIDI files from your DAW to your tracks.

README

SHLD Free MIDI Chord Packs

Now over than 13000 MIDI files and 195 chord progressions per key! This is a collaborative project to create a collection of all chords and useful chord progressions in all keys, as MIDI files, usable with your favorite DAW. Each progression comes with mood-based tags, yes you can finally find that “nostalgic but hopeful” progression without scrolling for hours. New progressions are now tagged with ‘New’.

This collection is FREE and you can contribute to it using the issue tracker above. Please use the bug tracker if you find incorrect chords!

All the MIDI files are licensed under the MIT license, and you can them use in any musical project freely.

Installation

Just download and unzip one of the release file to your DAWs User Library or Content Library. Then drag and drop the MIDI files from your DAW to your tracks.

Contents

In the file free-midi-chords-YYYYMMDD, the chords collection is organized using 4 levels of directories:

  • 1st level: All 12 Major and Minor keys
    • 2nd level:
      • 1 Triads
        • 3rd level: Major and Minor scales
      • 2 7ths and 9ths chords
        • 3rd level: Major and Minor scales
      • 3 All other chords
        • 3rd level: Major and Minor scales
      • 4 Chord progressions
        • 3rd level: Major, Minor and Modal progressions
          • 4th level: Rhythmic variations: pop pop2 hiphop2 soul

At the first level, you have the 12 major scales, along with the relative minor scales. To avoid confusing the relative and parallel scales, read this article for more information.

The chord progressions are organized into three categories: Major, Minor, and Modal.

  • The Major and Minor directories contain chord progressions strictly within their respective major or minor keys, using traditional notation commonly found in classical music.
  • The Modal directory, however, includes chord progressions that incorporate notes from other scales and modern modes. This creates varied tonal landscapes and emotional expressions. The Modal directory uses a modern Roman numeral analysis where numerals are always relative to the Ionian mode. This method contrasts with the traditional notation used in the Major and Minor folders.

For more detailed information on modal notation in Roman numeral analysis, you can visit the Wikipedia page on Roman numeral analysis – Modes.

Below the progressions directory, you’ll find 4 more directories. They contain the same MIDI chord progressions files but with different timings: pop, pop2, soul and hiphop2 styles. Modifications were done in chords2midi in order to create offbeat, syncopated, and complex rhythmic chords that feel more alive and inspired.

In the file free-midi-progressions-YYYYMMDD, you’ll find only chord progressions in all the keys in a single directory. This way it’s easier to import them in your Akai MPC, Roland MC-707 or MC-101 for example.

Progression index and tooling

Everything a progression knows about itself — key, mode, numerals, mood tags, rhythm style — lives only in its filename. make index turns that into a machine-readable index of the pack, and a small Agent Skill in skills/music-theory/ uses it to go from a mood prompt to rendered MIDI, driving the same src/chords2midi that builds this pack.

make dist     # build the pack into output/ and zip it into dist/
make index    # -> dist/free-midi-progressions-YYYYMMDD.json (+ .jsonl, + a shard directory)

The index is written next to the release archives so it can be attached to a release, and it is a build output only: chords.py / gen.py stay authoritative. Each file carries its sha256, so a consumer can assert it read the pack it reasoned about.

{"key": "Bb", "mode": "major", "style": "plain",
 "numerals": "I I IM-5 IM-5 IV IV V Vsus2", "tokens": ["I", "I", "IM-5", "..."],
 "tags": ["joyful", "triumphant"], "new": false, "length": 8,
 "path": "Major/Bb - I I IM-5 IM-5 IV IV V Vsus2 - Joyful Triumphant.mid", "sha256": "..."}

The same run also writes dist/free-midi-progressions-YYYYMMDD/: a manifest.json with one record per slice, plus one file per mode and key (progressions/modal-Db.json, ~171 KB). The single .json is the release asset; the directory is the read path, so a script or an agent loads the slice a query needs instead of all 11,400 rows — progressions/major-C.json for “C major”, or the 12 modal slices when asking for one mood. skills/music-theory/scripts/find_progressions.py reports the bytes it read, so the saving is measurable rather than claimed.

How to contribute

To suggest new chords for the next chord pack:

The script uses chords2midi from Rich Jones, and Python Mingus.

  • chords2midi - Create MIDI files from numerical chord progressions.

The following software is also bundled with this chords pack:

This chord pack was also distributed in Computer Music magazine issue 326.

Ludovic Drolez.

View this README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add ldrolez/free-midi-chords