Show HN: Teach your kids perfect pitch

Hacker News Top Tools

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.

No content available
Original Article
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.

BSharp

See it on the Play Store

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.

BSharp BSharp

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

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:

LevelColorChord
1YellowF/C
2BlueG/B
3BlackF/A
4GreenG/D
5OrangeC/E
6PurpleF
7PinkG
8BrownC/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

Lobsters Hottest

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.