25 float *synth_buf_ptr,
int *synth_buf_offset,
26 float synth_buf2[32],
const float window[512],
27 float out[32],
const float in[32],
float scale)
29 float *synth_buf= synth_buf_ptr + *synth_buf_offset;
34 for (i = 0; i < 16; i++){
35 float a= synth_buf2[i ];
36 float b= synth_buf2[i + 16];
39 for (j = 0; j < 512 - *synth_buf_offset; j += 64){
40 a += window[i + j ]*(-synth_buf[15 - i + j ]);
41 b += window[i + j + 16]*( synth_buf[ i + j ]);
42 c += window[i + j + 32]*( synth_buf[16 + i + j ]);
43 d += window[i + j + 48]*( synth_buf[31 - i + j ]);
45 for ( ; j < 512; j += 64){
46 a += window[i + j ]*(-synth_buf[15 - i + j - 512]);
47 b += window[i + j + 16]*( synth_buf[ i + j - 512]);
48 c += window[i + j + 32]*( synth_buf[16 + i + j - 512]);
49 d += window[i + j + 48]*( synth_buf[31 - i + j - 512]);
52 out[i + 16] = b*scale;
54 synth_buf2[i + 16] = d;
56 *synth_buf_offset= (*synth_buf_offset - 32)&511;