2.2.0 is a performance release. Producer Pal stops leaking Live API objects,
so Ableton stays fast over a long session and its log file stops growing. Calls
that run long now return partial results instead of a bare timeout.
Two secondary focuses: Drum Rack support fills in its gaps, and every tool
starts moving onto one shorthand syntax for locating anything in a Live Set.
Special thanks to @arturflor for many useful bug reports.
Highlights
- The Live API object leak is fixed in every tool — 2.1.0 fixed it for
ppal-live-apialone. 500ppal-read-trackcalls used to leave 5,252
listeners armed in Live, enough to make the next track delete write 26 MB to
Ableton's log. The same 500 now arm zero. - Live stops slowing down over a session — reads went 54 → 90 ms over 2,500
calls, against 534 ms → 1.1 s before. Released objects are pooled and
retargeted instead of rebuilt. - Drum kits, Live Set reads, and arrangement edits do a fraction of the work
— a 64-pad kit's drum map went from 769 Live API objects to 129, and tiling or
splitting on a busy track could freeze Live. - One path syntax for everything —
t2/s3is a session slot,t2/l0a take
lane,t1/d0/pC1a drum pad.pathreplacesslot, whose two bare numbers
models regularly sent backwards, andtoPathnames destinations. Old params
still work with a deprecation notice — but see Breaking changes below. - Every id param is just
id, and a param sent asnullor empty reads as
unset instead of as a real value. - Drum Racks fill in — copy a whole pad, delete a single chain, read and
write chain mixers, address a send's return by name, and nested racks work at
last. - More ways to move clips — copy or move one to another track in the
arrangement, promote a take-lane clip back to the main lane, and cut
arrangement clips at song positions. - Long calls come back with something — a call that runs out of time reports
what landed and names what it didn't reach. The default timeout is 45s, up
from 30s. - Built-in chat — the input is a markdown editor, Tab and Shift+Tab indent,
the per-turn tool-step budget is 25 (settable 5–100), and Stop no longer sends
the message you queued behind it.
Also: every copy-pasteable npx command pins producer-pal@latest, the tool
reference shows real example output for every tool, and a long list of clip,
rack, device, and chat fixes.
Full release notes, with the details behind every item →
⚠️ Breaking changes — only if you script against the REST API
Nothing changes for chatting with Producer Pal, and nothing changes for an MCP
client: the model reads whatever a tool hands back. This is for code you wrote
that parses tool results — a SKILL.md helper script, or anything calling the
REST API directly.
A clip's location comes back as path. The slot ("0/3"),
trackIndex/sceneIndex, and takeLane fields are replaced by one path
("t0/s3"). Read result.path instead, and it pastes straight back into a
path param.
Params are not affected. slot, toSlot, devicePath, takeLane, and the old
id spellings all still work — they're just no longer advertised.