mcp_opendaw_create_motif_variations
Extract a motif from existing notes and generate classical composition variations like sequence, inversion, retrograde, augmentation, diminution, or fragmentation in a new region.
Instructions
Extract a motif from existing notes and create a variation in a new region.
Closes the analysis→creation loop: extract_motifs finds repeating patterns, this tool takes a specific motif and transforms it using classical composition techniques. The motif is identified by start_note index and note_count within the source region.
Variation types:
sequence: repeat the motif shifted up/down by N scale steps or semitones. Creates melodic sequences — the backbone of classical and jazz improvisation.
inversion: flip the contour upside down. C→E→G (+4, +3) becomes C→A→F (-3, -2). The intervals are mirrored around the first note.
retrograde: play the motif backwards. Last note first, first note last. The rhythm and pitches are reversed in time.
augmentation: stretch all durations by a factor (2.0 = twice as slow). Creates grand, expansive statements from quick motifs.
diminution: compress all durations by a factor (2.0 = twice as fast). Creates urgency and energy from slow motifs.
fragmentation: take the first N notes of the motif and repeat them. Creates rhythmic ostinatos from melodic material.
Essential for: developing melodic material, building variations, creating thematic development, and extending motifs into new sections.
source_unit/track/region: Location of the source motif. start_note: Index of the first note of the motif within the source region (0-based, sorted by position). note_count: Number of notes in the motif (3-16). target_unit/track/region: Where to write the variation. -1 = create new track/region automatically. variation_type: sequence, inversion, retrograde, augmentation, diminution, fragmentation. sequence_shift: For sequence type — semitones to shift each repetition. augmentation_factor: For augmentation/diminution — duration multiplier. fragment_count: For fragmentation — how many notes to keep from the start.
Returns the created variation with note details.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| note_count | No | ||
| start_note | No | ||
| source_unit | No | ||
| target_unit | No | ||
| source_track | No | ||
| target_track | No | ||
| source_region | No | ||
| target_region | No | ||
| fragment_count | No | ||
| sequence_shift | No | ||
| variation_type | No | sequence | |
| augmentation_factor | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |