[All work](/work?type=work)

# Piano Improvisation Helper

A small app for the moment you want to play along with a song and don't know what key it's in.

[Source code ](https://github.com/Slaymish/PianoImprovisationHelper)[Open the application](https://pianoimprovisationhelper.netlify.app/)

Independent development. React, TypeScript, Web Audio and pitch-class analysis.

![Screenshot of Piano Improvisation Helper with its song search and preview-analysis interface.](https://cdn.sanity.io/images/qnuj1c4o/production/08fb16353a107a005c206b7351c07821ed3668d9-1440x900.png?w=1280\&q=80\&auto=format)

Search for the song. If there's an audio preview, the browser decodes the clip, builds a pitch-class histogram across frames, and ranks major and minor keys against it. No server involved.

Microphone recognition is still a placeholder, so search is the path that works, and the alternates stay visible because the estimate is only as good as the clip.

## State

Search and preview analysis work end to end. The key it gives you is an estimate from the preview, which is why it shows more than one.

[All work](/work?type=work)
