Skip to main content
Glama

mcp_opendaw_scale_velocity

Scale MIDI note velocities in a region using multiply, add, set, normalize, or compress modes to control dynamics.

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
Behavior5/5

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

With no annotations, the description takes full responsibility for behavioral disclosure. It explains all five scaling modes with clamping behavior, describes the return value (count, original and new velocity ranges), and provides three concrete examples with expected outcomes. This goes far beyond minimal disclosure.

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

Conciseness5/5

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

The description is lengthy but every sentence earns its place: definition, differentiation, parameter breakdown, return value, and examples. It's well-structured with clear hierarchy, making the complexity approachable without unnecessary fluff.

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?

Despite zero schema coverage and no annotations, the description covers every aspect needed to invoke the tool correctly: purpose, usage context, all parameters, mode-specific behavior, clamping, return value, and practical examples. It is a complete standalone reference.

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?

The description provides exhaustive semantics for mode (all five options with formulas), value, region_index, and min_velocity/max_velocity, going far beyond the schema's bare parameter names. However, it omits explicit explanation for the required unit_index and track_index parameters, though the examples imply their positional role.

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 opens with a specific verb 'Scale' and resource 'velocity of all notes in a region', clearly stating the tool's core function. It immediately distinguishes itself from create_crescendo with an 'Unlike' clause, making its 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly contrasts with create_crescendo, stating what that tool does (gradient) versus what this tool does (uniform scaling). This gives the agent clear when-not guidance and an explicit alternative, satisfying the top of the scale.

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