Skip to main content
Glama

set_clip_timing

Destructive

Edits Ableton Live clip timing and playback settings, including loop bounds, meter, launch mode, legato, mute, groove, and editor grid.

Instructions

Loop, meter, launch, Legato, mute, groove and grid edits. Loops bind native identity/material; partial readback, no rollback.

Input Schema

NameRequiredDescriptionDefault
loopNoEnable looping and set bounds: beats for MIDI/warped audio; seconds for unwarped.
muteNoGuarded Clip Activator mute; updated bridge.
clipIdYeslist_clips Session ID or supported list_arrangement_clips ID.
dryRunNoFalse executes with token and hash.
trackIdYesID from list_tracks.
grooveIdNoID assigns. Null removes in macOS Clip View: saved Set, unique clip name, sole edit. Selects clip; updated bridge.
planHashNoPlan hash.
editorGridNoNative clip-editor quantization and triplet display.
launchModeNoSession launch choice.
launchLegatoNoSession Legato launch.
timeSignatureNoNative numerator and denominator.
confirmationTokenNoSingle-use plan token.
launchQuantizationNoLaunch quantization value or name.
expectedStateVersionYesObserved stateVersion.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv0.3.1
    • changedInput schema / properties / clipId / description
      Previous value: -"Session ID from list_clips; Arrangement ID from list_arrangement_clips where supported."New value: +"list_clips Session ID or supported list_arrangement_clips ID."
    • removedInput schema / properties / editorGrid / properties / isTriplet / description
      Removed value: -"Display clip-editor triplets."
    • changedInput schema / properties / loop / description
      Previous value: -"Clip loop enablement and boundaries; beats for warped clips, seconds for unwarped audio."New value: +"Enable looping and set bounds: beats for MIDI/warped audio; seconds for unwarped."
    • removedInput schema / properties / loop / properties / enabled / description
      Removed value: -"Clip loop enabled."
    • removedInput schema / properties / loop / properties / endBeats / description
      Removed value: -"Beat end; MIDI/warped audio."
    • removedInput schema / properties / loop / properties / endSeconds / description
      Removed value: -"Second end; unwarped audio."
    • removedInput schema / properties / loop / properties / startBeats / description
      Removed value: -"Beat start; MIDI/warped audio."
    • removedInput schema / properties / loop / properties / startSeconds / description
      Removed value: -"Second start; unwarped audio."
    • changedInput schema / properties / timeSignature / description
      Previous value: -"Requested native numerator and denominator."New value: +"Native numerator and denominator."
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "oneOf": [
      +      {
      +        "properties": {
      +          "confirmation": {
      +            "properties": {
      +              "expiresAt": {
      +                "type": "number"
      +              },
      +              "planHash": {
      +                "pattern": "^[a-f0-9]{64}$",
      +                "type": "string"
      +              },
      +              "token": {
      +                "minLength": 1,
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "token",
      +              "planHash",
      +              "expiresAt"
      +            ],
      +            "type": "object"
      +          },
      +          "dryRun": {
      +            "const": true
      +          },
      +          "plan": {
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "dryRun",
      +          "plan",
      +          "confirmation"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "properties": {
      +          "dryRun": {
      +            "const": false
      +          },
      +          "operationOutcome": {
      +            "properties": {
      +              "evidence": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "reason": {
      +                "type": "string"
      +              },
      +              "schemaVersion": {
      +                "const": 1
      +              },
      +              "status": {
      +                "enum": [
      +                  "applied",
      +                  "outcome_unknown",
      +                  "postconditions_failed",
      +                  "pending_postconditions",
      +                  "pending_user_action"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "schemaVersion",
      +              "status",
      +              "reason",
      +              "evidence"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "dryRun",
      +          "operationOutcome"
      +        ],
      +        "type": "object"
      +      }
      +    ],
      +    "properties": {
      +      "dryRun": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "dryRun"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "error": {
      +        "properties": {
      +          "message": {
      +            "type": "string"
      +          },
      +          "outcome": {
      +            "enum": [
      +              "unknown",
      +              "not_executed"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "message",
      +          "outcome"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed24 schema fields changedv0.3.0
    • changedInput schema / properties / clipId / description
      Previous value: -"Stable clip ID: track-N:clip-M from list_clips, or track-N:arrangement-clip-M from list_arrangement_clips for tools that support Arrangement clips."New value: +"Session ID from list_clips; Arrangement ID from list_arrangement_clips where supported."
    • changedInput schema / properties / confirmationToken / description
      Previous value: -"Short-lived, single-use token returned by the matching dry run."New value: +"Single-use plan token."
    • changedInput schema / properties / dryRun / description
      Previous value: -"Omit or true to return a plan; false requires a valid confirmationToken."New value: +"False executes with token and hash."
    • addedInput schema / properties / editorGrid / description
      Added value: +"Native clip-editor quantization and triplet display."
    • changedInput schema / properties / editorGrid / properties / isTriplet / description
      Previous value: -"Display the clip editor on a triplet grid."New value: +"Display clip-editor triplets."
    • changedInput schema / properties / editorGrid / properties / quantization / description
      Previous value: -"Exact native editor-grid choice returned by get_clip_timing."New value: +"Editor-grid choice from get_clip_timing."
    • removedInput schema / properties / editorGrid / required
      Removed value: -[]
    • changedInput schema / properties / expectedStateVersion / description
      Previous value: -"Exact stateVersion observed immediately before planning."New value: +"Observed stateVersion."
    • changedInput schema / properties / grooveId / description
      Previous value: -"Groove ID returned by get_clip_timing."New value: +"ID assigns. Null removes in macOS Clip View: saved Set, unique clip name, sole edit. Selects clip; updated bridge."
    • changedInput schema / properties / grooveId / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
    • changedInput schema / properties / launchLegato / description
      Previous value: -"Enable Legato launch for a Session clip."New value: +"Session Legato launch."
    • addedInput schema / properties / launchMode
      Added value: +{
      +  "description": "Session launch choice.",
      +  "oneOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "string"
      +    }
      +  ]
      +}
    • addedInput schema / properties / loop / description
      Added value: +"Clip loop enablement and boundaries; beats for warped clips, seconds for unwarped audio."
    • changedInput schema / properties / loop / properties / endBeats / description
      Previous value: -"MIDI or warped audio loop end in beats."New value: +"Beat end; MIDI/warped audio."
    • changedInput schema / properties / loop / properties / endSeconds / description
      Previous value: -"Unwarped audio loop end in seconds."New value: +"Second end; unwarped audio."
    • changedInput schema / properties / loop / properties / startBeats / description
      Previous value: -"MIDI or warped audio loop start in beats."New value: +"Beat start; MIDI/warped audio."
    • changedInput schema / properties / loop / properties / startSeconds / description
      Previous value: -"Unwarped audio loop start in seconds."New value: +"Second start; unwarped audio."
    • removedInput schema / properties / loop / required
      Removed value: -[]
    • changedInput schema / properties / mute / description
      Previous value: -"Mute this clip when supported by Live's native clip API."New value: +"Guarded Clip Activator mute; updated bridge."
    • changedInput schema / properties / planHash / description
      Previous value: -"Hash returned by the matching dry run."New value: +"Plan hash."
    • addedInput schema / properties / timeSignature / description
      Added value: +"Requested native numerator and denominator."
    • removedInput schema / properties / timeSignature / required
      Removed value: -[]
    • changedInput schema / properties / trackId / description
      Previous value: -"Stable track ID returned by list_tracks."New value: +"ID from list_tracks."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "type": "object"
      +}
  3. Changed3 schema fields changedv0.2.0
    • addedInput schema / properties / editorGrid
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "isTriplet": {
      +      "description": "Display the clip editor on a triplet grid.",
      +      "type": "boolean"
      +    },
      +    "quantization": {
      +      "description": "Exact native editor-grid choice returned by get_clip_timing.",
      +      "oneOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "string"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [],
      +  "type": "object"
      +}
    • addedInput schema / properties / launchLegato
      Added value: +{
      +  "description": "Enable Legato launch for a Session clip.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / mute
      Added value: +{
      +  "description": "Mute this clip when supported by Live's native clip API.",
      +  "type": "boolean"
      +}
  4. First observedv0.1.0

TDQS

C2.4/5.0
Behavior3/5

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

Annotations already declare destructive=true, idempotent=false, and openWorld=false, so the safety baseline is covered. The description adds 'partial readback, no rollback' and 'Loops bind native identity/material,' which is useful mutation context, but it is cryptic and omits the dryRun/planHash/confirmationToken workflow entirely.

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

Conciseness3/5

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

Two short sentences, but the second is dense jargon ('Loops bind native identity/material') whose meaning is not clarified, and the first is a bare list. It is concise but not structured in a way an agent can easily act on.

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

Completeness2/5

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

For a 14-parameter, destructive, non-idempotent mutation with a preview/confirm token flow, the description omits the critical workflow: dryRun, planHash, confirmationToken, and expectedStateVersion concurrency semantics. The output schema covers return values, but the call protocol is not explained.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains each of the 14 parameters, including the nested loop, editorGrid, and timeSignature objects. The description's category list (loop, meter, launch, legato, mute, groove, grid) loosely maps to parameter groups but adds no meaning beyond the schema.

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

Purpose2/5

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

The description is a noun-phrase list of editable facets ('Loop, meter, launch, Legato, mute, groove and grid edits') rather than a verb+resource statement; it never says it sets timing properties on a track/clip. The sibling get_clip_timing is the obvious counterpart, but the description never explicitly distinguishes the setter from the getter.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, no prerequisites such as obtaining expectedStateVersion or running a dry run first. The only directive is the caveat 'no rollback,' which is a warning rather than routing guidance.

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

Deploy Server

Other Tools