mcp_opendaw_rotate_notes
Cyclically shift notes in a region by N positions, choosing to rotate position, pitch, or both, while optionally preserving the original melodic contour.
Instructions
Rotate notes in a region by N positions (cyclic shift).
Shifts notes cyclically — the first rotate_by notes move to the
end, and the remaining notes shift left to fill the gap. This is
a fundamental compositional technique used in serialism (rotational
arrays — Berg, Webern), jazz melodic variation, and pattern
transformation in electronic music.
Args: unit_index: Audio unit index track_index: Note track index region_index: Region index (-1 = first region) rotate_by: Number of positions to rotate (positive = left shift, negative = right shift). Wrapped modulo note count. axis: Rotation axis — "position" = rotate note order by position (notes keep pitch, positions are reassigned in rotated order), "pitch" = rotate pitches (positions stay, pitches shift cyclically among the notes), "both" = rotate both position and pitch together (true permutation — notes swap places entirely). preserve_pitch_contour: If True, after rotation adjust pitches to maintain the original melodic contour (interval sequence). Useful for melodic rotation that stays singable.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | position | |
| rotate_by | No | ||
| unit_index | Yes | ||
| track_index | Yes | ||
| region_index | No | ||
| preserve_pitch_contour | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |