- Real Lisp
- Parse sexprs into AST tables
- Persist AST tables as sexprs #1
- Load configuration from file
- Convenience functions
- Remove env references from core as much as possible; used in:
- print-expr
- def
- def@
- expr-to-sexpr
- Collate TODOs from code
- Refactor everything to use plisp as much as possible
- Refactor for library usage
- Do not reference other modules via globals
- Messages and plisp MAY be useful separately (?)
- Implement (basic) MIDI output handlers
- Flatten message structure (nesting is yucky)
- Implement Menus
- Menu state (button press)
- Change background (log) display - colors/mask (draw_checkers)
- Draw menu border
- Implement MIDI inputs -> messages
- Norns screen log (text-only for now)
- Log incoming messages
- Log handlers - NAH, not now, I don't think this will work
- BONUS - cute "index" animation
- Show log messages with actual info
- Create environment/context for each event
- Split into modules
- lib (core)
- Messages
- Lisp
- Utils
- Core
- lib (core)
- Remove the stupid helixes var
- MIDI-lensing (for e.g. OT)
- OT lens definition
- Input (MIDI from external devices)
- Output (MIDI to external devices)
- Convert lenses to plisp
- Refactor exec to create child envs
- Implement UI #7
- Visual (keyboard-free) expression editor
- Note that full expr probably ain't it
- Lean into the mercurial quality of lisp
- DSLs are useful
- Macros may also be useful
- Message "learn" (like MIDI learn)
- Visual (keyboard-free) expression editor
- Implement message throttling #9
- Timers/clocks
- Execution context (like closure env) - may need IDs, etc.
- ("Spike") Investigate norns
sky
lib, see if it can replace some code #13 - Add engine support
- Add debug mode #10
- Rethink lens modes - they're cheesy #11
- Conditions + state is more useful
- Add norns param menu read/write support
- This has its own MIDI mappings