Free MIDI Chords: a generated chord library, not a hand-curated sample pack
A collection of free MIDI chords and progressions ready to be used in your DAW, Akai MPC, or Roland MC-707/101
At a glance
- What is it?
- Over thirteen thousand MIDI files organised by key, chord type and progression, generated from a Python script, released as zip archives twice a year, and mood-tagged since 2025.
- Who is it for?
- This is a generator that publishes its output, and reading it as a sample pack misses the point. The chords are produced by a Python script so that the same transposition logic covers all twelve keys, the directory structure is what makes a progression findable inside a DAW, and the mood tags are the only manual curation in the pipeline.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 13 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 28, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What is actually in a release archive
The headline numbers are over thirteen thousand MIDI files and, per the README, 195 chord progressions per key, which is a lot more than most people expect from a free resource. The README also states that each progression carries mood-based tags, so you can find a nostalgic but hopeful progression without scrolling, and that new progressions are tagged New.
Everything ships under the MIT licence with an explicit promise that the files can be used in any musical project freely. Installation is deliberately minimal: download and unzip one of the release files into your DAW's user library or content library, then drag and drop the MIDI files onto your tracks.
Two distinct archives are produced, and the difference matters. The full pack, named free-midi-chords-YYYYMMDD, uses a four-level directory structure. The progressions-only pack, named free-midi-progressions-YYYYMMDD, flattens everything into a single directory of progressions across all keys, which the README says makes it easier to import into hardware such as the Akai MPC, the Roland MC-707 or the MC-101.
There is also a third target that the README does not discuss in detail: the Makefile has a ripchord target producing a free-ripchord-progressions archive, and the tree contains a script called gen-ripchord.py. So the release history has three archive shapes and the README documents two of them.
The four-level directory structure is the user interface
Once unpacked, the organisation does all the work. The first level is all twelve major and minor keys. The second level splits chords into four categories: 1 Triads, 2 7ths and 9ths chords, 3 All other chords, and 4 Chord progressions. The third level distinguishes major and minor scales, and under progressions there is a further split into major, minor and modal progressions, with a fourth level holding rhythmic variations in pop, pop2, hiphop2 and soul styles.
That fourth level is the one that makes the library usable rather than merely large. The README explains that these directories contain the same MIDI progressions with different timings, and that the modifications were made in chords2midi to create offbeat, syncopated and complex rhythmic chords that feel more alive. The same progression in four feels is the kind of thing a DAW user would otherwise have to produce by hand.
The modal directory has its own notation rules and the README is careful to distinguish them. Major and Minor progressions stay strictly within their respective keys using traditional notation commonly found in classical music. The Modal directory includes progressions that incorporate notes from other scales and modern modes, creating varied tonal landscapes and emotional expressions, and it uses a modern Roman numeral analysis where numerals are always relative to the Ionian mode.
That difference is a genuine trap for anyone reading chord symbols. The same numeral means something different in the Modal folder than in the Major folder, and the README links out to the Wikipedia page on Roman numeral analysis for modes to explain the convention. At the first level you get the twelve major scales along with their relative minor scales, and the README links to an article on parallel versus relative keys for avoiding confusion between the two.
Reading the build: a Makefile that will refuse to run
The interesting part of this repository is three Python files. The tree contains chords.py, gen.py and gen-ripchord.py, plus a requirements.txt, a src directory and a Makefile. The primary generation step is short:
python3 gen.pyThat command only succeeds if a check target passes first, and the check is strict. The Makefile tests whether ./python-mingus/README.md exists and, if it does not, prints a message explaining that building the pack requires the modified python-mingus library with a git clone instruction, then exits 1.
This is the single most important practical fact about the repository. requirements.txt lists MIDIUtil, mingus, pychord, mido and packaging as ordinary PyPI packages, but the build deliberately refuses to use the upstream mingus. The README mentions Python Mingus as one of the two tools the script uses, without mentioning that it must be a fork.
So requirements.txt alone will not get you a working build. The Makefile also expects a Python environment where the generator writes into an output directory, copies README.md and LICENSE into it, zips the result as free-midi-chords-${DATE}.zip, then assembles a second archive by copying the progression directories and zipping those. A ripchord target produces the third archive separately. The date in the filename comes from a shell expansion of the current date in YYYYMMDD form, which is why the archives are named the way they are.
Twice-yearly releases, and three different progression counts
The release cadence is roughly every six months and the numbers have climbed steadily. The Spring 2025 release, tagged v0.20250418, added three famous jazzy progressions and two famous melodic techno progressions and brought the total to 170 progressions. It also added the mood tagging that the README now advertises, which dates the feature to spring 2025 rather than making it original.
The Fall 2025 release, tagged v0.20251006, added 176 new progressions covering jazz, RnB and modal styles, introduced the new pop, soul and hip-hop rhythms that replaced older ones, and added support for complex pattern timings in chords2midi. Replacing rhythms rather than only adding them is worth noting, because it means files from an older pack may not match files from a newer one even for the same progression.
The Spring 2026 release, tagged v0.20260314, reached 190 progressions and added cinematic and pop/rock progressions. It also includes a usage note about long patterns: double the duration of the last chord for progressions with an odd number of chords.
That gives three counts in the same repository, and they do not agree. The releases say 170, then 190. The README says 195 chord progressions per key. The Spring 2026 release also carries a tag of v0.20260314 but was published on 2026-04-17, about a month after the date in its own name. None of this is alarming, but if you are citing a figure, the README number and the release number are both defensible and you should say which one you mean.
The repository was last pushed on 2026-09-24, on a project with 2,329 stars, 164 forks and 15 open issues.
Contribution runs through the issue tracker, not pull requests
The README asks for contributions in a specific and slightly unusual way. To suggest new chords for the next pack, you go to a new chords suggestions issue form, which is pre-filled with a title of the form new chord progression and a label and template already selected. Alternatively you send a private message through Patreon or on the site itself.
So new material enters through issues rather than through commits. The README also asks people to use the bug tracker if they find incorrect chords, which suggests that incorrect output is expected to be possible in a set this large and generated rather than curated by ear.
The project also bundles other software alongside the chords, listed under Related. The generator uses chords2midi from Rich Jones for creating MIDI files from numerical chord progressions, and Python Mingus. Two third-party tools are offered as part of the same workflow: Helium, an AUv3 MIDI sequencer for iPad, and a chordProgressions device for Max4Live.
One piece of distribution history is worth recording, because it explains part of the audience. The pack was distributed in an issue of Computer Music magazine. For a project with 2,329 stars that is a real-world reach signal independent of GitHub, and it is the kind of detail that never appears in the release notes.
What this is, and what it is not
It is worth being clear about the category. This is not a curated sample library where someone played each chord and chose the good ones. It is generated output from a script, transposed systematically across twelve keys, with a human curation layer consisting of mood tags and the rhythm variants.
That has direct consequences for how you use it. The chord voicings are consistent by construction, which is exactly what you want for writing quickly, and they are not chosen for a specific instrument or context. If you need a particular voicing in a specific register, this is a starting point rather than a destination.
The scale of the archive is the other thing to hold in mind. Thirteen thousand files is a large download and a large search problem inside a DAW, which is why the directory hierarchy and the separate progressions-only archive exist. The flat archive for MPC and MC-707/101 hardware is a concession to devices with much worse browsing affordances than a DAW, and it is the sensible one.
Everything is MIT licensed, which makes this one of the more permissive sources for MIDI material, and the promise is stated in plain language rather than left to be inferred from a licence file.
Editorial conclusion
This is a generator that publishes its output, and reading it as a sample pack misses the point. The chords are produced by a Python script so that the same transposition logic covers all twelve keys, the directory structure is what makes a progression findable inside a DAW, and the mood tags are the only manual curation in the pipeline. Start by downloading one release archive rather than the repository, since the repository holds the generator rather than thirteen thousand files, and read the contents section carefully because the Roman numeral convention changes between the Modal and Major folders.
Frequently asked questions
How do I install free MIDI chords into my DAW?
Download and unzip one of the release archives into your DAW's user library or content library, then drag and drop the MIDI files onto your tracks. The full pack is organised into four levels of directories by key and chord type; a separate progressions-only archive flattens everything into one directory for hardware import.
How many chord progressions are included?
The release notes say 170 progressions after the Spring 2025 release and 190 after Spring 2026, while the README states 195 per key. The counts come from different points in the project's history, so cite the one that matches the release you downloaded.
Can I use these MIDI files in commercial music?
Yes. The README states that all the MIDI files are licensed under the MIT licence and can be used in any musical project freely. There is no attribution requirement mentioned beyond the licence terms themselves.
What is the difference between the Modal and Major progression folders?
Major and Minor progressions stay strictly within their key using traditional classical notation. The Modal folder includes progressions drawing on other scales and modern modes, and its Roman numerals are always relative to the Ionian mode, so the same numeral means something different there than in the Major folder.
Do I need anything installed to generate the packs myself?
You need a fork of python-mingus rather than the upstream package. The Makefile refuses to build unless ./python-mingus/README.md exists and prints a clone instruction if it does not, so installing the packages listed in requirements.txt alone is not enough to run the generator.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ldrolez-free-midi-chords)