Skip to main content
Glama

Audio fingerprint → visual

audio_fingerprint_to_visual

Sample audio in TouchDesigner, compute a 4-feature fingerprint, and map it to a matching visual generator with tuned parameters.

Instructions

Sample a few seconds of audio inside TouchDesigner, compute a 4-feature fingerprint (tempo, spectral centroid, onset density, dynamic range), run a deterministic heuristic mapping to pick a matching Layer 1 generator (create_glitch / create_audio_reactive / create_kaleidoscope / create_feedback_tunnel / create_feedback_network / create_gpu_particle_field), and dispatch it with parameters tuned to the fingerprint. Default audio_source='synthetic' to avoid macOS mic-permission hangs. dry_run=true returns the chosen mapping without building. apply_top_op composites the result over an existing TOP.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dry_runNoWhen true: sample the audio, classify, and return the chosen mapping + params without instantiating the generator.
sample_secNoSample window length in seconds the fingerprint is averaged over.
parent_pathNoParent COMP for the transient sampler and the dispatched generator./project1
apply_top_opNoOptional path of a TOP to composite the chosen generator's output over (via a compositeTOP('over') built in apply_top_op's parent).
audio_sourceNoAudio source for fingerprinting. Defaults to 'synthetic' (a gated tone at the global tempo) because 'device' can hang TD on a macOS mic-permission modal — same rationale as detect_tempo.synthetic
force_familyNoOverride the heuristic and force a family; params still tuned from the fingerprint.auto
audio_file_pathNoAudio file path. Required when audio_source='file'.
expose_controlsNoForwarded to the dispatched generator's expose_controls flag.
existing_chop_pathNoPath of an existing audio CHOP. Required when audio_source='existing_chop'. Pulled in via Select CHOP (cross-container wires fail).
Behavior5/5

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

The description reveals important behavioral traits beyond annotations: it samples audio (potential latency), uses a deterministic heuristic, can hang on macOS if 'device' is used (mitigated by default), and supports dry_run to avoid building. It also explains the composite behavior of apply_top_op. These details exceed the sparse readOnlyHint/destructiveHint annotations.

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?

The description is three sentences and effectively packs the entire workflow, key defaults, and important caveats. The first sentence is long but densely informative; while it could be split for readability, it contains no fluff. It earns a 4 for appropriate brevity despite the complexity.

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 9-parameter orchestrator with no output schema, the description gives a complete high-level story: sample audio → analyze → map → dispatch. It also clarifies the most critical behaviors (dry_run, apply_top_op, default audio_source). Schema covers the remaining parameter details, so the combination is sufficient.

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 100%, so baseline is 3. The tool description adds minimal parameter semantics beyond what's already in the schema; it mentions audio_source default, dry_run, and apply_top_op, but the schema already documents all parameters with similar or greater detail. No significant new meaning is added.

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 uses specific verbs and a clear workflow: samples audio, computes a 4-feature fingerprint, runs deterministic heuristic mapping, and dispatches a generator. It explicitly lists the candidate generators, distinguishing it from siblings like create_glitch or create_audio_reactive by being an automatic dispatcher.

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 implies its primary use case: automatically select a generator based on audio fingerprint. It gives practical context (default synthetic source to avoid mic-permission hangs, dry_run for testing, apply_top_op for compositing) but doesn't explicitly state exclusions vs alternatives. The list of possible generators hints at when it's appropriate, though it stops short of saying 'use this instead of manual selection.'

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