Penguin

Differences between version 12 and predecessor to the previous major change of AlsaNotes.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 12 Last edited on Tuesday, March 23, 2004 5:58:21 pm by SamJansen Revert
Older page: version 8 Last edited on Monday, November 3, 2003 5:45:20 pm by AlastairPorter Revert
@@ -1,4 +1,46 @@
+!!! Module hints  
+* It may be a good idea to make sure you have the "snd-pcm-oss" module if you want backwards-compatibility for older apps (see further below). If you are compiling the modules from source, include ''--with-oss=yes'' on your ./configure line  
+  
+* The sound-card on a Thinkpad 600E needs the snd-cs4236 module, despite the card claiming to be a 46xx (and using a module named cs4232 in the older OSS driver series).  
+  
+* The sound card drivers (currently version 1.0.0rc2) downloadable from http://www.alsa-project.org appear to work ok with older alsa libraries (version 0.9.6 of alsa-base, alsa-utils, etc) that are currently in Debian Testing & Unstable.  
+  
+  
+  
+!!! Playing MIDI files on a SBLive! sound card  
+You can load "sound fonts" (wave table samples for the midi sequencer) into the sound card's memory, and then use those to play MIDI files. (Your ALSA drivers must have been built with the --with-sequencer=yes configure option.)  
+  
+1) You need the "sfxload" program. If you use Debian Woody, it is in the awe-drv package, otherwise grab it from http://mitglied.lycos.de/iwai/awesfx-0.4.4.tar.bz2  
+and compile. (It is released under the [GPL]). It is designed for the SB AWE32 and AEW64, but works with SBLive cards too.  
+  
+2) Load a "soundfont". The CDROM that came with your soundcard has some... for example, "./sfxload 8mbgmsfx.sf2". You can check that it is loaded into the soundcard's memory by doing "cat /proc/asound/card0/wavetableD1":  
+ Device: Emu10k1  
+ Ports: 4  
+ Addresses: 65:0 65:1 65:2 65:3  
+ Use Counter: 0  
+ Max Voices: 64  
+ Allocated Voices: 0  
+ Memory Size: 134217728  
+ Memory Available: 126786844  
+ Allocated Blocks: 527  
+ !SoundFonts: 1  
+ Instruments: 1849  
+ Samples: 526  
+ Locked Instruments: 1849  
+ Locked Samples: 526  
+  
+3) Use the "playmidi" program (debian: apt-get install playmidi), using the "-a" option to tell it to be AWE-compatible:  
+ $ playmidi -a /path/to/midi/file.mid  
+  
+  
+Make sure the volume for the sequencer isn't muted; in "alsamixer", you are looking for the slider named "Music".  
+  
+!!Software playback of MIDI files  
+You can always install the "timidity" package - this is a software synthesizer that reads midi files and sends "normal" PCM data to the soundcard, just like an MP3 or OGG playing program would. Be warned that timidity is a large download as it has lots of samples.  
+  
+  
+  
 !!! Compiling [ALSA] on RedHatLinux 
  
 if modprobe(8) complains about unresolved symbols in __schedule_work__, you need to run 
  
@@ -9,9 +51,10 @@
 !!! Compiling [ALSA] on RedHatLinux using the FreshRpms [SRPM] 
  
 You probably want to set up your own __.rpmmacros__ file first, as per [RPMNotes]. Remember to specify the target architecture and the card (see the [ALSA soundcard matrix|http://www.alsa-project.org/alsa-doc/] to find yours) to compile for, eg. 
  
- rpmbuild --rebuild alsa-driver.x.y.z-p.src.rpm --define 'cards als4000' --target $arch 
+ rpmbuild --rebuild alsa-driver.x.y.z-p.src.rpm \  
+ --define 'cards als4000' --target $arch 
  
 where __$arch__ might be __athlon__, f.ex. The [RPM]s will end up in __RPMS/$arch/__, ie f.ex in __RPMS/athlon/__. As with all source builds, you will need to recompile the [SRPM] if you upgrade your [Kernel]; you only need to install the kernel-module-alsa [RPM], however. 
  
 !! modprobe(8) complains about unresolved symbols in ''schedule_work'' 
@@ -25,15 +68,26 @@
  touch include/linux/workqueue.h 
  
 Finally, [RPM] needs to be told to build the ''spec file'': 
  
- rpmbuild -bb --define 'cards als4000' --target $arch alsa-driver.x.y.z-p.spec 
+ rpmbuild -bb --define 'cards als4000' --target $arch \  
+ alsa-driver.x.y.z-p.spec 
  
 You can now install the [RPM]s built in the __RPMS/$arch/__ directory. 
+  
+  
+!!! Application support for Alsa  
+Hints:  
+* there is a version of esd that uses alsa - that means that any app that currently uses esd will be fine. (Debian - install libesd-alsa0).  
+* alsa has optional support for OSS-compatibility for older apps that only know about the OSS-style sound drivers. To do this, make sure the "snd-pcm-oss" module is loaded. (In Debian, you can just set "startosslayer=true" in /etc/default/alsa for the start-up scripts to do this for you.)  
  
 !!! Software Mixing With Alsa 
  
-You can get alsa to do software mixing for you without having to resort to something like ESounD. This is done via the dmix plugin and is documented [here|http://alsa.opensrc.org/index.php?page=DmixPlugin]. Basically, all you need to do is get alsa going, then put the following in a .asoundrc file in your home directory. 
+You can get alsa to do software mixing for you without having to resort to something like ESounD. This is done via the dmix plugin and is documented [here|http://alsa.opensrc.org/index.php?page=DmixPlugin].  
+  
+There are some problems with this. First of all, OSS kernel emulation wont go through this layer. For an OSS-based application to use this, you need to use the aoss helper utility. Also, for SDL based applications (usually games) to use this, you will want the environment variable AUDIODEV to be set to "default" (export AUDIODEV=default).  
+  
+ Basically, all you need to do is get alsa going, then put the following in a .asoundrc file in your home directory. 
  
  # .asoundrc file. Put this in your home directory. 
  
  pcm.mixed {