Skip to main content
Read and write MIDI notes in clips.

Command line

note list

List notes in a clip
track
required
Track number (1-based: 1, 2, … or first, second, …)
scene
required
Scene number (1-based: 1, 2, … or first, second, …)

note set

Replace all notes in a clip
track
required
Track number (1-based: 1, 2, … or first, second, …)
scene
required
Scene number (1-based: 1, 2, … or first, second, …)
--json-data
Notes as JSON array
--file
Path to JSON file containing notes array

note add

Add notes to a clip
track
required
Track number (1-based: 1, 2, … or first, second, …)
scene
required
Scene number (1-based: 1, 2, … or first, second, …)
--json-data
Notes as JSON array
--file
Path to JSON file containing notes array

note remap

Move every note at one pitch to another, server-side (session/arrangement/both)
track
required
Track number (1-based: 1, 2, … or first, second, …)
--from
Source MIDI pitch 0-127 (only notes at this pitch move)
--to
Target MIDI pitch 0-127
--scope
session, arrangement, or both (default both)
--scene
Scene number (1-based) to limit to one session clip; requires —scope session

MCP tools

list_notes

List all notes in a clip.
track_id
String
required
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
scene_index
String
required
Scene number (1-based: 1, 2, … or ‘first’, ‘second’, …)

write_notes

Replace all notes in a clip with the given list.
track_id
String
required
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
scene_index
String
required
Scene number (1-based: 1, 2, … or ‘first’, ‘second’, …)
notes
NoteEvent[]
required
Notes to write (replaces all existing).

add_notes

Append notes to a clip without removing existing notes.
track_id
String
required
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
scene_index
String
required
Scene number (1-based: 1, 2, … or ‘first’, ‘second’, …)
notes
NoteEvent[]
required
Notes to append.

remap_pitch

Move every note at from_pitch to to_pitch on one track, server-side — no note round-tripping, all other note fields preserved. Scope ‘session’, ‘arrangement’, or ‘both’ (default both); scene_index (session scope only) narrows to one clip. Reports clips_touched/notes_changed. The drum-pad retargeting primitive; see retarget_drums for the automatic kit-swap flow.
track_id
String
required
Track number (1-based: 1, 2, … or ‘first’, ‘second’, …)
from_pitch
Int32
required
Source MIDI pitch 0-127 (only notes at this pitch move)
to_pitch
Int32
required
Target MIDI pitch 0-127
scope
String
‘session’, ‘arrangement’, or ‘both’ (default)
scene_index
String
Scene number (1-based) to limit to one session clip; requires scope=‘session’