MIDI LIBRARY DISK
=================

v2.0 - 12-Nov-88

This is the MIDI Library distribution disk.  It contains the MIDI
Library, utilities, user and programmer documentation, and example
programs.

For those new to the MIDI Library, I suggest looking in the "docs"
directory first.  Depending on your preference, you may wish to examine
"library.doc" which describes the fundamental concepts behind the MIDI
Library, or "utils.doc" which describes the included set of CLI based
MIDI Utilities.


Revisions
---------
    v2.0 - 12-Nov-88
	. midi.library
	    . Major overhaul to improve speed - resulting in about 3 to 4
	      times improvement in speed for PutMidiMsg, PutMidiStream,
	      GetMidiMsg, FreeMidiMsg
		. Added MidiPacket's (see GetMidiPacket() and
		  FreeMidiPacket())
		. Rewrote all C modules in Assembly
		. Redesigned PutMidiStream
		. Added early test of Route MsgFlags to reduce processing
		  time on trivial messages
	    . Added default RouteInfo to MDest's (see
	      SetDefaultMRouteInfo(), and routing functions)
	    . Added MListSignal's to inform interested parties of
	      changes to the public node lists (see CreateMListSignal()
	      and DeleteMListSignal())
	    . Fixed MidiMsgType() to work as originally described: now
	      returns 0 on all undefined messages
	. docs
	    . revised library.doc to include MidiPackets
	    . remade midi.doc to include new functions
	    . added benchmark.doc
	. updated binding libraries to include new functions
	. include files
	    . added new sys/ex id's from MIDI 1.0 Spec v4.0
	    . added new controllers #'s from MIDI 1.0 Spec v4.0
	    . added MTC qtr frame message constants
	    . added midifile.h for some MIDI File constants
	. rsx
	    . manufacturer id is now specified in hex rather than
	      decimal
	    . now supports filtering for 3-byte manufacturer ID's
	. tsx
	    . Workbench support
	. new utilities: playmf & dmf to play and display (respectively)
	  MIDI Files

    v1.5d - 14-Sep-88
	. minor changes to midi.h & midi.i

    v1.5c - 15-Jun-88
	. Fixed bugs in "rsx"
	. Fixed bugs in "ychk"

    v1.5b - 29-May-88
	. Aztec libraries have now been created using v3.6a (were
	  previously created using v3.4)

    v1.5a - 16-May-88
	. Located some inconsistencies in midi.[h|i] that have now been
	  fixed.
	. Added Iota sys/ex id (00-0008) to midi.[h|i].
	. Changed MID_EXTENSION to MID_XAMERICA in midi.[h|i]
	. Changed implementation of 3 byte id's in midi.[h|i]
	    . now are long ints with all 24 bits of id
	    . use macros (MAKE_MIDX() and SPLIT_MIDX()) to deal w/ converting
		discrete bytes to 3 byte ids
	. Added 3 byte sys/ex id support to mm.

    v1.5 - 22-Apr-88
	. A bug in the CtrlMatch system that was previously unnoticed
	  has been fixed
	. The function of the RIMatch.flags (formerly .count) has been
	  changed to allow negating the inclusion logic and to filter 3
	  byte manufacturer id's
	. AmigaBasic programming examples from Jim McConkey are now
	  included

    v1.4 - 04-Apr-88
	. The utilities in c directory now generally use arp.library for
	  various things.  Because of this, arp.library v1.1 is included
	  in the libs directory just in case you don't already have it.
	  (NOTE: for size reasons it is not included in the ARC file)
	. MidiIn & MidiOut task priorities have been increased to +30 to
	  avoid interference from input.device.  (You can rearrange windows
	  now without slowing down MIDI transfer to/from these nodes
	  assuming your own task priorities are around +25)
	. new utility: ychk - checks Yamaha bulk dump files for errors.
	  (see doc/utils.doc)
	. some utilities have been enhanced (see doc/utils.doc)

    v1.3 - 25-Jan-88
	. Added Reset Controller mode message (Bn 79 00)

    v1.2a - 29-Dec-87
	. Modified midi.h & midi.i to include new stuff (noted w/ IMA
	  Bulletin references).

    v1.2 - 29-Nov-87
	. First disk-based release.
	. Added MTC Qtr Frame message support (F1)
	. Added Lock/UnlockMRoutes() & FlushMDest()

    v1.1
	. Initial .arc file release.


Contents
--------

    basic - AmigaBasic programming examples provided by Jim McConkey.
	    See basic/readme for more info on these files.

    c - contains some CLI-based utilities that use the MIDI Library.
	See utils.doc in the docs directory for more info on these.

    docs - documentation

	    bind.doc - Usage documenation for bind and zlib (included in
		       the fd directory).

	    library.doc - Programmers reference to the MIDI Library.  It
			  describes in detail proper usage of the
			  Library.

	    midi.doc - MIDI Library function "autodoc".  It contains
		       a description of each MIDI Library function.

	    utils.doc - Describes the MIDI Utilities in the c directory.

    examples - Programming examples.  Contains C source code for sample
	       programs that use MIDI Library.

    fd - contains a .fd file, binding libraries and a binding maker.
	 The binding libraries are used to link your programs to the
	 MIDI Library functions.  By their very nature, binding routines
	 are compiler specific.  Included are libraries for both Lattice
	 and Aztec C.

	    bind - The binding builder.  There is more info on bind in
		   bind.doc in the docs directory.  In general, though,
		   you should be able to make bindings for any compiler
		   by using bind.

	    bindfile - A file used by bind.

	    makefile - a makefile for the included binding libraries.
		       It gives you sample usage of the bind program.

	    midi-lattice.lib - Lattice C compatible bindings library.
			       It should work with Alink or Blink.

	    midi.lib - An Aztec C compatible bindings library for small
		       code/data model.

	    midil.lib - An Aztec C compatible bindings library for large
			code/data model.

	    midi_lib.fd - The .FD file for the MIDI LIbrary.  You should
			  be able to use this to allow access to the
			  MIDI Library from AmigaBasic.  Also this file
			  is read by bind to create bindings libraries.

	    zlib - A simple Amiga object module librarian.  See bind.doc
		   for more info on this.  (Arp v1.1 Join can handle the
		   job now, feel free to use it instead of zlib)

    include.h - C Language include files.

	    midi/midi.h - contains the structure definitions for normal
			  usage of the MIDI library and constants
			  defined for MIDI status bytes, controllers,
			  etc.

	    midi/midibase.h - defines structures used when examining the
			      inner workings of the MIDI library. This
			      need not be included by the casual user.

	    midi/midifile.h - defines some constants for MIDI Files.

    include.i - Assembly Languange include files.

	    midi/midi.i - contains the structure definitions for normal
			  usage of the MIDI library and constants
			  defined for MIDI status bytes, controllers,
			  etc.

	    midi/midibase.i - defines structures used when examining the
			      inner workings of the MIDI library.  This
			      need not be included by the casual user.

    libs - contains "midi.library" and "arp.library".  Copy these to
	   your LIBS: directory.

	   (arp.library is not included in the ARC file as it is
	   probably available on the system from which you downloaded
	   this file)


Copyright & Distributions
-------------------------

The MIDI Library and related files are Copyright (C) 1987, 1988,
Pregnant Badger Music.	All rights reserved.  The contents of this disk
may be freely distributed.  The MIDI Library and the MIDI Utilties may
be included with commercial products with the following provisos:

    1. Pregnant Badger Music should be kept informed of your intent to
       release products that make use of the MIDI Library so that we may
       keep you informed of changes, updates, etc.

    2. The above copyright notice should be included somewhere in the
       documentation accompanying any such commercial products.


    Bill Barton
    Pregnant Badger Music
    1111 El Sur Way
    Sacramento, CA  95864
    (916) 487-9472

    Bix:    peabody
    Plink:  peabody
    Delphi: bbarton  (I don't get over there very often)

    Member of the International MIDI Association.


ARP is Copyright (C) 1987, 1988 by Arp Authors

    Arp Support
    c/o Microsmiths, Inc
    PO Box 561
    Cambridge, MA 02140


Basic examples are provided by:

    Jim McConkey
    Triangle Audio, Inc.
    P.O. Box 1108
    Sterling, VA 22170

    (thanks, Jim)


Yamaha is tm of Nippon Gakki Co, Ltd.

