mcp_opendaw_thin_notes
Reduce MIDI note density in regions using interval, velocity threshold, or random removal strategies. Optionally preserve strong beats to maintain rhythmic integrity.
Instructions
Thin out notes in a region — reduce note density for cleaner patterns.
After AI generation, transcription, or dense arrangement, MIDI can be cluttered with too many notes. This tool selectively removes notes to clean up the pattern while preserving musical intent.
Three strategies:
"interval" — keep every Nth note (sorted by position). interval=2 keeps every 2nd note, interval=3 keeps every 3rd. Creates space.
"velocity_threshold" — remove notes below a velocity threshold. Cleans up ghost notes from transcription or AI generation.
"random" — probabilistic removal. random_chance=0.3 means 30% of notes are removed at random. Creates organic variation.
preserve_strong_beats: When True, notes on strong beats (beat 1 and 3 in 4/4) are never removed, regardless of strategy. This maintains the rhythmic foundation while thinning fills and embellishments.
unit_index: AU index (-1 = all AUs). track_index: Note track index (-1 = all note tracks on the AU). region_index: Region index (-1 = all regions on the track). strategy: "interval", "velocity_threshold", or "random". interval: For "interval" strategy — keep every Nth note (2=halve, 3=third). Must be 2-16. velocity_threshold: For "velocity_threshold" strategy — remove notes with velocity below this value (0.0-1.0, default 0.3). random_chance: For "random" strategy — probability of removing each note (0.0-1.0, default 0.3 = 30% removed). preserve_strong_beats: Keep notes on beat 1 and 3 (0 and 1920 PPQN in 4/4).
Returns per-track original count, removed count, remaining count.
Example:
Halve note density — keep every 2nd note
thin_notes(unit_index=0, track_index=0, strategy="interval", interval=2)
Remove ghost notes below velocity 0.25
thin_notes(unit_index=0, track_index=0, strategy="velocity_threshold", velocity_threshold=0.25)
Random 40% thinning for organic variation
thin_notes(unit_index=0, track_index=0, strategy="random", random_chance=0.4)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| interval | No | ||
| strategy | No | interval | |
| unit_index | No | ||
| track_index | No | ||
| region_index | No | ||
| random_chance | No | ||
| velocity_threshold | No | ||
| preserve_strong_beats | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |