The short answer: a recording does not become a score in one step on this site, and this page will not pretend it does — there is no staff renderer here, no PDF, no MusicXML, no notation OCR. What runs here is the half a notation app cannot do for you: it listens to the sound and hands back a MIDI file holding the pitches and the timing it heard. Your notation app then draws the notation from that file. The measured part — the part this page adds — is how that file looks when it arrives. Every note of a chord is stamped slightly early, and by a different amount for each pitch, so a chord does not land as one vertical stack; measured on the converter's own analyser it spreads over 12–70 ms depending on the voicing. The export also states a tempo and a 4/4 bar but no key signature at all. Both are things you settle in the notation app, and both are measured below.
1. What happens to the recording before any staff exists
The tedious half of getting music onto paper by hand is the first one: turning a wall of waveform into a list of pitches with times attached. That job runs here, on your own machine, against constants you can check rather than take on trust:
- Which pitches can be heard at all: 55 Hz (A1) up to 1800 Hz (A6). A part below or above that band is never written out, however obvious it is to your ear.
- How many at once: polyphonic mode keeps up to 6 notes per analysis frame; monophonic mode follows a single moving line. A chord survives in poly mode, a lone melody in mono.
- How loud becomes how hard: velocity is read from loudness and tops out at 127 at −2.22 dBFS. The companion CSV prints every note to 4 decimal places of a second, so you can lay it against your DAW line by line.
- The file you take away: format-1 MIDI, 2 tracks, TPQ 480 — the ordinary shape a notation app opens without complaint.
Across 11 known-answer clips the audio→MIDI step hit 86.7% recall, with precision at 91.5%. That figure describes only the half this tool performs. It says nothing about how the score will look, which is what the rest of this page measures.
2. Three things that are not here, said plainly
People arrive on the phrase “audio to sheet music” expecting an output this site never produces, so here is the boundary in one place:
- Nothing draws notation. No staff, no beams, no clef, no key. What leaves the tool is a
.midand a.csv. - No PDF, no MusicXML. There is no export path to either, so a printable score is finished somewhere else.
- No reading of written music. A photo, a scan or a PDF of a score is not an input; this tool hears sound, it does not read notation. MIDI back to audio is absent too.
Saying this out loud beats a page that quietly implies a score it cannot make.
3. How the notes land: a chord does not arrive as one stack
Open the exported MIDI in a notation app and the first thing that can surprise you is a chord. It was played as a block; it may be drawn as a short roll. That is worth measuring rather than guessing at, so we did.
Every note of a test chord was written to begin on exactly the same sample, then run through this converter's own dsp.js — polyphonic mode, sensitivity 60, shortest note 60 ms, snapping off. Each note that came back was compared with the instant it was actually played, and each voicing was repeated at five different points in the file:
| Chord written (all notes at one instant) | Notes | Spread of the returned starts | In ticks at 120 BPM |
|---|---|---|---|
| C4 E4 G4 | 3 | 11.6 – 23.2 ms | 11 – 22 |
| C3 E3 G3 C4 E4 | 5 | 23.2 – 58.0 ms | 22 – 56 |
| C2 C3 E3 G3 C4 | 5 | 58.0 – 69.7 ms | 56 – 67 |
Two things held across all fifteen runs:
- No note was ever stamped late. Zero returned notes began after the instant they were played. The earliest stamp sat 85.6 ms before the true onset, the latest 2.5 ms before it — every start was early, never after the beat.
- The spread grows with the chord. A three-note triad stayed inside 23.2 ms; a five-note chord reached 58.0 ms; putting a low bass under it pushed the spread to 69.7 ms. In the file's own units at 120 BPM that is 11 ticks up to 67 ticks.
The reason is the shape of the reading window. The analyser slides a 2048-sample window (92.88 ms at the converter's 22 050 Hz) forward in 256-sample steps and reports a note from the first window that already carries enough of it. That is why a start is never late, and why a note can appear up to one window early. A low note needs more of that window filled before its harmonics clear the gate, so it is stamped later than the top of the chord.
What it means on the page. Left raw, a notation app may read that spread as a slightly arpeggiated chord. It is simple to remove: one 1/16 grid cell at 120 BPM is 120 ticks, or 125 ms — wider than every spread measured above — so a single 1/16 snap folds each chord back into a block. Check pitches first, then snap as the last step before export.
What this measurement is not. These are synthesised block chords, played by arithmetic rather than by a hand, so the figures bound the converter's own contribution and not a real performance's. A human never hits five notes on one sample either; a real recording carries its own spread on top of these numbers.
4. Who decides what ends up on the page
A score is three layers of decision, and only the first is made here:
| What you see on the page | Who decides it | What carries it |
|---|---|---|
| 1. The notes: pitch and timing | This converter, read from the sound | Format-1 MIDI, 2 tracks, TPQ 480, plus the CSV |
| 2. The tempo and the bar lines | This converter's writer, from the BPM you type | One tempo event and one 4/4 time signature; neither is detected from the audio |
| 3. The key, the clefs, the beaming, the rests | Your notation app, or you | Nothing in the file — measured: 0 key-signature events |
The last row is the one to remember. A MIDI file has a slot for the key, and this export leaves it empty: the file carries exactly one tempo event and one time-signature event (always 4/4), and no key-signature event at all. So the key printed on your page was chosen by the notation app, or by you — never by the recording. If the piece is in D minor, say so in the app before you trust a single accidental.
5. Checking the result yourself
Nothing above needs to be taken on faith, and you should not extend faith to an accuracy figure you cannot reproduce. Two minutes is enough:
- Download the
.csvbeside the MIDI. Its columns areindex,midi_note,note_name,start_sec,end_sec,duration_sec,velocity. - Sort the rows by
start_secand look at any group that should be a block chord: if the starts differ by a handful of milliseconds, that is the roll measured in section 3. - Compare a few rows against the same notes in your DAW's piano roll. The CSV is to four decimal places, so the comparison is exact rather than approximate.
If a chord looks too ragged for the page, raise the snap to 1/16 before exporting and re-download; if a pitch is plainly wrong, fix it in the CSV or in the notation app rather than re-converting — re-running the same file gives the same notes.
Questions
Can a recording be turned into sheet music here, in one step?
No. There is no notation renderer on this site: the tool returns a MIDI file and a CSV and stops there. The staff is drawn by MuseScore, Dorico, Sibelius or your DAW's score editor when you open that MIDI. This site covers the listening; the drawing is a different program's job.
Why is a chord drawn as a slight roll instead of a block?
Because each pitch is stamped from the first reading window that carries enough of it, and the low notes of a chord clear that gate later than the high ones. Measured on block chords: a triad spread 11.6–23.2 ms, a five-note chord 23.2–58.0 ms, and 58.0–69.7 ms once a low bass was added. One 1/16 snap at 120 BPM — 125 ms — is wider than all of them, so it removes the roll in a single step.
Does the file tell my notation app what key the music is in?
No. The export writes one tempo event and one time-signature event — always 4/4 — and zero key-signature events. The key that appears on the page comes from the notation app or from you; it is never read out of the audio.
What exactly is inside the MIDI I download?
Format 1, 2 tracks, TPQ 480, with each note held as a note-on/note-off pair. Polyphonic mode keeps up to 6 pitches per frame and pitches run from 55 Hz (A1) to 1800 Hz (A6); velocity follows loudness and reaches 127 at −2.22 dBFS. The CSV repeats the whole list to 4 decimal places of a second.
How accurate is the audio-to-MIDI step, then?
86.7% recall and 91.5% precision across 11 known-answer clips — that is the half this tool performs. The CSV exists so you can audit it note by note against your DAW before anything reaches paper.
Everything above is about the half that runs here: audio in, MIDI and CSV out, nothing uploaded and nothing drawn. Put a file through on the converter and you will meet the two things measured here — a chord that arrives as a short roll, and a tempo with no key standing beside it.
Related guides
- MIDI converterWhat is actually inside a MIDI file
- Clean up a converted MIDIThe 5 passes that turn a raw export into a usable part
- MIDI to sheet musicWhat this tool covers, and where the score comes from
- Sheet music to MIDIWhy this tool listens to audio, not reads scores
- MP3 to sheet musicWhether the codec moves anything the page would show
- MIDI to MP3What this tool covers, and what a synth does instead
- MIDI to WAVWhy the Play button is a synth but not an export
- MIDI to OGGTwo steps, and only one of them changes the sound