LocalMIDI

Audio to MIDI guide

Changing the BPM will not repair every timing problem.

In LocalMIDI, changing the export BPM with snapping off largely preserves the detected timing in seconds. It does not move a late note back into place. Tempo edits after import and grid snapping are different operations.

Short answer: no. LocalMIDI converts the detected seconds into ticks at your selected BPM and writes the matching tempo. With snapping off, the two conversions cancel apart from rounding. With snapping on, BPM sets the grid and can move note boundaries. Neither operation changes MIDI pitch numbers.

Three timing decisions are easy to confuse

Detected timing

The converter estimates when a note begins and ends in the audio. This is the part affected by noise, reverb, and unclear attacks.

File tempo

BPM tells a MIDI player how long a beat lasts. It is a playback instruction, not a measurement that can relocate notes.

Quantization

Quantization moves note starts toward a chosen grid. It can make a phrase cleaner, but a coarse grid can erase intentional swing.

Read the timeline before changing the number

Think of a MIDI file as two layers: a row of note events and a clock that converts ticks into seconds. After import, changing only the clock changes playback duration if your DAW follows that tempo. LocalMIDI export instead rebuilds both layers from the detected seconds.

A MIDI timeline with detected notes and a separate BPM clockThe top line shows note events at uneven positions. The lower line shows evenly spaced beat markers. The two layers are labeled separately.Note events: placementdetectedstartsstay hereBPM clock: playback speedChanging BPM changes the spacing of playback beats, not the note rectangles above.
Original diagram by LocalMIDI: note placement and the playback clock are separate controls.

A practical repair order

Start with the cleanest source you have: one melody or instrument, a clear attack, and little room sound. Export with snapping off, then listen against the source in your DAW. If the whole phrase is stretched, first check whether import replaced the file tempo with the project tempo. If individual starts drift, edit those notes rather than changing the whole clock.

For a vocal, avoid treating the written BPM as a promise of musical perfection. Breath noise and consonants do not have a stable musical pitch, so a detector may create short notes around them. Trimming the source and using a sensible minimum-note setting can address those artifacts more directly than changing tempo.

Why LocalMIDI's export BPM behaves differently

The export writer uses 480 ticks per quarter note. Its seconds-per-tick formula is 60 / BPM / 480. A detected note at one second becomes 960 ticks at 120 BPM, or 480 ticks at 60 BPM. The matching tempo makes either event play at one second, apart from rounding. These are worked examples from the export formula, not measured conversion results.

The snapping option uses a grid of 60 / BPM / 2 seconds. At 120 BPM that grid is 0.25 seconds; at 60 BPM it is 0.5 seconds. The implementation rounds both start and end to the grid and keeps at least one grid interval of duration. A BPM change with snapping enabled therefore can reshape a phrase, including sustained notes. Keep snapping off when preserving phrasing matters more than aligning it to a beat.

The tempo estimate searches for a repeating rhythmic pulse; it does not read your intentions. A sparse melody can suggest more than one plausible beat interpretation. Choose a tempo you can count consistently, then decide whether the grid belongs under this performance at all.

What to try in LocalMIDI

Use the MP3 to MIDI converter with a clear melodic file. Adjust the shortest note setting when the output is crowded, set the lowest and highest expected notes, and only then decide whether the BPM estimate fits the phrase. If the source is a voice, the voice to MIDI guide explains why the result is note data rather than words or recorded audio.

Remember: BPM is the MIDI clock. It is not a magic “make this performance in time” switch.