Skip to main content
Glama

Create audio-reactive visual

create_audio_reactive

Build an audio-reactive visual in TouchDesigner by analyzing spectrum, level, and beat, then rendering the result as bars, particles, rings, or LED grid.

Instructions

Build an audio analysis chain (spectrum + level + optional beat) and a spectrum visual driven by it. Creates a new baseCOMP under parent_path holding the audio source, an Audio Spectrum CHOP, an Analyze level, an optional Beat CHOP, a CHOP-to-TOP texture with a Sensitivity gain, the GLSL visual, and a Null output. Each visual_style renders the spectrum its own way: glsl=horizontal bars, geometric=radial bars, particle=dot field, feedback=ring tunnel, instancing=LED grid. Returns a summary plus a JSON block with the container path, created node paths, the output path, exposed controls, any node errors, warnings, and an inline preview image. Use create_spectrum (Layer 1) or extract_audio_features when you only need the analysis CHOPs without a built-in visual.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
audio_sourceNoWhere audio comes from: 'microphone'/'device_in' create an Audio Device In CHOP, 'file' an Audio File In CHOP (set audio_file_path), 'existing_chop' reuses an audio CHOP you already have (set existing_chop_path).microphone
audio_file_pathNoPath to an audio file to play; used only when audio_source='file'.
existing_chop_pathNoPath of an existing audio CHOP to analyze; used only when audio_source='existing_chop'.
visual_styleYesHow the spectrum is rendered: glsl=horizontal bars, geometric=radial bars, particle=dot field, feedback=ring tunnel, instancing=LED grid.
frequency_bandsNoSpectrum resolution: sets the Audio Spectrum CHOP output length (TouchDesigner clamps it to 128–4096 bins). Higher = finer spectrum.
beat_detectionNoWhen true (default), add a Beat CHOP driven by the audio source for tempo/beat signals.
expose_controlsNoWhen true (default), expose a live 'Sensitivity' knob controlling how strongly the audio drives the visual.
parent_pathNoParent network where the audio-reactive container is created (default '/project1')./project1
transient_gateNoWhen true, add a transient/onset channel to a new modulation Null CHOP (`mod1`) for binding to parameters.
transient_thresholdNoTransient threshold (0–1); used only when transient_gate=true.
transient_hold_msNoTransient hold time in ms before decay; used only when transient_gate=true.
sidechain_duckNoWhen true, add an inverted duck-envelope channel to the modulation Null CHOP (`mod1`).
duck_depthNoHow deeply the duck pulls toward 0 at peak level (0–1).
duck_release_msNoRelease time of the duck envelope in ms.
Behavior4/5

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

Annotations show readOnly=false and destructive=false. The description adds detail on created nodes, return structure (paths, errors, warnings, preview), and conditional parameters like transient_gate and sidechain_duck, going beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is comprehensive but verbose, listing many internal nodes. It front-loads the main purpose but could be trimmed for conciseness.

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?

Given 14 parameters, complete schema, and no output schema, the description covers return format, node creation, and style options. It omits error handling details but is largely 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 100% with descriptions for each parameter. The description adds minor value like clamping behavior for frequency_bands and style examples, but mostly aligns with schema info.

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 builds an audio analysis chain and a spectrum visual, naming specific nodes. It explicitly contrasts with siblings like create_spectrum and extract_audio_features, which only produce analysis CHOPs.

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 tells when to use alternatives (create_spectrum, extract_audio_features) for analysis-only needs, implying this tool is for full visuals. It lacks an explicit 'Use this when you want a ready-made visual' statement.

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/Pantani/tdmcp'

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