/[svn]/linuxsampler/trunk/src/engines/gig/Synthesizer.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/engines/gig/Synthesizer.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 324 by schoenebeck, Mon Dec 13 00:53:16 2004 UTC revision 325 by senkov, Tue Dec 21 04:54:37 2004 UTC
# Line 25  Line 25 
25  #include <stdio.h>  #include <stdio.h>
26    
27  #include "Synthesizer.h"  #include "Synthesizer.h"
28    #include "Profiler.h"
29    
30  #define SYNTHESIZE(IMPL,CHAN,FILTER,INTERPOLATE,LOOP,CONSTPITCH) \  #define SYNTHESIZE(IMPL,CHAN,FILTER,INTERPOLATE,LOOP,CONSTPITCH) \
31          Synthesizer<IMPL,CHAN,FILTER,INTERPOLATE,LOOP,CONSTPITCH>::SynthesizeFragment( \          Synthesizer<IMPL,CHAN,FILTER,INTERPOLATE,LOOP,CONSTPITCH>::SynthesizeFragment( \
32          voice, samples, pSrc, skip)          voice, samples, pSrc, skip)
33    #define SYNTHESIZEP(IMPL,CHAN,FILTER,INTERPOLATE,LOOP,CONSTPITCH) \
34            unsigned long long start = Profiler::Stamp(); \
35            Synthesizer<IMPL,CHAN,FILTER,INTERPOLATE,LOOP,CONSTPITCH>::SynthesizeFragment( \
36            voice, samples, pSrc, skip); \
37            Profiler::Record(start, samples, skip)
38    
39  namespace LinuxSampler { namespace gig {  namespace LinuxSampler { namespace gig {
40    
41      void SynthesizeFragment_mode1(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode01(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
42          SYNTHESIZE(CPP,MONO,0,0,0,1);          SYNTHESIZE(CPP,MONO,0,0,0,1);
43      }      }
44    
45      void SynthesizeFragment_mode2(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode02(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
46          SYNTHESIZE(CPP,MONO,0,0,1,1);          SYNTHESIZE(CPP,MONO,0,0,1,1);
47      }      }
48    
49      void SynthesizeFragment_mode3(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode03(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
50          SYNTHESIZE(CPP,MONO,0,0,1,1);          SYNTHESIZE(CPP,MONO,0,0,1,1);
51      }      }
52    
53      void SynthesizeFragment_mode4(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode04(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
54          SYNTHESIZE(CPP,MONO,0,1,0,0);          SYNTHESIZE(CPP,MONO,0,1,0,0);
55      }      }
56    
57      void SynthesizeFragment_mode5(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode05(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
58          SYNTHESIZE(CPP,MONO,0,1,0,1);          SYNTHESIZE(CPP,MONO,0,1,0,1);
59      }      }
60    
61      void SynthesizeFragment_mode6(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode06(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
62          SYNTHESIZE(CPP,MONO,0,1,1,0);          SYNTHESIZE(CPP,MONO,0,1,1,0);
63      }      }
64    
65      void SynthesizeFragment_mode7(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode07(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
66          SYNTHESIZE(CPP,MONO,0,1,1,1);          SYNTHESIZE(CPP,MONO,0,1,1,1);
67      }      }
68    
69      void SynthesizeFragment_mode8(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode08(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
70          SYNTHESIZE(CPP,MONO,1,0,0,1);          SYNTHESIZE(CPP,MONO,1,0,0,1);
71      }      }
72    
73      void SynthesizeFragment_mode9(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode09(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
74          SYNTHESIZE(CPP,MONO,1,0,0,1);          SYNTHESIZE(CPP,MONO,1,0,0,1);
75      }      }
76    
77      void SynthesizeFragment_mode10(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode0a(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
78          SYNTHESIZE(CPP,MONO,1,0,1,1);          SYNTHESIZE(CPP,MONO,1,0,1,1);
79      }      }
80    
81      void SynthesizeFragment_mode11(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode0b(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
82          SYNTHESIZE(CPP,MONO,1,0,1,1);          SYNTHESIZE(CPP,MONO,1,0,1,1);
83      }      }
84    
85      void SynthesizeFragment_mode12(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode0c(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
86          SYNTHESIZE(CPP,MONO,1,1,0,0);          SYNTHESIZE(CPP,MONO,1,1,0,0);
87      }      }
88    
89      void SynthesizeFragment_mode13(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode0d(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
90          SYNTHESIZE(CPP,MONO,1,1,0,1);          SYNTHESIZE(CPP,MONO,1,1,0,1);
91      }      }
92    
93      void SynthesizeFragment_mode14(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode0e(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
94          SYNTHESIZE(CPP,MONO,1,1,1,0);          SYNTHESIZE(CPP,MONO,1,1,1,0);
95      }      }
96    
97      void SynthesizeFragment_mode15(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode0f(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
98          SYNTHESIZE(CPP,MONO,1,1,1,1);          SYNTHESIZE(CPP,MONO,1,1,1,1);
99      }      }
100    
101      void SynthesizeFragment_mode16(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode11(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
102          SYNTHESIZE(CPP,STEREO,0,0,0,1);          SYNTHESIZE(CPP,STEREO,0,0,0,1);
103      }      }
104    
105      void SynthesizeFragment_mode17(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode13(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(CPP,STEREO,0,0,0,1);  
     }  
   
     void SynthesizeFragment_mode18(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
106          SYNTHESIZE(CPP,STEREO,0,0,1,1);          SYNTHESIZE(CPP,STEREO,0,0,1,1);
107      }      }
108    
109      void SynthesizeFragment_mode19(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode14(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(CPP,STEREO,0,0,1,1);  
     }  
   
     void SynthesizeFragment_mode20(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
110          SYNTHESIZE(CPP,STEREO,0,1,0,0);          SYNTHESIZE(CPP,STEREO,0,1,0,0);
111      }      }
112    
113      void SynthesizeFragment_mode21(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode15(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
114          SYNTHESIZE(CPP,STEREO,0,1,0,1);          SYNTHESIZE(CPP,STEREO,0,1,0,1);
115      }      }
116    
117      void SynthesizeFragment_mode22(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode16(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
118          SYNTHESIZE(CPP,STEREO,0,1,1,0);          SYNTHESIZE(CPP,STEREO,0,1,1,0);
119      }      }
120    
121      void SynthesizeFragment_mode23(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode17(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
122          SYNTHESIZE(CPP,STEREO,0,1,1,1);          SYNTHESIZE(CPP,STEREO,0,1,1,1);
123      }      }
124    
125      void SynthesizeFragment_mode24(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode19(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(CPP,STEREO,1,0,0,1);  
     }  
   
     void SynthesizeFragment_mode25(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
126          SYNTHESIZE(CPP,STEREO,1,0,0,1);          SYNTHESIZE(CPP,STEREO,1,0,0,1);
127      }      }
128    
129      void SynthesizeFragment_mode26(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode1b(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
130          SYNTHESIZE(CPP,STEREO,1,0,1,1);          SYNTHESIZE(CPP,STEREO,1,0,1,1);
131      }      }
132    
133      void SynthesizeFragment_mode27(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode1c(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(CPP,STEREO,1,0,1,1);  
     }  
   
     void SynthesizeFragment_mode28(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
134          SYNTHESIZE(CPP,STEREO,1,1,0,0);          SYNTHESIZE(CPP,STEREO,1,1,0,0);
135      }      }
136    
137      void SynthesizeFragment_mode29(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode1d(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
138          SYNTHESIZE(CPP,STEREO,1,1,0,1);          SYNTHESIZE(CPP,STEREO,1,1,0,1);
139      }      }
140    
141      void SynthesizeFragment_mode30(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode1e(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
142          SYNTHESIZE(CPP,STEREO,1,1,1,0);          SYNTHESIZE(CPP,STEREO,1,1,1,0);
143      }      }
144    
145      void SynthesizeFragment_mode31(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode1f(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
146          SYNTHESIZE(CPP,STEREO,1,1,1,1);          SYNTHESIZE(CPP,STEREO,1,1,1,1);
147      }      }
148    
149      void SynthesizeFragment_mode32(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode21(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
150          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,0,0,1);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,0,0,1);
151      }      }
152    
153      void SynthesizeFragment_mode33(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode23(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,0,0,1);  
     }  
   
     void SynthesizeFragment_mode34(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
         SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,0,1,1);  
     }  
   
     void SynthesizeFragment_mode35(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
154          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,0,1,1);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,0,1,1);
155      }      }
156    
157      void SynthesizeFragment_mode36(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode24(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
158          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,1,0,0);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,1,0,0);
159      }      }
160    
161      void SynthesizeFragment_mode37(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode25(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
162          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,1,0,1);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,1,0,1);
163      }      }
164    
165      void SynthesizeFragment_mode38(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode26(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
166          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,1,1,0);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,1,1,0);
167      }      }
168    
169      void SynthesizeFragment_mode39(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode27(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
170          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,1,1,1);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,0,1,1,1);
171      }      }
172    
173      void SynthesizeFragment_mode40(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode29(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
174          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,0,0,1);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,0,0,1);
175      }      }
176    
177      void SynthesizeFragment_mode41(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode2b(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,0,0,1);  
     }  
   
     void SynthesizeFragment_mode42(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
178          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,0,1,1);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,0,1,1);
179      }      }
180    
181      void SynthesizeFragment_mode43(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode2c(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,0,1,1);  
     }  
   
     void SynthesizeFragment_mode44(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
182          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,1,0,0);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,1,0,0);
183      }      }
184    
185      void SynthesizeFragment_mode45(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode2d(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
186          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,1,0,1);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,1,0,1);
187      }      }
188    
189      void SynthesizeFragment_mode46(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode2e(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
190          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,1,1,0);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,1,1,0);
191      }      }
192    
193      void SynthesizeFragment_mode47(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode2f(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
194          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,1,1,1);          SYNTHESIZE(ASM_X86_MMX_SSE,MONO,1,1,1,1);
195      }      }
196    
197      void SynthesizeFragment_mode48(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode31(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,0,0,1);  
     }  
   
     void SynthesizeFragment_mode49(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
198          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,0,0,1);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,0,0,1);
199      }      }
200    
201      void SynthesizeFragment_mode50(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode33(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
202          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,0,1,1);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,0,1,1);
203      }      }
204    
205      void SynthesizeFragment_mode51(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode34(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,0,1,1);  
     }  
   
     void SynthesizeFragment_mode52(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
206          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,1,0,0);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,1,0,0);
207      }      }
208    
209      void SynthesizeFragment_mode53(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode35(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
210          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,1,0,1);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,1,0,1);
211      }      }
212    
213      void SynthesizeFragment_mode54(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode36(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
214          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,1,1,0);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,1,1,0);
215      }      }
216    
217      void SynthesizeFragment_mode55(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode37(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
218          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,1,1,1);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,0,1,1,1);
219      }      }
220    
221      void SynthesizeFragment_mode56(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode39(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
222          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,0,0,1);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,0,0,1);
223      }      }
224    
225      void SynthesizeFragment_mode57(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode3b(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,0,0,1);  
     }  
   
     void SynthesizeFragment_mode58(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
226          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,0,1,1);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,0,1,1);
227      }      }
228    
229      void SynthesizeFragment_mode59(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode3c(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
         SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,0,1,1);  
     }  
   
     void SynthesizeFragment_mode60(VOICE &voice, uint samples, sample_t* pSrc, int skip) {  
230          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,1,0,0);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,1,0,0);
231      }      }
232    
233      void SynthesizeFragment_mode61(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode3d(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
234          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,1,0,1);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,1,0,1);
235      }      }
236    
237      void SynthesizeFragment_mode62(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode3e(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
238          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,1,1,0);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,1,1,0);
239      }      }
240    
241      void SynthesizeFragment_mode63(VOICE &voice, uint samples, sample_t* pSrc, int skip) {      void SynthesizeFragment_mode3f(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
242          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,1,1,1);          SYNTHESIZE(ASM_X86_MMX_SSE,STEREO,1,1,1,1);
243      }      }
244    
245    
246    //These are the same thing but with performance monitoring
247        void SynthesizeFragment_mode41(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
248            SYNTHESIZEP(CPP,MONO,0,0,0,1);
249        }
250    
251        void SynthesizeFragment_mode42(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
252            SYNTHESIZEP(CPP,MONO,0,0,1,1);
253        }
254    
255        void SynthesizeFragment_mode43(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
256            SYNTHESIZEP(CPP,MONO,0,0,1,1);
257        }
258    
259        void SynthesizeFragment_mode44(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
260            SYNTHESIZEP(CPP,MONO,0,1,0,0);
261        }
262    
263        void SynthesizeFragment_mode45(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
264            SYNTHESIZEP(CPP,MONO,0,1,0,1);
265        }
266    
267        void SynthesizeFragment_mode46(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
268            SYNTHESIZEP(CPP,MONO,0,1,1,0);
269        }
270    
271        void SynthesizeFragment_mode47(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
272            SYNTHESIZEP(CPP,MONO,0,1,1,1);
273        }
274    
275        void SynthesizeFragment_mode48(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
276            SYNTHESIZEP(CPP,MONO,1,0,0,1);
277        }
278    
279        void SynthesizeFragment_mode49(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
280            SYNTHESIZEP(CPP,MONO,1,0,0,1);
281        }
282    
283        void SynthesizeFragment_mode4a(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
284            SYNTHESIZEP(CPP,MONO,1,0,1,1);
285        }
286    
287        void SynthesizeFragment_mode4b(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
288            SYNTHESIZEP(CPP,MONO,1,0,1,1);
289        }
290    
291        void SynthesizeFragment_mode4c(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
292            SYNTHESIZEP(CPP,MONO,1,1,0,0);
293        }
294    
295        void SynthesizeFragment_mode4d(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
296            SYNTHESIZEP(CPP,MONO,1,1,0,1);
297        }
298    
299        void SynthesizeFragment_mode4e(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
300            SYNTHESIZEP(CPP,MONO,1,1,1,0);
301        }
302    
303        void SynthesizeFragment_mode4f(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
304            SYNTHESIZEP(CPP,MONO,1,1,1,1);
305        }
306    
307        void SynthesizeFragment_mode51(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
308            SYNTHESIZEP(CPP,STEREO,0,0,0,1);
309        }
310    
311        void SynthesizeFragment_mode53(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
312            SYNTHESIZEP(CPP,STEREO,0,0,1,1);
313        }
314    
315        void SynthesizeFragment_mode54(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
316            SYNTHESIZEP(CPP,STEREO,0,1,0,0);
317        }
318    
319        void SynthesizeFragment_mode55(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
320            SYNTHESIZEP(CPP,STEREO,0,1,0,1);
321        }
322    
323        void SynthesizeFragment_mode56(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
324            SYNTHESIZEP(CPP,STEREO,0,1,1,0);
325        }
326    
327        void SynthesizeFragment_mode57(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
328            SYNTHESIZEP(CPP,STEREO,0,1,1,1);
329        }
330    
331        void SynthesizeFragment_mode59(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
332            SYNTHESIZEP(CPP,STEREO,1,0,0,1);
333        }
334    
335        void SynthesizeFragment_mode5b(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
336            SYNTHESIZEP(CPP,STEREO,1,0,1,1);
337        }
338    
339        void SynthesizeFragment_mode5c(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
340            SYNTHESIZEP(CPP,STEREO,1,1,0,0);
341        }
342    
343        void SynthesizeFragment_mode5d(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
344            SYNTHESIZEP(CPP,STEREO,1,1,0,1);
345        }
346    
347        void SynthesizeFragment_mode5e(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
348            SYNTHESIZEP(CPP,STEREO,1,1,1,0);
349        }
350    
351        void SynthesizeFragment_mode5f(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
352            SYNTHESIZEP(CPP,STEREO,1,1,1,1);
353        }
354    
355        void SynthesizeFragment_mode61(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
356            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,0,0,0,1);
357        }
358    
359        void SynthesizeFragment_mode63(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
360            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,0,0,1,1);
361        }
362    
363        void SynthesizeFragment_mode64(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
364            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,0,1,0,0);
365        }
366    
367        void SynthesizeFragment_mode65(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
368            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,0,1,0,1);
369        }
370    
371        void SynthesizeFragment_mode66(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
372            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,0,1,1,0);
373        }
374    
375        void SynthesizeFragment_mode67(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
376            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,0,1,1,1);
377        }
378    
379        void SynthesizeFragment_mode69(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
380            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,1,0,0,1);
381        }
382    
383        void SynthesizeFragment_mode6b(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
384            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,1,0,1,1);
385        }
386    
387        void SynthesizeFragment_mode6c(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
388            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,1,1,0,0);
389        }
390    
391        void SynthesizeFragment_mode6d(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
392            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,1,1,0,1);
393        }
394    
395        void SynthesizeFragment_mode6e(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
396            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,1,1,1,0);
397        }
398    
399        void SynthesizeFragment_mode6f(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
400            SYNTHESIZEP(ASM_X86_MMX_SSE,MONO,1,1,1,1);
401        }
402    
403        void SynthesizeFragment_mode71(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
404            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,0,0,0,1);
405        }
406    
407        void SynthesizeFragment_mode73(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
408            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,0,0,1,1);
409        }
410    
411        void SynthesizeFragment_mode74(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
412            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,0,1,0,0);
413        }
414    
415        void SynthesizeFragment_mode75(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
416            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,0,1,0,1);
417        }
418    
419        void SynthesizeFragment_mode76(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
420            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,0,1,1,0);
421        }
422    
423        void SynthesizeFragment_mode77(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
424            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,0,1,1,1);
425        }
426    
427        void SynthesizeFragment_mode79(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
428            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,1,0,0,1);
429        }
430    
431        void SynthesizeFragment_mode7b(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
432            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,1,0,1,1);
433        }
434    
435        void SynthesizeFragment_mode7c(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
436            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,1,1,0,0);
437        }
438    
439        void SynthesizeFragment_mode7d(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
440            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,1,1,0,1);
441        }
442    
443        void SynthesizeFragment_mode7e(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
444            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,1,1,1,0);
445        }
446    
447        void SynthesizeFragment_mode7f(VOICE &voice, uint samples, sample_t* pSrc, uint skip) {
448            SYNTHESIZEP(ASM_X86_MMX_SSE,STEREO,1,1,1,1);
449        }
450    
451      void* GetSynthesisFunction(const int SynthesisMode) {      void* GetSynthesisFunction(const int SynthesisMode) {
452          // Mode Bits:  IMPL,CHAN,FILT,INTERP,LOOP,CONSTPITCH          // Mode Bits:  IMPL,CHAN,FILT,INTERP,LOOP,CONSTPITCH
453          switch (SynthesisMode) {          switch (SynthesisMode) {
454              case 0:  // redundant              case 0x00: // redundant
455              case 1:  return (void*) SynthesizeFragment_mode1;              case 0x01: return (void*) SynthesizeFragment_mode01;
456  #if 1              case 0x02: // redundant
457              case 2:  // redundant              case 0x03: return (void*) SynthesizeFragment_mode03;
458              case 3:  return (void*) SynthesizeFragment_mode3;              case 0x04: return (void*) SynthesizeFragment_mode04;
459              case 4:  return (void*) SynthesizeFragment_mode4;              case 0x05: return (void*) SynthesizeFragment_mode05;
460              case 5:  return (void*) SynthesizeFragment_mode5;              case 0x06: return (void*) SynthesizeFragment_mode06;
461              case 6:  return (void*) SynthesizeFragment_mode6;              case 0x07: return (void*) SynthesizeFragment_mode07;
462              case 7:  return (void*) SynthesizeFragment_mode7;              case 0x08: // redundant
463              case 8:  // redundant              case 0x09: return (void*) SynthesizeFragment_mode09;
464              case 9:  return (void*) SynthesizeFragment_mode9;              case 0x0a: // redundant
465              case 10: // redundant              case 0x0b: return (void*) SynthesizeFragment_mode0b;
466              case 11: return (void*) SynthesizeFragment_mode11;              case 0x0c: return (void*) SynthesizeFragment_mode0c;
467              case 12: return (void*) SynthesizeFragment_mode12;              case 0x0d: return (void*) SynthesizeFragment_mode0d;
468              case 13: return (void*) SynthesizeFragment_mode13;              case 0x0e: return (void*) SynthesizeFragment_mode0e;
469              case 14: return (void*) SynthesizeFragment_mode14;              case 0x0f: return (void*) SynthesizeFragment_mode0f;
470              case 15: return (void*) SynthesizeFragment_mode15;              case 0x10: // redundant
471              case 16: // redundant              case 0x11: return (void*) SynthesizeFragment_mode11;
472              case 17: return (void*) SynthesizeFragment_mode17;              case 0x12: // redundant
473              case 18: // redundant              case 0x13: return (void*) SynthesizeFragment_mode13;
474              case 19: return (void*) SynthesizeFragment_mode19;              case 0x14: return (void*) SynthesizeFragment_mode14;
475              case 20: return (void*) SynthesizeFragment_mode20;              case 0x15: return (void*) SynthesizeFragment_mode15;
476              case 21: return (void*) SynthesizeFragment_mode21;              case 0x16: return (void*) SynthesizeFragment_mode16;
477              case 22: return (void*) SynthesizeFragment_mode22;              case 0x17: return (void*) SynthesizeFragment_mode17;
478              case 23: return (void*) SynthesizeFragment_mode23;              case 0x18: // redundant
479              case 24: // redundant              case 0x19: return (void*) SynthesizeFragment_mode19;
480              case 25: return (void*) SynthesizeFragment_mode25;              case 0x1a: // redundant
481              case 26: // redundant              case 0x1b: return (void*) SynthesizeFragment_mode1b;
482              case 27: return (void*) SynthesizeFragment_mode27;              case 0x1c: return (void*) SynthesizeFragment_mode1c;
483              case 28: return (void*) SynthesizeFragment_mode28;              case 0x1d: return (void*) SynthesizeFragment_mode1d;
484              case 29: return (void*) SynthesizeFragment_mode29;              case 0x1e: return (void*) SynthesizeFragment_mode1e;
485              case 30: return (void*) SynthesizeFragment_mode30;              case 0x1f: return (void*) SynthesizeFragment_mode1f;
486              case 31: return (void*) SynthesizeFragment_mode31;              case 0x20: // redundant
487              case 32: // redundant              case 0x21: return (void*) SynthesizeFragment_mode21;
488              case 33: return (void*) SynthesizeFragment_mode33;              case 0x22: // redundant
489              case 34: // redundant              case 0x23: return (void*) SynthesizeFragment_mode23;
490              case 35: return (void*) SynthesizeFragment_mode35;              case 0x24: return (void*) SynthesizeFragment_mode24;
491              case 36: return (void*) SynthesizeFragment_mode36;              case 0x25: return (void*) SynthesizeFragment_mode25;
492              case 37: return (void*) SynthesizeFragment_mode37;              case 0x26: return (void*) SynthesizeFragment_mode26;
493              case 38: return (void*) SynthesizeFragment_mode38;              case 0x27: return (void*) SynthesizeFragment_mode27;
494              case 39: return (void*) SynthesizeFragment_mode39;              case 0x28: // redundant
495              case 40: // redundant              case 0x29: return (void*) SynthesizeFragment_mode29;
496              case 41: return (void*) SynthesizeFragment_mode41;              case 0x2a: // redundant
497              case 42: // redundant              case 0x2b: return (void*) SynthesizeFragment_mode2b;
498              case 43: return (void*) SynthesizeFragment_mode43;              case 0x2c: return (void*) SynthesizeFragment_mode2c;
499              case 44: return (void*) SynthesizeFragment_mode44;              case 0x2d: return (void*) SynthesizeFragment_mode2d;
500              case 45: return (void*) SynthesizeFragment_mode45;              case 0x2e: return (void*) SynthesizeFragment_mode2e;
501              case 46: return (void*) SynthesizeFragment_mode46;              case 0x2f: return (void*) SynthesizeFragment_mode2f;
502              case 47: return (void*) SynthesizeFragment_mode47;              case 0x30: // redundant
503              case 48: // redundant              case 0x31: return (void*) SynthesizeFragment_mode31;
504              case 49: return (void*) SynthesizeFragment_mode49;              case 0x32: // redundant
505              case 50: // redundant              case 0x33: return (void*) SynthesizeFragment_mode33;
506              case 51: return (void*) SynthesizeFragment_mode51;              case 0x34: return (void*) SynthesizeFragment_mode34;
507              case 52: return (void*) SynthesizeFragment_mode52;              case 0x35: return (void*) SynthesizeFragment_mode35;
508              case 53: return (void*) SynthesizeFragment_mode53;              case 0x36: return (void*) SynthesizeFragment_mode36;
509              case 54: return (void*) SynthesizeFragment_mode54;              case 0x37: return (void*) SynthesizeFragment_mode37;
510              case 55: return (void*) SynthesizeFragment_mode55;              case 0x38: // redundant
511              case 56: // redundant              case 0x39: return (void*) SynthesizeFragment_mode39;
512              case 57: return (void*) SynthesizeFragment_mode57;              case 0x3a: // redundant
513              case 58: // redundant              case 0x3b: return (void*) SynthesizeFragment_mode3b;
514              case 59: return (void*) SynthesizeFragment_mode59;              case 0x3c: return (void*) SynthesizeFragment_mode3c;
515              case 60: return (void*) SynthesizeFragment_mode60;              case 0x3d: return (void*) SynthesizeFragment_mode3d;
516              case 61: return (void*) SynthesizeFragment_mode61;              case 0x3e: return (void*) SynthesizeFragment_mode3e;
517              case 62: return (void*) SynthesizeFragment_mode62;              case 0x3f: return (void*) SynthesizeFragment_mode3f;
518              case 63: return (void*) SynthesizeFragment_mode63;  
519  #endif              //these are the same with performance monitoring
520                case 0x40: // redundant
521                case 0x41: return (void*) SynthesizeFragment_mode41;
522                case 0x42: // redundant
523                case 0x43: return (void*) SynthesizeFragment_mode43;
524                case 0x44: return (void*) SynthesizeFragment_mode44;
525                case 0x45: return (void*) SynthesizeFragment_mode45;
526                case 0x46: return (void*) SynthesizeFragment_mode46;
527                case 0x47: return (void*) SynthesizeFragment_mode47;
528                case 0x48: // redundant
529                case 0x49: return (void*) SynthesizeFragment_mode49;
530                case 0x4a: // redundant
531                case 0x4b: return (void*) SynthesizeFragment_mode4b;
532                case 0x4c: return (void*) SynthesizeFragment_mode4c;
533                case 0x4d: return (void*) SynthesizeFragment_mode4d;
534                case 0x4e: return (void*) SynthesizeFragment_mode4e;
535                case 0x4f: return (void*) SynthesizeFragment_mode4f;
536                case 0x50: // redundant
537                case 0x51: return (void*) SynthesizeFragment_mode51;
538                case 0x52: // redundant
539                case 0x53: return (void*) SynthesizeFragment_mode53;
540                case 0x54: return (void*) SynthesizeFragment_mode54;
541                case 0x55: return (void*) SynthesizeFragment_mode55;
542                case 0x56: return (void*) SynthesizeFragment_mode56;
543                case 0x57: return (void*) SynthesizeFragment_mode57;
544                case 0x58: // redundant
545                case 0x59: return (void*) SynthesizeFragment_mode59;
546                case 0x5a: // redundant
547                case 0x5b: return (void*) SynthesizeFragment_mode5b;
548                case 0x5c: return (void*) SynthesizeFragment_mode5c;
549                case 0x5d: return (void*) SynthesizeFragment_mode5d;
550                case 0x5e: return (void*) SynthesizeFragment_mode5e;
551                case 0x5f: return (void*) SynthesizeFragment_mode5f;
552                case 0x60: // redundant
553                case 0x61: return (void*) SynthesizeFragment_mode61;
554                case 0x62: // redundant
555                case 0x63: return (void*) SynthesizeFragment_mode63;
556                case 0x64: return (void*) SynthesizeFragment_mode64;
557                case 0x65: return (void*) SynthesizeFragment_mode65;
558                case 0x66: return (void*) SynthesizeFragment_mode66;
559                case 0x67: return (void*) SynthesizeFragment_mode67;
560                case 0x68: // redundant
561                case 0x69: return (void*) SynthesizeFragment_mode69;
562                case 0x6a: // redundant
563                case 0x6b: return (void*) SynthesizeFragment_mode6b;
564                case 0x6c: return (void*) SynthesizeFragment_mode6c;
565                case 0x6d: return (void*) SynthesizeFragment_mode6d;
566                case 0x6e: return (void*) SynthesizeFragment_mode6e;
567                case 0x6f: return (void*) SynthesizeFragment_mode6f;
568                case 0x70: // redundant
569                case 0x71: return (void*) SynthesizeFragment_mode71;
570                case 0x72: // redundant
571                case 0x73: return (void*) SynthesizeFragment_mode73;
572                case 0x74: return (void*) SynthesizeFragment_mode74;
573                case 0x75: return (void*) SynthesizeFragment_mode75;
574                case 0x76: return (void*) SynthesizeFragment_mode76;
575                case 0x77: return (void*) SynthesizeFragment_mode77;
576                case 0x78: // redundant
577                case 0x79: return (void*) SynthesizeFragment_mode79;
578                case 0x7a: // redundant
579                case 0x7b: return (void*) SynthesizeFragment_mode7b;
580                case 0x7c: return (void*) SynthesizeFragment_mode7c;
581                case 0x7d: return (void*) SynthesizeFragment_mode7d;
582                case 0x7e: return (void*) SynthesizeFragment_mode7e;
583                case 0x7f: return (void*) SynthesizeFragment_mode7f;
584              default: {              default: {
585                  printf("gig::Synthesizer: Invalid Synthesis Mode: %d\n", SynthesisMode);                  printf("gig::Synthesizer: Invalid Synthesis Mode: %d\n", SynthesisMode);
586                  exit(-1);                  exit(-1);
# Line 360  namespace LinuxSampler { namespace gig { Line 588  namespace LinuxSampler { namespace gig {
588          }          }
589      }      }
590    
591        void RunSynthesisFunction(const int SynthesisMode, VOICE& voice, uint Samples, sample_t* pSrc, uint Skip)
592        {
593                SynthesizeFragment_Fn* f = (SynthesizeFragment_Fn*) GetSynthesisFunction(SynthesisMode);
594                f(voice, Samples, pSrc, Skip);
595        }
596        
597  }} // namespace LinuxSampler::gig  }} // namespace LinuxSampler::gig

Legend:
Removed from v.324  
changed lines
  Added in v.325

  ViewVC Help
Powered by ViewVC