Skip to main content
Glama

mcp_opendaw_add_suspension

Add suspension-resolutions to existing notes by preparing a note a step above or below the target, holding it over a strong beat, then resolving. Create tension-release in music compositions.

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?

The description details the algorithmic behavior: it creates a preparatory note, holds it into a strong beat, and resolves to the target note. It explains the structure (preparation -> suspension -> resolution) and how parameters affect the outcome. Since no annotations are provided, the description carries the full burden of disclosure, and it does so well, though it could mention whether the original notes are modified or new notes are added.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is notably verbose, including a multi-paragraph music theory lesson about suspensions (preparation, suspension, resolution). While informative, this could be shortened for an AI agent that primarily needs functional details. The first sentence is a clear purpose statement, but the length reduces conciseness.

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 complexity of the musical effect and the presence of an output schema, the description is fairly complete. It explains the algorithm, parameters, and musical context. It does not mention error conditions or return values, but the output schema likely covers that. It is sufficient for an AI agent to understand and invoke the tool correctly.

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?

Despite 0% schema description coverage, the description provides clear semantics for each of the 11 parameters in the docstring (e.g., 'unit_index: Audio unit index', 'suspension_offset: Semitone offset of suspension from target'). It explains defaults and typical values. However, some parameter descriptions could be more precise (e.g., root defaults to 'C' but the description only says 'Root note for scale'). Overall, it compensates well for the lack of schema 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 clearly states the verb 'Add suspension-resolutions to existing notes' and provides a detailed explanation of what a suspension is in music theory. It distinguishes itself from sibling tools by being specific about the suspension technique, making its purpose unambiguous.

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 when to use the tool: 'This tool finds notes on strong beats (downbeats) and creates a suspension before them.' It implies the context of adding expressive non-chord tones. However, it does not explicitly state when not to use it or mention alternative tools for similar effects (e.g., anticipation, neighbor tones), which would improve clarity.

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