Initial import from FreeBSD RELENG_4:
[dragonfly.git] / sys / platform / pc32 / isa / sound / Readme.cards
1 Configuring VoxWare 3.0 (for Linux) with some most common soundcards
2 ====================================================================
3
4 NOTE! This document may contain some error. Please inform me
5       if you find any mistakes.
6
7 Read this before trying to configure the driver
8 -----------------------------------------------
9
10 There are currently many cards that work with VoxWare. Some of the cards
11 have native support while the others work since they emulate some other
12 cards (usually SB, MSS/WSS and/or MPU401). The following cards have native
13 support in VoxWare. Detailed instructions for configuring these cards
14 will be given later in this document.
15
16 Pro Audio Spectrum 16 (PAS16) and compatibles:
17         Pro Audio Spectrum 16
18         Pro Audio Studio 16
19         Logitech Sound Man 16
20         NOTE! The original Pro Audio Spectrum as well as the PAS+ are not
21               and will not be supported by VoxWare.
22
23 Media Vision Jazz16 based cards
24         Pro Sonic 16
25         Logitech SoundMan Wave
26         (Other Jazz based cards should work but I don't have any reports
27         about them).
28
29 Sound Blasters
30         SB 1.0 to 2.0
31         SB Pro
32         SB 16
33         NOTE!   The ASP chip and the EMU synth of the AWE32 is not supported 
34                 since their manufacturer doesn't release information about
35                 the card. However both the AB16ASP and the AWE32 work with
36                 VoxWare just like a SB16. Also see the comment about some
37                 unsupported cards at the end of this file.
38         SB16 compatible cards by other manufacturers than Creative.
39                 You have been fooled since there are no SB16 compatible
40                 cards in the market (July95). It's likely that your card
41                 is compatible just with SB Pro but there is also a non SB
42                 compatible 16 bit mode. Usually it's MSS/WSS but could also
43                 be a proprietary one like MV Jazz16.
44
45 Gravis Ultrasound (GUS)
46         GUS
47         GUS + the 16 bit option
48         GUS MAX
49         GUS ACE (No MIDI port and audio recording)
50
51 MPU-401 and compatibles
52         The driver works both with the full (intelligent mode) MPU-401
53         cards (such as MPU IPC-T and MQX-32M) and with the UART only
54         dumb MIDI ports. MPU-401 is currently the most common MIDI
55         interface. Most soundcards are compatible with it. However
56         don't enable MPU401 mode blindly. Many cards having native support
57         in VoxWare have their own MPU401 driver. Enabling the standard one
58         will cause a conflict with these cards. So look if your card is
59         in the list of supported cards before enabling MPU401.
60
61 Windows Sound System (MSS/WSS)
62         Even Microsoft has discontinued their own Sound System card, they
63         managed to make a standard. MSS compatible cards are based on a 
64         codec chip which is easily available from at least two manufacturers
65         (AD1848 by Analog Devices and CS4231/CS4248 by Crystal Semiconductor).
66         Currently most soundcards are based on one of the MSS compatible codec
67         chip. The CS4231 is used in the high quality cards such as GUS MAX,
68         MediaTriX AudioTriX Pro and TB Tropez (GUS MAX is not MSS compatible). 
69
70         Having a AD1848, CS4248 or CS4231 codec chip on the card is a good
71         sign. Even if the card is not MSS compatible, it could be easy to write
72         support for it to VoxWare. Note also that most MSS compatible cards
73         require special boot time initialization which may not be present
74         in VoxWare. Also some MSS compatible cards have native support in
75         VoxWare. Enabling the MSS support with these cards is likely to
76         cause a conflict. So check if your card is listed in this file before
77         enabling the MSS support.
78
79 6850 UART MIDI
80         This UART chip is used in the MIDI interface of some (rare)
81         soundcards. It's supported by VoxWare in case you need it.
82
83 Yamaha FM synthesizers (OPL2, OPL3 and OPL4)
84         Most soundcards have a FM synthesizer chip. The OPL2 is a 2
85         operator chip used in the original AdLib card. Currently it's used
86         only in the cheapest (8 bit mono) cards. The OPL3 is a 4 operator 
87         FM chip which provides better sound quality and/or more available 
88         voices than the OPL2. The OPL4 is a new chip which has a OPL3 and
89         a wave table synthesizer packed on the same chip. VoxWare supports
90         just the OPL3 mode directly. Most cards having a OPL4 (like
91         SM Wave and AudioTriX Pro) support the OPL4 mode using MPU401
92         emulation. Writing a native OPL4 support to VoxWare is difficult
93         since Yamaha doesn't give information about their sample ROM chip.
94
95         Enable the generic OPL2/OPL3 FM synthesizer support if your
96         card has a FM chip made by Yamaha. Don't enable it if your card
97         has a software (TRS) based FM emulator.
98
99 PSS based cards (AD1848 + ADSP-2115 + Echo ESC614 ASIC)
100         Analog Devices and Echo Speech have together defined a soundcard
101         architecture based on the above chips. The DSP chip is used
102         for emulation of SB Pro, FM and General MIDI/MT32.
103
104         There are several cards based on this architecture. The most known
105         ones are Orchid SW32 and Cardinal DSP16. 
106
107         VoxWare supports downloading DSP algorithms to these cards.
108
109 MediaTriX AudioTriX Pro
110         The ATP card is built around a CS4231 codec and a OPL4 synthesizer
111         chips. The OPL4 mode is supported by a microcontroller running a
112         General MIDI emulator. There is also a SB 1.5 compatible playback mode.
113
114 Ensoniq SoundScape and compatibles
115         Ensoniq has designed a soundcard architecture based on the
116         OTTO synthesizer chip used in their professional MIDI synthesizers.
117         Several companies (including Ensoniq, Reveal and Spea) are selling
118         cards based on this architecture.
119
120 MAD16 and Mozart based cards
121         The Mozart (OAK OTI-601) and MAD16 Pro (OPTi 82C929) interface
122         chips are used in many different soundcards, including some
123         cards by Reveal and Turtle Beach (Tropez). Purpose of these
124         chips is to connect other audio components to the PC bus. The
125         interface chip performs address decoding for the other chips.
126
127 Audio Excell DSP16 
128         Support for this card is made by Riccardo Faccetti
129         (riccardo@cdc8g5.cdc.polimi.it). See aedsp16.c for more info.
130         
131 Crystal CS4232 based cards such as AcerMagic S23
132         CS4232 is a PnP multimedia chip which contains a CS3231A codec,
133         SB and MPU401 emulations. There is support for OPL3 too.
134         (Unfortunately the MPU401 mode doesn't work).
135
136 Turtle Beach Maui and Tropez
137         VoxWare supports sample, parch and program loading commands
138         described in the Maui/Tropez User's manual. There is no initialization
139         code for Maui so it must be initialized using DOS. Audio side of Tropez
140         is based on the MAD16 chip (see above).
141
142 Jumpers and software configuration
143 ----------------------------------
144
145 Some of the earliest soundcards were jumper configurable. You have to
146 configure VoxWare to configure VoxWare use I/O, IRQ and DMA settings
147 that match the jumpers. Just few 8 bit cards are fully jumper 
148 configurable (SB 1.x/2.x, SB Pro and clones).
149 Some cards made by Aztech have an EEPROM which contains the 
150 config info. These cards behave much like hardware jumpered cards.
151
152 Most cards have jumper for the base I/O address but other parameters
153 are software configurable. Sometimes there are few other jumpers too.
154
155 Latest cards are fully software configurable or they are PnP ISA
156 compatible. There are no jumpers on the board.
157
158 VoxWare handles software configurable cards automaticly. Just configure
159 the driver to use I/O, IRQ and DMA settings which are known to work.
160 You could usually use the same values than with DOS and/or Windows.
161 Using different settings is possible but not recommended since it may cause
162 some trouble (for example when warm booting from an OS to another or
163 when installing new hardware to the machine).
164
165 VoxWare sets the soft configurable parameters of the card automaticly
166 during boot. Usually you don't need to run any extra initialization
167 programs when booting Linux but there are some exceptions. See the
168 card specific instructions (below) for more info.
169
170 The drawback of software configuration is that the driver needs to know
171 how the card must be initialized. It cannot initialize unknown cards
172 even if they are otherwise compatible with some other cards (like SB,
173 MPU401 or Windows Sound System).
174
175 What if your card was not listed above?
176 ---------------------------------------
177
178 The first thing to do is to look at the major IC chips on the card.
179 Many of the latest soundcards are based on some standard chips. If you
180 are lucky, all of them could be supported by VoxWare. The most common ones
181 are the OPTi MAD16, Mozart, SoundScape (Ensoniq) and the PSS architectures
182 listed above. Also look at the end of this file for list of unsupported
183 cards and the ones which could be supported later.
184
185 The last resort is to send _exact_ name and model information of the card
186 to me together with a list of the major IC chips (manufactured, model) to 
187 me. I could then try to check if your card looks like something familiar.
188
189 There are much more cards in the word than listed above. The first thing to
190 do with these cards is to check if they emulate some other card/interface
191 such as SB, MSS and/or MPU401. In this case there is a chance to get the
192 card to work by booting DOS before starting Linux (boot DOS, hit ctrl-alt-del
193 and boot Linux without hard resetting the machine). In this method the
194 DOS based driver initializes the hardware to use a known I/O, IRQ and DMA
195 settings. If VoxWare is configured to use the same settings, everything should 
196 work OK.
197
198
199 Configuring VoxWare (with Linux)
200 ================================
201
202 VoxWare sound driver is currently a part of Linux kernel distribution. The 
203 driver files are located in directory /usr/src/linux/drivers/sound. 
204
205 ****************************************************************************
206 *       VoxWare MUST BE CONFIGURED AND COMPILED WITH THE KERNEL. TRYING    *
207 *       TO COMPILE IT ALONE WILL _NOT_ WORK.                               *
208 *                                                                          *
209 *       ALWAYS USE THE SOUND DRIVER VERSION WHICH IS DISTRIBUTED WITH      *
210 *       THE KERNEL SOURCE PACKAGE YOU ARE USING. SOME ALPHA AND BETA TEST  *
211 *       VERSIONS CAN BE INSTALLED FROM A SEPARATELY DISTRIBUTED PACKAGE    *
212 *       BUT CHECK THAT THE PACKAGE IS NOT MUCH OLDER (OR NEWER) THAN THE   *
213 *       KERNEL YOU ARE USING. IT'S POSSIBLE THAT THE KERNEL/DRIVER         *
214 *       INTERFACE CHANGES BETWEEN KERNEL RELEASES WHICH MAY CAUSE SOME     *
215 *       INCOMPATIBILITY PROBLEMS.                                          *
216 *                                                                          *
217 *       IN CASE YOU INSTALL A SEPARATELY DISTRIBUTED SOUND DRIVER VERSION, *
218 *       BE SURE TO REMOVE OR RENAME THE OLD SOUND DRIVER DIRECTORY BEFORE  *
219 *       INSTALLING THE NEW ONE. LEAVING OLD FILES TO THE SOUND DRIVER      *
220 *       DIRECTORY _WILL_ CAUSE PROBLEMS WHEN THE DRIVER IS USED OR         *
221 *       COMPILED.                                                          *
222 ****************************************************************************
223
224 To configure the driver, run "make config" in the kernel source directory
225 (/usr/src/linux). Answer y to the question about Sound card support (after
226 questions about mouse, CD-ROM, ftape, etc. supports). Sound config options
227 will then be asked after some additional questions.
228
229 After configuring the kernel and sound driver, run "make dep" and compile
230 the kernel following instructions in the kernel README.
231
232 The sound driver configuration dialog
233 -------------------------------------
234
235 All config information of the sound driver is written to file 
236 linux/drivers/sound/local.h. You may save the old version is this file and
237 use it again in case you want to use the same config later. In this case
238 just answer n to each question made by the sound config program and put
239 the original local.h back before running "make dep".
240 Don't do this if the version number of the sound driver has changed. In this
241 case you have to enter the configuration information again.
242
243 If you already have the sound driver installed, consult printout of
244 "cat /dev/sndstat" when configuring the driver again. It gives the I/O,
245 IRQ and DMA settings you have used earlier.
246
247
248 The sound config program (linux/drivers/sound/configure) starts by making
249 some yes/no questions. Be careful when answering to these questions since
250 answering y to a question may prevent some later ones from being asked. For
251 example don't answer y to the first question (PAS16) if you don't really
252 have a PAS16. Don't enable more cards than you really need since they
253 just consume memory. Also some drivers (like MPU401) may conflict with your
254 SCSI controller and prevent kernel from booting. If you card was in the list
255 of supported cards (above), please look at the card specific config 
256 instructions (later in this file) before starting to configure. Some cards
257 must be configured in way which is not obvious.
258
259 So here is the beginning of the config dialog. Answer 'y' or 'n' to these
260 questions. The default answer is shown so that (y/n) means 'y' by default and
261 (n/y) means 'n'. To use the default value, just hit ENTER. But be careful
262 since using the default _doesn't_ guarantee anything.
263
264 Note also that all questions may not be asked. The configuration program
265 may disable some questions dependig on the earlier choices. It may also
266 select some options automaticly as well.
267
268   "ProAudioSpectrum 16 support",
269         - Answer 'y'_ONLY_ if you have a Pro Audio Spectrum _16_,
270           ProAudio Studio 16 or Logitech SoundMan 16 (be sure that
271           you read the above list correctly). Don't answer 'y' if you
272           have some other card made by Media Vision or Logitech since they
273           are not PAS16 compatible.
274   "SoundBlaster support",
275         - Answer 'y' if you have an original SB card made by Creative Labs
276           or a full 100% hardware compatible clone (like Thunderboard or
277           SM Games). If your card was in the list of supported cards (above),
278           please look at the card specific instructions later in this file
279           before answering this question. For an unknown card you may answer 
280           'y' if the card claims to be SB compatible.
281
282          Don't enable SB if you have a MAD16 or Mozart compatible card.
283
284   "Generic OPL2/OPL3 FM synthesizer support",
285         - Answer 'y' if your card has a FM chip made by Yamaha (OPL2/OPL3/OPL4).
286           Answering 'y' is usually a safe and recommended choice. However some
287           cards may have software (TSR) FM emulation. Enabling FM support
288           with these cards may cause trouble. However I don't currently know
289           such cards.
290   "Gravis Ultrasound support",
291         - Answer 'y' if you have GUS or GUS MAX. Answer 'n' if you don't
292           have GUS since the GUS driver consumes much memory.
293           Currently I don't have experiences with the GUS ACE so I don't
294           know what to answer with it.
295   "MPU-401 support (NOT for SB16)",
296         - Be careful with this question. The MPU401 interface is supported
297           by almost any soundcard today. However some natively supported cards
298           have their own driver for MPU401. Enabling the MPU401 option with
299           these cards wil cause a conflict. Also enabling MPU401 on a system
300           that doesn't really have a MPU401 could cause some trouble. If your
301           card was in the list of supported cards (above), please look at
302           the card specific instructions later in this file.
303           It's safe to answer 'y' if you have a true MPU401 MIDI interface
304           card.
305   "6850 UART Midi support",
306         - It's safe to answer 'n' to this question in all cases. The 6850
307           UART interface is so rarely used.
308   "PSS (ECHO-ADI2111) support",
309         - Answer 'y' only if you have Orchid SW32, Cardinal DSP16 or some
310           other card based on the PSS chipset (AD1848 codec + ADSP-2115
311           DSP chip + Echo ESC614 ASIC CHIP).
312   "16 bit sampling option of GUS (_NOT_ GUS MAX)",
313         - Answer 'y' if you have installed the 16 bit sampling daughtercard
314           to your GUS. Answer 'n' if you have GUS MAX. Enabling this option
315           disables GUS MAX support.
316   "GUS MAX support",
317         - Answer 'y' only if you have a GUS MAX.
318   "Microsoft Sound System support",
319         - Again think carefully before answering 'y' to this question. It's
320           safe to answer 'y' in case you have the original Windows Sound 
321           System card made by Microsoft or Aztech SG 16 Pro (or NX16 Pro).
322           Also you may answer 'y' in case your card was not listed earlier
323           in this file. For cards having native support in VoxWare, consult
324           the card specific instructions later in this file. Some drivers
325           have their own MSS support and enabling this option wil cause a
326           conflict.
327   "Ensoniq Soundscape support",
328         - Answer 'y' if you have a soundcard based on the Ensoniq SoundScape
329           chipset. Suach cards are being manufactured at least by Ensoniq,
330           Spea and Reveal (note that Reveal makes other cards also).
331   "MediaTriX AudioTriX Pro support",
332         - Answer 'y' if you have the AudioTriX Pro.
333   "Support for MAD16 and/or Mozart based cards",
334         - Answer y if your card has a Mozart (OAK OTI-601) or MAD16
335           (OPTi 82C928 or 82C929) audio interface chip. These chips are
336           currently quite common so it's possible that many no-name cards
337           have one of them. In addition the MAD16 chip is used in some
338           cards made by known manufacturers such as Turtle Beach (Tropez),
339           Reveal (some models) and Diamond (latest ones).
340   "SoundBlaster Pro support",
341         - Enable this option if your card is SB Pro or SB16. Enable it
342           also with any SB Pro clones. Answering 'n' saves some amount of
343           memory but 'y' is the safe alterative.
344   "SoundBlaster 16 support",
345         - Enable if you have a SB16 (including the AWE32).
346   "Audio Excel DSP 16 initialization support",
347         - Don't know much about this card. Look at aedsp16.c for more info.
348
349 Then the configuration program asks some y/n questions about the higher
350 level services. It's recommended to answer 'y' to each of these questions.
351 Answer 'n' only if you know you will not need the option.
352
353   "/dev/dsp and /dev/audio supports (usually required)",
354         - Answering 'n' disables /dev/dsp and /dev/audio. Answer 'y'.
355   "MIDI interface support",
356         - Answering 'n' disables /dev/midi## devices and access to any
357           MIDI ports using /dev/sequencer and /dev/music. This option
358           also affects any MPU401 and/or General MIDI compatible devices.
359   "FM synthesizer (YM3812/OPL-3) support",
360         - Answer 'y' here.
361   "/dev/sequencer support",
362         - Answering 'n' disables /dev/sequencer and /dev/music.
363
364 Entering the I/O, IRQ and DMA config parameters
365 -----------------------------------------------
366
367 After the above questions the configuration program prompts for the
368 card specific configuration information. Usually just a set of
369 I/O address, IRQ and DMA numbers are asked. With some cards the program
370 asks for some files to be used during initialization of the card. For example
371 many cards have a DSP chip or microprocessor which must be initialized by
372 downloading a program (microcode) file to the card. In some cases this file
373 is written to a .h file by the config program and then included to the driver
374 during compile.
375
376 Instructions for answering these questions are given in the next section.
377
378
379 Card specific information
380 =========================
381
382 This section gives additional instructions about configuring some cards.
383 Please refer manual of your card for valid I/O, IRQ and DMA numbers. Using
384 the same settings with DOS/Windows and VoxWare is recommended. Using
385 different values could cause some problems when switching between
386 different operating systems.
387
388 SoundBlasters (the original ones by Creative)
389 ---------------------------------------------
390
391 It's possible to configure these cards to use different I/O, IRQ and
392 DMA settings. Since the available settings have changed between various
393 models, you have to consult manual of your card for the proper ones. It's
394 a good idea to use the same values than with DOS/Windows. With SB and SB Pro
395 it's the only choice. SB16 has software selectable IRQ and DMA channels but
396 using different values with DOS and Linux is likely to cause troubles. The
397 DOS driver is not able to reset the card properly after warm boot from Linux
398 if Linux has used different IRQ or DMA values.
399
400 The original (steam) Sound Blaster (versions 1.x and 2.x) use always
401 DMA1. There is no way to change it.
402
403 The SB16 needs two DMA channels. A 8 bit one (1 or 3) is required for
404 8 bit operation and a 16 bit one (5, 6 or 7) for the 16 bit mode. In theory
405 it's possible to use just one (8 bit) DMA channel by answering the 8 bit
406 one when the configuration program asks for the 16 bit one. This may work
407 in some systems but is likely to cause terrible noise on some other systems.
408
409 NOTE!   Don't enable the SM Games option (asked by the configuration program)
410         if you are not 101% sure that your card is a Logitech Soundman Games
411         (not a SM Wave or SM16).
412
413 SB Clones
414 ---------
415
416 First of all: There are no SB16 clones. There are SB Pro clones with a
417 16 bit mode which is not SB16 compatible. The most likely alternative is that
418 the 16 bit mode means MSS/WSS.
419
420 There are just few fully 100% hardware SB or SB Pro compatible cards.
421 I know just Thunderboard and SM Games. Other cards require some kind of
422 hardware initialization before they become SB compatible. Check if your card
423 was listed in the beginning of this file. In this case you should follow
424 instructions for your card later in this file.
425
426 For other not fully SB clones yoy may try initialization using DOS in
427 the following way:
428
429         - Boot DOS so that the card specific driver gets run.
430         - Hit ctrl-alt-del (or use loadlin) to boot Linux. Don't
431           switch off power or press the reset button.
432         - If you use the same I/O, IRQ and DMA settings in Linux, the
433           card should work.
434
435 If your card is both SB and MSS compatible, I recommend using the MSS mode.
436 Most cards of this kind are not able to work in the SB and the MSS mode 
437 simultaneously. Using the MSS mode provides 16 bit recording and playback.
438
439 ProAudioSpectrum 16 and compatibles
440 -----------------------------------
441
442 There are nothing special with these cards. Just don't enable any
443 other cards in case you don't have them also. The PAS16 has
444 a SB mode so the driver config program will prompt for the SB settings
445 do. Use I/O 0x220 and DMA1 for the SB mode. Ensure that you assign different
446 IRQ numbers for the SB and PAS16 modes.
447
448 With PAS16 you can use two audio device files at the same time. /dev/dsp (and
449 /dev/audio) is connected to the 8/16 bit native codec and the /dev/dsp1 (and
450 /dev/audio1) is connected to the SB emulation (8 bit mono only).
451
452 Gravis Ultrasound
453 -----------------
454
455 There are many different revisions of the Ultrasound card (GUS). The
456 earliest ones (pre 3.7) don't have a hardware mixer. With these cards
457 the driver uses a software emulation for synth and pcm playbacks. It's
458 also possible to switch some of the inputs (line in, mic) off by setting
459 mixer volume of the channel level below 10%. For recording you have
460 to select the channel as a recording source and to use volume above 10%.
461
462 GUS 3.7 has a hardware mixer.
463
464 GUS MAX and the 16 bit sampling daughtercard have a CS4231 codec chip which 
465 also contains a mixer.
466
467 Configuring GUS is simple. Just enable the GUS support and GUS MAX or
468 the 16 bit daughtercard if you have them. Note that enabling the daughter
469 card disables GUS MAX driver.
470
471 With just the standard GUS enabled the configuration program prompts
472 for the I/O, IRQ and DMA numbers for the card. Use the same values than
473 with DOS.
474
475 With the daughter card option enabled you will be prompted for the I/O,
476 IRQ and DMA numbers for the daughter card. You have to use different I/O
477 and DMA values than for the standard GUS. The daughter card permits
478 simultaneous recording and playback. Use /dev/dsp (the daughtercard) for
479 recording and /dev/dsp1 (GUS GF1) for playback.
480
481 GUS MAX uses the same I/O address and IRQ settings than the original GUS
482 (GUS MAX = GUS + a CS4231 codec). In addition an extra DMA channel may be used.
483 Using two DMA channels permits simultaneous playback using two devices
484 (dev/dsp0 and /dev/dsp1). The second DMA channel is required for
485 full duplex audio.
486 To enable the second DMA channels, give a valid DMA channel when the config
487 program asks for the GUS MAX DMA (entering -1 disables the second DMA).
488 Using 16 bit DMA channels (5,6 or 7) is recommended.
489
490 If you have problems in recording with GUS MAX, you could try to use
491 just one 8 bit DMA channel. Recording will not work with one DMA
492 channel if it's a 16 bit one.
493
494
495
496 MPU401 and Windows Sound System
497 -------------------------------
498
499 Again. Don't enable these options in case your card is listed
500 somewhere else in this file.
501
502 Configuring these cards is obvious (or it should be). With MSS
503 you should propably enable the OPL3 synth also since
504 most MSS compatible cards have it. However check that this is true
505 before enabling OPL3.
506
507 VoxWare supports more than one MPU401 compatible cards at the same time
508 but the config program asks config info for just the first of them.
509 Adding the second or third MPU interfaces must be done manually by
510 editing sound/local.h (after running the config program). Add defines for
511 MPU2_BASE & MPU2_IRQ (and MPU3_BASE & MPU3_IRQ) to the file.
512
513 CAUTION!
514
515 The default I/O base of Adaptec AHA-1542 SCSI controller is 0x330 which
516 is also the default of the MPU401 driver. Don't configure the sound driver to
517 use 0x330 as the MPU401 base if you have a AHA1542. The kernel will not boot
518 if you make this mistake.
519
520 PSS
521 ---
522
523 Even the PSS cards are compatible with SB, MSS and MPU401, you must not
524 enable these options when configuring the driver. The configuration
525 program handles these options itself. (You may use the SB, MPU and MSS options
526 together with PSS if you have another card on the system).
527
528 The PSS driver enables MSS and MPU401 modes of the card. SB is not enabled 
529 since it doesn't work concurrently with MSS. The driver loads also a
530 DSP algorithm which is used to for the general MIDI emulation. The
531 algorithm file (.ld) is read by the config program and written to a
532 file included when the pss.c is compiled. For this reason the config
533 program asks if you want to download the file. Use the genmidi.ld file
534 distributed with the DOS/Windows drivers of the card (don't use the mt32.ld).
535 With some cards the file is called 'synth.ld'. You must have access to
536 the file when configuring the driver. The easiest way is to mount the DOS
537 partition containing the file with Linux. 
538
539 It's possible to load your own DSP algorithms and run them with the card.
540 Look at the directory sound/pss_test for more info (in the VoxWare-3.0.tar.gz)
541 package.
542
543 AudioTriX Pro
544 -------------
545
546 You have to enable the OPL3 and SB (not SB Pro or SB16) drivers in addition
547 to the native AudioTriX driver. Don't enable MSS or MPU drivers.
548
549 Configuring ATP is little bit tricky since it uses so many I/O, IRQ and
550 DMA numbers. Using the same values than with DOS/Win is a good idea. Don't
551 attemp to use the same IRQ or DMA channels twice.
552
553 The SB mode of ATP is implemented so the the ATP driver just enables SB
554 in the proper address. The SB driver handles the rest. Yoy have to configure
555 both the SB driver and the SB mode of ATP to use the same IRQ, DMA and I/O
556 settings.
557
558 Also the ATP has a microcontroller for the General MIDI emulation (OPL4).
559 For this reason the driver asks for the name of a file containing the
560 microcode (TRXPRO.HEX). This file is usually located in the directory
561 where the DOS drivers were installed. You must have access to this file
562 when configuring the driver. 
563
564 If you have the effects daughtercard, it must be initialized by running
565 the setfx program of snd-util-3.0.tar.gz package. This step is not required
566 when using the (future) binary distribution version of the driver.
567
568 Ensoniq SoundScape
569 ------------------
570
571 The SoundScape driver handles initialization of MSS and MPU supports
572 itself so you don't need to enable other drivers than SoundScape
573 (enable also the /dev/dsp, /dev/sequencer and MIDI supports).
574
575 SoundScape driver uses the MSS compatible codec of the card. It's important
576 to note that /dev/dsp0 (/dev/dsp is linked to /dev/dsp0 by default)
577 doesn't work with SoundScape (yet). The 'ssinit' program needs /dev/dsp0 so
578 that's the reason why it's there. It's possible that 'primary' pcm channel
579 becomes supported later. Currently the card's firmware doesn't contain
580 support for it.
581
582 With 3.0 of VoxWare you have to change your system to use /dev/dsp1 by default
583 so execute: cd /dev;rm dsp;ln -s dsp1 dsp after you have installed VoxWare
584 3.0 (first time).
585
586 The configuration program asks two DMA channels and two interrupts. One IRQ
587 and one DMA is used by the MSS codec. The second IRQ is required for the
588 MPU401 mode (you have to use different IRQs for both purposes).
589 The second DMA channel is required for initialization of the microcontroller.
590 You have to use separate DMA channels.
591
592 The SoundScape card has a Motorola microcontroller which must initialized
593 _after_ boot (the driver doesn't initialize it during boot).
594 The initialization is done by running the 'ssinit' program which is
595 distributed in the snd-util-3.0.tar.gz package. You have to edit two
596 defines in the ssinit.c and then compile the program. You may run ssinit 
597 manually (after each boot) or add it to /etc/rc.d/rc.local.
598
599 The ssinit program needs the microcode file that comes with the DOS/Windows
600 driver of the card. You will need to use version 1.30.00 or later
601 of the microcode file (sndscape.co0 or sndscape.co1 depending on
602 your card model). THE OLD sndscape.cod WILL NOT WORK. IT WILL HANG YOUR
603 MACHINE. The only way to get the new microcode file is to download
604 and install the DOS/Windows driver from ftp://ftp.ensoniq.com/pub.
605
606 Then you have to select the proper microcode file to use: soundscape.co0
607 is the right one for most cards and sndscape.co1 is for few (older) cards
608 made by Reveal and/or Spea. The driver has capability to detect the card
609 version during boot. Look at the boot log messages in /var/adm/messages
610 and locate the sound driver initialization message for the SoundScape
611 card. If the driver displays string <Ensoniq Soundscape (old)>, you have
612 an old card and you will need to use sndscape.co1. For other cards use
613 soundscape.co0.
614
615 Check /var/adm/messages after running ssinit. The driver prints
616 the board version after downloading the microcode file. That version
617 number must match the number in the name of the microcode file (extension).
618
619 Running ssinit with a wrong version of the sndscape.co? file is not
620 dangerous as long as you don't try to use a file called sndscape.cod.
621 If you have initialized the card using a wrong microcode file (sounds
622 are terrible), just modify ssinit.c to use another microcode file and try
623 again. It's possible to use an earlier version of sndscape.co[01] but it
624 may sound wierd.
625
626 Btw, The driver may complain something about "sscapeintr()" after
627 running ssinit. You should just ignore these messages.
628
629 MAD16 (Pro) and Mozart
630 ----------------------
631
632 You need to enable just the MAD16 /Mozart support when configuring
633 the driver. _Don't_ enable SB, MPU401 or MSS. However you will need the
634 /dev/audio, /dev/sequencer and MIDI supports.
635
636 Mozart and OPTi 82C928 (the original MAD16) chips don't support
637 MPU401 mode so enter just 0 when the configuration program asks the
638 MPU/MIDI I/O base. The MAD16 Pro (OPTi 82C929) has MPU401 mode.
639
640 TB Tropez is based on the 82C929 chip. It has two MIDI ports.
641 The one connected to the MAD16 chip is the second one (there is a second
642 MIDI connector/pins somewhere??). If you have not connected the second MIDI
643 port, just disable the MIDI port of MAD16. The 'Maui' compatible synth of
644 Tropez is jumper configurable and not connected to the MAD16 chip.
645 It can be used by enabling the stand alone MPU401 support but you have
646 to initialize it by using the MS-DOS SNDSETUP program.
647
648 There are some other OPTi chips which may be used in soundcards such as
649 82C930 and MAC32. These chips are not supported by VoxWare yet. Please
650 contact me if you have a soundcard which uses these chips.
651
652 Some MAD16 based cards may cause feedback, whistle or terrible noise if the
653 line3 mixer channel is turned too high.
654
655 If you have a MAD16 card which have an OPL4 (FM + Wave table) synthesizer
656 chip (_not_ an OPL3), you have to apped line containing #define MAD16_OPL4
657 to the file linux/dirvers/sound/local.h (after running make config).
658
659 MV Jazz (ProSonic)
660 ------------------
661
662 The Jazz16 driver is just a hack made to the SB Pro driver. However it works
663 fairly well. You have to enable SB, SB Pro (_not_ SB16) and MPU401 supports
664 when configuring the driver. The configuration program asks later if you
665 want support for MV Jazz16 based cards (after asking SB base address). Answer
666 'y' here and the driver asks the second (16 bit) DMA channel.
667
668 The Jazz16 driver uses the MPU401 driver in a way which will cause
669 problems if you have another MPU401 compatible card. In this case you must
670 give address of the Jazz16 based MPU401 interface when the config
671 program prompts for the MPU401 information. Then look at the MPU401
672 spesific section for instructions about configuring more than one MPU401 cards.
673
674 Logitech Soundman Wave
675 ----------------------
676
677 Read the above MV Jazz spesific instructions first.
678
679 The Logitech SoundMan Wave (don't confuse with the SM16 or SM Games) is
680 a MV Jazz based card which has an additional OPL4 based wave table
681 synthesizer. The OPL4 chip is handled by an on board microcontroller
682 which must be initialized during boot. The config program asks if
683 you have a SM Wave immediately after asking the second DMA channel of jazz16.
684 If you answer 'y', the config program will ask name of the file containing
685 code to be loaded to the microcontroller. The file is usually called
686 MIDI0001.BIN and it's located in the DOS/Windows driver directory. The file
687 may also be called as TSUNAMI.BIN or something else (older cards?).
688
689 The OPL4 synth will be inaccessible without loading the microcontroller code.
690 Also remember to enable MPU401 support if you want to use the OPL4 mode.
691
692 NOTE!   Don't answer 'y' when the driver asks about SM Games support
693         (the next question after the MIDI0001.BIN name). However
694         aneswering 'y' is not dangerous. 
695
696 Sound Galaxies
697 --------------
698
699 There are many different Sound Galaxy cards made by Aztech. The 8 bit
700 ones are fully SB or SB Pro compatible and there should be no problems
701 with them. 
702
703 The older 16 bit cards (SG Pro16, SG NX Pro16, Nova and Lyra) have
704 an EEPROM chip for storing the configuration data. There is a microcontroller
705 which initializes the card to match the EEPROM settigs when the machine
706 is powered on. These cards actually behave just like they have jumpers
707 for all of the settings. Configure VoxWare for MSS, MPU, SB/SB Pro  and OPL3 
708 supports with these cards. 
709
710 The config program asks if you want support for the mixer of
711 SG NX Pro. Answer 'y' to these questions if you have one of the above 8 or
712 16 bit Aztech cards.
713
714 There are some new Sound Galaxies in the market. I have no experience with
715 them so read the card's manual carefully.
716
717
718 Reveal cards
719 ------------
720
721 There are several different cards made/marketed by Reveal. Some of them
722 are compatible with SoundScape and some use the MAD16 chip. You may have
723 to look at the card and try to identify origin of the card.
724
725 Diamond
726 -------
727
728 The oldest (Sierra Aria based) soundcards made by Diamond are not supported
729 (they may work if the card is initialized using DOS). The recent (LX?)
730 models are based on the MAD16 chip which is supported by VoxWare.
731
732 Audio Excel DSP16
733 -----------------
734
735 See comments in aedsp16.c.
736
737
738 PCMCIA cards
739 ------------
740
741 Sorry, can't help. Some cards may work and some don't.
742
743 TI TM4000M notebooks
744 --------------------
745
746 These computers have a built in sound support based on the Jazz chipset.
747 Look at the instructions for MV Jazz (above). It's also important to note
748 that there is something wrong with the mouse port and sound at least on
749 some TM models. Don't enable the "C&T 82C710 mouse port support" when
750 configuring Linux. Having it enabled is likely to cause mysterious problems
751 and kernel failures when sound is used.
752
753 Others?
754 -------
755
756 Since there are so many different soundcards, it's likely that I have 
757 forgotten to mention many of them. Please inform me if you know yet another
758 card which works with Linux, please inform me (or is anybody else
759 willing to maintain a database of supported cards (just like in XF86)?).
760
761 Cards not supported yet
762 =======================
763
764 First of all. There is an easy way to make most soundcards to work
765 with Linux. Just use the DOS based driver to initialize the card
766 to a _known_ state. Then ctrl-alt-del to Linux. If Linux is configured
767 to use the sama I/O, IRQ and DMA numbers than DOS, the card could work.
768
769 Don't get fooled with SB compatibility. Most cards are compatible with
770 SB but that may require a TSR which is not possible with Linux. If
771 the card is compatible with MSS, it's a better choise. Some cards
772 don't work in the SB and MSS modes at the same time.
773
774 There are some cards which will be supported by VoxWare sooner or later
775 (currently at least cards based on the ESS chipset). Such cards are
776 so common that there is some idea in writing the driver. Check the
777 VoxWare home page (http://personal.eunet.fi/pp/voxware) for latest
778 information.
779
780 Then there are cards which are no longer manufactured and/or which
781 are relatively rarely used (such as the 8 bit ProAudioSpectrum
782 models). It's extremely unlikely that such cards never get supported.
783 Adding support for a new card requires much work and increases time
784 required in maintaining the driver (some changes need to be done
785 to all low level drivers and be tested too, maybe with multiple
786 operating systems). For this reason I have made a desicion to not support
787 obsolete cards. It's possible that someone else makes a separately 
788 distributed driver (diffs) for the card. Version v4.0 will be much more
789 modular so making separately distributed drivers will be easier with it.
790 (The bad news is that v4.0 will not be available before late -96).
791
792 Writing a driver for a new card is not possible if there are no 
793 programming information available about the card. If you don't
794 find your new card from this file, look from the home page 
795 (http://personal.eunet.fi/pp/voxware). Then please contact
796 manufacturer of the card and ask if they have (or are willing to)
797 released technical details of the card. Do this before contacting me. I
798 can only answer 'no' if there are no programming information available.
799
800 Some companies don't give low level technical information about their
801 products to public or at least their require signing a NDA.
802
803 I have also made decicion to not accept code based on reverse engineering
804 to VoxWare. There are three main reasons: First I don't want to break
805 relationships to sound card manufacturers. The second reason is that
806 maintaining and supporting a driver withoun any specs will be a pain. The
807 third reason is that why shoud we help such companies in selling their
808 products to Linux users when they don't want to sell to Linux users
809 at all?
810
811 Unfortunately many of the leading soundcard manufacturers are not willing
812 to co-operate with Linux/Unix community. For example: Creative Technology 
813 doesn't give information about the ASP chip and the Emu synth chip of AWE32
814 and SB32. Turtle Beach don't give information about any of their
815 products. MediaVision requires NDA before they are willing to
816 give information about the Jazz16 chip (fortunately Logitech gave
817 the info about SM Wave).
818
819 So at least the above three companies are out until they are willing to 
820 release documentation about their products (the situation is the
821 same with many DOS based freeware/shareware games and utilities). If
822 you want to use Linux/Unix with their cards, please don't try to push
823 me. It's a better idea to contact the manufacturer and explain that
824 you want to use your card with Linux/Unix. You could also try to sell
825 your card to somebody else and then buy a card that is supported by VoxWare.
826
827 However it's possible that things change and a driver gets written
828 for some of the banned cards. Please, don't send me messages asking if
829 there is any plans to write a driver for the cards mentioned above. I 
830 will put any news to the VoxWare www home page (see below).
831
832 There are some common audio chipsets that are supported yet. For example
833 the ESS chips and Sierra Aria. It's likely that these architectures
834 get some support in future but I can't make any promises. Just look
835 at the home page for latest info.
836
837 Information about unsupported soundcards and chipsets is welcome as well
838 as free copies of soundcards, SDKs and operating systems.
839
840 If you have any corrections and/or comments, please contact me.
841
842 Hannu Savolainen
843 hannu@voxware.pp.fi
844 VoxWare www home page: http://personal.eunet.fi/pp/voxware
845