How saarsena/theory-aide works
Theory Aide is an Ableton Live extension and a companion browser-based music-theory course. In Live, a producer selects a clip, scene, or arrangement range; the extension extracts MIDI notes, routes them to the relevant analysis, and presents findings and suggested next steps. The shared TypeScript engine covers harmony, rhythm, voicing, counterpoint, form, texture, and composition mapping. The site teaches theory and demonstrates a shared analysis path with curated examples. Relationships for unsampled capabilities follow the README; sampled source excerpts confirm selected implementation links.
Main entry points: extension.ts Commands and MIDI extraction · timeline.ts Harmonic timeline · src Course and demos · analyzer.ts Harmony and key analysis
Components 22
Live extension
- Commands and MIDI extraction
src/extension.ts
Analysis engine
- Harmony and key analysis
src/theory/analyzer.ts - Scales and chord primitives
src/theory/core.ts - Theory data
src/theory/data.ts - Harmonic timeline
src/theory/timeline.ts - Counterpoint checker
src/theory/counterpoint.ts - Composition dimensions
src/theory/dimensions.ts - Arrangement form
src/theory/form.ts - Composition map
src/theory/map.ts - Rhythm and phrasing
src/theory/rhythm.ts - Voicing and density
src/theory/voicing.ts - Timbre and dynamics
src/theory/timbre.ts - Tone row analysis
src/theory/tonerow.ts
Creative guidance
- Next-move suggestions
src/theory/nextMoves.ts
Teaching website
- Course and demos
site/src - Teaching examples
site/src/examples.ts - Playable note demos
site/src/lib/player.ts - Reading paths
site/_data/clusters.js
Other components
- Music producer
- Ableton Live
- Course reader
- Web browser
Connections 33
- Music producer → Ableton Live: selects MIDI
README.md - Ableton Live → Commands and MIDI extraction: dispatches commands
README.md - Commands and MIDI extraction → Harmony and key analysis: analyzes harmony
README.md - Commands and MIDI extraction → Harmonic timeline: analyzes selections
README.md - Commands and MIDI extraction → Counterpoint checker: checks tracks
README.md - Commands and MIDI extraction → Composition dimensions: scores dimensions
README.md - Commands and MIDI extraction → Arrangement form: detects sections
README.md - Commands and MIDI extraction → Composition map: maps composition
README.md - Commands and MIDI extraction → Rhythm and phrasing: analyzes phrasing
README.md - Commands and MIDI extraction → Voicing and density: checks voicing
README.md - Commands and MIDI extraction → Timbre and dynamics: analyzes texture
README.md - Commands and MIDI extraction → Tone row analysis: checks tone rows
README.md - Commands and MIDI extraction → Next-move suggestions: builds suggestions
src/extension.ts - Harmony and key analysis → Scales and chord primitives: uses
src/theory/analyzer.ts - Harmony and key analysis → Theory data: uses
src/theory/analyzer.ts - Harmonic timeline → Scales and chord primitives: recognizes chords
src/theory/timeline.ts - Harmonic timeline → Harmony and key analysis: uses key analysis
src/theory/timeline.ts - Counterpoint checker → Scales and chord primitives: uses pitch classes
src/theory/counterpoint.ts - Composition dimensions → Harmonic timeline: scores analysis
src/theory/dimensions.ts - Arrangement form → Harmonic timeline: uses analysis
src/theory/form.ts - Composition map → Harmonic timeline: uses analysis
src/theory/map.ts - Rhythm and phrasing → Harmonic timeline: reads notes
src/theory/rhythm.ts - Voicing and density → Harmonic timeline: uses analysis
src/theory/voicing.ts - Timbre and dynamics → Harmonic timeline: uses analysis
src/theory/timbre.ts - Tone row analysis → Scales and chord primitives: uses theory
src/theory/tonerow.ts - Tone row analysis → Harmonic timeline: uses notes
src/theory/tonerow.ts - Next-move suggestions → Harmonic timeline: uses analysis
src/theory/nextMoves.ts - Course reader → Web browser: opens course
README.md - Web browser → Course and demos: runs demos
site/src/main.ts - Course and demos → Teaching examples: loads examples
site/src/main.ts - Course and demos → Playable note demos: plays examples
site/src/main.ts - Course and demos → Counterpoint checker: analyzes examples
site/src/main.ts - Course and demos → Reading paths: organizes lessons
site/_data/clusters.js