mp3 to midi
Runs locally in your browser

DIAGNOSE BEFORE EDITING

How to Fix MIDI Timing Issues

First decide whether the notes are stored at the wrong positions or only sound late during playback. If the MIDI blocks are misplaced, check tempo and quantize settings. If blocks are split or missing, change detection controls. If blocks look correct but sound late, inspect the instrument and audio-buffer path in your music app.

Decision path separating MIDI event timing, detection fragments, and playback latency
Use what you can see in a MIDI editor to separate stored event timing from playback delay.

CONTROLLED RETEST

Convert the same passage again

Keep the source fixed, change one control, and compare the same note starts in the same MIDI editor.

INPUT  MP3 / WAV / M4A / FLAC / OGG → OUTPUT  .MID

Drop one audio file here

or click to choose audio from your device

Choose audioMP3, WAV, M4A, FLAC, or OGG · one file · up to 50 MB / 5 minutes
Or capture one clear melody with your microphone.

Your audio stays on your device. All processing happens in this browser. No file is uploaded to a server.

No sign-upOne file at a timeNo watermark
Observed symptomMost direct testChange one thingStop condition
Spacing drifts farther from the beat over timeCompare the source tempo with the exported MIDI tempoSet Tempo to the source BPM, then export againEquivalent beats stay aligned across the passage
Note starts sit between intended grid linesCompare Quantize Off with one named gridSelect the smallest grid that represents the rhythmTarget starts align without erasing pickups or syncopation
One held note becomes several short notesInspect note blocks before changing the gridRaise Minimum note in one stepFragments merge or disappear while real short notes remain
Quiet sounds trigger early or late extra notesCompare the same passage at one higher thresholdRaise Silence threshold in a small stepQuiet false events disappear and the melody remains
Blocks are on time but audio playback sounds lateUse the editor playhead and block positions as the referenceTest a lighter instrument or lower audio buffer in the editorSound follows the same unchanged MIDI blocks more closely
Four-stage MIDI timing test sequence that keeps the source fixed and changes one variable
A one-variable sequence keeps tempo, grid, detection, and playback causes from being mixed together.

TEMPO METADATA

Tempo changes tick-to-time mapping

The current writer uses 480 ticks per quarter note and calculates ticks per second from the selected BPM. A wrong BPM can make the exported pattern drift relative to the audio timeline.

GRID TIMING

Quantize changes the downloaded MIDI

The writer rounds event ticks to the selected grid. The on-page piano roll shows detected notes before file writing, so inspect the downloaded file when testing quantization.

DETECTION

Fragments are not a tempo problem

Minimum note, threshold, and pitch range determine which detected events survive. Fix split or missing blocks before judging their grid placement.

PLAYBACK

Sound delay can leave MIDI unchanged

If blocks align with the playhead but the instrument sounds late, the stored events may be correct. Test the destination instrument and audio path without reconverting.

QUICK ANSWERS

MIDI timing issue questions

Why does my converted MIDI drift out of time?

A tempo mismatch is the first thing to test when the offset grows across the passage. Set the export tempo to the source BPM and compare the same beats again.

Why do MIDI notes start too early or late?

Inspect whether the blocks are off-grid, fragmented by detection, or correctly placed but delayed during playback. Each symptom needs a different adjustment.

Should I change tempo or quantize first?

Match tempo first because it defines the tick-to-time relationship. Then compare Quantize Off with one grid setting.

Can quantization fix broken note detection?

No. Quantization moves the timing of accepted events. It does not restore missing pitches or combine unstable detections into the intended melody.

Why is the preview unchanged after I select a grid?

The preview uses detected notes before the MIDI writer applies grid snapping. Download the file and inspect it in a MIDI editor.

Download the MIDI timing test sheet (.csv)