*********************************************************************************
*										*
*		  MODULAR ROLAND MPU-401 MIDI INTERFACE DRIVER			*
*			        version 0.1 alpha				*
*		      (for Linux version 1.1.64 to 1.1.70)			*
*										*
*			     MIDI/Sequencer library				*
*			       version 0.11 alpha				*
*										*
*			    written by Kim Burgaard				*
*			copyright (c) 1994 Kim Burgaard				*
*				   1994-12-04					*
*										*
*********************************************************************************

		     *** WARNING! EXPERIMENTAL VERSION ***

This package is an *ALPHA* release which contains:

* A modular device driver for true Roland MPU-401 compatible MIDI interfaces.

I think it will not run on fx. a SoundBlaster since it runs with the interface
in the ``intelligent'' mode. Therefore I strongly believe its timing is more 
precise than the MPU-401 driver that comes with the kernel, which tend to get
sloppy when many events are to be send/played fast.

It is quite stable for the time being but I have not even begun the biggie;
writing an ``API'' to use for a long-wanted sequencer which I hopefully will be
writing in the next year or so.

The driver is written with Linux kernel versions 1.1.64, 1.1.67 and 1.1.70. It
will *not* work on any older kernel version, since the request_irq(...) call has
been changed. It will probably work with never kernel version though I cannot
guarantee that of course. Please report succes/failure on kernel versions newer
than 1.1.70.

*  A preliminary release of my MIDIfile library (which really isn't a library
   yet).

Dont trust the specifications given in the headers too much - they are bound to
change... Heavily use of maximum verbosity level makes many things self-
explanatory though.

I have also included three of my latest music pieces. See `README.MIDI' for
details.

All in all this package must be something like: ``Look! Can't you all see how
proud I am of this stuff?'' ;-) ... or if you just happened to miss that
Standard MIDI File replayer for you Roland SoundCanvas or MPU-401 MIDI
interface, then this would be it!

Enjoy!

		1994-12-04 Kim Burgaard, <burgaard@daimi.aau.dk>

COPYRIGHTS:

	This package is free software; you can redistribute it and/or modify it
	under the terms of the GNU General Public License as published by the
	Free Software Foundation; either version 2, or (at your option) any


	This package is distributed in the hope that it will be useful, but
	WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
	Public License for more details.

	You should have received a copy of the GNU General Public License along
	with this program; see the file COPYING. If not, write to the Free
	Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

	Different copyrights apply to the MIDI files `ksoft.mid', `to_you.mid'
	and `twogirls.mid'. See the included file `README.MIDI' for details.

CONTENTS:

	mpu401		The device driver. It is a kernel module, so you can
			install/remove it at any time.

	mpuconfig	Tool to configure the MPU-401 device driver.
			The device driver refuses to run if you have not
			made a configuration file.

			You can change the card settings at anytime. You just
			have to remove it and reinstall it with insmod in order
			to update the settings. Type `mpuinfo -d ; dmesg' to
			see what went wrong in case of failure!

	mpuinfo		A little demonstration program. If a valid driver is
			present then various information about the MPU-401 will
			be displayed. It can also be used to control debug
			information handling when the driver is running. Also
			when a replayer or sequencer is running!

	gsreset		Another little demonstration program. It simply commands
			the driver to send the Roland GS RESET SysEx to MIDI
			out.

	smfcheck	A demonstration of my midifile library.

 	smfplay		A (big) demonstration program that utilizes the driver.
			It is capable of replaying all Standard MIDI Files,
			except those encoded with SMPTE timing - but I'm working
			on that.

	libmidilib.a	A preliminary alpha release of my (fast) MIDI file library.
			I am going to write some extensive documentation when
			time comes, but until then you'll either have to rely on
			the (dis)information given in the header files or wait
			until the doc-ware is finished...

	I have not written the appropriate man pages yet since I havent frozen the
	I/O control commands and I still have to write some reasonable documentation
	to the library.

	You also can get some nifty SMF music pieces from `ftp.cs.ruu.nl' in the
	directory `/pub/MIDI/SONGS/GMIDI'. You should look out for some files
	called	`song1.zip and song4.zip'. The contain some very impressive Big
	Band Arrangements for Roland GS/General MIDI - they are really showing
	off! Especially if you have got a Roland SC-55/SCC-1. - oh, you haven't?
	- well, you better go get one right this minutte ;-)
	
	Personally I like to run `smfplay -slrq *.mid' in the backround with
	some nice bigband arrangements (from Roland) while I'm working.

WHY?:

	Why this driver opposed to Hannu Savolainen's ``built-in'' or Andreas
	Voss' Jazz-specific driver?
	
	* It's MODULAR.

	* It's ``runtime'' configureable.

	* It takes *full* advantage of the MPU's more sophisticated features -
	  which among other things ensure high precision, and greatly reduce
          CPU usage (I get an average CPU idle time usage on 96% or higher when
          replaying almost any midifile).

	* MIDI is all it's got and if MIDI is all you want, then why use extra
	  memory and CPU usage on unused features?

	* A relatively simple driver interface, which should require minimum
          effort to write applications using the device driver.

	* I am writing it, so *I* can use it without worrying about changes etc,
	  as I am currently the only one to introduce/implement any ;-).

	By sending this package out in such an early state, I hope getting some
	response from people who might be interested in using it. Dont hold your
	breath for the beta or final release, it will probably kill you :-), but
	I expect to get at least something out before the end of 1994 / early in
	1995.

	Also I would not recommend basing you next billion-dollar sequencer
	project	on this driver - many things can and will change as time goes by.

FEEDBACK:

	I will be happy to include your contributions with this driver. Just
	contact me at one of the adresses below.

	Bug reports, suggestions and/or comments to:

	email: burgaard@daimi.aau.dk

	Kim Burgaard
	Tammerisvej 18kl.
	DK-8240 Risskov
	
	Phone: +45 8617 7754 (voice only, 16:00 to 22:00 MET)
	(I'm not that fond of acoustic feedback though - whooiiii... ;-)

ACKNOWLEDGEMENTS:

	I have written all software that comes with this package from scratch.
	Much information came from ``Standard MIDI File specifications 1.0''
	which is available from:

		International Midi Association
		5316 West 57th Street
		Los Angeles, CA 90056
		(415) 321-MIDI

	Send a $2 check to the above adress and you should hopefully receive your
	own copy of the 1.0 specs.

	The device driver code is based on ``MIDI Processing Unit MPU-401,
	Technical Reference Manual, version 1.5A 5/31/85'' from Roland Corporation.
	Contact your local Roland dealer in order to obtain (buy) your own copy.

	I am aware of Hannu Savolainen's and Andreas Voss sequencer device drivers,
	though none of my code is based on their works. 

*********************************************************************************