mcp_opendaw_create_voice_led_progression
Creates chord pads with smooth voice leading by re-voicing chords to minimize note movement, keeping common tones stationary and resolving others by nearest semitone step.
Instructions
Create chord pads with smooth voice leading — minimal movement between chords.
Unlike create_chord_pads (which voices every chord in root position causing large jumps), this tool re-voices each chord so individual voices move as little as possible. Common tones stay stationary, other voices resolve by nearest semitone step. The result: strings/pads that glide instead of jump.
progression: Hyphen-separated chords (same format as create_chord_pads). "Am-F-C-G" = i-VI-III-VII in A minor. "C-Am-F-G" = I-vi-IV-V in C major. "Dm7-G7-Cmaj7-Am7" = ii-V-I-vi in C (jazz).
bars_per_chord: Bars per chord (default 4). octave: Center octave for voicing range (3 = C3-C4 register, typical pads). velocity: Note velocity (0-1, default 0.65). unit_index: AU index with note tracks. track_index: Track for chord pads (typically 2 = harmony). start_beat: Where the progression starts. note_duration: Sustain length in beats (default 3.8 = near-full bar). voice_range: Max semitone span from center pitch for each voice (default 12 = one octave either side of center). Prevents voices from drifting too high or low. 7 = tighter, 18 = wider range.
Returns chord voicings, voice movements, and total notes.
Voice leading algorithm:
First chord: root-position voicing centered on octave.
For each subsequent chord: a. Find all pitch-class rotations/inversions of the chord. b. For each candidate voicing, compute total voice movement (sum of semitone distances from previous voicing, by voice index). c. Pick the voicing with minimal total movement. d. Constraint: each voice stays within ±voice_range of center.
Common tones naturally stay (distance 0 = optimal).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| octave | No | ||
| velocity | No | ||
| start_beat | No | ||
| unit_index | No | ||
| progression | No | Am-F-C-G | |
| track_index | No | ||
| voice_range | No | ||
| note_duration | No | ||
| bars_per_chord | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |