1 =============================================
2 Sound Blaster Audigy mixer / default DSP code
3 =============================================
5 This is based on sb-live-mixer.rst.
7 The EMU10K2 chips have a DSP part which can be programmed to support
8 various ways of sample processing, which is described here.
9 (This article does not deal with the overall functionality of the
10 EMU10K2 chips. See the manuals section for further details.)
12 The ALSA driver programs this portion of chip by default code
13 (can be altered later) which offers the following functionality:
16 Digital mixer controls
17 ======================
19 These controls are built using the DSP instructions. They offer extended
20 functionality. Only the default built-in code in the ALSA driver is described
21 here. Note that the controls work as attenuators: the maximum value is the
22 neutral position leaving the signal unchanged. Note that if the same destination
23 is mentioned in multiple controls, the signal is accumulated and can be clipped
24 (set to maximal or minimal value without checking for overflow).
27 Explanation of used abbreviations:
30 digital to analog converter
32 analog to digital converter
34 one-way three wire serial bus for digital sound by Philips Semiconductors
35 (this standard is used for connecting standalone D/A and A/D converters)
37 low frequency effects (used as subwoofer signal)
39 a chip containing an analog mixer, D/A and A/D converters
43 the EMU10K2 chip has an effect bus containing 64 accumulators.
44 Each of the synthesizer voices can feed its output to these accumulators
45 and the DSP microcontroller can operate with the resulting sum.
47 name='PCM Front Playback Volume',index=0
48 ----------------------------------------
49 This control is used to attenuate samples from left and right front PCM FX-bus
50 accumulators. ALSA uses accumulators 8 and 9 for left and right front PCM
51 samples for 5.1 playback. The result samples are forwarded to the front speakers.
53 name='PCM Surround Playback Volume',index=0
54 -------------------------------------------
55 This control is used to attenuate samples from left and right surround PCM FX-bus
56 accumulators. ALSA uses accumulators 2 and 3 for left and right surround PCM
57 samples for 5.1 playback. The result samples are forwarded to the surround (rear)
60 name='PCM Side Playback Volume',index=0
61 ---------------------------------------
62 This control is used to attenuate samples from left and right side PCM FX-bus
63 accumulators. ALSA uses accumulators 14 and 15 for left and right side PCM
64 samples for 7.1 playback. The result samples are forwarded to the side speakers.
66 name='PCM Center Playback Volume',index=0
67 -----------------------------------------
68 This control is used to attenuate samples from center PCM FX-bus accumulator.
69 ALSA uses accumulator 6 for center PCM samples for 5.1 playback. The result
70 samples are forwarded to the center speaker.
72 name='PCM LFE Playback Volume',index=0
73 --------------------------------------
74 This control is used to attenuate sample for LFE PCM FX-bus accumulator.
75 ALSA uses accumulator 7 for LFE PCM samples for 5.1 playback. The result
76 samples are forwarded to the subwoofer.
78 name='PCM Playback Volume',index=0
79 ----------------------------------
80 This control is used to attenuate samples from left and right PCM FX-bus
81 accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples for
82 stereo playback. The result samples are forwarded to the front speakers.
84 name='PCM Capture Volume',index=0
85 ---------------------------------
86 This control is used to attenuate samples from left and right PCM FX-bus
87 accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples for
88 stereo playback. The result is forwarded to the standard capture PCM device.
90 name='Music Playback Volume',index=0
91 ------------------------------------
92 This control is used to attenuate samples from left and right MIDI FX-bus
93 accumulators. ALSA uses accumulators 4 and 5 for left and right MIDI samples.
94 The result samples are forwarded to the virtual stereo mixer.
96 name='Music Capture Volume',index=0
97 -----------------------------------
98 These controls are used to attenuate samples from left and right MIDI FX-bus
99 accumulator. ALSA uses accumulators 4 and 5 for left and right MIDI samples.
100 The result is forwarded to the standard capture PCM device.
102 name='Mic Playback Volume',index=0
103 ----------------------------------
104 This control is used to attenuate samples from left and right Mic input of
105 the AC97 codec. The result samples are forwarded to the virtual stereo mixer.
107 name='Mic Capture Volume',index=0
108 ---------------------------------
109 This control is used to attenuate samples from left and right Mic input of
110 the AC97 codec. The result is forwarded to the standard capture PCM device.
112 The original samples are also forwarded to the Mic capture PCM device (device 1;
113 16bit/8KHz mono) without volume control.
115 name='Audigy CD Playback Volume',index=0
116 ----------------------------------------
117 This control is used to attenuate samples from left and right IEC958 TTL
118 digital inputs (usually used by a CDROM drive). The result samples are
119 forwarded to the virtual stereo mixer.
121 name='Audigy CD Capture Volume',index=0
122 ---------------------------------------
123 This control is used to attenuate samples from left and right IEC958 TTL
124 digital inputs (usually used by a CDROM drive). The result is forwarded
125 to the standard capture PCM device.
127 name='IEC958 Optical Playback Volume',index=0
128 ---------------------------------------------
129 This control is used to attenuate samples from left and right IEC958 optical
130 digital input. The result samples are forwarded to the virtual stereo mixer.
132 name='IEC958 Optical Capture Volume',index=0
133 --------------------------------------------
134 This control is used to attenuate samples from left and right IEC958 optical
135 digital inputs. The result is forwarded to the standard capture PCM device.
137 name='Line2 Playback Volume',index=0
138 ------------------------------------
139 This control is used to attenuate samples from left and right I2S ADC
140 inputs (on the AudigyDrive). The result samples are forwarded to the virtual
143 name='Line2 Capture Volume',index=1
144 -----------------------------------
145 This control is used to attenuate samples from left and right I2S ADC
146 inputs (on the AudigyDrive). The result is forwarded to the standard capture
149 name='Analog Mix Playback Volume',index=0
150 -----------------------------------------
151 This control is used to attenuate samples from left and right I2S ADC
152 inputs from Philips ADC. The result samples are forwarded to the virtual
153 stereo mixer. This contains mix from analog sources like CD, Line In, Aux, ....
155 name='Analog Mix Capture Volume',index=1
156 ----------------------------------------
157 This control is used to attenuate samples from left and right I2S ADC
158 inputs Philips ADC. The result is forwarded to the standard capture PCM device.
160 name='Aux2 Playback Volume',index=0
161 -----------------------------------
162 This control is used to attenuate samples from left and right I2S ADC
163 inputs (on the AudigyDrive). The result samples are forwarded to the virtual
166 name='Aux2 Capture Volume',index=1
167 ----------------------------------
168 This control is used to attenuate samples from left and right I2S ADC
169 inputs (on the AudigyDrive). The result is forwarded to the standard capture
172 name='Front Playback Volume',index=0
173 ------------------------------------
174 This control is used to attenuate samples from the virtual stereo mixer.
175 The result samples are forwarded to the front speakers.
177 name='Surround Playback Volume',index=0
178 ---------------------------------------
179 This control is used to attenuate samples from the virtual stereo mixer.
180 The result samples are forwarded to the surround (rear) speakers.
182 name='Side Playback Volume',index=0
183 -----------------------------------
184 This control is used to attenuate samples from the virtual stereo mixer.
185 The result samples are forwarded to the side speakers.
187 name='Center Playback Volume',index=0
188 -------------------------------------
189 This control is used to attenuate samples from the virtual stereo mixer.
190 The result samples are forwarded to the center speaker.
192 name='LFE Playback Volume',index=0
193 ----------------------------------
194 This control is used to attenuate samples from the virtual stereo mixer.
195 The result samples are forwarded to the subwoofer.
197 name='Tone Control - Switch',index=0
198 ------------------------------------
199 This control turns the tone control on or off. The samples forwarded to
200 the speaker outputs are affected.
202 name='Tone Control - Bass',index=0
203 ----------------------------------
204 This control sets the bass intensity. There is no neutral value!!
205 When the tone control code is activated, the samples are always modified.
206 The closest value to pure signal is 20.
208 name='Tone Control - Treble',index=0
209 ------------------------------------
210 This control sets the treble intensity. There is no neutral value!!
211 When the tone control code is activated, the samples are always modified.
212 The closest value to pure signal is 20.
214 name='Master Playback Volume',index=0
215 -------------------------------------
216 This control is used to attenuate samples forwarded to the speaker outputs.
218 name='IEC958 Optical Raw Playback Switch',index=0
219 -------------------------------------------------
220 If this switch is on, then the samples for the IEC958 (S/PDIF) digital
221 output are taken only from the raw iec958 ALSA PCM device (which uses
222 accumulators 20 and 21 for left and right PCM by default).
225 PCM stream related controls
226 ===========================
228 name='EMU10K1 PCM Volume',index 0-31
229 ------------------------------------
230 Channel volume attenuation in range 0-0x1fffd. The middle value (no
231 attenuation) is default. The channel mapping for three values is
234 * 0 - mono, default 0xffff (no attenuation)
235 * 1 - left, default 0xffff (no attenuation)
236 * 2 - right, default 0xffff (no attenuation)
238 name='EMU10K1 PCM Send Routing',index 0-31
239 ------------------------------------------
240 This control specifies the destination - FX-bus accumulators. There are 24
241 values in this mapping:
243 * 0 - mono, A destination (FX-bus 0-63), default 0
244 * 1 - mono, B destination (FX-bus 0-63), default 1
245 * 2 - mono, C destination (FX-bus 0-63), default 2
246 * 3 - mono, D destination (FX-bus 0-63), default 3
247 * 4 - mono, E destination (FX-bus 0-63), default 4
248 * 5 - mono, F destination (FX-bus 0-63), default 5
249 * 6 - mono, G destination (FX-bus 0-63), default 6
250 * 7 - mono, H destination (FX-bus 0-63), default 7
251 * 8 - left, A destination (FX-bus 0-63), default 0
252 * 9 - left, B destination (FX-bus 0-63), default 1
253 * 10 - left, C destination (FX-bus 0-63), default 2
254 * 11 - left, D destination (FX-bus 0-63), default 3
255 * 12 - left, E destination (FX-bus 0-63), default 4
256 * 13 - left, F destination (FX-bus 0-63), default 5
257 * 14 - left, G destination (FX-bus 0-63), default 6
258 * 15 - left, H destination (FX-bus 0-63), default 7
259 * 16 - right, A destination (FX-bus 0-63), default 0
260 * 17 - right, B destination (FX-bus 0-63), default 1
261 * 18 - right, C destination (FX-bus 0-63), default 2
262 * 19 - right, D destination (FX-bus 0-63), default 3
263 * 20 - right, E destination (FX-bus 0-63), default 4
264 * 21 - right, F destination (FX-bus 0-63), default 5
265 * 22 - right, G destination (FX-bus 0-63), default 6
266 * 23 - right, H destination (FX-bus 0-63), default 7
268 Don't forget that it's illegal to assign a channel to the same FX-bus accumulator
269 more than once (it means 0=0 && 1=0 is an invalid combination).
271 name='EMU10K1 PCM Send Volume',index 0-31
272 -----------------------------------------
273 It specifies the attenuation (amount) for given destination in range 0-255.
274 The channel mapping is following:
276 * 0 - mono, A destination attn, default 255 (no attenuation)
277 * 1 - mono, B destination attn, default 255 (no attenuation)
278 * 2 - mono, C destination attn, default 0 (mute)
279 * 3 - mono, D destination attn, default 0 (mute)
280 * 4 - mono, E destination attn, default 0 (mute)
281 * 5 - mono, F destination attn, default 0 (mute)
282 * 6 - mono, G destination attn, default 0 (mute)
283 * 7 - mono, H destination attn, default 0 (mute)
284 * 8 - left, A destination attn, default 255 (no attenuation)
285 * 9 - left, B destination attn, default 0 (mute)
286 * 10 - left, C destination attn, default 0 (mute)
287 * 11 - left, D destination attn, default 0 (mute)
288 * 12 - left, E destination attn, default 0 (mute)
289 * 13 - left, F destination attn, default 0 (mute)
290 * 14 - left, G destination attn, default 0 (mute)
291 * 15 - left, H destination attn, default 0 (mute)
292 * 16 - right, A destination attn, default 0 (mute)
293 * 17 - right, B destination attn, default 255 (no attenuation)
294 * 18 - right, C destination attn, default 0 (mute)
295 * 19 - right, D destination attn, default 0 (mute)
296 * 20 - right, E destination attn, default 0 (mute)
297 * 21 - right, F destination attn, default 0 (mute)
298 * 22 - right, G destination attn, default 0 (mute)
299 * 23 - right, H destination attn, default 0 (mute)
306 See sb-live-mixer.rst.