               Sound Blaster Pro(tm) BSD Unix device driver
                            RELEASE NOTES
                                 v1.4

                 Steve Haehnichen <shaehnic@ucsd.edu>

     $Id: README,v 1.1 1992/06/13 01:44:40 steve Exp steve $
              [ This file is a part of SBlast-BSD-1.4 ]

    These note accompany the third Beta release of my Sound Blaster Pro
    device driver for BSD Unix v4.3.

    The purpose of this release is to get feedback on the software.
    If you have questions or errors about ANYTHING in this package, please
    let me know so that I can answer them for when this is publicly
    distributed.  This includes errors in the code and documentation.
    Thanks in advance for your help.


WHY?
----
One of the major forces tying people to systems like MS-DOS is lack of
hardware support under other operating systems.  With the recent
release of a free BSD 4.3 for the 386, it will become increasingly
unacceptable to rely on DOS for specialty hardware support.

This code is free, in the hopes that the the details of programming
the SB will eventually become something other than proprietary
secrets, hoarded by Creative Labs.  This software and documentation is
covered by the GNU General Public License, to ensure that future
releases will always be free.  Please read the file COPYING for
details, or ask me via Email if you have any questions.


SOUND BLASTER OVERVIEW:
----------------------
As of v1.4b, 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, 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 for more
platforms, and FM timers.  I am really hoping to get some serious
feedback on this release to help speed things up.

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 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)


"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.

Most of all, Thanks!  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.

Good Luck!
-Steve

Steve Haehnichen
shaehnic@ucsd.edu
