mcp_opendaw_groove_transfer
Transfer the timing and velocity feel from a source MIDI region to a destination region by extracting and applying its groove template.
Instructions
Transfer groove (timing + velocity feel) from a source region to a destination region.
Extracts the groove template from source notes: for each grid position within the groove cycle (groove_length beats), records the average timing offset from the grid and the average velocity ratio. Then applies this template to destination notes — shifting their timing and scaling velocity to match the source feel.
This is NOT copying notes — it transfers the feel. A 1-bar drum groove can be applied to a 4-bar programmed pattern. The groove cycles every groove_length beats.
source_unit_index: AU index of the groove source (e.g. a drum track). source_track_index: Note track index on the source AU. source_region_index: Region index on source (-1 = first). dest_unit_index: AU index of destination (-1 = same as source). dest_track_index: Note track index on destination AU (-1 = same as source track). dest_region_index: Region index on destination (-1 = all regions on track). groove_length: Groove cycle length in beats (4 = 1 bar of 4/4, 3 = waltz, 2 = half-bar). timing_strength: 0-1, how much timing offset to apply (0 = no change, 1 = full source groove). velocity_strength: 0-1, how much velocity pattern to apply (0 = no change, 1 = full source groove). grid: Grid for computing timing offsets — "16th" or "8th".
Returns groove template stats and per-region modification counts.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| grid | No | 16th | |
| groove_length | No | ||
| dest_unit_index | No | ||
| timing_strength | No | ||
| dest_track_index | No | ||
| dest_region_index | No | ||
| source_unit_index | Yes | ||
| velocity_strength | No | ||
| source_track_index | Yes | ||
| source_region_index | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |