How to create MIDI Files from Audio Files
Do you want to create MIDI files from the audio files of your favourite tracks?
This is a process also known as sequencing.
The best way to sequence audio files to MIDI files is to play the parts on a keyboard into a MIDI enabled DAW such as Cubase, ProTools, or Ableton.
However, perhaps keyboards are not your first instrument, or you think this would be too slow, there are some technology based solutions that can do it for you.
First, check someone else hasn't already done it for you! There are plenty of free MIDI tracks out there so, before you dive in...
- check if you can't find an existing MIDI file for the track you want by searching sites like https://www.google.com/search?q=MIDI+file+free
- Alternatively, you might be able to find it as sheet music on https://musescore.com/ If you can find it there you should be able to download it as MIDI.
Convert Audio Files to MIDI
OK, you can't find anything ready-made, but you still want to do a cover version. Ultimately you want to take it into your DAW maybe as a backing track for Karaoke. This is how.
I would suggest an app like Anthemscore from https://www.lunaverus.com/ It will convert an audio file to MIDI (with varying degrees of success depending on the track).
To improve the success rate of conversion the trick is to do it in two steps…
- Separate vocals from backing (see advice below)
- Convert each audio stem to MIDI
Why? If you try to convert the original track to MIDI with vocals intact Anthemscore will try, and probably fail, to calculate both. The result can be an unintelligible mash because it is simply too complex. That's why the solution is to convert vocals and backing separately firat.
How to Separate vocals and backing tracks from audio
There are several effective apps that can isolate stems (individual instrument parts like vocals, bass, drums) from audio using spectral analysis and machine learning. If you are a coder you could try ultimate vocal remover which you can clone from Github
Commercially Available Separation Apps: Open a track in https://www.steinberg.net/spectralayers/ (or other similar app) and unmix vocals from backing. Other apps include RipX DeepRemix from HitnMix and Xtrax Stems from AudioNamix or RX8 from iZotope
Use the Export Audio command to export all layers when complete.
Import MIDI into your DAW
- Create a folder somewhere you can find it later and give it the name of your track.
- Create a new project by 'Open new project' and give it the name of your track.
I have a template with all the instruments I usually use. Bass, Drums, Piano. If you have, and it would be useful, open that.
Set the Tempo.
Tempo is fluid. Many older tracks were recorded without a click track and the tempo fluctuates depending on the drummer's level of excitement! Consequently, there is no one right way to detect.
Cubase has two ways to identify the right tempo.
- Project/Tempo detection
- Project/Beat calculator
Of the two, I trust Beat calculator. You'll find it under the project menu in Cubase.
Import MIDI and Audio
- Set the cursor to 0 (the start of the track). This is where imported files will be placed.
- Import the two MIDI files (backing and vocals) and the original track for reference.
- Line up the audio on the beat i.e. the first part of each bar is beat 1 of your DAW beat markers. Required so that MIDI drums (Groove Agent or EZ drummer) can auto line up.
Line up MIDI tracks to the audio so they are all on the same beat
You might think you should be able to just import the tracks and they would all line up. It seems the MIDI interpreter does not like silence at the start of a track so that must be lined up manually.
You might think the audio would start on beat 1. No. Silence, or perhaps a drum fill on beat 3 guarantees you must use your skills for placement in the DAW environment.
Listen to them together and judge by ear. If they are out of sync they will have the flam effect and sound like an old out of tune pianola.
Manually Convert Audio Files to MIDI
If the above advice fails you will have to sequence manually, though there are some tricks to help you with that.
My DAW (Cubase 12) has a neat feature; you can create a chord track from an audio track. The command is Project/Chord Track/Create Events
ProTools and Ableton have similar commands.
This can work a treat but, equally, be hit or miss. Some chords are left out, chords are not always placed accurately rhythmically either.
In Cubase you can generate MIDI from audio using Varaudio. This analyses single notes quite well so apply this to your separated vocal track. It's sort of an autotune feature so can be quite accurate with some tweaking.
Other than that you are stuck with playing it by ear or writing MIDI notes into the editor manually. Time consuming but the most accurate!
If you're using software to convert audio to MIDI success will depend on the nature of the track.
For example, I have found that Anthemscore is good at creating MIDI from pianos and guitars but aggregates other parts such as orchestras into a jumble. If the music is simple/well separated to begin with it works OK, but still needs multiple corrections. If you are a decent player you could probably do better yourself.
Listen to this Steely Dan track it did work very well on…
At the end of the day, you must use you own skills for correcting pitching and rhythmic howlers but these so called A.I. programs can be a great starting point and save you a LOT of time.