pw-midi2record
Record MIDI 2 (UMP) events through PipeWire
TLDR
SYNOPSIS
pw-midi2record [options] [FILE | -]
DESCRIPTION
pw-midi2record captures MIDI 2 events from the PipeWire graph and writes them to a file. It is an alias of pw-cat(1) invoked with the TYPE_MIDI2 data type, encoding events as Universal MIDI Packets (UMP) as defined by the MIDI 2.0 specification.UMP can carry both legacy MIDI 1 messages and MIDI 2 features (per-note controllers, 32-bit values, 16 groups of 16 channels). A MIDI 2 capable source — controller, software instrument, or upstream PipeWire node — must be connected for events to be recorded.When - is given as the file argument, MIDI data is written to standard output.
PARAMETERS
-h, --help
Show help and exit.--version
Show version information.-v, --verbose
Enable verbose output.-R, --remote NAME
Connect to the named PipeWire daemon.--target VALUE
Source node serial or name. 0 disables linking.--latency VALUE
Set node latency, e.g. 100ms, 2048 samples.-P, --properties JSON
Extra stream properties as a JSON object.-M, --force-midi FORMAT
Force MIDI format, midi (legacy bytes) or ump (Universal MIDI Packets, default).-C, --monitor
Capture monitor ports of output nodes (when recording).
CAVEATS
Records MIDI events only, not rendered audio; use pw-record(1) to capture the audio output of a synthesiser. Without a connected MIDI source the file will only contain headers. Files produced are UMP, not the legacy SMF (.mid) format.
HISTORY
MIDI 2 support arrived in PipeWire alongside the broader pw-cat MIDI 2 (UMP) work, complementing the older pw-midiplay/pw-midirecord pair. PipeWire was created by Wim Taymans at Red Hat and first released in 2017. The MIDI 2.0 specification was ratified by the MMA in 2020.
SEE ALSO
pw-cat(1), pw-midi2play(1), pw-midiplay(1), pw-midirecord(1), pw-mididump(1), pw-record(1), pipewire(1)
