================================================================
	AWE32 MIDI Player for Linux / FreeBSD
		version 0.3.3f; Mar. 17, 1997
================================================================

* GENERAL NOTES

This is a midi player program which supports AWE32 sound driver v0.3
by Takashi Iwai.  Before using this program, you have to load sound
samples onto the driver.  Please read the document in utility package
awesfx-0.3.x.tar.gz.  All AWE32 driver and utilities can be downloaded
from:
	http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/


* INSTALLATION

You need awedrv-0.3.3e or newer package to compile the source code.
This program requires Tcl7.5/Tk4.1 libraries.  If you don't want
Tcl/Tk interface, use Makefile.notk instead.
Modify installation directory in Makefile for your site.
INSTALL_DIR is the directory where drvmidi binary is installed.
TCLDIR is the directory for Tcl/Tk scripts and bitmap files.


* USAGE

	drvmidi [options] midifile[.gz] ...

You can give the compressed or gzipped files on command line.
These files are expanded automatically inside the program.

If drvmidi finds the file the same file name with an extension ".id",
it loads this file as an index file.
You can specify its own all the settings provided regardless of the
command line.  In the future release, this index can be editted from
the drvmidi player itself.  (Now drvmidi can only read it.)


* OPTIONS

    -i interface
	Specifies the interface mode. "k" for Tcl/Tk interface, and 
	"d" for dumb interface.  "n" means ncurses interface.
	The default is Tcl/Tk interface.

    -D channel
	Used to change drum channels.  If the argument is larger
	than zero, this channel is treated as a drum channel.
	If less than zero, minus of this value is treated as a normal
	channel.
	ex)
		% drvmidi -D -10 -D 16 foo.mid

	    will set channel 10 as a normal channel, and channel 16 as
	    a drum one.
	As default, drvmidi uses only channel 10 (and 26) as drum
	channels.

    -c chorus
    -r reverb
	They supply the chorus and reverb modes.  The AWE32 card
	has eight chorus modes and eight reverb modes.
	Each argument are:

	chorus mode
		0: chorus 1
		1: chorus 2
		2: chorus 3
		3: chorus 4
		4: feedback
		5: flanger
		6: short delay
		7: short delay 2
	reverb mode
		0: room 1
		1: room 2
		2: room 3
		3: hall 1
		4: hall 2
		5: plate
		6: delay
		7: panning delay

	On Tcl/Tk interface, these values can be changed from menu
	even during playing samples.

    -O	Accept "all notes off" and "all sounds off" events.
	Some MIDI file contains these events.

    -P	Do not change panning position of voices already played in
	real time.

    -T track
	Specify the track number of multi part.  For example, to deal
	with tracks from 0 to 16 as part A, and from 17 to 32 as part
	B, specify '-T 16'.  Or, to treat all tracks as one part, use
	'-T -1'.  The default value is 16.

    -C	Suppress the note-off event check.  The sequencer device can
	handle events only in 1/100 sec unit, so often both the note
	on and off events occur at the same time.  To prevent this
	problem, drvmidi checks the time of each note off event, and
	send it after 1/100 sec later if necessary.

    -G	Suppress GS part check.  As default, drvmidi changes the drum
	channels according to the GS part change sysex message.

    -m modes
	Set playing mode.  Some modes are valid only on Tcl/Tk
	interface.  The following mode identifiers may be available:

	-mt	Turn tracing mode on.  It shows realtime bar graph and 
		program number of each channel in the trace window.
	-ms	Shuffle play mode.  The order of the playing files is
		shuffled and selected randomly.
	-mn	Normal play mode.  The songs are played in the order
		of specified command line arguments.
	-mp	Start play automatically.
	-mq	Exit drvmidi automatically after finishing all songs.
	-mr	Loop the playing songs.

    -t	Turns tracing mode on.  Equivalent with -mt.

    -d display
	Set window display.  Valid only on Tcl/Tk interface.

    -g geometry
	Set window geometry.  Valid only on Tcl/Tk interface.


* ID FILE FORMAT

    title string
	Set title of this midi file.  Displayed on behalf of the file
	name.

    chorus mode
    reverb mode
	Set chorus and reverb modes, respectively.  The arguments are
	identical with the command line options, from 0 to 7.

    volume percent
	Total volume in percent unit.

    drumflag bits
	Set drum channels.  The argument is a digit number indicating
	drum channels.  For example, to set both channel 10 and 16 as
	drums, the value become 0x8200.
	Heximal and octal numbers can be specified in 0xXX, 0XXX,
	respectively.

    acceptall
	Accpet all notes/sounds off events.

    tracks num
	Set track number of multi part.

    samecsec
	Suppress the note off event check.
	
    gsmacro
	Suppress the GS part change check.

    subsf arguments..
	Load optional SoundFont file automatically.
	The arguments are passed to sfxload internally together with
	"-I -s -b1" options.  For example, to load sfx.sf2 for sample.mid,
	set "subsf sfx.sf2" in sample.id file.


* SUPPORTED MIDI CONTROLS

#0	bank select
#6	data entry
#7	main volume
#10	panning position
#11	expression volume
#32	bank select
#38	NRPN data entry
#64	sustain
#91	reverb effects send
#93	chorus effects send
#98	NRPN LSB
#99	NRPN MSB
#100	RPN LSB
#101	RPN MSB
#120	all sounds off
#121	reset controllers
#123	all notes off


* SYSEX AND NRPN CONTROLS

Drvmidi accepts special sysex message and NRPN controls for AWE32.

- Reverb sysex macro
	F0 41 10 42 12 40 01 30 XX 00 F7
  where XX denotes the reverb mode above (from 0 to 7).
       
- Chorus sysex macro
	F0 41 10 42 12 40 01 38 XX 00 F7
  again, XX denotes the chorus mode above (from 0 to 7).

- GS part change macro
	F0 41 10 42 12 40 1X 15 YY ?? ?? F7
  where X denotes the channel and YY denotes a drum flag.

Other sysex messages are ignored.

See ADIP document by CreativeLabs for NRPN control messages.


* COPYRIGHT

Copyright (C) 1996,1997 Takashi Iwai

This program 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 of the License, or
(at your option) any later version.

This program 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; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Takashi Iwai	<iwai@dragon.mm.t.u-tokyo.ac.jp>
