Skip to main content
Glama

Create Chroma Reactive (experimental)

create_chroma_reactive

Creates a 12-channel chroma vector from an audio bus by mapping FFT bins to pitch classes. Outputs a Null CHOP for pitch-reactive visuals.

Instructions

[experimental] Builds a 12-channel pitch-class chroma vector (chroma_0..chroma_11) from an audio bus via FFT bin → pitch-class fold. Outputs a Null CHOP ready for bind_to_channel. Shares audioSource convention with create_transient_reactive / create_energy_reactive.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNochroma_reactive
parentNo/
fftSizeNoFFT size for the Audio Spectrum CHOP.
smoothingNoTemporal smoothing on chroma vector (0 = raw, 1 = frozen). Maps to Filter CHOP width.
audioSourceNoOptional path to an existing CHOP to use as audio input. If omitted, an internal Audio Device In CHOP is created (may prompt for macOS microphone permission).
Behavior3/5

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

Annotations already flag readOnlyHint=false, so the fact that the tool creates something is not new. The description adds useful behavioral detail: the output is a Null CHOP ready for bind_to_channel, and the audioSource convention is shared with certain siblings. It does not disclose side effects like behavior on repeated runs or conflict with existing nodes, but given the annotations cover safety, a 3 is appropriate.

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?

Three sentences, each earning its place: the experimental tag, the core build function and output type, and the relationship to sibling tools. Front-loaded with the main purpose, no wasted words.

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 5-parameter creation tool with no output schema, the description does enough: names the output (Null CHOP ready for bind_to_channel), mentions the FFT fold, and establishes the audioSource pattern. The experimental tag is noted. It could add more about prerequisites or error conditions, but given the schema covers audioSource's permission issue, it's fairly complete.

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 60%, so the description needs to compensate partially. The description mentions the audioSource convention and the FFT-to-pitch-class mechanism, which adds meaning to audioSource and fftSize. However, name and parent remain undocumented, and the description does not elaborate on fftSize choices or smoothing beyond the schema.

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 description clearly states the tool's function: it builds a 12-channel pitch-class chroma vector from an audio bus via FFT bin folding. It also distinguishes itself from related tools by naming create_transient_reactive and create_energy_reactive and noting the shared audioSource convention, making it unmistakable what this tool does.

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 provides clear context on when to use this tool: when you need a chroma vector for pitch-class analysis, ready for bind_to_channel. It also references sibling tools and a shared audioSource convention, implying alternatives exist. However, it does not explicitly state when NOT to use it or contrast use cases beyond the mention of the two siblings.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lucasmaher-hash/touch-designer-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server