set_properties
Set or update properties on Ableton Live song, track, clip, device, and parameter objects by address, with strict validation and atomic, undoable writes.
Instructions
Set properties on the Song, a Track, Scene, ClipSlot, Clip, Groove, cue point, device, rack chain, drum pad or device PARAMETER (property value, checked against the parameter's own range). A clip's groove is set to a groove address (grooves/N). Addresses: 'song', 'master', 'tracks/N', 'returns/N', 'scenes/N', 'tracks/N/slots/M' (clip slot) and 'tracks/N/slots/M/clip', 'tracks/N/arrangement/M' (arrangement clips in time order), 'tracks/N/take_lanes/K', 'tracks/N/devices/M' (also returns/N and master; then '/parameters/P', '/sample' for a Simpler, '/chains/C/devices/...', '/drum_pads/NOTE', '/mixer/volume'), 'grooves/N' (groove pool), 'cue_points/N' and 'app' (the Live application). Indices are 0-based. A name selector works anywhere a number does, e.g. 'tracks/name:Drift' (exact match; several matches is an error that lists their indices). Values are checked strictly (booleans must be true/false, integers whole numbers, enums given by name; see list_properties). Interdependent properties (e.g. loop_start/loop_end) can be set together in any order, and the call is all-or-nothing: if one write fails, the others are restored. Returns each property's previous and new value. Each call is one undo step in Live. Give address + properties, or items to change several objects in one call. expect ({name}) refuses to write if the object is not the one you meant.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | No | Several objects at once: [{address, properties, expect?}] | |
| expect | No | Guard: {"name": "Drift"} (optionally class_name) must match the object, or nothing is written | |
| address | No | Object address | |
| properties | No | Property values, e.g. {"mute": true, "volume": 0.7} |