# 1 "buzz.c"


float buzz(amp,si,hn,f,phs)
float amp,si,hn,*f,*phs;
{
	register j,k;
	float q,d,h2n,h2np1;
	j = *phs;
	k = (j+1) % 1024;
	h2n = 2. * hn; 
	h2np1 = h2n + 1.; 
	q = (int)((*phs - (float)j) * h2np1)/h2np1;
	d = *(f+j);
	d += (*(f+k)-d)*q;
	if(((d < 0) ? (-d) : (d))  < .1e-07 ) q = amp;
          else { 
	    k = (long)(h2np1 * *phs) % 1024;
	    q = amp * (*(f+k)/d - 1.)/h2n;
	    } 
	*phs += si;
	while(*phs >= 1024.)  
		*phs -= 1024.;
	return(q);
}
