OSS/Free version 3.8 release notes
----------------------------------

Most up to date information about this driver is available from 
http://www.4front-tech.com/ossfree.



Please read the SOUND-HOWTO (available from sunsite.unc.edu and other Linux FTP 
sites). It gives instructions about using sound with Linux. It's bit out of
date but still very useful. Information about bug fixes and such things
is available from the web page (see above).

Please check http://www.4front-tech.com/pguide for more info about programming
with OSS API.

   ====================================================
-  THIS VERSION ____REQUIRES____ Linux 2.1.47 OR LATER.
   ====================================================

Packages "snd-util-3.8.tar.gz" and "snd-data-0.1.tar.Z"
contain useful utilities to be used with this driver.
See http://www.4front-tech.com/ossfree/getting.html for
download instructions.

If you are looking for the installation instructions, please
look at Readme.linux.

Supported soundcards
--------------------

See Readme.cards.

Please check http://www.4front-tech.com/ossfree if you don't find
your soundcard there.

Contributors
------------

This driver contains code by several contributors. In addition several other
persons have given useful suggestions. The following is a list of major
contributors. (I could have forgotten some names.)

	Craig Metz	1/2 of the PAS16 Mixer and PCM support
	Rob Hooft	Volume computation algorithm for the FM synth.
	Mika Liljeberg	uLaw encoding and decoding routines
	Jeff Tranter	Linux SOUND HOWTO document
	Greg Lee	Volume computation algorithm for the GUS and
			lot's of valuable suggestions.
	Andy Warner	ISC port
	Jim Lowe,
	Amancio Hasty Jr	FreeBSD/NetBSD port
	Anders Baekgaard 	Bug hunting and valuable suggestions.
	Joerg Schubert	SB16 DSP support (initial version).
	Andrew Robinson Improvements to the GUS driver
	Megens SA	MIDI recording for SB and SB Pro (initial version).
	Mikael Nordqvist  Linear volume support for GUS and
			  nonblocking /dev/sequencer.
	Ian Hartas		SVR4.2 port
	Markus Aroharju	and
	Risto Kankkunen		Major contributions to the mixer support
				of GUS v3.7.
	Hunyue Yau	Mixer support for SG NX Pro.
	Marc Hoffman	PSS support (initial version).
	Rainer Vranken	Initialization for Jazz16 (initial version).
	Peter Trattler	Initial version of loadable module support for Linux.
	JRA Gibson	16 bit mode for Jazz16 (initial version)
	Davor Jadrijevic MAD16 support (initial version)
	Gregor Hoffleit	Mozart support (initial version)
	Riccardo Facchetti Audio Excel DSP 16 (aedsp16) support
	James Hightower Spotting a tiny but important bug in CS423x support.
	Denis Sablic	OPTi 82C924 spesific enhancements (non PnP mode)
	Tim MacKenzie	Full duplex support for OPTi 82C930.
	
	Please look at lowlevel/README for more contributors.

There are probably many other names missing. If you have sent me some
patches and your name is not in the above list, please inform me.

Sending your contributions or patches
-------------------------------------

First of all it's highly recommended to contact me before sending anything
or before even starting to do any work. Tell me what you suggest to be
changed or what you have planned to do. Also ensure you are using the
very latest (development) version of OSS/Free since the change may already be
implemented there. In general it's major waste of time to try to improve
several months old version. Information about the latest version can be found
from http://www.4front-tech.com/ossfree.

I very rarely accept any patches (diffs) for few very fundamental reasons:
1) Source code of OSS/Free is a subset of commercial OSS. Applying a patch
may have undesired effects which is not acceptable. So the result is that I
have to do the same changes manually.
2) OSS/Free is "linuxified" output from the portable OSS sources. It's also
likely that the latest inhouse development version is different than the
latest released one. For these reasons about 60% of all patches would fail
and have to be applied manually.

