
Evolver
Tools
What worked
The data-driven module system proved genuinely extensible — adding a new instrument or eurorack module requires only a JSON config, panel SVG, and markdown sessions, no code changes. Cross-module references (bidirectional session links with context) emerged naturally once the data model supported them. The dual-mode content architecture (local Obsidian vault for real use, bundled content for Vercel demo) solved the privacy problem cleanly. The ADHD design constraints (15-30 min sessions, sequence not calendar, zero guilt for skipped days) shaped every product decision and held up across 10 instruments/modules.
What broke
Audio recording infrastructure keeps slipping — sessions reference audio examples but there's no capture pipeline. Panel authoring is labor-intensive: each new module requires hand-placing every control from hardware manuals, with no algorithmic layout. Mobile is partial — responsive shells exist but panels still render at desktop viewBox sizes with no touch optimization. Reference PDFs must be user-supplied, which breaks the Vercel demo.
Roles
I wrote the pedagogical framework (ADHD design principles, session structure, the philosophy that missed days create no guilt) and authored 60+ sessions as content. Claude Code built the Next.js app, Zod schemas, panel components, MIDI workspace, and rendering pipeline. The decision to codify the framework in-repo rather than as a separate document was mine — single source of truth for methodology.
Evolver (Instrument Mastery System)
Overview
Evolver is an ADHD-friendly structured learning system for deeply mastering electronic synthesizers and eurorack modules. It turns "I bought this synth but never got deep with it" into fluent compositional use through 15-30 minute micro-sessions, each producing a tangible output (documented patch, technique guide, audio example).
Target users: Electronic musicians with ADHD who own synthesizers but struggle to progress beyond surface-level exploration.
What It Does
- 241 sessions across 10 instruments/modules — 3 synthesizers (Evolver, Cascadia, Octatrack) and 7 eurorack modules (Maths, Plaits, Beads, Just Friends, Crow, Swells, Ikarie)
- Interactive SVG panel visualizations showing exact hardware layouts, with parameter highlighting during sessions and cable routing diagrams for modular patching
- MIDI workspace (Evolver) for SysEx capture, send, diff, and parameter extraction via Web MIDI API
- Patch library with 39 documented patches including full parameter values and categories
- Cross-module learning paths with bidirectional session references and category-based suggestions (e.g., "Use Maths envelopes to modulate Ikarie filter cutoff")
- Progress tracking with module journey visualization and completion metrics
- Dual-mode content — personal Obsidian vault for real use, bundled content for public Vercel demo
- Obsidian-native rendering — wikilinks, callouts, Mermaid diagrams all render without translation
How It Fits Together
A Next.js app reads curriculum content from either a local Obsidian vault or bundled markdown files (configured per-environment). Content flows through gray-matter for frontmatter, Zod validation with .passthrough() for Obsidian metadata tolerance, then a remark/rehype pipeline that handles wikilinks, callouts, Mermaid diagrams, and syntax highlighting. Panel visualizations are SVG components — some inline JSX (Evolver's 110 controls include unique elements like LCD displays and sequencer LEDs), others data-driven from control metadata arrays (Cascadia's 179 controls with bezier cable routing). Deployed to Vercel in demo mode.
Architecture Decisions
- Sequence-based progression, not calendar-based — No streaks, no calendars. Sessions are numbered, not dated. Skipping creates no guilt. This is the core ADHD design constraint.
- 15-30 minute hard limit per session — Consistency over intensity. Prevents burnout and lowers activation energy.
- Two panel architectures — Evolver has unique UI elements (LCD, LEDs) requiring inline JSX. Cascadia and eurorack modules use a generic data-driven render loop over control metadata. The split was intentional, not technical debt.
- Zod with
.passthrough()— Strict validation on known fields, permissive on extras. Obsidian adds metadata we don't control; this lets both systems coexist. - Framework codified in-repo — The ADHD design principles and curriculum authoring guide ship with the code, not as a separate theory document.
- Demo mode with bundled content — Lets the public see the curriculum without exposing personal practice data.
Iteration Story
v1.0 shipped a content pipeline and 35 Evolver sessions. v1.1 added Cascadia (25 sessions, 179-control panel with cable rendering) and proved the framework was reusable across instruments. v1.2 added learner state persistence — this was the pivot from "curriculum viewer" to "learning tool," because without knowing where you left off, the system couldn't support the inconsistent schedules that ADHD learners actually have. v1.3 was a visual redesign driven by an "ADHD 5-second test" acceptance criterion: if a page doesn't communicate its purpose in 5 seconds, it fails.
The real extensibility test came in v2.0 with 7 eurorack modules. Each module needed only a JSON config, panel SVG, and markdown sessions — no framework changes. Cross-module references emerged naturally: once sessions could link bidirectionally with context, organic learning paths appeared across modules (e.g., using Maths envelopes with Ikarie's filter). The content is the product; the code just makes it navigable.
Weaknesses & Open Questions
- Audio recording keeps slipping — Sessions reference audio examples but there's no recording infrastructure. The
audio_previewfield is still empty everywhere. - Panel authoring is manual — Each new module requires hand-placing controls from hardware manuals. No algorithmic layout generation. This scales poorly.
- Mobile is incomplete — Responsive shells exist but panels render at 1800px viewBox with no touch-optimized interactions. For a "practice alongside your hardware" tool, this matters.
- Reference PDFs must be user-supplied — Works locally, breaks on Vercel.
- Single-user tool — Built for the developer's own practice. The framework is reusable in theory, but no one else has authored a curriculum with it.
Ecosystem Role
Evolver shares the Obsidian vault reader pattern with PM Toolkit and the ADHD-adapted design approach with Haven. It's in the same music domain as Etyde (instrument mastery vs. music lesson management) and AbletonBuddy (synthesis learning vs. songwriting). No infrastructure dependencies — self-contained, deployed to Vercel.