1*4882a593Smuzhiyun=========================================== 2*4882a593SmuzhiyunSound Blaster Live mixer / default DSP code 3*4882a593Smuzhiyun=========================================== 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunThe EMU10K1 chips have a DSP part which can be programmed to support 7*4882a593Smuzhiyunvarious ways of sample processing, which is described here. 8*4882a593Smuzhiyun(This article does not deal with the overall functionality of the 9*4882a593SmuzhiyunEMU10K1 chips. See the manuals section for further details.) 10*4882a593Smuzhiyun 11*4882a593SmuzhiyunThe ALSA driver programs this portion of chip by default code 12*4882a593Smuzhiyun(can be altered later) which offers the following functionality: 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun 15*4882a593SmuzhiyunIEC958 (S/PDIF) raw PCM 16*4882a593Smuzhiyun======================= 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunThis PCM device (it's the 4th PCM device (index 3!) and first subdevice 19*4882a593Smuzhiyun(index 0) for a given card) allows to forward 48kHz, stereo, 16-bit 20*4882a593Smuzhiyunlittle endian streams without any modifications to the digital output 21*4882a593Smuzhiyun(coaxial or optical). The universal interface allows the creation of up 22*4882a593Smuzhiyunto 8 raw PCM devices operating at 48kHz, 16-bit little endian. It would 23*4882a593Smuzhiyunbe easy to add support for multichannel devices to the current code, 24*4882a593Smuzhiyunbut the conversion routines exist only for stereo (2-channel streams) 25*4882a593Smuzhiyunat the time. 26*4882a593Smuzhiyun 27*4882a593SmuzhiyunLook to tram_poke routines in lowlevel/emu10k1/emufx.c for more details. 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun 30*4882a593SmuzhiyunDigital mixer controls 31*4882a593Smuzhiyun====================== 32*4882a593Smuzhiyun 33*4882a593SmuzhiyunThese controls are built using the DSP instructions. They offer extended 34*4882a593Smuzhiyunfunctionality. Only the default build-in code in the ALSA driver is described 35*4882a593Smuzhiyunhere. Note that the controls work as attenuators: the maximum value is the 36*4882a593Smuzhiyunneutral position leaving the signal unchanged. Note that if the same destination 37*4882a593Smuzhiyunis mentioned in multiple controls, the signal is accumulated and can be wrapped 38*4882a593Smuzhiyun(set to maximal or minimal value without checking of overflow). 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun 41*4882a593SmuzhiyunExplanation of used abbreviations: 42*4882a593Smuzhiyun 43*4882a593SmuzhiyunDAC 44*4882a593Smuzhiyun digital to analog converter 45*4882a593SmuzhiyunADC 46*4882a593Smuzhiyun analog to digital converter 47*4882a593SmuzhiyunI2S 48*4882a593Smuzhiyun one-way three wire serial bus for digital sound by Philips Semiconductors 49*4882a593Smuzhiyun (this standard is used for connecting standalone DAC and ADC converters) 50*4882a593SmuzhiyunLFE 51*4882a593Smuzhiyun low frequency effects (subwoofer signal) 52*4882a593SmuzhiyunAC97 53*4882a593Smuzhiyun a chip containing an analog mixer, DAC and ADC converters 54*4882a593SmuzhiyunIEC958 55*4882a593Smuzhiyun S/PDIF 56*4882a593SmuzhiyunFX-bus 57*4882a593Smuzhiyun the EMU10K1 chip has an effect bus containing 16 accumulators. 58*4882a593Smuzhiyun Each of the synthesizer voices can feed its output to these accumulators 59*4882a593Smuzhiyun and the DSP microcontroller can operate with the resulting sum. 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun``name='Wave Playback Volume',index=0`` 63*4882a593Smuzhiyun--------------------------------------- 64*4882a593SmuzhiyunThis control is used to attenuate samples for left and right PCM FX-bus 65*4882a593Smuzhiyunaccumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples. 66*4882a593SmuzhiyunThe result samples are forwarded to the front DAC PCM slots of the AC97 codec. 67*4882a593Smuzhiyun 68*4882a593Smuzhiyun``name='Wave Surround Playback Volume',index=0`` 69*4882a593Smuzhiyun------------------------------------------------ 70*4882a593SmuzhiyunThis control is used to attenuate samples for left and right PCM FX-bus 71*4882a593Smuzhiyunaccumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples. 72*4882a593SmuzhiyunThe result samples are forwarded to the rear I2S DACs. These DACs operates 73*4882a593Smuzhiyunseparately (they are not inside the AC97 codec). 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun``name='Wave Center Playback Volume',index=0`` 76*4882a593Smuzhiyun---------------------------------------------- 77*4882a593SmuzhiyunThis control is used to attenuate samples for left and right PCM FX-bus 78*4882a593Smuzhiyunaccumulators. ALSA uses accumulators 0 and 1 for left and right PCM samples. 79*4882a593SmuzhiyunThe result is mixed to mono signal (single channel) and forwarded to 80*4882a593Smuzhiyunthe ??rear?? right DAC PCM slot of the AC97 codec. 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun``name='Wave LFE Playback Volume',index=0`` 83*4882a593Smuzhiyun------------------------------------------- 84*4882a593SmuzhiyunThis control is used to attenuate samples for left and right PCM FX-bus 85*4882a593Smuzhiyunaccumulators. ALSA uses accumulators 0 and 1 for left and right PCM. 86*4882a593SmuzhiyunThe result is mixed to mono signal (single channel) and forwarded to 87*4882a593Smuzhiyunthe ??rear?? left DAC PCM slot of the AC97 codec. 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun``name='Wave Capture Volume',index=0``, ``name='Wave Capture Switch',index=0`` 90*4882a593Smuzhiyun------------------------------------------------------------------------------ 91*4882a593SmuzhiyunThese controls are used to attenuate samples for left and right PCM FX-bus 92*4882a593Smuzhiyunaccumulator. ALSA uses accumulators 0 and 1 for left and right PCM. 93*4882a593SmuzhiyunThe result is forwarded to the ADC capture FIFO (thus to the standard capture 94*4882a593SmuzhiyunPCM device). 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun``name='Synth Playback Volume',index=0`` 97*4882a593Smuzhiyun---------------------------------------- 98*4882a593SmuzhiyunThis control is used to attenuate samples for left and right MIDI FX-bus 99*4882a593Smuzhiyunaccumulators. ALSA uses accumulators 4 and 5 for left and right MIDI samples. 100*4882a593SmuzhiyunThe result samples are forwarded to the front DAC PCM slots of the AC97 codec. 101*4882a593Smuzhiyun 102*4882a593Smuzhiyun``name='Synth Capture Volume',index=0``, ``name='Synth Capture Switch',index=0`` 103*4882a593Smuzhiyun-------------------------------------------------------------------------------- 104*4882a593SmuzhiyunThese controls are used to attenuate samples for left and right MIDI FX-bus 105*4882a593Smuzhiyunaccumulator. ALSA uses accumulators 4 and 5 for left and right PCM. 106*4882a593SmuzhiyunThe result is forwarded to the ADC capture FIFO (thus to the standard capture 107*4882a593SmuzhiyunPCM device). 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun``name='Surround Playback Volume',index=0`` 110*4882a593Smuzhiyun------------------------------------------- 111*4882a593SmuzhiyunThis control is used to attenuate samples for left and right rear PCM FX-bus 112*4882a593Smuzhiyunaccumulators. ALSA uses accumulators 2 and 3 for left and right rear PCM samples. 113*4882a593SmuzhiyunThe result samples are forwarded to the rear I2S DACs. These DACs operate 114*4882a593Smuzhiyunseparately (they are not inside the AC97 codec). 115*4882a593Smuzhiyun 116*4882a593Smuzhiyun``name='Surround Capture Volume',index=0``, ``name='Surround Capture Switch',index=0`` 117*4882a593Smuzhiyun-------------------------------------------------------------------------------------- 118*4882a593SmuzhiyunThese controls are used to attenuate samples for left and right rear PCM FX-bus 119*4882a593Smuzhiyunaccumulators. ALSA uses accumulators 2 and 3 for left and right rear PCM samples. 120*4882a593SmuzhiyunThe result is forwarded to the ADC capture FIFO (thus to the standard capture 121*4882a593SmuzhiyunPCM device). 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun``name='Center Playback Volume',index=0`` 124*4882a593Smuzhiyun----------------------------------------- 125*4882a593SmuzhiyunThis control is used to attenuate sample for center PCM FX-bus accumulator. 126*4882a593SmuzhiyunALSA uses accumulator 6 for center PCM sample. The result sample is forwarded 127*4882a593Smuzhiyunto the ??rear?? right DAC PCM slot of the AC97 codec. 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun``name='LFE Playback Volume',index=0`` 130*4882a593Smuzhiyun-------------------------------------- 131*4882a593SmuzhiyunThis control is used to attenuate sample for center PCM FX-bus accumulator. 132*4882a593SmuzhiyunALSA uses accumulator 6 for center PCM sample. The result sample is forwarded 133*4882a593Smuzhiyunto the ??rear?? left DAC PCM slot of the AC97 codec. 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun``name='AC97 Playback Volume',index=0`` 136*4882a593Smuzhiyun--------------------------------------- 137*4882a593SmuzhiyunThis control is used to attenuate samples for left and right front ADC PCM slots 138*4882a593Smuzhiyunof the AC97 codec. The result samples are forwarded to the front DAC PCM 139*4882a593Smuzhiyunslots of the AC97 codec. 140*4882a593Smuzhiyun 141*4882a593Smuzhiyun.. note:: 142*4882a593Smuzhiyun This control should be zero for the standard operations, otherwise 143*4882a593Smuzhiyun a digital loopback is activated. 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun 146*4882a593Smuzhiyun``name='AC97 Capture Volume',index=0`` 147*4882a593Smuzhiyun-------------------------------------- 148*4882a593SmuzhiyunThis control is used to attenuate samples for left and right front ADC PCM slots 149*4882a593Smuzhiyunof the AC97 codec. The result is forwarded to the ADC capture FIFO (thus to 150*4882a593Smuzhiyunthe standard capture PCM device). 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun.. note:: 153*4882a593Smuzhiyun This control should be 100 (maximal value), otherwise no analog 154*4882a593Smuzhiyun inputs of the AC97 codec can be captured (recorded). 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun``name='IEC958 TTL Playback Volume',index=0`` 157*4882a593Smuzhiyun--------------------------------------------- 158*4882a593SmuzhiyunThis control is used to attenuate samples from left and right IEC958 TTL 159*4882a593Smuzhiyundigital inputs (usually used by a CDROM drive). The result samples are 160*4882a593Smuzhiyunforwarded to the front DAC PCM slots of the AC97 codec. 161*4882a593Smuzhiyun 162*4882a593Smuzhiyun``name='IEC958 TTL Capture Volume',index=0`` 163*4882a593Smuzhiyun-------------------------------------------- 164*4882a593SmuzhiyunThis control is used to attenuate samples from left and right IEC958 TTL 165*4882a593Smuzhiyundigital inputs (usually used by a CDROM drive). The result samples are 166*4882a593Smuzhiyunforwarded to the ADC capture FIFO (thus to the standard capture PCM device). 167*4882a593Smuzhiyun 168*4882a593Smuzhiyun``name='Zoom Video Playback Volume',index=0`` 169*4882a593Smuzhiyun--------------------------------------------- 170*4882a593SmuzhiyunThis control is used to attenuate samples from left and right zoom video 171*4882a593Smuzhiyundigital inputs (usually used by a CDROM drive). The result samples are 172*4882a593Smuzhiyunforwarded to the front DAC PCM slots of the AC97 codec. 173*4882a593Smuzhiyun 174*4882a593Smuzhiyun``name='Zoom Video Capture Volume',index=0`` 175*4882a593Smuzhiyun-------------------------------------------- 176*4882a593SmuzhiyunThis control is used to attenuate samples from left and right zoom video 177*4882a593Smuzhiyundigital inputs (usually used by a CDROM drive). The result samples are 178*4882a593Smuzhiyunforwarded to the ADC capture FIFO (thus to the standard capture PCM device). 179*4882a593Smuzhiyun 180*4882a593Smuzhiyun``name='IEC958 LiveDrive Playback Volume',index=0`` 181*4882a593Smuzhiyun--------------------------------------------------- 182*4882a593SmuzhiyunThis control is used to attenuate samples from left and right IEC958 optical 183*4882a593Smuzhiyundigital input. The result samples are forwarded to the front DAC PCM slots 184*4882a593Smuzhiyunof the AC97 codec. 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun``name='IEC958 LiveDrive Capture Volume',index=0`` 187*4882a593Smuzhiyun-------------------------------------------------- 188*4882a593SmuzhiyunThis control is used to attenuate samples from left and right IEC958 optical 189*4882a593Smuzhiyundigital inputs. The result samples are forwarded to the ADC capture FIFO 190*4882a593Smuzhiyun(thus to the standard capture PCM device). 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun``name='IEC958 Coaxial Playback Volume',index=0`` 193*4882a593Smuzhiyun------------------------------------------------- 194*4882a593SmuzhiyunThis control is used to attenuate samples from left and right IEC958 coaxial 195*4882a593Smuzhiyundigital inputs. The result samples are forwarded to the front DAC PCM slots 196*4882a593Smuzhiyunof the AC97 codec. 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun``name='IEC958 Coaxial Capture Volume',index=0`` 199*4882a593Smuzhiyun------------------------------------------------ 200*4882a593SmuzhiyunThis control is used to attenuate samples from left and right IEC958 coaxial 201*4882a593Smuzhiyundigital inputs. The result samples are forwarded to the ADC capture FIFO 202*4882a593Smuzhiyun(thus to the standard capture PCM device). 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun``name='Line LiveDrive Playback Volume',index=0``, ``name='Line LiveDrive Playback Volume',index=1`` 205*4882a593Smuzhiyun---------------------------------------------------------------------------------------------------- 206*4882a593SmuzhiyunThis control is used to attenuate samples from left and right I2S ADC 207*4882a593Smuzhiyuninputs (on the LiveDrive). The result samples are forwarded to the front 208*4882a593SmuzhiyunDAC PCM slots of the AC97 codec. 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun``name='Line LiveDrive Capture Volume',index=1``, ``name='Line LiveDrive Capture Volume',index=1`` 211*4882a593Smuzhiyun-------------------------------------------------------------------------------------------------- 212*4882a593SmuzhiyunThis control is used to attenuate samples from left and right I2S ADC 213*4882a593Smuzhiyuninputs (on the LiveDrive). The result samples are forwarded to the ADC 214*4882a593Smuzhiyuncapture FIFO (thus to the standard capture PCM device). 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun``name='Tone Control - Switch',index=0`` 217*4882a593Smuzhiyun---------------------------------------- 218*4882a593SmuzhiyunThis control turns the tone control on or off. The samples for front, rear 219*4882a593Smuzhiyunand center / LFE outputs are affected. 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun``name='Tone Control - Bass',index=0`` 222*4882a593Smuzhiyun-------------------------------------- 223*4882a593SmuzhiyunThis control sets the bass intensity. There is no neutral value!! 224*4882a593SmuzhiyunWhen the tone control code is activated, the samples are always modified. 225*4882a593SmuzhiyunThe closest value to pure signal is 20. 226*4882a593Smuzhiyun 227*4882a593Smuzhiyun``name='Tone Control - Treble',index=0`` 228*4882a593Smuzhiyun---------------------------------------- 229*4882a593SmuzhiyunThis control sets the treble intensity. There is no neutral value!! 230*4882a593SmuzhiyunWhen the tone control code is activated, the samples are always modified. 231*4882a593SmuzhiyunThe closest value to pure signal is 20. 232*4882a593Smuzhiyun 233*4882a593Smuzhiyun``name='IEC958 Optical Raw Playback Switch',index=0`` 234*4882a593Smuzhiyun----------------------------------------------------- 235*4882a593SmuzhiyunIf this switch is on, then the samples for the IEC958 (S/PDIF) digital 236*4882a593Smuzhiyunoutput are taken only from the raw FX8010 PCM, otherwise standard front 237*4882a593SmuzhiyunPCM samples are taken. 238*4882a593Smuzhiyun 239*4882a593Smuzhiyun``name='Headphone Playback Volume',index=1`` 240*4882a593Smuzhiyun-------------------------------------------- 241*4882a593SmuzhiyunThis control attenuates the samples for the headphone output. 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun``name='Headphone Center Playback Switch',index=1`` 244*4882a593Smuzhiyun--------------------------------------------------- 245*4882a593SmuzhiyunIf this switch is on, then the sample for the center PCM is put to the 246*4882a593Smuzhiyunleft headphone output (useful for SB Live cards without separate center/LFE 247*4882a593Smuzhiyunoutput). 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun``name='Headphone LFE Playback Switch',index=1`` 250*4882a593Smuzhiyun------------------------------------------------ 251*4882a593SmuzhiyunIf this switch is on, then the sample for the center PCM is put to the 252*4882a593Smuzhiyunright headphone output (useful for SB Live cards without separate center/LFE 253*4882a593Smuzhiyunoutput). 254*4882a593Smuzhiyun 255*4882a593Smuzhiyun 256*4882a593SmuzhiyunPCM stream related controls 257*4882a593Smuzhiyun=========================== 258*4882a593Smuzhiyun 259*4882a593Smuzhiyun``name='EMU10K1 PCM Volume',index 0-31`` 260*4882a593Smuzhiyun---------------------------------------- 261*4882a593SmuzhiyunChannel volume attenuation in range 0-0xffff. The maximum value (no 262*4882a593Smuzhiyunattenuation) is default. The channel mapping for three values is 263*4882a593Smuzhiyunas follows: 264*4882a593Smuzhiyun 265*4882a593Smuzhiyun* 0 - mono, default 0xffff (no attenuation) 266*4882a593Smuzhiyun* 1 - left, default 0xffff (no attenuation) 267*4882a593Smuzhiyun* 2 - right, default 0xffff (no attenuation) 268*4882a593Smuzhiyun 269*4882a593Smuzhiyun``name='EMU10K1 PCM Send Routing',index 0-31`` 270*4882a593Smuzhiyun---------------------------------------------- 271*4882a593SmuzhiyunThis control specifies the destination - FX-bus accumulators. There are 272*4882a593Smuzhiyuntwelve values with this mapping: 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun* 0 - mono, A destination (FX-bus 0-15), default 0 275*4882a593Smuzhiyun* 1 - mono, B destination (FX-bus 0-15), default 1 276*4882a593Smuzhiyun* 2 - mono, C destination (FX-bus 0-15), default 2 277*4882a593Smuzhiyun* 3 - mono, D destination (FX-bus 0-15), default 3 278*4882a593Smuzhiyun* 4 - left, A destination (FX-bus 0-15), default 0 279*4882a593Smuzhiyun* 5 - left, B destination (FX-bus 0-15), default 1 280*4882a593Smuzhiyun* 6 - left, C destination (FX-bus 0-15), default 2 281*4882a593Smuzhiyun* 7 - left, D destination (FX-bus 0-15), default 3 282*4882a593Smuzhiyun* 8 - right, A destination (FX-bus 0-15), default 0 283*4882a593Smuzhiyun* 9 - right, B destination (FX-bus 0-15), default 1 284*4882a593Smuzhiyun* 10 - right, C destination (FX-bus 0-15), default 2 285*4882a593Smuzhiyun* 11 - right, D destination (FX-bus 0-15), default 3 286*4882a593Smuzhiyun 287*4882a593SmuzhiyunDon't forget that it's illegal to assign a channel to the same FX-bus accumulator 288*4882a593Smuzhiyunmore than once (it means 0=0 && 1=0 is an invalid combination). 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun``name='EMU10K1 PCM Send Volume',index 0-31`` 291*4882a593Smuzhiyun--------------------------------------------- 292*4882a593SmuzhiyunIt specifies the attenuation (amount) for given destination in range 0-255. 293*4882a593SmuzhiyunThe channel mapping is following: 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun* 0 - mono, A destination attn, default 255 (no attenuation) 296*4882a593Smuzhiyun* 1 - mono, B destination attn, default 255 (no attenuation) 297*4882a593Smuzhiyun* 2 - mono, C destination attn, default 0 (mute) 298*4882a593Smuzhiyun* 3 - mono, D destination attn, default 0 (mute) 299*4882a593Smuzhiyun* 4 - left, A destination attn, default 255 (no attenuation) 300*4882a593Smuzhiyun* 5 - left, B destination attn, default 0 (mute) 301*4882a593Smuzhiyun* 6 - left, C destination attn, default 0 (mute) 302*4882a593Smuzhiyun* 7 - left, D destination attn, default 0 (mute) 303*4882a593Smuzhiyun* 8 - right, A destination attn, default 0 (mute) 304*4882a593Smuzhiyun* 9 - right, B destination attn, default 255 (no attenuation) 305*4882a593Smuzhiyun* 10 - right, C destination attn, default 0 (mute) 306*4882a593Smuzhiyun* 11 - right, D destination attn, default 0 (mute) 307*4882a593Smuzhiyun 308*4882a593Smuzhiyun 309*4882a593Smuzhiyun 310*4882a593SmuzhiyunMANUALS/PATENTS 311*4882a593Smuzhiyun=============== 312*4882a593Smuzhiyun 313*4882a593Smuzhiyunftp://opensource.creative.com/pub/doc 314*4882a593Smuzhiyun------------------------------------- 315*4882a593Smuzhiyun 316*4882a593SmuzhiyunLM4545.pdf 317*4882a593Smuzhiyun AC97 Codec 318*4882a593Smuzhiyunm2049.pdf 319*4882a593Smuzhiyun The EMU10K1 Digital Audio Processor 320*4882a593Smuzhiyunhog63.ps 321*4882a593Smuzhiyun FX8010 - A DSP Chip Architecture for Audio Effects 322*4882a593Smuzhiyun 323*4882a593Smuzhiyun 324*4882a593SmuzhiyunWIPO Patents 325*4882a593Smuzhiyun------------ 326*4882a593Smuzhiyun 327*4882a593SmuzhiyunWO 9901813 (A1) 328*4882a593Smuzhiyun Audio Effects Processor with multiple asynchronous streams 329*4882a593Smuzhiyun (Jan. 14, 1999) 330*4882a593Smuzhiyun 331*4882a593SmuzhiyunWO 9901814 (A1) 332*4882a593Smuzhiyun Processor with Instruction Set for Audio Effects (Jan. 14, 1999) 333*4882a593Smuzhiyun 334*4882a593SmuzhiyunWO 9901953 (A1) 335*4882a593Smuzhiyun Audio Effects Processor having Decoupled Instruction 336*4882a593Smuzhiyun Execution and Audio Data Sequencing (Jan. 14, 1999) 337*4882a593Smuzhiyun 338*4882a593Smuzhiyun 339*4882a593SmuzhiyunUS Patents (https://www.uspto.gov/) 340*4882a593Smuzhiyun----------------------------------- 341*4882a593Smuzhiyun 342*4882a593SmuzhiyunUS 5925841 343*4882a593Smuzhiyun Digital Sampling Instrument employing cache memory (Jul. 20, 1999) 344*4882a593Smuzhiyun 345*4882a593SmuzhiyunUS 5928342 346*4882a593Smuzhiyun Audio Effects Processor integrated on a single chip 347*4882a593Smuzhiyun with a multiport memory onto which multiple asynchronous 348*4882a593Smuzhiyun digital sound samples can be concurrently loaded 349*4882a593Smuzhiyun (Jul. 27, 1999) 350*4882a593Smuzhiyun 351*4882a593SmuzhiyunUS 5930158 352*4882a593Smuzhiyun Processor with Instruction Set for Audio Effects (Jul. 27, 1999) 353*4882a593Smuzhiyun 354*4882a593SmuzhiyunUS 6032235 355*4882a593Smuzhiyun Memory initialization circuit (Tram) (Feb. 29, 2000) 356*4882a593Smuzhiyun 357*4882a593SmuzhiyunUS 6138207 358*4882a593Smuzhiyun Interpolation looping of audio samples in cache connected to 359*4882a593Smuzhiyun system bus with prioritization and modification of bus transfers 360*4882a593Smuzhiyun in accordance with loop ends and minimum block sizes 361*4882a593Smuzhiyun (Oct. 24, 2000) 362*4882a593Smuzhiyun 363*4882a593SmuzhiyunUS 6151670 364*4882a593Smuzhiyun Method for conserving memory storage using a 365*4882a593Smuzhiyun pool of short term memory registers 366*4882a593Smuzhiyun (Nov. 21, 2000) 367*4882a593Smuzhiyun 368*4882a593SmuzhiyunUS 6195715 369*4882a593Smuzhiyun Interrupt control for multiple programs communicating with 370*4882a593Smuzhiyun a common interrupt by associating programs to GP registers, 371*4882a593Smuzhiyun defining interrupt register, polling GP registers, and invoking 372*4882a593Smuzhiyun callback routine associated with defined interrupt register 373*4882a593Smuzhiyun (Feb. 27, 2001) 374