Show HN: Pianolyze – Learn any piano song using AI/ML, right in the browser

pianolyze.com

4 points by nickplee a day ago

Hey HN,

I'm a pianist who's always been obsessed with understanding how great players think through harmony. What voicings are they using? How do they voice lead through changes? What's actually happening under their hands?

Back in 2022, I built Harmonic Analyzer (https://www.youtube.com/watch?v=iNgSgvUmiOs) – a Mac app that used ML to transcribe polyphonic piano recordings. 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.

I just shipped Pianolyze (https://pianolyze.com), a complete rewrite that runs entirely in the browser.

Tech stack:

• ONNX Runtime hosting Bytedance's piano transcription model (https://github.com/qiuqiangkong/piano_transcription_inferenc...) • Web Workers for async transcription, exposed via Comlink • WebGL for piano roll rendering • Web Audio API for playback • IndexedDB for model caching • React + MobX State Tree

Nothing leaves your device. No servers, no uploads, no inference costs.

Try it: Just drag and drop any solo piano recording (MP3, WAV, FLAC, M4A). The model downloads once (~100MB), and then everything runs locally. It works best with solo recordings; accompaniment can confuse the model. Chrome and Safari work best, on desktop.

I'd love feedback on the UX, performance on different hardware, and how well it handles various recordings. Also happy to discuss the technical approach.

Here it is in action, transcribing the great Mulgrew Miller: https://www.youtube.com/watch?v=sWW-Z9_n8Mk

ksherlock 16 hours ago

Interesting. Here's some UI feedback:

There seems to be a thermometer and a waveform display that are half synchronized; clicking in the thermometer moves the cursor in the waveform but clicking in the waveform doesn't adjust the thermometer. This was annoying and confusing.

Also, the thermometer has labels on both ends so it doesn't line up with the cursor in the waveform. Please move the labels to be above the thermometer so everything lines up.

Maybe it's just me but I would find it more intuitive if the current notes were in the middle of the window (rather than at the extreme left). For the most part, the keyboard will be lit up in the middle of the screen. don't make my eyes bounce around.