mcp_opendaw_create_canon
Create a canon by repeating a melody across multiple voices with delayed entries and optional transposition. Ideal for composing contrapuntal music like rounds or fugues.
Instructions
Create a canon — strict melodic imitation with delayed voice entries.
The foundation of contrapuntal music: a single melody is repeated in multiple voices, each entering after a delay, optionally transposed. Think Pachelbel's Canon, "Row Row Row Your Boat", Bach's fugue subjects, or modern call-and-response layers in film scores. Unlike create_counterpoint (which generates a new line), a canon copies the SAME melody into each voice — just shifted in time and pitch.
melody: Comma-separated MIDI pitches of the lead voice (e.g. "60,62,64,67").
voices: Number of imitating voices (2-6, default 3). Voice 1 enters first.
entry_delay_beats: Beats between each voice entry (1-16, default 4 = one bar in 4/4).
transposition: Comma-separated semitone offsets per voice (e.g. "0,7,12" = unison, fifth, octave).
Must have exactly voices values. "0,0,0" = all at same pitch (round/canon).
velocity_decay: Velocity reduction per voice (0-0.3, default 0.15). Later voices are quieter,
simulating natural ensemble hierarchy.
direction: Voice entry order — "up" (low to high) or "down" (high to low).
unit_index: AU index with note track (-1 = find first AU with note tracks).
track_index: Note track index within the AU.
start_beat: Position in beats where the first voice begins.
velocity: Base velocity for the first voice (0-1, default 0.85).
Returns notes created, voice count, total length, transpositions used.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| melody | No | 60,62,64,67,64,62,60,57 | |
| voices | No | ||
| velocity | No | ||
| direction | No | up | |
| start_beat | No | ||
| unit_index | No | ||
| track_index | No | ||
| transposition | No | 0,7,12 | |
| velocity_decay | No | ||
| entry_delay_beats | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |