Open Sound System
|Do you have problems with sound/audio application development? Don't panic! Click here for help!|
Open Sound System driver for Creative Labs Sound Blaster Live!, Audigy,
Audigy2, Audigy2-Value and sound cards.
The sblive driver supports:
AC3 passthrough is only supported on Audigy series of the soundcards.
There are several Sound Blaster cards that are also called as Live or Audigy. However these cards are based on entirely different hardware design and they are not compatible with this driver.
Most models of Live! and Audigy cards have an orange combo jack that is used both for the analog center/LFE output and for digital DIN (S/PDIF) output. The output mode is selected by a driver configuration option (seel below) which should be set to proper value depending on the actual speaker configuration.
SB Live cards have actually two mixer chips. In OSS both of them are controlled together. However only limited set of features can be controlled using ordinary mixer programs (such as the mixer applet included in OSS). Majority of features can only be accessed using the ossmix and ossxmix programs included in OSS.
The AC97 mixer is used to control volumes of the back bracket inputs (mic and line in) and the _analog_ CD input connector on the soundcard. The 'mic' volume controls the level of the rear bracket microphone input sent directly to the front (only front) speakers. The 'line' and 'cd' controls do the same for the back bracket line in connector and the on board analog CD input connector. It's usually recommended to set these volumes to 0.
Another function of the AC97 mixer is selecting the signal that is passed to the master mixer (for example for recording). One of the 'mic', 'line' or 'cd' signals can be routed to the master mixer by selecting that device as the recording source in the AC97 mixer. The 'rec' volume control slider can be used to adjust the signal strength. The 'igain' control doesn't usually have any effect but some hardware revisions may use it for controlling the microphone recording level.
Other mixer functions are handled by the DSP engine of the EMU 10k1 chip. Most input signals (including all digital signals and LiveDrive inputs).
There are only two master mixer settings that can be controlled using all mixer programs. The 'vol' setting is the master output volume that affects both the front and rear speakers and the headphone output (digital output volumes are not affected). The 'pcm' setting controls volumes of all PCM playback channels (/dev/dsp#).
In addition to volume sliders most inputs have a stereo VU meter pair (only in ossxmix) that can be used to monitor the input and to adjust the input levels properly.
The master mixer consists of several sections that are:
Before recording anything you need to set the volumes in the recording section properly. To enable recording from the AC97 connected inputs (mic, line in and analog CD) use the AC97 mixer to select the desired input and then tune the input level using the rec (and igain) setting.
Finally set the 'ac97' slider in the record section of the master mixer so that the recording level is suitable.
The OSS drivers permit recording any application that's currently playing.
To record audio that's playing on any of the SB Live channels:
In most cases noise is caused by the microphone input or some other (unused) input. Use the ossxmix program to turn off all unused inputs and finally save the current mixer settings (see below).
Hint: Look at the VU meter panels of ossxmix. It's usually very easy to locate the noise source by looking which input has some signal coming from it.
WARNING! If you turn off some of the signals in recording section or the AC97 mixer section this affects all subsequent recordings. Remember to raise the volume prior doing any recording. After that decrease the volumes again if necessary.
You can use /dev/oss/oss_sblive0/ pcm0-pcm7 to play multiple audio programs using the hardware mixing. Simply specify the device name with the application. A simple test is to do the following: ossplay -d/dev/oss/oss_sblive0/pcm0 &#38;#38;#38;#60;file1.wav&#38;#38;#38;#62; &#38;#38;#38;#38;
ossplay -d/dev/oss/oss_sblive0/pcm1 &#38;#38;#38;#60;file2.wav&#38;#38;#38;#62; &#38;#38;#38;#38;
ossplay -d/dev/oss/oss_sblive0/pcm2 &#38;#38;#38;#60;file3.wav&#38;#38;#38;#62; &#38;#38;#38;#38;
You should hear all three wav files playing simultaneously.
NOTE: Some apps may desire the old /dev/dspN names. e.g. /dev/dsp0 - /dev/dsp7.
NOTE: You can increase the number of output devices from the standard 8 devices to 32 device. For this, run soundconf, select Set configuration options and look for the entry "sblive_device", now type any number between 1 and 32 for the number of channels you wish. You can also do this manually by editing oss_sblive.conf and inserting sblive_devices=XX entry, e.g.: sblive_devices=27
There are two alternative ways to connect audio signal from a CD-ROM drive tor the SB Live soundcard. You can use a (three wire) analog cable or a (2 wire) digital cable. OSS now supports both of these choices. Note that there are separate mixer settings for both of these connections.
The analog CD-ROM wire is connected to the AC97 code chip and this method works in most cases. To route the analog CD -input to the (front) speakers you need to raise the volume of the 'cd' control in mixer. However if you like to hear the analog CD input both from the front and rears speakers you need to do this in slightly different way (please read the description of the mixer above).
The digital connection works only with CD-ROM drives that has support for it. Note that some CD-ROM drives having this digital output connector use a different signal level than the one required by SB Live. This means that the digital connection doesn't work with all CD-ROM drives (no sound). If you have problems with the digital connection you should use the analog one. When using the the digital CD input you may need to adjust the 'digcd' volumes using ossxmix (or ossmix).
It should be noted that SB Live works internally at 48 kHz. This means that all S/PDIF input signals are automatically sample rate converted to 48 kHz. If you record from a 44.1 kHz (CD-ROM) and save the result to a 44.1 kHz file the signal will be sample rate converted twice. First from the 44.1 kHz input to internal 48 kHz and then back to 44.1 kHz. While the sample rate converter of SB Live is very precise this will cause some change. This should not be any problem when doing audio recordings but it may cause unwanted results when transferring digital data (such as AC3/DTS) using the S/PDIF the interface.
oss_sblive.conf Device configuration file