Skip to main content
Glama

ramp_midi_note_velocities

Apply a linear velocity ramp to MIDI notes in REAPER to create crescendos or decrescendos, interpolating velocities from start to end by note onset.

Instructions

Apply a linear velocity ramp (crescendo / decrescendo) across MIDI notes.

Velocities interpolate by onset: the earliest note in the filtered set gets start_velocity, the latest gets end_velocity, everything between is linear. Notes sharing an onset (a chord) get the same velocity. Results clamp to 1-127.

Args: start_velocity: Velocity at the earliest onset (1-127; out of range clamps, not an error). end_velocity: Velocity at the latest onset (1-127).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fieldsNo
channelNo
end_beatNo
pitch_lowNo
item_indexYes
pitch_highNo
start_beatNo
track_indexYes
end_velocityYes
return_notesNo
start_velocityYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.7.3

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It usefully discloses the interpolation rule (by onset, linear), chord handling, and clamping behavior. However, it does not state that this is a mutation of existing MIDI notes, does not explain the filtering scope that determines which notes are affected, and does not mention the return_notes parameter.

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 front-loaded with the core operation in the first sentence, followed by precise interpolation semantics and an Args section. It contains no filler. The only structural weakness is that the Args section covers just two of eleven parameters, but the prose itself is efficiently written.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter mutation tool with no annotations and no output schema, the description is incomplete. It never explains how the target set of notes is selected (track, item, pitch range, beat range, channel, fields), nor what the tool returns or whether it modifies the project in place. An agent would need the schema alone to call it correctly, which is exactly the gap the description was supposed to fill.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 11 parameters, so the description must compensate. It explains only start_velocity and end_velocity (2 of 11) and adds meaningful detail about clamping and onset interpretation. It leaves track_index, item_index, fields, channel, start_beat, end_beat, pitch_low, pitch_high, and return_notes entirely undocumented, including the filters that define the 'filtered set' referenced in the text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Apply a linear velocity ramp (crescendo / decrescendo) across MIDI notes.' An agent can immediately tell this is a velocity-shaping operation. It does not explicitly contrast itself with sibling velocity tools like scale_midi_note_velocities or humanize_midi_notes, so it falls short of the full sibling-differentiation bar.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as set_midi_note_velocity, scale_midi_note_velocities, or humanize_midi_notes. The description explains the algorithm but never states the context or precondition that should select this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools