-static void antialias(float *buf, float *audio)
-{
- int i, end, mid_hi, mid_lo;
-
- end = NELLY_BUF_LEN-1;
- mid_hi = NELLY_BUF_LEN/2;
- mid_lo = mid_hi-1;
-
- for (i = 0; i < NELLY_BUF_LEN/4; i++) {
- audio[2*i] = buf[2*i ]*tcos[i ] - buf[end-2*i]*tsin[i];
- audio[2*i+1] = -(buf[end-2*i ]*tcos[i ] + buf[2*i ]*tsin[i]);
- audio[end-2*i-1]= buf[end-2*i-1]*tcos[mid_lo-i] - buf[2*i+1 ]*tsin[mid_lo-i];
- audio[end-2*i ]= -(buf[2*i+1 ]*tcos[mid_lo-i] + buf[end-2*i]*tsin[mid_lo-i]);
- }
-}
-
-static void complex2signal(float *audio)
-{
- int i, end, mid_hi, mid_lo;
- float *aptr, *sigptr, a, b, c, d, e, f, g;
-
- end = NELLY_BUF_LEN-1;
- mid_hi = NELLY_BUF_LEN/2;
- mid_lo = mid_hi-1;
-
- a = -audio[end];
- b = audio[end-1];
- c = -audio[1];
- d = cos_tab[0];
- e = audio[0];
- f = cos_tab[mid_lo];
- g = cos_tab[1];
-
- audio[0] = d*e;
- audio[1] = b*g-a*f;
- audio[end-1] = a*g+b*f;
- audio[end] = c*(-d);
-
- aptr = audio+end-2;
- sigptr = cos_tab+mid_hi-1;
-
- for (i = 3; i < NELLY_BUF_LEN/2; i += 2) {
- a = audio[i-1];
- b = -audio[i];
- c = cos_tab[i/2];
- d = *sigptr;
- e = *(aptr-1);
- f = -(*aptr);
-
- audio[i-1] = a*c+b*d;
- *aptr = a*d-b*c;
-
- a = cos_tab[(i/2)+1];
- b = *(sigptr-1);
-
- *(aptr-1) = b*e+a*f;
- audio[i] = a*e-b*f;
-
- sigptr--;
- aptr -= 2;
- }
-}
-