MIDIPLAY(1) BSD General Commands Manual MIDIPLAY(1)NAME
midiplay -- play MIDI and RMID files
midiplay [-d devno] [-f file] [-l] [-m] [-p pgm] [-q] [-t tempo] [-v] [-x] [file ...]
The midiplay command plays MIDI and RMID files using the sequencer device. If no file name is given it will play from standard input, other-
wise it will play the named files.
RMID files are Standard MIDI Files embedded in a RIFF container and can usually be found with the 'rmi' extension. They contain some addi-
tional information in other chunks which are not parsed by midiplay yet.
The program accepts the following options:
-d devno specifies the number of the MIDI device used for output (as listed by the -l flag). There is no way at present to have midiplay
map playback to more than one device. The default is device is given by environment variable MIDIUNIT.
-f file specifies the name of the sequencer device.
-l list the possible devices without playing anything.
-m show MIDI file meta events (copyright, lyrics, etc).
-p pgm force all channels to play with the single specified program (or instrument patch, range 1-128). Program change events in the
file will be suppressed. There is no way at present to have midiplay selectively map channels or instruments.
-q specifies that the MIDI file should not be played, just parsed.
specifies an adjustment (in percent) to the tempi recorded in the file. The default of 100 plays as specified in the file, 50
halves every tempo, and so on.
-v be verbose. If the flag is repeated the verbosity increases.
-x play a small sample sound instead of a file.
A file containing no tempo indication will be played as if it specified 150 beats per minute. You have been warned.
MIDIUNIT the default number of the MIDI device used for output. The default is 0.
/dev/music MIDI sequencer device
SEE ALSO midi(4)HISTORY
The midiplay command first appeared in NetBSD 1.4.
It may take a long while before playing stops when midiplay is interrupted, as the data already buffered in the sequencer will contain timing
BSD January 16, 2010 BSD
Check Out this Related Man Page
PLAYMIDI(1) BSD General Commands Manual PLAYMIDI(1)NAME
playmidi, xplaymidi, splaymidi -- MIDI file player
[s|x]playmidi [-a8cCdeEfF4gGiImoprRtvVz] [file ...]
playmidi is a full-featured MIDI file player for Linux systems or others using the Voxware 3.5 sound driver or newer. It can play back MIDI
files on general MIDI devices or FM or Gravis Ultrasound. If no files are specified, playmidi will give a summary of all command line
options. If more than one file is specified, you can use xplaymidi or splaymidi or -r mode for interactive control, allowing you to skip to
the previous song, next song, speed up or slow down the MIDI file, or repeat a MIDI file while viewing a real-time display of data in the
The Debian playmidi package does not include splaymidi.
Command line options are described below. (make sure to precede them with a dash (``-''))
display the help text then exit.
force the use of 8-bit patches with the Gravis Ultrasound to conserve memory. Patches are automatically reloaded as 8-bit when memory
runs out, but if you know in advance, you can save a step and speed up the loading process.
set the channel mask (in hexadecimal) of which channels to play from the MIDI file. This is useful if you have a MIDI file with some
channels that don't sound very good on your hardware.
ignore any drum (percussion) tracks in a MIDI file. This is useful for FM or any other hardware where percussion sounds especially bad.
Also useful for MIDI files where the percussion is poorly written.
send output to external MIDI. This is what you'll want to do if you have any MIDI hardware connected to your system. This option is the
default for playmidi as distributed by upstream.
send output to FM synth using FM patches. You'll need to use this option to playback on any non-MIDI soundcard with the exception of the
Gravis Ultrasound. This option is the default for playmidi in Debian.
send output to FM synth using 4-op OPL/3 patches (BROKEN!) Don't use this option since it doesn't work yet.
send output to Gravis Ultrasound. If you have one of these without anything connected to the MIDI port, this option is for you.
send output to various SoundBlaster cards, including AWE and Live. If you have one of these without anything connected to the MIDI port,
this option is for you.
set mask of channels to always output to external MIDI. If you want to use more than one playback device, this option allows you to spec-
ify what channels to send to the external MIDI port. For example, 00FF would send channels 1 - 8 to external MIDI.
set mask of channels to always output to FM. Used as above.
set mask of channels to always output to gus. Used as above.
set the channel mask (in hexadecimal) of which channels to ignore from the MIDI file. This option is good for MIDI files with a few chan-
nels you don't want to listen to.
forces a given program number (1-128) to be used for all output on given channel, or if no channel is specified, program will be used for
all channels. For example: -p33 sets all channels to program 33, -p5,124 sets just channel 5 to program 124, and -p1,33,2,55,9,22,10,17
sets channel 1 to program 33, channel 2 to program 55, channel 9 to program 22, and channel 10 (percussive) to use the Power Drum Set. If
you're using a Waveblaster, you'll want to use -p10,129 to set channel 10 to playback percussion. You should quote arguments to -p if you
want to include whitespace between them.
shows a list general MIDI programs and numbers. This is intended to make it easier to use the above option.
skews tempo by a factor (float). This is good for files you think the author wrote too slow or two fast. Also good if you want to lis-
ten to lots of files at high speeds, or play a file at slow speeds in order to learn to play a song on some instrument (like piano).
real time ansi (25-line) playback graphics tracking of all notes on each channel and the current playback clock. This flag is assumed when
using xplaymidi or splaymidi.
remap all percussion channels to play on given channel. This is useful if you have a file with percussion on multiple MIDI channels and
your MIDI hardware only supports percussion on one channel. For example -P10 would send all percussion channels to channel 10.
set initial reverb level. Valid range is 0 - 127. For FM, the setting is either "on" (nonzero), or "off" (zero).
set initial chorus level. Valid range is 0 - 127.
set velocity for all notes in a channel. All velocity information for the given channel will be replaced by the given velocity. One day
I'll change this option to allow all channels to be modified as with the -p option.
excludes the given channel number from the mask of channels to load from the MIDI file.
zero channel data in output stream -- for special applications.
Nathan Laredo (firstname.lastname@example.org)
playmidi was originally designed out of impatience with other MIDI players. The startup time is negligible on all devices except Gravis
Ultrasound (must wait for patches to load). The meaning of the various real-time displays is yet to be documented.
Playmidi 2.x is nearly a total re-write compared with the original 1.1 release.
splaymidi doesn't properly restore terminal mode on exit; you may want to use ";stty sane" at the end of any splaymidi command. GUS playback
quality will improve as kernel driver improves. A lot of new features of playmidi are as of yet undocumented. 4-op FM playback doesn't
work. Some incomplete or corrupted MIDI files may cause unpredictable results or seg faults. No other known bugs. If you want new features
or find undocumented ones (bugs), please email email@example.com.
Linux 1.3.60+ July 9, 2019 Linux 1.3.60+