PLAYMIDI(1)

NAME
playmidi - midi file player

SYNOPSIS
playmidi [-8cdeEfF4gGiImoprRtvz] [file ...]

DESCRIPTION
playmidi is a small quick midi file player using the level two sequencer of the voxware 3.0 package to play on general midi devices or FM or Gravis Ultrasound. If no files are specified, playmidi will give a short summary of usage options. If more than one file is specified, you may skip to the next file while the current one is playing by pressing your interrupt (usually control-c) key. If you invoke playmidi while it is already running, it will allow you to control the currently running invocation until its death, after which time all waiting invocations fight to go first.

OPTIONS
Command line options are described below. (make sure to precede them with a dash (``-''))

-8  force the use of 8-bit patches with the gravis ultrasound to conserve memory.

-a# adds the given channel number to the mask of channels to load from the midi file.

-c# set the channel mask (in hexidecimal) of which channels to load from the midi file.

-d  ignore any drum (percussion) tracks in a midi file. See also -m#

-e  send output to external midi.

-f  send output to fm synth using fm patches

-4  send output to fm synth using 4-op OPL/3 patches

-g  send output to Gravis Ultrasound.

-E# set mask of channels to always output to external midi.

-F# set mask of channels to always output to fm.

-G# set mask of channels to always output to gus.

-i# set the channel mask (in hexidecimal) of which channels to ignore from the midi file.

-m# set the channel mask (in hexidecimal) of which channels to consider percussion channels. See also -d

-o# forces output to a given synth number (0-4).

-p[chan,]prog[,chan,prog...]
    forces a given program number (1-128) to be used for all output on optional channel, or if no channel is specified, program will be used for all non-percussive 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 sets channel 1 to program 33, channel 2 to program 55, and channel 9 to program 22. If you're using a Waveblaster or RIO, you will 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. You can use -I to show a list of program numbers and names.

-t# skews tempo by a factor (float).

-r  real time ansi (25-line) playback graphics tracking of all notes on each channel and the current playback clock.

-R# set reverb level for fm or ultrasound. Valid range is 0 - 127. For fm, the setting is either "on" (nonzero), or "off" (zero).

-S  Play all files listed on the command line at the same time. If there are division and tempo differences, the last one at any given time will be default. This feature is utterly useless unless you either enjoy listening to noise or have a set of midi files that all describe different tracks of the same song. This was inspired by a package of bach midi files I got. See -t# for one way to "correct" tempos.

-x# excludes the given channel number from the mask of channels to load from the midi file.

-z  zero channel data in output stream -- for special applications.

SEE ALSO
midifile(3)

AUTHOR
Nathan Laredo (laredo@gnu.ai.mit.edu)

HISTORY
playmidi was originally designed out of impatience with other midi players. The startup time is limited only by the time it takes to load patches and sort the list of events in playback order (and sometimes by a delay before the first note starts in a midi file). There is an intentional delay between songs to allow you to break out of the program.

BUGS
At this point I will blame 100% of the bugs on the sound driver code. Once it is perfected, I assume playmidi will operate flawlessly. If you want new features or find undocumented ones (bugs), please email laredo@gnu.ai.mit.edu.