Skip to main content
Glama

hydra_audio

Tune audio reactivity for Hydra: enable the microphone, adjust FFT bins, smoothing, cutoff, and scale, or display band meters.

Instructions

Check and tune audio reactivity (Hydra's a object), or switch it on.

With no arguments: the current a.fft band values, volume and microphone permission — a quick way to see whether sound is getting in at all.

enable=true Hydra only listens if it was started with the microphone, so this reloads the deck page with ?audio=1. The piece is replayed afterwards; the browser asks for the mic, and a.fft reads zeros until someone clicks Allow. Video out has to be started again after the reload. bins number of frequency bands in a.fft (1–64; default 4). smooth 0–1: how slowly band values fall (higher = smoother). cutoff noise floor subtracted before scaling. scale how much raw loudness it takes to reach 1. show true draws the band meters on the canvas while you tune; false hides them.

Use it in code inside a function, or it is read once and frozen: shape(4, () => 0.2 + a.fft[0] * 0.5).out(o2)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
binsNo
showNo
scaleNo
cutoffNo
enableNo
smoothNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the sparse annotations (readOnlyHint=false, destructiveHint=false), the description discloses significant behavioral traits: enable=true reloads the deck page with ?audio=1, the piece is replayed, a.fft reads zeros until the user clicks Allow, and video out must be restarted after reload. It also exposes the non-obvious read-once freezing of parameter values outside a function. This is exactly the kind of side-effect context annotations cannot express.

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 structure is exemplary: a one-line purpose up front, the no-argument behavior, a compact parameter list where each line is name + semantic, then a single-sentence caveat with a one-line code example. Despite covering six parameters and a complex reload flow, there is no filler — every sentence earns its place.

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?

The definition covers the no-argument diagnostics behavior, all parameter semantics, the full side-effect chain of enable (reload, replay, permission prompt, video-out restart), and the in-function placement requirement — sufficient for correct invocation of a moderately complex tool. Minor gaps remain around failure modes (e.g., behavior when mic permission is permanently denied) and how state propagates to siblings like hydra_video_out, though the existing output schema covers return values.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden — and it succeeds. All six parameters (bins, smooth, cutoff, scale, show, enable) are individually defined with ranges, defaults, and behavioral effects: e.g., 'bins number of frequency bands in a.fft (1–64; default 4)' and 'smooth 0–1: how slowly band values fall (higher = smoother).' This fully compensates for the empty schema descriptions.

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?

The opening line, 'Check and tune audio reactivity (Hydra's `a` object), or switch it on,' names a specific scope of actions (check, tune, switch on) on a specific resource (Hydra's `a` audio object). This clearly separates it from siblings like hydra_source (video sources) and hydra_transport (time controls), so an agent can discriminate the tool without opening other definitions.

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?

The description gives substantial usage context: the no-argument call is framed as a diagnostics path, enable=true is explained as a reload that replays the piece and re-asks for mic permission, and the critical placement caveat ('use it in code inside a function, or it is read once and frozen') tells an agent when parameter changes take effect. However, it never explicitly names sibling alternatives or states when NOT to use this tool, stopping short of a full 5.

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