
In order to use KMidi you need so called (sound) patch files (see below).  
There are several user interfaces provided for, including a "dumb" command 
line version and a KDE version, done by Bernd Wuebben (see below).  The 
patches can be GUS, i.e. Gravis/Forte, type files, Gravis InterWave 
sound fonts, or AWE sbk/sf2 sound fonts.  The InterWave font support was 
done by Greg Lee  and the AWE support was done by Takashi Iwai.

PLEASE READE THE SECTION TITLED "NOTES" FURTHER BELOW!
thanks,
Bernd


KMidi 1.3-alpha
=========

New:
     o  This version is for KDE 2.0 only.
     o  If you have a previous version, remove $KDEDIR/share/apps/kmidi/config/
	before installing this version, since new versions of the files here
	won't be installed if you have old versions.  An old timidity.cfg
	using your own patchset, however, should be compatible, unless you've
	used "order"/"exclude"/"font" statements for sf2 fonts (I removed
	support for these).
     o  Click on the KMidi logo or drag the bottom of the panel down to
	see some new gizmos.
     o  The midi modulation wheel is now implemented, and also portamento.
     o  With the "eff" button down, you'll hear midi phaser, celeste, and
	better chorus and reverb effects (thanks to Nicolas Witczak).
     o  Note the panel's channel display may be poorly synchronized with the
	sound on systems not using the OSS (Hannu Savolainen) driver for
	/dev/dsp, since linux_a.c uses an OSS specific call to find out
	how much has actually been played -- constructive suggestions
	are welcome.

Greg Lee
lee@hawaii.edu


KMidi 0.4
=========

New:

     o timidity is back (use Makefile.tim; see "further notes" below)
     o support for GUS InterWave fonts (.fff/.dat files)
     o multiple AWE soundfonts (.sf2 files)
     o support for stereo or linked instruments in sound fonts
     o strict checking of patch declarations for soundfonts
       (no need to use "order" or "font" statements in cfg files)
     o sf2cfg utility constructs cfg files for AWE soundfonts
     o use patches in bank 8, etc. (bugfix)
     o buffered output to /dev/dsp0 (Linux/FreeBSD) or /dev/audio (Sun)
     o select patch set from command line with "-#<n>"
     o use experimental cutoff filters, AWE fonts only ("-q" disables this)
     o lyrics displayed in time (timidity "dumb" interface only)
     o primitive chorus depth and reverberation
     o vibrato works better for AWE soundfonts
     o set polyphony in cfg file

Greg Lee
lee@hawaii.edu

KMidi 0.3
=========

New: Support for the following platforms:

     o Linux
     o FreeBSD
     o DEC OSF/1
     o HP_UX
     o SUN 
     o SUN SOLARIS

and of course bug fixes ;-)

Bernd
wuebben@kde.org

     
KMidi 0.2

This is the first public release of KMidi a midi to
wav player/converter. 

If you have  already given up on midi on Linux/Unix try this! Without
expensive hard-ware such as a Gravis-Ultra sound or Sound-Blaster AWE 64
you will get fantastic sound comparable to what you get with the above
mentioned hard-ware. FOR FREE!

The catch:

a) KMidi will use your CPU time: anywhere from 10 to 90% on my Pentium 120
   at 32000 Hz. Typically about 30%, but it depends on the particular midi 
   played. If you have a weaker machine, simply use the commandline options to
   reduce the sample frequency. You should be able to get very decent
   sound even on a 486 without straining your CPU.

b) You need the sound patches. You can get a full set of general midi
   sound patches  at any  ultra sound archive. Typical storage requirements
   around 10 megs. 

Belive me for the sound you are going to get this is a small price to pay!

KMidi uses Tuukka Toivonen's  timidity 0.2i engine 
Copyright (C) 1995 Tuukka Toivonen <toivonen@clinet.fi>  
together with Takashi Iwai latest  sound font patches 
( This means you can also use sound fonts with KMidi)

Where to get patches:
(see also the html documentation)

Check out the timidiy home-page (see below) which has a number of links and 
recommendations. Patches can also be found packaged as deb or rpm modules in 
the Redhat and Debian  contribution directories. 

TimidityPage:
http://www.clinet.fi/~toivonen/timidity/

Takahis's Page:
http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/midi.html#TiMidity

I realize this is a rough release, and I am sure that if you try
hard enough you will be able to get KMidi to crash, but I think
KMidi is already more than usable and will hopefull give you hours
of fun. Rememeber Midi files are typically around 50k or leas and
are therefore so easily downloaded that you will never run out of great midi's
to play.

TODO:

o Make the myriad of command line options available through a configuration
  dialog.
o Elaborate visual display of notes played ( This one is going to be FUN!!!)


Best Regard,
Bernd
wuebben@kde.org
wuebben@math.cornell.edu


---------------------------------------------------------------
NOTES:
---------------------------------------------------------------

Compiling:

	If you change cfg.l and you compile binaries in a directory
	different from the source directory, put a new copy of the
	cfg.cpp generated by flex into the source directory.


----------------------------------------------------------------

Obtaining patch files:

	See kmidi's configuration dialog for where to get some AWE
	"soundfonts".

-------------------------------------------------------------------

Using patch files requires setting up .cfg files:

     A. See the other docs for GUS .pat files -- there are example .cfg files.
     B. The utility program sf2cfg will generate .cfg files for AWE
	soundfonts.  Usually no hand-editing will be necessary.

The banks/drumsets and names of patches must be given, since those that are not
declared will not be loaded from files (GUS patch files or sound fonts) even
though the patches are available.  This way it's easy to exclude certain
patches from a sound font so as to load better ones from a subseqently loaded
font.  Just don't declare them before you've asked to load the font.  It is,
thus, unnecessary to use the "font" and "order" statements implemented by
Takashi Iwai and described in README.sf.  (It is also not possible, since
I've removed support for "font" and "order".)

When the same patch of the same bank or drumset is declared more than once,
only the first declaration counts.  So put your best fonts first.

There is a utility sf2cfg to construct a cfg file for a sbk/sf2 sound font,
which spits out all the patches that are present in the font.  Also, I've
included sample cfg files for chaos8m.sf2 and chaos12m.sf2.

If you have several patch sets and you've set up timidity.cfg appropriately,
you can select among them with the command line switch "-#<n>".  If a "source"
statement in a cfg file is preceded, e.g., by a line "if 2", then the
"source" statement will be skipped over unless "-#2" was given on the
command line.  A line "else" will cause the next "source" statement to
be skipped if any non-zero n was requested by "-#<n>".

Instead of using the command line "-p" to raise or lower the number of
simultaneously playing notes, you can do in a cfg file, e.g., put: "voices 48"
in timidity.cfg.

----------------------------------------------

						Greg Lee, lee@hawaii.edu
						February, 2000

