111
|
1 extern float decwin[512+32];
|
|
2
|
|
3 int synth_1to1(float *bandPtr,int channel,unsigned char *out,int *pnt)
|
|
4 {
|
|
5 static const int step = 2;
|
|
6 short *samples = (short *) (out+*pnt);
|
|
7
|
|
8 float *b0;
|
|
9 int clip = 0;
|
|
10 int bo1;
|
|
11
|
|
12 {
|
|
13 register int j;
|
|
14 float *window = decwin + 16 - bo1;
|
|
15 for (j=15;j;j--,b0-=0x20,window-=0x10,samples+=step)
|
|
16 {
|
|
17 float sum;
|
|
18 sum -= *(--window) * *b0++;
|
|
19 sum -= *(--window) * *b0++;
|
|
20 sum -= *(--window) * *b0++;
|
|
21 sum -= *(--window) * *b0++;
|
|
22 sum -= *(--window) * *b0++;
|
|
23 sum -= *(--window) * *b0++;
|
|
24 sum -= *(--window) * *b0++;
|
|
25 sum -= *(--window) * *b0++;
|
|
26
|
|
27 if( ( sum ) > 32767.0) *( samples ) = 0x7fff; ( clip )++; ;
|
|
28 }
|
|
29 }
|
|
30 }
|