WAV to MIDI:
read the exported notes
Both direct WAV exports contained two MIDI note events. Across the two saved controls, the first 64 kbps MP3 generation matched its WAV MIDI exactly once; in the other control, note geometry stayed the same but one velocity changed. Later generations changed different fields in the two chains. These are parsed results from two authored sine-wave controls—not a real-song accuracy score or a rule that WAV always converts better.
Actual Standard MIDI fields · PPQ 480
Compare the WAV baseline with each generation
Each event is shown as pitch / start ticks / duration ticks / velocity. G1 was encoded from its WAV, G2 from G1, and G3 from G2. Same event count does not mean identical MIDI files.
| Authored control | Input | Events | Event 1 · P / start / length / velocity | Event 2 · P / start / length / velocity | MIDI SHA-256 prefix |
|---|---|---|---|---|---|
| First-only 440 Hz control | WAV · source | 2 | 69 / 156 / 780 / 0.614173 | 69 / 947 / 1573 / 0.614173 | 9b06b137eac7 |
| MP3 · G1 from WAV | 2 | 69 / 156 / 780 / 0.614173 | 69 / 947 / 1573 / 0.614173 | 9b06b137eac7 | |
| MP3 · G2 from G1 | 2 | 69 / 156 / 780 / 0.614173 | 69 / 947 / 1573 / 0.598425 | 2c64416239e0 | |
| MP3 · G3 from G2 | 2 | 69 / 156 / 791 / 0.606299 | 69 / 959 / 1562 / 0.590551 | 649ad44cc893 | |
| Second-only 440 Hz control | WAV · source | 2 | 69 / 156 / 1560 / 0.614173 | 69 / 1728 / 793 / 0.606299 | d579396eb3a4 |
| MP3 · G1 from WAV | 2 | 69 / 156 / 1560 / 0.614173 | 69 / 1728 / 793 / 0.598425 | 3cca788b6844 | |
| MP3 · G2 from G1 | 2 | 69 / 156 / 1560 / 0.606299 | 69 / 1728 / 793 / 0.590551 | c0dc9e89af4f | |
| MP3 · G3 from G2 | 2 | 69 / 156 / 1560 / 0.606299 | 69 / 1728 / 793 / 0.590551 | c0dc9e89af4f |
WAV and G1 MIDI files have the same SHA-256. G2 keeps both events' pitch and timing fields but changes event 2 velocity. G3 changes timing, durations, and both velocities.
G1 keeps note geometry and changes event 2 velocity. G2 changes both velocities. G3's parsed MIDI bytes match G2, although G3 is a different encoded audio input.
All eight exports contain two parsed note events. Count alone hides the field-level differences listed above.
How to convert WAV into MIDI—and what this test means
Conditions and boundaries
Authored WAV controls
Each is a project-authored 440 Hz mono sine-wave control, 22,050 Hz, 70,560 samples (3.2 seconds), with two note slots. These are synthetic controls, not songs, piano takes, voices, or a statistical music sample.
Serial encode path
Each chain starts from its own WAV. G1, G2, and G3 are successive 64 kbps mono MP3 encodes at 22,050 Hz; each generation uses its immediate parent as input.
Same offline extraction
Basic Pitch 1.0.1, TensorFlow.js 3.21.0 CPU; onset and frame thresholds 0.25, minimum note length 5 frames; @tonejs/midi 2.0.28. MIDI fields are parsed at PPQ 480.
Reuse is labelled
The WAV and G1 captures were retained anchors from Oct 18; G2 and G3 were newly evaluated on Oct 20. This WAV to MIDI page republishes that dated evidence—it is not a fresh inference run.
Limit: no listening test, DAW import, physical-device test, or accuracy score was performed. This control cannot show that WAV is always better, set a safe encoding limit, or predict results for real music.
The gap this page fills
Conversion claims beside file-level evidence
Describes WAV input and Standard MIDI output. The inspected page does not publish this controlled WAV plus three serial generations with parsed event fields.
Describes in-browser conversion and melody, accompaniment, and bass tracks. The inspected page does not provide this matched source-and-generation MIDI parse table.
Lists WAV among supported inputs and describes pitch, dynamics, and sustain transcription. The inspected page does not show a downloadable WAV/G1/G2/G3 control with parsed note fields.
Page inspection date: Oct 21, 2026. This is a comparison of what those pages visibly document, not a test of their converters and not a claim that their output is worse.
Exact authored test files
Download the WAV, generations, and MIDI
The results JSON contains full hashes, parent-input provenance, settings, capture origins, and every parsed note field. The reproduction script and source files are available alongside it.