Audio to MIDI Converter

Drop an audio file or record from your microphone, and download a standard .mid file. Runs in your browser - nothing is uploaded, and there is nothing to sign up for.

Drop an audio file here, or click to choose
WAV, MP3, OGG, M4A, FLAC - whatever your browser can decode
No file chosen yet.
Choose a file to begin.
Notes found
0
Duration
0.0 s
Pitch range
-
Analysis time
0.0 s

What this page can and cannot do

It listens to one pitch at a time. For every slice of audio it estimates a single fundamental frequency, then turns a run of stable pitch into one MIDI note. That is the whole method, and it sets both the strengths and the limits below.

Works well on

Struggles with

These are limits of the method, not settings you can tune past. Where a commercial service offers chord recognition, instrument separation or one MIDI track per instrument, it is running a trained model - that is not something this page does or claims to do.

Once you have a result, the three readouts above are enough to tell whether to trust it - the checks are in how to tell if a converted MIDI is correct.

How the conversion works

Everything happens on your device, in this order.

Sensitivity sets the YIN threshold: lower keeps more notes but trusts noisy frames more, higher demands a cleaner periodic signal. The shortest-note control removes the flutter that otherwise shows up as a spray of very short notes.

What that mixdown and resample do to your audio before any of this - including the stereo file that averages to silence, and the high-frequency content that folds back into the analysis - is measured in what sample rate and channels do before detection.

Frequently asked questions

Which audio formats can I convert to MIDI?

Whatever your own browser can decode - in practice WAV, MP3, OGG, M4A and AAC, FLAC, and WebM or Opus on current Chrome, Edge, Firefox and Safari. This page uses the browser's own decoder, so the list is your browser's, not ours. Formats such as WMA are usually rejected by browsers; when a file cannot be decoded this page says so instead of failing quietly.

The extension on the file plays no part in that decision, and video containers are worth trying - which containers actually decoded, and which four were refused lists the results for 17 of them, measured on this page.

Do I have to sign up or log in?

No. There is no account, no sign-up and no log-in. The convert button works on the first visit.

Is my audio uploaded to a server?

No. The file is decoded and analysed by JavaScript on your own device. Nothing is sent anywhere and there is no backend.

There is a full page on it: MP3 to MIDI without uploading your file.

Can I convert MP3 to MIDI, or WAV to MIDI?

Yes - both are ordinary browser-decodable formats, so they go through the same path as anything else. WAV is uncompressed and tends to give slightly cleaner detection than a low-bitrate MP3.

How much the bitrate actually moves the result was measured in 128 kbps vs 320 kbps MP3 to MIDI.

How accurate is the conversion?

Usable on a clear monophonic line, unreliable on a dense mix. See the section above for exactly which material works and which does not, and expect to clean up a few notes in your DAW either way.

The frequency window behind that accuracy - and what the detector does at both ends of it - is broken down in how the pitch detection works and where the 2000 Hz ceiling falls.

What are the limits?

Files above 80 MB are rejected before decoding, because the browser has to hold the whole decoded track in memory. Analysis time grows roughly linearly with length; the page shows you how long it took and how many notes came out. In a test in Chrome on this machine, 60 seconds of WAV took 1.8 seconds to analyse.

There is no account and no daily or weekly quota - the only limit is that file size, and what it means in minutes depends on your format. Both are measured in what the file size limit means in minutes.

What is in the downloaded .mid file?

A standard MIDI file, format 0, one track, 480 ticks per quarter note, with a tempo event set to your BPM. Each detected note is a note-on and note-off pair, with velocity taken from that note's loudness.

A byte-level breakdown of that file - what it holds, what it leaves out, and what the BPM setting really changes - is in what is inside the downloaded .mid file.

Can I convert a video file or paste a YouTube link?

No. This page reads a local file or your microphone only. It does not fetch remote media and does not demux video, so there is no such button.

Those two inputs are not equivalent, though. A microphone recording is processed by the browser before the page ever sees it, and it is written as compressed audio - measured in what your browser does to a microphone recording.

A video file is a different case from a YouTube link, though. There is still no video button, but your browser's own decoder can hand over the audio track of a video you drop on the page - an MP4, a MOV, an MKV and a WebM all converted in my test.

Can I convert several files at once?

No. This page handles one file at a time, and there is no batch mode.

What does the piano roll preview show?

Pitch as vertical position, time as horizontal position, and velocity as opacity rather than bar height. It is a preview and not an editor, it has no time axis, and it rescales itself to every result - what the piano roll preview actually shows goes through what you can and cannot read off it.

What do the settings change?

Confidence and Shortest note are applied inside pitch detection, so they decide which notes exist. Tempo changes only the .mid file - the tick grid and the tempo event - and never the length of what you hear. Transpose changes the .mid and the copied note list, but not the Pitch range readout and not the piano roll. What each control actually changes has the measurements for all four, including the two settings that do not behave like their labels.

Do I have to press Convert again after changing a setting?

Yes. All four settings are read when you press Convert, so a change you make afterwards does not reach the file you download. I moved each control in turn without re-converting and all four downloads came back byte-identical; Copy note list is the exception, because it reads Transpose the moment you click it. Why a changed setting does not reach the downloaded file has the full matrix, including the case where the page keeps showing a green success message that is no longer true.

What does Copy note list give me?

Plain text: one header line and then one line per note, six columns separated by two spaces. The times are the detector's own seconds to three decimals, not the ticks stored in the .mid file, and the note names use sharps only - MIDI 60 is written C4. What the copied note list contains documents every column, byte for byte, including the seconds-to-ticks conversion.

What happens if a file is rejected, or the conversion finds nothing?

A rejected file does not clear what was already loaded. Your previous note list and .mid stay available to download - byte for byte - and Convert still runs on the previously loaded file, even though the file input now holds the rejected one. Only Clear drops them. An empty result is different again: the result panel still opens, Download still writes a 33-byte .mid containing no notes, and Copy note list does nothing at all. Every failure message and what it leaves behind is measured message by message.