About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / sound / oss / README.OSS


Based on kernel version 4.13.3. Page generated on 2017-09-23 13:56 EST.

1	Introduction
2	------------
3	
4	This file is a collection of all the old Readme files distributed with
5	OSS/Lite by Hannu Savolainen. Since the new Linux sound driver is founded
6	on it I think these information may still be interesting for users that
7	have to configure their sound system.
8	
9	Be warned: Alan Cox is the current maintainer of the Linux sound driver so if
10	you have problems with it, please contact him or the current device-specific
11	driver maintainer (e.g. for aedsp16 specific problems contact me). If you have
12	patches, contributions or suggestions send them to Alan: I'm sure they are
13	welcome.
14	
15	In this document you will find a lot of references about OSS/Lite or ossfree:
16	they are gone forever. Keeping this in mind and with a grain of salt this
17	document can be still interesting and very helpful.
18	
19	[ File edited 17.01.1999 - Riccardo Facchetti ]
20	[ Edited miroSOUND section 19.04.2001 - Robert Siemer ]
21	
22	OSS/Free version 3.8 release notes
23	----------------------------------
24	
25	Please read the SOUND-HOWTO (available from sunsite.unc.edu and other Linux FTP 
26	sites). It gives instructions about using sound with Linux. It's bit out of
27	date but still very useful. Information about bug fixes and such things
28	is available from the web page (see above).
29	
30	Please check http://www.opensound.com/pguide for more info about programming
31	with OSS API.
32	
33	   ====================================================
34	-  THIS VERSION ____REQUIRES____ Linux 2.1.57 OR LATER.
35	   ====================================================
36	
37	Packages "snd-util-3.8.tar.gz" and "snd-data-0.1.tar.Z"
38	contain useful utilities to be used with this driver.
39	See http://www.opensound.com/ossfree/ for
40	download instructions.
41	
42	If you are looking for the installation instructions, please
43	look forward into this document.
44	
45	Supported sound cards
46	---------------------
47	
48	See below.
49	
50	Contributors
51	------------
52	
53	This driver contains code by several contributors. In addition several other
54	persons have given useful suggestions. The following is a list of major
55	contributors. (I could have forgotten some names.)
56	
57		Craig Metz	1/2 of the PAS16 Mixer and PCM support
58		Rob Hooft	Volume computation algorithm for the FM synth.
59		Mika Liljeberg	uLaw encoding and decoding routines
60		Jeff Tranter	Linux SOUND HOWTO document
61		Greg Lee	Volume computation algorithm for the GUS and
62				lots of valuable suggestions.
63		Andy Warner	ISC port
64		Jim Lowe,
65		Amancio Hasty Jr	FreeBSD/NetBSD port
66		Anders Baekgaard 	Bug hunting and valuable suggestions.
67		Joerg Schubert	SB16 DSP support (initial version).
68		Andrew Robinson Improvements to the GUS driver
69		Megens SA	MIDI recording for SB and SB Pro (initial version).
70		Mikael Nordqvist  Linear volume support for GUS and
71				  nonblocking /dev/sequencer.
72		Ian Hartas		SVR4.2 port
73		Markus Aroharju	and
74		Risto Kankkunen		Major contributions to the mixer support
75					of GUS v3.7.
76		Hunyue Yau	Mixer support for SG NX Pro.
77		Marc Hoffman	PSS support (initial version).
78		Rainer Vranken	Initialization for Jazz16 (initial version).
79		Peter Trattler	Initial version of loadable module support for Linux.
80		JRA Gibson	16 bit mode for Jazz16 (initial version)
81		Davor Jadrijevic MAD16 support (initial version)
82		Gregor Hoffleit	Mozart support (initial version)
83		Riccardo Facchetti Audio Excel DSP 16 (aedsp16) support
84		James Hightower Spotting a tiny but important bug in CS423x support.
85		Denis Sablic	OPTi 82C924 specific enhancements (non PnP mode)
86		Tim MacKenzie	Full duplex support for OPTi 82C930.
87		
88		Please look at lowlevel/README for more contributors.
89	
90	There are probably many other names missing. If you have sent me some
91	patches and your name is not in the above list, please inform me.
92	
93	Sending your contributions or patches
94	-------------------------------------
95	
96	First of all it's highly recommended to contact me before sending anything
97	or before even starting to do any work. Tell me what you suggest to be
98	changed or what you have planned to do. Also ensure you are using the
99	very latest (development) version of OSS/Free since the change may already be
100	implemented there. In general it's a major waste of time to try to improve a
101	several months old version. Information about the latest version can be found
102	from http://www.opensound.com/ossfree. In general there is no point in
103	sending me patches relative to production kernels.
104	
105	Sponsors etc.
106	-------------
107	
108	The following companies have greatly helped development of this driver 
109	in form of a free copy of their product:
110	
111	Novell, Inc.		UnixWare personal edition + SDK
112	The Santa Cruz Operation, Inc. 	A SCO OpenServer + SDK
113	Ensoniq Corp,		a SoundScape card and extensive amount of assistance
114	MediaTrix Peripherals Inc, a AudioTrix Pro card + SDK
115	Acer, Inc.		a pair of AcerMagic S23 cards.
116	
117	In addition the following companies have provided me sufficient amount
118	of technical information at least some of their products (free or $$$):
119	
120	Advanced Gravis Computer Technology Ltd.
121	Media Vision Inc.
122	Analog Devices Inc.
123	Logitech Inc.
124	Aztech Labs Inc.
125	Crystal Semiconductor Corporation,
126	Integrated Circuit Systems Inc.
127	OAK Technology
128	OPTi
129	Turtle Beach
130	miro
131	Ad Lib Inc. ($$)
132	Music Quest Inc. ($$)
133	Creative Labs ($$$)
134	
135	If you have some problems
136	=========================
137	
138	Read the sound HOWTO (sunsite.unc.edu:/pub/Linux/docs/...?).
139	Also look at the home page (http://www.opensound.com/ossfree). It may
140	contain info about some recent bug fixes.
141	
142	It's likely that you have some problems when trying to use the sound driver
143	first time. Sound cards don't have standard configuration so there are no
144	good default configuration to use. Please try to use same I/O, DMA and IRQ
145	values for the sound card than with DOS.
146	
147	If you get an error message when trying to use the driver, please look
148	at /var/adm/messages for more verbose error message.
149	
150	
151	The following errors are likely with /dev/dsp and /dev/audio.
152	
153		- "No such device or address".
154		This error indicates that there are no suitable hardware for the
155		device file or the sound driver has been compiled without support for
156		this particular device. For example /dev/audio and /dev/dsp will not
157		work if "digitized voice support" was not enabled during "make config".
158		
159		- "Device or resource busy". Probably the IRQ (or DMA) channel 
160		required by the sound card is in use by some other device/driver.
161	
162		- "I/O error". Almost certainly (99%) it's an IRQ or DMA conflict.
163		Look at the kernel messages in /var/adm/notice for more info.
164	
165		- "Invalid argument". The application is calling ioctl()
166		with impossible parameters. Check that the application is
167		for sound driver version 2.X or later.
168	
169	Linux installation
170	==================
171	
172	IMPORTANT!	Read this if you are installing a separately
173			distributed version of this driver.
174	
175			Check that your kernel version works with this
176			release of the driver (see Readme). Also verify
177			that your current kernel version doesn't have more
178			recent sound driver version than this one. IT'S HIGHLY
179			RECOMMENDED THAT YOU USE THE SOUND DRIVER VERSION THAT
180			IS DISTRIBUTED WITH KERNEL SOURCES.
181	
182	- When installing separately distributed sound driver you should first
183	  read the above notice. Then try to find proper directory where and how
184	  to install the driver sources. You should not try to install a separately
185	  distributed driver version if you are not able to find the proper way
186	  yourself (in this case use the version that is distributed with kernel
187	  sources). Remove old version of linux/drivers/sound directory before
188	  installing new files.
189	
190	- To build the device files you need to run the enclosed shell script 
191	  (see below). You need to do this only when installing sound driver
192	  first time or when upgrading to much recent version than the earlier
193	  one.
194	
195	- Configure and compile Linux as normally (remember to include the
196	  sound support during "make config"). Please refer to kernel documentation
197	  for instructions about configuring and compiling kernel. File Readme.cards
198	  contains card specific instructions for configuring this driver for
199	  use with various sound cards.
200	
201	Boot time configuration (using lilo and insmod) 
202	-----------------------------------------------
203	
204	This information has been removed. Too many users didn't believe
205	that it's really not necessary to use this method. Please look at
206	Readme of sound driver version 3.0.1 if you still want to use this method.
207	
208	Problems
209	--------
210	
211	Common error messages:
212	
213	- /dev/???????: No such file or directory.
214	Run the script at the end of this file.
215	
216	- /dev/???????: No such device.
217	You are not running kernel which contains the sound driver. When using
218	modularized sound driver this error means that the sound driver is not
219	loaded.
220	
221	- /dev/????: No such device or address.
222	Sound driver didn't detect suitable card when initializing. Please look at
223	Readme.cards for info about configuring the driver with your card. Also
224	check for possible boot (insmod) time error messages in /var/adm/messages.
225	
226	- Other messages or problems
227	Please check http://www.opensound.com/ossfree for more info.
228	
229	Configuring version 3.8 (for Linux) with some common sound cards
230	================================================================
231	
232	This document describes configuring sound cards with the freeware version of
233	Open Sound Systems (OSS/Free). Information about the commercial version
234	(OSS/Linux) and its configuration is available from 
235	http://www.opensound.com/linux.html. Information presented here is
236	not valid for OSS/Linux. 
237	
238	If you are unsure about how to configure OSS/Free
239	you can download the free evaluation version of OSS/Linux from the above
240	address. There is a chance that it can autodetect your sound card. In this case
241	you can use the information included in soundon.log when configuring OSS/Free.
242	
243	
244	IMPORTANT!	This document covers only cards that were "known" when
245			this driver version was released. Please look at
246			http://www.opensound.com/ossfree for info about
247			cards introduced recently.
248	
249			When configuring the sound driver, you should carefully
250			check each sound configuration option (particularly
251			"Support for /dev/dsp and /dev/audio"). The default values
252			offered by these programs are not necessarily valid.
253	
254	
255	THE BIGGEST MISTAKES YOU CAN MAKE
256	=================================
257	
258	1. Assuming that the card is Sound Blaster compatible when it's not.
259	--------------------------------------------------------------------
260	
261	The number one mistake is to assume that your card is compatible with
262	Sound Blaster. Only the cards made by Creative Technology or which have
263	one or more chips labeled by Creative are SB compatible. In addition there
264	are few sound chipsets which are SB compatible in Linux such as ESS1688 or
265	Jazz16. Note that SB compatibility in DOS/Windows does _NOT_ mean anything
266	in Linux. 
267	
268	IF YOU REALLY ARE 150% SURE YOU HAVE A SOUND BLASTER YOU CAN SKIP THE REST OF
269	THIS CHAPTER.
270	
271	For most other "supposed to be SB compatible" cards you have to use other
272	than SB drivers (see below).  It is possible to get most sound cards to work
273	in SB mode but in general it's a complete waste of time. There are several
274	problems which you will encounter by using SB mode with cards that are not
275	truly SB compatible:
276	
277	- The SB emulation is at most SB Pro (DSP version 3.x) which means that 
278	you get only 8 bit audio (there is always an another ("native") mode which
279	gives the 16 bit capability). The 8 bit only operation is the reason why
280	many users claim that sound quality in Linux is much worse than in DOS.
281	In addition some applications require 16 bit mode and they produce just
282	noise with a 8 bit only device.
283	- The card may work only in some cases but refuse to work most of the
284	time. The SB compatible mode always requires special initialization which is 
285	done by the DOS/Windows drivers. This kind of cards work in Linux after
286	you have warm booted it after DOS but they don't work after cold boot
287	(power on or reset).
288	- You get the famous "DMA timed out" messages. Usually all SB clones have
289	software selectable IRQ and DMA settings. If the (power on default) values
290	currently used by the card don't match configuration of the driver you will
291	get the above error message whenever you try to record or play. There are
292	few other reasons to the DMA timeout message but using the SB mode seems
293	to be the most common cause.
294	
295	2. Trying to use a PnP (Plug & Play) card just like an ordinary sound card
296	--------------------------------------------------------------------------
297	
298	Plug & Play is a protocol defined by Intel and Microsoft. It lets operating
299	systems to easily identify and reconfigure I/O ports, IRQs and DMAs of ISA
300	cards. The problem with PnP cards is that the standard Linux doesn't currently
301	(versions 2.1.x and earlier) don't support PnP. This means that you will have
302	to use some special tricks (see later) to get a PnP card alive. Many PnP cards
303	work after they have been initialized but this is not always the case.
304	
305	There are sometimes both PnP and non-PnP versions of the same sound card.
306	The non-PnP version is the original model which usually has been discontinued
307	more than an year ago. The PnP version has the same name but with "PnP"
308	appended to it (sometimes not). This causes major confusion since the non-PnP
309	model works with Linux but the PnP one doesn't.
310	
311	You should carefully check if "Plug & Play" or "PnP" is mentioned in the name
312	of the card or in the documentation or package that came with the card. 
313	Everything described in the rest of this document is not necessarily valid for
314	PnP models of sound cards even you have managed to wake up the card properly.
315	Many PnP cards are simply too different from their non-PnP ancestors which are
316	covered by this document.
317	
318	
319	Cards that are not (fully) supported by this driver
320	===================================================
321	
322	See http://www.opensound.com/ossfree for information about sound cards 
323	to be supported in future. 
324	
325	
326	How to use sound without recompiling kernel and/or sound driver
327	===============================================================
328	
329	There is a commercial sound driver which comes in precompiled form and doesn't
330	require recompiling of the kernel. See http://www.4Front-tech.com/oss.html for
331	more info.
332	
333	
334	Configuring PnP cards
335	=====================
336	
337	New versions of most sound cards use the so-called ISA PnP protocol for
338	soft configuring their I/O, IRQ, DMA and shared memory resources.
339	Currently at least cards made by Creative Technology (SB32 and SB32AWE
340	PnP), Gravis (GUS PnP and GUS PnP Pro), Ensoniq (Soundscape PnP) and
341	Aztech (some Sound Galaxy models) use PnP technology. The CS4232/4236 audio
342	chip by Crystal Semiconductor (Intel Atlantis, HP Pavilion and many other
343	motherboards) is also based on PnP technology but there is a "native" driver
344	available for it (see information about CS4232 later in this document).
345	
346	PnP sound cards (as well as most other PnP ISA cards) are not supported
347	by this version of the driver . Proper
348	support for them should be released during 97 once the kernel level
349	PnP support is available.
350	
351	There is a method to get most of the PnP cards to work. The basic method
352	is the following:
353	
354	1) Boot DOS so the card's DOS drivers have a chance to initialize it.
355	2) _Cold_ boot to Linux by using "loadlin.exe".  Hitting ctrl-alt-del
356	works with older machines but causes a hard reset of all cards on recent
357	(Pentium) machines.
358	3) If you have the sound driver in Linux configured properly, the card should
359	work now. "Proper" means that I/O, IRQ and DMA settings are the same as in
360	DOS. The hard part is to find which settings were used. See the documentation of
361	your card for more info.
362	
363	Windows 95 could work as well as DOS but running loadlin may be difficult.
364	Probably you should "shut down" your machine to MS-DOS mode before running it.
365	
366	Some machines have a BIOS utility for setting PnP resources. This is a good
367	way to configure some cards. In this case you don't need to boot DOS/Win95
368	before starting Linux.
369	
370	Another way to initialize PnP cards without DOS/Win95 is a Linux based
371	PnP isolation tool. When writing this there is a pre alpha test version
372	of such a tool available from ftp://ftp.demon.co.uk/pub/unix/linux/utils. The
373	file is called isapnptools-*. Please note that this tool is just a temporary
374	solution which may be incompatible with future kernel versions having proper
375	support for PnP cards. There are bugs in setting DMA channels in earlier
376	versions of isapnptools so at least version 1.6 is required with sound cards.
377	
378	Yet another way to use PnP cards is to use (commercial) OSS/Linux drivers.  See
379	http://www.opensound.com/linux.html for more info. This is probably the way you
380	should do it if you don't want to spend time recompiling the kernel and 
381	required tools.
382	
383	
384	Read this before trying to configure the driver
385	===============================================
386	
387	There are currently many cards that work with this driver. Some of the cards
388	have native support while others work since they emulate some other
389	card (usually SB, MSS/WSS and/or MPU401). The following cards have native
390	support in the driver. Detailed instructions for configuring these cards
391	will be given later in this document.
392	
393	Pro Audio Spectrum 16 (PAS16) and compatibles:
394		Pro Audio Spectrum 16
395		Pro Audio Studio 16
396		Logitech Sound Man 16
397		NOTE! The original Pro Audio Spectrum as well as the PAS+ are not
398		      and will not be supported by the driver.
399	
400	Media Vision Jazz16 based cards
401		Pro Sonic 16
402		Logitech SoundMan Wave
403		(Other Jazz based cards should work but I don't have any reports
404		about them).
405	
406	Sound Blasters
407		SB 1.0 to 2.0
408		SB Pro
409		SB 16
410		SB32/64/AWE
411			Configure SB32/64/AWE just like SB16. See lowlevel/README.awe
412			for information about using the wave table synth.
413		        NOTE! AWE63/Gold and 16/32/AWE "PnP" cards need to be activated
414			      using isapnptools before they work with OSS/Free.
415		SB16 compatible cards by other manufacturers than Creative.
416			You have been fooled since there are _no_ SB16 compatible
417			cards on the market (as of May 1997). It's likely that your card
418			is compatible just with SB Pro but there is also a non-SB-
419			compatible 16 bit mode. Usually it's MSS/WSS but it could also
420			be a proprietary one like MV Jazz16 or ESS ES688. OPTi
421			MAD16 chips are very common in so called "SB 16 bit cards"
422			(try with the MAD16 driver).
423	
424		======================================================================
425		"Supposed to be SB compatible" cards.
426			Forget the SB compatibility and check for other alternatives
427			first. The only cards that work with the SB driver in
428			Linux have been made by Creative Technology (there is at least
429			one chip on the card with "CREATIVE" printed on it). The
430			only other SB compatible chips are ESS and Jazz16 chips
431			(maybe ALSxxx chips too but they probably don't work).
432			Most other "16 bit SB compatible" cards such as "OPTi/MAD16" or
433			"Crystal" are _NOT_ SB compatible in Linux.
434	
435			Practically all sound cards have some kind of SB emulation mode
436			in addition to their native (16 bit) mode. In most cases this
437			(8 bit only) SB compatible mode doesn't work with Linux. If
438			you get it working it may cause problems with games and
439			applications which require 16 bit audio. Some 16 bit only
440			applications don't check if the card actually supports 16 bits.
441			They just dump 16 bit data to a 8 bit card which produces just
442			noise.
443	
444			In most cases the 16 bit native mode is supported by Linux.
445			Use the SB mode with "clones" only if you don't find anything
446			better from the rest of this doc.
447		======================================================================
448	
449	Gravis Ultrasound (GUS)
450		GUS
451		GUS + the 16 bit option
452		GUS MAX
453		GUS ACE (No MIDI port and audio recording)
454		GUS PnP (with RAM)
455	
456	MPU-401	and compatibles
457		The driver works both with the full (intelligent mode) MPU-401
458		cards (such as MPU IPC-T and MQX-32M) and with the UART only
459		dumb MIDI ports. MPU-401 is currently the most common MIDI
460		interface. Most sound cards are compatible with it. However,
461		don't enable MPU401 mode blindly. Many cards with native support
462		in the driver have their own MPU401 driver. Enabling the standard one
463		will cause a conflict with these cards. So check if your card is
464		in the list of supported cards before enabling MPU401.
465	
466	Windows Sound System (MSS/WSS)
467		Even when Microsoft has discontinued their own Sound System card 
468		they managed to make it a standard. MSS compatible cards are based on 
469		a codec chip which is easily available from at least two manufacturers
470		(AD1848 by Analog Devices and CS4231/CS4248 by Crystal Semiconductor).
471		Currently most sound cards are based on one of the MSS compatible codec
472		chips. The CS4231 is used in the high quality cards such as GUS MAX,
473		MediaTrix AudioTrix Pro and TB Tropez (GUS MAX is not MSS compatible). 
474	
475		Having a AD1848, CS4248 or CS4231 codec chip on the card is a good
476		sign. Even if the card is not MSS compatible, it could be easy to write
477		support for it. Note also that most MSS compatible cards
478		require special boot time initialization which may not be present
479		in the driver. Also, some MSS compatible cards have native support.
480		Enabling the MSS support with these cards is likely to
481		cause a conflict. So check if your card is listed in this file before
482		enabling the MSS support.
483	
484	Yamaha FM synthesizers (OPL2, OPL3 (not OPL3-SA) and OPL4)
485		Most sound cards have a FM synthesizer chip. The OPL2 is a 2
486		operator chip used in the original AdLib card. Currently it's used
487		only in the cheapest (8 bit mono) cards. The OPL3 is a 4 operator 
488		FM chip which provides better sound quality and/or more available 
489		voices than the OPL2. The OPL4 is a new chip that has an OPL3 and
490		a wave table synthesizer packed onto the same chip. The driver supports
491		just the OPL3 mode directly. Most cards with an OPL4 (like
492		SM Wave and AudioTrix Pro) support the OPL4 mode using MPU401
493		emulation. Writing a native OPL4 support is difficult
494		since Yamaha doesn't give information about their sample ROM chip.
495	
496		Enable the generic OPL2/OPL3 FM synthesizer support if your
497		card has a FM chip made by Yamaha. Don't enable it if your card
498		has a software (TRS) based FM emulator.
499	
500		----------------------------------------------------------------
501		NOTE! OPL3-SA is different chip than the ordinary OPL3. In addition
502		to the FM synth this chip has also digital audio (WSS) and
503		MIDI (MPU401) capabilities. Support for OPL3-SA is described below.
504		----------------------------------------------------------------
505	
506	Yamaha OPL3-SA1
507	
508		Yamaha OPL3-SA1 (YMF701) is an audio controller chip used on some
509		(Intel) motherboards and on cheap sound cards. It should not be
510		confused with the original OPL3 chip (YMF278) which is entirely
511	        different chip. OPL3-SA1 has support for MSS, MPU401 and SB Pro
512		(not used in OSS/Free) in addition to the OPL3 FM synth.
513	
514		There are also chips called OPL3-SA2, OPL3-SA3, ..., OPL3SA-N. They
515		are PnP chips and will not work with the OPL3-SA1 driver. You should 
516		use the standard MSS, MPU401 and OPL3 options with these chips and to
517		activate the card using isapnptools.
518	
519	4Front Technologies SoftOSS
520	
521		SoftOSS is a software based wave table emulation which works with
522		any 16 bit stereo sound card. Due to its nature a fast CPU is
523		required (P133 is minimum). Although SoftOSS does _not_ use MMX
524		instructions it has proven out that recent processors (which appear
525		to have MMX) perform significantly better with SoftOSS than earlier
526		ones. For example a P166MMX beats a PPro200. SoftOSS should not be used
527		on 486 or 386 machines.
528	
529		The amount of CPU load caused by SoftOSS can be controlled by
530		selecting the CONFIG_SOFTOSS_RATE and CONFIG_SOFTOSS_VOICES
531		parameters properly (they will be prompted by make config). It's
532		recommended to set CONFIG_SOFTOSS_VOICES to 32. If you have a
533		P166MMX or faster (PPro200 is not faster) you can set
534		CONFIG_SOFTOSS_RATE to 44100 (kHz). However with slower systems it
535		recommended to use sampling rates around 22050 or even 16000 kHz.
536		Selecting too high values for these parameters may hang your
537		system when playing MIDI files with hight degree of polyphony
538		(number of concurrently playing notes). It's also possible to
539		decrease CONFIG_SOFTOSS_VOICES. This makes it possible to use
540		higher sampling rates. However using fewer voices decreases
541		playback quality more than decreasing the sampling rate.
542	
543		SoftOSS keeps the samples loaded on the system's RAM so much RAM is
544		required. SoftOSS should never be used on machines with less than 16 MB
545		of RAM since this is potentially dangerous (you may accidentally run out
546		of memory which probably crashes the machine). 
547	
548		SoftOSS implements the wave table API originally designed for GUS. For
549		this reason all applications designed for GUS should work (at least
550		after minor modifications). For example gmod/xgmod and playmidi -g are
551		known to work.
552	
553		To work SoftOSS will require GUS compatible
554		patch files to be installed on the system (in /dos/ultrasnd/midi). You
555		can use the public domain MIDIA patchset available from several ftp
556		sites.
557	
558	        *********************************************************************
559		IMPORTANT NOTICE! The original patch set distributed with the Gravis 
560		Ultrasound card is not in public domain (even though it's available from
561		some FTP sites). You should contact Voice Crystal (www.voicecrystal.com)
562		if you like to use these patches with SoftOSS included in OSS/Free.
563	        *********************************************************************
564	
565	PSS based cards (AD1848 + ADSP-2115 + Echo ESC614 ASIC)
566		Analog Devices and Echo Speech have together defined a sound card
567		architecture based on the above chips. The DSP chip is used
568		for emulation of SB Pro, FM and General MIDI/MT32.
569	
570		There are several cards based on this architecture. The most known
571		ones are Orchid SW32 and Cardinal DSP16. 
572	
573		The driver supports downloading DSP algorithms to these cards.
574	
575		NOTE! You will have to use the "old" config script when configuring
576		PSS cards.
577	
578	MediaTrix AudioTrix Pro
579		The ATP card is built around a CS4231 codec and an OPL4 synthesizer
580		chips. The OPL4 mode is supported by a microcontroller running a
581		General MIDI emulator. There is also a SB 1.5 compatible playback mode.
582	
583	Ensoniq SoundScape and compatibles
584		Ensoniq has designed a sound card architecture based on the
585		OTTO synthesizer chip used in their professional MIDI synthesizers.
586		Several companies (including Ensoniq, Reveal and Spea) are selling
587		cards based on this architecture.
588	
589		NOTE! The SoundScape PnP is not supported by OSS/Free. Ensoniq VIVO and
590		VIVO90 cards are not compatible with Soundscapes so the Soundscape
591	        driver will not work with them. You may want to use OSS/Linux with these
592	        cards.
593	
594	OPTi MAD16 and Mozart based cards
595		The Mozart (OAK OTI-601), MAD16 (OPTi 82C928), MAD16 Pro (OPTi 82C929),
596		OPTi 82C924/82C925 (in _non_ PnP mode) and OPTi 82C930 interface
597		chips are used in many different sound cards, including some
598		cards by Reveal miro and Turtle Beach (Tropez). The purpose of these
599		chips is to connect other audio components to the PC bus. The
600		interface chip performs address decoding for the other chips.
601		NOTE! Tropez Plus is not MAD16 but CS4232 based.
602		NOTE! MAD16 PnP cards (82C924, 82C925, 82C931) are not MAD16 compatible
603		in the PnP mode. You will have to use them in MSS mode after having
604		initialized them using isapnptools or DOS. 82C931 probably requires
605		initialization using DOS/Windows (running isapnptools is not enough).
606		It's possible to use 82C931 with OSS/Free by jumpering it to non-PnP
607		mode (provided that the card has a jumper for this). In non-PnP mode
608		82C931 is compatible with 82C930 and should work with the MAD16 driver
609		(without need to use isapnptools or DOS to initialize it). All OPTi
610		chips are supported by OSS/Linux (both in PnP and non-PnP modes).
611	
612	Audio Excel DSP16 
613		Support for this card was written by Riccardo Faccetti
614		(riccardo@cdc8g5.cdc.polimi.it). The AEDSP16 driver included in
615		the lowlevel/ directory. To use it you should enable the
616		"Additional low level drivers" option.
617	
618	Crystal CS4232 and CS4236 based cards such as AcerMagic S23, TB Tropez _Plus_ and 
619		many PC motherboards (Compaq, HP, Intel, ...)
620		CS4232 is a PnP multimedia chip which contains a CS3231A codec,
621		SB and MPU401 emulations. There is support for OPL3 too.
622		Unfortunately the MPU401 mode doesn't work (I don't know how to
623		initialize it). CS4236 is an enhanced (compatible) version of CS4232.
624		NOTE! Don't ever try to use isapnptools with CS4232 since this will just
625		freeze your machine (due to chip bugs). If you have problems in getting
626		CS4232 working you could try initializing it with DOS (CS4232C.EXE) and
627		then booting Linux using loadlin. CS4232C.EXE loads a secret firmware
628		patch which is not documented by Crystal.
629	
630	Turtle Beach Maui and Tropez "classic"
631		This driver version supports sample, patch and program loading commands
632		described in the Maui/Tropez User's manual. 
633		There is now full initialization support too. The audio side of
634		the Tropez is based on the MAD16 chip (see above).
635		NOTE! Tropez Plus is different card than Tropez "classic" and will not
636		work fully in Linux. You can get audio features working by configuring
637		the card as a CS4232 based card (above).
638	
639	
640	Jumpers and software configuration
641	==================================
642	
643	Some of the earliest sound cards were jumper configurable. You have to
644	configure the driver use I/O, IRQ and DMA settings
645	that match the jumpers. Just few 8 bit cards are fully jumper 
646	configurable (SB 1.x/2.x, SB Pro and clones).
647	Some cards made by Aztech have an EEPROM which contains the 
648	config info. These cards behave much like hardware jumpered cards.
649	
650	Most cards have jumper for the base I/O address but other parameters
651	are software configurable. Sometimes there are few other jumpers too.
652	
653	Latest cards are fully software configurable or they are PnP ISA
654	compatible. There are no jumpers on the board.
655	
656	The driver handles software configurable cards automatically. Just configure
657	the driver to use I/O, IRQ and DMA settings which are known to work.
658	You could usually use the same values than with DOS and/or Windows.
659	Using different settings is possible but not recommended since it may cause
660	some trouble (for example when warm booting from an OS to another or
661	when installing new hardware to the machine).
662	
663	Sound driver sets the soft configurable parameters of the card automatically
664	during boot. Usually you don't need to run any extra initialization
665	programs when booting Linux but there are some exceptions. See the
666	card-specific instructions below for more info.
667	
668	The drawback of software configuration is that the driver needs to know
669	how the card must be initialized. It cannot initialize unknown cards
670	even if they are otherwise compatible with some other cards (like SB,
671	MPU401 or Windows Sound System).
672	
673	
674	What if your card was not listed above?
675	=======================================
676	
677	The first thing to do is to look at the major IC chips on the card.
678	Many of the latest sound cards are based on some standard chips. If you
679	are lucky, all of them could be supported by the driver. The most common ones
680	are the OPTi MAD16, Mozart, SoundScape (Ensoniq) and the PSS architectures
681	listed above. Also look at the end of this file for list of unsupported
682	cards and the ones which could be supported later.
683	
684	The last resort is to send _exact_ name and model information of the card
685	to me together with a list of the major IC chips (manufactured, model) to 
686	me. I could then try to check if your card looks like something familiar.
687	
688	There are many more cards in the world than listed above. The first thing to
689	do with these cards is to check if they emulate some other card or interface
690	such as SB, MSS and/or MPU401. In this case there is a chance to get the
691	card to work by booting DOS before starting Linux (boot DOS, hit ctrl-alt-del
692	and boot Linux without hard resetting the machine). In this method the
693	DOS based driver initializes the hardware to use known I/O, IRQ and DMA
694	settings. If sound driver is configured to use the same settings, everything
695	should work OK.
696	
697	
698	Configuring sound driver (with Linux)
699	=====================================
700	
701	The sound driver is currently distributed as part of the Linux kernel. The 
702	files are in /usr/src/linux/drivers/sound/. 
703	
704	****************************************************************************
705	*	ALWAYS USE THE SOUND DRIVER VERSION WHICH IS DISTRIBUTED WITH	   *
706	*	THE KERNEL SOURCE PACKAGE YOU ARE USING. SOME ALPHA AND BETA TEST  *
707	*	VERSIONS CAN BE INSTALLED FROM A SEPARATELY DISTRIBUTED PACKAGE	   *
708	*	BUT CHECK THAT THE PACKAGE IS NOT MUCH OLDER (OR NEWER) THAN THE   *
709	*	KERNEL YOU ARE USING. IT'S POSSIBLE THAT THE KERNEL/DRIVER 	   *
710	*	INTERFACE CHANGES BETWEEN KERNEL RELEASES WHICH MAY CAUSE SOME	   *
711	*	INCOMPATIBILITY PROBLEMS.					   *
712	*									   *
713	*	IN CASE YOU INSTALL A SEPARATELY DISTRIBUTED SOUND DRIVER VERSION, *
714	*	BE SURE TO REMOVE OR RENAME THE OLD SOUND DRIVER DIRECTORY BEFORE  *
715	*	INSTALLING THE NEW ONE. LEAVING OLD FILES TO THE SOUND DRIVER	   *
716	*	DIRECTORY _WILL_ CAUSE PROBLEMS WHEN THE DRIVER IS USED OR	   *
717	*	COMPILED.							   *
718	****************************************************************************
719	
720	To configure the driver, run "make config" in the kernel source directory
721	(/usr/src/linux). Answer "y" or "m" to the question about Sound card support
722	(after the questions about mouse, CD-ROM, ftape, etc. support).  Questions
723	about options for sound will then be asked.
724	
725	After configuring the kernel and sound driver and compile the kernel 
726	following instructions in the kernel README.
727	
728	The sound driver configuration dialog
729	-------------------------------------
730	
731	Sound configuration starts by making some yes/no questions. Be careful
732	when answering to these questions since answering y to a question may
733	prevent some later ones from being asked. For example don't answer y to
734	the first question (PAS16) if you don't really have a PAS16. Don't enable
735	more cards than you really need since they just consume memory. Also
736	some drivers (like MPU401) may conflict with your SCSI controller and
737	prevent kernel from booting. If you card was in the list of supported
738	cards (above), please look at the card specific config instructions
739	(later in this file) before starting to configure. Some cards must be
740	configured in way which is not obvious.
741	
742	So here is the beginning of the config dialog. Answer 'y' or 'n' to these
743	questions. The default answer is shown so that (y/n) means 'y' by default and
744	(n/y) means 'n'. To use the default value, just hit ENTER. But be careful
745	since using the default _doesn't_ guarantee anything.
746	
747	Note also that all questions may not be asked. The configuration program
748	may disable some questions depending on the earlier choices. It may also
749	select some options automatically as well.
750	
751	  "ProAudioSpectrum 16 support",
752		- Answer 'y'_ONLY_ if you have a Pro Audio Spectrum _16_,
753		  Pro Audio Studio 16 or Logitech SoundMan 16 (be sure that
754		  you read the above list correctly). Don't answer 'y' if you
755		  have some other card made by Media Vision or Logitech since they
756		  are not PAS16 compatible.
757		  NOTE! Since 3.5-beta10 you need to enable SB support (next question)
758		  if you want to use the SB emulation of PAS16. It's also possible to
759	   	  the emulation if you want to use a true SB card together with PAS16
760		  (there is another question about this that is asked later).
761	  "Sound Blaster support",
762		- Answer 'y' if you have an original SB card made by Creative Labs
763		  or a full 100% hardware compatible clone (like Thunderboard or
764		  SM Games). If your card was in the list of supported cards (above),
765		  please look at the card specific instructions later in this file
766		  before answering this question. For an unknown card you may answer 
767		  'y' if the card claims to be SB compatible.
768		 Enable this option also with PAS16 (changed since v3.5-beta9).
769	
770		 Don't enable SB if you have a MAD16 or Mozart compatible card.
771	
772	  "Generic OPL2/OPL3 FM synthesizer support",
773		- Answer 'y' if your card has a FM chip made by Yamaha (OPL2/OPL3/OPL4).
774		  Answering 'y' is usually a safe and recommended choice. However some
775		  cards may have software (TSR) FM emulation. Enabling FM support
776		  with these cards may cause trouble. However I don't currently know
777		  such cards.
778	  "Gravis Ultrasound support",
779		- Answer 'y' if you have GUS or GUS MAX. Answer 'n' if you don't
780		  have GUS since the GUS driver consumes much memory.
781		  Currently I don't have experiences with the GUS ACE so I don't
782		  know what to answer with it.
783	  "MPU-401 support (NOT for SB16)",
784		- Be careful with this question. The MPU401 interface is supported
785		  by almost any sound card today. However some natively supported cards
786		  have their own driver for MPU401. Enabling the MPU401 option with
787		  these cards will cause a conflict. Also enabling MPU401 on a system
788		  that doesn't really have a MPU401 could cause some trouble. If your
789		  card was in the list of supported cards (above), please look at
790		  the card specific instructions later in this file.
791	
792		  In MOST cases this MPU401 driver should only be used with "true"
793		  MIDI-only MPU401 professional cards. In most other cases there
794		  is another way to get the MPU401 compatible interface of a
795		  sound card to work.
796		  Support for the MPU401 compatible MIDI port of SB16, ESS1688
797		  and MV Jazz16 cards is included in the SB driver. Use it instead
798		  of this separate MPU401 driver with these cards. As well 
799		  Soundscape, PSS and Maui drivers include their own MPU401
800		  options.
801	
802		  It's safe to answer 'y' if you have a true MPU401 MIDI interface
803		  card. 
804	  "6850 UART Midi support",
805		- It's safe to answer 'n' to this question in all cases. The 6850
806		  UART interface is so rarely used.
807	  "PSS (ECHO-ADI2111) support",
808		- Answer 'y' only if you have Orchid SW32, Cardinal DSP16 or some
809		  other card based on the PSS chipset (AD1848 codec + ADSP-2115
810		  DSP chip + Echo ESC614 ASIC CHIP).
811	  "16 bit sampling option of GUS (_NOT_ GUS MAX)",
812		- Answer 'y' if you have installed the 16 bit sampling daughtercard
813		  to your GUS. Answer 'n' if you have GUS MAX. Enabling this option
814		  disables GUS MAX support.
815	  "GUS MAX support",
816		- Answer 'y' only if you have a GUS MAX.
817	  "Microsoft Sound System support",
818		- Again think carefully before answering 'y' to this question. It's
819		  safe to answer 'y' in case you have the original Windows Sound 
820		  System card made by Microsoft or Aztech SG 16 Pro (or NX16 Pro).
821		  Also you may answer 'y' in case your card was not listed earlier
822		  in this file. For cards having native support in the driver, consult
823		  the card specific instructions later in this file. Some drivers
824		  have their own MSS support and enabling this option will cause a
825		  conflict. 
826		  Note! The MSS driver permits configuring two DMA channels. This is a
827		  "nonstandard" feature and works only with very few cards (if any).
828		  In most cases the second DMA channel should be disabled or set to
829		  the same channel than the first one. Trying to configure two separate
830		  channels with cards that don't support this feature will prevent
831		  audio (at least recording) from working.
832	  "Ensoniq Soundscape support",
833		- Answer 'y' if you have a sound card based on the Ensoniq SoundScape
834		  chipset. Such cards are being manufactured at least by Ensoniq,
835		  Spea and Reveal (note that Reveal makes other cards also).  The oldest
836		  cards made by Spea don't work properly with Linux. 
837		  Soundscape PnP as well as Ensoniq VIVO work only with the commercial
838		  OSS/Linux version.
839	  "MediaTrix AudioTrix Pro support",
840		- Answer 'y' if you have the AudioTrix Pro.
841	  "Support for MAD16 and/or Mozart based cards",
842		- Answer y if your card has a Mozart (OAK OTI-601) or MAD16
843		  (OPTi 82C928, 82C929, 82C924/82C925 or 82C930) audio interface chip. 
844		  These chips are
845		  currently quite common so it's possible that many no-name cards
846		  have one of them. In addition the MAD16 chip is used in some
847		  cards made by known manufacturers such as Turtle Beach (Tropez),
848		  Reveal (some models) and Diamond (some recent models).
849		  Note OPTi 82C924 and 82C925 are MAD16 compatible only in non PnP
850		  mode (jumper selectable on many cards).
851	  "Support for TB Maui"
852		- This enables TB Maui specific initialization. Works with TB Maui
853		and TB Tropez (may not work with Tropez Plus).
854	
855	
856	Then the configuration program asks some y/n questions about the higher
857	level services. It's recommended to answer 'y' to each of these questions.
858	Answer 'n' only if you know you will not need the option.
859	
860	  "MIDI interface support",
861		- Answering 'n' disables /dev/midi## devices and access to any
862		  MIDI ports using /dev/sequencer and /dev/music. This option
863		  also affects any MPU401 and/or General MIDI compatible devices.
864	  "FM synthesizer (YM3812/OPL-3) support",
865		- Answer 'y' here.
866	  "/dev/sequencer support",
867		- Answering 'n' disables /dev/sequencer and /dev/music.
868	
869	Entering the I/O, IRQ and DMA config parameters
870	-----------------------------------------------
871	
872	After the above questions the configuration program prompts for the
873	card specific configuration information. Usually just a set of
874	I/O address, IRQ and DMA numbers are asked. With some cards the program
875	asks for some files to be used during initialization of the card. For example
876	many cards have a DSP chip or microprocessor which must be initialized by
877	downloading a program (microcode) file to the card.
878	
879	Instructions for answering these questions are given in the next section.
880	
881	
882	Card specific information
883	=========================
884	
885	This section gives additional instructions about configuring some cards.
886	Please refer manual of your card for valid I/O, IRQ and DMA numbers. Using
887	the same settings with DOS/Windows and Linux is recommended. Using
888	different values could cause some problems when switching between
889	different operating systems.
890	
891	Sound Blasters (the original ones by Creative)
892	---------------------------------------------
893	
894	NOTE! Check if you have a PnP Sound Blaster (cards sold after summer 1995
895	      are almost certainly PnP ones). With PnP cards you should use isapnptools
896	      to activate them (see above).
897	
898	It's possible to configure these cards to use different I/O, IRQ and
899	DMA settings. Since the possible/default settings have changed between various
900	models, you have to consult manual of your card for the proper ones. It's
901	a good idea to use the same values than with DOS/Windows. With SB and SB Pro
902	it's the only choice. SB16 has software selectable IRQ and DMA channels but
903	using different values with DOS and Linux is likely to cause troubles. The
904	DOS driver is not able to reset the card properly after warm boot from Linux
905	if Linux has used different IRQ or DMA values.
906	
907	The original (steam) Sound Blaster (versions 1.x and 2.x) use always
908	DMA1. There is no way to change it.
909	
910	The SB16 needs two DMA channels. A 8 bit one (1 or 3) is required for
911	8 bit operation and a 16 bit one (5, 6 or 7) for the 16 bit mode. In theory
912	it's possible to use just one (8 bit) DMA channel by answering the 8 bit
913	one when the configuration program asks for the 16 bit one. This may work
914	in some systems but is likely to cause terrible noise on some other systems.
915	
916	It's possible to use two SB16/32/64 at the same time. To do this you should
917	first configure OSS/Free for one card. Then edit local.h manually and define
918	SB2_BASE, SB2_IRQ, SB2_DMA and SB2_DMA2 for the second one. You can't get
919	the OPL3, MIDI and EMU8000 devices of the second card to work. If you are
920	going to use two PnP Sound Blasters, ensure that they are of different model
921	and have different PnP IDs. There is no way to get two cards with the same
922	card ID and serial number to work. The easiest way to check this is trying 
923	if isapnptools can see both cards or just one.
924	
925	NOTE!	Don't enable the SM Games option (asked by the configuration program)
926		if you are not 101% sure that your card is a Logitech Soundman Games
927		(not a SM Wave or SM16).
928	
929	SB Clones
930	---------
931	
932	First of all: There are no SB16 clones. There are SB Pro clones with a
933	16 bit mode which is not SB16 compatible. The most likely alternative is that
934	the 16 bit mode means MSS/WSS.
935	
936	There are just a few fully 100% hardware SB or SB Pro compatible cards.
937	I know just Thunderboard and SM Games. Other cards require some kind of
938	hardware initialization before they become SB compatible. Check if your card
939	was listed in the beginning of this file. In this case you should follow
940	instructions for your card later in this file.
941	
942	For other not fully SB clones you may try initialization using DOS in
943	the following way:
944	
945		- Boot DOS so that the card specific driver gets run.
946		- Hit ctrl-alt-del (or use loadlin) to boot Linux. Don't
947		  switch off power or press the reset button.
948		- If you use the same I/O, IRQ and DMA settings in Linux, the
949		  card should work.
950	
951	If your card is both SB and MSS compatible, I recommend using the MSS mode.
952	Most cards of this kind are not able to work in the SB and the MSS mode 
953	simultaneously. Using the MSS mode provides 16 bit recording and playback.
954	
955	ProAudioSpectrum 16 and compatibles
956	-----------------------------------
957	
958	PAS16 has a SB emulation chip which can be used together with the native
959	(16 bit) mode of the card. To enable this emulation you should configure 
960	the driver to have SB support too (this has been changed since version
961	3.5-beta9 of this driver).
962	
963	With current driver versions it's also possible to use PAS16 together with 
964	another SB compatible card. In this case you should configure SB support
965	for the other card and to disable the SB emulation of PAS16 (there is a
966	separate questions about this).
967	
968	With PAS16 you can use two audio device files at the same time. /dev/dsp (and
969	/dev/audio) is connected to the 8/16 bit native codec and the /dev/dsp1 (and
970	/dev/audio1) is connected to the SB emulation (8 bit mono only).
971	
972	Gravis Ultrasound
973	-----------------
974	
975	There are many different revisions of the Ultrasound card (GUS). The
976	earliest ones (pre 3.7) don't have a hardware mixer. With these cards
977	the driver uses a software emulation for synth and pcm playbacks. It's
978	also possible to switch some of the inputs (line in, mic) off by setting
979	mixer volume of the channel level below 10%. For recording you have
980	to select the channel as a recording source and to use volume above 10%.
981	
982	GUS 3.7 has a hardware mixer.
983	
984	GUS MAX and the 16 bit sampling daughtercard have a CS4231 codec chip which 
985	also contains a mixer.
986	
987	Configuring GUS is simple. Just enable the GUS support and GUS MAX or
988	the 16 bit daughtercard if you have them. Note that enabling the daughter
989	card disables GUS MAX driver.
990	
991	NOTE for owners of the 16 bit daughtercard: By default the daughtercard
992	uses /dev/dsp (and /dev/audio). Command "ln -sf /dev/dsp1 /dev/dsp"
993	selects the daughter card as the default device.
994	
995	With just the standard GUS enabled the configuration program prompts
996	for the I/O, IRQ and DMA numbers for the card. Use the same values than
997	with DOS.
998	
999	With the daughter card option enabled you will be prompted for the I/O,
1000	IRQ and DMA numbers for the daughter card. You have to use different I/O
1001	and DMA values than for the standard GUS. The daughter card permits
1002	simultaneous recording and playback. Use /dev/dsp (the daughtercard) for
1003	recording and /dev/dsp1 (GUS GF1) for playback.
1004	
1005	GUS MAX uses the same I/O address and IRQ settings than the original GUS
1006	(GUS MAX = GUS + a CS4231 codec). In addition an extra DMA channel may be used.
1007	Using two DMA channels permits simultaneous playback using two devices
1008	(dev/dsp0 and /dev/dsp1). The second DMA channel is required for
1009	full duplex audio.
1010	To enable the second DMA channels, give a valid DMA channel when the config
1011	program asks for the GUS MAX DMA (entering -1 disables the second DMA).
1012	Using 16 bit DMA channels (5,6 or 7) is recommended.
1013	
1014	If you have problems in recording with GUS MAX, you could try to use
1015	just one 8 bit DMA channel. Recording will not work with one DMA
1016	channel if it's a 16 bit one.
1017	
1018	Microphone input of GUS MAX is connected to mixer in little bit nonstandard
1019	way. There is actually two microphone volume controls. Normal "mic" controls
1020	only recording level. Mixer control "speaker" is used to control volume of
1021	microphone signal connected directly to line/speaker out. So just decrease
1022	volume of "speaker" if you have problems with microphone feedback.
1023	
1024	GUS ACE works too but any attempt to record or to use the MIDI port
1025	will fail.
1026	
1027	GUS PnP (with RAM) is partially supported but it needs to be initialized using
1028	DOS or isapnptools before starting the driver.
1029	
1030	MPU401 and Windows Sound System
1031	-------------------------------
1032	
1033	Again. Don't enable these options in case your card is listed
1034	somewhere else in this file.
1035	
1036	Configuring these cards is obvious (or it should be). With MSS
1037	you should probably enable the OPL3 synth also since
1038	most MSS compatible cards have it. However check that this is true
1039	before enabling OPL3.
1040	
1041	Sound driver supports more than one MPU401 compatible cards at the same time
1042	but the config program asks config info for just the first of them.
1043	Adding the second or third MPU interfaces must be done manually by
1044	editing sound/local.h (after running the config program). Add defines for
1045	MPU2_BASE & MPU2_IRQ (and MPU3_BASE & MPU3_IRQ) to the file.
1046	
1047	CAUTION!
1048	
1049	The default I/O base of Adaptec AHA-1542 SCSI controller is 0x330 which
1050	is also the default of the MPU401 driver. Don't configure the sound driver to
1051	use 0x330 as the MPU401 base if you have a AHA1542. The kernel will not boot
1052	if you make this mistake.
1053	
1054	PSS
1055	---
1056	
1057	Even the PSS cards are compatible with SB, MSS and MPU401, you must not
1058	enable these options when configuring the driver. The configuration
1059	program handles these options itself. (You may use the SB, MPU and MSS options
1060	together with PSS if you have another card on the system).
1061	
1062	The PSS driver enables MSS and MPU401 modes of the card. SB is not enabled 
1063	since it doesn't work concurrently with MSS. The driver loads also a
1064	DSP algorithm which is used to for the general MIDI emulation. The
1065	algorithm file (.ld) is read by the config program and written to a
1066	file included when the pss.c is compiled. For this reason the config
1067	program asks if you want to download the file. Use the genmidi.ld file
1068	distributed with the DOS/Windows drivers of the card (don't use the mt32.ld).
1069	With some cards the file is called 'synth.ld'. You must have access to
1070	the file when configuring the driver. The easiest way is to mount the DOS
1071	partition containing the file with Linux. 
1072	
1073	It's possible to load your own DSP algorithms and run them with the card.
1074	Look at the directory pss_test of snd-util-3.0.tar.gz for more info.
1075	
1076	AudioTrix Pro
1077	-------------
1078	
1079	You have to enable the OPL3 and SB (not SB Pro or SB16) drivers in addition
1080	to the native AudioTrix driver. Don't enable MSS or MPU drivers.
1081	
1082	Configuring ATP is little bit tricky since it uses so many I/O, IRQ and
1083	DMA numbers. Using the same values than with DOS/Win is a good idea. Don't
1084	attempt to use the same IRQ or DMA channels twice.
1085	
1086	The SB mode of ATP is implemented so the ATP driver just enables SB
1087	in the proper address. The SB driver handles the rest. You have to configure
1088	both the SB driver and the SB mode of ATP to use the same IRQ, DMA and I/O
1089	settings.
1090	
1091	Also the ATP has a microcontroller for the General MIDI emulation (OPL4).
1092	For this reason the driver asks for the name of a file containing the
1093	microcode (TRXPRO.HEX). This file is usually located in the directory
1094	where the DOS drivers were installed. You must have access to this file
1095	when configuring the driver. 
1096	
1097	If you have the effects daughtercard, it must be initialized by running
1098	the setfx program of snd-util-3.0.tar.gz package. This step is not required
1099	when using the (future) binary distribution version of the driver.
1100	
1101	Ensoniq SoundScape
1102	------------------
1103	
1104	NOTE!	The new PnP SoundScape is not supported yet. Soundscape compatible
1105		cards made by Reveal don't work with Linux. They use older revision
1106		of the Soundscape chipset which is not fully compatible with
1107		newer cards made by Ensoniq.
1108	
1109	The SoundScape driver handles initialization of MSS and MPU supports
1110	itself so you don't need to enable other drivers than SoundScape
1111	(enable also the /dev/dsp, /dev/sequencer and MIDI supports).
1112	
1113	!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1114	!!!!!                                                                   !!!!
1115	!!!!! NOTE! Before version 3.5-beta6 there WERE two sets of audio 	!!!!
1116	!!!!!       device files (/dev/dsp0 and /dev/dsp1). The first one WAS   !!!!
1117	!!!!!	    used only for card initialization and the second for audio  !!!!
1118	!!!!!	    purposes. It WAS required to change /dev/dsp (a symlink) to !!!!
1119	!!!!!	    point to /dev/dsp1.						!!!!
1120	!!!!!                                                                   !!!!
1121	!!!!!	    This is not required with OSS versions 3.5-beta6 and later	!!!!
1122	!!!!!	    since there is now just one audio device file. Please 	!!!!
1123	!!!!!	    change /dev/dsp to point back to /dev/dsp0 if you are	!!!!
1124	!!!!!	    upgrading from an earlier driver version using		!!!!
1125	!!!!!	    (cd /dev;rm dsp;ln -s dsp0 dsp).				!!!!
1126	!!!!!                                                                   !!!!
1127	!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1128	
1129	The configuration program asks one DMA channel and two interrupts. One IRQ
1130	and one DMA is used by the MSS codec. The second IRQ is required for the
1131	MPU401 mode (you have to use different IRQs for both purposes).
1132	There were earlier two DMA channels for SoundScape but the current driver
1133	version requires just one.
1134	
1135	The SoundScape card has a Motorola microcontroller which must initialized
1136	_after_ boot (the driver doesn't initialize it during boot).
1137	The initialization is done by running the 'ssinit' program which is
1138	distributed in the snd-util-3.0.tar.gz package. You have to edit two
1139	defines in the ssinit.c and then compile the program. You may run ssinit 
1140	manually (after each boot) or add it to /etc/rc.d/rc.local.
1141	
1142	The ssinit program needs the microcode file that comes with the DOS/Windows
1143	driver of the card. You will need to use version 1.30.00 or later
1144	of the microcode file (sndscape.co0 or sndscape.co1 depending on
1145	your card model). THE OLD sndscape.cod WILL NOT WORK. IT WILL HANG YOUR
1146	MACHINE. The only way to get the new microcode file is to download
1147	and install the DOS/Windows driver from ftp://ftp.ensoniq.com/pub.
1148	
1149	Then you have to select the proper microcode file to use: soundscape.co0
1150	is the right one for most cards and sndscape.co1 is for few (older) cards
1151	made by Reveal and/or Spea. The driver has capability to detect the card
1152	version during boot. Look at the boot log messages in /var/adm/messages
1153	and locate the sound driver initialization message for the SoundScape
1154	card. If the driver displays string <Ensoniq Soundscape (old)>, you have
1155	an old card and you will need to use sndscape.co1. For other cards use
1156	soundscape.co0. New Soundscape revisions such as Elite and PnP use
1157	code files with higher numbers (.co2, .co3, etc.).
1158	
1159	NOTE!	Ensoniq Soundscape VIVO is not compatible with other Soundscape cards.
1160		Currently it's possible to use it in Linux only with OSS/Linux
1161		drivers.
1162	
1163	Check /var/adm/messages after running ssinit. The driver prints
1164	the board version after downloading the microcode file. That version
1165	number must match the number in the name of the microcode file (extension).
1166	
1167	Running ssinit with a wrong version of the sndscape.co? file is not
1168	dangerous as long as you don't try to use a file called sndscape.cod.
1169	If you have initialized the card using a wrong microcode file (sounds
1170	are terrible), just modify ssinit.c to use another microcode file and try
1171	again. It's possible to use an earlier version of sndscape.co[01] but it
1172	may sound weird.
1173	
1174	MAD16 (Pro) and Mozart
1175	----------------------
1176	
1177	You need to enable just the MAD16 /Mozart support when configuring
1178	the driver. _Don't_ enable SB, MPU401 or MSS. However you will need the
1179	/dev/audio, /dev/sequencer and MIDI supports.
1180	
1181	Mozart and OPTi 82C928 (the original MAD16) chips don't support
1182	MPU401 mode so enter just 0 when the configuration program asks the
1183	MPU/MIDI I/O base. The MAD16 Pro (OPTi 82C929) and 82C930 chips have MPU401
1184	mode.
1185	
1186	TB Tropez is based on the 82C929 chip. It has two MIDI ports.
1187	The one connected to the MAD16 chip is the second one (there is a second
1188	MIDI connector/pins somewhere??). If you have not connected the second MIDI
1189	port, just disable the MIDI port of MAD16. The 'Maui' compatible synth of
1190	Tropez is jumper configurable and not connected to the MAD16 chip (the
1191	Maui driver can be used with it).
1192	
1193	Some MAD16 based cards may cause feedback, whistle or terrible noise if the
1194	line3 mixer channel is turned too high. This happens at least with Shuttle
1195	Sound System. Current driver versions set volume of line3 low enough so
1196	this should not be a problem.
1197	
1198	If you have a MAD16 card which have an OPL4 (FM + Wave table) synthesizer
1199	chip (_not_ an OPL3), you have to append a line containing #define MAD16_OPL4
1200	to the file linux/drivers/sound/local.h (after running make config).
1201	
1202	MAD16 cards having a CS4231 codec support full duplex mode. This mode
1203	can be enabled by configuring the card to use two DMA channels. Possible
1204	DMA channel pairs are: 0&1, 1&0 and 3&0.
1205	
1206	NOTE! Cards having an OPTi 82C924/82C925 chip work with OSS/Free only in
1207	non-PnP mode (usually jumper selectable). The PnP mode is supported only
1208	by OSS/Linux.
1209	
1210	MV Jazz (ProSonic)
1211	------------------
1212	
1213	The Jazz16 driver is just a hack made to the SB Pro driver. However it works
1214	fairly well. You have to enable SB, SB Pro (_not_ SB16) and MPU401 supports
1215	when configuring the driver. The configuration program asks later if you
1216	want support for MV Jazz16 based cards (after asking SB base address). Answer
1217	'y' here and the driver asks the second (16 bit) DMA channel.
1218	
1219	The Jazz16 driver uses the MPU401 driver in a way which will cause
1220	problems if you have another MPU401 compatible card. In this case you must
1221	give address of the Jazz16 based MPU401 interface when the config
1222	program prompts for the MPU401 information. Then look at the MPU401
1223	specific section for instructions about configuring more than one MPU401 cards.
1224	
1225	Logitech Soundman Wave
1226	----------------------
1227	
1228	Read the above MV Jazz specific instructions first.
1229	
1230	The Logitech SoundMan Wave (don't confuse this with the SM16 or SM Games) is
1231	a MV Jazz based card which has an additional OPL4 based wave table
1232	synthesizer. The OPL4 chip is handled by an on board microcontroller
1233	which must be initialized during boot. The config program asks if
1234	you have a SM Wave immediately after asking the second DMA channel of jazz16.
1235	If you answer 'y', the config program will ask name of the file containing
1236	code to be loaded to the microcontroller. The file is usually called
1237	MIDI0001.BIN and it's located in the DOS/Windows driver directory. The file
1238	may also be called as TSUNAMI.BIN or something else (older cards?).
1239	
1240	The OPL4 synth will be inaccessible without loading the microcontroller code.
1241	
1242	Also remember to enable SB MPU401 support if you want to use the OPL4 mode.
1243	(Don't enable the 'normal' MPU401 device as with some earlier driver
1244	versions (pre 3.5-alpha8)).
1245	
1246	NOTE!	Don't answer 'y' when the driver asks about SM Games support
1247		(the next question after the MIDI0001.BIN name). However
1248		answering 'y' doesn't cause damage your computer so don't panic. 
1249	
1250	Sound Galaxies
1251	--------------
1252	
1253	There are many different Sound Galaxy cards made by Aztech. The 8 bit
1254	ones are fully SB or SB Pro compatible and there should be no problems
1255	with them. 
1256	
1257	The older 16 bit cards (SG Pro16, SG NX Pro16, Nova and Lyra) have
1258	an EEPROM chip for storing the configuration data. There is a microcontroller
1259	which initializes the card to match the EEPROM settings when the machine
1260	is powered on. These cards actually behave just like they have jumpers
1261	for all of the settings. Configure driver for MSS, MPU, SB/SB Pro  and OPL3 
1262	supports with these cards. 
1263	
1264	There are some new Sound Galaxies in the market. I have no experience with
1265	them so read the card's manual carefully.
1266	
1267	ESS ES1688 and ES688 'AudioDrive' based cards
1268	---------------------------------------------
1269	
1270	Support for these two ESS chips is embedded in the SB driver.
1271	Configure these cards just like SB. Enable the 'SB MPU401 MIDI port'
1272	if you want to use MIDI features of ES1688. ES688 doesn't have MPU mode
1273	so you don't need to enable it (the driver uses normal SB MIDI automatically
1274	with ES688).
1275	
1276	NOTE! ESS cards are not compatible with MSS/WSS so don't worry if MSS support
1277	of OSS doesn't work with it.
1278	
1279	There are some ES1688/688 based sound cards and (particularly) motherboards
1280	which use software configurable I/O port relocation feature of the chip.
1281	This ESS proprietary feature is supported only by OSS/Linux.
1282	
1283	There are ES1688 based cards which use different interrupt pin assignment than
1284	recommended by ESS (5, 7, 9/2 and 10). In this case all IRQs don't work.
1285	At least a card called (Pearl?) Hypersound 16 supports IRQ 15 but it doesn't
1286	work.
1287	
1288	ES1868 is a PnP chip which is (supposed to be) compatible with ESS1688
1289	probably works with OSS/Free after initialization using isapnptools.
1290	
1291	Reveal cards
1292	------------
1293	
1294	There are several different cards made/marketed by Reveal. Some of them
1295	are compatible with SoundScape and some use the MAD16 chip. You may have
1296	to look at the card and try to identify its origin.
1297	
1298	Diamond
1299	-------
1300	
1301	The oldest (Sierra Aria based) sound cards made by Diamond are not supported
1302	(they may work if the card is initialized using DOS). The recent (LX?)
1303	models are based on the MAD16 chip which is supported by the driver.
1304	
1305	Audio Excel DSP16
1306	-----------------
1307	
1308	Support for this card is currently not functional. A new driver for it
1309	should be available later this year.
1310	
1311	PCMCIA cards
1312	------------
1313	
1314	Sorry, can't help. Some cards may work and some don't.
1315	
1316	TI TM4000M notebooks
1317	--------------------
1318	
1319	These computers have a built in sound support based on the Jazz chipset.
1320	Look at the instructions for MV Jazz (above). It's also important to note
1321	that there is something wrong with the mouse port and sound at least on
1322	some TM models. Don't enable the "C&T 82C710 mouse port support" when
1323	configuring Linux. Having it enabled is likely to cause mysterious problems
1324	and kernel failures when sound is used.
1325	
1326	miroSOUND
1327	---------
1328	
1329	The miroSOUND PCM1-pro, PCM12 and PCM20 radio has been used
1330	successfully. These cards are based on the MAD16, OPL4, and CS4231A chips
1331	and everything said in the section about MAD16 cards applies here,
1332	too. The only major difference between the PCMxx and other MAD16 cards
1333	is that instead of the mixer in the CS4231 codec a separate mixer
1334	controlled by an on-board 80C32 microcontroller is used. Control of
1335	the mixer takes place via the ACI (miro's audio control interface)
1336	protocol that is implemented in a separate lowlevel driver. Make sure
1337	you compile this ACI driver together with the normal MAD16 support
1338	when you use a miroSOUND PCMxx card. The ACI mixer is controlled by
1339	/dev/mixer and the CS4231 mixer by /dev/mixer1 (depends on load
1340	time). Only in special cases you want to change something regularly on
1341	the CS4231 mixer.
1342	
1343	The miroSOUND PCM12 and PCM20 radio is capable of full duplex
1344	operation (simultaneous PCM replay and recording), which allows you to
1345	implement nice real-time signal processing audio effect software and
1346	network telephones. The ACI mixer has to be switched into the "solo"
1347	mode for duplex operation in order to avoid feedback caused by the
1348	mixer (input hears output signal). You can de-/activate this mode
1349	through toggling the record button for the wave controller with an
1350	OSS-mixer.
1351	
1352	The PCM20 contains a radio tuner, which is also controlled by
1353	ACI. This radio tuner is supported by the ACI driver together with the
1354	miropcm20.o module. Also the 7-band equalizer is integrated
1355	(limited by the OSS-design). Development has started and maybe
1356	finished for the RDS decoder on this card, too. You will be able to
1357	read RadioText, the Programme Service name, Programme TYpe and
1358	others. Even the v4l radio module benefits from it with a refined
1359	strength value. See aci.[ch] and miropcm20*.[ch] for more details.
1360	
1361	The following configuration parameters have worked fine for the PCM12
1362	in Markus Kuhn's system, many other configurations might work, too:
1363	CONFIG_MAD16_BASE=0x530, CONFIG_MAD16_IRQ=11, CONFIG_MAD16_DMA=3, 
1364	CONFIG_MAD16_DMA2=0, CONFIG_MAD16_MPU_BASE=0x330, CONFIG_MAD16_MPU_IRQ=10,
1365	DSP_BUFFSIZE=65536, SELECTED_SOUND_OPTIONS=0x00281000.
1366	
1367	Bas van der Linden is using his PCM1-pro with a configuration that
1368	differs in: CONFIG_MAD16_IRQ=7, CONFIG_MAD16_DMA=1, CONFIG_MAD16_MPU_IRQ=9
1369	
1370	Compaq Deskpro XL
1371	-----------------
1372	
1373	The builtin sound hardware of Compaq Deskpro XL is now supported. 
1374	You need to configure the driver with MSS and OPL3 supports enabled.
1375	In addition you need to manually edit linux/drivers/sound/local.h and
1376	to add a line containing "#define DESKPROXL" if you used 
1377	make menuconfig/xconfig.
1378	
1379	Others?
1380	-------
1381	
1382	Since there are so many different sound cards, it's likely that I have 
1383	forgotten to mention many of them. Please inform me if you know yet another
1384	card which works with Linux, please inform me (or is anybody else
1385	willing to maintain a database of supported cards (just like in XF86)?).
1386	
1387	Cards not supported yet
1388	=======================
1389	
1390	Please check the version of sound driver you are using before 
1391	complaining that your card is not supported. It's possible you are 
1392	using a driver version which was released months before your card was
1393	introduced.
1394	
1395	First of all, there is an easy way to make most sound cards work with Linux.
1396	Just use the DOS based driver to initialize the card to a known state, then use
1397	loadlin.exe to boot Linux. If Linux is configured to use the same I/O, IRQ and
1398	DMA numbers as DOS, the card could work.
1399	(ctrl-alt-del can be used in place of loadlin.exe but it doesn't work with
1400	new motherboards). This method works also with all/most PnP sound cards.
1401	
1402	Don't get fooled with SB compatibility. Most cards are compatible with
1403	SB but that may require a TSR which is not possible with Linux. If
1404	the card is compatible with MSS, it's a better choice. Some cards
1405	don't work in the SB and MSS modes at the same time.
1406	
1407	Then there are cards which are no longer manufactured and/or which
1408	are relatively rarely used (such as the 8 bit ProAudioSpectrum
1409	models). It's extremely unlikely that such cards ever get supported.
1410	Adding support for a new card requires much work and increases time
1411	required in maintaining the driver (some changes need to be done
1412	to all low level drivers and be tested too, maybe with multiple
1413	operating systems). For this reason I have made a decision to not support
1414	obsolete cards. It's possible that someone else makes a separately 
1415	distributed driver (diffs) for the card. 
1416	
1417	Writing a driver for a new card is not possible if there are no 
1418	programming information available about the card. If you don't
1419	find your new card from this file, look from the home page 
1420	(http://www.opensound.com/ossfree). Then please contact
1421	manufacturer of the card and ask if they have (or are willing to)
1422	released technical details of the card. Do this before contacting me. I
1423	can only answer 'no' if there are no programming information available.
1424	
1425	I have made decision to not accept code based on reverse engineering
1426	to the driver. There are three main reasons: First I don't want to break
1427	relationships to sound card manufacturers. The second reason is that
1428	maintaining and supporting a driver without any specs will be a pain.
1429	The third reason is that companies have freedom to refuse selling their
1430	products to other than Windows users.
1431	
1432	Some companies don't give low level technical information about their
1433	products to public or at least their require signing a NDA. It's not
1434	possible to implement a freeware driver for them. However it's possible
1435	that support for such cards become available in the commercial version
1436	of this driver (see http://www.4Front-tech.com/oss.html for more info).
1437	
1438	There are some common audio chipsets that are not supported yet. For example
1439	Sierra Aria and IBM Mwave. It's possible that these architectures
1440	get some support in future but I can't make any promises. Just look
1441	at the home page (http://www.opensound.com/ossfree/)
1442	for latest info.
1443	
1444	Information about unsupported sound cards and chipsets is welcome as well
1445	as free copies of sound cards, SDKs and operating systems.
1446	
1447	If you have any corrections and/or comments, please contact me.
1448	
1449	Hannu Savolainen
1450	hannu@opensound.com
1451	
1452	home page of OSS/Free: http://www.opensound.com/ossfree
1453	
1454	home page of commercial OSS
1455	(Open Sound System) drivers: http://www.opensound.com/oss.html
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog