Skip to main content
Glama

analyze_audio_clip

Read-onlyIdempotent

Measure a Session or Arrangement clip's source window and optional note, pitch, spectrum, waveform, transient, or resonance data for review without edits.

Instructions

Measure a Session or Arrangement clip's local source window, with optional approximate note events. A target note proposes absolute clip pitch accounting for current pitch settings for stable monophonic windows; review only, no edits or correction of changing notes. Loudness uses the source stream; optional analyses use the selected channel. Excludes rendered clip/track audio.

Input Schema

NameRequiredDescriptionDefault
clipIdYeslist_clips Session ID or supported list_arrangement_clips ID.
trackIdYesID from list_tracks.
channelIndexNoSource channel for optional analyses; zero-based, default 0.
includePitchNoMonophonic channel pitch in overlapping 256-ms frames; no correction.
startSecondsNoSource window start.
targetMidiNoteNoMIDI reference at A4=440 Hz; enables monophonic pitch analysis, not correction.
durationSecondsNoSource window duration, defaults to 10 seconds.
includeSpectrumNoOne channel spectral frame of 4096 samples.
includeWaveformNoUp to 1024 contiguous channel min/max/RMS buckets at 48 kHz.
includeTransientsNoChannel onset candidates at 10-ms resolution; not Live warp/slice markers.
includePitchEventsNoApproximate monophonic channel note events for review; no correction.
includeSpectrogramNoUp to 64 channel spectral frames at 48 kHz.
includeResonanceCandidatesNoNarrow spectral features persisting across 4+ frames; heuristic, not confirmed resonances or EQ advice.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 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."
    • removedOutput schema / additionalProperties
      Removed value: -true
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "properties": {
      +      "clipId": {
      +        "type": "string"
      +      },
      +      "measurement": {
      +        "properties": {
      +          "channels": {
      +            "type": "integer"
      +          },
      +          "durationSeconds": {
      +            "type": "number"
      +          },
      +          "integratedLufs": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "loudnessRangeLu": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "sampleRate": {
      +            "type": "number"
      +          },
      +          "scope": {
      +            "const": "source_audio"
      +          },
      +          "sourcePath": {
      +            "type": "string"
      +          },
      +          "truePeakDbtp": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "window": {
      +            "properties": {
      +              "durationSeconds": {
      +                "type": "number"
      +              },
      +              "startSeconds": {
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "startSeconds",
      +              "durationSeconds"
      +            ],
      +            "type": "object"
      +          }
      +        },
      +        "required": [
      +          "sourcePath",
      +          "scope",
      +          "durationSeconds",
      +          "sampleRate",
      +          "channels",
      +          "window",
      +          "integratedLufs",
      +          "truePeakDbtp",
      +          "loudnessRangeLu"
      +        ],
      +        "type": "object"
      +      },
      +      "stateVersion": {
      +        "minimum": 1,
      +        "type": "integer"
      +      },
      +      "trackId": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "stateVersion",
      +      "trackId",
      +      "clipId",
      +      "measurement"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "error": {
      +        "properties": {
      +          "message": {
      +            "type": "string"
      +          },
      +          "outcome": {
      +            "enum": [
      +              "unknown",
      +              "not_executed"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "message",
      +          "outcome"
      +        ],
      +        "type": "object"
      +      }
      +    },
      +    "required": [
      +      "error"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed12 schema fields changedv0.3.0
    • changedInput schema / properties / channelIndex / description
      Previous value: -"Zero-based source channel for waveform, spectrum, spectrogram and pitch; defaults to zero."New value: +"Source channel for optional analyses; zero-based, default 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 / includePitch / description
      Previous value: -"Estimate selected-channel monophonic pitch with overlapping 256-ms frames across the window; not pitch correction."New value: +"Monophonic channel pitch in overlapping 256-ms frames; no correction."
    • changedInput schema / properties / includePitchEvents / description
      Previous value: -"Group selected-channel monophonic pitch frames into approximate note events for review; no correction."New value: +"Approximate monophonic channel note events for review; no correction."
    • changedInput schema / properties / includeResonanceCandidates / description
      Previous value: -"Report heuristic persistent narrow spectral features across at least four sampled frames; not confirmed resonances or automatic EQ advice."New value: +"Narrow spectral features persisting across 4+ frames; heuristic, not confirmed resonances or EQ advice."
    • changedInput schema / properties / includeSpectrogram / description
      Previous value: -"Include up to 64 selected-channel spectral frames at 48 kHz."New value: +"Up to 64 channel spectral frames at 48 kHz."
    • changedInput schema / properties / includeSpectrum / description
      Previous value: -"Include one selected-channel 4096-sample spectral frame."New value: +"One channel spectral frame of 4096 samples."
    • changedInput schema / properties / includeTransients / description
      Previous value: -"Find selected-channel source-audio onset candidates at 10-ms resolution; not Live warp/slice markers."New value: +"Channel onset candidates at 10-ms resolution; not Live warp/slice markers."
    • changedInput schema / properties / includeWaveform / description
      Previous value: -"Include up to 1024 contiguous selected-channel min/max/RMS waveform buckets at 48 kHz."New value: +"Up to 1024 contiguous channel min/max/RMS buckets at 48 kHz."
    • changedInput schema / properties / targetMidiNote / description
      Previous value: -"Measure monophonic cents deviation against this explicit MIDI note at A4=440 Hz; enables pitch analysis, not pitch correction."New value: +"MIDI reference at A4=440 Hz; enables monophonic pitch analysis, not correction."
    • 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. Changed1 schema field changedv0.2.0
    • addedInput schema / properties / includePitchEvents
      Added value: +{
      +  "description": "Group selected-channel monophonic pitch frames into approximate note events for review; no correction.",
      +  "type": "boolean"
      +}
  4. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive behavior, so the bar for additional disclosure is lower. The description still adds meaningful context: loudness uses the source stream, optional analyses use the selected channel, results are approximate/review-only, and rendered clip/track audio is excluded.

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

Conciseness5/5

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

The description is front-loaded with the core action and then adds only relevant qualifiers. Three sentences carry purpose, limitations, and stream/channel behavior without obvious filler.

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

Completeness4/5

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

Given the tool's complexity, the rich input schema, annotations, and output schema, the description covers the key behavioral boundaries an agent needs. The main remaining gap is explicit alternative-selection guidance rather than return-value or schema detail.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3 even without description-level parameter detail. The description adds useful cross-parameter meaning, especially that a target note proposes absolute clip pitch accounting for current pitch settings and only applies to stable monophonic windows.

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

Purpose4/5

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

The description states a specific verb and resource: measure a Session or Arrangement clip's local source window, with optional note events. It clearly distinguishes this from rendered clip/track audio, but it does not explicitly differentiate itself from nearby analysis siblings such as analyze_audio_file or compare_audio_reference.

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

Usage Guidelines3/5

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

Usage is implied by constraints such as 'review only,' 'no edits or correction,' and 'Excludes rendered clip/track audio.' However, it does not explicitly say when to choose this tool over alternatives or name the sibling tools it should replace.

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