Skip to main content
Glama
newsbubbles

ismail: agent DAW (MCP server)

Stage Take Warp

stage_take_warp

Aligns a take's hit accents to the nearest beats by generating a time-warped loop at a specified BPM and bar count, then returns where the hits landed in grid units.

Instructions

Put a take's hits on the beat: a new silent take of exactly bars bars at bpm (a loop), its time warped piecewise-linearly so each hit (an accent: a hand or the head stopping or turning hard, at least 0.6 beat apart) lands on the nearest beat (sub=0.5: half beat), no segment under 0.75x or over 1.33x speed, resampled at 30 Hz with the frames between samples mixed. Cut the window first (stage_take_loop) so the take is about bars long (refused when more than 2x off). Hits and knots go in its meta.beat_warp. To keep it on the song as it plays: stage_actor_play(take=, loop=True, at_music=). Returns its id and where the hits landed in grid units.

Input Schema

NameRequiredDescriptionDefault
bpmYes
subNo
barsNo
nameYes
takeYes
sceneYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.4/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 burden and mostly does: it discloses a non-destructive outcome (a NEW silent take), the speed clamp (0.75x–1.33x), resampling at 30 Hz with frame mixing, the minimum hit spacing (0.6 beat), and a refusal condition (>2x off). Gaps: it does not say whether the source take's own meta.beat_warp is overwritten or left intact, nor how hits are detected if none were previously marked.

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 transformation and its output, and nearly every clause carries a real constraint (tolerances, clamps, the follow-up play call) rather than filler. It is tightly packed into one long run-on sentence, which makes the operating constraints harder to scan than they need to be.

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?

For a high-complexity audio-warping operation, the description covers the transformation, its numeric constraints, the prerequisite, the persistence location (meta.beat_warp), and behaviorally correct chaining into stage_actor_play. Return values are covered by the existing output schema plus the 'returns its id and where the hits landed' note.

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 0%, so the description must carry all six parameters. It explains bpm, bars (exact length of the loop), and sub ('sub=0.5: half beat'), but scene and name — two of the four required parameters — get no explanation at all, and the take parameter's accepted form is only implied. Partial compensation, not full.

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 ('Put a take's hits on the beat') followed by the exact artifact produced: 'a new silent take of exactly bars bars at bpm (a loop)'. An agent can distinguish this from stage_take_loop or stage_take_sync without opening a schema, because the description names the loop-cutting sibling as a prerequisite step rather than an alternative.

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

Usage Guidelines5/5

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

Explicit sequencing: 'Cut the window first (stage_take_loop) so the take is about bars long (refused when more than 2x off)' gives both the prerequisite tool and the failure condition. It also names the follow-up routing ('To keep it on the song as it plays: stage_actor_play(take=, loop=True, at_music=...)'), so when-to-use and what-to-do-next are both covered.

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