SB Live Notes

The SoundBlaster Live card has quite a bit of flexibility. Much of this is due to the ability of download code to the DSP chip on the card. When using the Linux drivers, the default is a minimal setup.

Many of the controls aren't available if you only install the driver without loading any DSP code. In other words, if you want the most out of your SB Live, you need more tools than just the driver. What follows is some of the things I've discovered in doing a bit of tinkering. This is by no means an exhaustive set of possiblities. I'm sure that many more features and configurations are possible if you have the patience to figure things out. Unfortunately, the avialable documentation is pretty limited.
 

Additional tools

The creative open source site at creative has quite a few useful things. The most important is the ""Extra Utilities Downloads"

Download this package and unzip the source into some directory. Then do a "make" followed by a "make install". This will create a bunch of files.

The most important are:
 

/usr/local/etc/emu-script
/usr/local/etc/emu10k1.conf
/usr/local/bin/emu-config
/usr/local/bin/emu-dspmgr
There are also a bunch of files installed in /usr/local/share/emu10k1. These are files that are downloaded to the DSP for various effects such as tone controls and surround sound.

There are also man pages installed for the various tools.
 

Getting things going

OK so now you've built things and installed them. Now the fun starts and you get to hack around.

In order to get things going when you boot up the system, you need to execute the scripts for the DSP code after the driver is loaded. To do this, you need to modify your /etc/modules.conf file as follows:

Add the lines:

alias sound emu10k1
post-install emu10k1 /usr/local/etc/emu-script
Make sure you remove any references to other sound drivers or setups that you don't need. In essence all you really need are the 2 lines above.

The /usr/local/etc/emu10K1.conf file needs to be set up with the options you want enabled. As you read it, it's pretty self-explanatory. For example if you want tone controls, just make sure that you have the ENABLE_TONE_CONTROL set to "yes" and so on.

If you want to do more exotic things, you will need to add to or otherwise modify the /usr/local/etc/emu-script. For example, as written, the emu-script only gives you tone controls for PCM data (wave files, realplayer, and such). If you want tone controls to work on your cd player you need to hack the script a bit.

In my case, the CD player is on CD-Spdif which shows up as Digital 1 in the mixer. To get the tone controls to work for this do the following:
 

Open /usr/local/etc/emu-script in your favorite text editor.
Look for a line that reads:
if [ "$ENABLE_TONE_CONTROL" = yes ] ; then
A bit below that find the lines:
    $DSPMGR -l"Pcm L" -f$DSPPATH/$TONE -cbass -mbass -ctreble -mtreble
#The next 3 'inherit' the oss control of the above line:
    $DSPMGR -l"Pcm R" -f$DSPPATH/$TONE
    $DSPMGR -l"Pcm1 L" -f$DSPPATH/$TONE
    $DSPMGR -l"Pcm1 R" -f$DSPPATH/$TONE
These actually set up the tone controls on the Pcm L and Pcm R inputs.
Now add two more lines as follows immeddiately after the lines above:
    $DSPMGR -l"CD-Spdif L" -f$DSPPATH/$TONE
    $DSPMGR -l"CD-Spdif R" -f$DSPPATH/$TONE
Now when you  restart your system, your tone controls will also work for a CD connected to the SPDIF inputs. To test it, you can just run the script as root.
 

More hacking

From here on in you're pretty much on your own. There are some tools that can help you do more and of course you can try out the various effects in /usr/local/share/emu10k1.

The readme files in the various subdirectories of the emu-tools give a bit of help and there are the man pages for the various other tools.

The tools are:

as10k1  - The DSP code assembler.
emu-dspmgr - A manager for the DSP.
emu-config - A configuration tool
play-ac3 - An ac3 player
play-raw - A wave player.
 
If you come up with other interesting things for the SB Live, I'll be glad to include them here with credit given to the author. Just e-mail me at jgluckca@altavista.com or post to the public forums for the project at sourceforge