smfplay(1) play a standard MIDI file


smfplay [-mxy] [-g measure ] [-d devname ] [-i devname ] midifile


The smfplay utility plays a MIDI file. While playing, it can route events from one midi(4) device to another. To stop performance, send an interrupt signal to smfplay (for instance by pressing control ^C on the terminal). The options are as follows:

Use metronome. The metronome will follow tempo changes and time signature changes in the midi file.
Synchronise to an external midi(4) device. If the -i flag is used then playback will be synchronised to the input device else it will be synchronised to the default device.
Send midi timing information to the default device. Useful if the output device is a slave MIDI sequencer.
-g measure
Start playback at the given measure number.
-d filename
Default midi(4) device on which to play the midi file. If not specified, the content of the MIDIDEV environment variable will be used instead.
-i filename
Alternate input midi(4) device. Voice events (notes, controllers, etc) received on the input device will be sent as-is to the default device. Without this flag, the default device will be used for input.

The smfplay utility is an interface to midish(1). If more specific features are needed, the user may consider using midish(1).


The following will play mysong.mid on device /dev/rmidi4 and will use metronome.

$ smfplay -m -d /dev/rmidi4 mysong.mid