Why Your Converted MIDI Opens at the Wrong Tempo
Last updated 25 September 2026
The short answer: the tempo in the file was never measured. This converter writes a fixed 120 BPM into every MIDI file as a default, and never analyses the tempo of your recording. That number is a placeholder. Your notes are in the right places — the grid drawn over them is not.
You can see this without opening a DAW. Convert any file here and look at the stats panel above the piano roll: it reports Tempo 120 BPM, MIDI default. That is not a coincidence of your recording. It is the same for a 70 BPM ballad and a 160 BPM drum loop.
Why 120 BPM, and what it actually does
The writer emits a MIDI tempo event of 500,000 microseconds per quarter note. 60,000,000 ÷ 500,000 = 120, so the file declares 120 BPM. It is a constant in the code, not a value derived from your audio.
Note positions are then computed from the note's start time in seconds:
ticks = seconds × 1,000,000 × 480 ÷ 500,000 = seconds × 960
So a note that starts 2.5 seconds into the recording is written at tick 2400. Play the file back at the tempo it carries — 120 BPM — and that note sounds 2.5 seconds in. The timing is right. What is wrong is everything you use to read the music: the bar lines, the beat grid, the metronome, and the number in the tempo field.
The trap: "fixing" the tempo breaks the sync
The obvious move — type the song's real BPM into the tempo box — is the one that causes the most damage. Because the note positions are tick values that encode absolute seconds at 120 BPM, changing the playback tempo rescales every one of them. Set 90 BPM on a file written at 120 and the whole performance plays 120 ÷ 90 ≈ 1.33× slower. The bar lines start matching the song, and the notes stop matching the recording.
So you have two goals that pull against each other: stay locked to the original audio, or get a grid you can edit on. Decide which one you want before you touch the tempo field.
Pick your goal, then do this
| What you want | What to do | What you give up |
|---|---|---|
| Play the MIDI against the original recording | Leave the tempo alone at the file's 120 BPM. Do not retype it. Drop the original audio into the same project and the two line up. | The bar lines will not match the song's bars, so editing on the grid is awkward. |
| Edit on a grid that matches the song | Set the project tempo to the song's real BPM, then quantise the notes to the grid and drag the first downbeat onto bar 1. | The notes now play at a different speed from the original audio. |
| Both at once | Set the project tempo to the real BPM, then time-stretch the reference audio by 120 ÷ real BPM so it matches the new playback speed. | You are time-stretching the audio, which is a lossy edit. |
If your DAW asks whether to use the tempo stored in the MIDI file when you import it, say yes. That keeps playback identical to the recording. If your DAW instead plays MIDI clips at the project tempo, the notes stay in sync only while the project sits at 120 BPM.
The bar lines have a second problem
Even with the tempo sorted, the bar lines can still be wrong, because the time signature is written as a constant too. Every file this converter writes declares 4/4, regardless of what the recording is in. A waltz in 3/4, a piece in 6/8, a riff in 5/4 — all of them get bar lines four beats apart. If your song is not in 4/4, set the time signature in your DAW after importing; the notes are unaffected, only the bar lines move.
Finding the real BPM
You need this for options two and three above. Three ways, cheapest first:
Tap it. Tap along to the recording in any tap-tempo tool for eight or sixteen bars and read the average. Good enough for most editing.
Count it. Count beats for 15 seconds and multiply by four. If the song is 4/4, that is your BPM.
Measure it. If you already have a MIDI file whose notes are at correct absolute times, you can read the real tempo straight out of it: pick two notes that fall on beats, count the beats between them, and divide. Because positions are seconds × 960, the arithmetic is direct — 960 ticks per second, so 2,880 ticks is exactly 3 seconds of music.
If the pitch bends sound exaggerated
One more fixed value worth knowing about. The file sets its pitch bend range to ±2 semitones with an RPN message, and scales the bend data to that range. Many synths default to ±12 semitones. Load the file into one of those and every bend will be roughly six times too wide — vibrato turns into a siren. Set the instrument's bend range to 2 semitones and it snaps back.
What is actually inside the file
Worth having in front of you when something looks odd. Every MIDI file this converter writes contains exactly this:
| Format | 0 — a single track containing every note |
| Division | 480 ticks per quarter note |
| Tempo | 500,000 µs per quarter note = 120 BPM, fixed |
| Time signature | 4/4, fixed |
| Track name | mp3 to midi |
| Notes | Note-on with velocity from the detected amplitude; note-off with release velocity 64; minimum length 0.02 s |
| Pitch bend | Range ±2 semitones, written as RPN 0 |
| Analysis | Audio down-mixed to mono and resampled to 22,050 Hz before the model runs |
Nothing in that list is inferred from your audio except the notes themselves. That is the whole point: the notes are the transcription, and everything else is a fixed frame around them. Knowing which is which tells you exactly what you need to change in your DAW, and what you should leave alone.
Frequently asked questions
Why does my converted MIDI open at 120 BPM?
Because 120 BPM is the default written into the file, not a measurement of your recording. The converter writes 500,000 µs per quarter note as a constant and never analyses the tempo of the audio.
Are the notes in the wrong place, or only the tempo?
Only the tempo label and the bar lines. Notes are written at their true absolute times — seconds × 960 ticks — so at the file's own 120 BPM they land exactly where they were in the recording.
Should I just type the song's real BPM into the tempo box?
Not if you want the MIDI to stay in sync with the recording. Every note gets rescaled: at 90 BPM the performance plays about 1.33× slower.
Why do the bar lines not line up with the song?
The tempo is fixed at 120 BPM and the time signature is fixed at 4/4, so any song that is not 4/4 at 120 BPM gets bar lines in the wrong places.
The pitch bends sound wrong in my synth. Why?
The file sets its bend range to ±2 semitones. If your synth is set to ±12, the same bend data sounds roughly six times too wide. Set the instrument's bend range to 2 semitones.
Can the converter just detect the tempo instead?
It does not, and it says so rather than inventing a number. A fixed reference tempo plus your own BPM setting is easier to reason about, because you always know what the file contains.