Audio MIDICONVERTER / FIELD NOTES Open MP3 to MIDI tool ↗
Dated offline comparison · evidence run Oct 20, 2026

MP3 to MIDI:
one audio, three encodes

All four files produced two parsed MIDI events. The G1 export matched the WAV export byte-for-byte; G2 kept event geometry but changed one velocity; G3 changed timing, durations, and both velocities. This is a measured result for one authored sine-wave control—not a music-accuracy score or a universal MP3-generation rule.

Same source WAV → G1 MP3 → G2 MP3 → G3 MP3 · same selected encoding and inference settings · saved evidence dates shown below

One chain · immediate parent at each step

Read every note across generations

Each event cell is pitch / start ticks / duration ticks / velocity. The WAV, G1, G2, and G3 exports were independently saved as Standard MIDI and parsed back. Displayed velocity is rounded to six decimal places; downloadable JSON retains full stored values.

Actual first-only control chain. “Capture record” distinguishes retained Oct 18 anchors from the Oct 20 G2/G3 model captures; no inference was run for this page.
InputEncoded fromInput bytesCapture recordEvent 1: P / start / length / vel.Event 2: P / start / length / vel.Parsed events
WAV · G0Authored source141,164Retained anchor · Oct 1869 / 156 / 780 / 0.61417369 / 947 / 1,573 / 0.6141732
MP3 · G1WAV · G026,374Retained anchor · Oct 1869 / 156 / 780 / 0.61417369 / 947 / 1,573 / 0.6141732
MP3 · G2MP3 · G126,374New capture · Oct 2069 / 156 / 780 / 0.61417369 / 947 / 1,573 / 0.5984252
MP3 · G3MP3 · G226,374New capture · Oct 2069 / 156 / 791 / 0.60629969 / 959 / 1,562 / 0.5905512
WAV → G1Both events’ fields and exported MIDI bytes match in this saved comparison.
G1 → G2Event count and timing geometry match; event 2 velocity differs.
G2 → G3Event count stays at two; both events’ timing or duration and velocities differ.

Tick values are parsed MIDI fields at PPQ 480. “Same event count” means only that both exports contain two note events; it does not establish that the notes are musically correct.

How this comparison was made

One source and fixed settings

Authored audio control

Mono 22,050 Hz WAV, 70,560 samples (3.2 seconds), a project-authored 440 Hz sine-wave control. Only the “first-only” chain is shown here; it is not a song, voice, instrument recording, or statistical sample of music.

Serial MP3 path

G1 is the retained 64 kbps libmp3lame encode. G2 was encoded from that actual G1 file; G3 from that actual G2 file. Each MP3 setting: 64 kbps, 22,050 Hz, mono. No generation was re-encoded directly from the WAV after G1.

Same offline MIDI extraction

Basic Pitch 1.0.1 with TensorFlow.js 3.21.0 on CPU; onset threshold 0.25, frame threshold 0.25, minimum note length 5 frames; MIDI writer 2.0.28. Decoded model input length: 70,560 samples per generation.

What the date means

The serial-generation evidence run is dated Oct 20, 2026. WAV/G1 use retained Oct 18 captures; G2/G3 use new Oct 20 captures. This page is a focused presentation of those saved results, not a new Oct 21 inference run.

Scope: offline CPU model output only. No browser-converter run, phone test, DAW import, or listening test is claimed. These observations do not identify a safe generation limit, rank encoders, or measure conversion accuracy.

Reproducible files

Inspect the exact inputs and exports

The original saved evidence contains complete hashes, raw capture provenance, all parsed fields, and the exact child-to-parent encoder arguments. These are project-authored controls and outputs.