About FretsNotes
FretsNotes was born from a simple frustration: most guitar players can play songs, but can't name the notes they're playing. Traditional methods for learning music theory are either boring (memorize a chart) or disconnected from the instrument (textbook exercises you never apply). We wanted to bridge that gap.
We're building something different. FretsNotes uses a structured, exercise-driven approach inspired by language learning apps. Instead of passive memorization, you actively engage with music through reading notation, ear training, interval recognition, sight-reading, and playing exercises — all adapted to your skill level on the guitar.
How It Works
At its core, FretsNotes has a mastery-weighted practice engine. Every note and interval you practice gets a mastery score based on your performance. Concepts you struggle with appear more frequently. Those you've nailed fade into the background. Adaptive difficulty promotes you when you're ready, and progressive hints guide you without giving answers away.
The curriculum is organized into eight progressive series covering 80 courses. You start with natural notes in open position, progress through ear training and accidentals, learn intervals, expand to higher fret positions, and culminate in chromatic mastery and sight-reading. Sixteen distinct exercise types ensure you build every skill a musician needs.
The Engine
The music theory and practice engine is built in Rust with 307 tests, exposed to Swift via UniFFI. It handles everything from pitch representation and fretboard mapping to exercise scheduling, adaptive difficulty, hint generation, and course graph traversal. The engine is designed to be instrument-agnostic — bass, ukulele, and piano support are on the roadmap.
What's Next
We're actively developing new features: cloud sync for cross-device progress, a web app companion, and a teacher mode that lets music instructors create custom courses and track student progress.
Join the beta to try FretsNotes and help shape its future, or read the blog for development updates.