Add music theory curriculum with interactive lessons
Created by: jedmund
Overview
Implements a comprehensive music theory learning app with interactive lessons, exercises, and playable keyboard.
Key Changes
Content & Data
- Added chromatic scale music theory content module
- Updated exercise and lesson JSON references
Core Models
-
Lesson,Module,Track- curriculum structure -
ContentBlock,Check,Exercise- lesson content types -
ToolType,PlayableKeyboardConfig,MultipleChoiceConfig- interactive elements -
PitchParsing- musical note parsing utilities
Views & UI
- Navigation: Home, Track, Module, Lesson screens with headers
- Cards: LessonCard, ModuleCard, TrackCard with custom styling
- Lesson Pages: Content blocks (callouts, quizzes), multiple choice, exercises
- Interactive: PlayableKeyboardView with synthesizer integration
- Tools: ToolViewFactory for dynamic tool rendering
Services & State
-
AudioEngine- AudioKit-based sound synthesis and playback -
CurriculumStore- curriculum state management -
ContentLoader- JSON content loading -
SampleData- development sample curriculum data
Features
- Vertical paging through lesson content
- Split layout: reading region + interactive region
- Playable synthesizer keyboard with AudioKit
- Interactive content blocks and inline quizzes
- Progress tracking through lessons