PianoML

755.8M-param piano model trained from scratch · composing live from Nick\u2019s studio
Advanced
Speed
Volume

The research

how a 755M-parameter composer was trained from scratch — July 2026
755.8M
parameters, trained
from random noise
547,547
real piano performances
· 1.71B tokens
21 hrs
of training on 8×H100
· ~$120 total

Every piece this page produces is composed in the moment by a single neural network trained entirely from scratch — no fine-tuned base model, no API behind the curtain. It began as 755.8 million random numbers and learned everything it knows — what a chord is, how a phrase resolves, who Chopin is — from one relentlessly repeated exercise: given the music so far, predict the next event.

Music as language

Each performance was converted to a stream of note-event tokens (a 16,640-symbol alphabet — roughly 1,000 tokens per minute of music), and every piece was stamped with a four-token header: composer · key · length. The model was never taught to follow instructions; it simply saw ⟨Chopin⟩ followed by Chopin-shaped music tens of thousands of times until the association became destiny. The dropdowns above are literally the first four tokens of a sequence the model then continues.

The corpus

176,494 labeled performances across 125 composers (below: the twelve largest), plus 371,053 unlabeled performances that trained the model’s unconditioned “own voice.”

performances per composer (labeled corpus) Chopin41,359Beethoven22,629J.S. Bach17,261Debussy12,385Schumann9,515Liszt8,869Schubert6,871Rachmaninoff6,643Mozart6,136Ravel4,146Tchaikovsky3,216Brahms3,117

The training curve

10,000 steps · ~21 billion tokens. The first 80% trained on 4,096-token windows — learning the language of piano at the cheap rate. The final 20% doubled the window to 8,192 tokens, the phase where whole-movement structure becomes learnable: two-thirds of the corpus’s substance lives in pieces longer than the short window.

loss 1052 0step 5,0008,00010,000 10.03 → 2.68: from perfect ignorance (16,640 equally likely next-tokens) to ~15 plausible candidates 8k windowstructure phase ● held-out validation checks

Is it original?

Audited two independent ways: note-level pitch and interval matching against same-composer works, and a phrase-level sweep of generated output against all 1.7 billion training tokens.

4 / 109,303
generated phrases found anywhere in the training corpus (0.004%) — no verbatim copying detected.
When a piece “sounds like” a famous work, it’s the harmonic skeleton of a style — a new sonnet in a familiar meter.