Pianolyze

Pianolyze

Learn any piano song using AI/ML, right in your browser!

129 followers

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.
Pianolyze gallery image
Pianolyze gallery image
Pianolyze gallery image
Free
Launch Team
AssemblyAI
AssemblyAI
Build voice AI apps with a single API
Promoted

What do you think? …

Nick Lee

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! 🎹

Nuseir Yassin

@nickplee Learning to play piano has been on my wish list for long, bookmarked this!

Rajiv Ayyangar

@nickplee This is really cool. I just put in Keith Jarrett's Autumn Leaves from Tokyo 96. Is there some way you could have this output a transcript in standard notation? I know it's really difficult with the rhythm and everything, but even just the notes in standard notation, even if the timing isn't right, would be a lot easier for me to read.

Oh here's a random idea: what if you could drag to highlight a section of the timeline, and that outputs the notes in Western notation?

Nick Lee

@rajiv_ayyangar Amazing, and thank you! It's very hard to choose, but Tokyo '96 is probably my favorite Standards Trio record. Keith's intro on "It Could Happen to You" is absolutely sublime.

That's a great idea, even if it just showed the currently active notes on a grand staff or something. Let me see what I can do!

Nika

Do you plan to create this tool for more musical instruments? :)

Nick Lee

@busmark_w_nika it's on my roadmap to explore, though I think it is of less utility for non-chordal instruments, since it is easier to hear what's going on. Thanks for checking my app out.

Alex

I couldn't find where to view the sheet music. Will you be able to do it later?

Lilou Lane

This is brilliant, Nick — client-side transcription and privacy-first? That’s the dream. Excited to test it out! 👏

Sergey Demyanov

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?

Nick Lee

@sergey_demyanov That's a great idea for a feature. I'll investigate.

Rishi Uttam

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.

Nick Lee
@rishiuttamhk that’s a good idea! I’m sure there are some public domain piano recordings I can drop in.
Connor Berghoffer

Client-side transcription is tricky. What’s your approach for keeping it performant?