docs: reflect ME-import → new-instrument behavior

Update ingest surface (2) + instrument_drop_win entry points in CLAUDE.md;
update the Ingest-through-the-bank spec in CONTEXT.md to shipped behavior.
This commit is contained in:
2026-07-27 13:42:14 -04:00
parent 188f367ba2
commit c40458fc53
2 changed files with 9 additions and 6 deletions
+7 -4
View File
@@ -1586,14 +1586,17 @@ headers):**
capture inputs) and assigns the resulting `Sample` id to the target instance. **It never
inserts a timeline item** — the capture/placement separation is load-bearing; assignment
is a bank-index + instance-selection act, not a placement.
- **Media Explorer import → bank → assign.** The Media-Explorer surface is **thin**:
- **Media Explorer import → bank → new instrument.** The Media-Explorer surface is **thin**:
`OpenMediaExplorer` (open/select a file) and `MediaExplorerGetLastPlayedFileInfo` (read the
*one* last-played/selected file path + its selection range/pitch/vol/rate) are the whole
contract. There is **no** enumerate-selected-files and **no** register-a-drop-handler-on-
the-Media-Explorer API. So ME import is **single-file, pull-on-action** — an action fired
while a file is selected in the ME — not a push/drop from inside the ME. **Spike:** confirm
`MediaExplorerGetLastPlayedFileInfo` returns a usable path+range for a merely-*selected*
(not-yet-played) file, or whether a play is required first.
while a file is selected in the ME — not a push/drop from inside the ME. **Shipped behavior
(RS5k parity):** after importing the file into the active bank, the action stands up a NEW
ReaSampler 9000 instrument on a NEW track (named after the sound) pre-loaded with just that
sound (`createTrackWithInstrument` in `instrument_drop_win`). No `assignment_request` is
written; it never touches a live instance's selection. Undo-wrapped: track-create + persist +
FX-add + inject = one Ctrl-Z.
- **Drag-and-drop onto ReaSampler surfaces.** REAPER exposes **no** drag-drop registration
API. Drop handling is on ReaSampler's *own* HWNDs via SWELL/Win32 (`WM_DROPFILES` /
`IDropTarget` on the docked `bank_panel` HWND — the surface the panel already owns) → ingest