All pastes #613350 Raw Edit

Unnamed

public c v1 · immutable
·published 2007-07-10 22:51 UTC
rendered paste body
/* Compute a windowed sinc FIR of size n into buffer */void arke_firws(float frequency, float* buffer, unsigned int n, arke_window_f window){	float sinFreq;	float* p;	int n2, i;	if(!(n % 2)) {		/* n may not be even */		/* fix this by setting the last value to zero */		n--;		buffer[n] = 0.0f;	}	sinFreq = frequency * 2.0f * M_PI;	p = buffer;	n2 = n / 2;	for(i = -n2; i < n2; i++, p++) {		float f = sinFreq * i;		if(fabs(f) > kNearZero) {			*p = sin(f) / f;		} else {			*p = 1.0f;		}	}	window(buffer, n);}