Native saving and recall
save_live_set saves Live Sets on macOS through Live's native UI. Use native device preset saving to keep an exact device or rack in the User Library through MCP.
Save a Live Set
Read get_live_state, then plan save_live_set with its current state version and Set fingerprint. Omit path to save the current named Set, or supply a new absolute .als path for Save As. Execute with the returned confirmation token and plan hash. Save As refuses existing destinations and never accepts an overwrite prompt.
Save As binds its native window, purpose, filename and full directory path. The native save panel must use column view so its directory file URL can be read. If a known failure occurs before Save, the tool cancels only its unchanged prepared panel and reports saveAsRecovery.status: "cancelled", saved: false, and pendingUserAction: false. Re-read the Set and destination and obtain a fresh plan before retrying. Changed input, an unexpected sheet, unavailable directory evidence, or an unknown Save outcome preserves the panel and reports uncertainty; inspect Live and the destination before proceeding.
For direct native UI saving:
Use Save Live Set As to choose a new destination and name. In the macOS save panel, Cmd+Shift+G opens the destination-path field. Enter an existing writable folder and press Return. After setting the filename, press Tab to commit the text field before clicking Save; the Save button can remain disabled while the filename edit is uncommitted.
Verify that the panel closes, the main window displays the saved Set's name and file URL, and the .als file exists at that destination. A save attempt or a dismissed panel is not evidence of a saved Set. Subsequent Cmd+S saves update the current Set.
Saving a Set is not evidence that external samples have been collected into its Project. Use the Project handoff workflow to inspect saved sample references and collect their sources before moving or sharing a Project. Keep third-party presets, commercial samples, and test Sets out of the source-code repository.
Save and load a device preset
Select the intended device and click its Save Preset button. Live opens the device's location in the User Library with the new preset's name editable. Set a unique name and press Return. This workflow was exercised with EQ Three: it produced an .adv browser item and renamed the source device to the chosen preset name.
Double-clicking that browser item loaded another EQ Three into the selected track, rather than replacing the existing source device. Inspect the device chain after loading: adding another EQ or dynamics processor changes signal processing. Do not assume ordinary browser loading means replacement. Use the device's explicit Hot-Swap control when replacement is intended, then verify the resulting chain.
For recall acceptance, compare native class identity and every exposed parameter's original name and raw value before saving and after loading. EQ Three's ten exposed parameter values matched exactly in the exercised save/load workflow. This does not prove audio equivalence, hidden third-party state, sample portability, macro mappings, or full track-template recall.
MCP recall of a saved User Library preset
Saved native device presets can already be found with search_browser_items and loaded with guarded load_browser_item. Search root: "user_library" below the exact device folder, then use the returned path without guessing spelling or filename extensions. For example, the exercised EQ Three preset was found below ["Presets", "Audio Effects", "EQ Three"] and loaded using the returned four-segment path including its .adv filename.
Third-party VST3 presets can appear at the User Library root as .vstpreset files instead of beneath a device folder. Search from the root, use the returned path, and load into an empty staging track before moving the device into a larger chain. Verify the loaded device identity and exposed parameters; a successful load does not prove equivalence of hidden plug-in state. get_plugin_integration_context separates this Live browser workflow from direct control of a plug-in's own preset browser, which remains unavailable through the bridge.
Read the current state version, obtain the load dry-run plan, then execute with its confirmation token and plan hash. Observe the chain again afterward. The exercised MCP load added a third EQ Three to the acceptance track; all ten exposed parameter names and raw values matched the source. It did not replace either existing device. Saving still required native UI.
Exposed-parameter JSON capture and recall
capture_device_parameter_snapshot returns a JSON snapshot for an exact loaded device. Persist that object locally, then pass it to guarded recall_device_parameter_snapshot with the target track/device and fresh state version. Recall supports a matching native class and exact ordered parameter layout, including bounds and enumerated choices; renamed devices are allowed. Changed disabled controls are rejected, unchanged controls are left alone, and a snapshot already matching the target reports that no changes are required.
Read parameters independently after recall rather than treating the mutation acknowledgment as acceptance. EQ Three acceptance captured ten parameters, changed low gain, and recalled all original values exactly. These snapshots are not .adv, .adg, NKS or complete third-party presets: they omit hidden state, samples, automation and mappings. Native preset saving remains necessary for those other forms of state.
capture_track_state_snapshot extends the same truthful JSON workflow to an existing track. One synchronous Remote Script callback captures its name/type, mixer values and named sends, exact routing-choice IDs, exposed parameters for ordered top-level and nested rack devices, rack-chain mixer and note routing, and populated Drum Rack pad mute/solo. recall_track_state_snapshot restores those fields onto an existing track only when its type, send layout, routing choices, ordered device topology, pad notes, and complete parameter layouts remain compatible. The confirmed write rechecks the full native pre-state, groups changes into one Live undo step, verifies complete readback, and attempts explicit rollback if any write fails.
Track-state JSON is not a native track template: recall does not create tracks or load missing devices, clips, nested rack devices, hidden plug-in state, samples, automation or mappings. Use native Live Set or .adg saving when those elements must travel with the preset.
For an existing Return bus, capture_device_chain_snapshot and save_device_chain_snapshot now use cavi-device-chain-v5 to include its volume, pan, mute and solo alongside the ordered FX chain. Guarded recall_device_chain_snapshot restores those exposed values against the same compatible Return topology in one Live undo step. Older v1-v4 snapshots remain readable and do not change the Return mixer. This does not capture source-track sends into the bus, hidden plug-in state, samples, automation, or mappings.
For Main, the same tools use cavi-device-chain-v6 to include master volume, pan, cue volume, crossfader and the currently selected hardware output channel alongside mastering FX. Recall requires that the saved output channel still exists in Live's available choices; an unsupported output-routing API is captured as null and cannot be used to set hardware routing. Older snapshots do not alter the master mixer or output. This is not a portable mastering preset or a substitute for checking actual audio at the intended main and headphone outputs.
Live browser Favorites
Live's color Collections are separate from NKS catalog tags and favorites. In the native browser, open the saved item's context menu and select the named collection. In the exercised acceptance, the menu initially showed Clear All Colors checked and Favorites unchecked; selecting Favorites made the saved EQ Three preset appear in the Favorites collection's one-item list.
Verify membership by opening the collection and finding the exact item. If its sidebar row is offscreen, scroll the Browser Sidebar upward before clicking it. Read the current collection label rather than assuming that a color index always has a particular user-visible name. No universal Live browser collection/tag mutation is currently exposed through MCP.
Boundaries
- A device preset is not a complete track or shared-bus system.
- Device-preset saving uses guarded native UI; file verification and recall acceptance are separate.
- Track-template, rack/FX-chain, third-party hidden-state, and full-Project recall each require their own workflow and acceptance evidence.