I have always dreamed of a tool that could take a piece of audio and turn it into MIDI. Mostly I wanted it for remixing: to pull the notes out of a track - the bass line, the chords, the drum pattern - and have them sitting in my own software, in time, ready to play on any instrument I like.
So I started building one. midicat.org is the result: give it a song and it hands back a multi-track MIDI file, locked to a single tempo and starting exactly on bar 1.
- splits the song into its instruments: vocals, drums, bass, guitar, keys and everything else
- finds the tempo, the swing, the time signature and where bar 1 starts
- reads the drum pattern on the grid: kick, snare and hi-hats
- listens to each instrument and writes down its notes, slides and all
- gives you one MIDI file with a track per instrument, plus the separated audio stems
- plays the result on the page through a choice of sound sets, switchable while it plays
Here is what I did not expect. Since I began work on midicat, it has turned out that the whole business of turning tracks into MIDI is really fun in its own right. Dropping in a song you know inside out and hearing it come back as a synth arrangement - close enough to recognise at once, different enough to make you grin - is hard to stop doing. You do not need a remix in mind. Just try a favourite track and press [ PLAY ].
One of the sound sets on the player is midicat chip (8-bit): square waves, a stepped triangle bass and noise drums, the sound of an old games console. Choose it and whatever song you converted plays back as a chiptune, straight away. That makes midicat an instant chiptune generator for any piece of music, which I believe may be another first.
midicat has no server doing the work. Your own computer does all of it, inside this browser tab. Your music is never uploaded anywhere - see the privacy page. The catch is that the speed depends on your machine. If your browser can use the graphics card (most computers with Chrome, Edge or Firefox), it is quick. If it has to use the processor alone, it still finishes, but more slowly.
These are times we have actually seen in testing:
| computer | browser | what we saw |
|---|---|---|
| Windows desktop with an NVIDIA graphics card | Edge | a 3½-minute song converted in just over 1 minute, start to finish; a 4½-minute song in under 1½ minutes |
| MacBook Air (M5) | Firefox | instruments separated at about twice the speed of the music: roughly 2 minutes for a 4-minute song |
| MacBook Air (M5) | Safari | processor only: separating the instruments took about 1½ times the length of the song |
| Windows desktop, graphics card not used | processor only: separating took a little over twice the length of the song | |
| an older Linux PC | processor only: about 17 minutes for one song. Slow, but it got there |
Only the first row is a complete conversion; the others are the instrument-separating step, which is the heavy part. Finding the notes adds roughly another half a minute to a minute on a fast machine, more on a slow one. Your times will differ.
The first time you convert a song, midicat downloads the model that separates the instruments (about 285 MB, or 136 MB on the processor route). Your browser keeps it, so later visits start straight away.
midicat.org is a virtual feline synthesizer operator and can make mistakes. It will mishear a note here, miss one there, and now and then put bar 1 in the wrong place. Treat what it gives you as a very good first draft, made in a minute, and tidy it up in your own software.
midicat.org is made by Chai Webs.