mp3tomidiflowOpen converter

AUDIO TO MIDI · CONVERT, CHECK, EDIT

How to convert audio to MIDI and check the notes before manual editing

Convert a clear recording, save the detected MIDI, then compare its pitches and note starts with a known reference before editing. A retained historical single-voice WAV test record reports seven matched pitches with no missing, extra or wrong notes under its chosen timing rule. The original audio and MIDI files are now unavailable. The note starts still differed. This is a historical local CPU record, not a current validation or a promise that songs or MP3 files need no corrections.

Use the converter, then check the result

  1. Open the MP3 to MIDI converter, choose your audio and select Convert to MIDI. Keep the original recording available for comparison.
  2. When a result is available, save the MIDI before moving on. A download is an editable interpretation of the recording, not a copy of its waveform.
  3. In your MIDI editor, compare one short phrase at a time. Check pitch first, then the start of each note. Keep a copy of the original MIDI before changing it.
  4. Listen and inspect the corrected phrase against your reference. Review note lengths and dynamics separately; pitch agreement alone is not enough.

These steps are practical guidance. The experiment below ran the note model and MIDI writer outside the browser; it did not test this sequence of browser controls or an editor session. We have not timed manual corrections or compared them with entering the same phrase from scratch.

What the historical measurement record describes

The historical experiment used a 5.5-second synthetic monophonic melody with intended events recorded before inference. The input was a mono WAV with 22,050 samples per second and signed 16-bit PCM encoding. Each tone combined a fundamental with quieter second and third harmonics, using short attack and release envelopes. There was no recorded instrument, song, background noise or chord mixture. The fixture is not our earlier same-waveform WAV-versus-MP3 comparison or two-chord experiment.

The planned pitches were 57, 64, 60, 69, 62, 67 and 65. Their starts were 0.25, 0.8, 1.6, 2.05, 3, 3.6 and 4.15 seconds. Their durations were 0.35, 0.55, 0.25, 0.7, 0.4, 0.3 and 0.65 seconds. These values define this controlled reference, not a suggested musical arrangement or a transcription of someone else's recording.

We loaded the model files from the local site's distribution into TensorFlow.js 3.21.0 on the CPU, using Basic Pitch 1.0.1. We retained the site's windowing, overlap handling, note postprocessing and MIDI writing code. The CPU is also the site's fallback backend, but we did not establish numerical equality with its usual browser WASM backend. The WAV samples were decoded locally rather than through the browser's audio decoder. No browser download interaction was tested in this run.

How notes were counted without counting an error twice

We fixed the matching rule before inference. A correct-pitch match requires the same MIDI pitch and an absolute start-time difference no greater than 100 milliseconds, including the boundary. Matching is one-to-one. We maximize the number of pairs before minimizing their total absolute start-time error; a deterministic pair-order rule resolves ties. The 100-millisecond window is our laboratory choice, not a universal standard of musical acceptability.

After those matches, nearby remaining events with different pitches are paired one-to-one as wrong notes using the same time window. Unpaired reference notes are missing notes, and unpaired output events are extra notes. A wrong-note pair is therefore not also counted as a missing note and an extra note. We retain ambiguous candidates instead of silently describing an arbitrary match as certain.

The retained parsed-output record lists seven note events. All seven matched their reference pitches under this rule; missing, extra and wrong-note counts were each zero. There were no ambiguous same-pitch candidate edges in this fixture. We do not turn these counts into an undefined overall accuracy percentage. Note duration and velocity were retained in the output record but were not scored.

Seven signed onset errors around a zero reference; negative values are early and positive values are late
Historical record: each value is the recorded MIDI note start minus the planned start, not an average across songs. Original WAV and MIDI files are unavailable for independent reproduction.
Historical onset results; original audio and MIDI files unavailable
Planned MIDI pitchStart difference, ms
57−6.250000
64+1.041667
60+2.083333
69−16.666667
62−3.125000
67+12.500000
65−3.125000

A negative value means the output starts earlier; a positive value means it starts later. The table rounds to six decimal places, while the surviving historical evaluation JSON retains the calculated values. The intended envelope start is not necessarily a perceptual note onset. WAV sample quantization and MIDI tick quantization also exist. These distinctions matter when interpreting small differences rather than labeling every matched event exact.

Inspect the surviving records and their limits

The historical evaluation described retaining model notes, a generated MIDI and parsed MIDI events. The original WAV and MIDI are now unavailable; surviving JSON records cannot establish a byte-for-byte reproduction of those files. An independent, limited byte parser checked this format-zero file against the installed MIDI parser. Hand-calculated matcher tests covered the inclusive timing boundary, outside-window notes, wrong-pitch counting, match-count priority, minimum error, deterministic ties and empty output. Those checks were reported for the historical measurement procedure and have not been rerun for this notice. They do not establish current converter behavior or transcription performance on arbitrary recordings.

Surviving historical records and unavailable samples: Test WAV (controlled-melody.wav) — unavailablePlanned notesUnedited MIDI (raw-output.mid) — unavailableEvaluationParsed eventsMatching scriptEvidence hashes and limits

What should you edit first?

Use your reference to identify missing notes, extra events and incorrect pitches before adjusting timing. If you move starts first, you may spend time polishing an event that should be removed. For a real recording without known notes, work through short phrases by listening and comparing in your editor. Our controlled reference does not give every visitor a ground-truth score.

Then check starts, lengths and dynamics independently. Save a corrected copy and record what you changed if you want to assess whether conversion actually saved you work. We have not measured editor gestures, logical correction counts or active editing time, so there is no tested speed-saving claim here.

Does this prove MP3 files or whole songs will work the same way?

No. This run used only a clean synthetic mono WAV and local CPU inference. MP3 decoding, browser WASM, the production interface and browser downloads were not verified by this experiment. Polyphonic songs, vocals, guitar notation and music-box paper-roll constraints are outside its scope. Keep the original audio and inspect the MIDI rather than treating this sample as a guarantee.

Related checks