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
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | multiply | |
| value | No | ||
| unit_index | Yes | ||
| track_index | Yes | ||
| max_velocity | No | ||
| min_velocity | No | ||
| region_index | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |