Skip to content

2.2.0

Latest

Choose a tag to compare

@adamjmurray adamjmurray released this 24 Aug 00:44
· 1 commit to main since this release
v2.2.0
a5e2ed1

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-api alone. 500 ppal-read-track calls 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 everythingt2/s3 is a session slot, t2/l0 a take
    lane, t1/d0/pC1 a drum pad. path replaces slot, whose two bare numbers
    models regularly sent backwards, and toPath names destinations. Old params
    still work with a deprecation notice — but see Breaking changes below.
  • Every id param is just id, and a param sent as null or 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.