Skip to main content
Glama

mcp_opendaw_create_colotomic

Creates interlocking gong layers (colotomic structure) marking cyclic time for gamelan music.

Instructions

Create a colotomic structure — interlocking gong layers marking cyclic time.

Gamelan music uses colotomic instruments (gongs of different sizes) to mark the cyclic structure of a piece. Each gong level has its own periodicity, creating an interlocking temporal grid. The largest gong (gong ageng) marks the end of a full cycle, while smaller gongs subdivide it into sections. The melodic instruments (saron, bonang) fill in between the gong strikes.

Unlike polyrhythm (simultaneous conflicting meters) or additive rhythm (unequal groupings), colotomic structure is hierarchical: each layer subdivides the cycle at a different level, creating a nested temporal hierarchy. This is the foundation of Indonesian gamelan, Javanese klenengan, and Balinese ritual music.

Structures: slendro — 8-beat gong cycle (gongan): gong at beat 8, kenong at 4, kempul at 2+6, kethuk at every odd beat. Slendro scale. pelog — 16-beat gong cycle: gong at 16, kenong at 8+12, kempul at 4+12, kethuk at every 2 beats. Pelog-inspired. lancaran — 8-beat with doubled kethuk (faster surface rhythm) ketawang — 16-beat with half-speed gong (longer cycle feel)

Tempo density: sparse — gong layers only, no melodic fill medium — gong layers + basic saron (elaboration) dense — gong layers + saron + bonang (full interlock)

Args: root: Root note name (C, C#, D, ...). scale: Scale name (pentatonic_minor, pentatonic_major, major, minor). Default pentatonic_minor for slendro-like feel. cycles: Number of gongan cycles (1-8). octave: Starting MIDI octave (2-5). structure: Structure type (slendro, pelog, lancaran, ketawang). tempo_density: Density level (sparse, medium, dense). velocity: Base velocity 0-1. unit_index: AU index. track_index: Note track index. start_beat: Starting beat position.

Returns notes created, gong layer breakdown, and cycle info.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rootNoC
scaleNopentatonic_minor
cyclesNo
octaveNo
velocityNo
structureNoslendro
start_beatNo
unit_indexNo
track_indexNo
tempo_densityNomedium

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior3/5

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

No annotations are provided, so the description bears the full burden of behavioral disclosure. It mentions the return value ('notes created, gong layer breakdown, and cycle info') but does not explain side effects such as whether existing notes are modified, which track is affected, or what happens on parameter failure. The description provides useful context but omits important behavioral details.

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 well-structured, starting with a clear purpose, then background, detailed structure definitions, and a parameter list. Each section earns its place, though it is somewhat lengthy. It is front-loaded with the most important information (purpose and differentiation) and remains focused.

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?

The tool has 10 parameters and no output schema. The description covers return values vaguely ('notes created, gong layer breakdown') but does not specify the exact format or how the tool integrates with the DAW project (e.g., whether it adds to an existing track or creates a new one). It also assumes familiarity with gamelan terminology, which may not be sufficient for all agents.

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

Parameters4/5

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

Schema description coverage is 0%, but the description includes an 'Args' list that adds meaning beyond the schema titles and defaults. For example, it specifies that 'cycles' ranges 1-8, 'octave' 2-5, and defines the allowed structures (slendro, pelog, lancaran, ketawang). This significantly compensates for the schema's lack of 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 description opens with 'Create a colotomic structure — interlocking gong layers marking cyclic time,' clearly stating the specific verb and resource. It distinguishes this tool from siblings like 'create_polyrhythm' by explaining how colotomic structures are hierarchical and nested, unlike polyrhythm or additive rhythm.

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 contrasts colotomic structure with polyrhythm and additive rhythm, helping the agent choose when to use this tool over conceptual alternatives. However, it does not explicitly name sibling tools like 'create_polyrhythm' or 'create_additive_rhythm' as alternatives, leaving the guidance somewhat implicit.

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/AMEOBIUS-team/opendaw-mcp'

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