xref: /OK3568_Linux_fs/kernel/Documentation/sound/cards/sb-live-mixer.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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