On this page
Why a plain MIDI import disappoints
A MIDI file records when each key went down and came up, in milliseconds. Sheet music records something else entirely: a grid of bars and beats, and a decision about which written value each sound belongs to. Going from the first to the second is not a conversion. It is a series of judgements, and a plain importer makes all of them the same way — by rounding every event to the nearest sixteenth.
That single rule is what produces the familiar mess. A chord whose fingers landed 20 ms apart becomes two chords a thirty-second apart. A quarter note released early becomes a dotted eighth tied to a sixteenth, followed by a sixteenth rest. A left-hand bass note that happened to be high becomes a treble note. And because the importer rounds each event independently, a hand that plays slightly ahead of the click for eight bars produces eight bars of syncopation that nobody played.
The five problems nobody mentions
1. Which notes are one chord
Fingers do not land simultaneously. A four-note voicing typically spreads across 20–60 ms, and a rolled chord across far more. Attacks have to be grouped before they are rounded, and the group dated by its median — dating it by the first finger drags every chord half its own spread early. A roll has to be recognised as one chord rather than a fast passage, which means asking whether the earlier notes are still sounding when the last one arrives.
2. Which grid to use at all
A piece with no sixteenths should not be written on a sixteenth grid, and a rubato performance should not be written on a thirty-second one just because that grid catches a few stray attacks. The finest grid always fits best, which is exactly why "best fit" is the wrong rule: it drifts to the finest one available and turns human timing into a transcript of noise. The grid has to be chosen from the take — the coarsest one that does not fuse two separate attacks — and a finer grid should only win by a clear margin, not by a hair.
3. How long each note is written
Note length on the page is not key-release time. A pianist playing legato holds through the next attack; a pianist playing normally releases a fraction early. If you write what the key did, every second note gets a rest fragment. The written value has to run from one attack to the next attack of the same hand, shortened only when the key came up early enough that the silence was clearly meant.
4. Which hand played it
A fixed split point — everything below middle C is the left hand — fails the moment the melody dips. Hands have to be assigned by cost: how far each hand would have to travel from where it just was, how far it would have to stretch, and whether the split cuts through an interval no single hand plays. And a hand that is still holding keys is not free to reach: notes it is holding have to count against its span, or the engine believes a hand is somewhere it cannot be.
5. How the notes are spelled
The same black key is A♯ or B♭ depending on the key signature, and the key signature has to be deduced from the notes actually played. Then accidentals belong only where they change something — at the start of the bar the key signature already speaks, and after that only the last accidental on that line and octave matters. Two notes of one chord landing on the same staff line have to be respelled so they do not collide.
The route that works, step by step
This is the route Cadenza is built for. The application is free to download and the Recorder is unlocked for the first three days, so you can run the whole thing before deciding anything.
- Play to the click. Set the tempo and the time signature, take the count-in, and play. You do not have to play perfectly — you have to play in time, which is a different and much easier request.
- Look at the page, then adjust. The take is never re-quantised destructively: the score is a function of the recording, so the grid, the swing, the hand split, the flats-or-sharps decision and the rubato tracking can all be changed after the fact and the page redraws. Nothing is re-played and nothing is lost.
- Fix the two places that are wrong. Click a chord and nudge it a grid step with the arrow keys; select a bar and erase it; loop-record a region to replace just those bars. Repairs are local — you never re-record the whole thing because of one bar.
- Export MusicXML. Not MIDI. MIDI throws away every decision above: it has no bars in the notated sense, no note values, no ties, no key signature, no clef changes and no hand split. MusicXML carries all of it.
Opening the file in MuseScore
In MuseScore 4: File → Open and pick the .musicxml file — there is no separate import step. Sibelius and Dorico both open the same file directly too.
What arrives with it: bars and time signature, note values with dots and ties, rests broken at the beats, two hands on two staves, the key signature, accidentals where they belong, beams grouped by half-bar, triplets with their brackets, pedal lines, dynamics, ottava lines, mid-piece clef changes, chord symbols above the treble staff and fingering numbers if you turned them on.
From there MuseScore does what it is genuinely best in the world at: engraving. It is free, it is better at layout than anything bundled into a recording tool ought to be, and none of this replaces it. The gap it does not fill is the one before it — getting a performance in without hand-entering every note.
What still needs a human
An honest list, because a page that claims otherwise is selling something:
- Tempo is taken at the start of the take. A performance that breathes across a whole piece is followed by a rubato slider you set by eye and ear, not tracked bar by bar.
- One key signature per take. Modulations are not detected; a piece that changes key needs the change added afterwards.
- Two voices per staff, not four. A third voice exists only when you record it deliberately.
- It reads MIDI, not audio. There is no microphone transcription. An acoustic piano with no MIDI output is outside what any of this can do.
- Phrase slurs are off by default. A pianist plays legato almost constantly, so a slur drawn wherever the hand did not release marks nearly every note and tells a reader nothing they had not assumed.
Everything on that list is a decision a musician makes in seconds and an algorithm gets wrong convincingly. The point of the tool is to remove the hour of note entry, not the musician.