Skip to main content
Glama

mcp_opendaw_apply_velocity_pattern

Apply a repeating velocity pattern to existing MIDI notes to create groove-based accents and dynamics. Use multipliers for patterns like strong-weak-medium-weak or syncopated rhythms.

Instructions

Apply a cyclic velocity pattern to existing notes in a region.

The producer's accent pattern tool. Instead of a linear ramp (crescendo), this applies a repeating velocity pattern across notes — the foundation of groove. Examples: strong-weak-medium-weak (backbeat emphasis), staggered accents for syncopation, or dynamic intensity layers.

unit_index: AU index. track_index: Track index. pattern: JSON array of velocity multipliers 0.0-1.0. Cycled across notes in order of position. Example: [1.0, 0.5, 0.7, 0.5] = strong-weak-medium-weak. region_index: Region index (-1 = first region). mode: "cycle" (repeat pattern from start, default) or "stretch" (distribute pattern evenly across all notes — good for 2-note patterns on 16 notes). base_velocity: Base velocity 0-1 that multipliers are applied to (default 0.8). Final velocity = base_velocity * pattern[i % len].

Returns notes modified, pattern applied, and velocity preview.

Examples: apply_velocity_pattern(unit_index=0, track_index=0, pattern="[1.0, 0.5, 0.7, 0.5]") -> 4-note accent cycle: strong-weak-medium-weak on every group of 4 notes apply_velocity_pattern(unit_index=0, track_index=0, pattern="[1.0, 0.3]", base_velocity=0.9) -> Alternating strong/weak at 0.9 and 0.27 apply_velocity_pattern(unit_index=1, track_index=0, pattern="[0.8, 0.4, 0.6, 0.4, 0.9, 0.4, 0.7, 0.4]", mode="stretch") -> 8-note pattern stretched across all notes in region

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNocycle
patternYes
unit_indexYes
track_indexYes
region_indexNo
base_velocityNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the exact formula for final velocity, explains cycle vs stretch modes, and states the return payload (notes modified, pattern applied, velocity preview). It doesn't mention irreversibility, but the behavior is well-specified.

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-organized with a clear opening, parameter list, formula, and examples. It's somewhat long but every sentence carries meaningful information; the examples add practical clarity without being 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?

For a 6-parameter tool with no annotations, the description is remarkably thorough: it covers all parameters, modes, the underlying formula, return values, and practical examples. It also situates the tool against alternatives, making it easy for an agent to decide when to invoke it.

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 descriptions are 0% covered, so the description must and does explain every parameter: unit_index, track_index, pattern (with JSON example), region_index, mode (with definitions), and base_velocity (with default and formula). It even provides multiple examples showing parameter combinations.

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 uses a specific verb and resource: 'Apply a cyclic velocity pattern to existing notes in a region.' It clearly distinguishes from linear ramps/crescendos and positions itself as the accent/groove tool, differentiating it from siblings like apply_velocity_curve or apply_velocity_lfo.

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 contrasts with linear ramps ('Instead of a linear ramp (crescendo)...') and provides concrete use cases (backbeat emphasis, syncopation, dynamic layers). It implies when to use this tool but doesn't explicitly name alternative tools or exclusions beyond the linear ramp contrast.

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