Dive into the coding symphony! We're making your own MIDI chords with Python on Windows - no magic, just coding. Picture this: crafting perfect chords like a maestro, swapping piano keys for cool Python scripts. No coding hat needed, just bring your zest.
By the end, you'll own a unique MIDI set, all the right tunes included. So, grab your mouse, let's jump into making music digitally! 🎶🐍
Using Rich Jones'chords2midi library will make our harmonious quest all the more enchanting. Here are the four steps to strike the right chord (pun intended) with our MIDI pack creation:
- Install Python
- Install Chords2Midi
- Test Chords2Midi
- Create a MIDI Chords Progressions pack.
Let's break down the grand opus into these four delightful movements:
Install Python
Before the magic can begin, every wizard needs their wand. In your case, it's Python, and here's how you can get it:
- Head over to python.org.
- Hit the 'Downloads' and grab the latest Windows Installer.
- Run the installer. Crucial tip: tick the 'Add Python to PATH' box during installation. This will save you from a game of hide and seek with Python later on.
- Follow the on-screen instructions—no need to compose a chorus about it; it's straightforward.
To confirm the installation, start 'Windows Powershell' and serenade your command prompt with the following command and it should recite the Python version back to you:
python --version
Install Chords2Midi
Now that we've got Python tuning its strings backstage, it's time to welcome the star of the show: Chords2Midi. In Powershell, type:
pip install chords2midi
If this does not work, that was my case, you can install the library the old way:
- Go to https://github.com/Miserlou/chords2midi
- Click on the green download button and download the zip (see the screenshot below)
- Create a directory to unzip the file, let's say you chose C:\chords
- Now in your Powershell window, type:
cd C:\chords\chords2midi-master
pip install six midiutil
python setup.py install
Here is the hidden download button:
Test Chords2Midi
Before you bring your chords to life, you have to ensure that all the keys on your digital piano are working. If the previous step worked, try to start c2m on the command line and you should see:
> c2m
You need to supply a progression! (ex I V vi IV)
Great! Now let's try to create the famous 1564 progression in the key of A major, with a tempo of 125 bpm:
c2m I V vi IV --key A --bpm 125
PS D:\dev\chords\chords2midi-master> c2m I V vi IV --key A --bpm 125
PS D:\dev\chords\chords2midi-master> ls *.mid
Directory: D:\dev\chords\chords2midi-master
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 10/02/2024 13:13 145 A-I-V-vi-IV-125.mid
You should be able to use this MIDI file in any Daw. To see all the c2m options, simply type c2m -h
. The options are also described here.
Now come the fireworks! It’s time to put together an entire magic show, or rather, a MIDI Chords Progressions pack.
The Grand Finale:
Decide your music's soul by choosing chord progressions. Write them down, saving your musical ideas as 'progressions'. In your beloved code editor or IDE, start the Python scripting adventure. Here's a code snippet for a basic progression across all keys:
from chords2midi import c2m
# all yours keys
keys = [ 'C', 'Db', 'D', 'Eb', 'E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B' ]
# your progressions
progressions = [ "I V IV vi", "I V vi ii"]
# Iterate for each key
for key in keys:
for chords in progressions:
c2m_obj = c2m.Chords2Midi()
args = chords.split(" ")
args.extend(["-t", "5", "-B", "--key", f"{key}", "--output", f"{key} - {chords}.mid"])
c2m_obj.handle(args)
Inscribe the above incantation into a file named 'mypack.py', then invoke the script to witness the seamless birth of MIDI files in your humble abode. This foundational sorcery echoes the enchantments found within the Free SHLD chord progressions pack.
There you go, digital maestro! With your custom MIDI Chord Progressions pack in hand, you're ready to craft magical musical pieces. Step into the spotlight and create a symphony of stunning sounds — or maybe just a mesmerizing set of chords! 🎼
Don't forget, the Free SHLD chord progressions project loves teamwork magic! Feel free to share your musical ideas and chord contributions in Github. Join in, spread your creations, and help our harmony collection flourish!✨
Speak your mind