instruments
Named instrument library, so a sound is picked by name instead of by plugin index. list/show: read-only; each entry has role, library, note maps (guitar/bass/drums map names the generators use), playable range, tags, and the saved chain…
Instructions
Named instrument library, so a sound is picked by name instead of by plugin index. list/show: read-only; each entry has role, library, note maps (guitar/bass/drums map names the generators use), playable range, tags, and the saved chain name or none. save: the user has loaded a sound by hand on 'track' (any Kontakt library or Serum preset); this saves that track's FX chain, plugin state included, as FXChains/instrument- and registers it. load: splice a saved instrument onto an EMPTY track (refused if the track has FX unless allow_existing_fx) and verify the FX landed; use the entry's maps when writing notes. remove: drop a user entry (shipped catalog entries stay). save_rig: for a multi-output instrument (a Kontakt kit feeding Kick/Snare/room tracks), save the instrument track plus every track its sends and folders reach as a track template; load of a rig adds all those tracks and returns play_track_guid, where the MIDI goes. Errors name the problem; nothing is half-registered.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | list: filter by one tag | |
| maps | No | save: {guitar|bass|drums: map name} | |
| name | No | lowercase name, e.g. dark-pad | |
| role | No | ||
| tags | No | ||
| notes | No | ||
| range | No | save: [low, high] MIDI notes | |
| track | No | exact track name (save: source, load: destination) | |
| action | Yes | ||
| library | No | save: what the sound is, e.g. 'Serum 2: PD - Dark Matter' | |
| overwrite | No | save: replace an existing saved chain | |
| articulations | No | save: {articulation: keyswitch MIDI note} | |
| allow_existing_fx | No | load: append to a track that has FX |