mcp_opendaw_displace_rhythm
Displace notes in a region by a fixed rhythmic offset: shift mode adds delay or anticipation for laid-back or pushed feel; circular mode rotates the pattern, creating new variations.
Instructions
Displace all notes in a region by a fixed rhythmic offset — laid-back, push, or circular rotation feel.
Rhythmic displacement shifts notes in time without changing their pitch or duration. This is one of the most expressive production techniques:
Laid-back (offset=0.0625 = 1/16 late): drums sit behind the beat, creating a relaxed, hip-hop/R&B feel (J Dilla, Questlove).
Pushed (offset=-0.0625 = 1/16 early): notes anticipate the beat, creating urgency and energy (rock, punk, certain jazz).
On-top (offset=0): reset any displacement back to original grid.
Two modes:
"shift" — add offset to every note's position. Notes can move past the region boundary (region duration auto-extends). Negative offset moves notes earlier; notes before position 0 are clamped to 0.
"circular" — rotate the pattern by offset. Notes that go past the region end wrap around to the beginning. This creates entirely new patterns from the same material — a 1/16 rotation of a straight 16th hi-hat pattern creates an off-beat pattern. The region length is preserved.
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). offset: Displacement in beats. Positive = later (laid-back), negative = earlier (pushed). Common values: 0.0625 (1/16), 0.125 (1/8), 0.03125 (1/32), 0.25 (1/4). Range -4.0 to 4.0. mode: "shift" (add offset to position, region may extend) or "circular" (rotate within region bounds, region length preserved).
Returns per-track note counts and displacement stats.
Example:
J Dilla laid-back drums — 1/16 note late
displace_rhythm(unit_index=0, track_index=0, offset=0.0625, mode="shift")
Urgent pushed melody — 1/32 early
displace_rhythm(unit_index=0, track_index=3, offset=-0.03125, mode="shift")
Circular rotation — new pattern from same notes
displace_rhythm(unit_index=0, track_index=0, offset=0.125, mode="circular")
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | shift | |
| offset | No | ||
| unit_index | No | ||
| track_index | No | ||
| region_index | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |