| MIDIRECORD(1) | General Commands Manual | MIDIRECORD(1) | 
midirecord —
| midirecord | [ -aDfhoqV] [-Bbuffersize] [-cchannels] [-ddevices] [-fsequencerdev] [-nnotesperbeat] [-Rroundbeats] [-rraw_output] [-Ttempo] [-ttime] file | 
midirecord program converts the sequencer events
  read on sequencerdev to the named MIDI SMF output. If
  the file name is -, output will go to the standard output. By default, timing
  for events begins with the first event. The -o flag
  may be used to start timing events at the process start up.
-a-B
    buffersize-c
    channels-D-d
    devices-f
    sequencerdev-h-n
    notesperbeat-o-q-R
    roundbeats-r
    raw_output-T
    tempo-t
    time-VMIDIDEVICEmidirecord to observe activity on a MIDI bus
  using the -D and -V options
  and learn about device-specific MIDI messages.
For instance, to determine the MIDI messages needed to switch to ARP mode on a Korg minilogue XD synthesizer, which does not document any control change or non-registered parameter numbers for this function but does document that ARP is part of the “VOICE TYPE MODE”, parameter these messages were seen:
midi_event_chn_common_to_output:444:
  MIDI_CTL_CHANGE: channel 0 ctrl 62 val 10midi_event_chn_common_to_output:444:
  MIDI_CTL_CHANGE: channel 0 ctrl 6 val 1which shows that CC#62 (hexadecimal) was set to value 10 (also hexadecimal), and that CC#6 was set to value 1. As CC#62 is also the least significant byte of the non-registered parameter number, we can guess that NRPN 0,62 controls the “VOICE MODE TYPE” parameter documented in the synthesizer manual, and that the value 1 set to CC#6 (Control Data Entry MSB) turns on ARP mode. For completeness, setting both CC#62 and CC#63 for the parameter number, as well as CC#6 and CC#26 (Control Data Entry MSB) to 0 provides a complete NRPN control message.
midirecord program was first seen in
  NetBSD 7.
midirecord program was written by
  Matthew R. Green
  <mrg@eterna.com.au>.
midirecord will hang after the timeout
    waiting for the very next message before it will exit and finish writing the
    file.
| March 13, 2020 | NetBSD 10.0 |