
Midi Daemon Installation Notes
------------------------------

Build the software as described in the README file first..
After you've built "midid" and "midiplay" you should be able to start
messing around.

The first thing you need to do is to write a configuration file which
tells midid what MIDI hardware its going to manage on your machine.

Create a text file somewhere, and in it put:
  "Midiator-MS-124W"   "/dev/ttyb"
  "someotherdevice"    "someotherdevice parameters"

The file's format is very simple, and very strict..
It looks for pairs of quoted text strings.
The first string in each pair, is the name of the device type your
turning on.  The second string is the device specific configuration info
needed to enable it.


Run the daemon with a command like:
  midid /usr/local/lib/midi/midiports.txt

The filename "midiports.txt" would refer to the configuration file you
want to use.

If midid is run as root, it will attempt to run as a real-time process, 
which should guarantee glitch-free performance.   Note that you may have
to set umask to 000 right before running the daemon in order to make sure
that other user processes have permission to open the message queues which
are used by the daemon.  This is mainly an issue for people running the
daemon as root, on some versions of Unix, and some combinations of
build options.  If midid is run non-root, it should still perform
well, but it will not be able to guarantee glitch-free playback when
the system gets loaded up..


Here's the current list of drivers and their parameter info:
------------------------------------------------------------

NULL
  This is a do-nothing driver, it just eats MIDI events, sort of like
sending them to /dev/null.  This device uses midid's timer code.
  Example:  "NULL"  ""


Key Electronics Midiator-MS-124T 
  This driver runs serial port based Midiator MS-124T MIDI interface boxes.
The box config switches must be set to A and M.  This driver only takes 
one parameter, which is the name of the serial port that the Midiator
is attached to.  An example of this is /dev/ttyb.  The parameter string
must have no extra spaces in it.  This device uses midid's timer code.
  Example:    "Midiator-MS-124T"   "/dev/ttyb"


Key Electronics Midiator-MS-124W 
  This driver runs serial port based Midiator MS-124W MIDI interface boxes.
The box config switches must be set to M and B.  This driver only takes 
one parameter, which is the name of the serial port that the Midiator
is attached to.  An example of this is /dev/ttyb.  The parameter string
must have no extra spaces in it.  This device uses midid's timer code.
  Example:    "Midiator-MS-124W"   "/dev/ttyb"


Roland Sound Canvas Driver (SC-7)
  This driver will run a Roland SC-7, or similar Sound Canvas series 
tone module via an RS-232 port.  The Sound Canvas RS-232 port must be set 
to run at 38400 baud.  This driver should run any of the SC modules that
have the RS-232 ports on them, although in the case of the SC-88 and
other 32 channel modules, this driver will only run the first 16 channels.
This driver takes only one parameter, which is the name of the serial port
the SC box is connected to.  This device uses midid's timer code.
  Example:    "SC7"          "/dev/ttyb"


Generic File Driver
  This driver send MIDI events to a device node, or a FIFO, the device
node or FIFO must exist before midid starts up.  This can be used to 
send midi events to processes which have a FIFO open for reading, to 
devices such as /dev/dmmidi0 as found on machines with the Open Sound
System, and other devices which take raw midi bytes.
Devices with Open Sound System drivers typically provide access to
their MIDI ports via a device file such as "/dev/dmmidi0" "/dev/dmmidi1" etc.
This device uses midid's timer code.
  Example:    "FileDriver"   "/tmp/midififo"
  Example:    "FileDriver"   "/dev/dmmidi0"


Silicon Graphics MIDI Driver
  This driver utilizes the native SGI MIDI libraries and functions for
accessing attached MIDI hardware.  This driver requires that the SGI
startmidi has been run before midid runs.  At present, this driver
requires no parameters.  The SGI driver provides its own seperate
timing mechanism, rather than using the clock internal to midid.
  Example:    "SGI"   ""


