home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / Sound-HOWTO < prev    next >
Text File  |  1999-06-02  |  70KB  |  2,113 lines

  1.   The Linux Sound HOWTO
  2.   Jeff Tranter, tranter@pobox.com
  3.   v1.20, 24 March 1999
  4.  
  5.   This document describes sound support for Linux. It lists the sup¡
  6.   ported sound hardware, describes how to configure the kernel drivers,
  7.   and answers frequently asked questions. The intent is to bring new
  8.   users up to speed more quickly and reduce the amount of traffic in the
  9.   Usenet news groups and mailing lists.
  10.   ______________________________________________________________________
  11.  
  12.   Table of Contents
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Introduction
  68.  
  69.      1.1 Acknowledgments
  70.      1.2 New versions of this document
  71.      1.3 Feedback
  72.      1.4 Distribution Policy
  73.  
  74.   2. Sound Card Technology
  75.  
  76.   3. Supported Hardware
  77.  
  78.      3.1 Sound Cards
  79.      3.2 Alternate Sound Drivers
  80.      3.3 PC Speaker
  81.      3.4 Parallel Port
  82.  
  83.   4. Installation
  84.  
  85.      4.1 Installing the Sound Card
  86.      4.2 Configuring Plug and Play
  87.      4.3 Configuring the Kernel
  88.      4.4 Creating the Device Files
  89.      4.5 Booting Linux and Testing the Installation
  90.      4.6 Troubleshooting
  91.         4.6.1 Step 1: Make sure you are really running the kernel you compiled.
  92.         4.6.2 Step 2: Make sure the kernel sound drivers are compiled in.
  93.         4.6.3 Step 3: Did the kernel detect your sound card during booting?
  94.         4.6.4 Step 4: Can you read data from the dsp device?
  95.         4.6.5 When All Else Fails
  96.  
  97.   5. Applications Supporting Sound
  98.  
  99.   6. Answers To Frequently Asked Questions
  100.  
  101.      6.1 What are the various sound device files?
  102.      6.2 How can I play a sound sample?
  103.      6.3 How can I record a sample?
  104.      6.4 Can I have more than one sound card?
  105.      6.5 Error: No such file or directory for sound devices
  106.      6.6 Error: No such device for sound devices
  107.      6.7 Error: No space left on device for sound devices
  108.      6.8 Error: Device busy for sound devices
  109.      6.9 I still get device busy errors!
  110.      6.10 Partial playback of digitized sound file
  111.      6.11 There are pauses when playing MOD files
  112.      6.12 Compile errors when compiling sound applications
  113.      6.13 SEGV when running sound binaries that worked previously
  114.      6.14 What known bugs or limitations are there in the sound driver?
  115.      6.15 Where are the sound driver ioctls() etc. documented?
  116.      6.16 What CPU resources are needed to play or record without pauses?
  117.      6.17 Problems with a PAS16 and an Adaptec 1542 SCSI host adaptor
  118.      6.18 Is it possible to read and write samples simultaneously?
  119.      6.19 My SB16 is set to IRQ 2, but configure does not allow this value.
  120.      6.20 If I run Linux, then boot DOS, I get errors and/or sound applications do not work properly.
  121.      6.21 Problems running DOOM under Linux
  122.      6.22 How can I reduce noise picked up by my sound card?
  123.      6.23 I can play sounds, but not record.
  124.      6.24 My "compatible" sound card only works if I first initialize under MS-DOS.
  125.      6.25 My 16-bit SoundBlaster "compatible" sound card only works in 8-bit mode under Linux.
  126.      6.26 Where can I find sound applications for Linux?
  127.      6.27 Can the sound driver be compiled as a loadable module?
  128.      6.28 Can I use a sound card to replace the system console beep?
  129.      6.29 What is VoxWare?
  130.      6.30 Sox/Play/Vplay reports "invalid block size 1024"
  131.      6.31 The mixer settings are reset whenever I load the sound driver module
  132.      6.32 Only user root can record sound
  133.      6.33 Is the sound hardware on the IBM ThinkPad supported?
  134.      6.34 Applications fail because my sound card has no mixer
  135.      6.35 Problems with a SB16 CT4170
  136.      6.36 How to connect a MIDI keyboard to a soundcard
  137.      6.37 Problems with IRQ 15 and Ensoniq PCI 128
  138.      6.38 Where can I get freely available MIDI patches to run SoftOSS?
  139.  
  140.   7. References
  141.  
  142.  
  143.  
  144.   ______________________________________________________________________
  145.  
  146.   1.  Introduction
  147.  
  148.  
  149.   This is the Linux Sound HOWTO. It is intended as a quick reference
  150.   covering everything you need to know to install and configure sound
  151.   support under Linux. Frequently asked questions about sound under
  152.   Linux are answered, and references are given to some other sources of
  153.   information on a variety of topics related to computer generated sound
  154.   and music.
  155.  
  156.   The scope is limited to the aspects of sound cards pertaining to
  157.   Linux. See the other documents listed in the References section for
  158.   more general information on sound cards and computer sound and music
  159.   generation.
  160.  
  161.  
  162.   1.1.  Acknowledgments
  163.  
  164.  
  165.   Much of this information came from the documentation provided with the
  166.   sound driver source code, by Hannu Savolainen (hannu@opensound.com).
  167.   Thanks go to Hannu, Alan Cox, and the many other people who developed
  168.   the Linux kernel sound drivers and utilities.
  169.  
  170.   Thanks to the SGML Tools package, this HOWTO is available in several
  171.   formats, all generated from a common source file.
  172.  
  173.  
  174.   1.2.  New versions of this document
  175.  
  176.  
  177.   New versions of this document will be periodically posted to the
  178.   comp.os.linux.answers newsgroup. They will also be uploaded to various
  179.   anonymous ftp sites that archive such information including
  180.   <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/>.
  181.  
  182.   Hypertext versions of this and other Linux HOWTOs are available on
  183.   many world-wide web sites, including  <http://metalab.unc.edu/LDP/>.
  184.   Most Linux CD-ROM distributions include the HOWTOs, often under the
  185.   /usr/doc directory, and you can also buy printed copies from several
  186.   vendors. Sometimes the HOWTOs available from CD-ROM vendors, ftp
  187.   sites, and printed format are out of date. If the date on this HOWTO
  188.   is more than six months in the past, then a newer copy is probably
  189.   available on the Internet.
  190.  
  191.   Please note that, due to the dynamic nature of the Internet, all web
  192.   and ftp links listed in this document are subject to change.
  193.  
  194.   Translations of this document are available in several languages:
  195.  
  196.   Chinese:  <http://www.linux.org.tw/CLDP/Sound-HOWTO.html>
  197.  
  198.  
  199.   French:  <http://www.freenix.org/unix/linux/HOWTO/>
  200.  
  201.   Japanese:  <http://yebisu.ics.es.osaka-u.ac.jp/linux/>
  202.  
  203.   Korean:  <http://kldp.linux-kr.org/HOWTO/html/Sound/Sound-HOWTO.html>
  204.  
  205.   Russian:  <http://www.phtd.tpu.edu.ru/~ott/russian/linux/howto-
  206.   rus/Sound-HOWTO.html>
  207.  
  208.   Spanish:  <ftp://ftp.insflug.org/es>
  209.  
  210.   Most translations of this and other Linux HOWTOs can also be found at
  211.   <http://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/> and
  212.   <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/>. If you
  213.   make a translation of this document into another language, let me know
  214.   and I'll include a reference to it here.
  215.  
  216.  
  217.   1.3.  Feedback
  218.  
  219.  
  220.   I rely on you, the reader, to make this HOWTO useful. If you have any
  221.   suggestions, corrections, or comments, please send them to me,
  222.   tranter@pobox.com, and I will try to incorporate them in the next
  223.   revision.
  224.  
  225.   I am also willing to answer general questions on sound cards under
  226.   Linux, as best I can. Before doing so, please read all of the
  227.   information in this HOWTO, and send me detailed information about the
  228.   problem. Please do not ask me about using sound cards under operating
  229.   systems other than Linux.
  230.  
  231.   If you publish this document on a CD-ROM or in hardcopy form, a
  232.   complimentary copy would be appreciated. Mail me for my postal
  233.   address. Also consider making a donation to the Linux Documentation
  234.   Project to help support free documentation for Linux. Contact the
  235.   Linux HOWTO coordinator, Tim Bynum  <mailto:linux-
  236.   howto@metalab.unc.edu>, for more information.
  237.  
  238.  
  239.   1.4.  Distribution Policy
  240.  
  241.  
  242.   Copyright (c) 1995-1999 by Jeff Tranter. This document may be
  243.   distributed under the terms set forth in the LDP license at
  244.   <http://metalab.unc.edu/LDP/COPYRIGHT.html>.
  245.  
  246.  
  247.   2.  Sound Card Technology
  248.  
  249.  
  250.   This section gives a very cursory overview of computer audio
  251.   technology, in order to help you understand the concepts used later in
  252.   the document. You should consult a book on digital audio or digital
  253.   signal processing in order to learn more.
  254.  
  255.   Sound is an analog property; it can take on any value over a
  256.   continuous range. Computers are digital; they like to work with
  257.   discrete values. Sound cards use a device known as an Analog to
  258.   Digital Converter (A/D or ADC) to convert voltages corresponding to
  259.   analog sound waves into digital or numeric values which can be stored
  260.   in memory. Similarly, a Digital to Analog Converter (D/A or DAC)
  261.   converts numeric values back to an analog voltage which can in turn
  262.   drive a loudspeaker, producing sound.
  263.  
  264.  
  265.   The process of analog to digital conversion, known as sampling,
  266.   introduces some error. Two factors are key in determining how well the
  267.   sampled signal represents the original. Sampling rate is the number of
  268.   samples made per unit of time (usually expresses as samples per second
  269.   or Hertz). A low sampling rate will provide a less accurate
  270.   representation of the analog signal. Sample size is the range of
  271.   values used to represent each sample, usually expressed in bits. The
  272.   larger the sample size, the more accurate the digitized signal will
  273.   be.
  274.  
  275.   Sound cards commonly use 8 or 16 bit samples at sampling rates from
  276.   about 4000 to 44,000 samples per second. The samples may also be
  277.   contain one channel (mono) or two (stereo).
  278.  
  279.   FM Synthesis is an older technique for producing sound. It is based on
  280.   combining different waveforms (e.g. sine, triangle, square). FM
  281.   synthesis is simpler to implement in hardware that D/A conversion, but
  282.   is more difficult to program and less flexible. Many sound cards
  283.   provide FM synthesis for backward compatibility with older cards and
  284.   software. Several independent sound generators or voices are usually
  285.   provided.
  286.  
  287.   Wavetable Synthesis combines the flexibility of D/A conversion with
  288.   the multiple channel capability of FM synthesis. With this scheme
  289.   digitized voices can be downloaded into dedicated memory, and then
  290.   played, combined, and modified with little CPU overhead. State of the
  291.   art sound cards all support wavetable synthesis.
  292.  
  293.   Most sound cards provide the capability of mixing, combining signals
  294.   from different input sources and controlling gain levels.
  295.  
  296.   MIDI stands for Musical Instrument Digital Interface, and is a
  297.   standard hardware and software protocol for allowing musical
  298.   instruments to communicate with each other. The events sent over a
  299.   MIDI bus can also be stored as MIDI files for later editing and
  300.   playback. Many sound cards provide a MIDI interface. Those that do not
  301.   can still play MIDI files using the on-board capabilities of the sound
  302.   card.
  303.  
  304.   MOD files are a common format for computer generated songs. As well as
  305.   information about the musical notes to be played, the files contain
  306.   digitized samples for the instruments (or voices). MOD files
  307.   originated on the Amiga computer, but can be played on other systems,
  308.   including Linux, with suitable software.
  309.  
  310.  
  311.   3.  Supported Hardware
  312.  
  313.  
  314.   This section lists the sound cards and interfaces that are currently
  315.   supported under Linux. The information here is based on the latest
  316.   Linux kernel, which at time of writing was version 2.2.4. This
  317.   document only applies to the sound drivers included with the standard
  318.   Linux kernel source distribution. There are other sound drivers
  319.   available for Linux (see the later section entitled Alternate Sound
  320.   Drivers).
  321.  
  322.   For the latest information on supported sound cards and features see
  323.   the files included with the Linux kernel source code, usually
  324.   installed in the directory /usr/src/linux/Documentation/sound.
  325.  
  326.   The information in this HOWTO is valid for Linux on the Intel
  327.   platform.
  328.  
  329.   The sound driver should also work with most sound cards on the Alpha
  330.   platform. However, some cards may conflict with I/O ports of other
  331.   devices on Alpha systems even though they work perfectly on i386
  332.   machines, so in general it's not possible to tell if a given card will
  333.   work or not without actually trying it.
  334.  
  335.   Users have reported that the sound driver was not yet working on the
  336.   PowerPC version of Linux, but it should be supported in future.
  337.  
  338.   Sound can be configured into the kernel under the MIPs port of Linux,
  339.   and some MIPs machines have EISA slots and/or built in sound hardware.
  340.   I'm told the Linux-MIPs group is interested in adding sound support in
  341.   the future.
  342.  
  343.   The Linux kernel includes a separate driver for the Atari and Amiga
  344.   versions of Linux that implements a compatible subset of the sound
  345.   driver on the Intel platform using the built-in sound hardware on
  346.   these machines.
  347.  
  348.   The SPARC port of Linux currently has sound support for some models of
  349.   Sun workstations. I've been told that the on-board sound hardware
  350.   works but the external DSP audio box is not supported because Sun has
  351.   not released the specifications for it.
  352.  
  353.  
  354.   3.1.  Sound Cards
  355.  
  356.  
  357.   The following sound cards are supported by the Linux kernel sound
  358.   driver. Some of the items listed are audio chip sets rather than
  359.   models of sound cards. The list is incomplete because there are many
  360.   sound cards compatible with these that will work under Linux. To add
  361.   further to the confusion, some manufacturers periodically change the
  362.   design of their cards causing incompatibilities and continue to sell
  363.   them as the same model.
  364.  
  365.  
  366.   ╖  6850 UART MIDI Interface
  367.  
  368.   ╖  AD1816/AD1816A based cards
  369.  
  370.   ╖  ADSP-2115
  371.  
  372.   ╖  ALS-007 based cards (Avance Logic)
  373.  
  374.   ╖  ATI Stereo F/X (no longer manufactured)
  375.  
  376.   ╖  Acer FX-3D
  377.  
  378.   ╖  AdLib (no longer manufactured)
  379.  
  380.   ╖  Audio Excel DSP 16
  381.  
  382.   ╖  AudioDrive
  383.  
  384.   ╖  CMI8330 sound chip
  385.  
  386.   ╖  Compaq Deskpro XL onboard sound
  387.  
  388.   ╖  Corel Netwinder WaveArtist
  389.  
  390.   ╖  Crystal CS423x
  391.  
  392.   ╖  ESC614
  393.  
  394.   ╖  ESS1688 sound chip
  395.  
  396.  
  397.   ╖  ESS1788 sound chip
  398.  
  399.   ╖  ESS1868 sound chip
  400.  
  401.   ╖  ESS1869 sound chip
  402.  
  403.   ╖  ESS1887 sound chip
  404.  
  405.   ╖  ESS1888 sound chip
  406.  
  407.   ╖  ESS688 sound chip
  408.  
  409.   ╖  ES1370 sound chip
  410.  
  411.   ╖  ES1371 sound chip
  412.  
  413.   ╖  Ensoniq AudioPCI (ES1370)
  414.  
  415.   ╖  Ensoniq AudioPCI 97 (ES1371)
  416.  
  417.   ╖  Ensoniq SoundScape (and compatibles made by Reveal and Spea)
  418.  
  419.   ╖  Gallant SC-6000
  420.  
  421.   ╖  Gallant SC-6600
  422.  
  423.   ╖  Gravis Ultrasound
  424.  
  425.   ╖  Gravis Ultrasound ACE
  426.  
  427.   ╖  Gravis Ultrasound Max
  428.  
  429.   ╖  Gravis Ultrasound with 16 bit sampling option
  430.  
  431.   ╖  HP Kayak
  432.  
  433.   ╖  Highscreen Sound-Booster 32 Wave 3D
  434.  
  435.   ╖  IBM MWAVE
  436.  
  437.   ╖  Logitech Sound Man 16
  438.  
  439.   ╖  Logitech SoundMan Games
  440.  
  441.   ╖  Logitech SoundMan Wave
  442.  
  443.   ╖  MAD16 Pro (OPTi 82C928, 82C929, 82C930, 82C924 chipsets)
  444.  
  445.   ╖  Media Vision Jazz16
  446.  
  447.   ╖  MediaTriX AudioTriX Pro
  448.  
  449.   ╖  Microsoft Windows Sound System (MSS/WSS)
  450.  
  451.   ╖  MiroSOUND PCM12
  452.  
  453.   ╖  Mozart (OAK OTI-601)
  454.  
  455.   ╖  OPTi 82C931
  456.  
  457.   ╖  Orchid SW32
  458.  
  459.   ╖  Personal Sound System (PSS)
  460.  
  461.   ╖  Pinnacle MultiSound
  462.  
  463.   ╖  Pro Audio Spectrum 16
  464.  
  465.   ╖  Pro Audio Studio 16
  466.  
  467.   ╖  Pro Sonic 16
  468.  
  469.   ╖  Roland MPU-401 MIDI interface
  470.  
  471.   ╖  S3 SonicVibes
  472.  
  473.   ╖  SY-1816
  474.  
  475.   ╖  Sound Blaster 1.0
  476.  
  477.   ╖  Sound Blaster 2.0
  478.  
  479.   ╖  Sound Blaster 16
  480.  
  481.   ╖  Sound Blaster 16ASP
  482.  
  483.   ╖  Sound Blaster 32
  484.  
  485.   ╖  Sound Blaster 64
  486.  
  487.   ╖  Sound Blaster AWE32
  488.  
  489.   ╖  Sound Blaster AWE64
  490.  
  491.   ╖  Sound Blaster PCI 128
  492.  
  493.   ╖  Sound Blaster Pro
  494.  
  495.   ╖  Sound Blaster Vibra16
  496.  
  497.   ╖  Sound Blaster Vibra16X
  498.  
  499.   ╖  TI TM4000M notebook
  500.  
  501.   ╖  Terratec Base 1
  502.  
  503.   ╖  Terratec Base 64
  504.  
  505.   ╖  ThunderBoard
  506.  
  507.   ╖  Turtle Beach Maui
  508.  
  509.   ╖  Turtle Beach MultiSound Classic
  510.  
  511.   ╖  Turtle Beach MultiSound Fiji
  512.  
  513.   ╖  Turtle Beach MultiSound Hurricane
  514.  
  515.   ╖  Turtle Beach MultiSound Monterey
  516.  
  517.   ╖  Turtle Beach MultiSound Pinnacle
  518.  
  519.   ╖  Turtle Beach MultiSound Tahiti
  520.  
  521.   ╖  Turtle Beach WaveFront Maui
  522.  
  523.   ╖  Turtle Beach WaveFront Tropez
  524.  
  525.   ╖  Turtle Beach WaveFront Tropez+
  526.  
  527.   ╖  VIA chip set
  528.  
  529.   ╖  VIDC 16-bit sound
  530.  
  531.   ╖  Yamaha OPL2 sound chip
  532.  
  533.   ╖  Yamaha OPL3 sound chip
  534.  
  535.   ╖  Yamaha OPL3-SA1 sound chip
  536.  
  537.   ╖  Yamaha OPL3-SA2 sound chip
  538.  
  539.   ╖  Yamaha OPL3-SA3 sound chip
  540.  
  541.   ╖  Yamaha OPL3-SAx sound chip
  542.  
  543.   ╖  Yamaha OPL4 sound chip
  544.  
  545.   A word about compatibility: even though most sound cards are claimed
  546.   to be SoundBlaster compatible, very few currently sold cards are
  547.   compatible enough to work with the Linux SoundBlaster driver. These
  548.   cards usually work better using the MSS/WSS or MAD16 driver. Only real
  549.   SoundBlaster cards made by Creative Labs, which use Creative's custom
  550.   chips (e.g. SoundBlaster16 Vibra), MV Jazz16 and ESS688/1688 based
  551.   cards generally work with the SoundBlaster driver. Trying to use a
  552.   SoundBlaster Pro compatible 16 bit sound card with the SoundBlaster
  553.   driver is usually just a waste of time.
  554.  
  555.   The Linux kernel supports the SCSI port provided on some sound cards
  556.   (e.g. ProAudioSpectrum 16) and the proprietary interface for some CD-
  557.   ROM drives (e.g. Soundblaster Pro). See the Linux SCSI HOWTO and CDROM
  558.   HOWTO documents for more information.
  559.  
  560.   A kernel driver to support joystick ports, including those provided on
  561.   some sound cards, is included as part of the 2.2 kernels.
  562.  
  563.   Note that the kernel SCSI, CD-ROM, joystick, and sound drivers are
  564.   completely independent of each other.
  565.  
  566.  
  567.   3.2.  Alternate Sound Drivers
  568.  
  569.  
  570.   Sound support in the Linux kernel was originally written by Hannu
  571.   Savolainen. Hannu then went on to develop the Open Sound system, a
  572.   commercial set of sound drivers sold by 4Front Technologies that is
  573.   supported on a number of Unix systems. Red Hat Software sponsored Alan
  574.   Cox to enhance the kernel sound drivers to make them fully modular.
  575.   Various other people also contributed bug fixes and developed
  576.   additional drivers for new sound cards. These modified drivers were
  577.   shipped by Red Hat in their 5.0 through 5.2 releases. These changes
  578.   have now been integrated into the standard kernel as of version 2.0.
  579.   Alan Cox is now the maintainer of the standard kernel sound drivers,
  580.   although Hannu still periodically contributes code taken from the
  581.   commercial driver.
  582.  
  583.   The commercial Open Sound System driver from 4Front Technologies tends
  584.   to be easier to configure and support more sound cards, particularly
  585.   the newer models. It is also compatible with applications written for
  586.   the standard kernel sound drivers. The disadvantage is that you need
  587.   to pay for it, and you do not get source code. You can download a free
  588.   evaluation copy of the product before deciding whether to purchase it.
  589.   For more information see the 4Front Technologies web page at
  590.   <http://www.opensound.com>.
  591.  
  592.   Jaroslav Kysela and others started writing an alternate sound driver
  593.   for the Gravis UltraSound Card. The project was renamed Advanced Linux
  594.   Sound Architecture (ALSA) and has resulted in what they believe is a
  595.   more generally usable sound driver that can be used as a replacement
  596.   for the built-in kernel drivers. The ALSA drivers support a number of
  597.   popular sound cards, are full duplex, fully modularized, and
  598.   compatible with the sound architecture in the kernel. The main web
  599.   site of the ALSA project is  <http://www.alsa-project.org>. A separate
  600.   "Alsa-sound-mini-HOWTO" is available which deals with compiling and
  601.   installing these drivers.
  602.  
  603.   Markus Mummert (mum@mmk.e-technik.tu-muenchen.de) has written a driver
  604.   package for the Turtle Beach MultiSound (classic), Tahiti, and
  605.   Monterey sound cards. The documentation states:
  606.  
  607.  
  608.        It is designed for high quality hard disk recording/playback
  609.        without losing sync even on a busy system. Other features
  610.        such as wave synthesis, MIDI and digital signal processor
  611.        (DSP) cannot be used. Also, recording and playback at the
  612.        same time is not possible. It currently replaces VoxWare and
  613.        was tested on several kernel versions ranging from 1.0.9 to
  614.        1.2.1. Also, it is installable on UN*X SysV386R3.2 systems.
  615.  
  616.  
  617.   It can be found at  <http://www.cs.colorado.edu/~mccreary/tbeach>.
  618.  
  619.   Kim Burgaard (burgaard@daimi.aau.dk) has written a device driver and
  620.   utilities for the Roland MPU-401 MIDI interface. The Linux software
  621.   map entry gives this description:
  622.  
  623.  
  624.        A device driver for true Roland MPU-401 compatible MIDI
  625.        interfaces (including Roland SCC-1 and RAP-10/ATW-10). Comes
  626.        with a useful collection of utilities including a Standard
  627.        MIDI File player and recorder.
  628.  
  629.  
  630.  
  631.        Numerous improvements have been made since version 0.11a.
  632.        Among other things, the driver now features IRQ sharing pol¡
  633.        icy and complies with the new kernel module interface.
  634.        Metronome functionality, possibility for synchronizing e.g.
  635.        graphics on a per beat basis without losing precision,
  636.        advanced replay/record/overdub interface and much, much
  637.        more.
  638.  
  639.  
  640.   It can be found at
  641.   <ftp://metalab.unc.edu/pub/Linux/kernel/sound/mpu401-0.2.tar.gz>.
  642.  
  643.   Another novel use for a sound card under Linux is as a modem for
  644.   amateur packet radio. The 2.1 and later kernels include a driver that
  645.   works with SoundBlaster and Windows Sound System compatible sound
  646.   cards to implement 1200 bps AFSK and 9600 bps FSK packet protocols.
  647.   See the Linux AX25 HOWTO for details (I'm a ham myself, by the way --
  648.   callsign VE3ICH).
  649.  
  650.  
  651.   3.3.  PC Speaker
  652.  
  653.  
  654.   An alternate sound driver is available that requires no additional
  655.   sound hardware; it uses the internal PC speaker. It is mostly software
  656.   compatible with the sound card driver, but, as might be expected,
  657.   provides much lower quality output and has much more CPU overhead. The
  658.   results seem to vary, being dependent on the characteristics of the
  659.   individual loudspeaker. For more information, see the documentation
  660.   provided with the release.
  661.   The software, which has not been updated for some time, can be found
  662.   at  <ftp://ftp.informatik.hu-berlin.de/pub/Linux/hu-sound/>.
  663.  
  664.  
  665.   3.4.  Parallel Port
  666.  
  667.  
  668.   Another option is to build a digital to analog converter using a
  669.   parallel printer port and some additional components. This provides
  670.   better sound quality than the PC speaker but still has a lot of CPU
  671.   overhead. The PC sound driver package mentioned above supports this,
  672.   and includes instructions for building the necessary hardware.
  673.  
  674.  
  675.   4.  Installation
  676.  
  677.  
  678.   Configuring Linux to support sound involves the following steps:
  679.  
  680.  
  681.   1. Installing the sound card.
  682.  
  683.   2. Configuring Plug and Play (if applicable).
  684.  
  685.   3. Configuring and building the kernel for sound support.
  686.  
  687.   4. Creating the device files.
  688.  
  689.   5. Booting the Linux kernel and testing the installation.
  690.  
  691.   If you are running Red Hat Linux there is a utility called sndconfig
  692.   that in most cases will detect your sound card and set up all of the
  693.   necessary configuration files to load the appropriate sound drivers
  694.   for your card. If you are running Red Hat I suggest you try using it.
  695.   If it works for you then you can skip the rest of the instructions in
  696.   this section.
  697.  
  698.   If sndconfig fails, you are using another Linux distribution, or you
  699.   want to follow the manual method in order to better understand what
  700.   you are doing, then the next sections will cover each of these steps
  701.   in detail.
  702.  
  703.  
  704.   4.1.  Installing the Sound Card
  705.  
  706.  
  707.   Follow the manufacturer's instructions for installing the hardware or
  708.   have your dealer perform the installation.
  709.  
  710.   Older sound cards usually have switch or jumper settings for IRQ, DMA
  711.   channel, etc; note down the values used. If you are unsure, use the
  712.   factory defaults. Try to avoid conflicts with other devices (e.g.
  713.   ethernet cards, SCSI host adaptors, serial and parallel ports) if
  714.   possible.
  715.  
  716.   Usually you should use the same I/O port, IRQ, and DMA settings that
  717.   work under DOS. In some cases though (particularly with PnP cards) you
  718.   may need to use different settings to get things to work under Linux.
  719.   Some experimentation may be needed.
  720.  
  721.  
  722.   4.2.  Configuring Plug and Play
  723.  
  724.  
  725.   Most sound cards now use the Plug and Play protocol to configure
  726.   settings for i/o addresses, interrupts, and DMA channels. If you have
  727.   one of the older sound cards that uses fixed settings or jumpers, then
  728.   you can skip this section.
  729.  
  730.   As of version 2.2 Linux does not yet have full Plug and Play support
  731.   in the kernel. The preferred solution is to use the isapnp tools which
  732.   ship with most Linux distributions (or you can download them from Red
  733.   Hat's web site  <http://www.redhat.com/>).
  734.  
  735.   First check the documentation for your Linux distribution. It may
  736.   already have Plug and Play support set up for you or it may work
  737.   slightly differently than described here. If you need to configure it
  738.   yourself,the details can be found in the man pages for the isapnp
  739.   tools. Briefly the process you would normally follow is:
  740.  
  741.  
  742.   ╖  Use pnpdump to capture the possible settings for all your Plug and
  743.      Play devices, saving the result to the file /etc/isapnp.conf.
  744.  
  745.   ╖  Choose settings for the sound card that do not conflict with any
  746.      other devices in your system and uncomment the appropriate lines in
  747.      /etc/isapnp.conf. Don't forget to uncomment the (ACT Y) command
  748.      near the end.
  749.  
  750.   ╖  Make sure that isapnp is run when your system boots up, normally
  751.      done by one of the startup scripts. Reboot your system or run
  752.      isapnp manually.
  753.  
  754.   If for some reason you cannot or do not wish to use the isapnp tools,
  755.   there are a couple of other options. If you use the card under
  756.   Microsoft Windows 95 or 98, you can use the device manager to set up
  757.   the card, then soft boot into Linux using the LOADLIN program. Make
  758.   sure Windows and Linux use the same card setup parameters.
  759.  
  760.   If you use the card under DOS, you can use the icu utility that comes
  761.   with SoundBlaster16 PnP cards to configure it under DOS, then soft
  762.   boot into Linux using the LOADLIN program. Again, make sure DOS and
  763.   Linux use the same card setup parameters.
  764.  
  765.   A few of the sound card drivers include the necessary software to
  766.   initialize Plug and Play for the card. Check the documentation for
  767.   that card's driver for details.
  768.  
  769.  
  770.   4.3.  Configuring the Kernel
  771.  
  772.  
  773.   When initially installing Linux you likely used a precompiled kernel.
  774.   These kernels often do not provide sound support. It is best to
  775.   recompile the kernel yourself with the drivers you need. You may also
  776.   want to recompile the kernel in order to upgrade to a newer version or
  777.   to free up memory resources by minimizing the size of the kernel.
  778.   Later, when your sound card is working, you may wish to rebuild the
  779.   kernel sound drivers as modules.
  780.  
  781.   The Linux Kernel HOWTO <http://metalab.unc.edu/LDP/HOWTO/Kernel-
  782.   HOWTO.html> should be consulted for the details of building a kernel.
  783.   I will just mention here some issues that are specific to sound cards.
  784.  
  785.   If you have never configured the kernel for sound support before it is
  786.   a good idea to read the relevant documentation included with the
  787.   kernel sound drivers, particularly information specific to your card
  788.   type. The files can be found in the kernel documentation directory,
  789.   usually installed in /usr/src/linux/Documentation/sound.  If this
  790.   directory is missing you likely either have a very old kernel version
  791.   or you have not installed the kernel source code.
  792.  
  793.   Follow the usual procedure for building the kernel. There are
  794.   currently three interfaces to the configuration process. A graphical
  795.   user interface that runs under X11 can be invoked using make xconfig.
  796.   A menu-based system that only requires text displays is available as
  797.   make menuconfig. The original method, using make config, offers a
  798.   simple text-based interface.
  799.  
  800.   When configuring the kernel there will be many choices for selecting
  801.   the type of sound card you have and the driver options to use.  The
  802.   on-line help within the configuration tool should provide an
  803.   explanation of what each option is for. Select the appropriate options
  804.   to the best of your knowledge.
  805.  
  806.   After configuring the options you should compile and install the new
  807.   kernel as per the Kernel HOWTO.
  808.  
  809.  
  810.   4.4.  Creating the Device Files
  811.  
  812.  
  813.   For proper operation, device file entries must be created for the
  814.   sound devices. These are normally created for you during installation
  815.   of your Linux system. A quick check can be made using the command
  816.   listed below. If the output is as shown (the date stamp will vary)
  817.   then the device files are almost certainly okay.
  818.  
  819.  
  820.  
  821.        % ls -l /dev/sndstat
  822.        crw-rw-rw-   1 root     root      14,   6 Apr 25  1995 /dev/sndstat
  823.  
  824.  
  825.  
  826.  
  827.   Note that having the right device files there doesn't guarantee
  828.   anything on its own. The kernel driver must also be loaded or compiled
  829.   in before the devices will work (more on that later).
  830.  
  831.   In rare cases, if you believe the device files are wrong, you can
  832.   recreate them. Most Linux distributions have a /dev/MAKEDEV script
  833.   which can be used for this purpose.
  834.  
  835.  
  836.   4.5.  Booting Linux and Testing the Installation
  837.  
  838.  
  839.   You should now be ready to boot the new kernel and test the sound
  840.   drivers. Follow your usual procedure for installing and rebooting the
  841.   new kernel (keep the old kernel around in case of problems, of
  842.   course).
  843.  
  844.   During booting, check for a message such as the following on powerup
  845.   (if they scroll by too quickly to read, you may be able to retrieve
  846.   them with the dmesg command):
  847.  
  848.  
  849.  
  850.        Sound initialization started
  851.        <Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
  852.        <Sound Blaster 16> at 0x330 irq 5 dma 0
  853.        <Yamaha OPL3 FM> at 0x388
  854.        Sound initialization complete
  855.  
  856.  
  857.  
  858.  
  859.   This should match your sound card type and jumper settings (if any).
  860.  
  861.   Note that the above messages are not displayed when using loadable
  862.   sound driver module (unless you enable it, e.g. using insmod sound
  863.   trace_init=1).
  864.  
  865.   When the sound driver is linked into the kernel, the Sound
  866.   initialization started and Sound initialization complete messages
  867.   should be displayed. If they are not printed, it means that there is
  868.   no sound driver present in the kernel. In this case you should check
  869.   that you actually installed the kernel you compiled when enabling the
  870.   sound driver.
  871.  
  872.   If nothing is printed between the Sound initialization started and the
  873.   Sound initialization complete lines, it means that no sound devices
  874.   were detected. Most probably it means that you don't have the correct
  875.   driver enabled, the card is not supported, the I/O port is bad or that
  876.   you have a PnP card that has not been configured.
  877.  
  878.   The driver may also display some error messages and warnings during
  879.   boot. Watch for these when booting the first time after configuring
  880.   the sound driver.
  881.  
  882.   Next you should check the device file /dev/sndstat. Reading the sound
  883.   driver status device file should provide additional information on
  884.   whether the sound card driver initialized properly. Sample output
  885.   should look something like this:
  886.  
  887.  
  888.  
  889.        % cat /dev/sndstat
  890.        Sound Driver:3.5.4-960630 (Sat Jan 4 23:56:57 EST 1997 root,
  891.        Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586)
  892.        Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586
  893.        Config options: 0
  894.  
  895.        Installed drivers:
  896.        Type 1: OPL-2/OPL-3 FM
  897.        Type 2: Sound Blaster
  898.        Type 7: SB MPU-401
  899.  
  900.        Card config:
  901.        Sound Blaster at 0x220 irq 5 drq 1,5
  902.        SB MPU-401 at 0x330 irq 5 drq 0
  903.        OPL-2/OPL-3 FM at 0x388 drq 0
  904.  
  905.        Audio devices:
  906.        0: Sound Blaster 16 (4.13)
  907.  
  908.        Synth devices:
  909.        0: Yamaha OPL-3
  910.  
  911.        Midi devices:
  912.        0: Sound Blaster 16
  913.  
  914.        Timers:
  915.        0: System clock
  916.  
  917.        Mixers:
  918.        0: Sound Blaster
  919.  
  920.  
  921.  
  922.  
  923.   The command above can report some error messages. "No such file or
  924.   directory" indicates that you need to create the device files (see
  925.   section 4.3). "No such device" means that sound driver is not loaded
  926.   or linked into kernel. Go back to section 4.2 to correct this.
  927.  
  928.   If lines in the "Card config:" section of /dev/sndstat are listed
  929.   inside parentheses (such as "(SoundBlaster at 0x220 irq 5 drq 1,5)"),
  930.   it means that this device was configured but not detected.
  931.  
  932.   Now you should be ready to play a simple sound file. Get hold of a
  933.   sound sample file, and send it to the sound device as a basic check of
  934.   sound output, e.g.
  935.  
  936.  
  937.  
  938.        % cat endoftheworld >/dev/dsp
  939.        % cat crash.au >/dev/audio
  940.  
  941.  
  942.  
  943.  
  944.   (Make sure you don't omit the ">" in the commands above).
  945.  
  946.   Note that, in general, using cat is not the proper way to play audio
  947.   files, it's just a quick check. You'll want to get a proper sound
  948.   player program (described later) that will do a better job.
  949.  
  950.   This command will work only if there is at least one device listed in
  951.   the audio devices section of /dev/sndstat. If the audio devices
  952.   section is empty you should check why the device was not detected.
  953.  
  954.   If the above commands return "I/O error", you should look at the end
  955.   of the kernel messages listed using the "dmesg" command. It's likely
  956.   that an error message is printed there. Very often the message is
  957.   "Sound: DMA (output) timed out - IRQ/DRQ config error?". The above
  958.   message means that the driver didn't get the expected interrupt from
  959.   the sound card. In most cases it means that the IRQ or the DMA channel
  960.   configured to the driver doesn't work. The best way to get it working
  961.   is to try with all possible DMAs and IRQs supported by the device.
  962.  
  963.   Another possible reason is that the device is not compatible with the
  964.   device the driver is configured for. This is almost certainly the case
  965.   when a supposedly "SoundBlaster (Pro/16) compatible" sound card
  966.   doesn't work with the SoundBlaster driver. In this case you should try
  967.   to find out the device your sound card is compatible with (by posting
  968.   to the comp.os.linux.hardware newsgroup, for example).
  969.  
  970.   Some sample sound files can be obtained from
  971.   <ftp://tsx-11.mit.edu/pub/linux/packages/sound/snd-data-0.1.tar.Z>
  972.  
  973.   Now you can verify sound recording. If you have sound input
  974.   capability, you can do a quick test of this using commands such as the
  975.   following:
  976.  
  977.  
  978.  
  979.        # record 4 seconds of audio from microphone
  980.        EDT% dd bs=8k count=4 </dev/audio >sample.au
  981.        4+0 records in
  982.        4+0 records out
  983.        # play back sound
  984.        % cat sample.au >/dev/audio
  985.  
  986.  
  987.  
  988.  
  989.   Obviously for this to work you need a microphone connected to the
  990.   sound card and you should speak into it. You may also need to obtain a
  991.   mixer program to set the microphone as the input device and adjust the
  992.   recording gain level.
  993.  
  994.   If these tests pass, you can be reasonably confident that the sound
  995.   D/A and A/D hardware and software are working. If you experience
  996.   problems, refer to the next section of this document.
  997.  
  998.  
  999.   4.6.  Troubleshooting
  1000.  
  1001.  
  1002.   If you still encounter problems after following the instructions in
  1003.   the HOWTO, here are some things to check. The checks are listed in
  1004.   increasing order of complexity. If a check fails, solve the problem
  1005.   before moving to the next stage.
  1006.  
  1007.  
  1008.   4.6.1.  Step 1: Make sure you are really running the kernel you com¡
  1009.   piled.
  1010.  
  1011.  
  1012.   You can check the date stamp on the kernel to see if you are running
  1013.   the one that you compiled with sound support. You can do this with the
  1014.   uname command:
  1015.  
  1016.  
  1017.  
  1018.        % uname -a
  1019.        Linux fizzbin 2.2.4 #1 Tue Mar 23 11:23:21 EST 1999 i586 unknown
  1020.  
  1021.  
  1022.  
  1023.  
  1024.   or by displaying the file /proc/version:
  1025.  
  1026.  
  1027.  
  1028.        % cat /proc/version
  1029.        Linux version 2.2.4 (root@fizzbin) (gcc version 2.7.2.3) #1 Tue Mar 23 11:23:21 EST 1999
  1030.  
  1031.  
  1032.  
  1033.  
  1034.   If the date stamp doesn't seem to match when you compiled the kernel,
  1035.   then you are running an old kernel. Did you really reboot? If you use
  1036.   LILO, did you re-install it (typically by running lilo)? If booting
  1037.   from floppy, did you create a new boot floppy and use it when booting?
  1038.  
  1039.  
  1040.   4.6.2.  Step 2: Make sure the kernel sound drivers are compiled in.
  1041.  
  1042.  
  1043.   The easiest way to do this is to check the output of dev/sndstat as
  1044.   described earlier. If the output is not as expected then something
  1045.   went wrong with the kernel configuration or build. Start the
  1046.   installation process again, beginning with configuration and building
  1047.   of the kernel.
  1048.  
  1049.  
  1050.   4.6.3.  Step 3: Did the kernel detect your sound card during booting?
  1051.  
  1052.  
  1053.   Make sure that the sound card was detected when the kernel booted. You
  1054.   should have seen a message on bootup. If the messages scrolled off the
  1055.   screen, you can usually recall them using the dmesg command:
  1056.  
  1057.        % dmesg
  1058.  
  1059.  
  1060.  
  1061.  
  1062.   or
  1063.  
  1064.  
  1065.  
  1066.        % tail /var/log/messages
  1067.  
  1068.  
  1069.  
  1070.  
  1071.   If your sound card was not found then something is wrong. Make sure it
  1072.   really is installed. If the sound card works under DOS then you can be
  1073.   reasonably confident that the hardware is working, so it is likely a
  1074.   problem with the kernel configuration. Either you configured your
  1075.   sound card as the wrong type or wrong parameters, or your sound card
  1076.   is not compatible with any of the Linux kernel sound card drivers.
  1077.  
  1078.   One possibility is that your sound card is one of the compatible type
  1079.   that requires initialization by the DOS driver. Try booting DOS and
  1080.   loading the vendor supplied sound card driver. Then soft boot Linux
  1081.   using Control-Alt-Delete. Make sure that card I/O address, DMA, and
  1082.   IRQ settings for Linux are the same as used under DOS. Read the
  1083.   Readme.cards file from the sound driver source distribution for hints
  1084.   on configuring your card type.
  1085.  
  1086.   If your sound card is not listed in this document, it is possible that
  1087.   the Linux drivers do not support it. You can check with some of the
  1088.   references listed at the end of this document for assistance.
  1089.  
  1090.  
  1091.   4.6.4.  Step 4: Can you read data from the dsp device?
  1092.  
  1093.  
  1094.   Try reading from the /dev/audio device using the dd command listed
  1095.   earlier in this document. The command should run without errors.
  1096.  
  1097.   If it doesn't work, then chances are that the problem is an IRQ or DMA
  1098.   conflict or some kind of hardware incompatibility (the device is not
  1099.   supported by Linux or the driver is configured for a wrong device).
  1100.  
  1101.   A remote possibility is broken hardware. Try testing the sound card
  1102.   under DOS, if possible, to eliminate that as a possibility.
  1103.  
  1104.  
  1105.   4.6.5.  When All Else Fails
  1106.  
  1107.  
  1108.   If you still have problems, here are some final suggestions for things
  1109.   to try:
  1110.  
  1111.  
  1112.   ╖  carefully re-read this HOWTO document
  1113.  
  1114.   ╖  read the references listed at the end of this document and the
  1115.      relevant kernel source documentation files
  1116.  
  1117.   ╖  post a question to one of the comp.os.linux or other Usenet
  1118.      newsgroups (comp.os.linux.hardware is a good choice; because of the
  1119.      high level of traffic in these groups it helps to put the string
  1120.      "sound" in the subject header for the article so the right experts
  1121.      will see it)
  1122.  
  1123.   ╖  Using a web/Usenet search engine with an intelligently selected
  1124.      search criteria can give very good results quickly. One such choice
  1125.      is <http://www.altavista.digital.com>
  1126.  
  1127.   ╖  try using the latest Linux kernel (but only as a last resort, the
  1128.      latest development kernels can be unstable)
  1129.  
  1130.   ╖  send mail to the author of the sound driver
  1131.  
  1132.   ╖  send mail to the author of the Sound HOWTO
  1133.  
  1134.   ╖  fire up emacs and type Esc-x doctor :-)
  1135.  
  1136.  
  1137.   5.  Applications Supporting Sound
  1138.  
  1139.  
  1140.   I give here a sample of the types of applications that you likely want
  1141.   if you have a sound card under Linux. You can check the Linux Software
  1142.   Map, Internet archive sites, and/or files on your Linux CD-ROM for
  1143.   more up to date information.
  1144.  
  1145.   As a minimum, you will likely want to obtain the following sound
  1146.   applications:
  1147.  
  1148.  
  1149.   ╖  audio file format conversion utility (e.g. sox)
  1150.  
  1151.   ╖  mixer utility (e.g. aumix or xmix)
  1152.  
  1153.   ╖  digitized file player/recorder (e.g. play or wavplay)
  1154.  
  1155.   ╖  MOD file player (e.g. tracker)
  1156.  
  1157.   ╖  MIDI file player (e.g. playmidi)
  1158.  
  1159.   There are text-based as well as GUI-based versions of most of these
  1160.   tools. There are also some more esoteric applications (e.g. speech
  1161.   synthesis and recognition) that you may wish to try.
  1162.  
  1163.  
  1164.   6.  Answers To Frequently Asked Questions
  1165.  
  1166.  
  1167.   This section answers some of the questions that have been commonly
  1168.   asked on the Usenet news groups and mailing lists.
  1169.  
  1170.   Answers to more questions can also be found at the OSS sound driver
  1171.   web page.
  1172.  
  1173.  
  1174.   6.1.  What are the various sound device files?
  1175.  
  1176.  
  1177.   These are the most standard device file names, some Linux
  1178.   distributions may use slightly different names.
  1179.  
  1180.  
  1181.      /dev/audio
  1182.         normally a link to /dev/audio0
  1183.  
  1184.      /dev/audio0
  1185.         Sun workstation compatible audio device (only a partial
  1186.         implementation, does not support Sun ioctl interface, just u-law
  1187.         encoding)
  1188.  
  1189.      /dev/audio1
  1190.         second audio device (if supported by sound card or if more than
  1191.         one sound card installed)
  1192.  
  1193.      /dev/dsp
  1194.         normally a link to /dev/dsp0
  1195.  
  1196.      /dev/dsp0
  1197.         first digital sampling device
  1198.  
  1199.      /dev/dsp1
  1200.         second digital sampling device
  1201.  
  1202.      /dev/mixer
  1203.         normally a link to /dev/mixer0
  1204.  
  1205.      /dev/mixer0
  1206.         first sound mixer
  1207.  
  1208.      /dev/mixer1
  1209.         second sound mixer
  1210.  
  1211.      /dev/music
  1212.         high-level sequencer interface
  1213.  
  1214.      /dev/sequencer
  1215.         low level MIDI, FM, and GUS access
  1216.  
  1217.      /dev/sequencer2
  1218.         normally a link to /dev/music
  1219.  
  1220.      /dev/midi00
  1221.         1st raw MIDI port
  1222.  
  1223.      /dev/midi01
  1224.         2nd raw MIDI port
  1225.  
  1226.      /dev/midi02
  1227.         3rd raw MIDI port
  1228.  
  1229.      /dev/midi03
  1230.         4th raw MIDI port
  1231.  
  1232.      /dev/sndstat
  1233.         displays sound driver status when read (also available as
  1234.         /proc/sound)
  1235.  
  1236.   The PC speaker driver provides the following devices:
  1237.  
  1238.  
  1239.      /dev/pcaudio
  1240.         equivalent to /dev/audio
  1241.  
  1242.      /dev/pcsp
  1243.         equivalent to /dev/dsp
  1244.  
  1245.      /dev/pcmixer
  1246.         equivalent to /dev/mixer
  1247.  
  1248.  
  1249.   6.2.  How can I play a sound sample?
  1250.  
  1251.  
  1252.   Sun workstation (.au) sound files can be played by sending them to the
  1253.   /dev/audio device. Raw samples can be sent to /dev/dsp. This will
  1254.   generally give poor results though, and using a program such as play
  1255.   is preferable, as it will recognize most file types and set the sound
  1256.   card to the correct sampling rate, etc.
  1257.  
  1258.   Programs like wavplay or vplay (in the snd-util package) will give
  1259.   best results with WAV files. However they don't recognize Microsoft
  1260.   ADPCM compressed WAV files. Also older versions of play (from the Lsox
  1261.   package) doesn't work well with 16 bit WAV files.
  1262.  
  1263.   The splay command included in the snd-util package can be used to play
  1264.   most sound files if proper parameters are entered manually in the
  1265.   command line.
  1266.  
  1267.  
  1268.   6.3.  How can I record a sample?
  1269.  
  1270.  
  1271.   Reading /dev/audio or /dev/dsp will return sampled data that can be
  1272.   redirected to a file. A program such as vrec makes it easier to
  1273.   control the sampling rate, duration, etc. You may also need a mixer
  1274.   program to select the appropriate input device.
  1275.  
  1276.  
  1277.   6.4.  Can I have more than one sound card?
  1278.  
  1279.  
  1280.   With the current sound driver it's possible to have several
  1281.   SoundBlaster, SoundBlaster/Pro, SoundBlaster16, MPU-401 or MSS cards
  1282.   at the same time on the system. Installing two SoundBlasters is
  1283.   possible but requires defining the macros SB2_BASE, SB2_IRQ, SB2_DMA
  1284.   and (in some cases) SB2_DMA2 by editing local.h manually. It's also
  1285.   possible to have a SoundBlaster at the same time as a PAS16.
  1286.  
  1287.   With the 2.0 and newer kernels that configure sound using make config,
  1288.   instead of local.h, you need to edit the file
  1289.   /usr/include/linux/autoconf.h. After the section containing the lines:
  1290.  
  1291.  
  1292.  
  1293.        #define SBC_BASE 0x220
  1294.        #define SBC_IRQ (5)
  1295.        #define SBC_DMA (1)
  1296.        #define SB_DMA2 (5)
  1297.        #define SB_MPU_BASE 0x0
  1298.        #define SB_MPU_IRQ (-1)
  1299.  
  1300.  
  1301.  
  1302.  
  1303.   add these lines (with values appropriate for your system):
  1304.  
  1305.  
  1306.  
  1307.        #define SB2_BASE 0x330
  1308.        #define SB2_IRQ (7)
  1309.        #define SB2_DMA (2)
  1310.        #define SB2_DMA2 (2)
  1311.  
  1312.  
  1313.  
  1314.  
  1315.   The following drivers don't permit multiple instances:
  1316.  
  1317.  
  1318.   ╖  GUS (driver limitation)
  1319.  
  1320.  
  1321.   ╖  MAD16 (hardware limitation)
  1322.  
  1323.   ╖  AudioTrix Pro (hardware limitation)
  1324.  
  1325.   ╖  CS4232 (hardware limitation)
  1326.  
  1327.  
  1328.   6.5.  Error: No such file or directory for sound devices
  1329.  
  1330.  
  1331.   You need to create the sound driver device files. See the section on
  1332.   creating device files. If you do have the device files, ensure that
  1333.   they have the correct major and minor device numbers (some older CD-
  1334.   ROM distributions of Linux may not create the correct device files
  1335.   during installation).
  1336.  
  1337.  
  1338.   6.6.  Error: No such device for sound devices
  1339.  
  1340.  
  1341.   You have not booted with a kernel containing the sound driver or the
  1342.   I/O address configuration doesn't match your hardware. Check that you
  1343.   are running the newly compiled kernel and verify that the settings
  1344.   entered when configuring the sound driver match your hardware setup.
  1345.  
  1346.  
  1347.   6.7.  Error: No space left on device for sound devices
  1348.  
  1349.  
  1350.   This can happen if you tried to record data to /dev/audio or /dev/dsp
  1351.   without creating the necessary device file. The sound device is now a
  1352.   regular file, and has filled up your disk partition. You need to run
  1353.   the script described in the Creating the Device Files section of this
  1354.   document.
  1355.  
  1356.   This may also happen with Linux 2.0 and later if there is not enough
  1357.   free RAM on the system when the device is opened. The audio driver
  1358.   requires at least two pages (8k) of contiguous physical RAM for each
  1359.   DMA channel. This happens sometimes in machines with less than 16M of
  1360.   RAM or which have been running for very long time. It may be possible
  1361.   to free some RAM by compiling and running the following C program
  1362.   before trying to open the device again:
  1363.  
  1364.  
  1365.  
  1366.        main() {
  1367.          int i;
  1368.          char mem[500000];
  1369.          for (i = 0; i < 500000; i++)
  1370.            mem[i] = 0;
  1371.          exit(0);
  1372.        }
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.   6.8.  Error: Device busy for sound devices
  1379.  
  1380.  
  1381.   Only one process can open a given sound device at one time. Most
  1382.   likely some other process is using the device in question. One way to
  1383.   determine this is to use the fuser command:
  1384.  
  1385.  
  1386.  
  1387.   % fuser -v /dev/dsp
  1388.   /dev/dsp:             USER       PID ACCESS COMMAND
  1389.                         tranter    265 f....  tracker
  1390.  
  1391.  
  1392.  
  1393.  
  1394.   In the above example, the fuser command showed that process 265 had
  1395.   the device open. Waiting for the process to complete or killing it
  1396.   will allow the sound device to be accessed once again. You should run
  1397.   the fuser command as root in order to report usage by users other than
  1398.   yourself.
  1399.  
  1400.   On some systems you may need to be root when running the fuser command
  1401.   in order to see the processes of other users.
  1402.  
  1403.  
  1404.   6.9.  I still get device busy errors!
  1405.  
  1406.  
  1407.   According to Brian Gough, for the SoundBlaster cards which use DMA
  1408.   channel 1 there is a potential conflict with the QIC-02 tape driver,
  1409.   which also uses DMA 1, causing "device busy" errors. If you are using
  1410.   FTAPE, you may have this driver enabled. According to the FTAPE-HOWTO
  1411.   the QIC-02 driver is not essential for the use of FTAPE; only the
  1412.   QIC-117 driver is required. Reconfiguring the kernel to use QIC-117
  1413.   but not QIC-02 allows FTAPE and the sound-driver to coexist.
  1414.  
  1415.  
  1416.   6.10.  Partial playback of digitized sound file
  1417.  
  1418.  
  1419.   The symptom is usually that a sound sample plays for about a second
  1420.   and then stops completely or reports an error message about "missing
  1421.   IRQ" or "DMA timeout". Most likely you have incorrect IRQ or DMA
  1422.   channel settings. Verify that the kernel configuration matches the
  1423.   sound card jumper settings and that they do not conflict with some
  1424.   other card.
  1425.  
  1426.   Another symptom is sound samples that loop. This is usually caused by
  1427.   an IRQ conflict.
  1428.  
  1429.  
  1430.   6.11.  There are pauses when playing MOD files
  1431.  
  1432.  
  1433.   Playing MOD files requires considerable CPU power. You may have too
  1434.   many processes running or your computer may be too slow to play in
  1435.   real time. Your options are to:
  1436.  
  1437.  
  1438.   ╖  try playing with a lower sampling rate or in mono mode
  1439.  
  1440.   ╖  eliminate other processes
  1441.  
  1442.   ╖  buy a faster computer
  1443.  
  1444.   ╖  buy a more powerful sound card (e.g. Gravis UltraSound)
  1445.  
  1446.   If you have a Gravis UltraSound card, you should use one of the mod
  1447.   file players written specifically for the GUS (e.g. gmod).
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.   6.12.  Compile errors when compiling sound applications
  1454.  
  1455.  
  1456.   The version 1.0c and earlier sound driver used a different and
  1457.   incompatible ioctl() scheme. Obtain newer source code or make the
  1458.   necessary changes to adapt it to the new sound driver. See the sound
  1459.   driver Readme file for details.
  1460.  
  1461.   Also ensure that you have used the latest version of soundcard.h and
  1462.   ultrasound.h when compiling the application. See the installation
  1463.   instructions at beginning of this text.
  1464.  
  1465.  
  1466.   6.13.  SEGV when running sound binaries that worked previously
  1467.  
  1468.  
  1469.   This is probably the same problem described in the previous question.
  1470.  
  1471.  
  1472.   6.14.  What known bugs or limitations are there in the sound driver?
  1473.  
  1474.  
  1475.   See the files included with the sound driver kernel source.
  1476.  
  1477.  
  1478.   6.15.  Where are the sound driver ioctls() etc. documented?
  1479.  
  1480.  
  1481.   Currently the best documentation, other than the source code, is
  1482.   available at the 4Front Technologies web site,
  1483.   <http://www.opensound.com>. Another source of information is the Linux
  1484.   Multimedia Guide, described in the references section.
  1485.  
  1486.  
  1487.   6.16.  What CPU resources are needed to play or record without pauses?
  1488.  
  1489.  
  1490.   There is no easy answer to this question, as it depends on:
  1491.  
  1492.  
  1493.   ╖  whether using PCM sampling or FM synthesis
  1494.  
  1495.   ╖  sampling rate and sample size
  1496.  
  1497.   ╖  which application is used to play or record
  1498.  
  1499.   ╖  Sound Card hardware
  1500.  
  1501.   ╖  disk I/O rate, CPU clock speed, cache size, etc.
  1502.  
  1503.   In general, any 386 machine or better should be able to play samples
  1504.   or FM synthesized music on an 8 bit sound card with ease.
  1505.  
  1506.   Playing MOD files, however, requires considerable CPU resources. Some
  1507.   experimental measurements have shown that playing at 44kHz requires
  1508.   more than 40% of the speed of a 486/50 and a 386/25 can hardly play
  1509.   faster than 22 kHz (these are with an 8 bit card sound such as a
  1510.   SoundBlaster). A card such as the Gravis UltraSound card performs more
  1511.   functions in hardware, and will require less CPU resources.
  1512.  
  1513.   These statements assume the computer is not performing any other CPU
  1514.   intensive tasks.
  1515.  
  1516.   Converting sound files or adding effects using a utility such as sox
  1517.   is also much faster if you have a math coprocessor (or CPU with on
  1518.   board FPU). The kernel driver itself does not do any floating point
  1519.   calculations, though.
  1520.  
  1521.  
  1522.   6.17.  Problems with a PAS16 and an Adaptec 1542 SCSI host adaptor
  1523.  
  1524.  
  1525.   (the following explanation was supplied by seeker@indirect.com)
  1526.  
  1527.   Linux only recognizes the 1542 at address 330 (default) or 334, and
  1528.   the PAS only allows the MPU-401 emulation at 330. Even when you
  1529.   disable the MPU-401 under software, something still wants to conflict
  1530.   with the 1542 if it's at its preferred default address. Moving the
  1531.   1542 to 334 makes everyone happy.
  1532.  
  1533.  
  1534.   Additionally, both the 1542 and the PAS-16 do 16-bit DMA, so if you
  1535.   sample at 16-bit 44 KHz stereo and save the file to a SCSI drive hung
  1536.   on the 1542, you're about to have trouble. The DMAs overlap and there
  1537.   isn't enough time for RAM refresh, so you get the dread ``PARITY ERROR
  1538.   - SYSTEM HALTED'' message, with no clue to what caused it. It's made
  1539.   worse because a few second-party vendors with QIC-117 tape drives
  1540.   recommend setting the bus on/off times such that the 1542 is on even
  1541.   longer than normal. Get the SCSISEL.EXE program from Adaptec's BBS or
  1542.   several places on the internet, and reduce the BUS ON time or increase
  1543.   the BUS OFF time until the problem goes away, then move it one notch
  1544.   or more further. SCSISEL changes the EEPROM settings, so it's more
  1545.   permanent than a patch to the DOS driver line in CONFIG.SYS, and will
  1546.   work if you boot right into Linux (unlike the DOS patch). Next problem
  1547.   solved.
  1548.  
  1549.  
  1550.   Last problem - the older Symphony chipsets drastically reduced the
  1551.   timing of the I/O cycles to speed up bus accesses. None of various
  1552.   boards I've played with had any problem with the reduced timing except
  1553.   for the PAS-16. Media Vision's BBS has SYMPFIX.EXE that's supposed to
  1554.   cure the problem by twiddling a diagnostic bit in Symphony's bus
  1555.   controller, but it's not a hard guarantee. You may need to:
  1556.  
  1557.  
  1558.   ╖  get the motherboard distributor to replace the older version bus
  1559.      chip,
  1560.  
  1561.   ╖  replace the motherboard, or
  1562.  
  1563.   ╖  buy a different brand of sound card.
  1564.  
  1565.   Young Microsystems will upgrade the boards they import for around $30
  1566.   (US); other vendors may be similar if you can figure out who made or
  1567.   imported the motherboard (good luck). The problem is in ProAudio's bus
  1568.   interface chip as far as I'm concerned; nobody buys a $120 sound card
  1569.   and sticks it in a 6MHz AT. Most of them wind up in 25-40MHz 386/486
  1570.   boxes, and should be able to handle at least 12MHz bus rates if the
  1571.   chips are designed right. Exit soapbox (stage left).
  1572.  
  1573.  
  1574.   The first problem depends on the chipset used on your motherboard,
  1575.   what bus speed and other BIOS settings, and the phase of the moon.
  1576.   The second problem depends on your refresh option setting (hidden or
  1577.   synchronous), the 1542 DMA rate and (possibly) the bus I/O rate. The
  1578.   third can be determined by calling Media Vision and asking which
  1579.   flavor of Symphony chip is incompatible with their slow design. Be
  1580.   warned, though - 3 of 4 techs I talked to were brain damaged. I would
  1581.   be very leery of trusting anything they said about someone else's
  1582.   hardware, since they didn't even know their own very well.
  1583.  
  1584.  
  1585.   6.18.  Is it possible to read and write samples simultaneously?
  1586.  
  1587.  
  1588.   The drivers for some sound cards support full duplex mode. Check the
  1589.   documentation available from 4Front Technologies for information on
  1590.   how to use it.
  1591.  
  1592.  
  1593.   6.19.  My SB16 is set to IRQ 2, but configure does not allow this
  1594.   value.
  1595.  
  1596.  
  1597.   On '286 and later machines, the IRQ 2 interrupt is cascaded to the
  1598.   second interrupt controller. It is equivalent to IRQ 9.
  1599.  
  1600.  
  1601.   6.20.  If I run Linux, then boot DOS, I get errors and/or sound appli¡
  1602.   cations do not work properly.
  1603.  
  1604.  
  1605.   This happens after a soft reboot to DOS. Sometimes the error message
  1606.   misleadingly refers to a bad CONFIG.SYS file.
  1607.  
  1608.   Most of the current sound cards have software programmable IRQ and DMA
  1609.   settings. If you use different settings between Linux and MS-
  1610.   DOS/Windows, this may cause problems. Some sound cards don't accept
  1611.   new parameters without a complete reset (i.e. cycle the power or use
  1612.   the hardware reset button).
  1613.  
  1614.   The quick solution to this problem it to perform a full reboot using
  1615.   the reset button or power cycle rather than a soft reboot (e.g. Ctrl-
  1616.   Alt-Del).
  1617.  
  1618.   The correct solution is to ensure that you use the same IRQ and DMA
  1619.   settings with MS-DOS and Linux (or not to use DOS :-).
  1620.  
  1621.  
  1622.   6.21.  Problems running DOOM under Linux
  1623.  
  1624.  
  1625.   Users of the port of ID software's game DOOM for Linux may be
  1626.   interested in these notes.
  1627.  
  1628.   For correct sound output you need version 2.90 or later of the sound
  1629.   driver; it has support for the real-time DOOM mode.
  1630.  
  1631.   The sound samples are 16-bit. If you have an 8-bit sound card you can
  1632.   still get sound to work using one of several programs available in
  1633.   <ftp://metalab.unc.edu/pub/Linux/games/doom>.
  1634.  
  1635.   If performance of DOOM is poor on your system, disabling sound (by
  1636.   renaming the file sndserver) may improve it.
  1637.  
  1638.   By default DOOM does not support music (as in the DOS version). The
  1639.   program musserver will add support for music to DOOM under Linux. It
  1640.   can be found at  <ftp://pandora.st.hmc.edu/pub/linux/musserver.tgz>.
  1641.  
  1642.  
  1643.   6.22.  How can I reduce noise picked up by my sound card?
  1644.  
  1645.  
  1646.   Using good quality shielded cables and trying the sound card in
  1647.   different slots may help reduce noise. If the sound card has a volume
  1648.   control, you can try different settings (maximum is probably best).
  1649.   Using a mixer program you can make sure that undesired inputs (e.g.
  1650.   microphone) are set to zero gain.
  1651.   Philipp Braunbeck reported that on his ESS-1868 sound card there was a
  1652.   jumper to turn off the built-in amplifier which helped reduce noise
  1653.   when enabled.
  1654.  
  1655.   On one 386 system I found that the kernel command line option no-hlt
  1656.   reduced the noise level. This tells the kernel not to use the halt
  1657.   instruction when running the idle process loop. You can try this
  1658.   manually when booting, or set it up using the command append="no-hlt"
  1659.   in your LILO configuration file.
  1660.  
  1661.   Some sound cards are simply not designed with good shielding and
  1662.   grounding and are prone to noise pickup.
  1663.  
  1664.  
  1665.   6.23.  I can play sounds, but not record.
  1666.  
  1667.  
  1668.   If you can play sound but not record, try these steps:
  1669.  
  1670.  
  1671.   ╖  use a mixer program to select the appropriate device (e.g.
  1672.      microphone)
  1673.  
  1674.   ╖  use the mixer to set the input gains to maximum
  1675.  
  1676.   ╖  If you can, try to test sound card recording under MS-DOS to
  1677.      determine if there is a hardware problem
  1678.  
  1679.   Sometimes a different DMA channel is used for recording than for
  1680.   playback. In this case the most probable reason is that the recording
  1681.   DMA is set up incorrectly.
  1682.  
  1683.  
  1684.   6.24.  My "compatible" sound card only works if I first initialize
  1685.   under MS-DOS.
  1686.  
  1687.  
  1688.   In most cases a "SoundBlaster compatible" card will work better under
  1689.   Linux if configured with a driver other than the SoundBlaster one.
  1690.   Most sound cards claim to be compatible (e.g. "16 bit SB Pro
  1691.   compatible" or "SB compatible 16 bit") but usually this SoundBlaster
  1692.   mode is just a hack provided for DOS games compatibility. Most cards
  1693.   have a 16 bit native mode which is likely to be supported by recent
  1694.   Linux versions (2.0.1 and later).
  1695.  
  1696.   Only with some (usually rather old) cards is it necessary to try to
  1697.   get them to work in the SoundBlaster mode. The only newer cards that
  1698.   are the exception to this rule are the Mwave-based cards.
  1699.  
  1700.  
  1701.   6.25.  My 16-bit SoundBlaster "compatible" sound card only works in
  1702.   8-bit mode under Linux.
  1703.  
  1704.  
  1705.   16-bit sound cards described as SoundBlaster compatible are really
  1706.   only compatible with the 8-bit SoundBlaster Pro. They typically have a
  1707.   16-bit mode which is not compatible with the SoundBlaster 16 and not
  1708.   compatible with the Linux sound driver.
  1709.  
  1710.   You may be able to get the card to work in 16-bit mode by using the
  1711.   MAD16 or MSS/WSS driver.
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.   6.26.  Where can I find sound applications for Linux?
  1718.  
  1719.  
  1720.   Here are some good archive sites to search for Linux specific sound
  1721.   applications:
  1722.  
  1723.  
  1724.   ╖  <ftp://metalab.unc.edu/pub/Linux/kernel/sound/>
  1725.  
  1726.   ╖  <ftp://metalab.unc.edu/pub/Linux/apps/sound/>
  1727.  
  1728.   ╖  <ftp://tsx-11.mit.edu/pub/linux/packages/sound/>
  1729.  
  1730.   ╖  <ftp://nic.funet.fi/pub/Linux/util/sound/>
  1731.  
  1732.   ╖  <ftp://nic.funet.fi/pub/Linux/xtra/snd-kit/>
  1733.  
  1734.   ╖  <ftp://nic.funet.fi/pub/Linux/ALPHA/sound/>
  1735.  
  1736.   Also see the References section of this document.
  1737.  
  1738.  
  1739.   6.27.  Can the sound driver be compiled as a loadable module?
  1740.  
  1741.  
  1742.   With recent kernels the sound driver is supported as several kernel
  1743.   loadable modules.
  1744.  
  1745.   See the files in /usr/src/linux/Documentation/sound, especially the
  1746.   files Introduction and README.modules.
  1747.  
  1748.  
  1749.   6.28.  Can I use a sound card to replace the system console beep?
  1750.  
  1751.  
  1752.   Try the oplbeep program, found at
  1753.   <ftp://metalab.unc.edu/pub/Linux/apps/sound/oplbeep-2.3.tar.gz>
  1754.  
  1755.   Another variant is the beep program found at
  1756.   <ftp://metalab.unc.edu/pub/Linux/kernel/patches/misc/modreq_beep.tgz>
  1757.  
  1758.   The modutils package has an example program and kernel patch that
  1759.   supports calling an arbitrary external program to generate sounds when
  1760.   requested by the kernel.
  1761.  
  1762.   Alternatively, with some sound cards you can connect the PC speaker
  1763.   output to the sound card so that all sounds come from the sound card
  1764.   speakers.
  1765.  
  1766.  
  1767.   6.29.  What is VoxWare?
  1768.  
  1769.  
  1770.   The commercial version of the sound drivers sold by 4Front
  1771.   Technologies was previously known by other names such as VoxWare, USS
  1772.   (Unix Sound System), and even TASD (Temporarily Anonymous Sound
  1773.   Driver). It is now marketed as OSS (Open Sound System). The version
  1774.   included in the Linux kernel is sometimes referred to as OSS/Free.
  1775.  
  1776.   For more information see the 4Front Technologies web page at
  1777.   <http://www.opensound.com/>. I wrote a review of OSS/Linux in the June
  1778.   1997 issue of Linux Journal.
  1779.  
  1780.  
  1781.  
  1782.  
  1783.   6.30.  Sox/Play/Vplay reports "invalid block size 1024"
  1784.  
  1785.  
  1786.   A change to the sound driver in version 1.3.67 broke some sound player
  1787.   programs which (incorrectly) checked that the result from the
  1788.   SNDCTL_DSP_GETBLKSIZE ioctl was greater than 4096. The latest sound
  1789.   driver versions have been fixed to avoid allocating fragments shorter
  1790.   than 4096 bytes which solves this problem with old utilities.
  1791.  
  1792.  
  1793.   6.31.  The mixer settings are reset whenever I load the sound driver
  1794.   module
  1795.  
  1796.  
  1797.   You can build the sound driver as a loadable module and use kerneld to
  1798.   automatically load and unload it. This can present one problem -
  1799.   whenever the module is reloaded the mixer settings go back to their
  1800.   default values. For some sound cards this can be too loud (e.g.
  1801.   SoundBlaster16) or too quiet. Markus Gutschke (gutschk@uni-
  1802.   muenster.de) found this solution. Use a line in your /etc/conf.modules
  1803.   file such as the following:
  1804.  
  1805.  
  1806.  
  1807.        options sound dma_buffsize=65536 && /usr/bin/setmixer igain 0 ogain 0 vol 75
  1808.  
  1809.  
  1810.  
  1811.  
  1812.   This causes your mixer program (in this case setmixer) to be run
  1813.   immediately after the sound driver is loaded. The dma_buffsize
  1814.   parameter is just a dummy value needed because the option command
  1815.   requires a command line option. Change the line as needed to match
  1816.   your mixer program and gain settings.
  1817.  
  1818.   If you have compiled the sound driver into your kernel and you want to
  1819.   set the mixer gains at boot time you can put a call to your mixer
  1820.   program in a system startup file such as /etc/rc.d/rc.local.
  1821.  
  1822.  
  1823.   6.32.  Only user root can record sound
  1824.  
  1825.  
  1826.   By default the script in Readme.linux that creates the sound device
  1827.   files only allows the devices to be read by user root. This is to plug
  1828.   a potential security hole. In a networked environment, external users
  1829.   could conceivably log in remotely to a Linux PC with a sound card and
  1830.   microphone and eavesdrop. If you are not worried about this, you can
  1831.   change the permissions used in the script.
  1832.  
  1833.   With the default setup, users can still play sound files. This is not
  1834.   a security risk but is a potential for nuisance.
  1835.  
  1836.  
  1837.   6.33.  Is the sound hardware on the IBM ThinkPad supported?
  1838.  
  1839.  
  1840.   Information on how to use the mwave sound card on an IBM ThinkPad
  1841.   laptop computer can be found in the file
  1842.   /usr/src/linux/Documentation/sound/mwave, which is part of the kernel
  1843.   source distribution.
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.   6.34.  Applications fail because my sound card has no mixer
  1850.  
  1851.  
  1852.   Some old 8-bit SoundBlaster cards have no mixer circuitry. Some sound
  1853.   applications insist on being able to open the mixer device, and fail
  1854.   with these cards. Jens Werner (werner@bert.emv.ing.tu-bs.de) reports a
  1855.   workaround for this is to link /dev/mixer to /dev/null and everything
  1856.   should work fine.
  1857.  
  1858.  
  1859.   6.35.  Problems with a SB16 CT4170
  1860.  
  1861.  
  1862.   From Scott Manley (spm@star.arm.ac.uk):
  1863.  
  1864.  
  1865.        There seems to be a new type of Soundblaster - it was sold
  1866.        to us as a SB16 - the Model no. on the Card is CT4170. These
  1867.        Beasties only have one DMA channel so when you try to set
  1868.        them up then the kernel will have trouble accessing the 16
  1869.        bit DMA. The solution is to set the second DMA to 1 so that
  1870.        the card will behave as advertised.
  1871.  
  1872.  
  1873.  
  1874.   6.36.  How to connect a MIDI keyboard to a soundcard
  1875.  
  1876.  
  1877.   From Kim G. S. OEyhus (kim@pvv.ntnu.no):
  1878.  
  1879.  
  1880.        I looked all around the internet and in sound documentation
  1881.        on how to do something as simple as connecting the MIDI out¡
  1882.        put from a master keyboard to the MIDI input on a sound
  1883.        card. I found nothing. The problem is that they both use the
  1884.        same device, /dev/midi, at least when using the OSS sound
  1885.        system. So I found a way to do it, which I want to share.
  1886.        This makes for a very simple synthesizer, with full MIDI
  1887.        support:
  1888.  
  1889.  
  1890.  
  1891.        CONNECTING A MIDI MASTER-KEYBOARD DIRECTLY TO A SOUNDCARD
  1892.        WITH MIDI
  1893.  
  1894.  
  1895.  
  1896.        A MIDI master-keyboard is a keyboard without any synthe¡
  1897.        sizer, and with only a MIDI-out plug. This can be connected
  1898.        to the 15-pin D-SUB port on most sound-cards with a suitable
  1899.        cable.
  1900.  
  1901.  
  1902.  
  1903.        Such a keyboard can be used to control the MIDI synthesizer
  1904.        device for the card, thus making a simple keyboard con¡
  1905.        trolled synthesizer.
  1906.  
  1907.  
  1908.  
  1909.        Compile the following program, say with 'gcc -o prog prog.c'
  1910.        and run it:
  1911.  
  1912.  
  1913.  
  1914.  
  1915.   #include <fcntl.h>
  1916.  
  1917.   main()
  1918.   {
  1919.     int fil, a;
  1920.     char b[256];
  1921.  
  1922.     fil=open("/dev/midi", O_RDWR);
  1923.     for(;;)
  1924.       {
  1925.         a=read(fil, b, 256);
  1926.         write(fil, b, a);
  1927.       }
  1928.   }
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.   6.37.  Problems with IRQ 15 and Ensoniq PCI 128
  1935.  
  1936.  
  1937.   From Matthew Inger (mattinger@mindless.com):
  1938.  
  1939.  
  1940.        Information on getting an Ensoniq PCI 128 card to work.
  1941.  
  1942.  
  1943.  
  1944.        The problem that it was exhibiting was that it was trying to
  1945.        use interrupt 15 by default (Plug and Pray was responsible
  1946.        for this one).  This interrupt is used by the secondary ide
  1947.        controller, and cannot be shared by other devices. You need
  1948.        to somehow force the es1370 to use another interrupt (should
  1949.        use interrupt 11 like it does under windows).
  1950.  
  1951.  
  1952.  
  1953.        I figured this one out for myself believe it or not.
  1954.  
  1955.  
  1956.  
  1957.        What I had to do was:
  1958.  
  1959.  
  1960.  
  1961.        a) in the BIOS, you have to tell the computer that you don't
  1962.        have a Plug and Play OS. I believe this is under advanced
  1963.        options in my BIOS.
  1964.  
  1965.  
  1966.  
  1967.        b) in the PCI settings in the BIOS, tell the computer to
  1968.        reserve interrupt 15 for legacy ISA devices. In my bios,
  1969.        under advanced options, there is a section for PCI settings.
  1970.        Under there, there is a Resource Exclusion area, and that's
  1971.        where to do this.
  1972.  
  1973.  
  1974.  
  1975.        When you reboot into linux you will be able to use sound. (I
  1976.        don't remember if it shows up in the boot messages or not
  1977.        like it used to).  To be safe, I ran sndconfig again so that
  1978.        it would play the test message, which sounded not great, but
  1979.        it was there. When I played a CD however, it sounded per¡
  1980.        fect.
  1981.        Don't worry about windows, I tried both my cards: ISA Modem,
  1982.        and the Sound Card out, and they work without any hitches.
  1983.  
  1984.  
  1985.  
  1986.        The odds are your BIOS will be different from mine, but you
  1987.        just have to figure out where the settings are for the above
  1988.        two items. Good luck.
  1989.  
  1990.  
  1991.  
  1992.   6.38.  Where can I get freely available MIDI patches to run SoftOSS?
  1993.  
  1994.  
  1995.   SoftOSS is a software-based wavetable synthesizer included with the
  1996.   kernel sound driver that is compatible with the Gravis Utrasound card.
  1997.   To operate the driver needs GUS compatible MIDI patch files. The
  1998.   documentation mentions the "public domain MIDIA patchset available
  1999.   from several ftp sites".
  2000.  
  2001.   As explained on the 4Front Technologies web page
  2002.   <http://www.opensound.com/softoss.html> they can be downloaded from
  2003.   <ftp://archive.cs.umbc.edu/pub/midia/instruments.tar.gz>.
  2004.  
  2005.  
  2006.   7.  References
  2007.  
  2008.  
  2009.   If you have a sound card that supports a CD-ROM or SCSI interface, the
  2010.   Linux SCSI HOWTO and the Linux CD-ROM HOWTO have additional
  2011.   information that may be useful to you.
  2012.  
  2013.   The Sound Playing HOWTO describes how to play various types of sound
  2014.   and music files under Linux.
  2015.  
  2016.   The Linux SoundBlaster AWE32/64 Mini-HOWTO describes how to get a
  2017.   SoundBlaster 32 or 64 card working under Linux.
  2018.  
  2019.   Programming information is available from the 4Front Technologies web
  2020.   site at  <http://www.opensound.com/pguide>.
  2021.  
  2022.   The following FAQs are regularly posted to the Usenet newsgroup
  2023.   news.announce as well as being archived at
  2024.   <ftp://rtfm.mit.edu/pub/usenet/news.answers>:
  2025.  
  2026.  
  2027.   ╖  PCsoundcards/generic-faq (Generic PC Soundcard FAQ)
  2028.  
  2029.   ╖  PCsoundcards/soundcard-faq (comp.sys.ibm.pc.soundcard FAQ)
  2030.  
  2031.   ╖  PCsoundcards/gravis-ultrasound/faq (Gravis UltraSound FAQ)
  2032.  
  2033.   ╖  audio-fmts/part1 (Audio file format descriptions)
  2034.  
  2035.   ╖  audio-fmts/part2 (Audio file format descriptions)
  2036.  
  2037.   The FAQs also list several product specific mailing lists and archive
  2038.   sites. The following Usenet news groups discuss sound and/or music
  2039.   related issues:
  2040.  
  2041.  
  2042.   ╖  alt.binaries.sounds.* (various groups for posting sound files)
  2043.  
  2044.   ╖  alt.binaries.multimedia (for posting Multimedia files)
  2045.  
  2046.  
  2047.   ╖  alt.sb.programmer (Soundblaster programming topics)
  2048.  
  2049.   ╖  comp.multimedia (Multimedia topics)
  2050.  
  2051.   ╖  comp.music (Computer music theory and research)
  2052.  
  2053.   ╖  comp.sys.ibm.pc.soundcard.* (various IBM PC sound card groups)
  2054.  
  2055.   A web site dedicated to multimedia can be found at
  2056.   <http://viswiz.gmd.de/MultimediaInfo/>. Another good site for Linux
  2057.   MIDI and sound applications is  <http://sound.condorow.net/>. Creative
  2058.   Labs has a web site at <http://www.creaf.com/>. MediaTrix has a web
  2059.   site at  <http://www.mediatrix.com/>.
  2060.  
  2061.   The Linux mailing list has a number of "channels" dedicated to
  2062.   different topics, including sound. To find out how to join, send a
  2063.   mail message with the word "help" as the message body to
  2064.   majordomo@vger.rutgers.edu. These mailing lists are not recommended
  2065.   for questions on sound card setup etc., they are intended for
  2066.   development related discussion.
  2067.  
  2068.   As mentioned several times before, the kernel sound driver includes a
  2069.   number of Readme files containing useful information about the sound
  2070.   card driver. These can typically be found in the directory
  2071.   /usr/src/linux/drivers/sound.
  2072.  
  2073.   Information on OSS, the commercial sound driver for Linux and other
  2074.   Unix compatible operating systems, can be found at the 4Front
  2075.   Technologies web page at  <http://www.opensound.com/>.
  2076.  
  2077.   The Linux Software Map (LSM) is an invaluable reference for locating
  2078.   Linux software. Searching the LSM for keywords such as sound is a good
  2079.   way to identify applications related to sound hardware. The LSM can be
  2080.   found on various anonymous FTP sites, including
  2081.   <ftp://metalab.unc.edu/pub/Linux/docs/LSM/> (formerly known as
  2082.   sunsite). There are also various web sites that maintain databases of
  2083.   Linux applications. One such site is  <http://www.freshmeat.net>.
  2084.  
  2085.   The Linux Documentation Project has produced several books on Linux,
  2086.   including Linux Installation and Getting Started. These are freely
  2087.   available by anonymous FTP from major Linux archive sites or can be
  2088.   purchased in hardcopy format.
  2089.  
  2090.   Finally, a shameless plug: If you want to learn a lot more about
  2091.   multimedia under Linux (especially CD-ROM and sound card applications
  2092.   and programming), check out my book Linux Multimedia Guide, ISBN
  2093.   1-56592-219-0, published by O'Reilly and Associates. As well as the
  2094.   original English version, French and Japanese translations are now in
  2095.   print. For details, call 800-998-9938 in North America or check the
  2096.   web page  <http://www.ora.com/catalog/multilinux/noframes.html> or my
  2097.   home page  <http://www.pobox.com/~tranter>.
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.