docs: ME-import places instrument on selected track

Update ingest surface (2) + instrument_drop_win entry points in CLAUDE.md
and the Ingest-through-the-bank spec in CONTEXT.md; createTrackWithInstrument
removed.
This commit is contained in:
2026-07-27 14:22:43 -04:00
parent 3b0c42fe52
commit fcca987454
2 changed files with 10 additions and 9 deletions
+8 -7
View File
@@ -1586,17 +1586,18 @@ 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 → new instrument.** The Media-Explorer surface is **thin**:
- **Media Explorer import → bank → instrument on selected track.** 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. **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.
while a file is selected in the ME — not a push/drop from inside the ME. **Shipped behavior:**
after importing the file into the active bank, the action adds a ReaSampler 9000 instrument to
the user's **currently selected track** via `loadInstrumentOntoTrack` in `instrument_drop_win`
— no new track is created and no routing is changed ("new sound, existing track"). If no track
is selected the sound still lands in the bank but no instrument is placed and a console message
explains why. No `assignment_request` is written; it never touches a live instance's selection.
Undo-wrapped: 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