Sound Blaster Audigy mixer / default DSP code

This is based on Sound Blaster Live mixer / default DSP code.

The EMU10K2 chips have a DSP part which can be programmed to support various ways of sample processing, which is described here. (This article does not deal with the overall functionality of the EMU10K2 chips. See the manuals section for further details.)

The ALSA driver programs this portion of chip by default code (can be altered later) which offers the following functionality:

Digital mixer controls

These controls are built using the DSP instructions. They offer extended functionality. Only the default built-in code in the ALSA driver is described here. Note that the controls work as attenuators: the maximum value is the neutral position leaving the signal unchanged. Note that if the same destination is mentioned in multiple controls, the signal is accumulated and can be clipped (set to maximal or minimal value without checking for overflow).

Explanation of used abbreviations:

DAC

digital to analog converter

ADC

analog to digital converter

I2S

one-way three wire serial bus for digital sound by Philips Semiconductors (this standard is used for connecting standalone D/A and A/D converters)

LFE

low frequency effects (used as subwoofer signal)

AC97

a chip containing an analog mixer, D/A and A/D converters

IEC958

S/PDIF

FX-bus

the EMU10K2 chip has an effect bus containing 64 accumulators. Each of the synthesizer voices can feed its output to these accumulators and the DSP microcontroller can operate with the resulting sum.

name='PCM Front Playback Volume',index=0

This control is used to attenuate samples from left and right front PCM FX-bus accumulators. ALSA uses accumulators 8 and 9 for left and right front PCM samples for 5.1 playback. The result samples are forwarded to the front speakers.

name='PCM Surround Playback Volume',index=0

This control is used to attenuate samples from left and right surround PCM FX-bus accumulators. ALSA uses accumulators 2 and 3 for left and right surround PCM samples for 5.1 playback. The result samples are forwarded to the surround (rear) speakers.

name='PCM Side Playback Volume',index=0

This control is used to attenuate samples from left and right side PCM FX-bus accumulators. ALSA uses accumulators 14 and 15 for left and right side PCM samples for 7.1 playback. The result samples are forwarded to the side speakers.

name='PCM Center Playback Volume',index=0

This control is used to attenuate samples from center PCM FX-bus accumulator. ALSA uses accumulator 6 for center PCM samples for 5.1 playback. The result samples are forwarded to the center speaker.

name='PCM LFE Playback Volume',index=0

This control is used to attenuate sample for LFE PCM FX-bus accumulator. ALSA uses accumulator 7 for LFE PCM samples for 5.1 playback. The result samples are forwarded to the subwoofer.

name='PCM Playback Volume',index=0

This control is used to attenuate samples from left and right PCM FX-bus accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples for stereo playback. The result samples are forwarded to the front speakers.

name='PCM Capture Volume',index=0

This control is used to attenuate samples from left and right PCM FX-bus accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples for stereo playback. The result is forwarded to the standard capture PCM device.

name='Music Playback Volume',index=0

This control is used to attenuate samples from left and right MIDI FX-bus accumulators. ALSA uses accumulators 4 and 5 for left and right MIDI samples. The result samples are forwarded to the virtual stereo mixer.

name='Music Capture Volume',index=0

These controls are used to attenuate samples from left and right MIDI FX-bus accumulator. ALSA uses accumulators 4 and 5 for left and right MIDI samples. The result is forwarded to the standard capture PCM device.

name='Mic Playback Volume',index=0

This control is used to attenuate samples from left and right Mic input of the AC97 codec. The result samples are forwarded to the virtual stereo mixer.

name='Mic Capture Volume',index=0

This control is used to attenuate samples from left and right Mic input of the AC97 codec. The result is forwarded to the standard capture PCM device.

The original samples are also forwarded to the Mic capture PCM device (device 1; 16bit/8KHz mono) without volume control.

name='Audigy CD Playback Volume',index=0

This control is used to attenuate samples from left and right IEC958 TTL digital inputs (usually used by a CDROM drive). The result samples are forwarded to the virtual stereo mixer.

name='Audigy CD Capture Volume',index=0

This control is used to attenuate samples from left and right IEC958 TTL digital inputs (usually used by a CDROM drive). The result is forwarded to the standard capture PCM device.

name='IEC958 Optical Playback Volume',index=0

This control is used to attenuate samples from left and right IEC958 optical digital input. The result samples are forwarded to the virtual stereo mixer.

name='IEC958 Optical Capture Volume',index=0

This control is used to attenuate samples from left and right IEC958 optical digital inputs. The result is forwarded to the standard capture PCM device.

name='Line2 Playback Volume',index=0

This control is used to attenuate samples from left and right I2S ADC inputs (on the AudigyDrive). The result samples are forwarded to the virtual stereo mixer.

name='Line2 Capture Volume',index=1

This control is used to attenuate samples from left and right I2S ADC inputs (on the AudigyDrive). The result is forwarded to the standard capture PCM device.

name='Analog Mix Playback Volume',index=0

This control is used to attenuate samples from left and right I2S ADC inputs from Philips ADC. The result samples are forwarded to the virtual stereo mixer. This contains mix from analog sources like CD, Line In, Aux, ....

name='Analog Mix Capture Volume',index=1

This control is used to attenuate samples from left and right I2S ADC inputs Philips ADC. The result is forwarded to the standard capture PCM device.

name='Aux2 Playback Volume',index=0

This control is used to attenuate samples from left and right I2S ADC inputs (on the AudigyDrive). The result samples are forwarded to the virtual stereo mixer.

name='Aux2 Capture Volume',index=1

This control is used to attenuate samples from left and right I2S ADC inputs (on the AudigyDrive). The result is forwarded to the standard capture PCM device.

name='Front Playback Volume',index=0

This control is used to attenuate samples from the virtual stereo mixer. The result samples are forwarded to the front speakers.

name='Surround Playback Volume',index=0

This control is used to attenuate samples from the virtual stereo mixer. The result samples are forwarded to the surround (rear) speakers.

name='Side Playback Volume',index=0

This control is used to attenuate samples from the virtual stereo mixer. The result samples are forwarded to the side speakers.

name='Center Playback Volume',index=0

This control is used to attenuate samples from the virtual stereo mixer. The result samples are forwarded to the center speaker.

name='LFE Playback Volume',index=0

This control is used to attenuate samples from the virtual stereo mixer. The result samples are forwarded to the subwoofer.

name='Tone Control - Switch',index=0

This control turns the tone control on or off. The samples forwarded to the speaker outputs are affected.

name='Tone Control - Bass',index=0

This control sets the bass intensity. There is no neutral value!! When the tone control code is activated, the samples are always modified. The closest value to pure signal is 20.

name='Tone Control - Treble',index=0

This control sets the treble intensity. There is no neutral value!! When the tone control code is activated, the samples are always modified. The closest value to pure signal is 20.

name='Master Playback Volume',index=0

This control is used to attenuate samples forwarded to the speaker outputs.

name='IEC958 Optical Raw Playback Switch',index=0

If this switch is on, then the samples for the IEC958 (S/PDIF) digital output are taken only from the raw iec958 ALSA PCM device (which uses accumulators 20 and 21 for left and right PCM by default).

MANUALS/PATENTS

See Sound Blaster Live mixer / default DSP code.