Skip to main content
Glama

audio_capture

Records Studio One playback to a 32-bit float WAV via a macOS process tap, with no install and unchanged output; start from a time or bar when stopped, then pass the file to analysis.

Instructions

Record what the running Studio One plays, to a WAV file (32-bit float, the session's rate), through a macOS process tap: nothing is installed and the audio output is unchanged. If the transport is stopped, it plays from from_seconds / from_bars (or the playhead) for the capture, then stops and puts the playhead back; the metronome click and precount are off while it plays. Audible. Never records in Studio One. Pass the file to audio_analyze. Recordings go to the studio-one-mcp data folder unless out is given.

Input Schema

NameRequiredDescriptionDefault
outNoWAV path to write
secondsYesLength, up to 600
from_barsNoStart like "9.1.1.0"; alternative to from_seconds
from_secondsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full load and does most of it: nothing gets installed, existing output routing is untouched, transport/playhead are restored, metronome and precount are silenced, and the capture is audible. It does not mention macOS audio-capture permission prompts or failure modes (no audio playing, tap denial), which is the main behavioral gap for a system-level recorder.

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-loads the core action and mechanism, then layers conditional behavior; nearly every clause carries information. Some sentences are long and semicolon-chained, but there is no 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?

For a capture tool with no annotations and no output schema, the description covers side effects, defaults, and cleanup behavior well. It never states what is returned (the written path, duration, or a confirmation), which an agent needs since no output schema exists.

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 75%, and the description adds real meaning on top: 'out' defaults to the studio-one-mcp data folder, and from_seconds/from_bars act as alternatives used only when transport is stopped, falling back to the playhead. It does not restate the 600-second cap or clarify how from_seconds and from_bars interact if both are supplied.

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?

Names a specific verb and resource (record what Studio One plays to a WAV file) plus the mechanism (macOS process tap) and format (32-bit float, session rate). The line 'Never records in Studio One' explicitly separates it from the live_record / live_bounce siblings, so an agent can select it without opening the schema.

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 the downstream handoff ('Pass the file to audio_analyze') and the exact behavior when transport is stopped, which tells the agent it can call this at any time. It stops short of naming alternatives it competes with (e.g. live_bounce for an in-app offline render), so the exclusion is only implied.

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