Esempio n. 1
0
void highshelf_bang(t_rbjfilter *x)
{
     t_atom at[5];
     t_float omega = e_omega(x->x_freq,x->x_rate);
     t_float A = e_A(x->x_gain);
     t_float cs = cos(omega);
     t_float sn = sin(omega);
     t_float beta = e_beta(A,x->x_bw* 0.01);

     t_float b0 =    A*((A+1) + (A-1)*cs + beta*sn);
     t_float b1 =-2.*A*((A-1) + (A+1)*cs);
     t_float b2 =    A*((A+1) + (A-1)*cs - beta*sn);
     t_float a0 =      ((A+1) - (A-1)*cs + beta*sn);
     t_float a1 =   2.*((A-1) - (A+1)*cs);
     t_float a2 =      ((A+1) - (A-1)*cs - beta*sn);

/*     post("bang %f %f %f",x->x_freq, x->x_gain, x->x_bw);*/
     
     if (!check_stability(-a1/a0,-a2/a0,b0/a0,b1/a0,b2/a0)) {
       post("highshelf: filter unstable -> resetting");
       a0=1.;a1=0.;a2=0.;
       b0=1.;b1=0.;b2=0.;
     }

     SETFLOAT(at,-a1/a0);
     SETFLOAT(at+1,-a2/a0);
     SETFLOAT(at+2,b0/a0);
     SETFLOAT(at+3,b1/a0);
     SETFLOAT(at+4,b2/a0);
     
     outlet_list(x->x_obj.ob_outlet,&s_list,5,at);
}
Esempio n. 2
0
void lowpass_bang(t_rbjfilter *x)
{
     t_atom at[5];
     t_float omega = e_omega(x->x_freq,x->x_rate);
     t_float alpha = e_alpha(x->x_bw*0.01,omega);
     t_float b1 = 1 - cos(omega);
     t_float b0 = b1/2.;
     t_float b2 = b0;
     t_float a0 = 1 + alpha;
     t_float a1 = -2.*cos(omega);
     t_float a2 = 1 - alpha;

/*     post("bang %f %f %f",x->x_freq, x->x_gain, x->x_bw); */
     
     if (!check_stability(-a1/a0,-a2/a0,b0/a0,b1/a0,b2/a0)) {
       post("lowpass: filter unstable -> resetting");
       a0=1.;a1=0.;a2=0.;
       b0=1.;b1=0.;b2=0.;
     }

     SETFLOAT(at,-a1/a0);
     SETFLOAT(at+1,-a2/a0);
     SETFLOAT(at+2,b0/a0);
     SETFLOAT(at+3,b1/a0);
     SETFLOAT(at+4,b2/a0);
     
     outlet_list(x->x_obj.ob_outlet,&s_list,5,at);
}
Esempio n. 3
0
void* get_result( void *ptr )
{
    char buf[1024];
    int fd=*((int*)ptr);
    char* pos;
    int n;
    int pipe;
    char type;

    pos=&buf[0];
    while(1){
        if((n=read(fd, pos, 1))==1 ){
            if(*pos=='\n'){
                *pos=0;

                if(pos!=buf){
                    //接收到一个反馈
                    printf("feedback::%s\n",buf);
                    fflush(stdout);
                    calib(buf,pipe,type);
                    check_stability(pipe,type);
                }

                pos=&buf[0];
                continue;
            }
            pos++;
        }
    }

}
Esempio n. 4
0
File: game.c Progetto: nit99kumar/OR
int main() {
    int m, n, i, j;
    float **A = (float **)calloc(m, sizeof(float *));
    //printf("enter the number of rows & columns: ");
    scanf("%d %d", &m, &n);
    for(i=0; i<m; i++) {
        A[i] = (float *)calloc(n, sizeof(float));
        //printf("enter row(%d): ", i+1);
        for(j=0; j<n; j++)
            scanf("%f", &A[i][j]);
    }
    check_stability(A, m, n);
    return 0;
}
void move(int *q, int i)
{
	if (i == 3)
	{
		print(q);
		return;
	}
	for ( int j = 0; j < 3; j++)
	{
		q[i] = j;
		if(check_stability(q,i))
		{
			move(q, i+1);
		}
	}
}