mcp_opendaw_add_neighbor_tones
Add upper or lower neighbor tones to existing notes, splitting each note into original-neighbor-return for diatonic ornamentation. Embellish sustained notes with scale-based neighbor steps.
Instructions
Add upper/lower neighbor tones to embellish existing notes.
A neighbor tone is a non-chord tone that steps away from the main note by one scale step (up or down) and then returns. Unlike passing tones which connect two different notes, neighbor tones ornament a single sustained note.
Structure: [main first part] → [neighbor (dissonance)] → [main return]
The original note is split into three parts:
First part: original pitch from start to neighbor_offset
Neighbor: one scale step away, duration = neighbor_fraction of original
Return: original pitch for the remainder
This is the third of the four classic non-chord tone techniques: passing tones, suspensions, neighbor tones, and anticipation.
Bach ornaments, jazz ballad fills, country chicken pickin', and classical cadenzas all use neighbor tones extensively.
Args: unit_index: Audio unit index track_index: Note track index region_index: Region index (-1 = first region) scale: Scale for diatonic neighbor step ("major", "minor", "dorian", "phrygian", "lydian", "mixolydian", "locrian", "harmonic_minor", "melodic_minor", "pentatonic", "blues", "chromatic") root: Root note for scale (C, C#, D, ... B) direction: Neighbor direction — "upper": step up from main note (most common) "lower": step down from main note "alternating": alternate upper/lower per note neighbor_fraction: Duration of neighbor as fraction of original note (0.1-0.5, default 0.25 = quarter of original). Smaller values create subtle ornaments, larger create more prominent embellishments. neighbor_offset: Position of neighbor within the note (0.1-0.9, default 0.5 = middle). 0.15 = near start, 0.5 = middle, 0.85 = near end. neighbor_velocity: Velocity of neighbor note (0-1, default 0.6 — softer than the main note, as is traditional for ornaments). min_duration_beats: Minimum note duration in beats to embellish (0.5-4.0, default 1.0). Short notes are skipped — ornaments need room to breathe. cross_track: If >= 0, place neighbors on this track index instead of source track (preserves original notes).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | C | |
| scale | No | major | |
| direction | No | upper | |
| unit_index | Yes | ||
| cross_track | No | ||
| track_index | Yes | ||
| region_index | No | ||
| neighbor_offset | No | ||
| neighbor_fraction | No | ||
| neighbor_velocity | No | ||
| min_duration_beats | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |