···11+=============================================22+Sound Blaster Audigy mixer / default DSP code33+=============================================1422- Sound Blaster Audigy mixer / default DSP code33- ===========================================44-55-This is based on SB-Live-mixer.txt.55+This is based on sb-live-mixer.rst.6677The EMU10K2 chips have a DSP part which can be programmed to support 88various ways of sample processing, which is described here.···1313(can be altered later) which offers the following functionality:141415151616-1) Digital mixer controls1717--------------------------1616+Digital mixer controls1717+======================18181919These controls are built using the DSP instructions. They offer extended2020functionality. Only the default build-in code in the ALSA driver is described···26262727Explanation of used abbreviations:28282929-DAC - digital to analog converter3030-ADC - analog to digital converter3131-I2S - one-way three wire serial bus for digital sound by Philips Semiconductors3232- (this standard is used for connecting standalone DAC and ADC converters)3333-LFE - low frequency effects (subwoofer signal)3434-AC97 - a chip containing an analog mixer, DAC and ADC converters3535-IEC958 - S/PDIF3636-FX-bus - the EMU10K2 chip has an effect bus containing 64 accumulators.3737- Each of the synthesizer voices can feed its output to these accumulators3838- and the DSP microcontroller can operate with the resulting sum.2929+DAC3030+ digital to analog converter3131+ADC3232+ analog to digital converter3333+I2S3434+ one-way three wire serial bus for digital sound by Philips Semiconductors3535+ (this standard is used for connecting standalone DAC and ADC converters)3636+LFE3737+ low frequency effects (subwoofer signal)3838+AC973939+ a chip containing an analog mixer, DAC and ADC converters4040+IEC9584141+ S/PDIF4242+FX-bus4343+ the EMU10K2 chip has an effect bus containing 64 accumulators.4444+ Each of the synthesizer voices can feed its output to these accumulators4545+ and the DSP microcontroller can operate with the resulting sum.39464047name='PCM Front Playback Volume',index=04141-4848+----------------------------------------4249This control is used to attenuate samples for left and right front PCM FX-bus4350accumulators. ALSA uses accumulators 8 and 9 for left and right front PCM 4451samples for 5.1 playback. The result samples are forwarded to the front DAC PCM 4552slots of the Philips DAC.46534754name='PCM Surround Playback Volume',index=04848-5555+-------------------------------------------4956This control is used to attenuate samples for left and right surround PCM FX-bus5057accumulators. ALSA uses accumulators 2 and 3 for left and right surround PCM 5158samples for 5.1 playback. The result samples are forwarded to the surround DAC PCM 5259slots of the Philips DAC.53605461name='PCM Center Playback Volume',index=05555-6262+-----------------------------------------5663This control is used to attenuate samples for center PCM FX-bus accumulator.5764ALSA uses accumulator 6 for center PCM sample for 5.1 playback. The result sample5865is forwarded to the center DAC PCM slot of the Philips DAC.59666067name='PCM LFE Playback Volume',index=06161-6868+--------------------------------------6269This control is used to attenuate sample for LFE PCM FX-bus accumulator. 6370ALSA uses accumulator 7 for LFE PCM sample for 5.1 playback. The result sample 6471is forwarded to the LFE DAC PCM slot of the Philips DAC.65726673name='PCM Playback Volume',index=06767-7474+----------------------------------6875This control is used to attenuate samples for left and right PCM FX-bus6976accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples for7077stereo playback. The result samples are forwarded to the front DAC PCM slots 7178of the Philips DAC.72797380name='PCM Capture Volume',index=07474-8181+---------------------------------7582This control is used to attenuate samples for left and right PCM FX-bus7683accumulator. ALSA uses accumulators 0 and 1 for left and right PCM.7784The result is forwarded to the ADC capture FIFO (thus to the standard capture7885PCM device).79868087name='Music Playback Volume',index=08181-8888+------------------------------------8289This control is used to attenuate samples for left and right MIDI FX-bus8390accumulators. ALSA uses accumulators 4 and 5 for left and right MIDI samples.8491The result samples are forwarded to the front DAC PCM slots of the AC97 codec.85928693name='Music Capture Volume',index=08787-9494+-----------------------------------8895These controls are used to attenuate samples for left and right MIDI FX-bus8996accumulator. ALSA uses accumulators 4 and 5 for left and right PCM.9097The result is forwarded to the ADC capture FIFO (thus to the standard capture9198PCM device).929993100name='Mic Playback Volume',index=09494-101101+----------------------------------95102This control is used to attenuate samples for left and right Mic input.96103For Mic input is used AC97 codec. The result samples are forwarded to 97104the front DAC PCM slots of the Philips DAC. Samples are forwarded to Mic98105capture FIFO (device 1 - 16bit/8KHz mono) too without volume control.99106100107name='Mic Capture Volume',index=0101101-108108+---------------------------------102109This control is used to attenuate samples for left and right Mic input.103110The result is forwarded to the ADC capture FIFO (thus to the standard capture104111PCM device).105112106113name='Audigy CD Playback Volume',index=0107107-114114+----------------------------------------108115This control is used to attenuate samples from left and right IEC958 TTL109116digital inputs (usually used by a CDROM drive). The result samples are110117forwarded to the front DAC PCM slots of the Philips DAC.111118112119name='Audigy CD Capture Volume',index=0113113-120120+---------------------------------------114121This control is used to attenuate samples from left and right IEC958 TTL115122digital inputs (usually used by a CDROM drive). The result samples are116123forwarded to the ADC capture FIFO (thus to the standard capture PCM device).117124118125name='IEC958 Optical Playback Volume',index=0119119-126126+---------------------------------------------120127This control is used to attenuate samples from left and right IEC958 optical121128digital input. The result samples are forwarded to the front DAC PCM slots122129of the Philips DAC.123130124131name='IEC958 Optical Capture Volume',index=0125125-132132+--------------------------------------------126133This control is used to attenuate samples from left and right IEC958 optical127134digital inputs. The result samples are forwarded to the ADC capture FIFO128135(thus to the standard capture PCM device).129136130137name='Line2 Playback Volume',index=0131131-138138+------------------------------------132139This control is used to attenuate samples from left and right I2S ADC133140inputs (on the AudigyDrive). The result samples are forwarded to the front134141DAC PCM slots of the Philips DAC.135142136143name='Line2 Capture Volume',index=1137137-144144+-----------------------------------138145This control is used to attenuate samples from left and right I2S ADC139146inputs (on the AudigyDrive). The result samples are forwarded to the ADC140147capture FIFO (thus to the standard capture PCM device).141148142149name='Analog Mix Playback Volume',index=0143143-150150+-----------------------------------------144151This control is used to attenuate samples from left and right I2S ADC145152inputs from Philips ADC. The result samples are forwarded to the front146153DAC PCM slots of the Philips DAC. This contains mix from analog sources147154like CD, Line In, Aux, ....148155149156name='Analog Mix Capture Volume',index=1150150-157157+----------------------------------------151158This control is used to attenuate samples from left and right I2S ADC152159inputs Philips ADC. The result samples are forwarded to the ADC153160capture FIFO (thus to the standard capture PCM device).154161155162name='Aux2 Playback Volume',index=0156156-163163+-----------------------------------157164This control is used to attenuate samples from left and right I2S ADC158165inputs (on the AudigyDrive). The result samples are forwarded to the front159166DAC PCM slots of the Philips DAC.160167161168name='Aux2 Capture Volume',index=1162162-169169+----------------------------------163170This control is used to attenuate samples from left and right I2S ADC164171inputs (on the AudigyDrive). The result samples are forwarded to the ADC165172capture FIFO (thus to the standard capture PCM device).166173167174name='Front Playback Volume',index=0168168-175175+------------------------------------169176All stereo signals are mixed together and mirrored to surround, center and LFE.170177This control is used to attenuate samples for left and right front speakers of171178this mix.172179173180name='Surround Playback Volume',index=0174174-181181+---------------------------------------175182All stereo signals are mixed together and mirrored to surround, center and LFE.176183This control is used to attenuate samples for left and right surround speakers of177184this mix.178185179186name='Center Playback Volume',index=0180180-187187+-------------------------------------181188All stereo signals are mixed together and mirrored to surround, center and LFE.182189This control is used to attenuate sample for center speaker of this mix.183190184191name='LFE Playback Volume',index=0185185-192192+----------------------------------186193All stereo signals are mixed together and mirrored to surround, center and LFE.187194This control is used to attenuate sample for LFE speaker of this mix.188195189196name='Tone Control - Switch',index=0190190-197197+------------------------------------191198This control turns the tone control on or off. The samples for front, rear192199and center / LFE outputs are affected.193200194201name='Tone Control - Bass',index=0195195-202202+----------------------------------196203This control sets the bass intensity. There is no neutral value!!197204When the tone control code is activated, the samples are always modified.198205The closest value to pure signal is 20.199206200207name='Tone Control - Treble',index=0201201-208208+------------------------------------202209This control sets the treble intensity. There is no neutral value!!203210When the tone control code is activated, the samples are always modified.204211The closest value to pure signal is 20.205212206213name='Master Playback Volume',index=0207207-214214+-------------------------------------208215This control is used to attenuate samples for front, surround, center and 209216LFE outputs.210217211218name='IEC958 Optical Raw Playback Switch',index=0212212-219219+-------------------------------------------------213220If this switch is on, then the samples for the IEC958 (S/PDIF) digital214221output are taken only from the raw FX8010 PCM, otherwise standard front215222PCM samples are taken.216223217224218218-2) PCM stream related controls219219-------------------------------225225+PCM stream related controls226226+===========================220227221228name='EMU10K1 PCM Volume',index 0-31222222-229229+------------------------------------223230Channel volume attenuation in range 0-0xffff. The maximum value (no224231attenuation) is default. The channel mapping for three values is225232as follows:226233227227- 0 - mono, default 0xffff (no attenuation)228228- 1 - left, default 0xffff (no attenuation)229229- 2 - right, default 0xffff (no attenuation)234234+* 0 - mono, default 0xffff (no attenuation)235235+* 1 - left, default 0xffff (no attenuation)236236+* 2 - right, default 0xffff (no attenuation)230237231238name='EMU10K1 PCM Send Routing',index 0-31232232-239239+------------------------------------------233240This control specifies the destination - FX-bus accumulators. There 24234241values with this mapping:235242236236- 0 - mono, A destination (FX-bus 0-63), default 0237237- 1 - mono, B destination (FX-bus 0-63), default 1238238- 2 - mono, C destination (FX-bus 0-63), default 2239239- 3 - mono, D destination (FX-bus 0-63), default 3240240- 4 - mono, E destination (FX-bus 0-63), default 0241241- 5 - mono, F destination (FX-bus 0-63), default 0242242- 6 - mono, G destination (FX-bus 0-63), default 0243243- 7 - mono, H destination (FX-bus 0-63), default 0244244- 8 - left, A destination (FX-bus 0-63), default 0245245- 9 - left, B destination (FX-bus 0-63), default 1246246- 10 - left, C destination (FX-bus 0-63), default 2247247- 11 - left, D destination (FX-bus 0-63), default 3248248- 12 - left, E destination (FX-bus 0-63), default 0249249- 13 - left, F destination (FX-bus 0-63), default 0250250- 14 - left, G destination (FX-bus 0-63), default 0251251- 15 - left, H destination (FX-bus 0-63), default 0252252- 16 - right, A destination (FX-bus 0-63), default 0253253- 17 - right, B destination (FX-bus 0-63), default 1254254- 18 - right, C destination (FX-bus 0-63), default 2255255- 19 - right, D destination (FX-bus 0-63), default 3256256- 20 - right, E destination (FX-bus 0-63), default 0257257- 21 - right, F destination (FX-bus 0-63), default 0258258- 22 - right, G destination (FX-bus 0-63), default 0259259- 23 - right, H destination (FX-bus 0-63), default 0243243+* 0 - mono, A destination (FX-bus 0-63), default 0244244+* 1 - mono, B destination (FX-bus 0-63), default 1245245+* 2 - mono, C destination (FX-bus 0-63), default 2246246+* 3 - mono, D destination (FX-bus 0-63), default 3247247+* 4 - mono, E destination (FX-bus 0-63), default 0248248+* 5 - mono, F destination (FX-bus 0-63), default 0249249+* 6 - mono, G destination (FX-bus 0-63), default 0250250+* 7 - mono, H destination (FX-bus 0-63), default 0251251+* 8 - left, A destination (FX-bus 0-63), default 0252252+* 9 - left, B destination (FX-bus 0-63), default 1253253+* 10 - left, C destination (FX-bus 0-63), default 2254254+* 11 - left, D destination (FX-bus 0-63), default 3255255+* 12 - left, E destination (FX-bus 0-63), default 0256256+* 13 - left, F destination (FX-bus 0-63), default 0257257+* 14 - left, G destination (FX-bus 0-63), default 0258258+* 15 - left, H destination (FX-bus 0-63), default 0259259+* 16 - right, A destination (FX-bus 0-63), default 0260260+* 17 - right, B destination (FX-bus 0-63), default 1261261+* 18 - right, C destination (FX-bus 0-63), default 2262262+* 19 - right, D destination (FX-bus 0-63), default 3263263+* 20 - right, E destination (FX-bus 0-63), default 0264264+* 21 - right, F destination (FX-bus 0-63), default 0265265+* 22 - right, G destination (FX-bus 0-63), default 0266266+* 23 - right, H destination (FX-bus 0-63), default 0260267261268Don't forget that it's illegal to assign a channel to the same FX-bus accumulator 262269more than once (it means 0=0 && 1=0 is an invalid combination).263270264271name='EMU10K1 PCM Send Volume',index 0-31265265-272272+-----------------------------------------266273It specifies the attenuation (amount) for given destination in range 0-255.267274The channel mapping is following:268275269269- 0 - mono, A destination attn, default 255 (no attenuation)270270- 1 - mono, B destination attn, default 255 (no attenuation)271271- 2 - mono, C destination attn, default 0 (mute)272272- 3 - mono, D destination attn, default 0 (mute)273273- 4 - mono, E destination attn, default 0 (mute)274274- 5 - mono, F destination attn, default 0 (mute)275275- 6 - mono, G destination attn, default 0 (mute)276276- 7 - mono, H destination attn, default 0 (mute)277277- 8 - left, A destination attn, default 255 (no attenuation)278278- 9 - left, B destination attn, default 0 (mute)279279- 10 - left, C destination attn, default 0 (mute)280280- 11 - left, D destination attn, default 0 (mute)281281- 12 - left, E destination attn, default 0 (mute)282282- 13 - left, F destination attn, default 0 (mute)283283- 14 - left, G destination attn, default 0 (mute)284284- 15 - left, H destination attn, default 0 (mute)285285- 16 - right, A destination attn, default 0 (mute)286286- 17 - right, B destination attn, default 255 (no attenuation)287287- 18 - right, C destination attn, default 0 (mute)288288- 19 - right, D destination attn, default 0 (mute)289289- 20 - right, E destination attn, default 0 (mute)290290- 21 - right, F destination attn, default 0 (mute)291291- 22 - right, G destination attn, default 0 (mute)292292- 23 - right, H destination attn, default 0 (mute)276276+* 0 - mono, A destination attn, default 255 (no attenuation)277277+* 1 - mono, B destination attn, default 255 (no attenuation)278278+* 2 - mono, C destination attn, default 0 (mute)279279+* 3 - mono, D destination attn, default 0 (mute)280280+* 4 - mono, E destination attn, default 0 (mute)281281+* 5 - mono, F destination attn, default 0 (mute)282282+* 6 - mono, G destination attn, default 0 (mute)283283+* 7 - mono, H destination attn, default 0 (mute)284284+* 8 - left, A destination attn, default 255 (no attenuation)285285+* 9 - left, B destination attn, default 0 (mute)286286+* 10 - left, C destination attn, default 0 (mute)287287+* 11 - left, D destination attn, default 0 (mute)288288+* 12 - left, E destination attn, default 0 (mute)289289+* 13 - left, F destination attn, default 0 (mute)290290+* 14 - left, G destination attn, default 0 (mute)291291+* 15 - left, H destination attn, default 0 (mute)292292+* 16 - right, A destination attn, default 0 (mute)293293+* 17 - right, B destination attn, default 255 (no attenuation)294294+* 18 - right, C destination attn, default 0 (mute)295295+* 19 - right, D destination attn, default 0 (mute)296296+* 20 - right, E destination attn, default 0 (mute)297297+* 21 - right, F destination attn, default 0 (mute)298298+* 22 - right, G destination attn, default 0 (mute)299299+* 23 - right, H destination attn, default 0 (mute)293300294301295302296296-4) MANUALS/PATENTS:297297--------------------303303+MANUALS/PATENTS304304+===============298305299306ftp://opensource.creative.com/pub/doc300307-------------------------------------301308302302- Files:303303- LM4545.pdf AC97 Codec309309+LM4545.pdf310310+ AC97 Codec304311305305- m2049.pdf The EMU10K1 Digital Audio Processor312312+m2049.pdf313313+ The EMU10K1 Digital Audio Processor306314307307- hog63.ps FX8010 - A DSP Chip Architecture for Audio Effects315315+hog63.ps316316+ FX8010 - A DSP Chip Architecture for Audio Effects308317309318310319WIPO Patents311320------------312312- Patent numbers:313313- WO 9901813 (A1) Audio Effects Processor with multiple asynchronous (Jan. 14, 1999)314314- streams315321316316- WO 9901814 (A1) Processor with Instruction Set for Audio Effects (Jan. 14, 1999)322322+WO 9901813 (A1)323323+ Audio Effects Processor with multiple asynchronous streams324324+ (Jan. 14, 1999)317325318318- WO 9901953 (A1) Audio Effects Processor having Decoupled Instruction319319- Execution and Audio Data Sequencing (Jan. 14, 1999)326326+WO 9901814 (A1)327327+ Processor with Instruction Set for Audio Effects (Jan. 14, 1999)328328+329329+WO 9901953 (A1)330330+ Audio Effects Processor having Decoupled Instruction331331+ Execution and Audio Data Sequencing (Jan. 14, 1999)320332321333322334US Patents (http://www.uspto.gov/)323335----------------------------------324336325325- US 5925841 Digital Sampling Instrument employing cache memory (Jul. 20, 1999)337337+US 5925841338338+ Digital Sampling Instrument employing cache memory (Jul. 20, 1999)326339327327- US 5928342 Audio Effects Processor integrated on a single chip (Jul. 27, 1999)328328- with a multiport memory onto which multiple asynchronous329329- digital sound samples can be concurrently loaded340340+US 5928342341341+ Audio Effects Processor integrated on a single chip342342+ with a multiport memory onto which multiple asynchronous343343+ digital sound samples can be concurrently loaded344344+ (Jul. 27, 1999)330345331331- US 5930158 Processor with Instruction Set for Audio Effects (Jul. 27, 1999)346346+US 5930158347347+ Processor with Instruction Set for Audio Effects (Jul. 27, 1999)332348333333- US 6032235 Memory initialization circuit (Tram) (Feb. 29, 2000)349349+US 6032235350350+ Memory initialization circuit (Tram) (Feb. 29, 2000)334351335335- US 6138207 Interpolation looping of audio samples in cache connected to (Oct. 24, 2000)336336- system bus with prioritization and modification of bus transfers337337- in accordance with loop ends and minimum block sizes352352+US 6138207353353+ Interpolation looping of audio samples in cache connected to354354+ system bus with prioritization and modification of bus transfers355355+ in accordance with loop ends and minimum block sizes356356+ (Oct. 24, 2000)338357339339- US 6151670 Method for conserving memory storage using a (Nov. 21, 2000)340340- pool of short term memory registers358358+US 6151670359359+ Method for conserving memory storage using a360360+ pool of short term memory registers361361+ (Nov. 21, 2000)341362342342- US 6195715 Interrupt control for multiple programs communicating with (Feb. 27, 2001)343343- a common interrupt by associating programs to GP registers,344344- defining interrupt register, polling GP registers, and invoking345345- callback routine associated with defined interrupt register363363+US 6195715364364+ Interrupt control for multiple programs communicating with365365+ a common interrupt by associating programs to GP registers,366366+ defining interrupt register, polling GP registers, and invoking367367+ callback routine associated with defined interrupt register368368+ (Feb. 27, 2001)