···11-22- Sound Blaster Live mixer / default DSP code33- ===========================================11+===========================================22+Sound Blaster Live mixer / default DSP code33+===========================================445566The EMU10K1 chips have a DSP part which can be programmed to support···1212(can be altered later) which offers the following functionality:131314141515-1) IEC958 (S/PDIF) raw PCM1616---------------------------1515+IEC958 (S/PDIF) raw PCM1616+=======================17171818This PCM device (it's the 4th PCM device (index 3!) and first subdevice1919(index 0) for a given card) allows to forward 48kHz, stereo, 16-bit···2727Look to tram_poke routines in lowlevel/emu10k1/emufx.c for more details.282829293030-2) Digital mixer controls3131--------------------------3030+Digital mixer controls3131+======================32323333These controls are built using the DSP instructions. They offer extended3434functionality. Only the default build-in code in the ALSA driver is described···40404141Explanation of used abbreviations:42424343-DAC - digital to analog converter4444-ADC - analog to digital converter4545-I2S - one-way three wire serial bus for digital sound by Philips Semiconductors4646- (this standard is used for connecting standalone DAC and ADC converters)4747-LFE - low frequency effects (subwoofer signal)4848-AC97 - a chip containing an analog mixer, DAC and ADC converters4949-IEC958 - S/PDIF5050-FX-bus - the EMU10K1 chip has an effect bus containing 16 accumulators.5151- Each of the synthesizer voices can feed its output to these accumulators5252- and the DSP microcontroller can operate with the resulting sum.4343+DAC4444+ digital to analog converter4545+ADC4646+ analog to digital converter4747+I2S4848+ one-way three wire serial bus for digital sound by Philips Semiconductors4949+ (this standard is used for connecting standalone DAC and ADC converters)5050+LFE5151+ low frequency effects (subwoofer signal)5252+AC975353+ a chip containing an analog mixer, DAC and ADC converters5454+IEC9585555+ S/PDIF5656+FX-bus5757+ the EMU10K1 chip has an effect bus containing 16 accumulators.5858+ Each of the synthesizer voices can feed its output to these accumulators5959+ and the DSP microcontroller can operate with the resulting sum.536054615555-name='Wave Playback Volume',index=05656-6262+``name='Wave Playback Volume',index=0``6363+---------------------------------------5764This control is used to attenuate samples for left and right PCM FX-bus5865accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples.5966The result samples are forwarded to the front DAC PCM slots of the AC97 codec.60676161-name='Wave Surround Playback Volume',index=06262-6868+``name='Wave Surround Playback Volume',index=0``6969+------------------------------------------------6370This control is used to attenuate samples for left and right PCM FX-bus6471accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples.6572The result samples are forwarded to the rear I2S DACs. These DACs operates6673separately (they are not inside the AC97 codec).67746868-name='Wave Center Playback Volume',index=06969-7575+``name='Wave Center Playback Volume',index=0``7676+----------------------------------------------7077This control is used to attenuate samples for left and right PCM FX-bus7178accumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples.7279The result is mixed to mono signal (single channel) and forwarded to7380the ??rear?? right DAC PCM slot of the AC97 codec.74817575-name='Wave LFE Playback Volume',index=07676-8282+``name='Wave LFE Playback Volume',index=0``8383+-------------------------------------------7784This control is used to attenuate samples for left and right PCM FX-bus7885accumulators. ALSA uses accumulators 0 and 1 for left and right PCM.7986The result is mixed to mono signal (single channel) and forwarded to8087the ??rear?? left DAC PCM slot of the AC97 codec.81888282-name='Wave Capture Volume',index=08383-name='Wave Capture Switch',index=08484-8989+``name='Wave Capture Volume',index=0``, ``name='Wave Capture Switch',index=0``9090+------------------------------------------------------------------------------8591These controls are used to attenuate samples for left and right PCM FX-bus8692accumulator. ALSA uses accumulators 0 and 1 for left and right PCM.8793The result is forwarded to the ADC capture FIFO (thus to the standard capture8894PCM device).89959090-name='Synth Playback Volume',index=09191-9696+``name='Synth Playback Volume',index=0``9797+----------------------------------------9298This control is used to attenuate samples for left and right MIDI FX-bus9399accumulators. ALSA uses accumulators 4 and 5 for left and right MIDI samples.94100The result samples are forwarded to the front DAC PCM slots of the AC97 codec.951019696-name='Synth Capture Volume',index=09797-name='Synth Capture Switch',index=09898-102102+``name='Synth Capture Volume',index=0``, ``name='Synth Capture Switch',index=0``103103+--------------------------------------------------------------------------------99104These controls are used to attenuate samples for left and right MIDI FX-bus100105accumulator. ALSA uses accumulators 4 and 5 for left and right PCM.101106The result is forwarded to the ADC capture FIFO (thus to the standard capture102107PCM device).103108104104-name='Surround Playback Volume',index=0105105-109109+``name='Surround Playback Volume',index=0``110110+-------------------------------------------106111This control is used to attenuate samples for left and right rear PCM FX-bus107112accumulators. ALSA uses accumulators 2 and 3 for left and right rear PCM samples.108113The result samples are forwarded to the rear I2S DACs. These DACs operate109114separately (they are not inside the AC97 codec).110115111111-name='Surround Capture Volume',index=0112112-name='Surround Capture Switch',index=0113113-116116+``name='Surround Capture Volume',index=0``, ``name='Surround Capture Switch',index=0``117117+--------------------------------------------------------------------------------------114118These controls are used to attenuate samples for left and right rear PCM FX-bus115119accumulators. ALSA uses accumulators 2 and 3 for left and right rear PCM samples.116120The result is forwarded to the ADC capture FIFO (thus to the standard capture117121PCM device).118122119119-name='Center Playback Volume',index=0120120-123123+``name='Center Playback Volume',index=0``124124+-----------------------------------------121125This control is used to attenuate sample for center PCM FX-bus accumulator.122126ALSA uses accumulator 6 for center PCM sample. The result sample is forwarded123127to the ??rear?? right DAC PCM slot of the AC97 codec.124128125125-name='LFE Playback Volume',index=0126126-129129+``name='LFE Playback Volume',index=0``130130+--------------------------------------127131This control is used to attenuate sample for center PCM FX-bus accumulator.128132ALSA uses accumulator 6 for center PCM sample. The result sample is forwarded129133to the ??rear?? left DAC PCM slot of the AC97 codec.130134131131-name='AC97 Playback Volume',index=0132132-135135+``name='AC97 Playback Volume',index=0``136136+---------------------------------------133137This control is used to attenuate samples for left and right front ADC PCM slots134138of the AC97 codec. The result samples are forwarded to the front DAC PCM135139slots of the AC97 codec.136136-********************************************************************************137137-*** Note: This control should be zero for the standard operations, otherwise ***138138-*** a digital loopback is activated. ***139139-********************************************************************************140140141141-name='AC97 Capture Volume',index=0141141+.. note::142142+ This control should be zero for the standard operations, otherwise143143+ a digital loopback is activated.142144145145+146146+``name='AC97 Capture Volume',index=0``147147+--------------------------------------143148This control is used to attenuate samples for left and right front ADC PCM slots144149of the AC97 codec. The result is forwarded to the ADC capture FIFO (thus to145150the standard capture PCM device).146146-********************************************************************************147147-*** Note: This control should be 100 (maximal value), otherwise no analog ***148148-*** inputs of the AC97 codec can be captured (recorded). ***149149-********************************************************************************150151151151-name='IEC958 TTL Playback Volume',index=0152152+.. note::153153+ This control should be 100 (maximal value), otherwise no analog154154+ inputs of the AC97 codec can be captured (recorded).152155156156+``name='IEC958 TTL Playback Volume',index=0``157157+---------------------------------------------153158This control is used to attenuate samples from left and right IEC958 TTL154159digital inputs (usually used by a CDROM drive). The result samples are155160forwarded to the front DAC PCM slots of the AC97 codec.156161157157-name='IEC958 TTL Capture Volume',index=0158158-162162+``name='IEC958 TTL Capture Volume',index=0``163163+--------------------------------------------159164This control is used to attenuate samples from left and right IEC958 TTL160165digital inputs (usually used by a CDROM drive). The result samples are161166forwarded to the ADC capture FIFO (thus to the standard capture PCM device).162167163163-name='Zoom Video Playback Volume',index=0164164-168168+``name='Zoom Video Playback Volume',index=0``169169+---------------------------------------------165170This control is used to attenuate samples from left and right zoom video166171digital inputs (usually used by a CDROM drive). The result samples are167172forwarded to the front DAC PCM slots of the AC97 codec.168173169169-name='Zoom Video Capture Volume',index=0170170-174174+``name='Zoom Video Capture Volume',index=0``175175+--------------------------------------------171176This control is used to attenuate samples from left and right zoom video172177digital inputs (usually used by a CDROM drive). The result samples are173178forwarded to the ADC capture FIFO (thus to the standard capture PCM device).174179175175-name='IEC958 LiveDrive Playback Volume',index=0176176-180180+``name='IEC958 LiveDrive Playback Volume',index=0``181181+---------------------------------------------------177182This control is used to attenuate samples from left and right IEC958 optical178183digital input. The result samples are forwarded to the front DAC PCM slots179184of the AC97 codec.180185181181-name='IEC958 LiveDrive Capture Volume',index=0182182-186186+``name='IEC958 LiveDrive Capture Volume',index=0``187187+--------------------------------------------------183188This control is used to attenuate samples from left and right IEC958 optical184189digital inputs. The result samples are forwarded to the ADC capture FIFO185190(thus to the standard capture PCM device).186191187187-name='IEC958 Coaxial Playback Volume',index=0188188-192192+``name='IEC958 Coaxial Playback Volume',index=0``193193+-------------------------------------------------189194This control is used to attenuate samples from left and right IEC958 coaxial190195digital inputs. The result samples are forwarded to the front DAC PCM slots191196of the AC97 codec.192197193193-name='IEC958 Coaxial Capture Volume',index=0194194-198198+``name='IEC958 Coaxial Capture Volume',index=0``199199+------------------------------------------------195200This control is used to attenuate samples from left and right IEC958 coaxial196201digital inputs. The result samples are forwarded to the ADC capture FIFO197202(thus to the standard capture PCM device).198203199199-name='Line LiveDrive Playback Volume',index=0200200-name='Line LiveDrive Playback Volume',index=1201201-204204+``name='Line LiveDrive Playback Volume',index=0``, ``name='Line LiveDrive Playback Volume',index=1``205205+----------------------------------------------------------------------------------------------------202206This control is used to attenuate samples from left and right I2S ADC203207inputs (on the LiveDrive). The result samples are forwarded to the front204208DAC PCM slots of the AC97 codec.205209206206-name='Line LiveDrive Capture Volume',index=1207207-name='Line LiveDrive Capture Volume',index=1208208-210210+``name='Line LiveDrive Capture Volume',index=1``, ``name='Line LiveDrive Capture Volume',index=1``211211+--------------------------------------------------------------------------------------------------209212This control is used to attenuate samples from left and right I2S ADC210213inputs (on the LiveDrive). The result samples are forwarded to the ADC211214capture FIFO (thus to the standard capture PCM device).212215213213-name='Tone Control - Switch',index=0214214-216216+``name='Tone Control - Switch',index=0``217217+----------------------------------------215218This control turns the tone control on or off. The samples for front, rear216219and center / LFE outputs are affected.217220218218-name='Tone Control - Bass',index=0219219-221221+``name='Tone Control - Bass',index=0``222222+--------------------------------------220223This control sets the bass intensity. There is no neutral value!!221224When the tone control code is activated, the samples are always modified.222225The closest value to pure signal is 20.223226224224-name='Tone Control - Treble',index=0225225-227227+``name='Tone Control - Treble',index=0``228228+----------------------------------------226229This control sets the treble intensity. There is no neutral value!!227230When the tone control code is activated, the samples are always modified.228231The closest value to pure signal is 20.229232230230-name='IEC958 Optical Raw Playback Switch',index=0231231-233233+``name='IEC958 Optical Raw Playback Switch',index=0``234234+-----------------------------------------------------232235If this switch is on, then the samples for the IEC958 (S/PDIF) digital233236output are taken only from the raw FX8010 PCM, otherwise standard front234237PCM samples are taken.235238236236-name='Headphone Playback Volume',index=1237237-239239+``name='Headphone Playback Volume',index=1``240240+--------------------------------------------238241This control attenuates the samples for the headphone output.239242240240-name='Headphone Center Playback Switch',index=1241241-243243+``name='Headphone Center Playback Switch',index=1``244244+---------------------------------------------------242245If this switch is on, then the sample for the center PCM is put to the243246left headphone output (useful for SB Live cards without separate center/LFE244247output).245248246246-name='Headphone LFE Playback Switch',index=1247247-249249+``name='Headphone LFE Playback Switch',index=1``250250+------------------------------------------------248251If this switch is on, then the sample for the center PCM is put to the249252right headphone output (useful for SB Live cards without separate center/LFE250253output).251254252255253253-3) PCM stream related controls254254-------------------------------256256+PCM stream related controls257257+===========================255258256256-name='EMU10K1 PCM Volume',index 0-31257257-259259+``name='EMU10K1 PCM Volume',index 0-31``260260+----------------------------------------258261Channel volume attenuation in range 0-0xffff. The maximum value (no259262attenuation) is default. The channel mapping for three values is260263as follows:261264262262- 0 - mono, default 0xffff (no attenuation)263263- 1 - left, default 0xffff (no attenuation)264264- 2 - right, default 0xffff (no attenuation)265265+* 0 - mono, default 0xffff (no attenuation)266266+* 1 - left, default 0xffff (no attenuation)267267+* 2 - right, default 0xffff (no attenuation)265268266266-name='EMU10K1 PCM Send Routing',index 0-31267267-269269+``name='EMU10K1 PCM Send Routing',index 0-31``270270+----------------------------------------------268271This control specifies the destination - FX-bus accumulators. There are269272twelve values with this mapping:270273271271- 0 - mono, A destination (FX-bus 0-15), default 0272272- 1 - mono, B destination (FX-bus 0-15), default 1273273- 2 - mono, C destination (FX-bus 0-15), default 2274274- 3 - mono, D destination (FX-bus 0-15), default 3275275- 4 - left, A destination (FX-bus 0-15), default 0276276- 5 - left, B destination (FX-bus 0-15), default 1277277- 6 - left, C destination (FX-bus 0-15), default 2278278- 7 - left, D destination (FX-bus 0-15), default 3279279- 8 - right, A destination (FX-bus 0-15), default 0280280- 9 - right, B destination (FX-bus 0-15), default 1281281- 10 - right, C destination (FX-bus 0-15), default 2282282- 11 - right, D destination (FX-bus 0-15), default 3274274+* 0 - mono, A destination (FX-bus 0-15), default 0275275+* 1 - mono, B destination (FX-bus 0-15), default 1276276+* 2 - mono, C destination (FX-bus 0-15), default 2277277+* 3 - mono, D destination (FX-bus 0-15), default 3278278+* 4 - left, A destination (FX-bus 0-15), default 0279279+* 5 - left, B destination (FX-bus 0-15), default 1280280+* 6 - left, C destination (FX-bus 0-15), default 2281281+* 7 - left, D destination (FX-bus 0-15), default 3282282+* 8 - right, A destination (FX-bus 0-15), default 0283283+* 9 - right, B destination (FX-bus 0-15), default 1284284+* 10 - right, C destination (FX-bus 0-15), default 2285285+* 11 - right, D destination (FX-bus 0-15), default 3283286284287Don't forget that it's illegal to assign a channel to the same FX-bus accumulator 285288more than once (it means 0=0 && 1=0 is an invalid combination).286289287287-name='EMU10K1 PCM Send Volume',index 0-31288288-290290+``name='EMU10K1 PCM Send Volume',index 0-31``291291+---------------------------------------------289292It specifies the attenuation (amount) for given destination in range 0-255.290293The channel mapping is following:291294292292- 0 - mono, A destination attn, default 255 (no attenuation)293293- 1 - mono, B destination attn, default 255 (no attenuation)294294- 2 - mono, C destination attn, default 0 (mute)295295- 3 - mono, D destination attn, default 0 (mute)296296- 4 - left, A destination attn, default 255 (no attenuation)297297- 5 - left, B destination attn, default 0 (mute)298298- 6 - left, C destination attn, default 0 (mute)299299- 7 - left, D destination attn, default 0 (mute)300300- 8 - right, A destination attn, default 0 (mute)301301- 9 - right, B destination attn, default 255 (no attenuation)302302- 10 - right, C destination attn, default 0 (mute)303303- 11 - right, D destination attn, default 0 (mute)295295+* 0 - mono, A destination attn, default 255 (no attenuation)296296+* 1 - mono, B destination attn, default 255 (no attenuation)297297+* 2 - mono, C destination attn, default 0 (mute)298298+* 3 - mono, D destination attn, default 0 (mute)299299+* 4 - left, A destination attn, default 255 (no attenuation)300300+* 5 - left, B destination attn, default 0 (mute)301301+* 6 - left, C destination attn, default 0 (mute)302302+* 7 - left, D destination attn, default 0 (mute)303303+* 8 - right, A destination attn, default 0 (mute)304304+* 9 - right, B destination attn, default 255 (no attenuation)305305+* 10 - right, C destination attn, default 0 (mute)306306+* 11 - right, D destination attn, default 0 (mute)304307305308306309307307-4) MANUALS/PATENTS:308308--------------------310310+MANUALS/PATENTS311311+===============309312310313ftp://opensource.creative.com/pub/doc311314-------------------------------------312315313313- Files:314314- LM4545.pdf AC97 Codec315315-316316- m2049.pdf The EMU10K1 Digital Audio Processor317317-318318- hog63.ps FX8010 - A DSP Chip Architecture for Audio Effects316316+LM4545.pdf317317+ AC97 Codec318318+m2049.pdf319319+ The EMU10K1 Digital Audio Processor320320+hog63.ps321321+ FX8010 - A DSP Chip Architecture for Audio Effects319322320323321324WIPO Patents322325------------323323- Patent numbers:324324- WO 9901813 (A1) Audio Effects Processor with multiple asynchronous (Jan. 14, 1999)325325- streams326326327327- WO 9901814 (A1) Processor with Instruction Set for Audio Effects (Jan. 14, 1999)327327+WO 9901813 (A1)328328+ Audio Effects Processor with multiple asynchronous streams329329+ (Jan. 14, 1999)328330329329- WO 9901953 (A1) Audio Effects Processor having Decoupled Instruction330330- Execution and Audio Data Sequencing (Jan. 14, 1999)331331+WO 9901814 (A1)332332+ Processor with Instruction Set for Audio Effects (Jan. 14, 1999)333333+334334+WO 9901953 (A1)335335+ Audio Effects Processor having Decoupled Instruction336336+ Execution and Audio Data Sequencing (Jan. 14, 1999)331337332338333339US Patents (http://www.uspto.gov/)334340----------------------------------335341336336- US 5925841 Digital Sampling Instrument employing cache memory (Jul. 20, 1999)342342+US 5925841343343+ Digital Sampling Instrument employing cache memory (Jul. 20, 1999)337344338338- US 5928342 Audio Effects Processor integrated on a single chip (Jul. 27, 1999)339339- with a multiport memory onto which multiple asynchronous340340- digital sound samples can be concurrently loaded345345+US 5928342346346+ Audio Effects Processor integrated on a single chip347347+ with a multiport memory onto which multiple asynchronous348348+ digital sound samples can be concurrently loaded349349+ (Jul. 27, 1999)341350342342- US 5930158 Processor with Instruction Set for Audio Effects (Jul. 27, 1999)351351+US 5930158352352+ Processor with Instruction Set for Audio Effects (Jul. 27, 1999)343353344344- US 6032235 Memory initialization circuit (Tram) (Feb. 29, 2000)354354+US 6032235355355+ Memory initialization circuit (Tram) (Feb. 29, 2000)345356346346- US 6138207 Interpolation looping of audio samples in cache connected to (Oct. 24, 2000)347347- system bus with prioritization and modification of bus transfers348348- in accordance with loop ends and minimum block sizes357357+US 6138207358358+ Interpolation looping of audio samples in cache connected to359359+ system bus with prioritization and modification of bus transfers360360+ in accordance with loop ends and minimum block sizes361361+ (Oct. 24, 2000)349362350350- US 6151670 Method for conserving memory storage using a (Nov. 21, 2000)351351- pool of short term memory registers363363+US 6151670364364+ Method for conserving memory storage using a365365+ pool of short term memory registers366366+ (Nov. 21, 2000)352367353353- US 6195715 Interrupt control for multiple programs communicating with (Feb. 27, 2001)354354- a common interrupt by associating programs to GP registers,355355- defining interrupt register, polling GP registers, and invoking356356- callback routine associated with defined interrupt register368368+US 6195715369369+ Interrupt control for multiple programs communicating with370370+ a common interrupt by associating programs to GP registers,371371+ defining interrupt register, polling GP registers, and invoking372372+ callback routine associated with defined interrupt register373373+ (Feb. 27, 2001)