Liner notes
Documentation
Mankunku is a jazz ear-training PWA. The app plays a phrase, you play it back on your instrument, and pitch + rhythm are scored in real time. These docs cover the user-facing flows, the architecture, and reference material for contributors.
Quick Start
Architecture
Overview High-level system design and component diagram.Tech Stack Technology choices and rationale.Data Model Core TypeScript types with field documentation.Audio Pipeline Playback, capture, detection, segmentation.Scoring Algorithm DTW alignment, pitch and rhythm scoring, grading.Phrase System Library, generation, mutation, validation.Adaptive Difficulty Algorithm, leveling 1–100, difficulty profiles.Tonality System Daily key/scale selection, progressive unlocking.State Management Svelte 5 runes, state modules, persistence.Design System Color tokens, typography, the Blue Note aesthetic.Pitch & Rhythm Coupling How the two scoring systems share state.
API Reference
Audio audio-context, playback, capture, pitch-detector, onset-detector.Scoring alignment, pitch-scoring, rhythm-scoring, scorer, grades.Music scales, chords, keys, intervals, notation, transposition.Phrases generator, mutator, validator, library-loader.Difficulty adaptive, params.State session, settings, progress, history, library state modules.Components All Svelte components and route pages.