Maps optionally supplied functions over the contents
of the MIDI file pathname. If :tracks is t
all MIDI tracks in the file are mapped, otherwise :tracks
should be a track number or list of track numbers to map. If :header-fn is
supplied it is passed the MIDI file header information in 3 values:
file-format number-of-tracks divisions. If :track-fn
is supplied it is passed information about each track in 2 values:
track-number length. If :channel-message-fn is
supplied it is invoked on all channel messages in each track
mapped. The function is passed 2 values: message time. If
:meta-message-fn is supplied it is invoked on all meta event
messages in each track mapped. The function is passed 4 values:
message time data-length message-data. If
:system-message-fn is supplied it is invoked on all system
messages in each track mapped. The function is passed 4 arguments:
message time data-length message-data