For the above reasons I'm forced to reject about 90% of the diffs sent to me.
Better ways to get an intended feature/addition included to OSS are:
1) Send me a message and describe the suggested change/addition. Tell
me also why you think it's necessary (what is the application where you
are going to need it). In case of a bug in the code it's important to
tell how to reproduce the problem and what kind of hardware you used
(cat /dev/sndstat printout). In addition you can describe what kind of
changes to the code you suggest (file, function name and change). A 
context diff is sometimes hard to read. The same is true with a description
that refers to the line numbers in a spesific driver version.
2) When adding new "drivers" you should implement the code so that it
resides in the sound/lowlevel subdirectory (use the existing drivers as
examples). Only the absolutely necessary changes can be made to the existing
files in the sound/ directory (otherwise I can't accept the driver).
In this way the driver will almost certainly be accepted to OSS/Free. However
I will not take any responsibility to support or maintain the drivers in the
lowlevel directory.

Even a properly made suggestion/modification may get rejected in the
following cases:
1) Including major additions is not possible for copyright reasons in some
cases. There are no problems if you use the "lowlevel" method since in this
way your code can be included only in OSS/Free. Otherwise contributed code can
be included to OSS/Free only if you give full ownership of the code to 4Front
Technologies.
2) If something looks very simple to implement in Linux it's necessarily
not easy to implement for all operating systems where OSS works. It's
rather common that a change requires modifications that need to be made
separately for each OS.
3) A change may conflict with other existing or future features of OSS.
I normally reject all changes which don't seem to be very safe in this
sense. Also a new feature will be rejected if there is an acceptable way
to do the same using the existing driver API.
4) The suggested change may already be in the TODO list but in slightly
different form. It may even have been implemented in the current inhouse
version. However schedule for the changes depends on when new major versions
of OSS are released (sometimes this may take several months). 
5) There are too many changes to existing files. I have to do the changes
manually or at least to study very carefully what are the possible side
effects of the changes. I very rarely have time to do this kind of
time consuming operations.

So if you like to contribute something, please read the above couple of
times. After that contact me and ask if there is any use for the work
you have planned to do.

Sponsors etc.
-------------

The following companies have greatly helped development of this driver 
in form of a free copy of their product:

Novell, Inc.		UnixWare personal edition + SDK
The Santa Cruz Operation, Inc. 	A SCO OpenServer + SDK
Ensoniq Corp,		a SoundScape card and extensive amount of assistance
MediaTrix Peripherals Inc, a AudioTrix Pro card + SDK
Acer, Inc.		a pair of AcerMagic S23 cards.

In addition the following companies have provided me sufficient amount
of technical information at least some of their products (free or $$$):

Advanced Gravis Computer Technology Ltd.
Media Vision Inc.
Analog Devices Inc.
Logitech Inc.
Aztech Labs Inc.
Crystal Semiconductor Corporation,
Integrated Circuit Systems Inc.
OAK Technology
OPTi
Turtle Beach
miro
Ad Lib Inc. ($$)
Music Quest Inc. ($$)
Creative Labs ($$$)

If you have some problems
=========================

Read the sound HOWTO (sunsite.unc.edu:/pub/Linux/docs/...?).
Also look at the home page (http://www.4front-tech.com/ossfree). It may
contain info about some recent bug fixes.

It's likely that you have some problems when trying to use the sound driver
first time. Soundcards don't have standard configuration so there are no
good default configuration to use. Please try to use same I/O, DMA and IRQ
values for the soundcard than with DOS.

If you get an error message when trying to use the driver, please look
at /var/adm/messages for more verbose error message.


In general the easiest way to diagnose problems is to do "cat /dev/sndstat".

If you get an error message, there are some problems with the driver setup:

	- "No such file or directory" tells that the device files for
	the sound driver are missing. Use the script at the end of
	linux/drivers/sound/Readme.linux to create them.

	- "No such device" tells that the sound driver is not in the kernel.
	You have to reconfigure and recompile the kernel to have the sound
	driver. Compiling the driver doesn't help alone. You have to boot
	with the newly compiled one before the driver becomes active.
	The Linux-HOWTO should help in this step.

The following errors are likely with /dev/dsp and /dev/audio.

	- "No such device or address". This error message should not happen
	with /dev/sndstat but it's possible with the other sound devices.
	This error indicates that there are no suitable hardware for the
	device file or the sound driver has been compiled without support for
	this particular device. For example /dev/audio and /dev/dsp will not
	work if "digitized voice support" was not enabled during "make config".
	
	- "Device or resource busy". Probably the IRQ (or DMA) channel 
	required by the soundcard is in use by some other device/driver.

	- "I/O error". Almost certainly (99%) it's an IRQ or DMA conflict.
	Look at the kernel messages in /var/adm/notice for more info.

	- "Invalid argument". The application is calling ioctl()
	with impossible parameters. Check that the application is
	for sound driver version 2.X or later.

In general the printout of of /dev/sndstat should tell what is the problem.
It's possible that there are bugs in the sound driver but 99% of the problems
reported to me are caused by somehow incorrect setup during "make config".

Best regards,

Hannu

Hannu Savolainen
hannu@4front-tech.com	
(Please check http://www.4front-tech.com/ossfree before mailing me).

Snail mail:	Hannu Savolainen
		Hiekkalaiturintie 3 A 8
		00980 Helsinki
		Finland
