Skip to main content
Glama

mcp_opendaw_add_suspension

Add suspension-resolutions to existing notes: insert a preparation note before the next strong beat, hold it into the beat, then resolve by step to the original note.

Instructions

Add suspension-resolutions to existing notes.

A suspension is a non-chord tone technique where a note from the previous chord is held over (suspended) into the next chord on a strong beat, creating dissonance, then resolves by step (usually downward) to a chord tone.

Structure: Preparation (held note) → Suspension (dissonance on strong beat) → Resolution (step down/up to chord tone).

This tool finds notes on strong beats (downbeats) and creates a suspension before them: a preparatory note a step above (or below) the target, held into the strong beat, then resolving to the target note.

This is one of the most expressive devices in Western music — Bach chorales, jazz ballads, film scores all rely on suspensions for emotional tension-release.

Args: unit_index: Audio unit index track_index: Note track index region_index: Region index (-1 = first region) scale: Scale for resolution step ("major", "minor", "dorian", "phrygian", "lydian", "mixolydian", "locrian", "harmonic_minor", "melodic_minor", "chromatic") root: Root note for scale resolution: Resolution direction — "down": resolve downward by step (classic 4-3, 9-8, 7-6 suspension) "up": resolve upward by step (rare, retardation) "both": alternate down/up per note suspension_offset: Semitone offset of suspension from target (1-7, default 2 = step above for down resolution). The suspension is placed this many semitones above (for "down" resolution) or below (for "up" resolution) the target note, then snaps to nearest scale tone. preparation_beats: Duration of the preparation note in beats (0.25-2.0, default 0.5 = eighth note before strong beat). suspension_velocity: Velocity of suspension note (0-1, default 0.75 — slightly accented, it is on a strong beat). resolution_velocity: Velocity of resolution note (0-1, default 0.65 — resolution is typically softer). cross_track: If >= 0, place suspensions on this track index instead of source track (preserves original melody).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rootNoC
scaleNomajor
resolutionNodown
unit_indexYes
cross_trackNo
track_indexYes
region_indexNo
preparation_beatsNo
suspension_offsetNo
resolution_velocityNo
suspension_velocityNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

No annotations are provided, but the description compensates with detailed behavior: it specifies that notes on strong beats are targeted, preparatory notes are placed a step above/below and snapped to scale tones, velocities are given with musical rationale, and cross_track behavior is explained. However, it does not explicitly state whether original notes are modified or preserved on the source track, which is a notable gap for a mutation 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 starts with a concise purpose sentence, then builds context with the suspension definition, structure, and algorithm. The Args section is logically ordered. The cultural flourish about Bach chorales and film scores adds context but is not strictly necessary, making it slightly less concise than ideal.

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?

For a complex tool with 11 parameters and no schema descriptions, the description provides thorough documentation of the algorithm, parameter effects, and musical intent. It does not mention error cases or prerequisites such as needing metrical information to find strong beats, but overall it is highly complete for an AI agent to invoke the tool correctly.

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?

The input schema provides zero descriptions, but the Arg list covers all 11 parameters with types, defaults, ranges (e.g., preparation_beats 0.25-2.0), scale list, and musical context (e.g., 'down' = classic 4-3, 9-8 suspension). This fully compensates for the schema's lack of detail.

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 opening line 'Add suspension-resolutions to existing notes' clearly states the action and resource. The subsequent explanation of the suspension structure (Preparation → Suspension → Resolution) and the algorithm makes it easy to distinguish from sibling ornament tools like add_passing_tones or create_appoggiatura.

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 explains that the tool operates on existing notes, targets strong beats, and creates suspensions, giving clear context for when to use it. However, it never explicitly mentions alternatives or states 'use this instead of X,' so it lacks explicit exclusions.

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