Hi Friends of ArrangerKing – about chord progressions:
I’ve created many different tools for chord progression that I wanted to offer you for free.
None of them felt perfect enough to release, though. And over time, something strange happened:
It’s become so easy to build apps that I’ve decided to let you do it yourself — and share your creations with others, instead of everything coming from me.
You can try sites like Replit.com, bolt.new, or lovable.dev — just to name a few. There are many options out there, and they’re getting better all the time.
On these sites, you simply enter a prompt and you’ll get an app. It usually has some errors, and then you just ask the AI to fix them — one step at a time — until it behaves like you want. It takes some patience and practice, but in the end you can build a working app that generates MIDI chords.
Here’s a starter prompt you can use — adapt it as you like: Say this to the Replit Agent, bolt.new, lovable.dev, or a similar tool:
Build a chord progression tool for music production that generates downloadable MIDI files based on user-provided XML.
Key Features
User Input Users will arrive with an XML string already copied to their clipboard. Provide a clear interface with a button or area labeled: “Click here to paste XML.”
XML Parsing Extract the following information from the pasted XML:
BPM (from the <Arrangement> tag)
Block Types (e.g., Type="C")
Block Names (e.g., Name="Chorus 3")
Block Lengths in bars (from the <Types> section, e.g., <A Length="8"/>)
Note: The <Types> section is for internal logic only. The UI should only display block names (like "Chorus 3"), never type codes (like Type="B").
Progression Building Logic Use the extracted Blocks and Types to determine:
The sequence of parts
Each part’s name, type, and bar length
Workflow
Step 1: Structure Display Show a clear visual or textual representation of the song’s structure, displaying only block names: Example output:
python-repl
CopyEdit
Intro – 8 bars
Verse 1 – 8 bars
Chorus 1 – 8 bars
...
Step 2: Chord Progression Builder Provide an intuitive and inspiring tool for assigning chord progressions.
Follow common music theory patterns (e.g., I–V–vi–IV, ii–V–I).
Beginner-friendly, but with depth for advanced users.
Default: All parts of the same type share the same progression (e.g., all Verses share one, all Choruses share one).
Allow unique progressions per part only if the user explicitly enables it.
Step 3: MIDI File Export
Generate a MIDI file representing the full chord progression.
Use the extracted BPM and bar lengths for timing.
Include a “Download MIDI” button.
Example XML Input
<?xml version="1.0" encoding="UTF-8"?>
<Arrangement Version="126" Genre="Pop/Rock/Disco" Name="Default" UserName=""
BPM="120">
<Blocks>
<Block Type="I" Name="Intro" HeightL="2" HeightR="3"/>
<Block Type="A" Name="Verse 1" HeightL="3" HeightR="3"/>
<Block Type="A" Name="Verse 2" HeightL="3" HeightR="3"/>
<Block Type="R" Name="Bridge" HeightL="4" HeightR="4"/>
<Block Type="P" Name="Pre-Chorus 1" HeightL="6" HeightR="7"/>
<Block Type="B" Name="Chorus 1" HeightL="7" HeightR="7"/>
<Block Type="A" Name="Verse 3" HeightL="3" HeightR="3"/>
<Block Type="P" Name="Pre-Chorus 2" HeightL="6" HeightR="7"/>
<Block Type="B" Name="Chorus 2" HeightL="7" HeightR="7"/>
<Block Type="C" Name="Solo-Break" HeightL="5" HeightR="5"/>
<Block Type="B" Name="Chorus 3" HeightL="7" HeightR="7"/>
<Block Type="B" Name="Chorus 4" HeightL="7" HeightR="7"/>
<Block Type="O" Name="Outro/Fade Out" HeightL="3" HeightR="2"/>
</Blocks>
<Types>
<A Length="8"/>
<B Length="8"/>
<C Length="16"/>
<R Length="8"/>
<P Length="4"/>
<I Length="8"/>
<O Length="8"/>
<S Length="4"/>
</Types>
</Arrangement>
I’ve done this many times myself and made various apps — but I always went overboard trying to make them “too perfect and big.” That’s why I never released any. Let’s keep it simple and fun instead.
If you succeed in making an app that lets users download MIDI files, you can set up your DAW to “listen” for the file, then just drag and drop it in to start making music.
The first apps I made were way more complex, but they really don’t have to be.
Here are two quick and simple tools I made as examples:
Made in Replit:
https://chord-crafter-fritslyneborg.replit.app/
Made in Lovable:
(This one is public — you can remix it and make it your own!)
To use them:
Click the logo menu in ArrangerKing → press “XML Copy” → paste it into one of these apps and use it to get a MIDI file you can bring back into your DAW.
But why stop there?
Maybe your app can ask for fewer clicks?
Maybe it can go wild and generate basslines, exotic chords, or stabs for house music?
Heck, maybe you can make something so good that you can charge money for it
No matter how far you get: Please share!