Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen...
[linux-2.6] / Documentation / sound / alsa / Audigy-mixer.txt
1
2                 Sound Blaster Audigy mixer / default DSP code
3                 ===========================================
4
5 This is based on SB-Live-mixer.txt.
6
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.)
11
12 The ALSA driver programs this portion of chip by default code
13 (can be altered later) which offers the following functionality:
14
15
16 1) Digital mixer controls
17 -------------------------
18
19 These controls are built using the DSP instructions. They offer extended
20 functionality. Only the default build-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 wrapped 
24 (set to maximal or minimal value without checking of overflow).
25
26
27 Explanation of used abbreviations:
28
29 DAC    - digital to analog converter
30 ADC    - analog to digital converter
31 I2S    - one-way three wire serial bus for digital sound by Philips Semiconductors
32          (this standard is used for connecting standalone DAC and ADC converters)
33 LFE    - low frequency effects (subwoofer signal)
34 AC97   - a chip containing an analog mixer, DAC and ADC converters
35 IEC958 - S/PDIF
36 FX-bus - the EMU10K2 chip has an effect bus containing 64 accumulators.
37          Each of the synthesizer voices can feed its output to these accumulators
38          and the DSP microcontroller can operate with the resulting sum.
39
40 name='PCM Front Playback Volume',index=0
41
42 This control is used to attenuate samples for left and right front PCM FX-bus
43 accumulators. ALSA uses accumulators 8 and 9 for left and right front PCM 
44 samples for 5.1 playback. The result samples are forwarded to the front DAC PCM 
45 slots of the Philips DAC.
46
47 name='PCM Surround Playback Volume',index=0
48
49 This control is used to attenuate samples for left and right surround PCM FX-bus
50 accumulators. ALSA uses accumulators 2 and 3 for left and right surround PCM 
51 samples for 5.1 playback. The result samples are forwarded to the surround DAC PCM 
52 slots of the Philips DAC.
53
54 name='PCM Center Playback Volume',index=0
55
56 This control is used to attenuate samples for center PCM FX-bus accumulator.
57 ALSA uses accumulator 6 for center PCM sample for 5.1 playback. The result sample
58 is forwarded to the center DAC PCM slot of the Philips DAC.
59
60 name='PCM LFE Playback Volume',index=0
61
62 This control is used to attenuate sample for LFE PCM FX-bus accumulator. 
63 ALSA uses accumulator 7 for LFE PCM sample for 5.1 playback. The result sample 
64 is forwarded to the LFE DAC PCM slot of the Philips DAC.
65
66 name='PCM Playback Volume',index=0
67
68 This control is used to attenuate samples for left and right PCM FX-bus
69 accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples for
70 stereo playback. The result samples are forwarded to the front DAC PCM slots 
71 of the Philips DAC.
72
73 name='PCM Capture Volume',index=0
74
75 This control is used to attenuate samples for left and right PCM FX-bus
76 accumulator. ALSA uses accumulators 0 and 1 for left and right PCM.
77 The result is forwarded to the ADC capture FIFO (thus to the standard capture
78 PCM device).
79
80 name='Music Playback Volume',index=0
81
82 This control is used to attenuate samples for left and right MIDI FX-bus
83 accumulators. ALSA uses accumulators 4 and 5 for left and right MIDI samples.
84 The result samples are forwarded to the front DAC PCM slots of the AC97 codec.
85
86 name='Music Capture Volume',index=0
87
88 These controls are used to attenuate samples for left and right MIDI FX-bus
89 accumulator. ALSA uses accumulators 4 and 5 for left and right PCM.
90 The result is forwarded to the ADC capture FIFO (thus to the standard capture
91 PCM device).
92
93 name='Mic Playback Volume',index=0
94
95 This control is used to attenuate samples for left and right Mic input.
96 For Mic input is used AC97 codec. The result samples are forwarded to 
97 the front DAC PCM slots of the Philips DAC. Samples are forwarded to Mic
98 capture FIFO (device 1 - 16bit/8KHz mono) too without volume control.
99
100 name='Mic Capture Volume',index=0
101
102 This control is used to attenuate samples for left and right Mic input.
103 The result is forwarded to the ADC capture FIFO (thus to the standard capture
104 PCM device).
105
106 name='Audigy CD Playback Volume',index=0
107
108 This control is used to attenuate samples from left and right IEC958 TTL
109 digital inputs (usually used by a CDROM drive). The result samples are
110 forwarded to the front DAC PCM slots of the Philips DAC.
111
112 name='Audigy CD Capture Volume',index=0
113
114 This control is used to attenuate samples from left and right IEC958 TTL
115 digital inputs (usually used by a CDROM drive). The result samples are
116 forwarded to the ADC capture FIFO (thus to the standard capture PCM device).
117
118 name='IEC958 Optical Playback Volume',index=0
119
120 This control is used to attenuate samples from left and right IEC958 optical
121 digital input. The result samples are forwarded to the front DAC PCM slots
122 of the Philips DAC.
123
124 name='IEC958 Optical Capture Volume',index=0
125
126 This control is used to attenuate samples from left and right IEC958 optical
127 digital inputs. The result samples are forwarded to the ADC capture FIFO
128 (thus to the standard capture PCM device).
129
130 name='Line2 Playback Volume',index=0
131
132 This control is used to attenuate samples from left and right I2S ADC
133 inputs (on the AudigyDrive). The result samples are forwarded to the front
134 DAC PCM slots of the Philips DAC.
135
136 name='Line2 Capture Volume',index=1
137
138 This control is used to attenuate samples from left and right I2S ADC
139 inputs (on the AudigyDrive). The result samples are forwarded to the ADC
140 capture FIFO (thus to the standard capture PCM device).
141
142 name='Analog Mix Playback Volume',index=0
143
144 This control is used to attenuate samples from left and right I2S ADC
145 inputs from Philips ADC. The result samples are forwarded to the front
146 DAC PCM slots of the Philips DAC. This contains mix from analog sources
147 like CD, Line In, Aux, ....
148
149 name='Analog Mix Capture Volume',index=1
150
151 This control is used to attenuate samples from left and right I2S ADC
152 inputs Philips ADC. The result samples are forwarded to the ADC
153 capture FIFO (thus to the standard capture PCM device).
154
155 name='Aux2 Playback Volume',index=0
156
157 This control is used to attenuate samples from left and right I2S ADC
158 inputs (on the AudigyDrive). The result samples are forwarded to the front
159 DAC PCM slots of the Philips DAC.
160
161 name='Aux2 Capture Volume',index=1
162
163 This control is used to attenuate samples from left and right I2S ADC
164 inputs (on the AudigyDrive). The result samples are forwarded to the ADC
165 capture FIFO (thus to the standard capture PCM device).
166
167 name='Front Playback Volume',index=0
168
169 All stereo signals are mixed together and mirrored to surround, center and LFE.
170 This control is used to attenuate samples for left and right front speakers of
171 this mix.
172
173 name='Surround Playback Volume',index=0
174
175 All stereo signals are mixed together and mirrored to surround, center and LFE.
176 This control is used to attenuate samples for left and right surround speakers of
177 this mix.
178
179 name='Center Playback Volume',index=0
180
181 All stereo signals are mixed together and mirrored to surround, center and LFE.
182 This control is used to attenuate sample for center speaker of this mix.
183
184 name='LFE Playback Volume',index=0
185
186 All stereo signals are mixed together and mirrored to surround, center and LFE.
187 This control is used to attenuate sample for LFE speaker of this mix.
188
189 name='Tone Control - Switch',index=0
190
191 This control turns the tone control on or off. The samples for front, rear
192 and center / LFE outputs are affected.
193
194 name='Tone Control - Bass',index=0
195
196 This control sets the bass intensity. There is no neutral value!!
197 When the tone control code is activated, the samples are always modified.
198 The closest value to pure signal is 20.
199
200 name='Tone Control - Treble',index=0
201
202 This control sets the treble intensity. There is no neutral value!!
203 When the tone control code is activated, the samples are always modified.
204 The closest value to pure signal is 20.
205
206 name='Master Playback Volume',index=0
207
208 This control is used to attenuate samples for front, surround, center and 
209 LFE outputs.
210
211 name='IEC958 Optical Raw Playback Switch',index=0
212
213 If this switch is on, then the samples for the IEC958 (S/PDIF) digital
214 output are taken only from the raw FX8010 PCM, otherwise standard front
215 PCM samples are taken.
216
217
218 2) PCM stream related controls
219 ------------------------------
220
221 name='EMU10K1 PCM Volume',index 0-31
222
223 Channel volume attenuation in range 0-0xffff. The maximum value (no
224 attenuation) is default. The channel mapping for three values is
225 as follows:
226
227         0 - mono, default 0xffff (no attenuation)
228         1 - left, default 0xffff (no attenuation)
229         2 - right, default 0xffff (no attenuation)
230
231 name='EMU10K1 PCM Send Routing',index 0-31
232
233 This control specifies the destination - FX-bus accumulators. There 24
234 values with this mapping:
235
236          0 -  mono, A destination (FX-bus 0-63), default 0
237          1 -  mono, B destination (FX-bus 0-63), default 1
238          2 -  mono, C destination (FX-bus 0-63), default 2
239          3 -  mono, D destination (FX-bus 0-63), default 3
240          4 -  mono, E destination (FX-bus 0-63), default 0
241          5 -  mono, F destination (FX-bus 0-63), default 0
242          6 -  mono, G destination (FX-bus 0-63), default 0
243          7 -  mono, H destination (FX-bus 0-63), default 0
244          8 -  left, A destination (FX-bus 0-63), default 0
245          9 -  left, B destination (FX-bus 0-63), default 1
246         10 -  left, C destination (FX-bus 0-63), default 2
247         11 -  left, D destination (FX-bus 0-63), default 3
248         12 -  left, E destination (FX-bus 0-63), default 0
249         13 -  left, F destination (FX-bus 0-63), default 0
250         14 -  left, G destination (FX-bus 0-63), default 0
251         15 -  left, H destination (FX-bus 0-63), default 0
252         16 - right, A destination (FX-bus 0-63), default 0
253         17 - right, B destination (FX-bus 0-63), default 1
254         18 - right, C destination (FX-bus 0-63), default 2
255         19 - right, D destination (FX-bus 0-63), default 3
256         20 - right, E destination (FX-bus 0-63), default 0
257         21 - right, F destination (FX-bus 0-63), default 0
258         22 - right, G destination (FX-bus 0-63), default 0
259         23 - right, H destination (FX-bus 0-63), default 0
260
261 Don't forget that it's illegal to assign a channel to the same FX-bus accumulator 
262 more than once (it means 0=0 && 1=0 is an invalid combination).
263  
264 name='EMU10K1 PCM Send Volume',index 0-31
265
266 It specifies the attenuation (amount) for given destination in range 0-255.
267 The channel mapping is following:
268
269          0 -  mono, A destination attn, default 255 (no attenuation)
270          1 -  mono, B destination attn, default 255 (no attenuation)
271          2 -  mono, C destination attn, default 0 (mute)
272          3 -  mono, D destination attn, default 0 (mute)
273          4 -  mono, E destination attn, default 0 (mute)
274          5 -  mono, F destination attn, default 0 (mute)
275          6 -  mono, G destination attn, default 0 (mute)
276          7 -  mono, H destination attn, default 0 (mute)
277          8 -  left, A destination attn, default 255 (no attenuation)
278          9 -  left, B destination attn, default 0 (mute)
279         10 -  left, C destination attn, default 0 (mute)
280         11 -  left, D destination attn, default 0 (mute)
281         12 -  left, E destination attn, default 0 (mute)
282         13 -  left, F destination attn, default 0 (mute)
283         14 -  left, G destination attn, default 0 (mute)
284         15 -  left, H destination attn, default 0 (mute)
285         16 - right, A destination attn, default 0 (mute)
286         17 - right, B destination attn, default 255 (no attenuation)
287         18 - right, C destination attn, default 0 (mute)
288         19 - right, D destination attn, default 0 (mute)
289         20 - right, E destination attn, default 0 (mute)
290         21 - right, F destination attn, default 0 (mute)
291         22 - right, G destination attn, default 0 (mute)
292         23 - right, H destination attn, default 0 (mute)
293
294
295
296 4) MANUALS/PATENTS:
297 -------------------
298
299 ftp://opensource.creative.com/pub/doc
300 -------------------------------------
301
302         Files:
303         LM4545.pdf      AC97 Codec
304
305         m2049.pdf       The EMU10K1 Digital Audio Processor
306
307         hog63.ps        FX8010 - A DSP Chip Architecture for Audio Effects
308
309
310 WIPO Patents
311 ------------
312         Patent numbers:
313         WO 9901813 (A1) Audio Effects Processor with multiple asynchronous (Jan. 14, 1999)
314                         streams
315
316         WO 9901814 (A1) Processor with Instruction Set for Audio Effects (Jan. 14, 1999)
317
318         WO 9901953 (A1) Audio Effects Processor having Decoupled Instruction
319                         Execution and Audio Data Sequencing (Jan. 14, 1999)
320
321
322 US Patents (http://www.uspto.gov/)
323 ----------------------------------
324
325         US 5925841      Digital Sampling Instrument employing cache memory (Jul. 20, 1999)
326
327         US 5928342      Audio Effects Processor integrated on a single chip (Jul. 27, 1999)
328                         with a multiport memory onto which multiple asynchronous
329                         digital sound samples can be concurrently loaded
330
331         US 5930158      Processor with Instruction Set for Audio Effects (Jul. 27, 1999)
332
333         US 6032235      Memory initialization circuit (Tram) (Feb. 29, 2000)
334
335         US 6138207      Interpolation looping of audio samples in cache connected to    (Oct. 24, 2000)
336                         system bus with prioritization and modification of bus transfers
337                         in accordance with loop ends and minimum block sizes
338
339         US 6151670      Method for conserving memory storage using a (Nov. 21, 2000)
340                         pool of  short term memory registers
341
342         US 6195715      Interrupt control for multiple programs communicating with      (Feb. 27, 2001)
343                         a common interrupt by associating programs to GP registers,
344                         defining interrupt register, polling GP registers, and invoking
345                         callback routine associated with defined interrupt register