playmidi,
PLAYMIDI(I)             System General Commands Manual             PLAYMIDI(I)

NAME
     playmidi, xplaymidi, splaymidi - midi file player

SYNOPSIS
     [s|x]playmidi [-8cCdeEfF4gGiImoprRtvVz] [file ...]

DESCRIPTION
     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 midi file.

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.   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.

     -c#

        set the channel mask (in hexidecimal) 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.

     -d

        ignore any drum (percussion) tracks in a midi file. (See also -m# ).
        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.

     -e

        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.

     -f

        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.

     -4

        send output to fm synth using 4-op OPL/3 patches (BROKEN!)  Don't use
        this option since it doesn't work yet.

     -g

        send output to Gravis Ultrasound.  If you have a gravis ultrasound
        without anything connected to the midi port, this option is for you.

     -E#

        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.

     -F#

        set mask of channels to always output to fm.  Used as above.

     -G#

        set mask of channels to always output to gus.  Used as above.

     -i#

        set the channel mask (in hexidecimal) 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.

     -m#

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

        This option is good for midi files that don't conform to the default
        percussion arrangement of playmidi.  GM standard specifies percussion
        in channel 10 only.   Some files disobey that requiring this setting.

     -o#

        forces output to a given synth number (0-4).  This option is old and
        obsolete.  Don't use it.  It's probably been removed by the time you
        read this.

     -p[chan,]prog[,chan,prog...]

        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.

     -I

        shows a list general midi programs and numbers.   This is intended to
        make it easier to use the above option.

     -t#

        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).

     -r

        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.

     -P#

        remap all percussion channels to play on given channel.  This is use-
        ful if you have a file with percussion on multiple midi channels and
        your midi hardware only supports percussion on one channel.  For exam-
        ple -P10 would send all percussion channels to channel 10.

     -R#

        set initial reverb level.  Valid range is 0 - 127.  For fm, the set-
        ting is either "on" (nonzero), or "off" (zero).

     -C#

        set initial chorus level.  Valid range is 0 - 127.

     -Vchn,vel[,chn,vel...]

        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.

     -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.

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

HISTORY
     playmidi was originally designed out of impatience with other midi play-
     ers.  The startup time is negligable on all devices except gravis ultra-
     sound (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.

BUGS
     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 qual-
     ity 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 laredo@gnu.ai.mit.edu.

Linux 1.3.60+                  February 16, 2003                 Linux 1.3.60+