ferraus midi merge

Combine MIDI files

Synopsis

ferraus midi merge <inputs...> [options] [-o <output>]

What it does

Merges several files into one format-1 file at the first file's PPQ, keeping each track (or everything in one track with --mode single). The first file's tempo map is used.

Examples

Stack parts into one multitrack file

ferraus midi merge drums.mid bass.mid keys.mid -o song.mid

Merge into a single track

ferraus midi merge a.mid b.mid --mode single -o one-track.mid

Combine a hummed melody and a chord part for rendering or a score

ferraus midi merge melody.mid chords.mid --mode tracks -o lead_sheet.mid

Options

FlagTypeDefaultMeaning
--modetracks | singletrackstracks: keep every track; single: merge all events into one track

Global options

Every command also accepts the global options (-o, --json, --dry-run, --overwrite, --progress, ...). See Global options.

Exit codes

CodeMeaning
0Success
1Processing failed
2Usage or parameter error
3Input missing or unreadable
8Cancelled
70Internal error (bug)

Common mistakes

  • Forgetting that outputs are never overwritten: pass --overwrite or a new -o path when re-running.

For models

  • MCP tool: ferraus_midi_merge
  • Schema: ferraus schema midi merge
  • Pipeline: { op: midi merge, args: { ... } } (flag names with _ instead of -)
  • fx stage: no
{"command": "midi merge", "defaults": {"mode": "tracks"}}