
Unix MIDI System Version 0.5
--------------------------------------------------------------------
By John Stone  <j.stone@acm.org>
               <johns@cs.umr.edu>
               http://jedi.ks.uiuc.edu/~johns/projects/midid/

Intro
-----
  Midid is a portable system for driving RS-232 based MIDI interfaces
such as the Midiator MS-124W and MS-124T, Roland Sound Canvas, and
other MIDI interfaces and synthesizers with RS-232 inputs.  Midid is
implemented using POSIX serial communications routines, and should
be very portable.  In order to achieve good performance, midid can be
built to use POSIX real-time scheduling and message queuing interfaces 
now available on many mainstream implementations of Unix.  On systems
lacking POSIX real-time extensions, midid uses repetitive calls to 
standard Unix gettimeofday routeines and other mechanisms.  

Midid comes with a simple sequencer application called midiplay
(found in the 'seq' subdirectory) that plays Type 1 MIDI files.  
At this time midiplay does not support other midi file formats, 
but this would be a relatively simple thing to add.

There are various experimental bits of code in the source tree for
wavetable synthesis, MIDI mapping, and recording, but these are
only works in progress at this point, and they all need work before
they would be usable.

Directory contents:
-------------------
  ChangeLog   - A history of development progress and significant changes.
  Install     - Installation and compilation instructions.
  Make-config - Architecture dependent configuration information.
  Makefile    - The master makefile for the whole system.
  bin         - Compiled binaries of programs included in the MIDI system.
  daemon      - The MIDI I/O daemon source code.  
  include     - Include files/headers for the MIDI system.
  lib         - Compiled link libraries for the MIDI system.
  mapper      - The MIDI Mapper daemon source code (in progress).
  midimsg     - A midi event display example for use with the MIDI I/O daemons.
  seq         - "midiplay", a Standard MIDI File player example program.
  softsynth   - A software based wavetable synthesizer, for use with the 
                MIDI I/O daemons (in progress).


Compilation instructions:
-------------------------------------
  Midiplay is a very simple sequencer for playing MIDI files to the
MIDI hardware managed by midid.
In order to run midiplay, the midi daemon must be running, and a 
Midiator or other supported interface must be connected and managed by midid.

To compile midid and midiplay, type make.
Choose one of the listed configurations, (or create your own by editing
make-config in this directory) and type "make xxxx" where xxx is the
desired configuration to use.

All of the executables are installed into the bin directory after a 
successful compilation.

Read the "Install" file to setup the MIDI configuration file for your
system.

For people intersted in building their own applications using the MIDI 
library, simply include "midiapi.h" and link against libmidi.a which
will be installed in the include, and lib directories when the build
of midi is complete.

Compatibility notes:
--------------------
  The midi daemon, and midiplay have both been thoroughly tested on 
Solaris 2.6 and IRIX 5.3, OpenBSD, and Linux. 

If you would like to help improve this project, please send me email
and get involved!  

Enjoy,
  John Stone 
  johns@megapixel.com
  j.stone@acm.org 
  johns@ks.uiuc.edu

Contributing Authors:
---------------------
  Rob Fletcher   -- SGI and SC7 code, API suggestions.
  William Bishop -- Many discussions about Unix /w digital media. 
  Laurent Coray  -- Midiator info, and hardware to test with.
  Dev Mazumdar   -- OSS code/info, suggestions.




