ALSA FAQ 
8/28/99

Maintained by John Fulmer 

--------------------------------------------------------------------------------

Introduction


"And while we don't have a Shy Pride Week, we do have many private moments when
we keep our thought to ourselves, such as 'Shy is nice,' 'Walk short,' 'Be
proud--shut up,' and 'Shy is beautiful, for the most part.' These are some that
I thought up myself. Perhaps other persons have some of their own, I don't
know."
	-Garrison Keillor, "Shy Rights, Why Not Pretty Soon?"



This is the official FAQ for the installation and usage of the Advanced Linux
Sound Architecture, or ALSA. ALSA is currently changing quickly and hopefully
this document can keep pace with it. To keep it as current as possible,
users/testers/developers are highly encouraged to e-mail changes,
clarifications, and gripes to the FAQ maintainer (me) listed at the top of this
file. Flames go to /dev/null.  


Most information contained here has been taken from the alsa-user and alsa-devel
mailing lists. Other information has been collected through e-mail from current
ALSA users or out of my own mis-adventures. 
 

This document may always be found at
http://www.alsa-project.org/~jfulmer/alsa-faq.html It will be updated twice a
month, and change notifications will be announced on the ALSA mailing lists.  


--------------------------------------------------------------------------------

Questions


"An Oya (pronounced "O-yah") converses by means of questions, if at all. His
opening remark might be "That's quite the deal, isn't it?" if his host is busy,
or "Not too busy today, huh?" if the host is relaxing. Next, he might well ask,
"What do you have in your hand there? A sharp stick?" for by this time the host
has realized that he is in for a long afternoon unless he takes stern measures.
He must at all costs drive the Oya off before he is asked, "What is the matter?
Why don't you like me?" "
	-Garrison Keillor, "Oya Life These Days"
	

i.	Administrativa

	i.1 Eeeewww. The FAQ's in text! Why?
	i.2 Who do we thank?
	i.3 How can I make sure my stuff is seen by the FAQ maintainer
*NEW	i.4 FAQ License
	
1.General/Development

        1.1 What does ALSA stand for?
        1.2 Who is writing ALSA? 
        1.3 What are the goals for ALSA?
*MOD	1.4 What is the latest version of ALSA?
	1.5 What is the current status of ALSA?
	1.6 What is OSS/Free?
        1.7 What is the matter with OSS/Free drivers?
	1.7.1 I read that ALSA considers OSS obsolete, and this is reflected in
	      ALSA's documentation. Is this true?
	1.8 What vendors are actively supporting ALSA?
	1.9 What cards are currently supported?
*MOD	1.10 What cards will NOT be supported by ALSA? Why not?
        1.11 Where can I get more information about ALSA?
        1.12 Why is there no good documentation for ALSA?
*MOD	1.13 How can I contribute? What do I need to know?
        1.14 What's the "best" card for ALSA?
	1.15 Will ALSA be part of the Linux kernel?
	1.16 How do I report bugs?
	1.17 What sample rates, number of voices, and sample resolutions can 
	     ALSA support?

2. Installation

        2.1 How do I install ALSA
        2.2 Does ALSA support kernel 2.X.X?
        2.3 Does ALSA work with kernels compiled with SMP support
        2.4 Does ALSA support ISA PnP cards?
        2.5 Where can I download ALSA from?
	2.6 Where can I get development CVS versions of ALSA.
        2.7 When I try to compile ALSA, I get an error. What's wrong?
	2.8 ALSA seems to load fine, but I get no/choppy sound. What's wrong?
        2.9 What can I look at to get more information about my installed 
	    ALSA drivers?
	2.10 I read that I can use "--with-cards=" to compile drivers just 
	     for my soundcard. Should I do this?
	2.11 Any idea why my XXX soundcard with XXXX can't be detected?
	2.12 With the S3 SonicVibes, I get zero elements in the mixer. 
	     Everything seems to play but I just don't hear it. Why?
	2.13 I currently have 2 sound cards, 1 PnP ISA card and 1 non-PnP 
	     ISA card. ALSA only seems to detect one of the cards. What's up? 
	2.14 How do I uninstall ALSA?
	2.15 Why won't my ES1373-based soundcard initialize?
	2.16 Why when installing ALSA 0.4, do I get an error mentioning
	     'isapnp'?
	       
3. Using ALSA and common problems

	3.1 What programs come with the ALSA package?
*MOD	3.2 What apps have native ALSA support?
        3.3 What OSS programs work well with ALSA?
	3.4 What OSS programs have problems with ALSA?
*MOD    3.5 How can I have ALSA's mixer set automatically when the driver loads?
	3.6 How can I get Multitrack 2.x to work with ALSA?
	3.7 Is /dev/sndstat supported by ALSA?
	3.8 Why does xamixer2 report errors?
        3.9 What is 'Hardware Mixing' and does ALSA support it?
        3.10 Does ALSA support 'Software Mixing'?
        3.11 Why doesn't ALSA use ESounD for software mixing?
        3.12 What is Full Duplex support?
        3.13 Does ALSA support Full Duplex?
	3.14 What is the status of MIDI sound under ALSA?
	3.15 Why does it say TODO? (alsamixer) Is there no support for cs 
             soundcards yet?
	3.16 Why doesn't my OSS mixer module load or OSS mixer work?
*MOD	3.17 How do I use amixer?
*MOD	3.18 How can I use an external MIDI keyboard to play piano on an
	     internal synth with ALSA? 
*NEW	3.19 The documentation for Quake(2)(3 Test) says that I must have a
	     soundcard and driver that supports mmap. Does ALSA support mmap?
*NEW	3.20 How do I enable the S/PDIF outputs on my Trident 4Dwave card?
	
	
--------------------------------------------------------------------------------

i. Administrivia


i.1 Eeeewww. The FAQ's in text! Why?


After a bit of soul searching and asking around, I decided that at this point it
would be easiest for the FAQ to be text only at this point. There were a few
reasons for this:

	-Text is easily changed and reformatted.
	-A text file is easily changed from anywhere using plain old 'vi'.
	-Text is easily formatted for web browsers.
	-I am NOT an HTML type person. :)
	-I need to spend more time gathering information, instead of worrying
	 about the presentation.
	-I DO actually work during the day, and my brain is about mush when
	 I work on this.
	
At some point in time, I'll probably convert this to SGML or another formatting
language. For now, I'll worry about getting the content right.


i.2 Who do I thank?

Everyone who has contributed to ALSA or this FAQ. Especial thanks to:

Jaroslav Kysela 
Dan Hollis 
Brion Vibber 
Frank van de Pol 
David Fries 
Christopher David 
Steve Ratcliffe 
Anders Semb Hermansen 
YoungLee 
Stan 
Dave Platt 

Thank you all!


i.3 How can I make sure my stuff is seen by the FAQ maintainer


Considering that I get several hundred e-mails a day from various mailing lists,
it is possible that some things get past me. Here's a few suggestions in making
sure that I see your e-mail

	-E-mail me directly, don't post to the list. I try to read the list
	 every day, but I do have a day job. If I miss a day or two of the list,
	 I tend to skim it, instead of reading every message. Direct e-mails are
	 always read.
	
	-Put [FAQ] in the Subject of your e-mail. It REALLY helps.

i.4 License


The text and format of this document is released under the terms of the GNU
General Public License V2, the terms of which are available at 
http://www.gnu.org/copyleft/gpl.html.


	
--------------------------------------------------------------------------------

ANSWERS

--------------------------------------------------------------------------------

General/Development

"In California, soon after her marriage to a prince (her first marriage, his
seventh), a woman named Sharon Mittel was shut up in a dungeon under the
provisions of that state's Cruel and Unnatural Parent Act, which allows the
immediate imprisonment of a stepparent upon the complaint of a stepchild. The
prince's oldest daughter accused Sharon of slapping her. She was later freed
after an appeal to a king, but she now faces a long series of tests to prove her
innocence, such as finding a tree of pure gold and a seedless grapefruit. She
also must answer some riddles."
	-Garrison Keillor, "My Stepmother, Myself"



1.1 What does ALSA stand for?

'ALSA' stands for the "Advanced Linux Sound Architecture".


1.2 Who is writing ALSA?

ALSA has been written by Jaroslav Kysela  over the last two
years, with volunteer programmers providing design ideas, driver modules,
source, and patches. The full list of contributors to the ALSA project and what
they have done may be found at http://www.alsa-project.org/contrib.html. Thank
you all very much! 

Jaroslav currently works for S.U.S.E. (http://www.suse.de, or
http://www.suse.com for the non German speaking), a German Linux distribution 
company, where he works on ALSA and other Linux related projects. 


1.3 What are the goals for ALSA?

ALSA has the following goals:

     -Create a fully GPL and LGPL'ed sound driver system for Linux.
     -Create a fully modularized sound driver.
     -Maintain backwards compatibility with most OSS applications. 
     -Create the ALSA Manager, an interactive configuration program for the
      driver.       
     -Create the ALSA Library (C, C++), which simplifies ALSA application
      development. 

In addition, ALSA will also feature:

     -Full Duplex playback/recording, for all hardware that supports it.
     -Hardware mixing of multiple audio streams, for hardware that supports it.
     -Professional quality MIDI sequencing subsystem.
     -Extensive mixer capabilities, to support advanced features of new 
      soundcards.
     -Patch handling system, for wavetable soundcards.
     -Able to support ISA PnP soundcards without external PnP config program.
     -Support for multiple soundcards in same system.
     -All included drivers are open source in the ALSA package, although 
      vendors may provide binary only drivers.
 
      
1.4 What is the latest version of ALSA? 

Latest released version is 0.4.1.  This version requires Linux kernel 2.2.3+ 

Linux 2.0.x kernels are no longer supported.

This said, most of the real action goes on in the daily CVS updates. Newer
features and bugfixes show up in the CVS long before the official point-release
tarballs, and the CVS versions tend to be very usable. See 2.5 below for
information on how to get CVS snapshots of ALSA. 


1.5 What is the current status of ALSA?

Feature					Feature Status		Devel Status

ALSA PCM audio				Working			Development
ALSA Mixer				Working			Finished
OSS PCM audio				Working			Finished
OSS Mixer				Working			Finished
ALSA Raw MIDI				Working		 	Development
OSS Raw MIDI				Working			Development
ALSA Internal Synth			Partial			Development
OSS Internal Synth			Partial			Development
4 Speaker Support			Working			Development
Full Duplex				Working			Finished
Hardware Mixing				Partial			Development
Patch Management			Not Working		Planned
3D positioning support			Not Working		Planned

Feature Status:

     -Working - Feature is fully implemented for most cards that support it.
     -Partial - Feature is implemented for only a few cards that support it.
     -Not Working - Feature is not-implemented or broken.

Development Status:

     -Finished - Feature is fully implemented for all supported cards, and 
      design should not change for ALSA 1.0 
     -Development - Feature is mostly designed and implemented for at least 
      one card. Design and API details may change before ALSA 1.0
     -Planned - Feature will be designed and implemented for ALSA 1.0


The native ALSA PCM interface is about to undergo some major changes for ALSA
.5. The proposed changes may be found at 
http://www.alsa-project.org/proposals/pcm.txt . 


1.6 What is OSS/Free?

OSS/Free is the name of the default sound driver system found in almost all
Linux kernels since the 1.0 days. It started as the
"Voxware"/"Sound-Driver-Without-A-Name" Linux drivers, which were originally
written by Hannu Savolainen. It was later developed commercially by 4Front
Technologies (http://www.4front-tech.com) and renamed to OSS. OSS has since
been ported to many other Unices, and supports many more soundcards than the
original driver. 

4Front provided a stripped down version for the Linux 2.0 kernel which was named
OSS/Free. Since then, much of the OSS/Free support and bugfixes have been
provided by Alan Cox, partially through funding by Red Hat software. 


1.7 Why should I use ALSA/What is the matter with the OSS/Free?

Nothing at all is the matter with OSS/Free, but it does have some limitations:

     -Generally hard to configure, although some distributions have 
      tried to create an easy to use front end.
     -No native PnP support.
     -Slow to support new soundcards.
     -OSS programming API is very simple and limited. No API libraries.
     -Primitive or no MIDI support for most soundcards.
     -Little or no full duplex support.
     -No hardware mixing support.
     -OSS/Free is not currently supported or under development by any working
     	groups, although 4Front occasionally contributes code back to it.

In many ways, OSS/Free is a 'teaser' to encourage people to buy OSS from
4Front, which is reported to be much easier to set up, and includes support for
many cards that OSS/Free does not. 

ALSA is an attempt to go beyond the simple interfaces that OSS provides, and to
do so in an open source fashion. It will also provide a professional quality
system for recording, playback, and MIDI sequencing. 


1.7.1 I read that ALSA considers OSS obsolete, and this is reflected in ALSA's
	documentation. Is this true?

Not at all. The issue brought up was two lines in asound.h that said:


/*
 *  Obsolete interface compatible with Open Sound System API
 */

This was not a slap at OSS, but rather a reflection that this is an obsolete
interface for ALSA, which has it's own native interface. It was not a commentary
on OSS itself.

However, for the sake of fairness and to keep the misunderstandings to a 
minimum, the word 'obsolete' was removed from asound.h.




1.8 What vendors are actively supporting ALSA?

-->Note, this list is very incomplete<--

S.U.S.E		(http://www.suse.com)		Hired Jaroslav, supporting ALSA 
						financially.
					
TridentMicro	(http://www.tridentmicro.com)	Driver source, hardware, specs, 
						promotes ALSA on home page.

ForteMedia	(http://www.ForteMedia.com)	Specs, hardware.

Cirrus Logic	(http://www.cirruslogic.com) 	Specs, help with development,
						hardware.


The above vendors are to be commended and supported by the ALSA community. 


1.9 What manufacturer's cards/systems are currently supported?

-->Note, this list is very incomplete, Please send working manufacturer and
model information to jfulmer@appin.org<-- 

This is a list of manufacturer's cards/systems known to work with the current
major release of ALSA:


--------------------------------------------------------------------------------

Gravis Ultrasound Classic
Gravis Ultrasound MAX
Gravis Ultrasound PnP
Gravis Ultrasound Extreme
STB UltraSound 32-Pro
STB Sound Rage 32
Dynasonic 3-D/Pro

Creative Sound Blaster 1.0
Creative Sound Blaster Pro
Creative Sound Blaster 2.0
Creative Sound Blaster 16
Creative Sound Blaster Vibra16C
Creative AWE 32
Creative AWE 64
Creative SB PCI 32 (all ES1730, ES1731; ES1373 chips)
Creative SB PCI 64 (all ES1730, ES1731; ES1373 chips)
Creative SB PCI 128 (all ES1730, ES1731; ES1373 chips)
Ensoniq AudioPCI1370/1371

Microsoft Sound System
PINE Schubert 32 PCI
Turtle Beach Malibu

HoonTech 4DWave-NX
HoonTech 4DWave-DX
Best Union Miss Melody 4DWave PCI
HIS 4DWave PCI
Warpspeed ONSpeed 4DWave PCI
AzTech PCI 64-Q3D
Addonics SV 750
CHIC True Sound 4Dwave
Shark Predator4D-PCI
Jaton SonicWave 4D

Toshiba Tecra 8000 Laptop (OPL3-SA)
IBM ThinkPad 360 Laptop (CS4232)
IBM ThinkPad 365 Laptop (CS4232)
IBM ThinkPad 380 Laptop (CS4232)
Dell Cpi A366XT

In addition, cards using the following chipsets SHOULD work.

ESS AudioDrive ES-18xx
ESS AudioDrive ES-1688 and ESS-688
AMD Interwave
Yamaha OPL3-SA2/SA3
OAK Mozart
ES1370, ES1371, ES1373
AD1848/AD1847/CS4248
CS4231
CS4232/CS4232A
CS4235/CS4236/CS4236B/CS4237B/CS4238B/CS4239
CS4610/CS4612/CS4615/CS4280 PCI
Trident 4DWave DX/NX
ForteMedia FM801 PCI
S3 SonicVibes PCI

Under Development/Marginally supported

SGI HAL2
CMI8330
OPTi 82C9xx
Avance Logic ALS100
Zefiro ZA2
RME-DIGI9652
ESS Solo1 (ES-1938) (currently being rewritten)
Reported to work

NeoMagic MagicMedia 256A (With OPL3-SAx driver) -- Unconfirmed

--------------------------------------------------------------------------------


1.10 What cards will NOT be supported by ALSA? Why not?

Creative Sound Blaster Live!
Aureal Vortex 
RME DIGI (Except DIGI 9652)
Yamaha SW1000xg
Yamaha YMF744B
Yamaha YMF724
Creative Vibra 16X
TerraTec Xlerate + DMX (Aurreal Vortex)
ESS Maestro1/2

Some manufacturers view the programming specifications for their hardware as a
trade secret and will only supply information if a developer signs a NDA
(non-disclosure agreement), which says that a developer will not tell or
disclose the specifications to anyone. Source code inherently discloses these
specifications and therefore cannot be released to the general public. This is
not acceptable to the developers of ALSA or to the spirit of the GPL, so
drivers may not be developed for these cards as part of the ALSA project. 

Some of these vendors (specifically Creative Labs) or others may provide a
binary-only module for their card for ALSA, but these modules will not be
distributed by ALSA or SUPPORTED BY THE ALSA DEVELOPERS. 

More information may be found at the ALSA black-list page,
http://www.alsa-project.org/black.html 


1.11 Where can I get more information about ALSA?

There are a couple very good sources of information about ALSA. The primary
source is ALSA's home page, http://www.alsa-project.org. There is also a
Japanese-only page at http://plaza22.mbn.or.jp/%7Emomokuri/alsa/. Also, there
are two mailing lists supporting the ALSA project. These are: 

alsa-devel@alsa-project.org 

Mailing list for ALSA developers. To subscribe (if you want do some work on the
driver or library) send message to alsa-devel-request@alsa-project.org with the
body 'subscribe '.  

alsa-user@alsa-project.org 

Mailing list for ALSA users. To subscribe (if you need some help with the ALSA
driver/library) send message to alsa-user-request@alsa-project.org with the
body 'subscribe '.  


1.12 Why is there no good documentation for ALSA?

Actually, there is some very good documentation, depending on what you want. If
you want to set up ALSA and use it, check out the ALSA MINI HOWTO at
http://www.alsa-project.org/~valentyn/Alsa-sound-mini-HOWTO.html. This, along
with the INSTALL document that comes with the driver source, should tell you
everything you need to know to set up ALSA. 

If you are looking for programming information, it gets at little harder. 

There is some documentation at http://www.alsa-project.org/api.html, but it is
badly outdated. 

Stephan 'Jumpy' Bartels  has started a driver module
documentation project for the .4 driver series. It is intended to provide
guidelines and example code for developing driver modules for new soundcards.
His work can be found at http://www.math.tu-berlin.de/~sbartels/alsa 

Also bear in mind that ALSA is a work in progress. Things are changing very
rapidly at this time in the project and it is hard to keep up. As ALSA
approaches 1.0, there will be official documentation to the driver, both for
users and developers. 


1.13 How can I contribute? What do I need to know?

     	-People to do ALSA programming,
        	a) module/soundcard programming (i.e. add new soundcards)
        	b) MIDI 
        	c) high-level soundcard programming - already done
        	d) work on mixers and other basic application
	-People to port existing applications to ALSA.
	-People to document "How to write an ALSA driver"
	-People to document the ALSA library
	-Driver testers and bug hunters.

Contact Jaroslav (perex@suse.cz) if you want to help, or ask on the development
mailing list.


1.14 What's the "best" card for ALSA?

The developers of ALSA try to stay away from recommending one card or another. 

However, it is generally accepted that most PCI cards currently provide better
quality (S/N ratio) than most ISA based cards. Other features that are good to
look for include: 

     -High Signal to Noise ratio (S/N). 85+db is considered good for most 
      purposes
     -3D effects.
     -Onboard MIDI polyphony synth. 64 channels is the norm these days.
     -Surround sound support (4 speaker).

Please note that no cards are currently well support for play MIDI via an
onboard synth.

Finally, vendors who support ALSA by providing specs, source, or hardware are
should be commended ...and supported by ALSA's users (hint, hint!). See
question 1.8 


1.15 Will ALSA be part of the Linux kernel?

Current plans are to submit ALSA to become part of the official kernel tree, but
this may not happen until the Linux 2.5 development cycle. This is due to the
recent  feature freeze announcement by Linus Torvalds, the short development
cycle for Linux 2.4, and the current development changes in  ALSA. Linus has
expressed that he wants all development for core linux drivers to be done in
the context of the kernel tree, which may be too slow for this stage of ALSA's
development. However, nothing has been officially decided. 

Additionally, ALSA should become the official sound driver of the S.U.S.E. Linux
distribution. Hopefully other Linux vendors will follow. 


1.16 How do I report bugs?

ALSA now has a handy bug reporting system available at
http://www.alsa-project.org/cgi-bin/bugs.

You should report any problem that you think may be caused by a bug in the ALSA
drivers. Common things that would identify potential bugs include:

       -Sudden sound problems on an existing ALSA installation. 
       -Problems with OSS apps that work fine under OSS. 
       -Problems compiling ALSA. 
       -Problems after updating to a newer ALSA version. 
       -Installation problems, if you have read the INSTALL document, and are 
       -sure that everything is properly configured. 
       -Sound stuttering or other poor performance issues. 

When reporting bugs, please make sure you are using a current point release or 
a recent CVS version. Versions older than 0.4.1 are no longer supported. 

If you are only having problems installing ALSA or aren't sure if your problem
is a bug, please try the mailing lists.


1.17 What sample rates, number of voices, and sample resolutions can ALSA 
     support?
     
From Jaroslav Kysela :

"ALSA is able to drive this hardware:

	-Rate limit - 32 bit integer
	-Voices limit - 32 bit integer
	-Formats [resolution] - up to 32 bit linear or 64 bit float samples"

Unfortunately, ALSA currently doesn't support any DSP or PCM devices that can
take advantage of higher resolutions or sample rates.

	    

--------------------------------------------------------------------------------


Installation

"Yes, many people don't have the sense that God gave geese. They just don't have
both oars in the water. Millions of manhours are spent worrying about the one
chance in six hundred billion that immense man-made objects will fall from the
sky and cream you; meanwhile, thousands of people wander off every year and get
lost in deserted areas. "
	-Garrison Keillor, "Be Careful"
		
		


2.1 How do I install ALSA

This question is far too big for just a FAQ. Check out the 'INSTALL' file that
comes with the alsa-driver package, or the ALSA MINI-HOWTO at
http://www.alsa-project.org/~valentyn/Alsa-sound-mini-HOWTO.html 

If you still have problems, ask on the mailing list. (Refer to Q 1.12)


2.2 Does ALSA support kernel 2.X.X?

Support for 2.0.x kernels was removed as of .4. If you must use a 2.0 kernel,
use version .3.x or before of the ALSA driver. 

The ALSA supports kernels 2.2.3 and above, with the 2.3 kernels being somewhat
experimental. 


2.3 Does ALSA work with kernels compiled with SMP support

Yes. The 'configure' script detects if your kernel is compiled for SMP
operation, and compiles the driver accordingly.  


2.4 Does ALSA support ISA PnP cards?

ALSA can configure ISA PnP cards itself, without need of using isapnp and
friends. ALSA needs to be configured with --with-isapnp=yes for isapnp support.
Read the INSTALL document for more information. 


2.5 Where can I download ALSA?

The ALSA point-release tarballs may be downloaded from the following places:

Primary site (CZ):

ftp://ftp.alsa-project.org/pub/
http://www.alsa-project.org/alsa/ftp/

US Mirrors

ftp://ftp.silug.org/pub/alsa
ftp://ftp.eecs.umich.edu/pub/linux/alsa
http://bigfoot.eecs.umich.edu/pub/linux/alsa/

Europe Mirrors

ftp://linux.a2000.nl/alsa
ftp://ftp.tu-clausthal.de/pub/linux/alsa
ftp://ftp.phacka.sk/pub/alsa
http://www.phacka.sk/pub/alsa

Australia Mirror

ftp://ftp.suburbia.com.au/pub/alsa

There are three major packages, each in their own subdirectory:

     alsa-driver
     alsa-lib
     alsa-util

You should install all three packages.


2.6 Where can I get current development versions of ALSA.

CVS and Rsync access are available. Check out
http://www.alsa-project.org/download.html for more information 

Daily CVS snapshots are available at ftp://ftp.alsa-project.org/cvsexport.


2.7 When I try to compile ALSA, I get an error. What's wrong?



     -Read the 'INSTALL' document that is in the alsa-driver tarball. It 
      contains many suggestions and requirements that ALSA needs to
      compile.

     -If you get something similar to the following:

      
      ./configure: syntax error near unexpected token 'AM_INIT_AUTOMAKE(alsa,' 
      ./configure: ./configure: line 525:
      'AM_INIT_AUTOMAKE(alsa-lib, 0.3.0.pre5)'
      

      then you probably have a RedHat installation that didn't install automake 
      and/or libtool. Make sure to install the automake and libtool
      packages. Check your RedHat CD or a RedHat mirror for these packages.

     -If you are using CVS, try deleting your entire CVS tree, and checking 
      out a new copy of the entire tree. Old CVS files hanging around
      have been known to cause problems.


2.8 ALSA seems to load fine, but I get no/choppy sound. What's wrong?

	-ALSA by default mutes all outputs. You must unmute at least the Main 
      	 volume and the PCM volume to get basic sound.
      
      	 The following amixer commands should unmute the appropriate mixers:
      
      	 amixer set Master on
	 amixer set PCM on
	 amixer set Master 75%
	 amixer set PCM 75%

      	 Check Q3.5 below for more information on how to do this automatically.


	-You have an ISA card and used poor settings for IOPORT, IRQ, and/or 
	 DMA.
	
	 Check your settings man make sure they match the card. If you are using
	 an ISA PnP card, try setting the IRQ and/or DMA channels to known free
	 values. If you also have Win95/Win988 installed on the same system with
	 working sound, you can check the soundcard settings under Control
	 Panel/System.  
     
	 See the INSTALL document for more details.

     	-Make sure to use the last point release (0.4) or the latest CVS 
	 version. 

	-Some DOS drivers set certain cards into an unusable state for ALSA and
	 may require a clean boot into Linux.
      
2.9 Where can I look to get more information about my installed ALSA drivers?

ALSA creates entries in the /proc filesystem under /proc/asound.


2.10 I read that I can use "--with-cards=" configure switch to compile drivers 
just for my soundcard. Should I do this?

The '--with-cards=' switch to configure is meant to allow compilation of just
the drivers for a particular sound card. 

While it should be working at this moment, '--with-cards-' does break frequently
during the development process. It is recommended that you not use this switch,
unless you know what you are doing, have the current driver working, and are
helping to debug.  

If you decide to try --with-cards and it breaks send comment to alsa-devel 
list with:
- The exact --with-cards option
- Output of "depmod -ae"


2.11 Any idea, why my XXX soundcard with XXXX can't be detected? 

Ville Syrjala  writes:

	Did you use the snd-card-X (in your case snd-card-fm801) module? 
	A common mistake is to use the snd-X (in your case snd-fm801) module 
	which is for the chipset not the whole card.


2.12 With the S3 SonicVibes, I get zero elements in the mixer. Everything 
     seems to play but I just don't hear it.
     
The mixer for the S3 SonicVibes has been fixed as of ALSA .4.0.


2.13 I currently have 2 sound cards, 1 PnP ISA card and 1 non-PnP ISA card. 
     ALSA only seems to detect one of the cards.

You must force the driver to look for a ISA non-PnP card with this
configuration.   

In your /etc/conf.modules:

options snd-card-NONPNPCHIPSET snd_isapnp=1,0


2.14 How do I uninstall ALSA?

Under Redhat, and probably other distributions, kernel modules for ALSA are 
installed under /lib/modules/kernel.version.number/misc. If you were running
a 2.1.10 kernel, the modules would be under /lib/modules/2.1.10/misc. In this
directory, delete the following files

isapnp.o
persist.o
snd*  

Also remove:

/usr/sbin/alsactl
/usr/bin/amixer
/usr/bin/xamixer2
/usr/bin/aplay
/usr/bin/arecord
/usr/bin/alsamixer

/usr/lib/libasound*

That's not quite all of them, but most of the important ones.


2.15 Why won't my ES1373-based soundcard initialize?

Dave Platt  reports:

	"I had quite a few conversations via email with David Sowa at Ensoniq,
	ran a boatload of tests, found that the card worked fine in a
	different system, swapped cards, and finally learned the answer.  Turns
	out that there's a hardware bug in one batch of one vendor's codecs,
	which causes them to lock up if the PCI reset-line timing is just so. 
	The ALI chipset in my ASUS motherboard tickled the bug, while the Intel
	chipset in my test system at work did not."
	
	
2.16 Why when installing ALSA 0.4, do I get an error mentioning	'isapnp'?

Makefile.conf.in in alsa-driver is broken. You can get a new one at 
ftp://ftp.alsa-project.org/pub/driver/Makefile.conf.in	

   

--------------------------------------------------------------------------------

Using ALSA


"...Or about the dwarves. All I can say is that they should have been named
Dopey, Sleepy, Slimy, Sleazy, Dirty, Disgusting, and Sexist. The fact is that I
KNEW the apple was poisoned. For me, it was the only way out."
	-Garrison Keillor, "My Stepmother, Myself"
		
		
	
3.1 What programs come with the ALSA package?

Currently, the following utilities are installed by alsa-utils:

aplay 		Simple, native command-line PCM (wav,au,raw,voc) player.
arecord		Simple, native command-line PCM recorder.
amixer		Native command-line mixer app.
alsamixer	Native, curses-based mixer app. (Currently Broken!)
xamixer2	Native, X windows mixer app.
alsactl		Saves/restores mixer settings to/from /etc/asound.conf
gamix		Native, GTK mixer app.


3.2 What apps have native ALSA support?

AlsaPlayer (v.99.25 Beta)
http://www.alsa-project.org/~andy/
Desc: Plays MP2, MP3, .wav, CDDA, Modules (via libMikMod), 
      operates in either GUI or non-GUI modes.

XMMS (project formally known as X11Amp) (v 0.9.1 Beta)
http://www.xmms.org/
Requires: ALSA Plugin from http://server.bohemians.org/~iznogood/
Desc: Almost complete knock-off of WinAMP. Should be interesting in the future.

Rasca (v1.2.1)
http://www.penultima.org/~rasca/
Desc: An MP3 and WAV file player that supports ALSA.

ecasound (v1.2.1r3)
http://www.wakkanet.fi/~kaiv/ecasound/welcome.html
Desc: A audioplayer, HD/multi-track recorder, effect processor, and format 
      converter with a text and Qt based UI.

mpg123 (v.59r)
http://www-ti.informatik.uni-tuebingen.de/~hippm/mpg123.html
Desc: THE command line MP3 player for Linux, supports network streaming.

kmp3 (v 1.0pre)
http://www.kmp3.org/
Desc: Kmp3 is a KDE Mp3 player that runs on a number of different Unix systems,
      including Linux
      
libMikMod (v 3.1.7c)
http://mikmod.darkorb.net/download.html
Desc: MikMod is a sound library (libmikmod), as well as a module player.

xmp (2.0 pre)
http://xmp.helllabs.org/
Desc: xmp is a free module player for UNIX.






3.3 What OSS programs work well with ALSA?

Almost ALL existing OSS programs work well with ALSA . Only a few programs have
incompatibility problems (listed below) or need features not currently
supported by ALSA, like internal synth support. 

In general, if it's not listed below or a MIDI app, it should work fine.


3.4 What OSS programs have problems with ALSA?

	-Multitrack 2.3 
	-Real Player G2 Alpha test for Linux reportedly has problems with some 
	 newer ALSA CVS builds. Recent Real Player G2 Beta works fine.
	-Quake, Quakeworld, Quake2, and Quake3 test all require mmap() support.
	 ALSA provides mmap() for cards that support it, but not all cards
	 can handle mmap(). This is a design decision by ID software and cannot
	 be fixed.


3.5 How can I automatically set ALSA's mixer when the drivers load?

If you are using Linux's module autoloader, a way to do this is to use alsactl
and the 'post-install' mechanism of the /etc/conf.modules file. Set the mixer
settings where you want them using amixer or xamixer2. Make sure to un-mute the
'Master' channel and the 'PCM' channel. Type "alsactl store" to create the
/etc/asound.conf file. 

Add the following to /etc/conf.modules

 

post-install snd-mixer /usr/sbin/alsactl restore 




Now, when the ALSA driver modules load, the mixer settings are set immediately
afterward. To change the default mixer settings, simply set them as you like
with xamixer2 or another mixer application, and do another "alsactl store". 


3.6 How can I get Multitrack 2.x to work with ALSA?


Multitrack 2.2 has a bug in how it creates its initial config file. From
the Multitrack FAQ: 

 

Q. (I get the error) MultiTrack: sem_set() failed : Math result not
representable  

A. This is an error message caused by a small bug in MultiTrack version 2.2.
Just edit in the prefs file in the $(HOME)/.multitrack directory the following
two lines: 

o_nr_buffers = 0 
i_nr_buffers = 0

Change these two lines to: 

o_nr_buffers = 10
i_nr_buffers = 10 



Multitrack's home page is at
http://rulhmpc38.leidenuniv.nl/private/multitrack/multitrack.html 


Multitrack also depends on /dev/sndstat for operation. (See 3.7)


3.7 Is /dev/sndstat supported by ALSA? 

In the Linux 2.2.x kernel, /dev/sndstat is not accessible by ALSA directly.
However, in /proc/asound there is a OSS compatible sndstat file. To allow
OSS applications to use this sndstat file:

rm /dev/sndstat
ln -s /proc/asound/sndstat /dev/sndstat


3.8 Why does xamixer2 report errors?

xamixer2 reports errors similar to this:

Unable to read element Master Mono!  Error: Input/output error.
Unable to read element Headphone!  Error: Input/output error.
Unable to read element Master!  Error: Input/output error.

This is a cosmetic bug and may be ignored.


3.9 What is 'Hardware Mixing' and does ALSA support it?

"Hardware mixing" is a feature that some soundcards support that allows the card
to receive multiple audio streams and play them all at the same time. This is
done entirely in hardware, and does not adversely affect system performance.
ALSA supports hardware mixing for a few cards, particularly the Trident 4DWave,
in the current CVS. 


3.10 Does ALSA support 'Software Mixing'? 

Software mixing is not currently done by ALSA, and will probably never be done
by the driver itself. The ALSA developers may support a mixing daemon that may
be accessed via the ALSA API library, but nothing is planned at this time. 


3.11 Why doesn't ALSA just use ESounD for software mixing?

ESounD works with ALSA's OSS emulation as is.

However, there are a couple of reasons why ALSA will not adopt ESounD as the 
'official' ALSA software mixer:

     -The author of ESounD has apparently 'disappeared from the face of the 
      earth'
     -ESounD does not natively support ALSA.
     -Many people have questioned the quality of ESounD's mixing.
     -Many people have looked at ESounD for inclusion in other projects and 
      stated that it is pretty difficult to modify . For example, the Gnome 
      team has stated its intention to write a new ESounD replacement, rather 
      than deal with the existing code.
     -It has not been decided if ALSA will ever 'officially' support a 
      software sound mixer as a part of the ALSA project. 


3.12 What is Full Duplex support?

Full Duplex is a feature that allows a soundcard to play and record at the same
time. This is particularly important for computer telephony applications, and
for 'laying down tracks' in a recording environment. 


3.13 Does ALSA support Full Duplex?

ALSA supports full duplex on all hardware that supports full duplex.


3.14 What is the status of MIDI music under ALSA?

A note from Jaroslav, about MIDI development(6/30/99):

"Under heavy development :-) We need probably one or two months to finish it."

One of ALSA's under-construction features is an elegant and professional quality
sequencer subsystem. It is being designed by Frank van der Pol
 and the specification may be viewed at
http://www.vande-pol.demon.nl/alsa/ 

Much of the basic sequencer is implemented and works for most raw MPU-401 MIDI
interfaces. The only onboard synth currently working is the EMU-8000 synth on
Creative AWE cards. 

For those are impatient, Timidity++ is a software-based MIDI synth that works 
quite well with ALSA. It may be found at:

http://www.goice.co.jp/member/mo/timidity/

and patches at:

http://www.stardate.bc.ca/timidity.htm

  
3.15 Why does it say TODO? (alsamixer) Is there no support for cs 
     soundcards yet?
     
Alsamixer was broken between 0.3.0pre4 and 0.3.1 by API changes to the mixer. 
It says this for all soundcards at this time.     
    

3.16 Why doesn't my OSS mixer module load or OSS mixer work?

You may have the BTTV or other Video for Linux driver loaded or compiled in the
kernel. These drivers hook the OSS mixer and do not allow ALSA's OSS mixer
module to work correctly. Hopefully, these drivers will be modified to fix this
situation.


3.17 How do I use amixer?

Amixer is the 800 pound gorilla of command line mixer apps. ALSA has a very
intricate and complex mixer, and amixer reflects this.

However, amixer isn't THAT bad for simple functions like unmuting and setting
volumes on different channels. For unmuting and setting the volume of the
Master and PCM channels to 75%, you would use the following commands:

amixer set Master on
amixer set PCM on
amixer set Master 75%
amixer set PCM 75%

These commands may also be combined:

amixer set Master 75% on
amixer set PCM 75% on

'amixer -h' gives a good overview of the simple commands available in amixer.


3.18 How can I use an external MIDI keyboard to play piano on an internal synth
     with ALSA? 

Steve Ratcliffe :

"You can use the midi-thru utility written by Andreas Voss posted to the
list on Jul 06.  (I can send you it -- it is really small) Use this to
echo from the midi input port 64:0 to one of the synth ports 65:0.

        alsathru -s 64:0 -t 65:0

Alternatively you can use the command

        dd if=/proc/asound/0/patch0 bs=2 count=1

which will connect the ports together without the need for a program.
This method is temporary and not guaranteed to work in the future though,
and you will not be able to unload the sound drivers without issuing
the same command with bs=3 instead of bs=2 first."

The 'midi-thru' utility may be found at 
http://www.mail-archive.com/alsa-devel@alsa-project.org/msg00301.html


3.19 The documentation for Quake (1)(2)(3 Test) says that I must have a 
     soundcard and driver that supports mmap. Does ALSA support mmap?
     
ALSA's OSS emulation supports mmap() when possible. Some older cards, 
do not support mmap, due to hardware limitations.

Two notes from Jaroslav:

"Notes:

1) mmap() for the GUS synthesizer playback is ugly (GUS Classic)
2) mmap() for PCI chips from Cirrus Logic (snd-card-cs461x) is not
   implemented"
   

