Pianolyze transcribes piano recordings using AI that runs entirely in your browser. Drag and drop any MP3, WAV, FLAC, or M4A file and watch as the notes appear in real-time on a piano roll. Slow down playback to study difficult passages, zoom in to see exactly what's being played, and explore the harmonic choices of your favorite pianists. Perfect for jazz students, classical pianists, and anyone curious about music.
I'm Nick. As a pianist, I've always been interested in understanding how the greats do what they do – sometimes to the point of obsession. How do they voice lead through changes? What's actually happening under their hands?
Back in 2022, I built Harmonic Analyzer – a Mac app that transcribed piano recordings using ML. It got some traction, but I never quite finished it. Requiring users to download a Mac app felt like unnecessary friction, and I didn’t want to limit distribution to Mac users.
Thankfully, technology has evolved, enabling me to ship a web-based version, which I've called Pianolyze.
The entire stack runs client-side: • ONNX Runtime hosting Bytedance's piano transcription model • Web Workers for async transcription processing, exposed via Comlink • WebGL for piano roll rendering • Web Audio API for playback • IndexedDB for model caching • React + Vite + MobX State Tree
Your audio never leaves your device. No servers, no uploads, no inference bills.
Watch the video above to see it in action, transcribing the playing of the late, brilliant Mulgrew Miller, who I was fortunate to study with briefly as a teenager.
Try it with your favorite piano recordings – solo works best, and you'll be amazed at what it picks up. Would love to hear what you think, and happy to answer any questions! 🎹
Client-side transcription is tricky. What’s your approach for keeping it performant?
Would also be good if you had a demo mini on the home page of the site, for us folks who dont have music files.
Congrats on the launch! I recently went to Jacob Collier’s concert, his harmonies are insane! Do you think it’ll soon be possible to just drop YouTube link and get a transcribed version on a piano roll?
Hey Product Hunt! 👋
I'm Nick. As a pianist, I've always been interested in understanding how the greats do what they do – sometimes to the point of obsession. How do they voice lead through changes? What's actually happening under their hands?
Back in 2022, I built Harmonic Analyzer – a Mac app that transcribed piano recordings using ML. It got some traction, but I never quite finished it. Requiring users to download a Mac app felt like unnecessary friction, and I didn’t want to limit distribution to Mac users.
Thankfully, technology has evolved, enabling me to ship a web-based version, which I've called Pianolyze.
The entire stack runs client-side:
• ONNX Runtime hosting Bytedance's piano transcription model
• Web Workers for async transcription processing, exposed via Comlink
• WebGL for piano roll rendering
• Web Audio API for playback
• IndexedDB for model caching
• React + Vite + MobX State Tree
Your audio never leaves your device. No servers, no uploads, no inference bills.
Watch the video above to see it in action, transcribing the playing of the late, brilliant Mulgrew Miller, who I was fortunate to study with briefly as a teenager.
Try it with your favorite piano recordings – solo works best, and you'll be amazed at what it picks up. Would love to hear what you think, and happy to answer any questions! 🎹