home *** CD-ROM | disk | FTP | other *** search
/ Sound, Music & MIDI Collection 2 / SMMVOL2.bin / MIDI_PAT / MTOOLS.ZIP / MTHELP.EXE / MTOOLS.DOC < prev    next >
Encoding:
Text File  |  1993-09-14  |  130.9 KB  |  3,103 lines

  1.                          MidiTools User's Guide
  2.  
  3.                     Copyright 1992, 1993 FM Software
  4.                           All rights Reserved
  5.  
  6.       _________________________________________________________________
  7.       
  8.       * Contents
  9.       
  10.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  11.  
  12.        Getting Started
  13.            Overview
  14.            Installation
  15.            Editing
  16.            Mouse Usage
  17.        Play - MIDI File Player
  18.            Introduction
  19.            Playing a file
  20.            Data cells
  21.            Saving set up
  22.            Play lists
  23.            File Select
  24.            Sliders
  25.            MIDI Initialization
  26.            Updating
  27.            MIDI Sync
  28.            Function Descriptions
  29.            Play command line
  30.            JLCooper CS-1 Control Station
  31.        Play/R - Memory-resident MIDI File Player
  32.            Introduction
  33.            Command line
  34.            Files
  35.            Pop up window
  36.            Modes
  37.            Programming
  38.        Record - Simple MIDI File Recorder
  39.            Introduction
  40.            Usage
  41.            Record Functions
  42.        Watch - Multi-function MIDI Analyzer
  43.            Introduction
  44.            Monitor
  45.            Buffer
  46.            Sending
  47.            Data loss
  48.            Monitor Functions
  49.            Filtering
  50.            Send Keys
  51.            Delays
  52.            Programming Functions
  53.            Set up
  54.        MIDI File Decoding and Encoding
  55.            Decode
  56.            Encode
  57.        Filter - Interactive MIDI File Filter
  58.            Introduction
  59.            Input / Output
  60.            Filter Limiting
  61.            Message Removal
  62.            Message Modification
  63.            Filter Functions
  64.        Batch MIDI File Filters
  65.            Introduction
  66.            Fmt
  67.            Extract 
  68.            Remove
  69.        Miscellaneous Utilities
  70.            Play/B
  71.            Dump
  72.            TestDev
  73.        Appendix A - Device Options
  74.  
  75.  
  76.       _________________________________________________________________
  77.       
  78.       * Getting Started
  79.       
  80.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  81.       
  82.       Overview
  83.       
  84.       MidiTools is a set of MIDI utility programs for users
  85.       of MS-DOS computers, specially selected to complement
  86.       the functions of the many fine sequencing and scoring
  87.       packages on the market.  In particular, MidiTools can
  88.       provide additional diagnostic, setup, and performance
  89.       capabilities which may not be available or are less
  90.       convenient to use in more general software.  Support
  91.       for a variety of MIDI interfaces, a simple user
  92.       interface (with mouse functions and full help), and
  93.       some new twists, combine to make MidiTools a useful
  94.       addition for any MIDI musician.
  95.       
  96.       The major components of the package, along with some
  97.       of their features, are listed below:
  98.       
  99.       Play  --  MIDI File Player
  100.       
  101.       - Plays any standard MIDI format file containing up to 64 tracks.
  102.       
  103.       - Individual channel playback control of volume, transpose, and 
  104.         redirection.
  105.       
  106.       - Real-time and meter-based time displays.
  107.       
  108.       - Note utilization summary.
  109.       
  110.       - Automatic MIDI initialization sequences.
  111.       
  112.       - Play lists for continuous operation.
  113.       
  114.       - Fast file loading for performance use.
  115.       
  116.       - Easy creation of play lists from file display.
  117.       
  118.       - Familiar playback controls: Play/Pause, Rewind, Fast Forward, 
  119.         Forward/Reverse skip.
  120.       
  121.       - Mouse sliders for song position and real-time master volume control.
  122.       
  123.       - Saving of playback setup and textual info.
  124.       
  125.       - Re-recording of playback parameters changed in real time.
  126.       
  127.       - External MIDI sync.
  128.       
  129.       - Full, on-screen documentation available at any time.
  130.       
  131.       - Batch display of summary information.
  132.       
  133.       - Simple command line play available for quick file auditioning.
  134.       
  135.       - Reads Creative Music format files.
  136.       
  137.       - Supports JLCooper CS-1 Control Station.
  138.       
  139.       
  140.       Play/R  --  Memory-resident MIDI File Player
  141.       
  142.       - Memory resident, with pop-up window.
  143.       
  144.       - Same playback capabilities as Play, but with less interactive 
  145.         control and up to 16 tracks.
  146.       
  147.       - Compatible with Play setup and play list files.
  148.       
  149.       - Pop-up controls for Play/Pause, Rew, FF, Skip, and Volume.
  150.       
  151.       - Can be used while running general computer applications, such as 
  152.         wordprocessors, spreadsheets, and possibly other MIDI software.
  153.       
  154.       - Requires approximately 64K RAM plus MIDI file size.
  155.       
  156.       - Can use EMS memory for MIDI file storage.
  157.       
  158.       - External programming interface for control by other applications.
  159.       
  160.       
  161.       Record  --  Simple MIDI File Recorder
  162.       
  163.       - Simple 1-track MIDI file recording.
  164.       
  165.       - Command line or interactive.
  166.       
  167.       - Useful for quick testing and working with bulk dumps.
  168.       
  169.       
  170.       Watch  --  Multi-Function MIDI Analyzer
  171.       
  172.       - Displays incoming MIDI data translated into readable codes.
  173.       
  174.       - Review buffer shows MIDI data with full descriptions, including 
  175.         system exclusive vendor names.
  176.       
  177.       - Buffer holds 16,000 time-stamped MIDI events (including up to 
  178.         160,000 bytes of system exclusive data).
  179.       
  180.       - Buffer can be written to either standard MIDI or binary 
  181.         (MIDIEX) files.
  182.       
  183.       - Decimal or hexadecimal numeric display.
  184.       
  185.       - Ten assignable send keys for sending short MIDI data strings, 
  186.         or standard MIDI and binary files.
  187.       
  188.       - Patch bay facility includes:  channel redirection, volume control, 
  189.         transpose, note range limiting, and other message filtering.
  190.       
  191.       - Adjustable data transfer rate and delays for sysex messages.
  192.       
  193.       
  194.       Decode  --  MIDI File Decoder
  195.       
  196.       - Lists MIDI file as readable ASCII text.
  197.       
  198.       - Output files may be edited and converted back to standard MIDI 
  199.         using Encode.
  200.       
  201.       - Time stamped events with tracks interleaved chronologically.
  202.       
  203.       - Full or abbreviated output.
  204.       
  205.       
  206.       Encode  --  MIDI File Encoder
  207.       
  208.       - Produces standard MIDI file from Decode output file.
  209.       
  210.       - Allows insertion/deletion of time intervals.
  211.       
  212.       
  213.       MIDI file filters
  214.       
  215.       - Four MIDI file processors provide numerous options
  216.         for filtering and modifying existing MIDI files.
  217.       
  218.              __________________________________________
  219.       
  220.       
  221.       MidiTools Requirements:  IBM PC-compatible with up to
  222.       300K RAM available.  Hard disk recommended.  MIDI
  223.       interfaces: Roland MPU-401 or compatibles, IBM PC
  224.       Music Feature, Key MIDIator, or Creative Labs SOUND
  225.       BLASTER with MIDI adapter box (internal sound
  226.       generator is not supported).
  227.       
  228.       
  229.       Note to MIDIator users:  If the Install program has
  230.       not been run, the -dmid command line option must be
  231.       employed for any of the included programs (which send
  232.       or receive MIDI) to operate.  See Appendix A for more
  233.       information.  Also, a CPU clock speed of at least 12
  234.       MHz may be required for reliable MIDI input processing.
  235.       
  236.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  237.       
  238.       Installation
  239.       
  240.       To install MidiTools, insert the distribution disk
  241.       ("Disk 1" if a two-disk set) in drive A and type:
  242.       
  243.            a:install
  244.       
  245.       To install from drive B, type b:install instead.
  246.       
  247.       The Install program screen contains a number of
  248.       options which must be reviewed and possibly changed
  249.       prior to initiating the installation.  You can move
  250.       between options by using the up and down arrow keys.
  251.       When you type in a new answer, your entry first
  252.       appears at the bottom of the screen.  Pressing Enter
  253.       will then change the option.  See the following
  254.       section on editing if you have questions about working
  255.       with this screen.  The various options are described
  256.       below.
  257.       
  258.       Install MidiTools files: Yes
  259.                    From drive: A
  260.                      To drive: C
  261.               Using directory: \MTOOLS
  262.       
  263.       If this is a new installation, select Yes to install
  264.       the MidiTools files from the distribution disk.  If
  265.       you are only changing MIDI parameters, select No to
  266.       bypass file installation.
  267.       
  268.       Enter the correct drive letters for the installation
  269.       disk (from) and the target disk (to).  There should be
  270.       at least 600K bytes free on the target disk.
  271.       
  272.       It is suggested that MidiTools be installed in a
  273.       subdirectory for easier file management.  The
  274.       subdirectory name selected by default is \MTOOLS.
  275.       
  276.       Default MIDI file extension: MFF
  277.       
  278.       A number of MidiTools programs which work will
  279.       standard MIDI files will assume a default file name
  280.       extension of .MFF.  If you have another preference,
  281.       such as .MID, you may change it here.
  282.       
  283.       Primary MIDI interface: MPU
  284.       
  285.       Four types of MIDI interface cards are supported.
  286.       They are identified by the following 3-letter codes.
  287.       Choose the device you wish to use as your primary
  288.       interface.
  289.       
  290.            MPU  Roland MPU compatibles.
  291.            MFC  IBM PC Music Feature Card.
  292.            SBM  Creative Labs SOUND BLASTER
  293.                 (with MIDI adapter).
  294.            MID  Key Electronics MIDIator.
  295.       
  296.       
  297.       IRQ (interrupt line):  2
  298.       
  299.       If you have changed the default interrupt level
  300.       setting (IRQ) on your MIDI interface, enter the
  301.       correct number here.  In the case of the MIDIator,
  302.       this selection will read "COM port number"; select 1
  303.       or 2 depending on which serial port is being used.
  304.       
  305.       
  306.       Base address: 330
  307.       
  308.       If you have chosen an alternate base I/O address for
  309.       your MIDI interface, enter the proper address here.
  310.       This number is in base 16 (hexadecimal); use digits 0-
  311.       9 and A-F.
  312.       
  313.       
  314.       Buffer expansion (K bytes): 0
  315.       
  316.       On some slower machines, the default staging buffer
  317.       for receiving MIDI data is too small.  The size of the
  318.       buffer may be increased here.  Enter the number of K
  319.       bytes (1K=1024) to expand the buffer.  See the -S
  320.       option in Appendix A for further information.  In
  321.       general, leave this value as 0 initially.
  322.       
  323.       
  324.       Modify AUTOEXEC.BAT file: Yes
  325.       
  326.       The installation process will make configuration
  327.       changes to your AUTOEXEC.BAT file so that the options
  328.       you selected above will be in effect each time you
  329.       restart your machine.  The specified MidiTools
  330.       directory will also be added to your DOS search path.
  331.       Prior to any change, your current AUTOEXEC.BAT file
  332.       will be copied to AUTOEXEC.OLD.  Select No to prevent
  333.       updating of AUTOEXEC.BAT.
  334.       
  335.       
  336.       When all options have been selected, Press F2 to begin
  337.       the installation.
  338.       
  339.                 _____________________________
  340.       
  341.       
  342.       To install MidiTools manually, create a subdirectory as follows:
  343.       
  344.            md \mtools
  345.            cd \mtools
  346.       
  347.       Then copy the contents of the installation disk(s) to
  348.       that subdirectory:    copy a:*.* \mtools
  349.       
  350.       For many users, no further set up is required.  If,
  351.       however, you are using non-standard settings for your
  352.       MIDI interface, or have other special system
  353.       requirements, see Appendix A for information on
  354.       command line options before running any of the
  355.       included programs.  You may also run Install at any
  356.       time to change the basic device settings.
  357.       
  358.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  359.       
  360.       Editing
  361.       
  362.       The interactive MidiTools programs (such as Play,
  363.       Watch, Record, and Filter) use a common display and
  364.       entry interface which is cell oriented, much like
  365.       typical spreadsheet programs to which you may already
  366.       be accustomed.  Data entry as described in this
  367.       section applies to all of these programs.  The terms
  368.       cell and field will be used interchangeably to refer
  369.       to areas on the screen which display information, or
  370.       into which information may be placed.
  371.       
  372.       Use the arrow keys to move from one data cell to
  373.       another.  The current cell is shown as a highlighted
  374.       block.  Below the screen's main data section is an
  375.       input and message area.  The contents of the current
  376.       cell may be changed by typing a new value (which will
  377.       first appear on the input line), and pressing the
  378.       Enter (or Return) key.  A prompting message is always
  379.       displayed immediately above the input line, describing
  380.       allowable values.  If an entry was valid, it will
  381.       appear in the cell; otherwise, an error message is
  382.       displayed and the entry may be corrected.  The
  383.       following keys may be used when entering or editing a
  384.       cell value:
  385.       
  386.          BackSpace  Delete the character to the left of
  387.                     the cursor.
  388.          Del        Delete the character at the cursor.
  389.          Insert     Switch between insert and replace modes.
  390.          Home       Move cursor to beginning of entry.
  391.          End        Move cursor to end of entry.
  392.          Left/right arrows
  393.                     Move the cursor left/right on the input line.
  394.          Esc        Cancel the entry.
  395.       
  396.       To edit an existing cell value, press Enter after the
  397.       cell is selected and the current value will be placed
  398.       in the input area for editing.  An exception is
  399.       multiple-choice cells, where Enter will cycle through
  400.       the allowable values.
  401.       
  402.       Certain action keys, such as function keys, up and
  403.       down arrows, and PgUp and PgDn, will end an entry as
  404.       if Enter had been pressed.  If there was no error, the
  405.       particular function is performed after the cell value
  406.       has been updated.  For example, pressing the down
  407.       arrow will enter the value into the cell and move to
  408.       the next cell below (if there was no error).  Pressing
  409.       the right arrow at the end of an entry will move right
  410.       to the next cell.  These are convenient for entering
  411.       values in rows and columns quickly.
  412.       
  413.       Most cells may be modified via the F9 (Decrease) and
  414.       F10 (Increase) keys.  A numeric cell will be changed
  415.       to the previous or next value in sequence.  For
  416.       multiple-choice cells, the possible values will also
  417.       be stepped through in sequence.
  418.       
  419.       There is a shortcut for setting all the values in a
  420.       row or column to the  same value.  Select a cell in
  421.       the row or column to be changed.  Enter its value, if
  422.       necessary, and then press Alt-C to set the other
  423.       values in the column, or Alt-R to set the other values
  424.       in the row.  Only cells of the same type and range can
  425.       be set in this way.
  426.       
  427.       Press F1 on any screen for Help.  When reading help
  428.       text on one of the help screens, the optional search
  429.       field may be used to scan for a particular string.
  430.       Type a string and press Enter.  The line containing
  431.       the string is displayed near the top of the page.  The
  432.       search string will remain active, so pressing Enter
  433.       subsequently will locate additional occurrences.
  434.       Press Esc to clear the search string.  If the search
  435.       field is blank, pressing Enter will recall the most
  436.       recently entered string.  When using a mouse, clicking
  437.       on any word will locate the next occurrence of the
  438.       word on a subsequent page.
  439.       
  440.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  441.       
  442.       Mouse Usage
  443.       
  444.       When a Microsoft-compatible mouse is available and the
  445.       mouse driver software properly loaded, operations
  446.       using the mouse will be enabled.  The mouse may be
  447.       used to select an input cell on the screen by
  448.       positioning the small mouse cursor on the cell and
  449.       single clicking either button.  The cell will be
  450.       highlighted, just as if the cell had been selected
  451.       using the arrow keys.
  452.       
  453.       Any cell which can be changed using the F10 or F9 keys
  454.       (to increase or decrease the value) may be changed in
  455.       a similar manner using the mouse.  Once a cell is
  456.       selected by clicking on it, subsequent clicking of the
  457.       left button will decrease the cell value, and clicking
  458.       of the right button will increase it.
  459.       
  460.       In mouse mode, the function key designations normally
  461.       displayed at the bottom of the screen are changed to
  462.       selector buttons for each available function.
  463.       Clicking on a button will perform the indicated
  464.       function.  All functions may still be invoked via the
  465.       normal keyboard equivalents.
  466.       
  467.       Clicking on the small block in the upper left corner
  468.       will exit the current screen.  For main screens, this
  469.       will exit the program entirely.  On secondary screens,
  470.       such as a help display, clicking on this block will
  471.       return to the previous screen.
  472.       
  473.       
  474.       _________________________________________________________________
  475.       
  476.       * Play - MIDI File Player
  477.       
  478.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  479.       
  480.       Introduction
  481.       
  482.       The Play program is a versatile playback utility for
  483.       standard MIDI files.  Although it will handle many
  484.       chores done by typical sequencing packages, it will
  485.       not record; it is intended as a back-end tool,
  486.       optimized for playback.
  487.       
  488.       Play works at two distinct levels: command line and
  489.       interactive.  Sometimes a full-blown sequencer is more
  490.       than you really need.  Play can be used as a quick
  491.       auditioning tool.  Think of it like the DOS "type"
  492.       command, but for song files.  Enter "play" and the
  493.       name of a MIDI file and sit back and listen.  Or if
  494.       you have a list of files, Play can handle them
  495.       automatically, too.  This is command line mode.
  496.       
  497.       When run interactively, Play goes well beyond the
  498.       basics to provide most of the playback control you
  499.       might need.  When a MIDI file is loaded by Play, it is
  500.       scanned and all the pertinent data is displayed by
  501.       channel, including note range and maximum volume.  Any
  502.       channel may be redirected to any other, volume levels
  503.       may be changed, and notes may be transposed.  Such
  504.       configuration changes, along with textual notes, may
  505.       be saved for future use.  Normal player functions such
  506.       as play, pause, rewind, fast forward, skip, tempo
  507.       control, and song position selection are also
  508.       available.  Limited revision capability is also
  509.       provided to permanently change playing options such as
  510.       channels, transpose, and volume.  With a mouse, it is
  511.       even possible to "conduct" the overall dynamics in
  512.       real time.
  513.       
  514.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  515.       
  516.       Playing a file
  517.       
  518.       To get started, type "play" (with possible options
  519.       discussed later).  After it starts up, Play will
  520.       expect you to enter the name of a MIDI file to load.
  521.       Type the name of the file and press Enter.  If you do
  522.       not enter a 3-character file extension, the following
  523.       are tried: .MFF, .MID, .STD, and .SMF.  After the file
  524.       has been found and loaded, it will be scanned for the
  525.       various types of data described below.  This may take
  526.       some time, unless the data has been previously saved
  527.       for this file using the F4 (Save) function.  When
  528.       scanning is complete, press F7 to begin play.  Note
  529.       that any operation may be performed while a song is
  530.       playing.
  531.       
  532.       When file name is entered followed by a space and a
  533.       number from 1 to 16, all output channels will be
  534.       forced to the number specified.  This will also
  535.       disable program changes.  This is a shortcut for quick
  536.       auditioning of songs having many channels and changing
  537.       voices.  The same effect can be achieved by manually
  538.       setting the parameters for each channel as described
  539.       below.
  540.       
  541.       If the MIDI file name is entered with wildcard
  542.       characters (* or ?), a list of matching files will be
  543.       displayed.  Move to the desired file and press Enter
  544.       (or click if using a mouse) to select and load the
  545.       highlighted file.  The same rules used by DOS for file
  546.       matching apply. The match specification can be changed
  547.       by typing a new one in the cell at the top of the file
  548.       list screen.  The F2 (Files) function may also be used
  549.       to display and select from a list of files.
  550.       
  551.       In addition to the standard MIDI file formats 0, 1,
  552.       and 2, Play supports the Creative Music File format
  553.       (CMF), which is a close variant of standard MIDI
  554.       format 0.
  555.       
  556.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  557.       
  558.       Data cells
  559.       
  560.       The various entry and display cells on the screen
  561.       are described in this section.
  562.       
  563.       File
  564.       
  565.       The File cell allows the entry of a new file name to
  566.       load and play as described previously.
  567.       
  568.       List
  569.       
  570.       When a play list is in use, this cell shows the play
  571.       list file name.  It may also be used to enter a new
  572.       play list name.  Play lists are described in detail
  573.       later.
  574.       
  575.       Tempo or Speed
  576.       
  577.       For metrically specified time bases, this cell
  578.       controls the overall, or "master", tempo in beats per
  579.       minute.  The first tempo value encountered in the file
  580.       is used as the reference for subsequent manual
  581.       changes.  If the file does not specify tempo, 120
  582.       quarter note beats per minute is assumed.  The speed
  583.       of play at any point is determined by the ratio of the
  584.       current setting to the original value.  For example,
  585.       if the original value is 120, play will proceed at
  586.       half speed if the master tempo is changed to 60.
  587.       
  588.       For files having a time base specified in SMPTE or
  589.       MIDI time code units, this cell is labeled as Speed,
  590.       rather than Tempo, and is given as a percentage of the
  591.       initial speed (100%).  Half speed is 50%, double speed
  592.       is 200%, etc.
  593.       
  594.       When using an external MIDI clock for synchronization
  595.       (selected by pressing Alt-F7), actual tempo is
  596.       determined by the rate at which clock messages are
  597.       received.
  598.       
  599.       Time
  600.       
  601.       Time specifies the current song position in minutes
  602.       and seconds. This cell is updated every second while
  603.       play is in progress. You may select and change this
  604.       value at any time to move to a different position.  It
  605.       may take a few seconds to skip to the new position,
  606.       depending on how far away it is.  Selecting an earlier
  607.       location requires scanning from the beginning.  The F6
  608.       (fast forward) function advances the position 10
  609.       seconds at a time.  F10 may also be used when this
  610.       cell is selected to advance 1 second.  F9 (decrease)
  611.       is not recommended.
  612.       
  613.       To the right of the current time is the duration of
  614.       the song, also in minutes and seconds.  Note that when
  615.       the master tempo is changed, the duration is adjusted
  616.       accordingly.
  617.       
  618.       Note: The current time cell represents elapsed time
  619.       since the start of play.  If the master tempo is
  620.       changed while playing, counting continues in one
  621.       second intervals and the ending time may not match the
  622.       song duration for that pass.
  623.       
  624.       Meas  (Measure)
  625.       
  626.       This cell indicates the current song position as
  627.       measure:beat.  It is updated on each beat as play
  628.       progresses.  You may change the song position as with
  629.       the Time cell above by entering the desired measure
  630.       and beat.  A single number entered without a colon is
  631.       taken to be a full measure, and the start of beat 1
  632.       within that measure is assumed.  The final measure and
  633.       beat of the song are displayed to the right.
  634.       
  635.       Time Sig
  636.       
  637.       The time signature currently in use is displayed here
  638.       and is updated if any time signature changes occur in
  639.       the music.
  640.       
  641.       Prog Ch (Program Changes)
  642.       
  643.       This cell is an overall MIDI performance option and
  644.       determines whether program (patch) change messages in
  645.       the original MIDI file are to be sent while playing.
  646.       Selecting On enables program changes, and Off disables
  647.       them.  It is often desirable to suppress program
  648.       changes when the target instrument is not set up to
  649.       use the original program numbers.  Program changes are
  650.       enabled by default.
  651.       
  652.       
  653.       Column data cells
  654.       
  655.       Chan (Channel)
  656.       
  657.       The channel numbers on the left of the screen refer to
  658.       original MIDI channels used in the file.  Information
  659.       from the MIDI file relating to particular channels
  660.       will appear on their respective lines.  Only the first
  661.       12 channels are displayed initially.  To see the
  662.       remaining 4 channels, press Page Down to shift down to
  663.       channels 5 thru 16.  Press Page Up to restore the
  664.       display.  An arrow indicator () will appear in front
  665.       of channel 12 as a reminder if there is any note data
  666.       for channels 13 - 16.
  667.       
  668.       The line "All" contains summary data and master
  669.       controls for all of the channel lines.  Entering a
  670.       value in a changeable cell on this line will change
  671.       all values in its column.
  672.       
  673.       Notes
  674.       
  675.       This indicates the maximum number of notes which are
  676.       played concurrently on the channel.  The number is
  677.       determined during scanning based on note-on, note-off,
  678.       and all-off messages.  The mono or poly mode state is
  679.       not considered in the count.  The "All" line indicates
  680.       the total number of concurrent notes played in the
  681.       song.  Since some MIDI sequences do not turn off all
  682.       sounding notes, this value may sometimes be larger
  683.       than expected.
  684.       
  685.       Lo/Hi
  686.       
  687.       These indicate the lowest and highest note pitches
  688.       used on the channel.  The reference range is C-2 to G8
  689.       for MIDI notes 0 to 127.  Middle C is C3 (MIDI note
  690.       60).  Some manufacturers designate this note C4.  The
  691.       "All" line shows the lowest and highest note values
  692.       played in the file.
  693.       
  694.       Vol (Volume)
  695.       
  696.       This is the maximum volume of notes played on the
  697.       channel, from 0 to 100 percent (determined by note
  698.       velocities).  If this value is changed, subsequent
  699.       note volumes will be adjusted relative to the original
  700.       maximum value for the channel.  If changes appear to
  701.       have no effect on output volume, it is usually the
  702.       case that the particular instrument does not support
  703.       or is not configured for velocity sensitivity.
  704.       Entering a value in the corresponding cell on the
  705.       "All" line will set all channel volumes to the value
  706.       entered.
  707.       
  708.       Map
  709.       
  710.       This cell determines the channel to which any original
  711.       MIDI messages using this channel will be redirected (1
  712.       to 16).  By default, it is the same channel.  Entering
  713.       a channel map value on the "All" line will redirect
  714.       all channels to the given channel.
  715.       
  716.       Out (Output enable)
  717.       
  718.       This cell permits channels to be selectively enabled
  719.       for output.  By default, all channels are enabled.
  720.       Changing the Out cell on the "All" line will enable or
  721.       disable all of the channels.
  722.       
  723.       Xpos (Transpose)
  724.       
  725.       Notes for a particular channel may be transposed any
  726.       number of half steps from -127 to +127.  Notes which
  727.       transpose below 0 or above 127 will not be played.
  728.       Setting the "All" line transpose value will change all
  729.       of the channels to the entered value.
  730.       
  731.       Tracks
  732.       
  733.       These are the numbers of MIDI file tracks which
  734.       contain messages on the given channel.  There may be
  735.       more tracks than can be listed; use the program in
  736.       scan mode to get full track information.  Note that in
  737.       format 1 MIDI files, track 1 typically contains only
  738.       tempo information and will probably not appear.
  739.       
  740.       Info
  741.       
  742.       This area originally contains textual information
  743.       found while scanning the track(s) corresponding to the
  744.       channel.  The text may be changed as desired to record
  745.       information about the file for future reference.  It
  746.       can be saved along with the rest of the screen data by
  747.       using the F4 (Save) function.  See the MIDI
  748.       Initialization section for further uses of the Info
  749.       area.
  750.       
  751.       
  752.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  753.       
  754.       Saving set up
  755.       
  756.       When the F4 (Save) function key is pressed, the
  757.       current data on the screen will be saved to a file.
  758.       The same name as the current MIDI file is used, but
  759.       with the extension ".PLA".  Whenever a .PLA file
  760.       corresponding to a MIDI file being loaded is found,
  761.       that data will also be loaded and the (sometimes slow)
  762.       initial scan step is eliminated.  F4 will replace the
  763.       existing .PLA file whenever it is pressed.
  764.       
  765.       Note:  F4 does not alter the basic MIDI file in any
  766.       way.
  767.       
  768.       
  769.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  770.       
  771.       Play lists
  772.       
  773.       Play lists are ordinary text files containing a list
  774.       of MIDI (or CMF) file names.  Such a file can be
  775.       created with any text editor, or with a wordprocessor
  776.       capable of "exporting" ASCII files.  They may also be
  777.       created by Play via the file selection screen.  Play
  778.       list files permit automatic playing of songs in the
  779.       list without intervention.
  780.       
  781.       A play list file name is entered in either the "File:"
  782.       cell or the "List:" cell.  To enter a list file name
  783.       in the "File:" cell, however, it must be preceded by
  784.       the character "@" to indicate that it is a play list.
  785.       A file name which actually begins with "@" is also
  786.       assumed to be a play list.
  787.       
  788.       Play expects one file name per line in a play list,
  789.       followed by an optional channel override number.  If
  790.       corresponding .PLA files exist, they will be used to
  791.       control MIDI output.  Note, however, that if a channel
  792.       number is specified following the MIDI file name, it
  793.       will take precedence, and the .PLA file will be
  794.       ignored.  Up to 30 files may be listed.
  795.       
  796.       Once a play list is entered, the first file will be
  797.       loaded and readied for play.  The name of the current
  798.       song file and play list are displayed.  After pressing
  799.       F7 (or clicking on play/pause using a mouse), playing
  800.       will continue uninterrupted, one song after the other.
  801.       Play ceases when the end of the list is reached.  Play
  802.       may be paused and resumed at any point.  Pressing F5
  803.       (Rewind) will go to the beginning of the current song
  804.       if it is past 0:00; otherwise, F5 functions as a
  805.       reverse skip and will load the previous song in the
  806.       list.  F8 will skip to the next song in the list.  It
  807.       is suggested that F4 (Save) be done ahead of time for
  808.       each file in the list to speed subsequent loading and
  809.       skipping.  The current song number and total number of
  810.       songs is displayed beneath the "List:" cell.
  811.       
  812.       Play list files may be chained together to produce
  813.       lists of any length.  Simply specify a play list file
  814.       (beginning with @) as the last line in a given list to
  815.       indicate the next play list file to load.
  816.       Typing a regular MIDI file name or another play list
  817.       name in the "File:" or "List:" cells will cancel the
  818.       current play list and load the requested file.  Play
  819.       lists will not advance while pushed to DOS or when
  820.       viewing the help or file selection screens.
  821.       
  822.       
  823.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  824.       
  825.       File Select
  826.       
  827.       To obtain a list of MIDI files from which to select a
  828.       new song, do one of the following on the main screen:
  829.       Press F2; click on "Files" with a mouse; or enter a
  830.       file name containing wildcard characters (* or ?).
  831.       The file selection screen will display a list of all
  832.       matching files.
  833.       
  834.       The cell at the top left of the file selection screen
  835.       shows the wildcard pattern used.  It may be changed by
  836.       typing a new file specification into it.  The list of
  837.       matching files will change accordingly.  To choose a
  838.       file to play, move the cursor to it and press Enter
  839.       (or double click on it using the mouse).  The program
  840.       will return to the main screen and load the selected
  841.       file.
  842.       
  843.       Another option while on the file selection screen is
  844.       to create a play list file.  Press F4 (or click on
  845.       "Create list"), and you will be prompted for a play
  846.       list file name.  After entering the name, an optional
  847.       output channel will be requested.  If given, this
  848.       number will be added after each file name in the play
  849.       list to force output to the given channel on playback.
  850.       Press Enter if none is desired.  Then you may freely
  851.       move around the file screen and "select" the ones to
  852.       be added to the play list by pressing Enter (or double
  853.       clicking the mouse).  When done, press F4 (or click
  854.       "Create list") again.  You will be returned to the
  855.       main screen and the first play list song will be
  856.       loaded, ready to start playing.
  857.       
  858.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  859.       
  860.       Sliders
  861.       
  862.       Two "slider" controls are available only when the
  863.       mouse is active.  The left edge slider is a master
  864.       volume control.  Click above the center to increase
  865.       volume, below the center to decrease volume.  If note
  866.       velocities are already at maximum (or adjusted to
  867.       maximum via the channel volume controls), increasing
  868.       the master volume will have no further effect.
  869.       
  870.       Volume changes are made in specific increments of
  871.       velocity for each position above or below center.  The
  872.       sensitivity may be decreased or increased by pressing
  873.       Alt-F9 or Alt-F10, respectively. The default
  874.       sensitivity is 3 velocity units per position, with
  875.       possible values ranging from 1 to 9 units per
  876.       position.
  877.       
  878.       If both mouse buttons are clicked simultaneously while
  879.       the cursor is on the volume slider, the level
  880.       indicator will be released and further clicking is not
  881.       necessary.  Whenever the mouse cursor is on the slider
  882.       bar, the level indicator will follow it.  This is to
  883.       permit continuous adjustments without holding the
  884.       button down, i.e., it is possible to "conduct" the
  885.       performance in terms of overall volume.  See also the
  886.       Updating section.
  887.       
  888.       The right edge slider allows rough positioning within
  889.       the song.  Clicking anywhere along its length will set
  890.       the song pointer to the corresponding song location.
  891.       The top is the beginning, and the bottom is near the
  892.       end.  As the song plays, the marker will move down the
  893.       screen to show the current, approximate song position.
  894.       The full length of the slider represents the full
  895.       song, even if the tempo has been altered (prior to
  896.       play).
  897.       
  898.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  899.       
  900.       MIDI Initialization
  901.       
  902.       Users familiar with the construction of MIDI messages
  903.       may use the Info fields to specify MIDI initialization
  904.       sequences.  If a string of characters starting with a
  905.       dollar sign ($) is encountered in an Info field, it is
  906.       assumed to be a series of hexadecimal digits (0-9, A-
  907.       F) representing MIDI codes to be sent prior to the
  908.       beginning of play.  Two-byte MIDI codes may be strung
  909.       together without separators, or may be delimited by
  910.       commas or spaces.  To end a MIDI sequence and include
  911.       other text in an Info field, use a period at the end
  912.       of the sequence.
  913.       
  914.       The string "$C0 06" would mean change to program 6 on
  915.       the first MIDI channel.  That could also be entered as
  916.       "$C006" or just "$C06" (06 assumed for the final 6).
  917.       Unrecognized characters will be treated as separators.
  918.       Letters may be in upper or lower case.
  919.       
  920.       These sequences may appear anywhere in the 16 Info
  921.       fields, and are processed in order from top to bottom.
  922.       The letter "N" may be included in a sequence to
  923.       specify the 4-bit channel of the line on which it
  924.       appears.  For example, "$CN 06" would send a program
  925.       change on the channel indicated by the Map column for
  926.       the line in which it occurs.  This is generally a
  927.       better method to use, since channel mapping may be
  928.       changed without worrying about channel messages in the
  929.       initialization string.  This is the only relationship
  930.       of the string to a particular screen line; otherwise,
  931.       any line may be used.
  932.       
  933.       
  934.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  935.       
  936.       Updating
  937.       
  938.       Selected playing parameters may be permanently changed
  939.       in the MIDI file through the use of "Modify Mode".
  940.       This is not the same as changes saved in the auxiliary
  941.       .PLA files, which do not alter the basic MIDI file.
  942.       Modify mode is toggled on or off using the Alt-F5 key
  943.       (or clicking on Mod if using a mouse).  While modify
  944.       mode is on, any portions of the song traversed by
  945.       playing or skipping are changed according to the
  946.       following parameter values in effect: channel map,
  947.       channel volume, transpose, and master volume.
  948.       
  949.       Note: Once such changes are made, it is possible that
  950.       the only way to restore the original values is to
  951.       reload the MIDI file, so care should be exercised.
  952.       For example, if a wide range of volume levels existed
  953.       and they are all forced to maximum, it is not possible
  954.       to restore the original range.
  955.       
  956.       In order to save changes made under modify mode, press
  957.       Alt-F4.  This will prompt for a MIDI file name, and
  958.       then write a new file.  Remember that only sections
  959.       played under modify mode will have been altered.  The
  960.       easiest way to quickly apply changes to the entire
  961.       song is to rewind and then position to the end of the
  962.       song.
  963.       
  964.       Some examples
  965.       
  966.       To change all channels to play on channel 1:
  967.       
  968.       - Set the channel map field for each active channel
  969.         to 1.  A shortcut is to set one of them and press
  970.         Alt-C to make the others the same.
  971.       - Press Alt-F5 to turn on modify mode.
  972.       - Play (or skip) through the song.
  973.       - Save the file using Alt-F4.
  974.       
  975.       To transpose a section of the song:
  976.       
  977.       - Set the transpose field for all affected channels.
  978.       - Position to just before the section to be
  979.         transposed.
  980.       - Start playing (F7).
  981.       - Press Alt-F5 when the section begins (this is a
  982.         type of "punch in" process - you need to be
  983.         accurate).
  984.       - Press Alt-F5 the instant the section to be
  985.         transposed is complete to turn off modify mode.
  986.       - To listen to your change, first restore the
  987.         transpose fields to their original values (or
  988.         playback will appear to be transposed twice).
  989.       - Save the file using Alt-F4.
  990.       
  991.       To punch in a volume correction:
  992.       
  993.       - Change the volume field for the affected channel(s).
  994.       - Position to just before the affected area.
  995.       - Start playing (F7).
  996.       - Press Alt-F5 at the correction point, and again
  997.         after it.
  998.       - Save using Alt-F4.
  999.       
  1000.       To change the overall volume level of the song in real
  1001.       time using a mouse:
  1002.       
  1003.       - Rewind.
  1004.       - Set the volume slider to the initial volume level.
  1005.       - Click both mouse buttons to release the slider if
  1006.         desired.
  1007.       - Press Alt-F5.
  1008.       - Start playing (F7).
  1009.       - Move the slider up and down to adjust the volume
  1010.         level.
  1011.       - When done, save using Alt-F4.
  1012.       
  1013.       It is best to practice these operations a few times
  1014.       before actually turning on Modify mode.  Remember that
  1015.       you can always reload the original MIDI file if
  1016.       necessary (as long as you haven't replaced it with
  1017.       Alt-F4).  Don't forget that changes are applied every
  1018.       time a section is played, so changes may accumulate if
  1019.       you are not careful.
  1020.       
  1021.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1022.       
  1023.       MIDI Sync
  1024.       
  1025.       Synchronization to an external MIDI sequencer may be
  1026.       selected by pressing Alt-F7.  When in external sync
  1027.       mode, Play responds to the MIDI messages Start, Stop,
  1028.       Continue, Clock, Song Position Pointer, and Song
  1029.       Select.  This mode is indicated by a flashing
  1030.       Play/Pause indicator.  Once external sync is enabled,
  1031.       Play acts as a slave to the remote device.  The song
  1032.       will play only after a Start or Continue message is
  1033.       received, followed by a succession of Clock messages.
  1034.       The external clock ticks determine the song tempo; the
  1035.       Tempo value on the screen has no effect.  If a play
  1036.       list has been loaded, Song Select messages will load
  1037.       a specific song from the play list.
  1038.       
  1039.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1040.       
  1041.       Function Descriptions
  1042.       
  1043.       
  1044.         Function        Mouse
  1045.           Key          Function       Description
  1046.       
  1047.            F1         Help          Display help information.
  1048.            F2         Files         Display file selection screen.
  1049.            F3         Exit          Exit program.
  1050.            F4         Save          Save configuration to disk (.PLA file).
  1051.            F5         |<<           Rewind to beginning.  If at 00:00, skip
  1052.                                     to previous song in play list.
  1053.            F6         >>            Fast forward (advances 10 seconds).
  1054.            F7         ||            Toggle between play and pause.
  1055.            F8         >>|           Skip to next song in play list.
  1056.            F9         Left button   Decrease value of current cell.
  1057.            F10        Right button  Increase value of current cell.
  1058.            Home                     Go to first screen cell (File:).
  1059.            Alt-F1                   Toggle channel activity indicators
  1060.                                     on or off.
  1061.                                     May be necessary to reduce screen
  1062.                                     updates on slower machines.
  1063.            Alt-F2     Thru          Toggle MIDI thru on or off.  If on,
  1064.                                     all MIDI input is echoed to output.
  1065.                                     Default is off.
  1066.            Alt-F3     Push          Push to DOS.  Allows entry of DOS
  1067.                                     commands.  Enter "exit" to return.
  1068.            Alt-F4     Write         Write a new MIDI file.
  1069.            Alt-F5     Mod           Toggle modify mode on or off.
  1070.                                     Default is off.
  1071.            Alt-F7     Sync          Toggle between internal sync and
  1072.                                     external MIDI sync.  Default is
  1073.                                     internal.
  1074.            Alt-F9                   Decrease volume slider sensitivity.
  1075.            Alt-F10                  Increase volume slider sensitivity.
  1076.            Page Up    PgUp          Display channels 1-12.
  1077.            Page Down  PgDn          Display channels 5-16.
  1078.            Alt-C                    Change all values in column to be
  1079.                                     the same as the current cell.
  1080.       
  1081.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1082.       
  1083.       Play command line
  1084.       
  1085.       The basic format of the Play command line is as follows:
  1086.       
  1087.                 play  File name  Mode  -Options
  1088.       
  1089.       If File name is specified, Play is run non-
  1090.       interactively (i.e., the file is just played, without
  1091.       the full-screen editing display).  Interactive mode is
  1092.       selected by leaving off the file name.  A play list
  1093.       may be specified by preceding the file name with "@".
  1094.       
  1095.       Mode may only be specified if a file name is given.
  1096.       
  1097.       If Mode is a number from 1 to 16, it indicates the
  1098.       channel to which all channel messages will be
  1099.       redirected.  This is useful for quick "auditioning" of
  1100.       a file when the actual channels are unknown, or when
  1101.       they do not match the equipment settings.  For more
  1102.       control, run Play interactively.
  1103.       
  1104.       If Mode is the letter "S" (for Scan), no playing is
  1105.       done, but the file is scanned and pertinent channel
  1106.       and track information is listed (similar to that
  1107.       displayed in interactive mode).  To capture scan
  1108.       output to a file, use standard DOS output redirection.
  1109.       For example:
  1110.       
  1111.                 play midifile s >outfile
  1112.       
  1113.       If Mode is the letter "D", the events in the MIDI file
  1114.       are listed on the screen as they are played, along
  1115.       with the corresponding track times in microseconds.
  1116.       Playing may be choppy in this mode due to time delays
  1117.       as information is displayed on the screen.  If "X" is
  1118.       specified instead of "D", no playing occurs - only
  1119.       events are listed.  Output may be captured to a file
  1120.       as mentioned above.
  1121.       
  1122.       
  1123.       -Options may consist of any of the device setup
  1124.       options given in Appendix A, plus -w, which specifies
  1125.       the number of seconds to wait before loading the next
  1126.       song when advancing automatically.  The default is -w1
  1127.       (one second).  Separate all options with at least one
  1128.       space.
  1129.       
  1130.       
  1131.       
  1132.       Examples:
  1133.       
  1134.            play           (Runs the program interactively)
  1135.       
  1136.            play test.mff  (Plays the file non-interactively)
  1137.       
  1138.            play test.mff s     (Scans file and lists data)
  1139.       
  1140.            play test.mff 3     (Maps all channels to channel 3)
  1141.       
  1142.            play -dmpu::336     (Interactive; MPU address 336h)
  1143.       
  1144.       
  1145.       
  1146.       The following applies when Play is used in batch (non-
  1147.       interactive) mode:
  1148.       
  1149.       Once play begins, it will proceed until the end of the
  1150.       song, or until the letter "Q" is pressed.  If a play
  1151.       list file name was given, each song in the list will
  1152.       be played in succession.  Pressing the letter "S" will
  1153.       end the current song and skip to the next.  When the -
  1154.       w option is used with a play list, play will pause
  1155.       between songs for the amount of time specified.  While
  1156.       pausing, pressing any key will start the next song
  1157.       immediately.
  1158.       
  1159.       
  1160.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1161.       
  1162.       JLCooper CS-1 Control Station
  1163.       
  1164.       The Play program may also be operated through use of
  1165.       the JLCooper Electronics CS-1 control box.  Prior to
  1166.       using Play with the CS-1, its installable driver must
  1167.       have been loaded by running cs1drv (included).  Play
  1168.       will automatically detect the presence of the driver
  1169.       and enable CS-1 functions.
  1170.       
  1171.       Following are the control / key equivalents:
  1172.       
  1173.       
  1174.               CS-1                  Keyboard / Mouse
  1175.       
  1176.          Diamond buttons            Arrow keys
  1177.          Wheel                      F10/F9 (Increase/Decrease)
  1178.          F1 - F4                    Same
  1179.          Shift-F1 - Shift-F4        Alt-F1 - Alt-F4
  1180.          Online                     Enter
  1181.          Rewind                     Same
  1182.          Fast Forward               Same
  1183.          Shift-FFwd                 Skip forward
  1184.          Stop                       Pause
  1185.          Play                       Play/Pause
  1186.          Record                     Toggle modify mode
  1187.       
  1188.       
  1189.       _________________________________________________________________
  1190.       
  1191.       * Play/R - Memory-resident MIDI File Player
  1192.       
  1193.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1194.       
  1195.       Introduction
  1196.       
  1197.       Play/R is a trimmed-down version of Play which can run
  1198.       unattended in the background while you use your
  1199.       computer for other tasks.  It can play any standard
  1200.       MIDI file with up to 16 tracks.  Now you don't need to
  1201.       be without your music while working on spreadsheets,
  1202.       documents, or doing any other computing chores.
  1203.       
  1204.       A pop-up window allows playback controls for pause,
  1205.       rewind, fast forward, skip, and volume.  Individual
  1206.       files or Play-compatible song lists can be specified.
  1207.       Play/R requires approximately 60K of RAM, plus MIDI
  1208.       file size.  It also supports an external programming
  1209.       interface which allows it to be controlled by other
  1210.       applications.
  1211.       
  1212.       Play/R runs as a TSR, or Terminate and Stay Resident
  1213.       program.  Once loaded, it sits quietly until the user
  1214.       invokes it by pressing a special "hot key".  A small
  1215.       window pops up allowing the entry of a standard MIDI
  1216.       file name or play list of multiple files. Playing
  1217.       begins immediately and the user may control various
  1218.       functions such as rewind, play, pause, etc., while the
  1219.       pop up window is displayed.  After the window is
  1220.       closed, play continues in the background.
  1221.       
  1222.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1223.       
  1224.       Command line
  1225.       
  1226.       Play/R is loaded using the following command format:
  1227.       
  1228.            playr  File name  -Options
  1229.       
  1230.       File name is an optional file to be played
  1231.       immediately.  If not specified, no playing will occur
  1232.       until Play/R is popped up and a file name entered.  A
  1233.       play list may also be specified by preceding the file
  1234.       name with "@".
  1235.       
  1236.       -Options includes the device options given in Appendix A,
  1237.       plus any of the following:
  1238.       
  1239.         -a     Indicates the amount of memory (in K bytes;
  1240.                1K = 1024 bytes) to allocate for MIDI file storage.
  1241.                The default is -a24 (24K bytes). See -l below also.
  1242.       
  1243.         -m     Selects the operating mode: 1, 2, or 3.  The default
  1244.                is -m1.  Modes are described below.
  1245.       
  1246.         -k     Selects the "hot key" which will pop up the
  1247.                interactive display.  Choose from the letters
  1248.                A to Z. After the program is loaded, press Alt
  1249.                and this letter simultaneously.  The default is
  1250.                -kp (which selects Alt-P).
  1251.       
  1252.         -l     Specifies that LIM EMS (expanded memory) is to be
  1253.                used for MIDI file storage if available.  This reduces
  1254.                the resident size of Play/R substantially.
  1255.       
  1256.         -w     Specifies the time in seconds to wait before loading
  1257.                the next song when advancing through a play list.
  1258.                The default is -w1 (one second).
  1259.       
  1260.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1261.       
  1262.       Files
  1263.       
  1264.       The file name given on the command line, or after pop
  1265.       up, must indicate a standard MIDI format (or CMF) file
  1266.       in the current directory, or include a device and path
  1267.       name.  If the name is preceded by the character "@",
  1268.       it is taken to mean the name of a "play list" file.
  1269.       A play list is a text file containing the name of one
  1270.       song file per line.  Up to 30 files may be given in a
  1271.       play  list.  Songs in the list advance automatically
  1272.       to the next when playing, and the list will loop
  1273.       continuously.  Files beginning with "@" as part of the
  1274.       actual name are also assumed to be play lists (if @ is
  1275.       the first character entered).
  1276.       
  1277.       At the window prompt, or in a play list, file names
  1278.       may be followed by a space and a number from 1 to 16,
  1279.       indicating the MIDI channel on which to play all notes
  1280.       (regardless of MIDI channel designations in the file).
  1281.       If a channel is specified in this way, program changes
  1282.       are disabled, since they are not likely to make sense
  1283.       when merging multiple channels.
  1284.       
  1285.       Auxiliary .PLA files created by Play version 2.2 and
  1286.       higher will be loaded and used to control play if
  1287.       available.  A channel number specified along with the
  1288.       file name will take precedence over the .PLA file.
  1289.       
  1290.       
  1291.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1292.       
  1293.       Pop up window
  1294.       
  1295.       To invoke Play/R after it has been loaded, press Alt-P
  1296.       (or the alternate key specified on the command line).
  1297.       It may be necessary to hold the key for up to 2 seconds
  1298.       before the pop up window appears, depending on system
  1299.       activity.  Pop up can only occur on a text mode
  1300.       screen - not a graphics screen.  You will receive an
  1301.       audible indication when pop up is not possible.
  1302.       
  1303.       The pop up window indicates the song file currently
  1304.       being played, the length of the file in minutes and
  1305.       seconds, and the current song position.  Song length
  1306.       is only displayed if a .PLA file is available, or if
  1307.       the song has played through once and the length has
  1308.       been determined.  Also, there is a space in which to
  1309.       enter a new song file to play.  The following
  1310.       keystroke functions are defined:
  1311.       
  1312.            F3             Exit and remove from memory
  1313.                           (when safe to do so).
  1314.            F5             Rewind to beginning of song.
  1315.                           If using a play list and already
  1316.                           at the beginning, move to previous
  1317.                           song.
  1318.            F6             Fast forward - advances 10 seconds.
  1319.            F7             Play / Pause
  1320.            F8             Skip to next song in play list.
  1321.                           Check song length if no play list.
  1322.            Esc            Close window and resume processing.
  1323.            Up/Down arrow  Increase/decrease volume.
  1324.            Alt-M          Advances through the 3 play modes
  1325.                           described below.
  1326.            Alt-R          Reset the MIDI interface.  Play/R
  1327.                           expects the MIDI interface to be
  1328.                           in a specific mode.  If another MIDI
  1329.                           program changes it, Alt-R will restore
  1330.                           it to the necessary state.  Specifically,
  1331.                           the MPU interface needs to be in "UART"
  1332.                           or "dumb" mode. If another program changes
  1333.                           to intelligent mode or does a hardware
  1334.                           reset, Play/R will not appear to be playing.
  1335.                           Press Alt-R to restore the interface.
  1336.       
  1337.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1338.       
  1339.       Modes
  1340.       
  1341.       The following operating modes, selected via the -m command
  1342.       line option or by pressing Alt-M on the pop up screen,
  1343.       are defined:
  1344.       
  1345.       Mode 1:   Use background interrupt stepping (default mode).
  1346.       
  1347.       Mode 2:   Same as mode 1, plus conditional timer stepping.
  1348.       
  1349.       Mode 3:   Same as mode 1, plus unconditional timer stepping.
  1350.       
  1351.       
  1352.       Mode 1 relies on the underlying TSR mechanism,
  1353.       TesSeRact, to determine when it is absolutely safe to
  1354.       interrupt DOS in order to play or pop up.  These are
  1355.       very stringent requirements, resulting in intermittent
  1356.       play while heavy system activity is in progress, and
  1357.       possibly no playing in certain applications.
  1358.       
  1359.       Mode 2 adds use of the system timer (about 18 ticks
  1360.       per second) to advance play.  This permits play to
  1361.       continue while running programs which otherwise would
  1362.       not allow Play/R to operate at all.  Any DOS activity
  1363.       will temporarily suspend play, however.  See warnings
  1364.       for mode 3 below.
  1365.       
  1366.       Mode 3 combines idle time processing with forced timer
  1367.       stepping to assure high accuracy and continuous play
  1368.       regardless of other system activity.  While it is
  1369.       unlikely that timer interrupts will cause problems,
  1370.       this is technically "unsafe".  High-speed operations
  1371.       such as asynchronous port data transfers and local
  1372.       area network activity may not work properly if
  1373.       interrupted for even a short time.  Critical functions
  1374.       such as backups are not recommended while play is in
  1375.       progress.
  1376.       
  1377.       Users of 2/3/486 processors may select an additional
  1378.       command line option, -c, to specify AT real-time clock
  1379.       usage, in which case the mode 2 and 3 interrupt
  1380.       interval changes to 5 milliseconds.  Because of the
  1381.       amount of system overhead, noticeable slowing of other
  1382.       programs may occur.
  1383.       
  1384.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1385.       
  1386.       Programming
  1387.       
  1388.       Play/R and it's non-pop up version Play/D provide an
  1389.       applications programming interface which allows their
  1390.       control by many available languages, including C, Pascal,
  1391.       Basic, GRASP, and assembly.  Play/R and Play/D serve as
  1392.       loadable MIDI drivers which can be used to control playback
  1393.       of existing MIDI files, or to perform low-level MIDI
  1394.       input and output.  Information for programmers is contained
  1395.       in the developer's archive file, playrdev.exe.  This archive
  1396.       contains a number of documentation files and sample libraries
  1397.       for common languages.  Registered users of MidiTools may
  1398.       distribute Play/D with end user applications they create.
  1399.       
  1400.       
  1401.       
  1402.       _________________________________________________________________
  1403.       
  1404.       * Record - Simple MIDI File Recorder
  1405.       
  1406.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1407.       
  1408.       Introduction
  1409.       
  1410.       Record is a tool for quick recording of MIDI data into
  1411.       a standard MIDI file.  It is not intended for
  1412.       sequencing type operations, but rather, for testing,
  1413.       bulk dump capture, or other spur-of-the-moment
  1414.       recording needs.  The file which is created can be
  1415.       played back using the MidiTools player utilities, or
  1416.       any other software which can read standard MIDI files.
  1417.       Recordings are single track, and limited to about
  1418.       16,000 MIDI events or 160,000 bytes of system
  1419.       exclusive data.  Any type of MIDI channel data (notes,
  1420.       control changes, etc.) or system exclusive data may be
  1421.       recorded.  Real-time data is not supported by the MIDI
  1422.       file specification.
  1423.       
  1424.       
  1425.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1426.       
  1427.       Usage
  1428.       
  1429.       To use Record in its most basic mode, type "record"
  1430.       and a file name.  That's it.  Start your MIDI input,
  1431.       and when done, press a key.  The input will have been
  1432.       recorded in the specified file.  For example, to
  1433.       record a bulk dump from a synthesizer and save it to
  1434.       a file called "testdump", enter:
  1435.       
  1436.                 record testdump
  1437.       
  1438.       Start the bulk dump from the synthesizer's control
  1439.       panel and wait for it to complete.  Press a key to end
  1440.       recording and write the MIDI file.  To send the data
  1441.       back later, you could type:
  1442.       
  1443.                 play testdump
  1444.       
  1445.       When Record is run without specifying a file name on
  1446.       the command line, it executes interactively.  This
  1447.       gives a bit more control over the recording operation.
  1448.       Several options can be specified by filling in the
  1449.       data cells on the screen prior to recording.  To begin
  1450.       recording, press F7 (or click the [Record/Stop] button
  1451.       at the bottom of the screen).  Actual recording begins
  1452.       with the first MIDI event received, and continues
  1453.       until F7 is pressed again.  Recording can be
  1454.       subsequently resumed by pressing F7.  To create the
  1455.       MIDI file on disk, press F4 (Write).  To clear the
  1456.       recorded data in order to make a new recording, press
  1457.       F2 (Clear).  The data cells on the screen and
  1458.       available function keys are described below.
  1459.       
  1460.       
  1461.       File
  1462.       
  1463.       The name of the MIDI output file.  The default name is
  1464.       "out.mff".  Recording can be initiated repeatedly and
  1465.       the output file will be replaced each time F4 is
  1466.       pressed unless the name is changed.
  1467.       
  1468.       
  1469.       Title
  1470.       
  1471.       A short descriptive note to be included in the file
  1472.       for use by a MIDI file-capable sequencer or other
  1473.       reader.
  1474.       
  1475.       
  1476.       Tempo
  1477.       
  1478.       The base tempo assigned to the sequence.  The default
  1479.       is 120 quarter note beats per minute.
  1480.       
  1481.       
  1482.       Format
  1483.       
  1484.       One of 2 supported MIDI file formats: 0 or 1.  In
  1485.       general, format 0 is the safest since almost all MIDI
  1486.       software will accept it.
  1487.       
  1488.       
  1489.       Delay
  1490.       
  1491.       Allows a pause to be inserted at the beginning of the
  1492.       sequence.  Normally, the first MIDI event will be
  1493.       recorded at time 0, but if this value is non-zero, the
  1494.       first event will start at the specified time (in
  1495.       tenths of a second).
  1496.       
  1497.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1498.       
  1499.       Record Functions
  1500.       
  1501.         Function        Mouse
  1502.           Key          Function       Description
  1503.       
  1504.           F1           Help           Display help information.
  1505.           F2           Clear          Discard recorded MIDI data.
  1506.           F3           Exit           Exit program.
  1507.           F4           Write          Write recorded data to named
  1508.                                       MIDI file.
  1509.           F7           Record/Stop    Start or pause recording.
  1510.           F9           Left button    Decrease cell value.
  1511.           F10          Right button   Increase cell value.
  1512.           Alt-F2       Thru           Toggle MIDI thru on/off.
  1513.                                       Default is on.
  1514.           Alt-F3       Push           Push to DOS.  Allows entry of DOS
  1515.                                       commands.  Enter "exit" to return.
  1516.           Alt-F10                     IBM Music Feature only:
  1517.                                       Toggle music mode.  Music mode must 
  1518.                                       be disabled when recording large bulk 
  1519.                                       dumps.
  1520.       
  1521.       
  1522.       _________________________________________________________________
  1523.       
  1524.       * Watch - Multi-function MIDI Analyzer
  1525.       
  1526.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1527.       
  1528.       Introduction
  1529.       
  1530.       Watch is actually three tools in one:  a high-level
  1531.       MIDI monitor, a system exclusive dump processor, and
  1532.       a computerized patch bay.  As a monitor, Watch
  1533.       translates incoming MIDI codes into readable English
  1534.       descriptions.  During normal monitoring, useful
  1535.       abbreviations of the received messages are displayed.
  1536.       In addition, a review facility allows data to be re-
  1537.       examined with messages fully described.  There is no
  1538.       need to puzzle over incomprehensible streams of
  1539.       digits.  For diagnostic work, Watch can send specific
  1540.       data sequences to a MIDI device, and then display its
  1541.       response.  A set of "send keys" may be programmed to
  1542.       send out short MIDI sequences or entire disk files
  1543.       whenever they are pressed.
  1544.       
  1545.       When handling bulk dumps, Watch can be used to send
  1546.       system exclusive messages, or to capture and save them
  1547.       to disk.  For example, a dump of a synthesizer voice
  1548.       bank can be initiated from Watch, and the received
  1549.       data can be saved to disk as a standard MIDI format
  1550.       file (or as raw binary data).  This data can be resent
  1551.       later to restore the particular voice data.
  1552.       
  1553.       Various filtering and patching capabilities give a
  1554.       great deal of control over the data which is received
  1555.       and resent.  It is possible to block extraneous MIDI
  1556.       messages so that specific data of interest is more
  1557.       easily viewed.  Automatic processing of the MIDI data
  1558.       is also available, permitting channel redirection,
  1559.       volume changes, transposition, note range limiting,
  1560.       and so on.
  1561.       
  1562.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1563.       
  1564.       Monitor
  1565.       
  1566.       The "Monitor" screen is where the principal activity
  1567.       takes place in Watch. All incoming MIDI messages are
  1568.       displayed here.  Messages are translated into readable
  1569.       abbreviations of their commonly used names. For
  1570.       example, a program change on channel 1 for instrument
  1571.       0 is represented: "1:ProgCh/00".  All such channel
  1572.       messages are displayed with a channel number prefix.
  1573.       Note-on messages are shown as channel:note+velocity.
  1574.       For example, a middle C note with velocity 40 played
  1575.       on channel 1 would be displayed "1:C3+40".  Note-off
  1576.       messages are shown with a minus sign instead, and
  1577.       velocity would only be shown if non-zero.  A channel
  1578.       number of 99 indicates that no status byte was
  1579.       received, so the channel in use could not be
  1580.       determined (note on is assumed for the initial running
  1581.       status).
  1582.       
  1583.       Note: C3 is defined as MIDI note number 60 (decimal).
  1584.       This is not a fixed standard.  Some manufacturers use
  1585.       C4 to identify middle C, though it is still MIDI note 60.
  1586.       
  1587.       Messages other than note on/off containing 1 or 2 data
  1588.       bytes are shown as the message name (possibly prefixed
  1589.       with the channel), followed by the data bytes
  1590.       (separated by "/"). If you are unsure of a message
  1591.       abbreviation, switch to the review buffer (by pressing
  1592.       any of the buffer control keys) and the message will
  1593.       appear fully named.  The data portion of system exclusive
  1594.       messages longer than 256 bytes (or ones received in
  1595.       rapid succession) will not be displayed at the time
  1596.       the message is received; use the review buffer to
  1597.       examine them.
  1598.       
  1599.       General status information appears on the line below
  1600.       the display area.  This includes thru status, real-
  1601.       time mode, number base for MIDI data, and the current
  1602.       size of the review buffer as a percentage from 0 to
  1603.       100. "Thru:On" indicates that all data received from
  1604.       MIDI IN will be resent through MIDI OUT.
  1605.       
  1606.       IMPORTANT: Thru should always be turned OFF when
  1607.       receiving data dumps from a MIDI device.
  1608.       
  1609.       "RealTime:Pass" indicates that system real-time
  1610.       messages, such as MIDI Clock and Active Sensing, are
  1611.       to be received and displayed.  "RealTime:Block"
  1612.       prevents all real-time messages from being received
  1613.       (regardless of the individual settings on the
  1614.       Programming screen).  The MIDI number base is
  1615.       indicated as "HEX" or "DEC" (toggled by Alt-F1). "HEX:
  1616.       indicates that MIDI data bytes are to be displayed in
  1617.       hexadecimal (base 16: 0-9, A-F). "DEC" indicates base
  1618.       10 display of MIDI data bytes.  Note: Channel numbers
  1619.       are always shown in decimal (from 1-16).
  1620.       
  1621.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1622.       
  1623.       Buffer
  1624.       
  1625.       Pressing any of the buffer control keys (Home, End,
  1626.       up/down arrow, PgUp, PgDn) will switch into buffer
  1627.       review mode.  On a color display, review text will
  1628.       appear in cyan (light blue), compared to white for
  1629.       normal monitoring.  In this mode, you can move around
  1630.       in the buffer and examine the received data in full
  1631.       detail.  Each line will generally show one MIDI event,
  1632.       together with the reference time at which the event
  1633.       was received (as min:sec.ms).
  1634.       
  1635.       The contents of system exclusive messages are shown 10
  1636.       bytes per line, with the System Exclusive and End
  1637.       Exclusive portions displayed on separate, time-stamped
  1638.       lines.  The data byte lines in between are sequenced,
  1639.       starting at 1.  Following each set of 10 data values
  1640.       is the same data represented as ASCII characters.
  1641.       Non-printing characters are displayed as dots.
  1642.       
  1643.       The buffer can hold approximately 16,000 MIDI events,
  1644.       including 140,000-160,000 bytes of system exclusive
  1645.       data.  When the buffer limit is exceeded, the oldest
  1646.       data is discarded to make room for new incoming data.
  1647.       Data continues to be received while in review mode,
  1648.       and moving down in the buffer will show any new data.
  1649.       To switch back to normal monitoring, press F5
  1650.       (Monitor).  To clear the buffer entirely, press F2
  1651.       (Clear).
  1652.       
  1653.       To write the buffer contents to a file, press F4
  1654.       (Write).  This will prompt for a file name, and then
  1655.       write the data to disk in standard MIDI file format.
  1656.       This data can be subsequently resent, using this
  1657.       program, or any other program (such as a sequencer)
  1658.       which supports standard MIDI files.  Since all events
  1659.       are time-stamped, timing information is recorded along
  1660.       with the MIDI data.  Sending MIDI data (see below)
  1661.       resets the buffer reference time.  If more events are
  1662.       received after a send, later data can actually have
  1663.       earlier reference times.  In this case, buffer times
  1664.       are adjusted when writing so that all saved event
  1665.       times are increasing.
  1666.       
  1667.       To write the buffer to disk in raw binary format
  1668.       (sometimes referred to as MIDIEX format), press Alt-F4
  1669.       and enter the file name when prompted.  Such data can
  1670.       be resent later, as with standard MIDI files.
  1671.       
  1672.       
  1673.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1674.       
  1675.       Sending
  1676.       
  1677.       Using the "Programming" screen (described later), up
  1678.       to 10 "send keys" can be defined.  These keys are
  1679.       Alt-1 thru Alt-9 and Alt-0 (press Alt and then a
  1680.       number).  They may be defined as a MIDI byte sequence,
  1681.       or the name of a file. When the key is pressed (or the
  1682.       digit selected if using a mouse), the defined data is
  1683.       sent.  When a file is used, it may be either a
  1684.       standard MIDI format file, or a raw binary data file
  1685.       (a stream of MIDI bytes).  Standard MIDI file data is
  1686.       sent according to the times defined in the file.
  1687.       
  1688.       You may do other things while sending non-system
  1689.       exclusive data from a MIDI file, including receiving
  1690.       new data into the buffer.  Sending any of the
  1691.       following will stop operations until sending is
  1692.       complete: a manually entered sequence, data from a
  1693.       binary file, or a system exclusive message within a
  1694.       standard MIDI file.  Pressing any key will end such an
  1695.       operation.  To completely stop a MIDI file send, press
  1696.       the key which initiated it (F2 will also stop it).
  1697.       
  1698.       The speed at which MIDI file system exclusive data,
  1699.       binary file data, and manual data is sent is
  1700.       determined by the "Bytes/sec" value on the Programming
  1701.       screen.  The normal MIDI data rate is 3125 bytes per
  1702.       second.  Some devices cannot keep up with this rate
  1703.       when receiving bulk data.  In such cases, try lower
  1704.       speed settings until a successful transfer is
  1705.       obtained.  A delay before each system exclusive
  1706.       message may also be required; use the "SysEx wait"
  1707.       value for this.
  1708.       
  1709.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1710.       
  1711.       Data loss
  1712.       
  1713.       Use care when receiving large bulk dumps from a MIDI
  1714.       device.  In some cases it is possible that the screen
  1715.       display may get behind the data reception, causing
  1716.       data overruns (missed data).  This might happen, for
  1717.       example, on slower machines receiving many small
  1718.       system exclusive messages.  One option is to switch to
  1719.       the Programming screen before initiating the dump at
  1720.       the device; this will minimize screen updating delays.
  1721.       Also, be sure that Watch is being run "interrupt-
  1722.       driven".  This is the default mode - used whenever
  1723.       possible - however it is possible that Watch was not
  1724.       able to detect the proper interrupt (or IRQ) number
  1725.       and switched to "polled" mode.  On slower machines
  1726.       this may cause data to be lost.  To check, run Watch
  1727.       with the -v option to display device information at
  1728.       start up.  If it says "IRQ: none", polled mode is
  1729.       being used.  You may need to use the -d option (see
  1730.       Appendix A) to force the proper IRQ selection.
  1731.       
  1732.       Watch contains a MIDI receive buffer which is 4K bytes
  1733.       long by default.  This is a temporary staging buffer
  1734.       and should not be confused with the much larger review
  1735.       buffer.  On slower machines this buffer may need to be
  1736.       increased - possibly up to the size of the largest
  1737.       single dump to be received.  Use the -s command line
  1738.       option to increase this buffer (to as much as 63K
  1739.       bytes).
  1740.       
  1741.       The IBM Music feature is not able to receive large
  1742.       dumps (greater than 2-3K bytes) unless it is in the
  1743.       proper mode.  The default mode, music mode, will
  1744.       result in truncated dumps.  Press Alt-F10 to disable
  1745.       music mode.  This will generally allow dumps up to the
  1746.       maximum size of the review buffer.  Note that while
  1747.       music mode is disabled, the card will not produce
  1748.       sound.  Press Alt-F10 again to toggle music mode back
  1749.       on.
  1750.       
  1751.       If you are trying to save an important dump, such as
  1752.       the factory settings of a device, it is a good idea to
  1753.       test the dump by receiving it twice and saving it to
  1754.       two different files.  Then compare these file using
  1755.       the DOS COMP (or FC) command:
  1756.       
  1757.                      COMP file1 file2
  1758.       
  1759.       This will only work with binary files - slight timing
  1760.       variations recorded in standard MIDI files will cause
  1761.       bad compares, even though the actual data is the same.
  1762.       
  1763.       A cautious procedure would be as follows:   [1]
  1764.       receive dump,   [2] write buffer to binary file (Alt-
  1765.       F4), [3] clear buffer (F2),     [4] receive dump
  1766.       again, [5] write to second binary file (Alt-F4), [6]
  1767.       write to standard MIDI file if desired (F4), [7] exit
  1768.       (F3) and compare binary files.  This procedure should
  1769.       be followed until you are confident that all your
  1770.       dumps are being received correctly.
  1771.       
  1772.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1773.       
  1774.       Monitor Functions
  1775.       
  1776.         Function        Mouse
  1777.           Key          Function       Description
  1778.       
  1779.           F1           Help           Display help information.
  1780.           F2           Clear          Clear display and review buffer.
  1781.                                       Stop any MIDI file transmission in
  1782.                                       progress.
  1783.           F3           Exit           Exit program.
  1784.           F4           Write          Write the buffer contents to disk
  1785.                                       as a standard MIDI file.
  1786.           F5           Monitor        Re-enable incoming display if
  1787.                                       viewing buffer.
  1788.           F6           Program        Switch to programming screen.
  1789.           F7           Thru           Toggle MIDI thru on or off.
  1790.                                       Default is off.
  1791.           F8           RealTime       Toggle real-time message reception
  1792.                                       on or off.
  1793.           Alt-1 thru Alt-9, Alt-0     Send one of ten MIDI data strings.
  1794.           Alt-F1       Hex/Dec        Toggle between decimal and 
  1795.                                       hexadecimal numeric display.
  1796.           Alt-F2       Thru           Toggle MIDI thru (same as F7).
  1797.           Alt-F3       Push           Push to DOS.  Allows entry of DOS
  1798.                                       commands.  Enter "exit" to return.
  1799.           Alt-F4                      Write buffer to disk as raw binary
  1800.                                       file (also known as MIDIEX format).
  1801.           Alt-F8                      Send All-Notes-Off message on all
  1802.                                       channels to silence equipment.
  1803.                                       Note: Not all devices respond to
  1804.                                       all-notes-off.
  1805.           Alt-F10                     IBM Music Feature only: Toggle 
  1806.                                       music mode.
  1807.           Home         Top            Display top of review buffer.
  1808.           End          Bot            Display bottom of review buffer.
  1809.           Up arrow     LnUp           Scroll up one line in buffer.
  1810.           Down arrow   LnDn           Scroll down one line in buffer.
  1811.           Page Up      PgUp           Page Up one screen in buffer.
  1812.           Page Down    PgDn           Page Down one screen in buffer.
  1813.       
  1814.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1815.       
  1816.       Filtering
  1817.       
  1818.       The Programming screen, which is reached by
  1819.       pressing F6 on the Monitor screen, allows incoming
  1820.       MIDI messages to be selectively filtered out or
  1821.       modified.  Note that Thru:On must be specified if the
  1822.       modified data is to be resent.  Each of the 16
  1823.       available MIDI channels is listed across the top.  The
  1824.       matrix below permits modification or filtering by
  1825.       channel for specific classes of messages listed on the
  1826.       left of the screen.
  1827.       
  1828.       
  1829.       Enable
  1830.       
  1831.       All messages for the channel may be enabled (on) or
  1832.       disabled (off). If enabled, the following items may be
  1833.       used to filter specific messages.
  1834.       
  1835.       Map
  1836.       
  1837.       Messages received for the channel indicated at the top
  1838.       of the column will be redirected to the channel
  1839.       specified.  The default is the same channel.
  1840.       
  1841.       
  1842.       Transpose
  1843.       
  1844.       Note messages received on the channel (before mapping)
  1845.       will be transposed by the specified number of half
  1846.       steps (+ or -).  Resulting notes below C-2 or above G8
  1847.       are discarded.  Note: C3 is middle C.
  1848.       
  1849.       Velocity
  1850.       
  1851.       This value has two distinct uses.  Note velocities on
  1852.       the channel will be scaled by the given percentage if
  1853.       the value is greater than zero.  100% is the original
  1854.       velocity and indicates no modification.  For example,
  1855.       a value of 200 can double the velocity, and 50 will
  1856.       halve it.
  1857.       
  1858.       If the value is negative, its absolute value is taken
  1859.       as a velocity threshold below which note messages are
  1860.       filtered out.  Both forms assume decimal values.  A
  1861.       value of -64 will filter out notes having a velocity
  1862.       less than 64.
  1863.       
  1864.       Low/High note
  1865.       
  1866.       These are the lowest and highest notes in the range
  1867.       C-2 to G8 which will be received (prior to
  1868.       transposing).
  1869.       
  1870.       
  1871.       The following enable or disable specific message
  1872.       classes on the channel:
  1873.       
  1874.         Note Msgs      All note messages.
  1875.       
  1876.         Aftertouch     All aftertouch messages - poly or
  1877.                        mono (channel pressure).
  1878.       
  1879.         Ctrl change    All control change messages.
  1880.       
  1881.         Prog change    All program change messages.
  1882.       
  1883.         Pitch wheel    All pitch bend messages.
  1884.       
  1885.       The following system messages can be selectively
  1886.       passed or filtered by indicating On or Off for the
  1887.       following 3-letter abbreviations:
  1888.       
  1889.            Exc: System exclusive
  1890.       
  1891.             System common messages:
  1892.       
  1893.            Qrt: Quarter Frame
  1894.            Pos: Song position
  1895.            Sel: Song select
  1896.            Tun: Tune request
  1897.       
  1898.             System real-time messages:
  1899.       
  1900.            Clk: MIDI clock
  1901.            Str: Start
  1902.            Cnt: Continue
  1903.            Stp: Stop
  1904.            Act: Active sensing
  1905.            Res: System Reset
  1906.       
  1907.       Overall filtering of real-time data is controlled
  1908.       using the F7 function key. If RealTime:Block is
  1909.       selected, no real-time data is passed.  For
  1910.       RealTime:Pass, only those real-time messages above
  1911.       specifically enabled are passed.
  1912.       
  1913.       All filtering and modifications are applied before
  1914.       data is displayed on the monitor screen and saved in
  1915.       the buffer.  Also, the data displayed is what is
  1916.       output when MIDI thru is enabled.  Note that data
  1917.       received while on the programming screen continues to
  1918.       be stored in the buffer.
  1919.       
  1920.       
  1921.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1922.       
  1923.       Send Keys
  1924.       
  1925.       Up to 10 keys may be assigned specific MIDI send
  1926.       functions.  The bottom section of the Programming
  1927.       screen allows the keys Alt-1 thru Alt-9, and Alt-0
  1928.       to be defined as arbitrary MIDI data.  When one
  1929.       of these keys is pressed, the associated data is
  1930.       sent.  Each key may be defined as a short string of
  1931.       hexadecimal digits or the name of a MIDI data file.
  1932.       If a sequence is entered directly, it may be a
  1933.       continuous string of 2-digit hex numbers with no
  1934.       separators, or 1- or 2-digit hex numbers separated by
  1935.       spaces or commas.  Messages up to 13 bytes may be
  1936.       entered this way.  For longer messages, a string may
  1937.       be continued into the next key's definition by
  1938.       entering a plus (+) as the last item in the string.
  1939.       Up to 9 continuations are possible, for a total
  1940.       possible message length of 120 bytes.
  1941.       
  1942.       If the first character in the string is "@", a file
  1943.       name is expected to follow.  When the Alt key is
  1944.       pressed, the named file will be sent.  The file may be
  1945.       a standard MIDI format file, or may be a binary data
  1946.       file containing a sequence of MIDI bytes.
  1947.       Continuation does not apply in the case of files.  If
  1948.       just the "@" character is entered, or the file name
  1949.       includes a wildcard character (* or ?), a list of
  1950.       files from which to choose is displayed.  Move to the
  1951.       desired file and press Enter (or click if using a
  1952.       mouse).  The selected file name will be entered in the
  1953.       send key definition cell.  The same rules used by DOS
  1954.       for file matching apply.
  1955.       
  1956.       MIDI sequences may be sent from either the Programming
  1957.       or Monitor screen.  Press Alt and a digit to send the
  1958.       defined sequence.  If using a mouse, click on one of
  1959.       the 10 digits at the bottom of the Monitor screen.
  1960.       
  1961.       Note: The Alt-0 key has slightly different usage from
  1962.       the rest of the send keys.  As a shortcut to avoid the
  1963.       need to switch to the Programming screen to define it,
  1964.       the program will prompt for its contents (displaying
  1965.       the last entered string) when Alt-0 is pressed.  The
  1966.       string may be modified or sent as is by pressing
  1967.       Enter.  To cancel the send, press Esc to blank the
  1968.       string and press Enter.
  1969.       
  1970.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1971.       
  1972.       Delays
  1973.       
  1974.       Send delays may be specified using the "SysEx wait" and
  1975.       "Bytes/sec" values on the Programming screen.  These
  1976.       may be necessary to allow certain MIDI devices to
  1977.       properly accept bulk data transmissions.  SysEx wait
  1978.       specifies the amount of time in milliseconds to wait
  1979.       before sending any sysex message.  A delay of up to
  1980.       9999 (10 sec.) can be entered.  The overall
  1981.       transmission rate can be specified by setting the
  1982.       Bytes/sec value, thus reducing the standard MIDI
  1983.       transmission rate of 3125 bytes per second.
  1984.       
  1985.       Delays as applied to the transmission of standard MIDI
  1986.       files are slightly altered due to the real-time nature
  1987.       of the files.  The basic transmission rate only
  1988.       applies to data within a system exclusive message.
  1989.       Also, the system exclusive wait is not applied in the
  1990.       case of special "running" or "sub-message" sysex
  1991.       events which should already have built-in transmission
  1992.       times.
  1993.       
  1994.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  1995.       
  1996.       Programming Functions
  1997.       
  1998.         Function        Mouse
  1999.           Key          Function       Description
  2000.       
  2001.           F1           Help           Display help information.
  2002.           F3           Exit           Exit program.
  2003.           F4       (Reset) Channels   Reset channel and message
  2004.                                       filtering to default state.
  2005.           F5       (Reset) Keys       Blank all send keys.
  2006.           F6           Monitor        Return to MIDI monitor screen.
  2007.           F7           Thru           Toggle MIDI thru on or off.
  2008.                                       Default is off.
  2009.           F8           RealTime       Toggle real-time message reception
  2010.                                       on or off.
  2011.           F9           Left Button    Increase value of selected cell.
  2012.           F10          Right Button   Decrease value of selected cell
  2013.           Alt-1 thru Alt-9; Alt- 0    Send one of 10 MIDI data strings.
  2014.           Alt-F2                      Toggle MIDI thru (same as F7).
  2015.           Alt-F3       Push           Push to DOS.  Allows entry of DOS
  2016.                                       commands.  Enter "exit" to return.
  2017.           Alt-F8       Quiet          Send All-Notes-Off message on all
  2018.                                       channels to silence equipment.
  2019.                                       Note: Not all devices respond to
  2020.                                       all-notes-off.
  2021.           Home                        Go to top of screen.
  2022.           Alt-R                       Change all values in row to be
  2023.                                       the same as the current cell.
  2024.       
  2025.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2026.       
  2027.       Set up
  2028.       
  2029.       All filter selections, key definitions, and the overall
  2030.       status (thru, real-time, hex/dec) are saved when the
  2031.       program ends.  They are restored the next time the
  2032.       program is run.  The original channel status may be
  2033.       reset using the Reset Channels function.  This also
  2034.       resets the system message filtering to allow all
  2035.       messages.  The Reset Keys function will blank all the
  2036.       send key definitions.  Settings are saved in the file
  2037.       "WATCH.STP".  This file should not be altered, or
  2038.       results may be unpredictable.
  2039.       
  2040.       
  2041.       _________________________________________________________________
  2042.       
  2043.       * MIDI File Decoding and Encoding
  2044.       
  2045.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2046.       
  2047.       Decode
  2048.       
  2049.       The Decode program gives you the ability to translate any
  2050.       standard MIDI file into a readable text format.  This
  2051.       allows you to view the contents in complete detail -
  2052.       a feature which may not otherwise be available in
  2053.       common sequencing software.  The output of Decode can
  2054.       be directed to a text file for viewing or printing
  2055.       using conventional text utilities.  In addition, the
  2056.       text file can be modified using most available text
  2057.       editors or word processors.  The modified file can
  2058.       then be converted back into a standard MIDI file using
  2059.       the companion Encode program.
  2060.       
  2061.       Standard MIDI files come in three formats: 0, 1 and 2.
  2062.       Format 0 is the simplest and most portable, containing
  2063.       only a single track.  Format 1 files are used to
  2064.       represent typical multi-track sequences, with track 1
  2065.       reserved (by convention) for tempo information.
  2066.       Format 2 is the least common and its use is subject to
  2067.       interpretation since it represents multiple,
  2068.       independent tracks (which, for example, could be
  2069.       played at the same time or sequentially).  Decode
  2070.       lists track events chronologically in all cases,
  2071.       although format 2 events are grouped by track, rather
  2072.       than interleaved as in format 1.
  2073.       
  2074.       Track data is composed mainly of three types of events -
  2075.       MIDI channel messages, system exclusive messages, and
  2076.       "Meta" events.  A meta event is a special event type,
  2077.       specific to the MIDI file format, which indicates
  2078.       performance data, such as tempo changes, or
  2079.       non-performance data, such as track titles.
  2080.       
  2081.       The command format for Decode is as follows:
  2082.       
  2083.                 decode  MIDI input file  text output file
  2084.       
  2085.       For example, to decode the MIDI file testmf.mff to a
  2086.       text file named out, type:
  2087.       
  2088.                 decode  testmf  out
  2089.       
  2090.       The .mff extension was not needed, since any of .mff,
  2091.       .mid, .std, or .smf are assumed as valid extensions.
  2092.       Note that CMF files may also be decoded, but non-
  2093.       standard data will be discarded.
  2094.       
  2095.       If an output file is not given, the output will be
  2096.       displayed on the screen.
  2097.       
  2098.       Listing 1 shows the Decode output for a simple format
  2099.       1 MIDI file.  The line beginning with "Format:" shows
  2100.       the file format (as 0, 1, or 2), the number of tracks,
  2101.       and the time base division.  For files using a
  2102.       metrical time base, the division is the number of
  2103.       ticks (the smallest timing unit used in the file) per
  2104.       quarter note.  MIDI time code or SMPTE time bases
  2105.       would show the division as frames per second (fps)
  2106.       along with ticks per frame (tpf).
  2107.       
  2108.       Track data follows.  The start of each event is shown
  2109.       in both ticks and real time (to the millisecond).  If
  2110.       no tempo events (Meta event 51) appear in a track, a
  2111.       tempo of 120 quarter note beats per minute is assumed.
  2112.       MIDI file tempo is specified in microseconds per
  2113.       quarter note.  The default tempo would mean 500,000
  2114.       microseconds (0.5 sec.) per quarter note.  A tick
  2115.       would then be 0.5 divided by 96 = 0.005208 sec. per
  2116.       tick.  In this file, the second event sets the actual
  2117.       tempo for the piece to be 100 beats per minute, or
  2118.       600,000 microseconds/quarter note (0.6/120 = 0.005
  2119.       sec./tick).  The main thing to remember is that a 
  2120.       quarter note is 96 ticks, as given by the division 
  2121.       value.
  2122.       
  2123.       The various meta events are mostly self-explanatory:
  2124.       Meta 59 defines the key signature as C Major; Meta 58
  2125.       defines a time signature of 4/4 with 24 MIDI clocks
  2126.       and 8 notated 32nd notes per
  2127.       quarter note;  Meta 2F indicates the end of track 1;
  2128.       Meta 03 is a Sequence/Track name for track 2.  Meta 7F
  2129.       is an example of sequencer-specific data; it has no
  2130.       meaning in the context of the MIDI file standard and
  2131.       must be interpreted by the appropriate sequencing
  2132.       software.  It is similar to a system exclusive message
  2133.       in that it is vendor defined.  Decode just lists the
  2134.       data in hexadecimal (base 16), as with the system
  2135.       exclusive message that follows it.  Each data line of
  2136.       a sequencer specific or system exclusive event starts
  2137.       with a byte sequence number.
  2138.       
  2139.       -----------------------------------------------------
  2140.       Listing 1 - Decode output, standard format
  2141.       
  2142.       Standard MIDI file: testmf.mff
  2143.       
  2144.       Format: 1  Tracks: 2  Division: 96 ticks per quarter note
  2145.       
  2146.         Tick   Time   Track  Event
  2147.       
  2148.            0   0.000  Trk 1 Meta 59  Key Sig: C Major
  2149.            0   0.000  Trk 1 Meta 51  Tempo: 100 bpm (600000)
  2150.            0   0.000  Trk 1 Meta 58  Time Sig: 4/4  Clocks:24, #32nds:8
  2151.            0   0.000  Trk 1 Meta 2F  End of Track
  2152.            0   0.000  Trk 2 Meta 03  Seq/Trk Name: 'Sample MIDI File'
  2153.            0   0.000  Trk 2 Meta 7F  Sequencer Specific, 10 bytes
  2154.                                     0:   1  2  3  4  5  6  7  8  9  A
  2155.            0   0.000  Trk 2 System exclusive - Roland (F0 41)
  2156.       136 bytes
  2157.         0:  10 2B 12  3  0  0  1  4  3  6  F  6  5  7  3  7  4  7  0  2
  2158.        20:   0  5  9  6  1  6  E  6  F  6  0  D  4  2  4  2  0  3  F  8
  2159.        40:   A  7  A  A  7  4  F  3  0  E  F  3  1  E  F  3  2  E  2  0
  2160.        60:   9  E  F  F  F  F  0  8  6  2  0  E  F  2  0  8  D  A  1  0
  2161.        80:   F  F  0  8  6  2  0  E  F  4  E  A  7  B  1  0  F  F  0  8
  2162.       100:   4  2  0  E  F  6  8  B  1  C  1  0  F  F  0  8  4  2  0  E
  2163.       120:   F  8  2  C  B  C  1  0  F  F  0  8  4  2 7C F7
  2164.            0   0.000  Trk 2 Chan  1: Program change/00 (C0 00)
  2165.           30   0.188  Trk 2 Chan  1: Note on  G2, vel= 31 (90 37 31)
  2166.           59   0.369  Trk 2 Chan  1: Note off G2 (37 00)
  2167.           60   0.375  Trk 2 Chan  1: Note on  C3, vel= 2E (3C 2E)
  2168.           89   0.556  Trk 2 Chan  1: Note off C3 (3C 00)
  2169.           90   0.563  Trk 2 Chan  1: Note on  D3, vel= 30 (3E 30)
  2170.          119   0.744  Trk 2 Chan  1: Note off D3 (3E 00)
  2171.          120   0.750  Trk 2 Chan  1: Note on  E3, vel= 2E (40 2E)
  2172.          149   0.931  Trk 2 Chan  1: Note off E3 (40 00)
  2173.          149   0.931  Trk 2 Meta 2F  End of Track
  2174.       -----------------------------------------------------
  2175.       
  2176.       The remaining lines, all on track 2, include examples
  2177.       of MIDI channel messages.  Message descriptions are
  2178.       the same as those used in the Watch program.  The actual
  2179.       MIDI bytes (in hexadecimal) are shown in parentheses.
  2180.       The file ends with an end-of-track meta event for track 2.
  2181.       
  2182.       Note:  Numbers shown in a Decode listing are decimal
  2183.       (base 10) with the exception of those which are more
  2184.       useful (or traditionally) given in hexadecimal (base
  2185.       16: 0-9, A-F).  Hexadecimal numbers include Meta event
  2186.       numbers and all MIDI data byte values.  Track/channel
  2187.       numbers, times, and byte counts are always decimal.
  2188.       To force all numbers to be shown in decimal, add -z to
  2189.       the Decode command line.
  2190.       
  2191.       
  2192.       An abbreviated format of the Decode output may be
  2193.       requested to save space, since the output file is
  2194.       often very large.  Just add -a to the end of the
  2195.       Decode command line.  For example, the following will
  2196.       produce the output file shown in Listing 2:
  2197.       
  2198.                 decode  testmf  out  -a
  2199.       
  2200.       An abbreviated output file consisting of mostly MIDI
  2201.       channel messages will usually be less than half the
  2202.       size of the standard output format.  Note the
  2203.       following major differences:
  2204.       
  2205.       - MIDI channel messages are in abbreviated format,
  2206.         shown later.
  2207.       
  2208.       - Event types are coded M for Meta, S for System
  2209.         exclusive, and C for Channel messages.
  2210.       
  2211.       - The track number is not shown if it is the same as
  2212.         the preceding message.
  2213.       
  2214.       - Real time is not shown.  Only ticks are given.
  2215.       
  2216.       -----------------------------------------------------
  2217.       Listing 2 - Decode output, abbreviated format
  2218.       
  2219.       Standard MIDI file: testmf.mff
  2220.       
  2221.       Format: 1  Tracks: 2  Division: 96 ticks per quarter note
  2222.       
  2223.            0  Trk  1  M 59  Key Sig: C Major
  2224.            0  M 51  Tempo: 100 bpm (600000)
  2225.            0  M 58  Time Sig: 4/4  Clocks: 24, #32nds: 8
  2226.            0  M 2F  End of Track
  2227.            0  Trk  2  M 03  Seq/Trk Name: 'Sample MIDI File'
  2228.            0  M 7F  Sequencer Specific, 10 bytes
  2229.          0:  1  2  3  4  5  6  7  8  9  A
  2230.              0  S SysEx/41 (F0 41), 136 bytes
  2231.          0: 10 2B 12  3  0  0  1  4  3  6  F  6  5  7  3  7  4  7  0  2
  2232.         20:  0  5  9  6  1  6  E  6  F  6  0  D  4  2  4  2  0  3  F  8
  2233.         40:  A  7  A  A  7  4  F  3  0  E  F  3  1  E  F  3  2  E  2  0
  2234.         60:  9  E  F  F  F  F  0  8  6  2  0  E  F  2  0  8  D  A  1  0
  2235.         80:  F  F  0  8  6  2  0  E  F  4  E  A  7  B  1  0  F  F  0  8
  2236.        100:  4  2  0  E  F  6  8  B  1  C  1  0  F  F  0  8  4  2  0  E
  2237.        120:  F  8  2  C  B  C  1  0  F  F  0  8  4  2 7C F7
  2238.            0  C 1:ProgCh/00 (C0 00)
  2239.           30  C 1:G2+31 (90 37 31)
  2240.           59  C 1:G2- (37 00)
  2241.           60  C 1:C3+2E (3C 2E)
  2242.           89  C 1:C3- (3C 00)
  2243.           90  C 1:D3+30 (3E 30)
  2244.          119  C 1:D3- (3E 00)
  2245.          120  C 1:E3+2E (40 2E)
  2246.          149  C 1:E3- (40 00)
  2247.          149  M 2F  End of Track
  2248.       -----------------------------------------------------
  2249.       
  2250.       Any bad codes in the original MIDI file (such as out
  2251.       of range data bytes) are marked as "Bad" in either
  2252.       format.  These codes are automatically removed by
  2253.       the Encode program when generating a new MIDI file.
  2254.       
  2255.       The following list shows MIDI file Meta event formats
  2256.       as generated by Decode, along with the minimal format
  2257.       accepted as input to Encode.
  2258.       
  2259.       Standard format                            Minimal format
  2260.       Meta 00   Sequence Number: n               M 00: n
  2261.       Meta 01   Text: 'text'                     M 01: 'text'
  2262.       Meta 02   Copyright: 'text'                M 02: 'text'
  2263.       Meta 03   Seq/Trk Name: 'text'             M 03: 'text'
  2264.       Meta 04   Inst name: 'text'                M 04: 'text'
  2265.       Meta 05   Lyric: 'text'                    M 05: 'text'
  2266.       Meta 06   Marker: 'text'                   M 06: 'text'
  2267.       Meta 07   Cue Point: 'text'                M 07: 'text'
  2268.       Meta 20   Chan Prefix: n                   M 20: n
  2269.       Meta 2f   End of Track                     M 2f
  2270.       Meta 51   Tempo: ttt bpm (nnnnnn)          M 51 (nnnnnn)
  2271.       Meta 54   SMPTE Offset:                    M 54 n.n.n.n.n.
  2272.                  nn.nn.nn.nn.nn.
  2273.       Meta 58   Time Sig: nn/nn Clocks:          M 58 nn/nn nn n
  2274.                  nn, #32nds: n
  2275.       Meta 59   Key Sig: xx xxxxx                M 59: xx xxxxx
  2276.       Meta 7f   Sequencer Specific,              M 7f nnnnn  nn nn ...
  2277.                   nnnnn bytes nn nn ...
  2278.       
  2279.       - If no colon is included in a text event (meta 01-07), the
  2280.         quoted string must begin on the following line.
  2281.       
  2282.       - Tempo is specified in microseconds per quarter note.
  2283.       
  2284.       - The components of the SMPTE offset are in decimal, and
  2285.         represent hour, minute, second, frame, and fractional frame.
  2286.       
  2287.       - A full time signature specification includes the standard
  2288.         fractional designation, plus the number of MIDI clocks and
  2289.         notated 32nd notes per quarter note (usually 24 and 8).
  2290.       
  2291.       - The key signature is one of the following: Cb, Gb, Db, Ab,
  2292.         Eb, Bb, F, C, G, D, A, E, B, F#, C#, followed by the word
  2293.         Major or Minor.
  2294.       
  2295.       - Sequencer specific data bytes are in hexadecimal.
  2296.       
  2297.       
  2298.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2299.       
  2300.       Encode
  2301.       
  2302.       The Encode program is able to read the text file output
  2303.       from Decode and convert it back into a standard MIDI
  2304.       file.  This would generally be done after making
  2305.       manual modifications to the decoded file.  You might
  2306.       also want to re-encode the file to eliminate bad data
  2307.       from the original file (which Decode would have
  2308.       marked), or to compress MIDI messages to use full
  2309.       running status.
  2310.       
  2311.       The command format for Encode is:
  2312.       
  2313.                 encode  Text input file  MIDI output file
  2314.       
  2315.       For example, if the output of Decode were on a file
  2316.       "out", it could be re-encoded to a MIDI file as follows:
  2317.       
  2318.                 encode  out  newfile.mff
  2319.       
  2320.       To compress all MIDI messages using full running
  2321.       status (if the original was not), add the -r option to
  2322.       the end of the command line.
  2323.       
  2324.       
  2325.       Following are the various rules to keep in mind when
  2326.       making changes to the decoded file (or creating one
  2327.       from scratch):
  2328.       
  2329.       - The only required header information is contained in
  2330.         the "Format:" line.  That line must appear as shown in
  2331.         the listings.
  2332.       
  2333.       - All numbers in parentheses represent the real data.
  2334.         Textual information preceding these numbers is only
  2335.         for your reference.  Decode will only look at the data
  2336.         in parentheses when reconstructing the MIDI file.  For
  2337.         example, to change the program number in the following
  2338.         line, modify only the 00 within the parentheses.  The
  2339.         00 following "/" is ignored.
  2340.       
  2341.            0   0.000  Trk 2 Chan  1: Program change/00 (C0 00)
  2342.       
  2343.       
  2344.       - For event lines, only the tick count is relevant.
  2345.         The real time, if shown, is only for reference and is
  2346.         not re-encoded.
  2347.       
  2348.       - Any event line may be deleted without affecting
  2349.         timing, since each line is time stamped with an
  2350.         absolute tick count.  Deleting tempo meta events may
  2351.         cause strange results if not done carefully.  New
  2352.         events may be added, as long as the tick time is in
  2353.         sequence.
  2354.       
  2355.       - Time may be added or subtracted between events by
  2356.         using a special format for indicating tick offsets.
  2357.         A line consisting of only a signed (+ or -) number
  2358.         will adjust all subsequent times by that number of
  2359.         ticks.  Any number of these offset lines may be
  2360.         inserted.
  2361.       
  2362.       - A number which is expected to be in hexadecimal may
  2363.         be coded in decimal by including a decimal point.  For
  2364.         example, "F7" in hex could be given as "247." in
  2365.         decimal.
  2366.       
  2367.       - "Trk" and a number must appear following the time
  2368.         only if different than the preceding event.
  2369.       
  2370.       - The event type must include the first letter of:
  2371.         Meta, System, Chan, or Bad (i.e., it must be M, S, C
  2372.         or B).
  2373.       
  2374.       - The total byte count for system exclusive and
  2375.         sequencer specific events must be correct.  If you
  2376.         remove or add bytes in the data portion, the byte
  2377.         count must be adjusted.  The sequence numbers followed
  2378.         by colons may be eliminated; only the actual data
  2379.         bytes (which are expected to be in hex) are needed.
  2380.         The total byte count may appear on the same line as
  2381.         the event header, or alone on the following line.
  2382.       
  2383.       - On a system exclusive header line, a 4-digit vendor
  2384.         code indicates an extended vendor id and must remain
  2385.         a 4-digit number.  When F7 is the lead-in byte (rather
  2386.         than the usual F0), the vendor id is not used and the
  2387.         data is assumed to be a sub-message of an earlier
  2388.         system exclusive message (a format used by some
  2389.         vendors).
  2390.       
  2391.       - For text meta events, the text is enclosed in
  2392.         apostrophes, or single quotes (' ').  The text may
  2393.         appear on the same line, following the event number
  2394.         and a colon, or if no colon is given, on the following
  2395.         line.  Multiple quoted strings may appear on separate
  2396.         lines to represent long messages.  To indicate an
  2397.         actual single quote in the string, use two single
  2398.         quotes in succession.
  2399.       
  2400.       
  2401.       Listing 3 shows the minimum acceptable format of the
  2402.       same file originally shown in Listing 1.  It is not
  2403.       particularly readable, but the minimum format may be
  2404.       convenient when making manual changes, or if you are
  2405.       interested in writing a program to output the data
  2406.       without the complexity of directly generating a
  2407.       standard MIDI file.
  2408.       
  2409.       -----------------------------------------------------
  2410.       Listing 3 - Minimal Encode input example
  2411.       
  2412.        Format 1 Tracks 2 Division 120 ticks
  2413.        0 Trk 1 M 59: C Major
  2414.        0 M 51 (600000)
  2415.        0 M 58 4/4 24 8
  2416.        0 M 2F
  2417.        0 Trk 2 M 03: 'Sample MIDI File'
  2418.        0 M 7F 10
  2419.        1 2 3 4 5 6 7 8 9 A
  2420.        0 S (F0 41) 136
  2421.        10 2B 12 3 0 0 1 4 3 6 F 6 5 7 3 7 4 7 0 2 0 5 9
  2422.        6 1 6 E 6 F 6 0 D 4 2 4 2 0 3 F 8 A 7 A A 7 4 F 3
  2423.        0 E F 3 1 E F 3 2 E 2 0 9 E F F F F 0 8 6 2 0 E F
  2424.        2 0 8 D A 1 0 F F 0 8 6 2 0 E F 4 E A 7 B 1 0 F F
  2425.        0 8 4 2 0 E F 6 8 B 1 C 1 0 F F 0 8 4 2 0 E F 8 2
  2426.        C B C 1 0 F F 0 8 4 2 7C F7
  2427.        0 C (C0 00)
  2428.        30 C (90 37 31)
  2429.        59 C (37 00)
  2430.        60 C (3C 2E)
  2431.        89 C (3C 00)
  2432.        90 C (3E 30)
  2433.        119 C (3E 00)
  2434.        120 C (40 2E)
  2435.        149 C (40 00)
  2436.        149 M 2F
  2437.       -----------------------------------------------------
  2438.       
  2439.       
  2440.       _________________________________________________________________
  2441.       
  2442.       * Filter - Interactive MIDI File Filter
  2443.       
  2444.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2445.       
  2446.       Introduction
  2447.       
  2448.       Filter is a powerful but easy-to-use tool for making
  2449.       certain types of file-wide changes to a standard MIDI
  2450.       file.  Changes may be applied to all data in the file,
  2451.       or limited to certain tracks or channels.  The basic
  2452.       capabilities of the program are listed below.
  2453.       
  2454.       - Change file format (0,1,2).
  2455.       - Extract or delete tracks or channels.
  2456.       - Move channels into tracks.
  2457.       - Change tempo.
  2458.       - Remove selected MIDI messages.
  2459.       - Remove notes outside pitch/velocity bounds.
  2460.       - Increase/decrease volume.
  2461.       - Compress volume range.
  2462.       - Change output channels.
  2463.       - Re-map program changes.
  2464.       - Transpose notes.
  2465.       - Remove bad or redundant data.
  2466.       
  2467.       The term filtering refers to the fact that various
  2468.       change requirements are set up in advance, and then
  2469.       the file is "passed through" with its data being
  2470.       removed or changed as it goes by.  Changes may be made
  2471.       directly to the input file, or an entirely new file
  2472.       may be created, leaving the original intact.
  2473.       
  2474.       Filter is an interactive program, with a single screen
  2475.       controlling the entire process.  Type "filter" to
  2476.       begin execution.  There is quite a lot to digest on
  2477.       the main screen, but don't be intimidated.  If you change
  2478.       nothing, the default settings on the screen would cause
  2479.       the filtering process to create an output file equivalent
  2480.       to the input file.  You may make individual changes to
  2481.       start, or a whole set of changes in a single pass once
  2482.       you become more familiar with the various options.
  2483.       
  2484.       There are four basic data sections on the screen.  The
  2485.       first section specifies input and output file names,
  2486.       and provides general information on how the output
  2487.       relates to the input.  The second section allows the
  2488.       filtering action of the sections below it to be
  2489.       restricted to the channels and/or tracks specified.
  2490.       The third section is mainly used to specify the
  2491.       removal of certain types of MIDI messages.  The fourth
  2492.       section defines various MIDI message conversions to
  2493.       perform.
  2494.       
  2495.       To enter or change data, move the large block cursor
  2496.       to the desired field on the screen using the arrow
  2497.       keys, or click directly with a mouse.  After you have
  2498.       changed the filtering options as described in the
  2499.       following sections, press F5 (Filter) to begin the
  2500.       process.
  2501.       
  2502.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2503.       
  2504.       Input / Output
  2505.       
  2506.       When the program starts up, the block cursor will
  2507.       appear at the "Input file" field.  Type the name of a
  2508.       MIDI file and press return.  Filter will load the file
  2509.       in preparation for processing.  Once loading is
  2510.       complete (it may take a few seconds), notice that the
  2511.       input file "Format" value will indicate the file's
  2512.       format - 0, 1, or 2.  Format 0 files contain a single
  2513.       track.  Format 1 files contain multiple tracks, with
  2514.       track 1 normally reserved for tempo information.
  2515.       Format 2 files are also multi-track, but the tracks
  2516.       are not necessarily related to each other in time.
  2517.       Formats 0 and 1 are most common, with format 0 being
  2518.       the most portable; however, format 1 is more useful,
  2519.       and therefore the one most often encountered.  Format
  2520.       2 is rare, and not supported by most MIDI
  2521.       applications.
  2522.       
  2523.       If an input file name contains wildcard characters (* or ?), 
  2524.       a list of all matching files will be displayed for selection.
  2525.       The F2 (Files) function may also be used to select an input 
  2526.       file.
  2527.       
  2528.       To specify an output file different than the input
  2529.       file, move to the "Output file" field and enter a
  2530.       name.  If no file extension (such as .MFF) is given,
  2531.       the extension of the input file is assumed.
  2532.       
  2533.       If a different output file is not entered, the input
  2534.       file will be replaced and reloaded each time the
  2535.       Filter operation is performed.  Also, a backup of the
  2536.       original file with an extension of .BAK is created
  2537.       each time.
  2538.       
  2539.       The other entry fields in this section are described below.
  2540.       
  2541.       Copy Tracks
  2542.       
  2543.       This lists the tracks which are to be retained when
  2544.       creating the output file.  By default, all input file
  2545.       tracks are selected.  Change the track selection to
  2546.       extract only certain ones from the original file.
  2547.       Note that for format 1 files, track 1 should always be
  2548.       copied; otherwise tempo, time signature, or other
  2549.       informational data may be lost.
  2550.       
  2551.       Anywhere a range of numbers (such as a track range) is
  2552.       required, simply list the numbers, separated by spaces
  2553.       or commas.  A continuous range between two numbers may
  2554.       be indicated with a dash (-).  You may also use the
  2555.       word "All" to specify all possible numbers.
  2556.       
  2557.       Copy Channels
  2558.       
  2559.       Only MIDI data for the channels specified here will be
  2560.       retained in the output file (assuming the data appears
  2561.       in the copied tracks).  By default, all channels (1-
  2562.       16) are selected.
  2563.       
  2564.       (Output file) Format
  2565.       
  2566.       This number specifies the standard MIDI file format
  2567.       (0,1,2) to use when creating the output file.  By
  2568.       default, it is the same as the input file's format.
  2569.       
  2570.       Channelize
  2571.       
  2572.       This option only applies if the output file format is 1.
  2573.       
  2574.       If the input file is format 0 (single track), each
  2575.       input file channel will be assigned to a separate
  2576.       track in the output file, rather than a to single
  2577.       track.
  2578.       
  2579.       If the input file is format 1 (multi-track), each
  2580.       input file track will be assigned a different channel,
  2581.       regardless of the original channels used.  If there
  2582.       are more than 16 active tracks, channels are assigned
  2583.       arbitrarily, cycling from 1 thru 16.
  2584.       
  2585.       Channelization occurs after all other filtering has
  2586.       been done.
  2587.       
  2588.       Tempo Ratio
  2589.       
  2590.       The output file tempo may be increased or decreased by
  2591.       changing this value.  The default is 100%, or no
  2592.       change.  Smaller values decrease tempo, and larger
  2593.       values increase it.  Tempo changes only apply to files
  2594.       using a metrical time base - not real-time files based
  2595.       on SMPTE or MIDI time code.
  2596.       
  2597.       
  2598.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2599.       
  2600.       Filter Limiting
  2601.       
  2602.       Event filtering may be limited to the tracks and
  2603.       channels appearing in the second screen section.
  2604.       Simply enter the desired range of tracks or channels
  2605.       to be affected by filtering.  This limiting applies to
  2606.       the tracks and channels which were included in the
  2607.       Copy Tracks/Channels fields in the input/output
  2608.       section above.  If both track and channel limits are
  2609.       given, only the channels represented in the specified
  2610.       tracks will be affected.  By default, all track and
  2611.       channel data will be processed.
  2612.       
  2613.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2614.       
  2615.       Message Removal
  2616.       
  2617.       The third screen section specifies messages (within
  2618.       the track/channel limit ranges) to be removed from the
  2619.       file.
  2620.       
  2621.       The following message types may be removed by
  2622.       indicating Yes:
  2623.       
  2624.            Aftertouch (mono and poly)
  2625.            Program Changes
  2626.            Pitch Wheel
  2627.            System Exclusive
  2628.            Control Changes
  2629.       
  2630.       Control change removal may be further limited to
  2631.       specific controller numbers by changing the default
  2632.       range of 0-127.
  2633.       
  2634.       Velocity and Pitch ranges may also be given for note
  2635.       data.  Notes with velocities below or above the
  2636.       specified limits will be discarded.  Similarly, notes
  2637.       with pitches below or above the given values will be
  2638.       removed.  Note C3 is middle C.  MIDI note numbers (0-
  2639.       127) may be entered instead of symbolic values.
  2640.       
  2641.       By default, the velocity and pitch ranges are set to
  2642.       retain all note data.  The velocity limiting function
  2643.       behaves differently when the Compressor option is
  2644.       activated (see next section).
  2645.       
  2646.       
  2647.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2648.       
  2649.       Message Modification
  2650.       
  2651.       The fourth section of the screen specifies changes to
  2652.       be applied to MIDI channel messages, rather than their
  2653.       removal.
  2654.       
  2655.       Map Channels
  2656.       
  2657.       To change the channels associated with MIDI messages,
  2658.       enter the new channel numbers beneath the original 16
  2659.       listed across the screen.  By default, they are the
  2660.       same as the original channel.  To change all channels
  2661.       to a single channel, you can use the shortcut of
  2662.       typing in a single new value, and pressing Alt-R to
  2663.       make all the other channel values the same.
  2664.       
  2665.       Map Programs
  2666.       
  2667.       By default, program numbers are mapped from the range
  2668.       of 0-127 to the same range of 0-127.  There is a
  2669.       one-to-one correspondence between programs in the
  2670.       original range on the left, and the new range on the
  2671.       right.
  2672.       
  2673.       If there there are fewer new programs specified on the
  2674.       right, the list will be reused in a cyclical fashion
  2675.       to determine the of the original programs.  For
  2676.       example, the following mapping:
  2677.       
  2678.           Map Programs:  1,2,3,10-14,20      to:  4-6
  2679.       
  2680.       would result in:
  2681.       
  2682.           Old   1  2  3  10  11  12  13  14  20
  2683.       
  2684.           New   4  5  6   4   5   6   4   5   6
  2685.       
  2686.       All other programs would remain unchanged.
  2687.       
  2688.       
  2689.       Velocity Multiplier
  2690.       
  2691.       Note velocities will be multiplied by this factor.
  2692.       The default is 100%, indicating no change.  Smaller
  2693.       values will reduce velocity, and larger values will
  2694.       increase it.  Resulting notes with a velocity of zero
  2695.       will be discarded.  Multiplication occurs after any
  2696.       limiting.
  2697.       
  2698.       Compressor
  2699.       
  2700.       If Yes, the function of the velocity limits in the
  2701.       previous section is altered.  Notes will no longer be
  2702.       discarded if they are outside the range.  Instead, the
  2703.       lower and upper limits are taken to mean compression
  2704.       limits, and all note velocities will be scaled
  2705.       proportionally to fit within these limits.  Arrow
  2706.       markers are displayed next to the velocity limits
  2707.       while compression is in effect as a reminder of their
  2708.       altered function.
  2709.       
  2710.       Transpose
  2711.       
  2712.       This specifies the number of half steps (positive or
  2713.       negative) to transpose notes.  Notes transposed
  2714.       outside the legal MIDI range of 0 to 127 (C-2 to G8)
  2715.       are discarded.
  2716.       
  2717.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2718.       
  2719.       Filter Functions
  2720.       
  2721.         Function        Mouse
  2722.           Key          Function       Description
  2723.       
  2724.           F1           Help           Display help information.
  2725.           F2           Files          Display file selection screen.
  2726.           F3           Exit           Exit program.
  2727.           F4           Reset          Reset filter ranges to their default
  2728.                                       values.
  2729.           F5           Filter         Initiate filtering process.  When
  2730.                                       complete, a new file will be written.
  2731.                                       If the input and output files are the
  2732.                                       same, the file will be reloaded after
  2733.                                       filtering.
  2734.           F9           Left button    Decrease value of current cell.
  2735.           F10          Right button   Increase value of current cell.
  2736.           Home                        Go to first screen cell (Input file:).
  2737.           Alt-F3       Push           Push to DOS.  Allows entry of DOS
  2738.                                       commands.  Enter "exit" to return.
  2739.           Alt-R                       Change all values in row to be the same
  2740.                                       as the current cell.
  2741.       
  2742.       
  2743.       _________________________________________________________________
  2744.       
  2745.       * Batch MIDI File Filters
  2746.       
  2747.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2748.       
  2749.       Introduction
  2750.       
  2751.       The programs Fmt, Extract, and Remove provide some of
  2752.       the more common functions of the Filter program, but
  2753.       at the DOS command level.  They are non-interactive
  2754.       and take various arguments on the command line to
  2755.       control their operation.  They are intended for quick
  2756.       access to perform format conversion, data extraction,
  2757.       or data removal.
  2758.       
  2759.       
  2760.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2761.       
  2762.       Fmt
  2763.       
  2764.       Fmt provides simple format conversion among the three
  2765.       MIDI file formats - 0, 1, and 2.  See Filter for a
  2766.       description of the formats.  The Fmt command line
  2767.       format is as follows:
  2768.       
  2769.            fmt  MIDI input file  MIDI output file  -Fn  -C
  2770.       
  2771.       If the MIDI output file is not specified, the input
  2772.       file name is assumed.  The original file will be
  2773.       replaced and a backup file with the extension .BAK
  2774.       will be created.  Default extensions of .MFF, .MID,
  2775.       .SMF, and .STD will be tried if no input file
  2776.       extension is supplied.  The default output file
  2777.       extension will be the same as the input file's.
  2778.       
  2779.       The -F option specifies the output format, and must be
  2780.       -F0, -F1, or -F2.  If unspecified, format 1 is
  2781.       assumed.
  2782.       
  2783.       The -C option, if specified, is equivalent to the
  2784.       Channelize option in the Filter program.  It causes
  2785.       channels to be placed in individual tracks when
  2786.       producing a format 1 output file from a format 0 input
  2787.       file.  If both files are format 1, it causes each
  2788.       track to be assigned a different channel, regardless
  2789.       of the original channels.
  2790.       
  2791.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2792.       
  2793.       Extract
  2794.       
  2795.       Extract will read a MIDI file and produce a new file
  2796.       with only the specified tracks and/or channels
  2797.       retained.  Its command format is:
  2798.       
  2799.            extract  MIDI input file  MIDI output file  -options
  2800.       
  2801.       If the MIDI output file is not specified, the input
  2802.       file name is assumed.  The original file will be
  2803.       replaced and a backup file with the extension .BAK
  2804.       will be created.  Default extensions of .MFF, .MID,
  2805.       .SMF, and .STD will be tried if no input file
  2806.       extension is supplied.  The default output file
  2807.       extension will be the same as the input file's.
  2808.       
  2809.       -options may be -Trange or -Crange.  They specify the
  2810.       tracks or channels to be extracted and written to the
  2811.       output file.  Ranges may include numbers, commas, or
  2812.       dashes (-), but no spaces.  The -T and -C options
  2813.       themselves must be separated by spaces.
  2814.       
  2815.       Example:  To extract tracks 1 thru 5, and 10, from
  2816.       file1.mff and write them to file2.mff, use:
  2817.       
  2818.            extract  file1  file2  -t1-5,10
  2819.       
  2820.       To extract channels 1 thru 3 in track 2, use:
  2821.       
  2822.            extract  file1  file2  -t1,2  -c1-3
  2823.       
  2824.       Note that track 1 was included to be sure that any
  2825.       tempo information contained in it was not lost.
  2826.       
  2827.       
  2828.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2829.       Remove
  2830.       
  2831.       The Remove program allows selected types of data to be
  2832.       filtered out of a MIDI file.  Its command format is:
  2833.       
  2834.            remove  MIDI input file  MIDI output file  -options
  2835.       
  2836.       If the MIDI output file is not specified, the input
  2837.       file name is assumed.  The original file will be
  2838.       replaced and a backup file with the extension .BAK
  2839.       will be created.  Default extensions of .MFF, .MID,
  2840.       .SMF, and .STD will be tried if no input file
  2841.       extension is supplied.  The default output file
  2842.       extension will be the same as the input file's.
  2843.       
  2844.            -option       Removes
  2845.       
  2846.              -Crange     Specified channels.
  2847.              -Trange     Specified tracks.
  2848.              -A          Aftertouch messages (mono/poly).
  2849.              -P          Program changes.
  2850.              -W          Pitch wheel messages.
  2851.              -S          System exclusive messages.
  2852.              -N          All control change messages.
  2853.              -Nrange     Specified control changes.
  2854.       
  2855.              Ranges may include numbers, commas, or dashes, but no
  2856.              spaces.
  2857.       
  2858.       Example:  To remove track 10, channels 10-16, program
  2859.       changes, and any pitch or mod wheel changes:
  2860.       
  2861.            remove  midifile  -t10  -c10-16  -w  -n1,33
  2862.       
  2863.       (Mod wheel messages are controllers 1 and 33)  
  2864.       
  2865.       
  2866.       _________________________________________________________________
  2867.       
  2868.       * Miscellaneous Utilities
  2869.       
  2870.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2871.       
  2872.       Play/B
  2873.       
  2874.       Play/B is a smaller, batch-oriented version of Play.
  2875.       It is compatible with the batch mode of Play in every
  2876.       way; only the interactive mode is missing.  It can be
  2877.       used in cases where memory is restricted, or to speed
  2878.       startup time since it is smaller.  To run Play/B, just
  2879.       type "playb" and a MIDI file name.  Play will continue
  2880.       until the end of the song is reached, or the letter
  2881.       "Q" is pressed.  If a play list file name was given,
  2882.       each song in the list will be played in succession.
  2883.       Pressing the letter "S" will end the current song and
  2884.       skip to the next.
  2885.       
  2886.       See the Command Line description for Play for further
  2887.       information, plus Appendix A for additional options.
  2888.       
  2889.       
  2890.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2891.       
  2892.       Dump
  2893.       
  2894.       Dump is a small utility which sends a raw binary file
  2895.       to a device via MIDI OUT.  It is intended for use only
  2896.       with 8-bit binary data files containing raw MIDI codes
  2897.       (sometimes referred to as MIDIEX format).  Use Play or
  2898.       Play/B to send data in "standard" MIDI files.  For
  2899.       greater control, use Watch for handling bulk MIDI
  2900.       dumps, but for quick command line sending of dumps,
  2901.       this program provides a convenient alternative.
  2902.       
  2903.       To run, type "dump" and the name of the data file to
  2904.       send.  A byte count is displayed as sending proceeds.
  2905.       When the dump completes, any acknowledgement bytes
  2906.       sent back by the target device will be displayed in
  2907.       hexadecimal.  See Appendix A for additional options.
  2908.       
  2909.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2910.       
  2911.       TestDev
  2912.       
  2913.       TestDev is a simple diagnostic to check the operation
  2914.       of any MIDI devices in the system.  Each device
  2915.       located will be listed, along with its I/O address and
  2916.       IRQ number.  Then, input and output for each device
  2917.       will be tested in sequence.  First, 13 notes will be
  2918.       played, and then test input will be requested.  This
  2919.       continues for each device if more than one is present.
  2920.       
  2921.       Note to MIDIator users:  The -dmid option must be
  2922.       included on the testdev command line if Install has
  2923.       not been run.
  2924.       
  2925.       The -d option may also be required for other devices
  2926.       if there are hardware conflicts.  See Appendix A for
  2927.       information on options.
  2928.       
  2929.       
  2930.       
  2931.       _________________________________________________________________
  2932.       
  2933.       * Appendix A - Device Options
  2934.       
  2935.       - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  2936.       
  2937.       Except where noted, the following command line options
  2938.       are common to all of the programs described in this
  2939.       document which do MIDI input or output.  All options
  2940.       consist of a dash (-), followed by an option letter
  2941.       and possible additional information.  Separate options
  2942.       by at least one space.
  2943.       
  2944.       The -d option allows the type of MIDI interface
  2945.       to be specified if more than one are present in
  2946.       the system.  Also, it is used to give additional
  2947.       information about the device if a non-standard setup
  2948.       is being used.  For the majority of users, this option
  2949.       will not be needed.  The supported MIDI interfaces are
  2950.       listed below.  Use -d, followed by the device name as
  2951.       shown to select one.
  2952.       
  2953.          Roland MPU-401 and compatibles       -dmpu
  2954.          IBM PC Music Feature                 -dmfc
  2955.          Sound Blaster MIDI interface         -dsbmidi
  2956.          Key Electronics MIDIator             -dmidiator
  2957.       
  2958.       The first 3 letters of the device name are sufficient.
  2959.       
  2960.       Note: The MIDIator cannot be detected automatically
  2961.       and the -dmid option must always be specified if one
  2962.       is in use (unless the MIDIator has been configured
  2963.       using the Install program).
  2964.       
  2965.       Non-standard IRQ and I/O port information can be added
  2966.       following the device id if necessary:
  2967.           -d<dev>:<irq>:<ioaddr>
  2968.       
  2969.       For example, to define an MPU-compatible interface
  2970.       using IRQ 5 and I/O address 336 (hex), use:  -dmpu:5:336
  2971.       If only the I/O address was required but the default
  2972.       IRQ was alright, use:  -dmpu::336
  2973.       
  2974.       The irq and ioaddr are not relevant to the MIDIator,
  2975.       though the first option number can be given to
  2976.       indicate use of com port 2 instead of the default com1.
  2977.       (ex: -dmid:2)
  2978.       
  2979.       
  2980.       When non-standard IRQ numbers are used for the
  2981.       MPU and MFC, the -i option can be included to try
  2982.       to determine them automatically.  This may not always
  2983.       be effective, and you may need to specify the IRQ
  2984.       using the full -d option.
  2985.       
  2986.       The -v option lists the MIDI device, I/O
  2987.       address, and IRQ number selected prior to
  2988.       program startup.  You may wish to include this
  2989.       option if you suspect that automatic detection is not
  2990.       choosing the desired options, or to verify the IRQ
  2991.       being used.
  2992.       
  2993.       The -s option allows the MIDI receive buffer to
  2994.       be increased in instances where large bulk dumps
  2995.       cause data overruns on slower machines, as might
  2996.       be the case when using the Watch and Record programs.
  2997.       Follow -s with a number from 8 to 63, indicating the
  2998.       size of the buffer in K bytes (1K=1024 bytes).  The
  2999.       default receive buffer size is 4K bytes.  Use of -s
  3000.       without a number is the same as specifying -s8.
  3001.       
  3002.       The -k option is related to mouse usage, and
  3003.       specifies that the keyboard mode of operation
  3004.       for an interactive program is to be used instead
  3005.       of mouse mode.
  3006.       
  3007.       For interactive programs, -b specifies that BIOS
  3008.       screen writes are to be used.  This may be
  3009.       required on some systems if direct screen writes
  3010.       do not display correctly, or cause some conflict.
  3011.       Note that BIOS writes cause significantly slower
  3012.       screen updates.
  3013.       
  3014.       
  3015.       Using environment variables:
  3016.       
  3017.       Since it may be inconvenient to add these options
  3018.       every time a program is run, options may be set up
  3019.       ahead of time through the use of DOS environment
  3020.       variables.  A pool of environment variables named
  3021.       "opt1" through "opt9" are shared by all of the
  3022.       programs to which these options apply.
  3023.       
  3024.       Pick any of the 9 available variables for the options
  3025.       which you would like to preset.  For example, if you
  3026.       would normally use -dmpu:5 and -s16, you could use the
  3027.       DOS set command as follows:
  3028.       
  3029.                 set opt1=-dmpu:5
  3030.                 set opt2=-s16
  3031.       
  3032.       Each time you run one of the programs, it would be the
  3033.       same as if the options were added to the end of the
  3034.       relevant command line.  There is no harm in defining
  3035.       an option if it is not required for a particular
  3036.       program.  Remember to include "-" with the option
  3037.       letter.
  3038.       
  3039.       Since environment variables are only active until you
  3040.       reboot (or redefine them), it is best to include the
  3041.       set commands in your autoexec.bat file so that they
  3042.       are automatically executed after booting.
  3043.       
  3044.       
  3045.       Special environment variables:
  3046.       
  3047.       MPU initialization
  3048.       
  3049.       Some MPU-401 compatible cards have options which you
  3050.       may wish to set per manufacturer's specs.  The mpuinit
  3051.       variable allows a string of 2-digit hexadecimal codes
  3052.       to be sent to the card during program startup.  These
  3053.       codes are sent after reset, and before entering UART
  3054.       mode.  For example, the command:
  3055.       
  3056.                 set mpuinit=8299
  3057.       
  3058.       will cause the hex bytes 82 and 99 to be sent as
  3059.       commands to the MPU-compatible card at program start
  3060.       up.
  3061.       
  3062.       
  3063.       Default MIDI file extension
  3064.       
  3065.       The default extension ".mff" used in various places by
  3066.       the MidiTools programs for MIDI file names can be
  3067.       changed by means of the mff environment variable.  For
  3068.       example, to select ".mid" as the default extension,
  3069.       use:
  3070.       
  3071.                 set mff=mid
  3072.       
  3073.       
  3074.       The options may be defined automatically at boot time
  3075.       by including the appropriate set commands in your
  3076.       autoexec.bat file.
  3077.       
  3078.       
  3079.       ====================================================================
  3080.       
  3081.       
  3082.       The following are trademarks or registered trademarks of their
  3083.       respective owners.
  3084.       
  3085.       MidiTools:  FM Software.
  3086.       IBM, PC, AT, IBM PC Music Feature:  International Business Machines
  3087.         Corporation.
  3088.       Turbo Pascal, Turbo C:  Borland International, Inc.
  3089.       Microsoft, MS-DOS, Microsoft Mouse:  Microsoft Corporation.
  3090.       MIDIator:  Key Electronics, Inc.
  3091.       SOUND BLASTER:  Creative Labs, Inc.
  3092.       Roland, MPU-401:  Roland Corporation.
  3093.       CS-1:  J.L.Cooper Electronics, Inc.
  3094.       TesSeRact:  Innovative Data Concepts.
  3095.       
  3096.       ====================================================================
  3097.  
  3098.  
  3099.  
  3100.       *********************************************************************
  3101.       SEE THE FILE UPDATE.DOC FOR RECENT CHANGES AND ADDITIONS TO MIDITOOLS
  3102.       *********************************************************************
  3103.