Personal project · 2026

Where does your hand go?

Tab tells you which fret to press. It rarely tells you whether a human hand can get there. This works that part out, placing every note so the shapes connect, scored against 395 arrangements by people who actually play.

Try it

Pick a piece, type your own notes, or drop in a MIDI file. Change the tuning and watch the whole thing re-solve. This is the same engine that scores against the corpus, running here in the page.

One honest note here: this places notes you already have onto a neck a hand can reach, the same job scored above. Turning a song into those notes is still your work, and so is pulling them out of a recording if that's where you're starting. What goes in is pitch and rhythm, typed or imported from a MIDI file, and what comes out is where your hand goes for it.

Everything below runs in your browser: nothing you load ever leaves it, there's no server behind this page, and nothing here is tracked.

Or load a MIDI file

—

How well it does

Every track in a corpus of 403 human fingerstyle arrangements carries the arranger's own string and fret choices. Throw those away, keep only pitch and rhythm, re-derive the fingering, and compare. 403 answer keys.

83.3%same string as the human arranger
98.5%events it finds a playable shape for
295,365notes scored
90.2%median, per song

Pitch plus string determines fret, so that first number covers both. There are no trained weights anywhere in this and nothing is guessed. It works out the candidate positions for each note, applies the hand-span and distinct-string constraints for each chord, then takes a shortest path over the resulting shapes across the whole piece so the hand never teleports.

Three things the data said that I had wrong

Minimising fret number is not what players do.

The obvious cost model puts the hand a mean of three frets below where the humans put it. Arrangers deliberately play higher up a thicker string to keep melody and bass on separate strings. Cheapest is not easiest.

But banning voice crossings is worse.

"Higher note takes the thinner string" is the tidy rule, and enforcing it cost 2.3 points of accuracy. Real arrangers cross voices far more than the theory admits. It is now a priced penalty rather than a law.

Tuning the weights is nearly exhausted.

Seventy rounds of search over six cost weights bought 0.7 points. The limit turned out to be the shape of the model rather than its numbers, because six scalars cannot express what an arranger is actually doing. That is more useful to know than another decimal place would have been.

What it deliberately does not do

When a model does join, its job will be to choose the key, the tuning, and where a harmonic or a slide belongs, handing down an arrangement plan for the solver to render. The judgment calls go to the model and the arithmetic stays in the code.