Skip to main content
Glama

mcp_opendaw_create_melodic_polyrhythm

Create melodic polyrhythms by spacing notes evenly across beats, then add scale-based pitch directions for cross-rhythmic patterns in jazz, prog-rock, and African cross-pulse styles.

Instructions

Create a polyrhythm — N notes evenly spaced across M beats.

A polyrhythm places numerator notes evenly across denominator beats, creating cross-rhythms against the main pulse. 3:4 = triplet feel, 5:4 = quintuplet, 7:4 = septuplet, 3:2 = half-note triplets.

The notes ascend or descend through the specified scale, creating a melodic polyrhythm rather than just rhythmic hits. This is the foundation of jazz cross-rhythm, prog-rock metric modulation, African cross-pulse, and contemporary classical writing.

Args: unit_index: Audio unit index track_index: Note track index numerator: Number of notes to fit across denominator beats (2-9, default 3). This is the "against" number. denominator: Number of beats to span (2-8, default 4). This is the "base" pulse. bars: Number of times to repeat the polyrhythm cycle (1-8, default 1). pitches: Comma-separated MIDI pitches for custom note selection. If provided, overrides scale-direction generation. Notes cycle through this list. velocity: Base velocity (0-1, default 0.8) velocity_pattern: Velocity across the polyrhythm — "constant": same velocity "accent": accent first note of each cycle "fade": linear fade across all notes "wave": sine wave velocity pattern start_beat: Position in beats where polyrhythm starts (default 0.0) direction: Pitch direction when using scale generation — "up": ascending through scale "down": descending through scale "alternate": up then down per cycle scale: Scale for pitch generation ("major", "minor", "dorian", "phrygian", "lydian", "mixolydian", "locrian", "harmonic_minor", "melodic_minor", "pentatonic", "blues", "chromatic") root: Root note for scale (C, C#, D, ... B)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
barsNo
rootNoC
scaleNomajor
pitchesNo60
velocityNo
directionNoup
numeratorNo
start_beatNo
unit_indexYes
denominatorNo
track_indexYes
velocity_patternNoconstant

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains key generative behaviors: notes ascend/descend through a scale, the pitches parameter overrides scale generation, and velocity patterns (constant, accent, fade, wave) alter output. However, it does not disclose whether the operation overwrites existing notes on the target track or is purely additive, a notable side-effect gap for a creation tool.

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 moderately long but well-organized: definition, musical rationale, then a clear Args list. Each sentence adds value—examples like '3:4 = triplet feel' aid understanding, and the Args block is systematic. It could be slightly tighter by trimming the trailing musical-context sentence, but it remains focused and non-redundant.

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?

Given the tool's complexity (12 parameters, many with domain-specific meaning) and a 0% schema coverage, the description fully covers every parameter, provides defaults and ranges, and supplies genre/usage context. An output schema exists, so not describing return values is acceptable. The agent can confidently select and invoke this tool based on this description alone.

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 must compensate entirely—and it does. The Args section defines all 12 parameters, including ranges, defaults, and meaningful semantics: numerator as 'against' number, denominator as 'base' pulse, pitches as an override, and full enumerations for velocity_pattern and direction. This far exceeds minimal compensation and gives the agent everything needed to invoke the tool.

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 a specific verb+resource: 'Create a polyrhythm — N notes evenly spaced across M beats.' It further clarifies that this is a 'melodic polyrhythm rather than just rhythmic hits,' directly distinguishing it from sibling tools like create_polyrhythm or create_hemiola. The musical context and example ratios reinforce a clear, unique purpose.

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 strong contextual guidance—explaining 3:4 as triplet feel, 5:4 as quintuplet, and mentioning jazz cross-rhythm, prog-rock metric modulation, African cross-pulse, and contemporary classical writing. However, it does not explicitly name alternatives or state when NOT to use this tool (e.g., 'for rhythmic-only polyrhythms use create_polyrhythm'), so exclusions are absent.

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

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