Show HN: Teach your kids perfect pitch
Summary
BSharp is an open-source Android app that trains perfect pitch in young children using Eguchi's chord identification method, with adaptive learning and multiple user profiles.
View Cached Full Text
Cached at: 06/22/26, 01:34 AM
paytonjjones/bsharp
Source: https://github.com/paytonjjones/bsharp
BSharp: Perfect Pitch Trainer
Young children can acquire absolute (perfect) pitch — but adults cannot. The window closes around age 6. BSharp helps develop this ability using Eguchi’s chord identification method.
How it Works
Children listen to piano chords and learn to identify each one by its color. Start with two chords (red and yellow) and gradually introduce new ones as your child masters each level. Practice 5 times a day for 2–3 minutes each session — about 20–25 identifications.
About the Eguchi Method
Eguchi’s chord identification method was documented in research published in Psychology of Music. Children associate chords with colors (red, yellow, blue, black, green, orange, purple, pink, brown) and progress through levels. New chords should be introduced no sooner than every 2 weeks, and only after the child can identify all current chords with 100% accuracy.
Based on the open-source CIM Trainer by Paul Ganssle.
Using BSharp
Children listen to a chord and tap the matching colored flag. The app tracks accuracy, adjusts chord frequency using an adaptive weighting algorithm (presenting harder chords more often), and supports multiple user profiles.
Chord progression:
| Level | Color | Chord |
|---|---|---|
| 1 | Yellow | F/C |
| 2 | Blue | G/B |
| 3 | Black | F/A |
| 4 | Green | G/D |
| 5 | Orange | C/E |
| 6 | Purple | F |
| 7 | Pink | G |
| 8 | Brown | C/G |
After mastering the 9 white-key chords, 5 black-key chords are introduced (Gray, Tan, Light Green, Light Purple, Sky Blue).
Developer
Building
Requires Node.js.
npm install
make build
This produces dist/ with the bundled app.
Android
make android-deploy
Then open android/ in Android Studio, sync Gradle, and run on a device or emulator.
Attribution
Derived from pganssle/cim by Paul Ganssle. Rebuilt as a separate tool with a distinct name at his request. Licensed under the Apache License 2.0. See NOTICE for details.
Similar Articles
Under the Hood: Building a Real-Time Chord Recognizer
This article explains the technical architecture of a real-time chord recognizer, detailing a four-stage pipeline using pitch-class bitmasks, candidate generation, score normalization, and musical heuristics.
Show HN: I trained a 125M model to autocomplete piano on-device
A developer trained a 125M-parameter transformer model to autocomplete piano performances in real-time on-device using MIDI data and DPO post-training, and released the RollTab app for iOS.
Guitar tuner that uses phone accelerometer
A web-based guitar tuner that utilizes the phone's accelerometer to detect string vibrations and calculate pitch.
Gesture Synth School
Gesture Synth School is a practice app for learning to play music using hand gestures.
SoundGate Guitar
SoundGate Guitar is an AI music tutor that provides real-time feedback on guitar playing.