This section lists the sound cards and interfaces that are currently supported under Linux. The information here is based on the latest Linux kernels, at time of writing.
The sound driver has its own version numbering. The latest stable Linux kernel release was version 2.0.18, using sound driver version Sound Driver:3.5.4-960630.
The author of the sound driver, Hannu Savolainen, typically also makes available newer beta releases of the sound driver as kernel patches before they are included as part of the standard Linux kernel distribution.
This information is only valid for Linux on the Intel platform. Some information may be applicable to other processor architectures, but I have no first hand experience or information.
The following sound cards are supported by the Linux kernel sound driver:
The following cards are not supported, either because they are obsolete or because the vendor will not release the programming information needed to write a driver:
Other sound cards that are claimed to be compatible with one of the supported sound cards may work if they are hardware (i.e. register level) compatible. Some cards described as "100% SoundBlaster compatible" are not register compatible. Some hints for getting compatible cards to work are given later in this document. If you have a card that works and is not listed here, let me know and I will add it to the list.
The Linux kernel supports the SCSI port provided on some sound cards (e.g. ProAudioSpectrum 16) and the proprietary interface for some CD-ROM drives (e.g. Soundblaster Pro). See the Linux SCSI HOWTO and CDROM HOWTO documents for more information.
A loadable kernel module to support joystick ports, including those provided on some sound cards, is also available.
Note that the kernel SCSI, CD-ROM, joystick, and sound drivers are completely independent of each other.
For the latest information on the sound card driver check Hannu Savolainen's World-Wide Web site listed in the References section.
There are some "unofficial" sound drivers available, not included in the standard Linux kernel distribution, and used in place of the standard sound driver.
A commercial version of the Linux sound driver is sold by 4Front Technologies. It offers a number of additional features over the free version included in the Linux kernel. For more information see the 4Front Technologies Web page at http://www.4front-tech.com/.
Markus Mummert ( [email protected]) has written a driver package for the Turtle Beach MultiSound (classic), Tahiti, and Monterey soundcards. The documentation states:
"It is designed for high quality hard disk recording/playback without losing sync even on a busy system. Other features such as wave synthesis, MIDI and digital signal processor (DSP) cannot be used. Also, recording and playback at the same time is not possible. It currently replaces VoxWare and was tested on several kernel versions ranging from 1.0.9 to 1.2.1. Also, it is installable on UN*X SysV386R3.2 systems."
It can be found at http://www.cs.colorado.edu/~mccreary/tbeach.
Kim Burgaard ( [email protected]) has written a device driver and utilities for the Roland MPU-401 MIDI interface. The Linux software map entry gives this description:
"A device driver for true Roland MPU-401 compatible MIDI interfaces (including Roland SCC-1 and RAP-10/ATW-10). Comes with a useful collection of utilities including a Standard MIDI File player and recorder.
Numerous improvements have been made since version 0.11a. Among other things, the driver now features IRQ sharing policy and complies with the new kernel module interface. Metronome functionality, possibility for synchronizing e.g. graphics on a per beat basis without losing precision, advanced replay/record/overdub interface and much, much more."
It can be found at ftp://sunsite.unc.edu/pub/Linux/kernel/sound/mpu401-0.2.tar.gz.
An alternate sound driver is available that requires no additional sound hardware; it uses the internal PC speaker. It is mostly software compatible with the sound card driver, but, as might be expected, provides much lower quality output and has much more CPU overhead. The results seem to vary, being dependent on the characteristics of the individual loudspeaker. For more information, see the documentation provided with the release.
The current version is 0.9b, and can be found at ftp://ftp.informatik.hu-berlin.de/pub/os/linux/hu-sound/
Another option is to build a digital to analog converter using a parallel printer port and some additional components. This provides better sound quality than the PC speaker but still has a lot of CPU overhead. The PC sound driver package mentioned above supports this, and includes instructions for building the necessary hardware.