transform_notes
Edit MIDI clip notes with musical transforms such as transpose, quantize, or arpeggiate, previewing changes and writing results in one undo step.
Instructions
Change notes already in a MIDI clip with a music transform: reads the notes, transforms them, writes the result in ONE undo step. address: a MIDI clip; transform + params. Transforms: transpose, fit_to_scale, invert, reverse, stretch, shift, humanize, swing, quantize, legato, gate, velocity_shape, strum, recombine, arpeggiate, chop, stack, grace_notes, trill, repeat. Use transform 'help' for every transform's parameters and kind. Select notes with a range (from_time/time_span/from_pitch/pitch_span) or, for in-place transforms, ids from get_notes; default is every note. dry_run previews without writing. In-place transforms keep note ids and settings; rebuilds replace the selected notes in one step; additions keep them. Notes that would land outside MIDI range or before beat 0 refuse in-place transforms. Times are beats, pitches C3 = 60.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Only these note ids (in-place transforms) | |
| expect | No | Guard: {"name": "..."} must match the clip | |
| params | No | The transform's parameters (see the list in the tool description) | |
| address | No | A MIDI clip, e.g. 'tracks/2/slots/0/clip' | |
| dry_run | No | Preview the result without changing the clip | |
| from_time | No | Only notes starting at or after this beat | |
| time_span | No | Length of the time range in beats | |
| transform | Yes | Which transform (help lists them all with parameters) | |
| from_pitch | No | Lowest pitch of the range | |
| pitch_span | No | Number of pitches in the range |