Skip to main content
Glama

draw_automation

Destructive

Draw automation envelopes for device or mixer parameters in Session clips by specifying time-value points, curves, and resolution. Writes editable breakpoints or steps, with replace or merge modes.

Instructions

Draw a clip automation envelope for a device or mixer parameter, inside Live (tempo-locked, sample-accurate). clip: a Session clip address ('tracks/2/slots/0/clip'); parameter: a parameter address on that clip's track ('tracks/2/devices/0/parameters/5', 'tracks/2/mixer/volume', 'tracks/2/mixer/sends/0'). points: [{time, value, curve?}] with time in beats from clip start and value in the parameter's own units (get_device shows min/max). The default style 'breakpoints' writes real envelope breakpoints (straight lines between them; smooth/ease curves get a breakpoint every resolution beats, default 0.25; step curves make jumps), so it is editable in Live and light. 'steps' writes a staircase of fine steps instead (resolution default 0.125). curve: linear (default), step, smooth, ease_in, ease_out (a point's own curve shapes the segment after it). mode replace (default) rebuilds the parameter's envelope, merge rewrites only the drawn range (breakpoints outside connect to it by straight lines). With hold (default true) the clip edges are filled with the first/last value. The result includes a readback of Live's stored values. Arrangement clips have no envelopes in Live's API. One undo step per call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
clipYesSession clip address, e.g. 'tracks/2/slots/0/clip'
holdNoFill the clip before the first and after the last point (default true)
modeNo'replace' (default) or 'merge'
curveNoDefault curve between points (default 'linear')
styleNoDefault 'breakpoints'
pointsYesBreakpoints, e.g. [{"time":0,"value":0.2},{"time":8,"value":0.9}]
parameterYesParameter address, e.g. 'tracks/2/devices/0/parameters/5' or 'tracks/2/mixer/volume'
resolutionNoBeats between generated breakpoints (or steps) on curved segments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.3

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and idempotentHint=false, and the description goes well beyond them: what replace destroys (rebuilds the parameter's envelope), how merge preserves out-of-range breakpoints, edge-filling via hold, the one-undo-step-per-call cost, and the stored-value readback. This is exactly the behavioral context a mutation tool needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then organized parameter-by-parameter; nearly every sentence carries load-bearing detail. It is dense and long, though a reader must parse several embedded clauses to extract defaults, which slightly hurts scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description compensates by noting the result includes a readback of Live's stored values. Combined with the Arrangement-clip limitation and undo cost, an agent has everything needed to call this destructive tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even with 100% schema coverage, the description adds real meaning: concrete address grammars for clip and parameter, points expressed in beats from clip start with values in the parameter's own units ('get_device shows min/max'), the point-level curve shaping the segment after it, and resolution semantics that differ per style. This exceeds the schema's terse field notes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Draw a clip automation envelope for a device or mixer parameter, inside Live') and adds scope qualifiers (tempo-locked, sample-accurate). It is immediately distinguishable from siblings like get_automation, clear_automation, and ramp_parameter.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear conditions for internal choices (style breakpoints vs steps, mode replace vs merge) and a hard exclusion ('Arrangement clips have no envelopes in Live's API'). However, it never names sibling alternatives such as ramp_parameter or clear_automation, so the agent must infer routing between tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.