Skip to main content
Glama

mcp_opendaw_scale_velocity

Uniformly scale MIDI note velocities in a region with modes like multiply, add, set, normalize, or compress to adjust dynamics and control loudness.

Instructions

Scale the velocity of all notes in a region — MIDI dynamics control.

Unlike create_crescendo (which creates a gradient from start to end), this uniformly scales all existing velocities. Think of it as gain for MIDI dynamics — boost, attenuate, normalize, or compress the velocity range of an entire track or region.

mode: How to scale velocities:

  • "multiply" — multiply each velocity by value (1.0 = no change, 0.8 = 20% quieter, 1.2 = 20% louder). Clamped to 0-1.

  • "add" — add value to each velocity (0.1 = louder, -0.1 = quieter). Clamped to 0-1.

  • "set" — set all velocities to value (0.8 = uniform velocity).

  • "normalize" — scale all velocities so the maximum equals value (0.95 = normalize to 95% max). Preserves relative dynamics.

  • "compress" — compress velocity range around midpoint. value = ratio (0.5 = halve the dynamic range, 1.0 = no change). Pulls extremes toward center — makes quiet notes louder, loud notes quieter.

value: The scaling parameter (meaning depends on mode). region_index: Region index (-1 = first region). min_velocity / max_velocity: Clamp range (0-1). Use to limit extremes.

Returns count of notes modified, original velocity range, new range.

Example:

Make drums 20% quieter

scale_velocity(0, 0, mode="multiply", value=0.8)

Normalize melody to 95% max velocity

scale_velocity(0, 3, mode="normalize", value=0.95)

Compress velocity range — reduce dynamics

scale_velocity(0, 0, mode="compress", value=0.6)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNomultiply
valueNo
unit_indexYes
track_indexYes
max_velocityNo
min_velocityNo
region_indexNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

No annotations exist. The description details the behavior for each mode, clamping to 0-1, and states return values (count, original range, new range). Missing permission or undo implications, but overall transparent for a velocity scaling 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 well-structured with a summary, contrast, mode explanations, parameter list, returns, and examples. It is slightly long but efficient; every sentence adds value. Could be more concise but front-loads purpose effectively.

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 7 parameters and 5 modes, the description covers purpose, all mode semantics, parameter roles, return values, and examples. It lacks error conditions or edge cases, but for a velocity scaling tool it is comprehensive. Output schema exists but description adds value.

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. It thoroughly explains mode options (multiply, add, set, normalize, compress) with semantics, clarifies value depends on mode, describes region_index/ min/max_velocity clamp, and provides examples. This adds substantial meaning beyond the schema.

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 scales velocity of all notes in a region, using specific verb and resource. It explicitly distinguishes from the sibling tool create_crescendo, making the unique purpose unmistakable.

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 contrasts with create_crescendo and explains the uniform scaling nature, but does not cover when to use alternatives like apply_velocity_curve or quantize_velocities. It provides mode explanations that guide usage, but lacks explicit when-not-to-use guidance.

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