Read and replace notes in a MIDI clip

Goal: Read the notes in a MIDI clip, change them, and write the full list back without losing notes.

Time: ~15 minutes


Steps

  1. Use an On MIDI Clip trigger and wire target to your clip object through the chain.
  2. Add a get notes node for MidiClip (not the generic clip notes getter — MIDI editing needs get:MidiClip.notes).
  3. Wire trigger target into the clip input on get notes.
  4. Process the note list with Notes nodes (transpose, quantize, chord, chordArpMode, pitchClassToMidi, etc.) or pass it through unchanged for testing.
  5. Add set notes on the same clip type and wire your processed list into its notes input.
  6. Wire Run: trigger Run → (optional dialog) → set notes Run (wrap in Transaction if you combine with other clip changes).
  7. Build & Run, then right-click a MIDI clip with notes in Live and run your command.
  8. Open the piano roll and confirm every note you expect is still there (or intentionally changed).

Expected result

The piano roll shows updated notes. Clip length stays the same unless you deliberately change note start times or lengths. No duplicate stacks of notes unless your graph adds them.


If something goes wrong

Problem What to do
No notes changed Clip must be MIDI; trigger must be On MIDI Clip
All notes disappeared set notes replaces the entire list — wire the full output from your processing node, not a partial list
Doubled notes Run the command once; check you are not appending in a loop without clearing first
Wrong getter Use MidiClip notes, not generic Clip notes, for MIDI note editing
Build type error MidiClip wires into clip inputs; do not wire audio clip into MIDI-only ports

See also