diff --git a/PLAN.md b/PLAN.md index e100ac6..5702fc6 100644 --- a/PLAN.md +++ b/PLAN.md @@ -223,15 +223,15 @@ instrument (performance map) while root notes come from the bank intrinsics (S2) editing the keymap does not touch the bank. **Depends on:** S4. -- [ ] Keymap editor in the `IPlugView` LICE editor: assign bank samples to key ranges +- [x] Keymap editor in the `IPlugView` LICE editor: assign bank samples to key ranges (low/high note per sample), each with its own root note (from S2 intrinsics, overridable in the performance map). -- [ ] Tier-1 playback: zoned resolution — a note picks its zone's sample and repitches +- [x] Tier-1 playback: zoned resolution — a note picks its zone's sample and repitches from that sample's root note; one sample per key-region. -- [ ] Performance-map persistence: the keymap (zones, per-sample assignment) is the - instrument's own state — held in the instrument (read/written over the live - `"reasampler"` seam per D-B's data-ownership split), never written back as a bank - intrinsic. +- [x] Performance-map persistence: the keymap (zones, per-sample assignment) is the + instrument's own state — held in the instrument as VST3 component state (setState/getState) + per D-B's data-ownership split; the live `"reasampler"` seam is read-only (bank + + intrinsics in, nothing written back), never written back as a bank intrinsic. ## S6 — embedded TCP/MCP UI (D-D — scheduled in-phase, after the editor) **Goal:** Render a compact keymap/level strip **inline in the track/mixer control