mcp_opendaw_apply_contour
Apply a melodic contour to redistribute pitch patterns (ascending, descending, arch, wave) while preserving note timing and duration.
Instructions
Apply a melodic contour shape to existing notes.
Redistributes note pitches to follow a specified contour profile while keeping timing and duration unchanged. Unlike transpose_notes (uniform shift), this reshapes the melody direction — ascending, descending, arch, inverted arch, wave, or custom.
The tool calculates a target pitch for each note based on its position in the sequence (0..1 normalized) mapped through the contour function, then snaps to the nearest scale degree if requested. The original pitch range center is preserved.
Contours:
"ascending": low to high across the phrase
"descending": high to low
"arch": rise then fall (peak at midpoint)
"inverted_arch": fall then rise (valley at midpoint)
"wave": sinusoidal up-down-up
"escalating": stepwise ascending with plateaus
Args: unit_index: Audio unit index track_index: Note track index region_index: Region index (-1 = first region) contour: Contour shape name range_semitones: Pitch range span in semitones (1-48, default 12=octave) snap_to_scale: Scale for snapping results (""=chromatic, "major", "minor", "dorian", "phrygian", "lydian", "mixolydian", "locrian", "harmonic_minor", "melodic_minor", "pentatonic", "blues") root: Root note for scale snapping preserve_first: Keep first note pitch unchanged preserve_last: Keep last note pitch unchanged
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | C | |
| contour | No | arch | |
| unit_index | Yes | ||
| track_index | Yes | ||
| region_index | No | ||
| preserve_last | No | ||
| snap_to_scale | No | ||
| preserve_first | No | ||
| range_semitones | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |