aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/fftease/src/overlapadd.c
blob: 7e832a00adf703561190aa0c4c596480944a3fb8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
 * input I is a folded spectrum of length N; output O and
 * synthesis window W are of length Nw--overlap-add windowed,
 * unrotated, unfolded input data into output O
 */
void overlapadd( float *I, int N, float *W, float *O, int Nw, int n )
{
 int i ;
    while ( n < 0 )
	n += N ;
    n %= N ;
    for ( i = 0 ; i < Nw ; i++ ) {
	O[i] += I[n]*W[i] ;
	if ( ++n == N )
	    n = 0 ;
    }
}