This release includes 1 breaking change for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+4 more
ReleasePort's take
Light signalVersion v1.6.0 of TwelveTake‑Studios/reaper-mcp removes five dead MIDI handlers and introduces ten new MIDI processing tools.
Why it matters: The release adds transpose, snap, quantize, nudge, stretch, legato, humanize, strum, velocity ramping, and scaling commands for MIDI editing; removal of unused handlers reduces code surface area.
Summary
AI summaryRemoved five dead MIDI handlers.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Feature | Low |
Adds transpose_midi_notes tool to shift pitch, skipping out‑of‑range notes. Adds transpose_midi_notes tool to shift pitch, skipping out‑of‑range notes. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds snap_midi_notes_to_scale tool to snap off‑key notes onto a scale. Adds snap_midi_notes_to_scale tool to snap off‑key notes onto a scale. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds quantize_midi_notes tool with strength and swing options. Adds quantize_midi_notes tool with strength and swing options. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds nudge_midi_notes tool to shift note timing while preserving lengths. Adds nudge_midi_notes tool to shift note timing while preserving lengths. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds stretch_midi_notes tool to scale timing about a fixed pivot. Adds stretch_midi_notes tool to scale timing about a fixed pivot. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds legato_midi_notes tool to connect note ends to next onsets. Adds legato_midi_notes tool to connect note ends to next onsets. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds humanize_midi_notes tool for seeded timing and velocity jitter. Adds humanize_midi_notes tool for seeded timing and velocity jitter. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds strum_midi_notes tool to roll chords into a strum without adding notes. Adds strum_midi_notes tool to roll chords into a strum without adding notes. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds ramp_midi_note_velocities tool for linear velocity ramps across phrases. Adds ramp_midi_note_velocities tool for linear velocity ramps across phrases. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds scale_midi_note_velocities tool to multiply, set, or compress velocities. Adds scale_midi_note_velocities tool to multiply, set, or compress velocities. Source: llm_adapter@2026-07-17 Confidence: high |
— |
| Feature | Low |
Adds set_midi_note tool to edit a single note's pitch, velocity, timing, or channel. Adds set_midi_note tool to edit a single note's pitch, velocity, timing, or channel. Source: granite4.1:30b@2026-07-17-audit Confidence: low |
— |
| Feature | Low |
Adds get_selected_midi_notes tool to read selected MIDI notes in REAPER's editor. Adds get_selected_midi_notes tool to read selected MIDI notes in REAPER's editor. Source: granite4.1:30b@2026-07-17-audit Confidence: low |
— |
| Feature | Low |
Adds remove_overlapping_midi_notes tool (flagged destructive) to trim or delete overlapping same‑pitch notes. Adds remove_overlapping_midi_notes tool (flagged destructive) to trim or delete overlapping same‑pitch notes. Source: granite4.1:30b@2026-07-17-audit Confidence: low |
— |
| Deprecation | Low |
Removes five dead, unreachable MIDI handlers: QuantizeItem, TransposeMIDINotes, QuantizeMIDINotes, HumanizeMIDITiming, AnalyzeMIDIPattern. Removes five dead, unreachable MIDI handlers: QuantizeItem, TransposeMIDINotes, QuantizeMIDINotes, HumanizeMIDITiming, AnalyzeMIDIPattern. Source: granite4.1:30b@2026-07-17-audit Confidence: low |
— |
| Refactor | Medium |
Every returned MIDI note now includes start_beat and end_beat fields (item‑relative beats) alongside existing time fields. Every returned MIDI note now includes start_beat and end_beat fields (item‑relative beats) alongside existing time fields. Source: granite4.1:30b@2026-07-17-audit Confidence: low |
— |
| Refactor | Medium |
Timing calculations are performed in quarter‑notes, ensuring correct behavior on tempo‑mapped projects. Timing calculations are performed in quarter‑notes, ensuring correct behavior on tempo‑mapped projects. Source: granite4.1:30b@2026-07-17-audit Confidence: low |
— |
Full changelog
MIDI Utilities — 13 tools for editing notes that already exist
The bridge changed — reinstall reaper_mcp_bridge.lua in REAPER (Actions → run it once per session, as before).
Every new tool takes the same optional filter — a pitch range, an onset window in beats from the item start, and a channel — so you can target a phrase without selecting anything by hand. Timing is in beats, pitch in semitones, and each tool is a single undo step.
Added
- transpose_midi_notes — shift pitch; a note pushed outside 0–127 is left where it is (
skipped), never wrapped. - snap_midi_notes_to_scale — snap off-key notes onto a scale (14 named scales, or a custom interval list); a tie resolves toward the middle of the selection so a line doesn't drift.
- quantize_midi_notes — snap onsets to the project bar/beat grid, with
strengthandswing. - nudge_midi_notes — shift notes in time; lengths preserved.
- stretch_midi_notes — scale timing about a fixed pivot (half-time, double-time, any ratio).
- legato_midi_notes — run each note's end to the next onset, or set every note to one length.
- humanize_midi_notes — seeded, reproducible timing + velocity jitter (same take + same seed = byte-identical).
- strum_midi_notes — roll a chord out into a strum; invents no notes.
- ramp_midi_note_velocities — linear velocity ramp across a phrase (a chord keeps one velocity).
- scale_midi_note_velocities — multiply, set, or compress velocities toward a pivot.
- set_midi_note — edit one note's pitch, velocity, timing, or channel.
- get_selected_midi_notes — read the notes selected in REAPER's editor.
- remove_overlapping_midi_notes — trim or delete overlapping same-pitch notes. The only one here that removes notes, and the only one flagged
destructive.
Changed
- Every returned MIDI note now carries
start_beat/end_beat(item-relative beats) alongside the existingstart_time/end_timeseconds — onget_midi_notestoo. No field was removed; a position you read back feeds the new beat filters directly. - Timing is computed in quarter-notes, so the tools behave correctly on tempo-mapped projects.
Removed
- Five dead, unreachable MIDI handlers (
QuantizeItem,TransposeMIDINotes,QuantizeMIDINotes,HumanizeMIDITiming,AnalyzeMIDIPattern) — unreachable from every public entry point, so no shipped behavior changes.
Full detail in CHANGELOG.md.
Breaking Changes
- Removed unreachable MIDI handlers: QuantizeItem, TransposeMIDINotes, QuantizeMIDINotes, HumanizeMIDITiming, AnalyzeMIDIPattern
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About TwelveTake-Studios/reaper-mcp
MCP server enabling AI assistants to control REAPER DAW for mixing, mastering, MIDI composition, and full music production with 129 tools
Related context
Related tools
Earlier breaking changes
- v1.3.2 `render_project` now requires an explicit `overwrite` parameter to allow file overwriting.
Beta — feedback welcome: [email protected]