Posted by simedw 8 hours ago
The idea is basically GitHub Copilot or Tabnine, except instead of prompting it with code, you prompt it by playing a few notes on a MIDI piano. The model then continues what you played, entirely on-device.
The app is free if anyone wants to try it. Happy to answer questions about the model, training, Core ML, or the many things that didn't work.
For anyone interested, I’d highly recommend reading Robert Gjerdingen’s article Gebrauchs-Formulas. https://www.researchgate.net/publication/259731561_Gebrauchs...
You can also listen to the transcript of four Russian composers, including Rachmaninoff, playing this pattern recognition and generation game at a dinner party in the late 1800’s: https://youtu.be/PlFPOWuwBHI?is=EKBK7QQkJs4MsTCU
Composers at the time could do this just by looking at sheet music and audiating, without using a piano.
There's a great story around how Beethoven, perhaps one of the strongest improvisers of his day, completely upstaged Steibelt, a contemporary musician and by all accounts a bit of a charlatan. I'll include the entire quote verbatim from "The Lives of the Great Pianists" by Harold Schonberg.
This time Steibelt had prepared a brilliant fantasy for piano and strings, the theme coming from the Beethoven trio he had heard the previous week. Steibelt's admirers were in raptures. Now the issue was joined, and Beethoven had to show his strength. He walked to the piano, grasped the cello part of the Steibelt work en route, put it upside down on the piano and insultingly drummed out a theme with one finger. Then he improvised, and—angry, excited, on his mettle—how he must have improvised! Before Beethoven had finished, Steibelt stole from the room. He never again would meet Beethoven and made it a condition before going anywhere in Vienna that Beethoven not be invited.I see so much in common with this project and the numerous AI-based UX design tools out there. Whether it's music or UI, now that the "generation" portion of the work costs zero, all that remains is taste.
And so much of taste comes from exploring and killing off possibilities that turn out to be dead-ends. I love the idea that models like these will help us find the dead ends faster, or even produce a gem here and there.
P.S. if you want another uncanny version of Fur Elise, listen to Beethoven's own 1822 revision: https://www.youtube.com/watch?v=s24TtiGgb6k. His 1810 version that we all know was simpler and more balanced. But for what it's worth, Beethoven didn't publish either of them.
One think I didn't see mentioned in the post- maybe I missed it- how large was the data? How many samples did you use to pretrain and post-train
> The final dataset contained a few hundred thousand MIDI files, representing roughly 300 million note events.
I think one of the great, early, joys of learning a piano is gaining the following intuitions: The seemingly harder path of learning sheet is actually faster. Your mind _should_ learn to think in two dimensions Spatial — where fingers go — and Time — pitch and tempo – ** when learning. The _internalization_ of Space and Time queues guide the fingers in a dance that is vastly satisfying. This skill leads you to the final part of the journey that is improvisation and the one more exciting than what i am on now.
---
**
Space: Your finger placement on keys right, e.g. knowing how to go from landmark/anchor notes(mid-c, G, F etc) and then go to the others above and below it. Crudely this is some what like typing from your landmark f and j qwerty keyboard
Time: The out singing/verbalizing of the notes/beats on a time measure as you play them(per the time measure). e.g. you can say out loud 1-2-3-4 for 4/4 measure, if the measure has quarter notes say out loud. And `1-e-and-a-2-e-and-a-3-e-and-a-4-e-and-a` for a 4/4 with 1/16th note granularity. Do this as you play the notes and you get a sense of tempo.
you could always do the discipline you liked before for self fulfillment purposes, and you can still do it for self fulfillment purposes now
unless they're actually serfs again and won't have bills to pay, but no access to anything outside of the fiefdom that they maintain all day
The closest we've had to realtime orchestration around a melody in the "real world" is probably arranger keyboards though your left hand is still responsible for the chord progression itself.
[1] - https://en.wikipedia.org/wiki/Microsoft_Research_Songsmith
Some protocols (like I2C or MIDI) are gonna be with humanity forever, probably.
If you like such creative AI work, I would recommend looking at the other "NeurIPS Creative AI Track 2025" submissions as well.