/compose — Create & Edit MIDI Files
Use the Mozart MCP tools to create MIDI files from scratch or edit existing ones.
Quick Start
code
/compose new_song.mid
Creating a New MIDI File
- •Create with
create_midi— set name, tempo, time signature - •Add tracks with
add_track— name them and assign instruments - •Add notes with
add_notes— specify measure, beat, pitch, duration, velocity - •Save with
save_midi— write to disk
Editing an Existing File
- •Load with
load_midi - •Browse with
get_measuresto understand the structure - •Edit — use
add_notes,delete_notes,transpose,quantize - •Change tempo/time sig with
set_tempo,set_time_signature - •Save with
save_midi
Examples
Create a simple melody
code
create_midi alias="demo" name="Demo Song" bpm=120 file_path="demo.mid"
add_track alias="demo" name="Piano" instrument=0
add_notes alias="demo" track=0 notes=[
{"measure": 1, "beat": 1, "note_name": "C4", "duration_beats": 1, "velocity": 80},
{"measure": 1, "beat": 2, "note_name": "E4", "duration_beats": 1, "velocity": 80},
{"measure": 1, "beat": 3, "note_name": "G4", "duration_beats": 1, "velocity": 80},
{"measure": 1, "beat": 4, "note_name": "C5", "duration_beats": 1, "velocity": 90}
]
save_midi alias="demo"
Transpose a track up a perfect fifth
code
transpose alias="song" track=0 semitones=7
Quantize to eighth notes
code
quantize alias="song" track=1 grid_beats=0.5
Delete notes in measures 5-8 and rewrite
code
delete_notes alias="song" track=0 measure_start=5 measure_end=8 add_notes alias="song" track=0 notes=[...] save_midi alias="song"
Change tempo mid-song
code
set_tempo alias="song" bpm=140 at_tick=1920
Tool Reference
| Tool | Purpose |
|---|---|
create_midi | Create a new empty MIDI file |
add_track | Add a track with name and instrument |
set_instrument | Change a track's instrument |
add_notes | Insert notes at measure/beat positions |
delete_notes | Remove notes from a measure range |
transpose | Shift notes up or down by semitones |
quantize | Snap notes to a rhythmic grid |
set_tempo | Set/change tempo at a tick position |
set_time_signature | Set/change time signature |
save_midi | Write MIDI file to disk |
General MIDI Instruments (Common)
| # | Instrument | # | Instrument |
|---|---|---|---|
| 0 | Acoustic Grand Piano | 24 | Nylon Guitar |
| 4 | Electric Piano 1 | 25 | Steel Guitar |
| 6 | Harpsichord | 30 | Distortion Guitar |
| 11 | Vibraphone | 32 | Acoustic Bass |
| 13 | Xylophone | 33 | Electric Bass (finger) |
| 16 | Drawbar Organ | 40 | Violin |
| 19 | Church Organ | 42 | Cello |
| 21 | Accordion | 46 | Orchestral Harp |
| 56 | Trumpet | 73 | Flute |
| 60 | French Horn | 71 | Clarinet |
| 65 | Alto Sax | 68 | Oboe |
Tips
- •Note names follow scientific pitch notation: C4 is middle C
- •Beats are 1-based within a measure (beat 1 = downbeat)
- •Fractional beats work: beat 1.5 = the "and" of beat 1
- •Velocity ranges from 1 (barely audible) to 127 (maximum)
- •Always
save_midiafter editing — changes are in-memory until saved - •Use
get_measuresto verify your edits look correct before saving