AudioToMidiNow Use the MP3 to MIDI converter

SONG TO MIDI · VERIFY THE WANTED PART

Convert a Song to MIDI:
Which Part Did You Get?

Choose the part you want before converting a song to MIDI, then check whether the exported notes actually follow that part. More sensitivity is not an instrument selector. In our controlled melody-plus-bass test, all three settings returned only bass pitch 48 and none of the four target melody pitches. The same melody by itself returned four events, but only three correct pitches: intended 84 became 83.

For a clear single melody, use the private MP3 to MIDI converter, review the detected notes and save an editable draft. For a complete recording, first decide whether you need the lead, bass, chords or several separate parts. This page tests that target-selection decision, rather than promising a faithful full-song transcription.

The file can be valid and still be the wrong part

A note can exist in the recording without being the note you wanted. If you are rebuilding the lead, an output that follows the bass is not a successful lead transcription just because it opens and plays. Keep a short target reference: identify two or three entrances, their approximate register and whether they belong to the wanted part. Compare against that reference before choosing a new playback instrument.

A different instrument sound cannot turn a bass note number into the missing melody. The program-change examples show why patch selection and stored notes are separate. Likewise, renaming a track “lead” does not prove its notes came from the lead source.

Known target
Four separate melody tones: 72 → 76 → 79 → 84
Known competing component
One held bass tone: 48
Measured mixture output
Cleaner = Balanced = More notes → one event, pitch 48
Original construction and local output map. The melody and bass were generated separately; no source-separation service produced these files.

Three inputs, three settings, nine MIDI files

On October 31, 2026, on this Windows machine, we generated three four-second mono WAVs at 48 kHz and signed 16-bit PCM. The target contains four 0.55-second sine tones, MIDI pitches 72, 76, 79 and 84, starting at 0.4, 1.2, 2.0 and 2.8 seconds. Their sample amplitude is 0.07 with 10 ms edges. The competing component is a held pitch-48 sine at amplitude 0.30, beginning at 0.2 seconds and ending at 3.6 seconds with 10 ms edges.

The mixture adds those two floating-point components before writing PCM. Its maximum possible summed amplitude is 0.37, below the file's clipping limit. Each WAV was separately encoded to a 192 kb/s MP3 using the same FFmpeg/libmp3lame configuration. We decoded each MP3 to mono float samples and ran this site's unchanged production downsampler, detector and MIDI writer in Cleaner, Balanced and More notes.

Saved outputs independently parsed from their MIDI bytes
InputSettingDetected pitchesTarget pitches foundMIDI bytes
Known melodyCleaner72, 76, 79, 833 of 473
Known melodyBalanced72, 76, 79, 833 of 470
Known melodyMore notes72, 76, 79, 833 of 470
Known bassCleaner480 of 442
Known bassBalanced480 of 442
Known bassMore notes480 of 442
MixtureCleaner480 of 442
MixtureBalanced480 of 442
MixtureMore notes480 of 442

“Target pitches found” means the number of distinct, exact matches to the predefined set 72/76/79/84. It is not an onset-matched score, a general accuracy percentage or a claim that the detected durations are correct. Bass has zero target matches because this particular task asks for the melody; it would be relevant content if the task instead asked for the bass.

All six bass-only and mixture MIDI files are byte-identical. Their SHA-256 is aa3bbc7272f326d23cd7ae7cb545a3290eb684c98633f1956f148cdd3113b72b. In this fixture, changing sensitivity did not reveal the target melody or even change the saved output. That is stronger evidence than simply observing six similar previews, but it remains evidence about this fixture only.

The melody-alone Balanced and More notes files also match each other, SHA-256 61aeeeebaa387c6f4a3fb74c697f0c6663c321243b3b625d13fc162b69212d44. Cleaner differs in timing and serialization, giving 73 rather than 70 bytes. All three still write 83 for intended84. Isolating the known melody therefore improves target coverage here; it does not make the conversion exact.

Choose a retry that can change the source you hear

  1. Name the wanted part. “Convert this song” could mean a lead line, bass part, chord arrangement or complete set of instruments. Write down the intended result before judging the output.
  2. Inspect a representative passage. Compare the first, middle and final target entrances with the returned notes. Listen to your own permitted recording as part of this check; our experiment did not include a listening study.
  3. If the wrong part dominates, change the input or workflow. Prefer an original isolated track if available, or inspect a separately generated stem before transcribing it. Do not treat a sensitivity slider as a command to select “lead.” This site does not provide a stem-separation upload service.
  4. Retest the isolated part and keep failures visible. Check wrong pitches and missing attacks again. Our isolated reference still has a semitone error; four events did not mean four correct notes.
  5. If you need several parts, evaluate that requirement explicitly. Look for documented per-instrument outputs and verify each returned part. A track count, label or marketing promise alone is insufficient. We did not run a multi-instrument commercial converter in this test.

The quiet-note sensitivity experiment concerns one weak note without a simultaneous competing bass. The solo-versus-chord comparison measures two analysis methods on different fixtures. Neither asks whether changing sensitivity selects the desired component from this particular mixture. For checking the content of an actual stem rather than its name or recombination, use the separate stem-content checklist.

What the documentation does and does not establish

The official Basic Pitch README describes polyphonic support while recommending one instrument at a time. Polyphony and reliable separation into named instruments are different requirements. We cite that boundary as documentation; no Basic Pitch inference was run for this experiment and these outputs must not be attributed to it.

The MIDI Association's file overview explains time-stamped MIDI streams, tracks and descriptive information. Those are storage capabilities, not proof that an audio converter identified the right performer or instrument. Our independent parser checks events actually written by this site's exporter; it does not certify musical source identity.

Reproduce the result from the known components

Save the two scripts together in a fresh directory. Supply FFmpeg via FFMPEG_BIN or the executable path, and set SITE_SCRIPT to a downloaded copy of the unchanged production detector source. Run the Node script, then the Python parser. A separate-directory regeneration compared all six audio files and nine MIDI files byte for byte, plus the complete numerical results. These known components were generated before mixing, not recovered by a separation model.

Limits: synthetic sine components, one amplitude relationship, one held bass and one melodic register, one encoder configuration and one detector implementation. No real song, voice, drums, timbre comparison, browser audio decoding, actual stem separation, listening, DAW import or commercial converter was tested. These nine files cannot predict every song. They show why the useful acceptance question is “did I get the intended part?” rather than merely “did I get a MIDI file?”