Skip to main content
Glama

Analyze Drums

analyze_drums

Detect drum hits per bar across low, snare, and hat lanes, then output step strings for pattern_write. Use isolated drum sources for accurate lane results.

Instructions

Drum hits as step strings per bar in 3 lanes (low/snare/hat bands), max 16 bars. Paste into pattern_write. Best on an isolated drum source: 'track:' after render(stems=True), or 'ref:drums'. On a full mix ('render', 'ref') the lanes are band activity, so bass, pads and leads also register as hits.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
barsNo
sensNo
sourceNoref:drums
projectYes
steps_per_beatNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4/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 does disclose meaningful behavior: output granularity (3 band lanes, 16-bar cap), the false-positive risk on mixed sources where non-drum elements register as hits, and the downstream use (paste into pattern_write). It omits sensitivity/source-authorization details, but the false-positive warning is genuine behavioral insight.

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 output format, then workflow integration, then source guidance. Four sentences with no filler, though the 'Paste into pattern_write' and source hints could be slightly tighter.

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

Completeness3/5

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

Output schema exists so return format is covered, and the source/mix caveat is strong. However, with five params at 0% schema coverage and no annotations, the total absence of any explanation for `sens` and `steps_per_beat` leaves the definition incomplete for correct invocation.

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 coverage is 0%, so the description must compensate. It clarifies the `source` parameter ('track:<drum track>', 'ref:drums', 'render', 'ref') and the 16-bar cap tied to `bars`, but leaves `sens` and `steps_per_beat` entirely undocumented in both schema and description.

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+resource and precise output: 'Drum hits as step strings per bar in 3 lanes (low/snare/hat bands), max 16 bars.' This clearly separates it from sibling analyzers like analyze_grid, analyze_structure, or analyze_bars without needing 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 concrete when-to-use conditions ('Best on an isolated drum source: track:<drum track> after render(stems=True), or ref:drums') and a when-not/degraded case ('On a full mix the lanes are band activity, so bass, pads and leads also register as hits'). It doesn't name an alternative tool, but the source-selection guidance is explicit enough to steer invocation.

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