Set Snapshot
v0.1.0Two independent pieces:
Unverified listing. This repo is new or has little community activity and the developer has not claimed it. Extensions run code inside Live — read the source, check the author, and only install things you trust.
Set Snapshot
Two independent pieces:
- Take Snapshot (a real extension command) — serializes the current Set to JSON: tracks (name, type, mute/solo/arm, devices + parameter values, clips with name/color/position/length/loop state/MIDI note count), scenes, locators, and tempo.
- Diff (
npm run diff, a plain Node script) — compares two snapshot files and prints a human-readable changelog. Entirely read-only; it never touches Live and doesn't even depend on the SDK, so it runs with Live closed.
Where snapshots are written, and why not "next to the Set file"
The original idea was ./snapshots/<setname>-<timestamp>.json next to the
.als file. Two things in this SDK make that impossible as specified:
- There is no way to read the Set's name or file path.
SongandApplicationexpose tracks, scenes, cue points, tempo, and scale info — nothing resembling a file path or Set name. - The filesystem permission model explicitly disallows writing to
arbitrary project folders. The docs only guarantee two writable
directories:
context.environment.storageDirectory(persistent) andtempDirectory. Writing elsewhere is called out as unsupported and likely to break once a stricter OS-level sandbox ships.
So snapshots go to <storageDirectory>/snapshots/snapshot-<ISO timestamp>.json
instead — the only location this SDK actually commits to keeping writable and
private to the extension. <storageDirectory> is a per-extension directory
Live manages; the dev-mode terminal (npm start) logs the exact path each
time a snapshot is written. Time signature is also omitted from the schema:
Song exposes tempo but no Set-level time signature (only a read-only
per-Scene numerator/denominator, a different, follow-actions-related thing).
Usage
npm start -- --live "/Applications/Ableton Live 12.4 Beta.app"
# then in Live: right-click any track -> Set Snapshot: Take Snapshot
npm run build
npm run diff -- ~/Library/.../snapshot-2026-08-21T10-00-00.json ~/Library/.../snapshot-2026-08-21T11-30-00.json
Rate this extension
One rating per account; you can change it any time.
Comments
No comments yet.