               Sound Blaster Pro(tm) BSD Unix device driver
				README
                                 v1.5

                 Steve Haehnichen <shaehnic@ucsd.edu>

	  README,v 2.1 1992/09/14 03:09:19 steve Exp
	      [ This file is a part of SBlast-BSD-1.5 ]

SOUND BLASTER OVERVIEW:
----------------------
As of v1.5, this driver supports every feature of the Sound Blaster
Pro audio card except stereo recording.  The original Sound Blaster
has fewer features, but only small modifications should be necessary
to make this driver support it properly.  Any cards that claim 100%
Sound Blaster Pro compatibility should work fine.  If time allows, I
am planning support for the Pro Audio Spectrum 16, original Sound
Blaster, and Gravis Ultrasound, if that is ever released.

For the time being, the Sound Blaster Pro is one of the best offers on
the market, with 22 FM voices in two channels, a DSP that can do 47
KHz 8-bit stereo recording and playback, bi-directional MIDI, and
on-board mixer for Line-In, Microphone, DSP, and CD, built-in
selectable filters, and a even a lame attempt at a SCSI CD-ROM
interface, all for under $200.  Future IBM-PC sound cards will
probably be compatible with the SB because of the wide support, and
hopefully this driver will grow accordingly.


CURRENT FEATURES:
-----------------
This version of the driver supports double-buffered DSP playback using
DMA for speeds up to 47KHz in both mono and stereo modes.

Recording (sampling) is currency only done in mono, because I haven't
learned the secret to sampling in stereo.  Again, this information is
extremely hard to squeeze out of Creative Labs, and even other users
in-the-know seem reluctant to share the information.  Hopefully, this
will change in the future.

The on-board Mixer functions are fully supported, both via ioctl calls
and standard read and write operations.  See the comments in the code
for more info.

Stereo FM synthesis is supported, either as ioctl's, or a stream of
event instructions.

This release also has MIDI read/write support.  Due to lack of a
reliable hi-res timer, there is no time information stored with the
MIDI data.  This is left to application software, which can do it just
as well.  

The CMS chips are corny and should never have existed on the SB in the
first place, much less for an extra $30.  The SB Pro card does not
accept them at all, and this driver doesn't support them.


TO DO:
-----
In future releases, I hope to support stereo sampling, better
technical documentation, better installation instructions, support for
more platforms, FM timers, and world peace.  See the file
Release.Notes for current details.


INCLUDED APPLICATIONS
---------------------
A few basic programs are included with this release to get you up and
running, and hopefully provide some programming examples for using the
driver.  Included are:

xmix/xmix
    An X Windows interface to the SB Pro mixer, using faders and such.

cdsp
    A program to set/read the DSP speed, buffer, and stereo settings.

chew
    A simple program for converting between signed to unsigned byte
    formats.  (csound uses and produces signed byte files; the SB wants
    unsigned bytes.

filt
    A skeleton MIDI filter to read incoming MIDI data, possibly
    modifies the bytes, and then sends them out the MIDI-OUT port.

float
    A program to convert between unsigned bytes and floating point binary
    streams.  Floats are used by several phase vocoders and such.

mixer
    A command-line interface to the mixer.  Similar to the bundled DOS
    program SBP-SET.

notes
    Generates random notes in the FM channels.  Not very useful, but it's
    great for testing the driver, and it shows what a wide range of sounds
    can come from those simple FM synth chips.

playmidi
    Reads a standard MIDI type 1 or type 0 file and sends the data out the
    MIDI port.  Mostly useful for playing .mid files to an external MIDI
    synthesizer.

record
    Simplifies recording direct to disk.  You tell it how long, what
    speed, and what file to record into.

midi2fm
    Experimental program to play incoming MIDI notes on the FM synth
    chips.  (Note that I play a horn, so polyphonics are probably not
    supported properly.)
        
revox
    Reverses binary sound files of any length.  

midithru
    Pass MIDI bytes from MIDI-IN to MIDI-OUT.  Handy when you need it.

Most of these are quick hacks and under constant change.  I hope to
hear what other applications people come up with.

Also, I have patched the Mixview graphical sound editor to use this SB
Pro driver.  Email me if you want the diffs.  (Needs X Windows, of course)


DISTRIBUTION
------------
This driver is distributed under terms described by the GNU General
Public Licence.  Please read the file COPYING for full details.  If
you have distribution needs other than those allowed, please contact
me to discuss alternatives.


"YOUR MISSION, (should you chose to accept it..)"
------------------------------------------------
If you install this driver, PLEASE send me any and all mods you had to
make to get it to install on your system.  If you had to change a
single line or #define that wasn't explained in the docs, I would
like to hear about it.

If you find any bugs in either the documentation, code, or comments,
please let me know, or send patches if you have already fixed them.

If you expand the driver in a significant way, I would love to
incorporate your patches into the distribution.  I am especially eager
to hear from MIDI hackers.

If you are a programmer, and see a better, cleaner, or more
explanatory way to do something, I would appreciate a tip or two.
Code can always be better.

Please let me know how you fare.  If you chose not to install the
driver because of something you didn't like, please tell me.

Happy Hacking!
-Steve

Steve Haehnichen
shaehnic@ucsd.edu