3.20 How do I enable the S/PDIF outputs on my Trident 4Dwave card? 

Yuqing Deng  writes:

Here's how I enabled spdif output on my hoontech Trident 4DWave NX card
with alsa 0.4.0 driver.

First I did:

# alsactl store

This extracted the configuration to /etc/asound.conf.
Here's an except of /etc/asound.conf:

------ snip -----

soundcard("card1") {
  mixer("SigmaTel STAC9708") {
    ; The type is 'bool'.
    switch("AC97 PCM Output Path", false)
    ; The type is 'bool'.
    switch("Simulated Stereo Enhancement", false)
    ; The type is 'bool'.
    switch("Loudness (bass boost)", false)
    ; The type is 'bool'.
    switch("AC97 Mono Output Select", false)
    ; The type is 'bool'.
    switch("AC97 Second MIC", false)
    ; The type is 'bool'.
    switch("ADC/DAC Loopback", false)
    ; The type is 'bool'.
    switch("S/PDIF Mixer Out", false)
    element("Input Gain Switch",0,101,Switch2(off))
    ; Voice 0 : Min 0 Max 15
    ; Voice 1 : Min 0 Max 15
 

---- snip -----

Notice the S/PDIF switch is off. I changed the false to true:

switch("S/PDIF Mixer Out", true)

Then run

#alsactl restore

You'll see the red light shining from the optical S/PDIF output if 
you have one.