home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-09-14 | 130.9 KB | 3,103 lines |
- MidiTools User's Guide
-
- Copyright 1992, 1993 FM Software
- All rights Reserved
-
- _________________________________________________________________
-
- * Contents
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Getting Started
- Overview
- Installation
- Editing
- Mouse Usage
- Play - MIDI File Player
- Introduction
- Playing a file
- Data cells
- Saving set up
- Play lists
- File Select
- Sliders
- MIDI Initialization
- Updating
- MIDI Sync
- Function Descriptions
- Play command line
- JLCooper CS-1 Control Station
- Play/R - Memory-resident MIDI File Player
- Introduction
- Command line
- Files
- Pop up window
- Modes
- Programming
- Record - Simple MIDI File Recorder
- Introduction
- Usage
- Record Functions
- Watch - Multi-function MIDI Analyzer
- Introduction
- Monitor
- Buffer
- Sending
- Data loss
- Monitor Functions
- Filtering
- Send Keys
- Delays
- Programming Functions
- Set up
- MIDI File Decoding and Encoding
- Decode
- Encode
- Filter - Interactive MIDI File Filter
- Introduction
- Input / Output
- Filter Limiting
- Message Removal
- Message Modification
- Filter Functions
- Batch MIDI File Filters
- Introduction
- Fmt
- Extract
- Remove
- Miscellaneous Utilities
- Play/B
- Dump
- TestDev
- Appendix A - Device Options
-
-
- _________________________________________________________________
-
- * Getting Started
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Overview
-
- MidiTools is a set of MIDI utility programs for users
- of MS-DOS computers, specially selected to complement
- the functions of the many fine sequencing and scoring
- packages on the market. In particular, MidiTools can
- provide additional diagnostic, setup, and performance
- capabilities which may not be available or are less
- convenient to use in more general software. Support
- for a variety of MIDI interfaces, a simple user
- interface (with mouse functions and full help), and
- some new twists, combine to make MidiTools a useful
- addition for any MIDI musician.
-
- The major components of the package, along with some
- of their features, are listed below:
-
- Play -- MIDI File Player
-
- - Plays any standard MIDI format file containing up to 64 tracks.
-
- - Individual channel playback control of volume, transpose, and
- redirection.
-
- - Real-time and meter-based time displays.
-
- - Note utilization summary.
-
- - Automatic MIDI initialization sequences.
-
- - Play lists for continuous operation.
-
- - Fast file loading for performance use.
-
- - Easy creation of play lists from file display.
-
- - Familiar playback controls: Play/Pause, Rewind, Fast Forward,
- Forward/Reverse skip.
-
- - Mouse sliders for song position and real-time master volume control.
-
- - Saving of playback setup and textual info.
-
- - Re-recording of playback parameters changed in real time.
-
- - External MIDI sync.
-
- - Full, on-screen documentation available at any time.
-
- - Batch display of summary information.
-
- - Simple command line play available for quick file auditioning.
-
- - Reads Creative Music format files.
-
- - Supports JLCooper CS-1 Control Station.
-
-
- Play/R -- Memory-resident MIDI File Player
-
- - Memory resident, with pop-up window.
-
- - Same playback capabilities as Play, but with less interactive
- control and up to 16 tracks.
-
- - Compatible with Play setup and play list files.
-
- - Pop-up controls for Play/Pause, Rew, FF, Skip, and Volume.
-
- - Can be used while running general computer applications, such as
- wordprocessors, spreadsheets, and possibly other MIDI software.
-
- - Requires approximately 64K RAM plus MIDI file size.
-
- - Can use EMS memory for MIDI file storage.
-
- - External programming interface for control by other applications.
-
-
- Record -- Simple MIDI File Recorder
-
- - Simple 1-track MIDI file recording.
-
- - Command line or interactive.
-
- - Useful for quick testing and working with bulk dumps.
-
-
- Watch -- Multi-Function MIDI Analyzer
-
- - Displays incoming MIDI data translated into readable codes.
-
- - Review buffer shows MIDI data with full descriptions, including
- system exclusive vendor names.
-
- - Buffer holds 16,000 time-stamped MIDI events (including up to
- 160,000 bytes of system exclusive data).
-
- - Buffer can be written to either standard MIDI or binary
- (MIDIEX) files.
-
- - Decimal or hexadecimal numeric display.
-
- - Ten assignable send keys for sending short MIDI data strings,
- or standard MIDI and binary files.
-
- - Patch bay facility includes: channel redirection, volume control,
- transpose, note range limiting, and other message filtering.
-
- - Adjustable data transfer rate and delays for sysex messages.
-
-
- Decode -- MIDI File Decoder
-
- - Lists MIDI file as readable ASCII text.
-
- - Output files may be edited and converted back to standard MIDI
- using Encode.
-
- - Time stamped events with tracks interleaved chronologically.
-
- - Full or abbreviated output.
-
-
- Encode -- MIDI File Encoder
-
- - Produces standard MIDI file from Decode output file.
-
- - Allows insertion/deletion of time intervals.
-
-
- MIDI file filters
-
- - Four MIDI file processors provide numerous options
- for filtering and modifying existing MIDI files.
-
- __________________________________________
-
-
- MidiTools Requirements: IBM PC-compatible with up to
- 300K RAM available. Hard disk recommended. MIDI
- interfaces: Roland MPU-401 or compatibles, IBM PC
- Music Feature, Key MIDIator, or Creative Labs SOUND
- BLASTER with MIDI adapter box (internal sound
- generator is not supported).
-
-
- Note to MIDIator users: If the Install program has
- not been run, the -dmid command line option must be
- employed for any of the included programs (which send
- or receive MIDI) to operate. See Appendix A for more
- information. Also, a CPU clock speed of at least 12
- MHz may be required for reliable MIDI input processing.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Installation
-
- To install MidiTools, insert the distribution disk
- ("Disk 1" if a two-disk set) in drive A and type:
-
- a:install
-
- To install from drive B, type b:install instead.
-
- The Install program screen contains a number of
- options which must be reviewed and possibly changed
- prior to initiating the installation. You can move
- between options by using the up and down arrow keys.
- When you type in a new answer, your entry first
- appears at the bottom of the screen. Pressing Enter
- will then change the option. See the following
- section on editing if you have questions about working
- with this screen. The various options are described
- below.
-
- Install MidiTools files: Yes
- From drive: A
- To drive: C
- Using directory: \MTOOLS
-
- If this is a new installation, select Yes to install
- the MidiTools files from the distribution disk. If
- you are only changing MIDI parameters, select No to
- bypass file installation.
-
- Enter the correct drive letters for the installation
- disk (from) and the target disk (to). There should be
- at least 600K bytes free on the target disk.
-
- It is suggested that MidiTools be installed in a
- subdirectory for easier file management. The
- subdirectory name selected by default is \MTOOLS.
-
- Default MIDI file extension: MFF
-
- A number of MidiTools programs which work will
- standard MIDI files will assume a default file name
- extension of .MFF. If you have another preference,
- such as .MID, you may change it here.
-
- Primary MIDI interface: MPU
-
- Four types of MIDI interface cards are supported.
- They are identified by the following 3-letter codes.
- Choose the device you wish to use as your primary
- interface.
-
- MPU Roland MPU compatibles.
- MFC IBM PC Music Feature Card.
- SBM Creative Labs SOUND BLASTER
- (with MIDI adapter).
- MID Key Electronics MIDIator.
-
-
- IRQ (interrupt line): 2
-
- If you have changed the default interrupt level
- setting (IRQ) on your MIDI interface, enter the
- correct number here. In the case of the MIDIator,
- this selection will read "COM port number"; select 1
- or 2 depending on which serial port is being used.
-
-
- Base address: 330
-
- If you have chosen an alternate base I/O address for
- your MIDI interface, enter the proper address here.
- This number is in base 16 (hexadecimal); use digits 0-
- 9 and A-F.
-
-
- Buffer expansion (K bytes): 0
-
- On some slower machines, the default staging buffer
- for receiving MIDI data is too small. The size of the
- buffer may be increased here. Enter the number of K
- bytes (1K=1024) to expand the buffer. See the -S
- option in Appendix A for further information. In
- general, leave this value as 0 initially.
-
-
- Modify AUTOEXEC.BAT file: Yes
-
- The installation process will make configuration
- changes to your AUTOEXEC.BAT file so that the options
- you selected above will be in effect each time you
- restart your machine. The specified MidiTools
- directory will also be added to your DOS search path.
- Prior to any change, your current AUTOEXEC.BAT file
- will be copied to AUTOEXEC.OLD. Select No to prevent
- updating of AUTOEXEC.BAT.
-
-
- When all options have been selected, Press F2 to begin
- the installation.
-
- _____________________________
-
-
- To install MidiTools manually, create a subdirectory as follows:
-
- md \mtools
- cd \mtools
-
- Then copy the contents of the installation disk(s) to
- that subdirectory: copy a:*.* \mtools
-
- For many users, no further set up is required. If,
- however, you are using non-standard settings for your
- MIDI interface, or have other special system
- requirements, see Appendix A for information on
- command line options before running any of the
- included programs. You may also run Install at any
- time to change the basic device settings.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Editing
-
- The interactive MidiTools programs (such as Play,
- Watch, Record, and Filter) use a common display and
- entry interface which is cell oriented, much like
- typical spreadsheet programs to which you may already
- be accustomed. Data entry as described in this
- section applies to all of these programs. The terms
- cell and field will be used interchangeably to refer
- to areas on the screen which display information, or
- into which information may be placed.
-
- Use the arrow keys to move from one data cell to
- another. The current cell is shown as a highlighted
- block. Below the screen's main data section is an
- input and message area. The contents of the current
- cell may be changed by typing a new value (which will
- first appear on the input line), and pressing the
- Enter (or Return) key. A prompting message is always
- displayed immediately above the input line, describing
- allowable values. If an entry was valid, it will
- appear in the cell; otherwise, an error message is
- displayed and the entry may be corrected. The
- following keys may be used when entering or editing a
- cell value:
-
- BackSpace Delete the character to the left of
- the cursor.
- Del Delete the character at the cursor.
- Insert Switch between insert and replace modes.
- Home Move cursor to beginning of entry.
- End Move cursor to end of entry.
- Left/right arrows
- Move the cursor left/right on the input line.
- Esc Cancel the entry.
-
- To edit an existing cell value, press Enter after the
- cell is selected and the current value will be placed
- in the input area for editing. An exception is
- multiple-choice cells, where Enter will cycle through
- the allowable values.
-
- Certain action keys, such as function keys, up and
- down arrows, and PgUp and PgDn, will end an entry as
- if Enter had been pressed. If there was no error, the
- particular function is performed after the cell value
- has been updated. For example, pressing the down
- arrow will enter the value into the cell and move to
- the next cell below (if there was no error). Pressing
- the right arrow at the end of an entry will move right
- to the next cell. These are convenient for entering
- values in rows and columns quickly.
-
- Most cells may be modified via the F9 (Decrease) and
- F10 (Increase) keys. A numeric cell will be changed
- to the previous or next value in sequence. For
- multiple-choice cells, the possible values will also
- be stepped through in sequence.
-
- There is a shortcut for setting all the values in a
- row or column to the same value. Select a cell in
- the row or column to be changed. Enter its value, if
- necessary, and then press Alt-C to set the other
- values in the column, or Alt-R to set the other values
- in the row. Only cells of the same type and range can
- be set in this way.
-
- Press F1 on any screen for Help. When reading help
- text on one of the help screens, the optional search
- field may be used to scan for a particular string.
- Type a string and press Enter. The line containing
- the string is displayed near the top of the page. The
- search string will remain active, so pressing Enter
- subsequently will locate additional occurrences.
- Press Esc to clear the search string. If the search
- field is blank, pressing Enter will recall the most
- recently entered string. When using a mouse, clicking
- on any word will locate the next occurrence of the
- word on a subsequent page.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Mouse Usage
-
- When a Microsoft-compatible mouse is available and the
- mouse driver software properly loaded, operations
- using the mouse will be enabled. The mouse may be
- used to select an input cell on the screen by
- positioning the small mouse cursor on the cell and
- single clicking either button. The cell will be
- highlighted, just as if the cell had been selected
- using the arrow keys.
-
- Any cell which can be changed using the F10 or F9 keys
- (to increase or decrease the value) may be changed in
- a similar manner using the mouse. Once a cell is
- selected by clicking on it, subsequent clicking of the
- left button will decrease the cell value, and clicking
- of the right button will increase it.
-
- In mouse mode, the function key designations normally
- displayed at the bottom of the screen are changed to
- selector buttons for each available function.
- Clicking on a button will perform the indicated
- function. All functions may still be invoked via the
- normal keyboard equivalents.
-
- Clicking on the small block in the upper left corner
- will exit the current screen. For main screens, this
- will exit the program entirely. On secondary screens,
- such as a help display, clicking on this block will
- return to the previous screen.
-
-
- _________________________________________________________________
-
- * Play - MIDI File Player
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Introduction
-
- The Play program is a versatile playback utility for
- standard MIDI files. Although it will handle many
- chores done by typical sequencing packages, it will
- not record; it is intended as a back-end tool,
- optimized for playback.
-
- Play works at two distinct levels: command line and
- interactive. Sometimes a full-blown sequencer is more
- than you really need. Play can be used as a quick
- auditioning tool. Think of it like the DOS "type"
- command, but for song files. Enter "play" and the
- name of a MIDI file and sit back and listen. Or if
- you have a list of files, Play can handle them
- automatically, too. This is command line mode.
-
- When run interactively, Play goes well beyond the
- basics to provide most of the playback control you
- might need. When a MIDI file is loaded by Play, it is
- scanned and all the pertinent data is displayed by
- channel, including note range and maximum volume. Any
- channel may be redirected to any other, volume levels
- may be changed, and notes may be transposed. Such
- configuration changes, along with textual notes, may
- be saved for future use. Normal player functions such
- as play, pause, rewind, fast forward, skip, tempo
- control, and song position selection are also
- available. Limited revision capability is also
- provided to permanently change playing options such as
- channels, transpose, and volume. With a mouse, it is
- even possible to "conduct" the overall dynamics in
- real time.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Playing a file
-
- To get started, type "play" (with possible options
- discussed later). After it starts up, Play will
- expect you to enter the name of a MIDI file to load.
- Type the name of the file and press Enter. If you do
- not enter a 3-character file extension, the following
- are tried: .MFF, .MID, .STD, and .SMF. After the file
- has been found and loaded, it will be scanned for the
- various types of data described below. This may take
- some time, unless the data has been previously saved
- for this file using the F4 (Save) function. When
- scanning is complete, press F7 to begin play. Note
- that any operation may be performed while a song is
- playing.
-
- When file name is entered followed by a space and a
- number from 1 to 16, all output channels will be
- forced to the number specified. This will also
- disable program changes. This is a shortcut for quick
- auditioning of songs having many channels and changing
- voices. The same effect can be achieved by manually
- setting the parameters for each channel as described
- below.
-
- If the MIDI file name is entered with wildcard
- characters (* or ?), a list of matching files will be
- displayed. Move to the desired file and press Enter
- (or click if using a mouse) to select and load the
- highlighted file. The same rules used by DOS for file
- matching apply. The match specification can be changed
- by typing a new one in the cell at the top of the file
- list screen. The F2 (Files) function may also be used
- to display and select from a list of files.
-
- In addition to the standard MIDI file formats 0, 1,
- and 2, Play supports the Creative Music File format
- (CMF), which is a close variant of standard MIDI
- format 0.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Data cells
-
- The various entry and display cells on the screen
- are described in this section.
-
- File
-
- The File cell allows the entry of a new file name to
- load and play as described previously.
-
- List
-
- When a play list is in use, this cell shows the play
- list file name. It may also be used to enter a new
- play list name. Play lists are described in detail
- later.
-
- Tempo or Speed
-
- For metrically specified time bases, this cell
- controls the overall, or "master", tempo in beats per
- minute. The first tempo value encountered in the file
- is used as the reference for subsequent manual
- changes. If the file does not specify tempo, 120
- quarter note beats per minute is assumed. The speed
- of play at any point is determined by the ratio of the
- current setting to the original value. For example,
- if the original value is 120, play will proceed at
- half speed if the master tempo is changed to 60.
-
- For files having a time base specified in SMPTE or
- MIDI time code units, this cell is labeled as Speed,
- rather than Tempo, and is given as a percentage of the
- initial speed (100%). Half speed is 50%, double speed
- is 200%, etc.
-
- When using an external MIDI clock for synchronization
- (selected by pressing Alt-F7), actual tempo is
- determined by the rate at which clock messages are
- received.
-
- Time
-
- Time specifies the current song position in minutes
- and seconds. This cell is updated every second while
- play is in progress. You may select and change this
- value at any time to move to a different position. It
- may take a few seconds to skip to the new position,
- depending on how far away it is. Selecting an earlier
- location requires scanning from the beginning. The F6
- (fast forward) function advances the position 10
- seconds at a time. F10 may also be used when this
- cell is selected to advance 1 second. F9 (decrease)
- is not recommended.
-
- To the right of the current time is the duration of
- the song, also in minutes and seconds. Note that when
- the master tempo is changed, the duration is adjusted
- accordingly.
-
- Note: The current time cell represents elapsed time
- since the start of play. If the master tempo is
- changed while playing, counting continues in one
- second intervals and the ending time may not match the
- song duration for that pass.
-
- Meas (Measure)
-
- This cell indicates the current song position as
- measure:beat. It is updated on each beat as play
- progresses. You may change the song position as with
- the Time cell above by entering the desired measure
- and beat. A single number entered without a colon is
- taken to be a full measure, and the start of beat 1
- within that measure is assumed. The final measure and
- beat of the song are displayed to the right.
-
- Time Sig
-
- The time signature currently in use is displayed here
- and is updated if any time signature changes occur in
- the music.
-
- Prog Ch (Program Changes)
-
- This cell is an overall MIDI performance option and
- determines whether program (patch) change messages in
- the original MIDI file are to be sent while playing.
- Selecting On enables program changes, and Off disables
- them. It is often desirable to suppress program
- changes when the target instrument is not set up to
- use the original program numbers. Program changes are
- enabled by default.
-
-
- Column data cells
-
- Chan (Channel)
-
- The channel numbers on the left of the screen refer to
- original MIDI channels used in the file. Information
- from the MIDI file relating to particular channels
- will appear on their respective lines. Only the first
- 12 channels are displayed initially. To see the
- remaining 4 channels, press Page Down to shift down to
- channels 5 thru 16. Press Page Up to restore the
- display. An arrow indicator () will appear in front
- of channel 12 as a reminder if there is any note data
- for channels 13 - 16.
-
- The line "All" contains summary data and master
- controls for all of the channel lines. Entering a
- value in a changeable cell on this line will change
- all values in its column.
-
- Notes
-
- This indicates the maximum number of notes which are
- played concurrently on the channel. The number is
- determined during scanning based on note-on, note-off,
- and all-off messages. The mono or poly mode state is
- not considered in the count. The "All" line indicates
- the total number of concurrent notes played in the
- song. Since some MIDI sequences do not turn off all
- sounding notes, this value may sometimes be larger
- than expected.
-
- Lo/Hi
-
- These indicate the lowest and highest note pitches
- used on the channel. The reference range is C-2 to G8
- for MIDI notes 0 to 127. Middle C is C3 (MIDI note
- 60). Some manufacturers designate this note C4. The
- "All" line shows the lowest and highest note values
- played in the file.
-
- Vol (Volume)
-
- This is the maximum volume of notes played on the
- channel, from 0 to 100 percent (determined by note
- velocities). If this value is changed, subsequent
- note volumes will be adjusted relative to the original
- maximum value for the channel. If changes appear to
- have no effect on output volume, it is usually the
- case that the particular instrument does not support
- or is not configured for velocity sensitivity.
- Entering a value in the corresponding cell on the
- "All" line will set all channel volumes to the value
- entered.
-
- Map
-
- This cell determines the channel to which any original
- MIDI messages using this channel will be redirected (1
- to 16). By default, it is the same channel. Entering
- a channel map value on the "All" line will redirect
- all channels to the given channel.
-
- Out (Output enable)
-
- This cell permits channels to be selectively enabled
- for output. By default, all channels are enabled.
- Changing the Out cell on the "All" line will enable or
- disable all of the channels.
-
- Xpos (Transpose)
-
- Notes for a particular channel may be transposed any
- number of half steps from -127 to +127. Notes which
- transpose below 0 or above 127 will not be played.
- Setting the "All" line transpose value will change all
- of the channels to the entered value.
-
- Tracks
-
- These are the numbers of MIDI file tracks which
- contain messages on the given channel. There may be
- more tracks than can be listed; use the program in
- scan mode to get full track information. Note that in
- format 1 MIDI files, track 1 typically contains only
- tempo information and will probably not appear.
-
- Info
-
- This area originally contains textual information
- found while scanning the track(s) corresponding to the
- channel. The text may be changed as desired to record
- information about the file for future reference. It
- can be saved along with the rest of the screen data by
- using the F4 (Save) function. See the MIDI
- Initialization section for further uses of the Info
- area.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Saving set up
-
- When the F4 (Save) function key is pressed, the
- current data on the screen will be saved to a file.
- The same name as the current MIDI file is used, but
- with the extension ".PLA". Whenever a .PLA file
- corresponding to a MIDI file being loaded is found,
- that data will also be loaded and the (sometimes slow)
- initial scan step is eliminated. F4 will replace the
- existing .PLA file whenever it is pressed.
-
- Note: F4 does not alter the basic MIDI file in any
- way.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Play lists
-
- Play lists are ordinary text files containing a list
- of MIDI (or CMF) file names. Such a file can be
- created with any text editor, or with a wordprocessor
- capable of "exporting" ASCII files. They may also be
- created by Play via the file selection screen. Play
- list files permit automatic playing of songs in the
- list without intervention.
-
- A play list file name is entered in either the "File:"
- cell or the "List:" cell. To enter a list file name
- in the "File:" cell, however, it must be preceded by
- the character "@" to indicate that it is a play list.
- A file name which actually begins with "@" is also
- assumed to be a play list.
-
- Play expects one file name per line in a play list,
- followed by an optional channel override number. If
- corresponding .PLA files exist, they will be used to
- control MIDI output. Note, however, that if a channel
- number is specified following the MIDI file name, it
- will take precedence, and the .PLA file will be
- ignored. Up to 30 files may be listed.
-
- Once a play list is entered, the first file will be
- loaded and readied for play. The name of the current
- song file and play list are displayed. After pressing
- F7 (or clicking on play/pause using a mouse), playing
- will continue uninterrupted, one song after the other.
- Play ceases when the end of the list is reached. Play
- may be paused and resumed at any point. Pressing F5
- (Rewind) will go to the beginning of the current song
- if it is past 0:00; otherwise, F5 functions as a
- reverse skip and will load the previous song in the
- list. F8 will skip to the next song in the list. It
- is suggested that F4 (Save) be done ahead of time for
- each file in the list to speed subsequent loading and
- skipping. The current song number and total number of
- songs is displayed beneath the "List:" cell.
-
- Play list files may be chained together to produce
- lists of any length. Simply specify a play list file
- (beginning with @) as the last line in a given list to
- indicate the next play list file to load.
- Typing a regular MIDI file name or another play list
- name in the "File:" or "List:" cells will cancel the
- current play list and load the requested file. Play
- lists will not advance while pushed to DOS or when
- viewing the help or file selection screens.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- File Select
-
- To obtain a list of MIDI files from which to select a
- new song, do one of the following on the main screen:
- Press F2; click on "Files" with a mouse; or enter a
- file name containing wildcard characters (* or ?).
- The file selection screen will display a list of all
- matching files.
-
- The cell at the top left of the file selection screen
- shows the wildcard pattern used. It may be changed by
- typing a new file specification into it. The list of
- matching files will change accordingly. To choose a
- file to play, move the cursor to it and press Enter
- (or double click on it using the mouse). The program
- will return to the main screen and load the selected
- file.
-
- Another option while on the file selection screen is
- to create a play list file. Press F4 (or click on
- "Create list"), and you will be prompted for a play
- list file name. After entering the name, an optional
- output channel will be requested. If given, this
- number will be added after each file name in the play
- list to force output to the given channel on playback.
- Press Enter if none is desired. Then you may freely
- move around the file screen and "select" the ones to
- be added to the play list by pressing Enter (or double
- clicking the mouse). When done, press F4 (or click
- "Create list") again. You will be returned to the
- main screen and the first play list song will be
- loaded, ready to start playing.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Sliders
-
- Two "slider" controls are available only when the
- mouse is active. The left edge slider is a master
- volume control. Click above the center to increase
- volume, below the center to decrease volume. If note
- velocities are already at maximum (or adjusted to
- maximum via the channel volume controls), increasing
- the master volume will have no further effect.
-
- Volume changes are made in specific increments of
- velocity for each position above or below center. The
- sensitivity may be decreased or increased by pressing
- Alt-F9 or Alt-F10, respectively. The default
- sensitivity is 3 velocity units per position, with
- possible values ranging from 1 to 9 units per
- position.
-
- If both mouse buttons are clicked simultaneously while
- the cursor is on the volume slider, the level
- indicator will be released and further clicking is not
- necessary. Whenever the mouse cursor is on the slider
- bar, the level indicator will follow it. This is to
- permit continuous adjustments without holding the
- button down, i.e., it is possible to "conduct" the
- performance in terms of overall volume. See also the
- Updating section.
-
- The right edge slider allows rough positioning within
- the song. Clicking anywhere along its length will set
- the song pointer to the corresponding song location.
- The top is the beginning, and the bottom is near the
- end. As the song plays, the marker will move down the
- screen to show the current, approximate song position.
- The full length of the slider represents the full
- song, even if the tempo has been altered (prior to
- play).
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- MIDI Initialization
-
- Users familiar with the construction of MIDI messages
- may use the Info fields to specify MIDI initialization
- sequences. If a string of characters starting with a
- dollar sign ($) is encountered in an Info field, it is
- assumed to be a series of hexadecimal digits (0-9, A-
- F) representing MIDI codes to be sent prior to the
- beginning of play. Two-byte MIDI codes may be strung
- together without separators, or may be delimited by
- commas or spaces. To end a MIDI sequence and include
- other text in an Info field, use a period at the end
- of the sequence.
-
- The string "$C0 06" would mean change to program 6 on
- the first MIDI channel. That could also be entered as
- "$C006" or just "$C06" (06 assumed for the final 6).
- Unrecognized characters will be treated as separators.
- Letters may be in upper or lower case.
-
- These sequences may appear anywhere in the 16 Info
- fields, and are processed in order from top to bottom.
- The letter "N" may be included in a sequence to
- specify the 4-bit channel of the line on which it
- appears. For example, "$CN 06" would send a program
- change on the channel indicated by the Map column for
- the line in which it occurs. This is generally a
- better method to use, since channel mapping may be
- changed without worrying about channel messages in the
- initialization string. This is the only relationship
- of the string to a particular screen line; otherwise,
- any line may be used.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Updating
-
- Selected playing parameters may be permanently changed
- in the MIDI file through the use of "Modify Mode".
- This is not the same as changes saved in the auxiliary
- .PLA files, which do not alter the basic MIDI file.
- Modify mode is toggled on or off using the Alt-F5 key
- (or clicking on Mod if using a mouse). While modify
- mode is on, any portions of the song traversed by
- playing or skipping are changed according to the
- following parameter values in effect: channel map,
- channel volume, transpose, and master volume.
-
- Note: Once such changes are made, it is possible that
- the only way to restore the original values is to
- reload the MIDI file, so care should be exercised.
- For example, if a wide range of volume levels existed
- and they are all forced to maximum, it is not possible
- to restore the original range.
-
- In order to save changes made under modify mode, press
- Alt-F4. This will prompt for a MIDI file name, and
- then write a new file. Remember that only sections
- played under modify mode will have been altered. The
- easiest way to quickly apply changes to the entire
- song is to rewind and then position to the end of the
- song.
-
- Some examples
-
- To change all channels to play on channel 1:
-
- - Set the channel map field for each active channel
- to 1. A shortcut is to set one of them and press
- Alt-C to make the others the same.
- - Press Alt-F5 to turn on modify mode.
- - Play (or skip) through the song.
- - Save the file using Alt-F4.
-
- To transpose a section of the song:
-
- - Set the transpose field for all affected channels.
- - Position to just before the section to be
- transposed.
- - Start playing (F7).
- - Press Alt-F5 when the section begins (this is a
- type of "punch in" process - you need to be
- accurate).
- - Press Alt-F5 the instant the section to be
- transposed is complete to turn off modify mode.
- - To listen to your change, first restore the
- transpose fields to their original values (or
- playback will appear to be transposed twice).
- - Save the file using Alt-F4.
-
- To punch in a volume correction:
-
- - Change the volume field for the affected channel(s).
- - Position to just before the affected area.
- - Start playing (F7).
- - Press Alt-F5 at the correction point, and again
- after it.
- - Save using Alt-F4.
-
- To change the overall volume level of the song in real
- time using a mouse:
-
- - Rewind.
- - Set the volume slider to the initial volume level.
- - Click both mouse buttons to release the slider if
- desired.
- - Press Alt-F5.
- - Start playing (F7).
- - Move the slider up and down to adjust the volume
- level.
- - When done, save using Alt-F4.
-
- It is best to practice these operations a few times
- before actually turning on Modify mode. Remember that
- you can always reload the original MIDI file if
- necessary (as long as you haven't replaced it with
- Alt-F4). Don't forget that changes are applied every
- time a section is played, so changes may accumulate if
- you are not careful.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- MIDI Sync
-
- Synchronization to an external MIDI sequencer may be
- selected by pressing Alt-F7. When in external sync
- mode, Play responds to the MIDI messages Start, Stop,
- Continue, Clock, Song Position Pointer, and Song
- Select. This mode is indicated by a flashing
- Play/Pause indicator. Once external sync is enabled,
- Play acts as a slave to the remote device. The song
- will play only after a Start or Continue message is
- received, followed by a succession of Clock messages.
- The external clock ticks determine the song tempo; the
- Tempo value on the screen has no effect. If a play
- list has been loaded, Song Select messages will load
- a specific song from the play list.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Function Descriptions
-
-
- Function Mouse
- Key Function Description
-
- F1 Help Display help information.
- F2 Files Display file selection screen.
- F3 Exit Exit program.
- F4 Save Save configuration to disk (.PLA file).
- F5 |<< Rewind to beginning. If at 00:00, skip
- to previous song in play list.
- F6 >> Fast forward (advances 10 seconds).
- F7 || Toggle between play and pause.
- F8 >>| Skip to next song in play list.
- F9 Left button Decrease value of current cell.
- F10 Right button Increase value of current cell.
- Home Go to first screen cell (File:).
- Alt-F1 Toggle channel activity indicators
- on or off.
- May be necessary to reduce screen
- updates on slower machines.
- Alt-F2 Thru Toggle MIDI thru on or off. If on,
- all MIDI input is echoed to output.
- Default is off.
- Alt-F3 Push Push to DOS. Allows entry of DOS
- commands. Enter "exit" to return.
- Alt-F4 Write Write a new MIDI file.
- Alt-F5 Mod Toggle modify mode on or off.
- Default is off.
- Alt-F7 Sync Toggle between internal sync and
- external MIDI sync. Default is
- internal.
- Alt-F9 Decrease volume slider sensitivity.
- Alt-F10 Increase volume slider sensitivity.
- Page Up PgUp Display channels 1-12.
- Page Down PgDn Display channels 5-16.
- Alt-C Change all values in column to be
- the same as the current cell.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Play command line
-
- The basic format of the Play command line is as follows:
-
- play File name Mode -Options
-
- If File name is specified, Play is run non-
- interactively (i.e., the file is just played, without
- the full-screen editing display). Interactive mode is
- selected by leaving off the file name. A play list
- may be specified by preceding the file name with "@".
-
- Mode may only be specified if a file name is given.
-
- If Mode is a number from 1 to 16, it indicates the
- channel to which all channel messages will be
- redirected. This is useful for quick "auditioning" of
- a file when the actual channels are unknown, or when
- they do not match the equipment settings. For more
- control, run Play interactively.
-
- If Mode is the letter "S" (for Scan), no playing is
- done, but the file is scanned and pertinent channel
- and track information is listed (similar to that
- displayed in interactive mode). To capture scan
- output to a file, use standard DOS output redirection.
- For example:
-
- play midifile s >outfile
-
- If Mode is the letter "D", the events in the MIDI file
- are listed on the screen as they are played, along
- with the corresponding track times in microseconds.
- Playing may be choppy in this mode due to time delays
- as information is displayed on the screen. If "X" is
- specified instead of "D", no playing occurs - only
- events are listed. Output may be captured to a file
- as mentioned above.
-
-
- -Options may consist of any of the device setup
- options given in Appendix A, plus -w, which specifies
- the number of seconds to wait before loading the next
- song when advancing automatically. The default is -w1
- (one second). Separate all options with at least one
- space.
-
-
-
- Examples:
-
- play (Runs the program interactively)
-
- play test.mff (Plays the file non-interactively)
-
- play test.mff s (Scans file and lists data)
-
- play test.mff 3 (Maps all channels to channel 3)
-
- play -dmpu::336 (Interactive; MPU address 336h)
-
-
-
- The following applies when Play is used in batch (non-
- interactive) mode:
-
- Once play begins, it will proceed until the end of the
- song, or until the letter "Q" is pressed. If a play
- list file name was given, each song in the list will
- be played in succession. Pressing the letter "S" will
- end the current song and skip to the next. When the -
- w option is used with a play list, play will pause
- between songs for the amount of time specified. While
- pausing, pressing any key will start the next song
- immediately.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- JLCooper CS-1 Control Station
-
- The Play program may also be operated through use of
- the JLCooper Electronics CS-1 control box. Prior to
- using Play with the CS-1, its installable driver must
- have been loaded by running cs1drv (included). Play
- will automatically detect the presence of the driver
- and enable CS-1 functions.
-
- Following are the control / key equivalents:
-
-
- CS-1 Keyboard / Mouse
-
- Diamond buttons Arrow keys
- Wheel F10/F9 (Increase/Decrease)
- F1 - F4 Same
- Shift-F1 - Shift-F4 Alt-F1 - Alt-F4
- Online Enter
- Rewind Same
- Fast Forward Same
- Shift-FFwd Skip forward
- Stop Pause
- Play Play/Pause
- Record Toggle modify mode
-
-
- _________________________________________________________________
-
- * Play/R - Memory-resident MIDI File Player
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Introduction
-
- Play/R is a trimmed-down version of Play which can run
- unattended in the background while you use your
- computer for other tasks. It can play any standard
- MIDI file with up to 16 tracks. Now you don't need to
- be without your music while working on spreadsheets,
- documents, or doing any other computing chores.
-
- A pop-up window allows playback controls for pause,
- rewind, fast forward, skip, and volume. Individual
- files or Play-compatible song lists can be specified.
- Play/R requires approximately 60K of RAM, plus MIDI
- file size. It also supports an external programming
- interface which allows it to be controlled by other
- applications.
-
- Play/R runs as a TSR, or Terminate and Stay Resident
- program. Once loaded, it sits quietly until the user
- invokes it by pressing a special "hot key". A small
- window pops up allowing the entry of a standard MIDI
- file name or play list of multiple files. Playing
- begins immediately and the user may control various
- functions such as rewind, play, pause, etc., while the
- pop up window is displayed. After the window is
- closed, play continues in the background.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Command line
-
- Play/R is loaded using the following command format:
-
- playr File name -Options
-
- File name is an optional file to be played
- immediately. If not specified, no playing will occur
- until Play/R is popped up and a file name entered. A
- play list may also be specified by preceding the file
- name with "@".
-
- -Options includes the device options given in Appendix A,
- plus any of the following:
-
- -a Indicates the amount of memory (in K bytes;
- 1K = 1024 bytes) to allocate for MIDI file storage.
- The default is -a24 (24K bytes). See -l below also.
-
- -m Selects the operating mode: 1, 2, or 3. The default
- is -m1. Modes are described below.
-
- -k Selects the "hot key" which will pop up the
- interactive display. Choose from the letters
- A to Z. After the program is loaded, press Alt
- and this letter simultaneously. The default is
- -kp (which selects Alt-P).
-
- -l Specifies that LIM EMS (expanded memory) is to be
- used for MIDI file storage if available. This reduces
- the resident size of Play/R substantially.
-
- -w Specifies the time in seconds to wait before loading
- the next song when advancing through a play list.
- The default is -w1 (one second).
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Files
-
- The file name given on the command line, or after pop
- up, must indicate a standard MIDI format (or CMF) file
- in the current directory, or include a device and path
- name. If the name is preceded by the character "@",
- it is taken to mean the name of a "play list" file.
- A play list is a text file containing the name of one
- song file per line. Up to 30 files may be given in a
- play list. Songs in the list advance automatically
- to the next when playing, and the list will loop
- continuously. Files beginning with "@" as part of the
- actual name are also assumed to be play lists (if @ is
- the first character entered).
-
- At the window prompt, or in a play list, file names
- may be followed by a space and a number from 1 to 16,
- indicating the MIDI channel on which to play all notes
- (regardless of MIDI channel designations in the file).
- If a channel is specified in this way, program changes
- are disabled, since they are not likely to make sense
- when merging multiple channels.
-
- Auxiliary .PLA files created by Play version 2.2 and
- higher will be loaded and used to control play if
- available. A channel number specified along with the
- file name will take precedence over the .PLA file.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Pop up window
-
- To invoke Play/R after it has been loaded, press Alt-P
- (or the alternate key specified on the command line).
- It may be necessary to hold the key for up to 2 seconds
- before the pop up window appears, depending on system
- activity. Pop up can only occur on a text mode
- screen - not a graphics screen. You will receive an
- audible indication when pop up is not possible.
-
- The pop up window indicates the song file currently
- being played, the length of the file in minutes and
- seconds, and the current song position. Song length
- is only displayed if a .PLA file is available, or if
- the song has played through once and the length has
- been determined. Also, there is a space in which to
- enter a new song file to play. The following
- keystroke functions are defined:
-
- F3 Exit and remove from memory
- (when safe to do so).
- F5 Rewind to beginning of song.
- If using a play list and already
- at the beginning, move to previous
- song.
- F6 Fast forward - advances 10 seconds.
- F7 Play / Pause
- F8 Skip to next song in play list.
- Check song length if no play list.
- Esc Close window and resume processing.
- Up/Down arrow Increase/decrease volume.
- Alt-M Advances through the 3 play modes
- described below.
- Alt-R Reset the MIDI interface. Play/R
- expects the MIDI interface to be
- in a specific mode. If another MIDI
- program changes it, Alt-R will restore
- it to the necessary state. Specifically,
- the MPU interface needs to be in "UART"
- or "dumb" mode. If another program changes
- to intelligent mode or does a hardware
- reset, Play/R will not appear to be playing.
- Press Alt-R to restore the interface.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Modes
-
- The following operating modes, selected via the -m command
- line option or by pressing Alt-M on the pop up screen,
- are defined:
-
- Mode 1: Use background interrupt stepping (default mode).
-
- Mode 2: Same as mode 1, plus conditional timer stepping.
-
- Mode 3: Same as mode 1, plus unconditional timer stepping.
-
-
- Mode 1 relies on the underlying TSR mechanism,
- TesSeRact, to determine when it is absolutely safe to
- interrupt DOS in order to play or pop up. These are
- very stringent requirements, resulting in intermittent
- play while heavy system activity is in progress, and
- possibly no playing in certain applications.
-
- Mode 2 adds use of the system timer (about 18 ticks
- per second) to advance play. This permits play to
- continue while running programs which otherwise would
- not allow Play/R to operate at all. Any DOS activity
- will temporarily suspend play, however. See warnings
- for mode 3 below.
-
- Mode 3 combines idle time processing with forced timer
- stepping to assure high accuracy and continuous play
- regardless of other system activity. While it is
- unlikely that timer interrupts will cause problems,
- this is technically "unsafe". High-speed operations
- such as asynchronous port data transfers and local
- area network activity may not work properly if
- interrupted for even a short time. Critical functions
- such as backups are not recommended while play is in
- progress.
-
- Users of 2/3/486 processors may select an additional
- command line option, -c, to specify AT real-time clock
- usage, in which case the mode 2 and 3 interrupt
- interval changes to 5 milliseconds. Because of the
- amount of system overhead, noticeable slowing of other
- programs may occur.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Programming
-
- Play/R and it's non-pop up version Play/D provide an
- applications programming interface which allows their
- control by many available languages, including C, Pascal,
- Basic, GRASP, and assembly. Play/R and Play/D serve as
- loadable MIDI drivers which can be used to control playback
- of existing MIDI files, or to perform low-level MIDI
- input and output. Information for programmers is contained
- in the developer's archive file, playrdev.exe. This archive
- contains a number of documentation files and sample libraries
- for common languages. Registered users of MidiTools may
- distribute Play/D with end user applications they create.
-
-
-
- _________________________________________________________________
-
- * Record - Simple MIDI File Recorder
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Introduction
-
- Record is a tool for quick recording of MIDI data into
- a standard MIDI file. It is not intended for
- sequencing type operations, but rather, for testing,
- bulk dump capture, or other spur-of-the-moment
- recording needs. The file which is created can be
- played back using the MidiTools player utilities, or
- any other software which can read standard MIDI files.
- Recordings are single track, and limited to about
- 16,000 MIDI events or 160,000 bytes of system
- exclusive data. Any type of MIDI channel data (notes,
- control changes, etc.) or system exclusive data may be
- recorded. Real-time data is not supported by the MIDI
- file specification.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Usage
-
- To use Record in its most basic mode, type "record"
- and a file name. That's it. Start your MIDI input,
- and when done, press a key. The input will have been
- recorded in the specified file. For example, to
- record a bulk dump from a synthesizer and save it to
- a file called "testdump", enter:
-
- record testdump
-
- Start the bulk dump from the synthesizer's control
- panel and wait for it to complete. Press a key to end
- recording and write the MIDI file. To send the data
- back later, you could type:
-
- play testdump
-
- When Record is run without specifying a file name on
- the command line, it executes interactively. This
- gives a bit more control over the recording operation.
- Several options can be specified by filling in the
- data cells on the screen prior to recording. To begin
- recording, press F7 (or click the [Record/Stop] button
- at the bottom of the screen). Actual recording begins
- with the first MIDI event received, and continues
- until F7 is pressed again. Recording can be
- subsequently resumed by pressing F7. To create the
- MIDI file on disk, press F4 (Write). To clear the
- recorded data in order to make a new recording, press
- F2 (Clear). The data cells on the screen and
- available function keys are described below.
-
-
- File
-
- The name of the MIDI output file. The default name is
- "out.mff". Recording can be initiated repeatedly and
- the output file will be replaced each time F4 is
- pressed unless the name is changed.
-
-
- Title
-
- A short descriptive note to be included in the file
- for use by a MIDI file-capable sequencer or other
- reader.
-
-
- Tempo
-
- The base tempo assigned to the sequence. The default
- is 120 quarter note beats per minute.
-
-
- Format
-
- One of 2 supported MIDI file formats: 0 or 1. In
- general, format 0 is the safest since almost all MIDI
- software will accept it.
-
-
- Delay
-
- Allows a pause to be inserted at the beginning of the
- sequence. Normally, the first MIDI event will be
- recorded at time 0, but if this value is non-zero, the
- first event will start at the specified time (in
- tenths of a second).
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Record Functions
-
- Function Mouse
- Key Function Description
-
- F1 Help Display help information.
- F2 Clear Discard recorded MIDI data.
- F3 Exit Exit program.
- F4 Write Write recorded data to named
- MIDI file.
- F7 Record/Stop Start or pause recording.
- F9 Left button Decrease cell value.
- F10 Right button Increase cell value.
- Alt-F2 Thru Toggle MIDI thru on/off.
- Default is on.
- Alt-F3 Push Push to DOS. Allows entry of DOS
- commands. Enter "exit" to return.
- Alt-F10 IBM Music Feature only:
- Toggle music mode. Music mode must
- be disabled when recording large bulk
- dumps.
-
-
- _________________________________________________________________
-
- * Watch - Multi-function MIDI Analyzer
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Introduction
-
- Watch is actually three tools in one: a high-level
- MIDI monitor, a system exclusive dump processor, and
- a computerized patch bay. As a monitor, Watch
- translates incoming MIDI codes into readable English
- descriptions. During normal monitoring, useful
- abbreviations of the received messages are displayed.
- In addition, a review facility allows data to be re-
- examined with messages fully described. There is no
- need to puzzle over incomprehensible streams of
- digits. For diagnostic work, Watch can send specific
- data sequences to a MIDI device, and then display its
- response. A set of "send keys" may be programmed to
- send out short MIDI sequences or entire disk files
- whenever they are pressed.
-
- When handling bulk dumps, Watch can be used to send
- system exclusive messages, or to capture and save them
- to disk. For example, a dump of a synthesizer voice
- bank can be initiated from Watch, and the received
- data can be saved to disk as a standard MIDI format
- file (or as raw binary data). This data can be resent
- later to restore the particular voice data.
-
- Various filtering and patching capabilities give a
- great deal of control over the data which is received
- and resent. It is possible to block extraneous MIDI
- messages so that specific data of interest is more
- easily viewed. Automatic processing of the MIDI data
- is also available, permitting channel redirection,
- volume changes, transposition, note range limiting,
- and so on.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Monitor
-
- The "Monitor" screen is where the principal activity
- takes place in Watch. All incoming MIDI messages are
- displayed here. Messages are translated into readable
- abbreviations of their commonly used names. For
- example, a program change on channel 1 for instrument
- 0 is represented: "1:ProgCh/00". All such channel
- messages are displayed with a channel number prefix.
- Note-on messages are shown as channel:note+velocity.
- For example, a middle C note with velocity 40 played
- on channel 1 would be displayed "1:C3+40". Note-off
- messages are shown with a minus sign instead, and
- velocity would only be shown if non-zero. A channel
- number of 99 indicates that no status byte was
- received, so the channel in use could not be
- determined (note on is assumed for the initial running
- status).
-
- Note: C3 is defined as MIDI note number 60 (decimal).
- This is not a fixed standard. Some manufacturers use
- C4 to identify middle C, though it is still MIDI note 60.
-
- Messages other than note on/off containing 1 or 2 data
- bytes are shown as the message name (possibly prefixed
- with the channel), followed by the data bytes
- (separated by "/"). If you are unsure of a message
- abbreviation, switch to the review buffer (by pressing
- any of the buffer control keys) and the message will
- appear fully named. The data portion of system exclusive
- messages longer than 256 bytes (or ones received in
- rapid succession) will not be displayed at the time
- the message is received; use the review buffer to
- examine them.
-
- General status information appears on the line below
- the display area. This includes thru status, real-
- time mode, number base for MIDI data, and the current
- size of the review buffer as a percentage from 0 to
- 100. "Thru:On" indicates that all data received from
- MIDI IN will be resent through MIDI OUT.
-
- IMPORTANT: Thru should always be turned OFF when
- receiving data dumps from a MIDI device.
-
- "RealTime:Pass" indicates that system real-time
- messages, such as MIDI Clock and Active Sensing, are
- to be received and displayed. "RealTime:Block"
- prevents all real-time messages from being received
- (regardless of the individual settings on the
- Programming screen). The MIDI number base is
- indicated as "HEX" or "DEC" (toggled by Alt-F1). "HEX:
- indicates that MIDI data bytes are to be displayed in
- hexadecimal (base 16: 0-9, A-F). "DEC" indicates base
- 10 display of MIDI data bytes. Note: Channel numbers
- are always shown in decimal (from 1-16).
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Buffer
-
- Pressing any of the buffer control keys (Home, End,
- up/down arrow, PgUp, PgDn) will switch into buffer
- review mode. On a color display, review text will
- appear in cyan (light blue), compared to white for
- normal monitoring. In this mode, you can move around
- in the buffer and examine the received data in full
- detail. Each line will generally show one MIDI event,
- together with the reference time at which the event
- was received (as min:sec.ms).
-
- The contents of system exclusive messages are shown 10
- bytes per line, with the System Exclusive and End
- Exclusive portions displayed on separate, time-stamped
- lines. The data byte lines in between are sequenced,
- starting at 1. Following each set of 10 data values
- is the same data represented as ASCII characters.
- Non-printing characters are displayed as dots.
-
- The buffer can hold approximately 16,000 MIDI events,
- including 140,000-160,000 bytes of system exclusive
- data. When the buffer limit is exceeded, the oldest
- data is discarded to make room for new incoming data.
- Data continues to be received while in review mode,
- and moving down in the buffer will show any new data.
- To switch back to normal monitoring, press F5
- (Monitor). To clear the buffer entirely, press F2
- (Clear).
-
- To write the buffer contents to a file, press F4
- (Write). This will prompt for a file name, and then
- write the data to disk in standard MIDI file format.
- This data can be subsequently resent, using this
- program, or any other program (such as a sequencer)
- which supports standard MIDI files. Since all events
- are time-stamped, timing information is recorded along
- with the MIDI data. Sending MIDI data (see below)
- resets the buffer reference time. If more events are
- received after a send, later data can actually have
- earlier reference times. In this case, buffer times
- are adjusted when writing so that all saved event
- times are increasing.
-
- To write the buffer to disk in raw binary format
- (sometimes referred to as MIDIEX format), press Alt-F4
- and enter the file name when prompted. Such data can
- be resent later, as with standard MIDI files.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Sending
-
- Using the "Programming" screen (described later), up
- to 10 "send keys" can be defined. These keys are
- Alt-1 thru Alt-9 and Alt-0 (press Alt and then a
- number). They may be defined as a MIDI byte sequence,
- or the name of a file. When the key is pressed (or the
- digit selected if using a mouse), the defined data is
- sent. When a file is used, it may be either a
- standard MIDI format file, or a raw binary data file
- (a stream of MIDI bytes). Standard MIDI file data is
- sent according to the times defined in the file.
-
- You may do other things while sending non-system
- exclusive data from a MIDI file, including receiving
- new data into the buffer. Sending any of the
- following will stop operations until sending is
- complete: a manually entered sequence, data from a
- binary file, or a system exclusive message within a
- standard MIDI file. Pressing any key will end such an
- operation. To completely stop a MIDI file send, press
- the key which initiated it (F2 will also stop it).
-
- The speed at which MIDI file system exclusive data,
- binary file data, and manual data is sent is
- determined by the "Bytes/sec" value on the Programming
- screen. The normal MIDI data rate is 3125 bytes per
- second. Some devices cannot keep up with this rate
- when receiving bulk data. In such cases, try lower
- speed settings until a successful transfer is
- obtained. A delay before each system exclusive
- message may also be required; use the "SysEx wait"
- value for this.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Data loss
-
- Use care when receiving large bulk dumps from a MIDI
- device. In some cases it is possible that the screen
- display may get behind the data reception, causing
- data overruns (missed data). This might happen, for
- example, on slower machines receiving many small
- system exclusive messages. One option is to switch to
- the Programming screen before initiating the dump at
- the device; this will minimize screen updating delays.
- Also, be sure that Watch is being run "interrupt-
- driven". This is the default mode - used whenever
- possible - however it is possible that Watch was not
- able to detect the proper interrupt (or IRQ) number
- and switched to "polled" mode. On slower machines
- this may cause data to be lost. To check, run Watch
- with the -v option to display device information at
- start up. If it says "IRQ: none", polled mode is
- being used. You may need to use the -d option (see
- Appendix A) to force the proper IRQ selection.
-
- Watch contains a MIDI receive buffer which is 4K bytes
- long by default. This is a temporary staging buffer
- and should not be confused with the much larger review
- buffer. On slower machines this buffer may need to be
- increased - possibly up to the size of the largest
- single dump to be received. Use the -s command line
- option to increase this buffer (to as much as 63K
- bytes).
-
- The IBM Music feature is not able to receive large
- dumps (greater than 2-3K bytes) unless it is in the
- proper mode. The default mode, music mode, will
- result in truncated dumps. Press Alt-F10 to disable
- music mode. This will generally allow dumps up to the
- maximum size of the review buffer. Note that while
- music mode is disabled, the card will not produce
- sound. Press Alt-F10 again to toggle music mode back
- on.
-
- If you are trying to save an important dump, such as
- the factory settings of a device, it is a good idea to
- test the dump by receiving it twice and saving it to
- two different files. Then compare these file using
- the DOS COMP (or FC) command:
-
- COMP file1 file2
-
- This will only work with binary files - slight timing
- variations recorded in standard MIDI files will cause
- bad compares, even though the actual data is the same.
-
- A cautious procedure would be as follows: [1]
- receive dump, [2] write buffer to binary file (Alt-
- F4), [3] clear buffer (F2), [4] receive dump
- again, [5] write to second binary file (Alt-F4), [6]
- write to standard MIDI file if desired (F4), [7] exit
- (F3) and compare binary files. This procedure should
- be followed until you are confident that all your
- dumps are being received correctly.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Monitor Functions
-
- Function Mouse
- Key Function Description
-
- F1 Help Display help information.
- F2 Clear Clear display and review buffer.
- Stop any MIDI file transmission in
- progress.
- F3 Exit Exit program.
- F4 Write Write the buffer contents to disk
- as a standard MIDI file.
- F5 Monitor Re-enable incoming display if
- viewing buffer.
- F6 Program Switch to programming screen.
- F7 Thru Toggle MIDI thru on or off.
- Default is off.
- F8 RealTime Toggle real-time message reception
- on or off.
- Alt-1 thru Alt-9, Alt-0 Send one of ten MIDI data strings.
- Alt-F1 Hex/Dec Toggle between decimal and
- hexadecimal numeric display.
- Alt-F2 Thru Toggle MIDI thru (same as F7).
- Alt-F3 Push Push to DOS. Allows entry of DOS
- commands. Enter "exit" to return.
- Alt-F4 Write buffer to disk as raw binary
- file (also known as MIDIEX format).
- Alt-F8 Send All-Notes-Off message on all
- channels to silence equipment.
- Note: Not all devices respond to
- all-notes-off.
- Alt-F10 IBM Music Feature only: Toggle
- music mode.
- Home Top Display top of review buffer.
- End Bot Display bottom of review buffer.
- Up arrow LnUp Scroll up one line in buffer.
- Down arrow LnDn Scroll down one line in buffer.
- Page Up PgUp Page Up one screen in buffer.
- Page Down PgDn Page Down one screen in buffer.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Filtering
-
- The Programming screen, which is reached by
- pressing F6 on the Monitor screen, allows incoming
- MIDI messages to be selectively filtered out or
- modified. Note that Thru:On must be specified if the
- modified data is to be resent. Each of the 16
- available MIDI channels is listed across the top. The
- matrix below permits modification or filtering by
- channel for specific classes of messages listed on the
- left of the screen.
-
-
- Enable
-
- All messages for the channel may be enabled (on) or
- disabled (off). If enabled, the following items may be
- used to filter specific messages.
-
- Map
-
- Messages received for the channel indicated at the top
- of the column will be redirected to the channel
- specified. The default is the same channel.
-
-
- Transpose
-
- Note messages received on the channel (before mapping)
- will be transposed by the specified number of half
- steps (+ or -). Resulting notes below C-2 or above G8
- are discarded. Note: C3 is middle C.
-
- Velocity
-
- This value has two distinct uses. Note velocities on
- the channel will be scaled by the given percentage if
- the value is greater than zero. 100% is the original
- velocity and indicates no modification. For example,
- a value of 200 can double the velocity, and 50 will
- halve it.
-
- If the value is negative, its absolute value is taken
- as a velocity threshold below which note messages are
- filtered out. Both forms assume decimal values. A
- value of -64 will filter out notes having a velocity
- less than 64.
-
- Low/High note
-
- These are the lowest and highest notes in the range
- C-2 to G8 which will be received (prior to
- transposing).
-
-
- The following enable or disable specific message
- classes on the channel:
-
- Note Msgs All note messages.
-
- Aftertouch All aftertouch messages - poly or
- mono (channel pressure).
-
- Ctrl change All control change messages.
-
- Prog change All program change messages.
-
- Pitch wheel All pitch bend messages.
-
- The following system messages can be selectively
- passed or filtered by indicating On or Off for the
- following 3-letter abbreviations:
-
- Exc: System exclusive
-
- System common messages:
-
- Qrt: Quarter Frame
- Pos: Song position
- Sel: Song select
- Tun: Tune request
-
- System real-time messages:
-
- Clk: MIDI clock
- Str: Start
- Cnt: Continue
- Stp: Stop
- Act: Active sensing
- Res: System Reset
-
- Overall filtering of real-time data is controlled
- using the F7 function key. If RealTime:Block is
- selected, no real-time data is passed. For
- RealTime:Pass, only those real-time messages above
- specifically enabled are passed.
-
- All filtering and modifications are applied before
- data is displayed on the monitor screen and saved in
- the buffer. Also, the data displayed is what is
- output when MIDI thru is enabled. Note that data
- received while on the programming screen continues to
- be stored in the buffer.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Send Keys
-
- Up to 10 keys may be assigned specific MIDI send
- functions. The bottom section of the Programming
- screen allows the keys Alt-1 thru Alt-9, and Alt-0
- to be defined as arbitrary MIDI data. When one
- of these keys is pressed, the associated data is
- sent. Each key may be defined as a short string of
- hexadecimal digits or the name of a MIDI data file.
- If a sequence is entered directly, it may be a
- continuous string of 2-digit hex numbers with no
- separators, or 1- or 2-digit hex numbers separated by
- spaces or commas. Messages up to 13 bytes may be
- entered this way. For longer messages, a string may
- be continued into the next key's definition by
- entering a plus (+) as the last item in the string.
- Up to 9 continuations are possible, for a total
- possible message length of 120 bytes.
-
- If the first character in the string is "@", a file
- name is expected to follow. When the Alt key is
- pressed, the named file will be sent. The file may be
- a standard MIDI format file, or may be a binary data
- file containing a sequence of MIDI bytes.
- Continuation does not apply in the case of files. If
- just the "@" character is entered, or the file name
- includes a wildcard character (* or ?), a list of
- files from which to choose is displayed. Move to the
- desired file and press Enter (or click if using a
- mouse). The selected file name will be entered in the
- send key definition cell. The same rules used by DOS
- for file matching apply.
-
- MIDI sequences may be sent from either the Programming
- or Monitor screen. Press Alt and a digit to send the
- defined sequence. If using a mouse, click on one of
- the 10 digits at the bottom of the Monitor screen.
-
- Note: The Alt-0 key has slightly different usage from
- the rest of the send keys. As a shortcut to avoid the
- need to switch to the Programming screen to define it,
- the program will prompt for its contents (displaying
- the last entered string) when Alt-0 is pressed. The
- string may be modified or sent as is by pressing
- Enter. To cancel the send, press Esc to blank the
- string and press Enter.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Delays
-
- Send delays may be specified using the "SysEx wait" and
- "Bytes/sec" values on the Programming screen. These
- may be necessary to allow certain MIDI devices to
- properly accept bulk data transmissions. SysEx wait
- specifies the amount of time in milliseconds to wait
- before sending any sysex message. A delay of up to
- 9999 (10 sec.) can be entered. The overall
- transmission rate can be specified by setting the
- Bytes/sec value, thus reducing the standard MIDI
- transmission rate of 3125 bytes per second.
-
- Delays as applied to the transmission of standard MIDI
- files are slightly altered due to the real-time nature
- of the files. The basic transmission rate only
- applies to data within a system exclusive message.
- Also, the system exclusive wait is not applied in the
- case of special "running" or "sub-message" sysex
- events which should already have built-in transmission
- times.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Programming Functions
-
- Function Mouse
- Key Function Description
-
- F1 Help Display help information.
- F3 Exit Exit program.
- F4 (Reset) Channels Reset channel and message
- filtering to default state.
- F5 (Reset) Keys Blank all send keys.
- F6 Monitor Return to MIDI monitor screen.
- F7 Thru Toggle MIDI thru on or off.
- Default is off.
- F8 RealTime Toggle real-time message reception
- on or off.
- F9 Left Button Increase value of selected cell.
- F10 Right Button Decrease value of selected cell
- Alt-1 thru Alt-9; Alt- 0 Send one of 10 MIDI data strings.
- Alt-F2 Toggle MIDI thru (same as F7).
- Alt-F3 Push Push to DOS. Allows entry of DOS
- commands. Enter "exit" to return.
- Alt-F8 Quiet Send All-Notes-Off message on all
- channels to silence equipment.
- Note: Not all devices respond to
- all-notes-off.
- Home Go to top of screen.
- Alt-R Change all values in row to be
- the same as the current cell.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Set up
-
- All filter selections, key definitions, and the overall
- status (thru, real-time, hex/dec) are saved when the
- program ends. They are restored the next time the
- program is run. The original channel status may be
- reset using the Reset Channels function. This also
- resets the system message filtering to allow all
- messages. The Reset Keys function will blank all the
- send key definitions. Settings are saved in the file
- "WATCH.STP". This file should not be altered, or
- results may be unpredictable.
-
-
- _________________________________________________________________
-
- * MIDI File Decoding and Encoding
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Decode
-
- The Decode program gives you the ability to translate any
- standard MIDI file into a readable text format. This
- allows you to view the contents in complete detail -
- a feature which may not otherwise be available in
- common sequencing software. The output of Decode can
- be directed to a text file for viewing or printing
- using conventional text utilities. In addition, the
- text file can be modified using most available text
- editors or word processors. The modified file can
- then be converted back into a standard MIDI file using
- the companion Encode program.
-
- Standard MIDI files come in three formats: 0, 1 and 2.
- Format 0 is the simplest and most portable, containing
- only a single track. Format 1 files are used to
- represent typical multi-track sequences, with track 1
- reserved (by convention) for tempo information.
- Format 2 is the least common and its use is subject to
- interpretation since it represents multiple,
- independent tracks (which, for example, could be
- played at the same time or sequentially). Decode
- lists track events chronologically in all cases,
- although format 2 events are grouped by track, rather
- than interleaved as in format 1.
-
- Track data is composed mainly of three types of events -
- MIDI channel messages, system exclusive messages, and
- "Meta" events. A meta event is a special event type,
- specific to the MIDI file format, which indicates
- performance data, such as tempo changes, or
- non-performance data, such as track titles.
-
- The command format for Decode is as follows:
-
- decode MIDI input file text output file
-
- For example, to decode the MIDI file testmf.mff to a
- text file named out, type:
-
- decode testmf out
-
- The .mff extension was not needed, since any of .mff,
- .mid, .std, or .smf are assumed as valid extensions.
- Note that CMF files may also be decoded, but non-
- standard data will be discarded.
-
- If an output file is not given, the output will be
- displayed on the screen.
-
- Listing 1 shows the Decode output for a simple format
- 1 MIDI file. The line beginning with "Format:" shows
- the file format (as 0, 1, or 2), the number of tracks,
- and the time base division. For files using a
- metrical time base, the division is the number of
- ticks (the smallest timing unit used in the file) per
- quarter note. MIDI time code or SMPTE time bases
- would show the division as frames per second (fps)
- along with ticks per frame (tpf).
-
- Track data follows. The start of each event is shown
- in both ticks and real time (to the millisecond). If
- no tempo events (Meta event 51) appear in a track, a
- tempo of 120 quarter note beats per minute is assumed.
- MIDI file tempo is specified in microseconds per
- quarter note. The default tempo would mean 500,000
- microseconds (0.5 sec.) per quarter note. A tick
- would then be 0.5 divided by 96 = 0.005208 sec. per
- tick. In this file, the second event sets the actual
- tempo for the piece to be 100 beats per minute, or
- 600,000 microseconds/quarter note (0.6/120 = 0.005
- sec./tick). The main thing to remember is that a
- quarter note is 96 ticks, as given by the division
- value.
-
- The various meta events are mostly self-explanatory:
- Meta 59 defines the key signature as C Major; Meta 58
- defines a time signature of 4/4 with 24 MIDI clocks
- and 8 notated 32nd notes per
- quarter note; Meta 2F indicates the end of track 1;
- Meta 03 is a Sequence/Track name for track 2. Meta 7F
- is an example of sequencer-specific data; it has no
- meaning in the context of the MIDI file standard and
- must be interpreted by the appropriate sequencing
- software. It is similar to a system exclusive message
- in that it is vendor defined. Decode just lists the
- data in hexadecimal (base 16), as with the system
- exclusive message that follows it. Each data line of
- a sequencer specific or system exclusive event starts
- with a byte sequence number.
-
- -----------------------------------------------------
- Listing 1 - Decode output, standard format
-
- Standard MIDI file: testmf.mff
-
- Format: 1 Tracks: 2 Division: 96 ticks per quarter note
-
- Tick Time Track Event
-
- 0 0.000 Trk 1 Meta 59 Key Sig: C Major
- 0 0.000 Trk 1 Meta 51 Tempo: 100 bpm (600000)
- 0 0.000 Trk 1 Meta 58 Time Sig: 4/4 Clocks:24, #32nds:8
- 0 0.000 Trk 1 Meta 2F End of Track
- 0 0.000 Trk 2 Meta 03 Seq/Trk Name: 'Sample MIDI File'
- 0 0.000 Trk 2 Meta 7F Sequencer Specific, 10 bytes
- 0: 1 2 3 4 5 6 7 8 9 A
- 0 0.000 Trk 2 System exclusive - Roland (F0 41)
- 136 bytes
- 0: 10 2B 12 3 0 0 1 4 3 6 F 6 5 7 3 7 4 7 0 2
- 20: 0 5 9 6 1 6 E 6 F 6 0 D 4 2 4 2 0 3 F 8
- 40: A 7 A A 7 4 F 3 0 E F 3 1 E F 3 2 E 2 0
- 60: 9 E F F F F 0 8 6 2 0 E F 2 0 8 D A 1 0
- 80: F F 0 8 6 2 0 E F 4 E A 7 B 1 0 F F 0 8
- 100: 4 2 0 E F 6 8 B 1 C 1 0 F F 0 8 4 2 0 E
- 120: F 8 2 C B C 1 0 F F 0 8 4 2 7C F7
- 0 0.000 Trk 2 Chan 1: Program change/00 (C0 00)
- 30 0.188 Trk 2 Chan 1: Note on G2, vel= 31 (90 37 31)
- 59 0.369 Trk 2 Chan 1: Note off G2 (37 00)
- 60 0.375 Trk 2 Chan 1: Note on C3, vel= 2E (3C 2E)
- 89 0.556 Trk 2 Chan 1: Note off C3 (3C 00)
- 90 0.563 Trk 2 Chan 1: Note on D3, vel= 30 (3E 30)
- 119 0.744 Trk 2 Chan 1: Note off D3 (3E 00)
- 120 0.750 Trk 2 Chan 1: Note on E3, vel= 2E (40 2E)
- 149 0.931 Trk 2 Chan 1: Note off E3 (40 00)
- 149 0.931 Trk 2 Meta 2F End of Track
- -----------------------------------------------------
-
- The remaining lines, all on track 2, include examples
- of MIDI channel messages. Message descriptions are
- the same as those used in the Watch program. The actual
- MIDI bytes (in hexadecimal) are shown in parentheses.
- The file ends with an end-of-track meta event for track 2.
-
- Note: Numbers shown in a Decode listing are decimal
- (base 10) with the exception of those which are more
- useful (or traditionally) given in hexadecimal (base
- 16: 0-9, A-F). Hexadecimal numbers include Meta event
- numbers and all MIDI data byte values. Track/channel
- numbers, times, and byte counts are always decimal.
- To force all numbers to be shown in decimal, add -z to
- the Decode command line.
-
-
- An abbreviated format of the Decode output may be
- requested to save space, since the output file is
- often very large. Just add -a to the end of the
- Decode command line. For example, the following will
- produce the output file shown in Listing 2:
-
- decode testmf out -a
-
- An abbreviated output file consisting of mostly MIDI
- channel messages will usually be less than half the
- size of the standard output format. Note the
- following major differences:
-
- - MIDI channel messages are in abbreviated format,
- shown later.
-
- - Event types are coded M for Meta, S for System
- exclusive, and C for Channel messages.
-
- - The track number is not shown if it is the same as
- the preceding message.
-
- - Real time is not shown. Only ticks are given.
-
- -----------------------------------------------------
- Listing 2 - Decode output, abbreviated format
-
- Standard MIDI file: testmf.mff
-
- Format: 1 Tracks: 2 Division: 96 ticks per quarter note
-
- 0 Trk 1 M 59 Key Sig: C Major
- 0 M 51 Tempo: 100 bpm (600000)
- 0 M 58 Time Sig: 4/4 Clocks: 24, #32nds: 8
- 0 M 2F End of Track
- 0 Trk 2 M 03 Seq/Trk Name: 'Sample MIDI File'
- 0 M 7F Sequencer Specific, 10 bytes
- 0: 1 2 3 4 5 6 7 8 9 A
- 0 S SysEx/41 (F0 41), 136 bytes
- 0: 10 2B 12 3 0 0 1 4 3 6 F 6 5 7 3 7 4 7 0 2
- 20: 0 5 9 6 1 6 E 6 F 6 0 D 4 2 4 2 0 3 F 8
- 40: A 7 A A 7 4 F 3 0 E F 3 1 E F 3 2 E 2 0
- 60: 9 E F F F F 0 8 6 2 0 E F 2 0 8 D A 1 0
- 80: F F 0 8 6 2 0 E F 4 E A 7 B 1 0 F F 0 8
- 100: 4 2 0 E F 6 8 B 1 C 1 0 F F 0 8 4 2 0 E
- 120: F 8 2 C B C 1 0 F F 0 8 4 2 7C F7
- 0 C 1:ProgCh/00 (C0 00)
- 30 C 1:G2+31 (90 37 31)
- 59 C 1:G2- (37 00)
- 60 C 1:C3+2E (3C 2E)
- 89 C 1:C3- (3C 00)
- 90 C 1:D3+30 (3E 30)
- 119 C 1:D3- (3E 00)
- 120 C 1:E3+2E (40 2E)
- 149 C 1:E3- (40 00)
- 149 M 2F End of Track
- -----------------------------------------------------
-
- Any bad codes in the original MIDI file (such as out
- of range data bytes) are marked as "Bad" in either
- format. These codes are automatically removed by
- the Encode program when generating a new MIDI file.
-
- The following list shows MIDI file Meta event formats
- as generated by Decode, along with the minimal format
- accepted as input to Encode.
-
- Standard format Minimal format
- Meta 00 Sequence Number: n M 00: n
- Meta 01 Text: 'text' M 01: 'text'
- Meta 02 Copyright: 'text' M 02: 'text'
- Meta 03 Seq/Trk Name: 'text' M 03: 'text'
- Meta 04 Inst name: 'text' M 04: 'text'
- Meta 05 Lyric: 'text' M 05: 'text'
- Meta 06 Marker: 'text' M 06: 'text'
- Meta 07 Cue Point: 'text' M 07: 'text'
- Meta 20 Chan Prefix: n M 20: n
- Meta 2f End of Track M 2f
- Meta 51 Tempo: ttt bpm (nnnnnn) M 51 (nnnnnn)
- Meta 54 SMPTE Offset: M 54 n.n.n.n.n.
- nn.nn.nn.nn.nn.
- Meta 58 Time Sig: nn/nn Clocks: M 58 nn/nn nn n
- nn, #32nds: n
- Meta 59 Key Sig: xx xxxxx M 59: xx xxxxx
- Meta 7f Sequencer Specific, M 7f nnnnn nn nn ...
- nnnnn bytes nn nn ...
-
- - If no colon is included in a text event (meta 01-07), the
- quoted string must begin on the following line.
-
- - Tempo is specified in microseconds per quarter note.
-
- - The components of the SMPTE offset are in decimal, and
- represent hour, minute, second, frame, and fractional frame.
-
- - A full time signature specification includes the standard
- fractional designation, plus the number of MIDI clocks and
- notated 32nd notes per quarter note (usually 24 and 8).
-
- - The key signature is one of the following: Cb, Gb, Db, Ab,
- Eb, Bb, F, C, G, D, A, E, B, F#, C#, followed by the word
- Major or Minor.
-
- - Sequencer specific data bytes are in hexadecimal.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Encode
-
- The Encode program is able to read the text file output
- from Decode and convert it back into a standard MIDI
- file. This would generally be done after making
- manual modifications to the decoded file. You might
- also want to re-encode the file to eliminate bad data
- from the original file (which Decode would have
- marked), or to compress MIDI messages to use full
- running status.
-
- The command format for Encode is:
-
- encode Text input file MIDI output file
-
- For example, if the output of Decode were on a file
- "out", it could be re-encoded to a MIDI file as follows:
-
- encode out newfile.mff
-
- To compress all MIDI messages using full running
- status (if the original was not), add the -r option to
- the end of the command line.
-
-
- Following are the various rules to keep in mind when
- making changes to the decoded file (or creating one
- from scratch):
-
- - The only required header information is contained in
- the "Format:" line. That line must appear as shown in
- the listings.
-
- - All numbers in parentheses represent the real data.
- Textual information preceding these numbers is only
- for your reference. Decode will only look at the data
- in parentheses when reconstructing the MIDI file. For
- example, to change the program number in the following
- line, modify only the 00 within the parentheses. The
- 00 following "/" is ignored.
-
- 0 0.000 Trk 2 Chan 1: Program change/00 (C0 00)
-
-
- - For event lines, only the tick count is relevant.
- The real time, if shown, is only for reference and is
- not re-encoded.
-
- - Any event line may be deleted without affecting
- timing, since each line is time stamped with an
- absolute tick count. Deleting tempo meta events may
- cause strange results if not done carefully. New
- events may be added, as long as the tick time is in
- sequence.
-
- - Time may be added or subtracted between events by
- using a special format for indicating tick offsets.
- A line consisting of only a signed (+ or -) number
- will adjust all subsequent times by that number of
- ticks. Any number of these offset lines may be
- inserted.
-
- - A number which is expected to be in hexadecimal may
- be coded in decimal by including a decimal point. For
- example, "F7" in hex could be given as "247." in
- decimal.
-
- - "Trk" and a number must appear following the time
- only if different than the preceding event.
-
- - The event type must include the first letter of:
- Meta, System, Chan, or Bad (i.e., it must be M, S, C
- or B).
-
- - The total byte count for system exclusive and
- sequencer specific events must be correct. If you
- remove or add bytes in the data portion, the byte
- count must be adjusted. The sequence numbers followed
- by colons may be eliminated; only the actual data
- bytes (which are expected to be in hex) are needed.
- The total byte count may appear on the same line as
- the event header, or alone on the following line.
-
- - On a system exclusive header line, a 4-digit vendor
- code indicates an extended vendor id and must remain
- a 4-digit number. When F7 is the lead-in byte (rather
- than the usual F0), the vendor id is not used and the
- data is assumed to be a sub-message of an earlier
- system exclusive message (a format used by some
- vendors).
-
- - For text meta events, the text is enclosed in
- apostrophes, or single quotes (' '). The text may
- appear on the same line, following the event number
- and a colon, or if no colon is given, on the following
- line. Multiple quoted strings may appear on separate
- lines to represent long messages. To indicate an
- actual single quote in the string, use two single
- quotes in succession.
-
-
- Listing 3 shows the minimum acceptable format of the
- same file originally shown in Listing 1. It is not
- particularly readable, but the minimum format may be
- convenient when making manual changes, or if you are
- interested in writing a program to output the data
- without the complexity of directly generating a
- standard MIDI file.
-
- -----------------------------------------------------
- Listing 3 - Minimal Encode input example
-
- Format 1 Tracks 2 Division 120 ticks
- 0 Trk 1 M 59: C Major
- 0 M 51 (600000)
- 0 M 58 4/4 24 8
- 0 M 2F
- 0 Trk 2 M 03: 'Sample MIDI File'
- 0 M 7F 10
- 1 2 3 4 5 6 7 8 9 A
- 0 S (F0 41) 136
- 10 2B 12 3 0 0 1 4 3 6 F 6 5 7 3 7 4 7 0 2 0 5 9
- 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
- 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
- 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
- 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
- C B C 1 0 F F 0 8 4 2 7C F7
- 0 C (C0 00)
- 30 C (90 37 31)
- 59 C (37 00)
- 60 C (3C 2E)
- 89 C (3C 00)
- 90 C (3E 30)
- 119 C (3E 00)
- 120 C (40 2E)
- 149 C (40 00)
- 149 M 2F
- -----------------------------------------------------
-
-
- _________________________________________________________________
-
- * Filter - Interactive MIDI File Filter
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Introduction
-
- Filter is a powerful but easy-to-use tool for making
- certain types of file-wide changes to a standard MIDI
- file. Changes may be applied to all data in the file,
- or limited to certain tracks or channels. The basic
- capabilities of the program are listed below.
-
- - Change file format (0,1,2).
- - Extract or delete tracks or channels.
- - Move channels into tracks.
- - Change tempo.
- - Remove selected MIDI messages.
- - Remove notes outside pitch/velocity bounds.
- - Increase/decrease volume.
- - Compress volume range.
- - Change output channels.
- - Re-map program changes.
- - Transpose notes.
- - Remove bad or redundant data.
-
- The term filtering refers to the fact that various
- change requirements are set up in advance, and then
- the file is "passed through" with its data being
- removed or changed as it goes by. Changes may be made
- directly to the input file, or an entirely new file
- may be created, leaving the original intact.
-
- Filter is an interactive program, with a single screen
- controlling the entire process. Type "filter" to
- begin execution. There is quite a lot to digest on
- the main screen, but don't be intimidated. If you change
- nothing, the default settings on the screen would cause
- the filtering process to create an output file equivalent
- to the input file. You may make individual changes to
- start, or a whole set of changes in a single pass once
- you become more familiar with the various options.
-
- There are four basic data sections on the screen. The
- first section specifies input and output file names,
- and provides general information on how the output
- relates to the input. The second section allows the
- filtering action of the sections below it to be
- restricted to the channels and/or tracks specified.
- The third section is mainly used to specify the
- removal of certain types of MIDI messages. The fourth
- section defines various MIDI message conversions to
- perform.
-
- To enter or change data, move the large block cursor
- to the desired field on the screen using the arrow
- keys, or click directly with a mouse. After you have
- changed the filtering options as described in the
- following sections, press F5 (Filter) to begin the
- process.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Input / Output
-
- When the program starts up, the block cursor will
- appear at the "Input file" field. Type the name of a
- MIDI file and press return. Filter will load the file
- in preparation for processing. Once loading is
- complete (it may take a few seconds), notice that the
- input file "Format" value will indicate the file's
- format - 0, 1, or 2. Format 0 files contain a single
- track. Format 1 files contain multiple tracks, with
- track 1 normally reserved for tempo information.
- Format 2 files are also multi-track, but the tracks
- are not necessarily related to each other in time.
- Formats 0 and 1 are most common, with format 0 being
- the most portable; however, format 1 is more useful,
- and therefore the one most often encountered. Format
- 2 is rare, and not supported by most MIDI
- applications.
-
- If an input file name contains wildcard characters (* or ?),
- a list of all matching files will be displayed for selection.
- The F2 (Files) function may also be used to select an input
- file.
-
- To specify an output file different than the input
- file, move to the "Output file" field and enter a
- name. If no file extension (such as .MFF) is given,
- the extension of the input file is assumed.
-
- If a different output file is not entered, the input
- file will be replaced and reloaded each time the
- Filter operation is performed. Also, a backup of the
- original file with an extension of .BAK is created
- each time.
-
- The other entry fields in this section are described below.
-
- Copy Tracks
-
- This lists the tracks which are to be retained when
- creating the output file. By default, all input file
- tracks are selected. Change the track selection to
- extract only certain ones from the original file.
- Note that for format 1 files, track 1 should always be
- copied; otherwise tempo, time signature, or other
- informational data may be lost.
-
- Anywhere a range of numbers (such as a track range) is
- required, simply list the numbers, separated by spaces
- or commas. A continuous range between two numbers may
- be indicated with a dash (-). You may also use the
- word "All" to specify all possible numbers.
-
- Copy Channels
-
- Only MIDI data for the channels specified here will be
- retained in the output file (assuming the data appears
- in the copied tracks). By default, all channels (1-
- 16) are selected.
-
- (Output file) Format
-
- This number specifies the standard MIDI file format
- (0,1,2) to use when creating the output file. By
- default, it is the same as the input file's format.
-
- Channelize
-
- This option only applies if the output file format is 1.
-
- If the input file is format 0 (single track), each
- input file channel will be assigned to a separate
- track in the output file, rather than a to single
- track.
-
- If the input file is format 1 (multi-track), each
- input file track will be assigned a different channel,
- regardless of the original channels used. If there
- are more than 16 active tracks, channels are assigned
- arbitrarily, cycling from 1 thru 16.
-
- Channelization occurs after all other filtering has
- been done.
-
- Tempo Ratio
-
- The output file tempo may be increased or decreased by
- changing this value. The default is 100%, or no
- change. Smaller values decrease tempo, and larger
- values increase it. Tempo changes only apply to files
- using a metrical time base - not real-time files based
- on SMPTE or MIDI time code.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Filter Limiting
-
- Event filtering may be limited to the tracks and
- channels appearing in the second screen section.
- Simply enter the desired range of tracks or channels
- to be affected by filtering. This limiting applies to
- the tracks and channels which were included in the
- Copy Tracks/Channels fields in the input/output
- section above. If both track and channel limits are
- given, only the channels represented in the specified
- tracks will be affected. By default, all track and
- channel data will be processed.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Message Removal
-
- The third screen section specifies messages (within
- the track/channel limit ranges) to be removed from the
- file.
-
- The following message types may be removed by
- indicating Yes:
-
- Aftertouch (mono and poly)
- Program Changes
- Pitch Wheel
- System Exclusive
- Control Changes
-
- Control change removal may be further limited to
- specific controller numbers by changing the default
- range of 0-127.
-
- Velocity and Pitch ranges may also be given for note
- data. Notes with velocities below or above the
- specified limits will be discarded. Similarly, notes
- with pitches below or above the given values will be
- removed. Note C3 is middle C. MIDI note numbers (0-
- 127) may be entered instead of symbolic values.
-
- By default, the velocity and pitch ranges are set to
- retain all note data. The velocity limiting function
- behaves differently when the Compressor option is
- activated (see next section).
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Message Modification
-
- The fourth section of the screen specifies changes to
- be applied to MIDI channel messages, rather than their
- removal.
-
- Map Channels
-
- To change the channels associated with MIDI messages,
- enter the new channel numbers beneath the original 16
- listed across the screen. By default, they are the
- same as the original channel. To change all channels
- to a single channel, you can use the shortcut of
- typing in a single new value, and pressing Alt-R to
- make all the other channel values the same.
-
- Map Programs
-
- By default, program numbers are mapped from the range
- of 0-127 to the same range of 0-127. There is a
- one-to-one correspondence between programs in the
- original range on the left, and the new range on the
- right.
-
- If there there are fewer new programs specified on the
- right, the list will be reused in a cyclical fashion
- to determine the of the original programs. For
- example, the following mapping:
-
- Map Programs: 1,2,3,10-14,20 to: 4-6
-
- would result in:
-
- Old 1 2 3 10 11 12 13 14 20
-
- New 4 5 6 4 5 6 4 5 6
-
- All other programs would remain unchanged.
-
-
- Velocity Multiplier
-
- Note velocities will be multiplied by this factor.
- The default is 100%, indicating no change. Smaller
- values will reduce velocity, and larger values will
- increase it. Resulting notes with a velocity of zero
- will be discarded. Multiplication occurs after any
- limiting.
-
- Compressor
-
- If Yes, the function of the velocity limits in the
- previous section is altered. Notes will no longer be
- discarded if they are outside the range. Instead, the
- lower and upper limits are taken to mean compression
- limits, and all note velocities will be scaled
- proportionally to fit within these limits. Arrow
- markers are displayed next to the velocity limits
- while compression is in effect as a reminder of their
- altered function.
-
- Transpose
-
- This specifies the number of half steps (positive or
- negative) to transpose notes. Notes transposed
- outside the legal MIDI range of 0 to 127 (C-2 to G8)
- are discarded.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Filter Functions
-
- Function Mouse
- Key Function Description
-
- F1 Help Display help information.
- F2 Files Display file selection screen.
- F3 Exit Exit program.
- F4 Reset Reset filter ranges to their default
- values.
- F5 Filter Initiate filtering process. When
- complete, a new file will be written.
- If the input and output files are the
- same, the file will be reloaded after
- filtering.
- F9 Left button Decrease value of current cell.
- F10 Right button Increase value of current cell.
- Home Go to first screen cell (Input file:).
- Alt-F3 Push Push to DOS. Allows entry of DOS
- commands. Enter "exit" to return.
- Alt-R Change all values in row to be the same
- as the current cell.
-
-
- _________________________________________________________________
-
- * Batch MIDI File Filters
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Introduction
-
- The programs Fmt, Extract, and Remove provide some of
- the more common functions of the Filter program, but
- at the DOS command level. They are non-interactive
- and take various arguments on the command line to
- control their operation. They are intended for quick
- access to perform format conversion, data extraction,
- or data removal.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Fmt
-
- Fmt provides simple format conversion among the three
- MIDI file formats - 0, 1, and 2. See Filter for a
- description of the formats. The Fmt command line
- format is as follows:
-
- fmt MIDI input file MIDI output file -Fn -C
-
- If the MIDI output file is not specified, the input
- file name is assumed. The original file will be
- replaced and a backup file with the extension .BAK
- will be created. Default extensions of .MFF, .MID,
- .SMF, and .STD will be tried if no input file
- extension is supplied. The default output file
- extension will be the same as the input file's.
-
- The -F option specifies the output format, and must be
- -F0, -F1, or -F2. If unspecified, format 1 is
- assumed.
-
- The -C option, if specified, is equivalent to the
- Channelize option in the Filter program. It causes
- channels to be placed in individual tracks when
- producing a format 1 output file from a format 0 input
- file. If both files are format 1, it causes each
- track to be assigned a different channel, regardless
- of the original channels.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Extract
-
- Extract will read a MIDI file and produce a new file
- with only the specified tracks and/or channels
- retained. Its command format is:
-
- extract MIDI input file MIDI output file -options
-
- If the MIDI output file is not specified, the input
- file name is assumed. The original file will be
- replaced and a backup file with the extension .BAK
- will be created. Default extensions of .MFF, .MID,
- .SMF, and .STD will be tried if no input file
- extension is supplied. The default output file
- extension will be the same as the input file's.
-
- -options may be -Trange or -Crange. They specify the
- tracks or channels to be extracted and written to the
- output file. Ranges may include numbers, commas, or
- dashes (-), but no spaces. The -T and -C options
- themselves must be separated by spaces.
-
- Example: To extract tracks 1 thru 5, and 10, from
- file1.mff and write them to file2.mff, use:
-
- extract file1 file2 -t1-5,10
-
- To extract channels 1 thru 3 in track 2, use:
-
- extract file1 file2 -t1,2 -c1-3
-
- Note that track 1 was included to be sure that any
- tempo information contained in it was not lost.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Remove
-
- The Remove program allows selected types of data to be
- filtered out of a MIDI file. Its command format is:
-
- remove MIDI input file MIDI output file -options
-
- If the MIDI output file is not specified, the input
- file name is assumed. The original file will be
- replaced and a backup file with the extension .BAK
- will be created. Default extensions of .MFF, .MID,
- .SMF, and .STD will be tried if no input file
- extension is supplied. The default output file
- extension will be the same as the input file's.
-
- -option Removes
-
- -Crange Specified channels.
- -Trange Specified tracks.
- -A Aftertouch messages (mono/poly).
- -P Program changes.
- -W Pitch wheel messages.
- -S System exclusive messages.
- -N All control change messages.
- -Nrange Specified control changes.
-
- Ranges may include numbers, commas, or dashes, but no
- spaces.
-
- Example: To remove track 10, channels 10-16, program
- changes, and any pitch or mod wheel changes:
-
- remove midifile -t10 -c10-16 -w -n1,33
-
- (Mod wheel messages are controllers 1 and 33)
-
-
- _________________________________________________________________
-
- * Miscellaneous Utilities
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Play/B
-
- Play/B is a smaller, batch-oriented version of Play.
- It is compatible with the batch mode of Play in every
- way; only the interactive mode is missing. It can be
- used in cases where memory is restricted, or to speed
- startup time since it is smaller. To run Play/B, just
- type "playb" and a MIDI file name. Play will continue
- until the end of the song is reached, or the letter
- "Q" is pressed. If a play list file name was given,
- each song in the list will be played in succession.
- Pressing the letter "S" will end the current song and
- skip to the next.
-
- See the Command Line description for Play for further
- information, plus Appendix A for additional options.
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Dump
-
- Dump is a small utility which sends a raw binary file
- to a device via MIDI OUT. It is intended for use only
- with 8-bit binary data files containing raw MIDI codes
- (sometimes referred to as MIDIEX format). Use Play or
- Play/B to send data in "standard" MIDI files. For
- greater control, use Watch for handling bulk MIDI
- dumps, but for quick command line sending of dumps,
- this program provides a convenient alternative.
-
- To run, type "dump" and the name of the data file to
- send. A byte count is displayed as sending proceeds.
- When the dump completes, any acknowledgement bytes
- sent back by the target device will be displayed in
- hexadecimal. See Appendix A for additional options.
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- TestDev
-
- TestDev is a simple diagnostic to check the operation
- of any MIDI devices in the system. Each device
- located will be listed, along with its I/O address and
- IRQ number. Then, input and output for each device
- will be tested in sequence. First, 13 notes will be
- played, and then test input will be requested. This
- continues for each device if more than one is present.
-
- Note to MIDIator users: The -dmid option must be
- included on the testdev command line if Install has
- not been run.
-
- The -d option may also be required for other devices
- if there are hardware conflicts. See Appendix A for
- information on options.
-
-
-
- _________________________________________________________________
-
- * Appendix A - Device Options
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Except where noted, the following command line options
- are common to all of the programs described in this
- document which do MIDI input or output. All options
- consist of a dash (-), followed by an option letter
- and possible additional information. Separate options
- by at least one space.
-
- The -d option allows the type of MIDI interface
- to be specified if more than one are present in
- the system. Also, it is used to give additional
- information about the device if a non-standard setup
- is being used. For the majority of users, this option
- will not be needed. The supported MIDI interfaces are
- listed below. Use -d, followed by the device name as
- shown to select one.
-
- Roland MPU-401 and compatibles -dmpu
- IBM PC Music Feature -dmfc
- Sound Blaster MIDI interface -dsbmidi
- Key Electronics MIDIator -dmidiator
-
- The first 3 letters of the device name are sufficient.
-
- Note: The MIDIator cannot be detected automatically
- and the -dmid option must always be specified if one
- is in use (unless the MIDIator has been configured
- using the Install program).
-
- Non-standard IRQ and I/O port information can be added
- following the device id if necessary:
- -d<dev>:<irq>:<ioaddr>
-
- For example, to define an MPU-compatible interface
- using IRQ 5 and I/O address 336 (hex), use: -dmpu:5:336
- If only the I/O address was required but the default
- IRQ was alright, use: -dmpu::336
-
- The irq and ioaddr are not relevant to the MIDIator,
- though the first option number can be given to
- indicate use of com port 2 instead of the default com1.
- (ex: -dmid:2)
-
-
- When non-standard IRQ numbers are used for the
- MPU and MFC, the -i option can be included to try
- to determine them automatically. This may not always
- be effective, and you may need to specify the IRQ
- using the full -d option.
-
- The -v option lists the MIDI device, I/O
- address, and IRQ number selected prior to
- program startup. You may wish to include this
- option if you suspect that automatic detection is not
- choosing the desired options, or to verify the IRQ
- being used.
-
- The -s option allows the MIDI receive buffer to
- be increased in instances where large bulk dumps
- cause data overruns on slower machines, as might
- be the case when using the Watch and Record programs.
- Follow -s with a number from 8 to 63, indicating the
- size of the buffer in K bytes (1K=1024 bytes). The
- default receive buffer size is 4K bytes. Use of -s
- without a number is the same as specifying -s8.
-
- The -k option is related to mouse usage, and
- specifies that the keyboard mode of operation
- for an interactive program is to be used instead
- of mouse mode.
-
- For interactive programs, -b specifies that BIOS
- screen writes are to be used. This may be
- required on some systems if direct screen writes
- do not display correctly, or cause some conflict.
- Note that BIOS writes cause significantly slower
- screen updates.
-
-
- Using environment variables:
-
- Since it may be inconvenient to add these options
- every time a program is run, options may be set up
- ahead of time through the use of DOS environment
- variables. A pool of environment variables named
- "opt1" through "opt9" are shared by all of the
- programs to which these options apply.
-
- Pick any of the 9 available variables for the options
- which you would like to preset. For example, if you
- would normally use -dmpu:5 and -s16, you could use the
- DOS set command as follows:
-
- set opt1=-dmpu:5
- set opt2=-s16
-
- Each time you run one of the programs, it would be the
- same as if the options were added to the end of the
- relevant command line. There is no harm in defining
- an option if it is not required for a particular
- program. Remember to include "-" with the option
- letter.
-
- Since environment variables are only active until you
- reboot (or redefine them), it is best to include the
- set commands in your autoexec.bat file so that they
- are automatically executed after booting.
-
-
- Special environment variables:
-
- MPU initialization
-
- Some MPU-401 compatible cards have options which you
- may wish to set per manufacturer's specs. The mpuinit
- variable allows a string of 2-digit hexadecimal codes
- to be sent to the card during program startup. These
- codes are sent after reset, and before entering UART
- mode. For example, the command:
-
- set mpuinit=8299
-
- will cause the hex bytes 82 and 99 to be sent as
- commands to the MPU-compatible card at program start
- up.
-
-
- Default MIDI file extension
-
- The default extension ".mff" used in various places by
- the MidiTools programs for MIDI file names can be
- changed by means of the mff environment variable. For
- example, to select ".mid" as the default extension,
- use:
-
- set mff=mid
-
-
- The options may be defined automatically at boot time
- by including the appropriate set commands in your
- autoexec.bat file.
-
-
- ====================================================================
-
-
- The following are trademarks or registered trademarks of their
- respective owners.
-
- MidiTools: FM Software.
- IBM, PC, AT, IBM PC Music Feature: International Business Machines
- Corporation.
- Turbo Pascal, Turbo C: Borland International, Inc.
- Microsoft, MS-DOS, Microsoft Mouse: Microsoft Corporation.
- MIDIator: Key Electronics, Inc.
- SOUND BLASTER: Creative Labs, Inc.
- Roland, MPU-401: Roland Corporation.
- CS-1: J.L.Cooper Electronics, Inc.
- TesSeRact: Innovative Data Concepts.
-
- ====================================================================
-
-
-
- *********************************************************************
- SEE THE FILE UPDATE.DOC FOR RECENT CHANGES AND ADDITIONS TO MIDITOOLS
- *********************************************************************
-