Skip to main content
Glama

mcp_opendaw_create_harmonic_arrangement

Creates five harmonic layers (pads, arp, bass, melody, counter-melody) from a single chord progression in one call, eliminating multiple separate calls.

Instructions

Create all five harmonic layers from one progression string in one call.

Replaces 5 separate calls (chord_pads + arpeggiated_progression + bass_from_progression + melody_from_progression + counter_melody_from_progression) with a single call. All layers take the same "Am-F-C-G" progression and are placed on separate tracks: pads (track 2), arp (track 3), bass (track 1), melody (track 3 or 4), counter-melody (track 4 or 5).

By default arp and melody share track 3 (melody track). Set melody_pattern to "" to skip melody, arp_pattern to "" to skip arp, bass_pattern to "" to skip bass, pad_octave to -1 to skip pads, counter_melody_pattern to "" to skip counter-melody (default).

progression: Hyphen-separated chords (same format as the quartet tools). pad_octave: Octave for chord pads (default 3). arp_pattern: Arp pattern: up/down/updown/random/bass, or "" to skip. arp_octave: Octave for arp (default 4). arp_step: Arp step duration in beats (default 0.25 = 16th). bass_pattern: Bass pattern: root/root_fifth/walking/pedal/octave/root_octave. bass_octave: Octave for bass (default 2). melody_pattern: Melody pattern: chord_tones/sustained/syncopated/triadic/stepwise. melody_octave: Octave for melody (default 5). counter_melody_pattern: Counter-melody pattern: contrary/oblique/parallel_third/ parallel_sixth/call_response, or "" to skip (default ""). counter_melody_octave: Octave for counter-melody (default 4). bars_per_chord: Bars per chord (default 4). velocity: Base velocity for all layers (0-1).

Example:

Full synthwave harmonic arrangement in one call

create_harmonic_arrangement("Am-F-C-G", arp_pattern="up", bass_pattern="root", melody_pattern="chord_tones")

Jazz: walking bass + sustained pads, skip arp

create_harmonic_arrangement("Dm7-G7-Cmaj7-Am7", arp_pattern="", bass_pattern="walking", melody_pattern="sustained", bars_per_chord=2)

House: pedal sub-bass + pads, skip melody

create_harmonic_arrangement("Fm-Fm-Db-Ab", arp_pattern="bass", bass_pattern="pedal", bass_octave=1, melody_pattern="", pad_octave=3)

Full quintet with counter-melody

create_harmonic_arrangement("Am-F-C-G", arp_pattern="up", bass_pattern="root", melody_pattern="chord_tones", counter_melody_pattern="contrary")

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
arp_stepNo
velocityNo
arp_octaveNo
pad_octaveNo
start_beatNo
unit_indexNo
arp_patternNoup
bass_octaveNo
progressionNoAm-F-C-G
bass_patternNoroot
melody_octaveNo
bars_per_chordNo
melody_patternNochord_tones
counter_melody_octaveNo
counter_melody_patternNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior3/5

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

With no annotations, the description carries full burden. It explains that layers are placed on separate tracks (e.g., pads on track 2, bass on track 1) and details defaults and skipping. However, it does not mention preconditions (e.g., whether tracks must exist) or side effects (e.g., overwriting existing data), leaving some behavioral ambiguity.

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: it opens with the core benefit, then lists layers, tracks, defaults, parameter definitions, and examples. While lengthy, it earns its length given the tool's complexity and 15 parameters. Minor redundancy could be trimmed.

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 the tool's complexity (15 parameters, 5 layers) and the presence of an output schema, the description covers what the tool does, how to use each parameter, and includes practical examples. However, it omits preconditions (e.g., project state) and postconditions (e.g., track creation), slightly reducing completeness.

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 fully explain parameters. It does so comprehensively: for each parameter, it explains purpose, accepted values (e.g., arp patterns: up/down/updown/random/bass, or '' to skip), and defaults. Examples reinforce usage.

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 creates five harmonic layers from one progression string in one call, with a specific verb ('create') and resource ('harmonic arrangement'). It explicitly distinguishes from siblings by noting it replaces five separate calls (chord_pads, arpeggiated_progression, etc.).

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 explicitly says it replaces 5 separate calls with a single call, implying when to use it. It provides examples for various use cases (synthwave, jazz, house, full quintet) and shows how to skip layers. However, it does not explicitly state when to prefer the individual tools, though the skip mechanism covers partial use.

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