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