Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18303
Modified Files: Tag: desiredata builtins_dsp.c Log Message: interleaved code of hip~ lop~
Index: builtins_dsp.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/builtins_dsp.c,v retrieving revision 1.1.2.30 retrieving revision 1.1.2.31 diff -C2 -d -r1.1.2.30 -r1.1.2.31 *** builtins_dsp.c 19 Jul 2007 19:35:19 -0000 1.1.2.30 --- builtins_dsp.c 19 Jul 2007 19:57:15 -0000 1.1.2.31 *************** *** 2337,2371 ****
/* ---------------- hip~ - 1-pole 1-zero hipass filter. ----------------- */ ! struct t_hipctl { ! float x; ! float coef; ! }; ! struct t_sighip : t_object { ! float sr; ! float hz; ! t_hipctl cspace; ! t_hipctl *ctl; ! float a; ! }; ! t_class *sighip_class; ! static void sighip_ft1(t_sighip *x, t_floatarg f); static void *sighip_new(t_floatarg f) { t_sighip *x = (t_sighip *)pd_new(sighip_class); ! inlet_new(x, x, &s_float, gensym("ft1")); ! outlet_new(x, &s_signal); ! x->sr = 44100; ! x->ctl = &x->cspace; ! x->cspace.x = 0; ! sighip_ft1(x, f); ! x->a = 0; ! return x; ! } ! static void sighip_ft1(t_sighip *x, t_floatarg f) { ! if (f < 0) f = 0; ! x->hz = f; ! x->ctl->coef = 1 - f * (2 * 3.14159) / x->sr; ! if (x->ctl->coef < 0) x->ctl->coef = 0; ! else if (x->ctl->coef > 1) x->ctl->coef = 1; ! } static t_int *sighip_perform(t_int *w) { float *in = (float *)w[1]; --- 2337,2361 ----
/* ---------------- hip~ - 1-pole 1-zero hipass filter. ----------------- */ ! /* ---------------- lop~ - 1-pole lopass filter. ----------------- */ ! t_class *sighip_class; struct t_hipctl {float x; float coef;}; ! t_class *siglop_class; struct t_lopctl {float x; float coef;}; ! struct t_sighip : t_object {float sr; float hz; t_hipctl cspace; t_hipctl *ctl; float a;}; ! struct t_siglop : t_object {float sr; float hz; t_lopctl cspace; t_lopctl *ctl; float a;}; ! ! static void sighip_ft1(t_sighip *x, t_floatarg f) {x->hz = max(f,0.f); x->ctl->coef = clip(1-f*(2*3.14159)/x->sr,0.,1.);} ! static void siglop_ft1(t_siglop *x, t_floatarg f) {x->hz = max(f,0.f); x->ctl->coef = clip( f*(2*3.14159)/x->sr,0.,1.);} ! static void *sighip_new(t_floatarg f) { t_sighip *x = (t_sighip *)pd_new(sighip_class); ! inlet_new(x, x, &s_float, gensym("ft1")); outlet_new(x, &s_signal); ! x->sr = 44100; x->ctl = &x->cspace; x->cspace.x = 0; sighip_ft1(x, f); x->a = 0; return x;} ! static void *siglop_new(t_floatarg f) { ! t_siglop *x = (t_siglop *)pd_new(siglop_class); ! inlet_new(x, x, &s_float, gensym("ft1")); outlet_new(x, &s_signal); ! x->sr = 44100; x->ctl = &x->cspace; x->cspace.x = 0; siglop_ft1(x, f); x->a = 0; return x;} ! ! static void sighip_clear(t_sighip *x, t_floatarg q) {x->cspace.x = 0;} ! static void siglop_clear(t_siglop *x, t_floatarg q) {x->cspace.x = 0;} ! static t_int *sighip_perform(t_int *w) { float *in = (float *)w[1]; *************** *** 2381,2386 **** last = noo; } ! if (PD_BIGORSMALL(last)) ! last = 0; c->x = last; } else { --- 2371,2375 ---- last = noo; } ! if (PD_BIGORSMALL(last)) last = 0; c->x = last; } else { *************** *** 2390,2444 **** return w+5; } - static void sighip_dsp(t_sighip *x, t_signal **sp) { - x->sr = sp[0]->sr; - sighip_ft1(x, x->hz); - dsp_add(sighip_perform, 4, sp[0]->v, sp[1]->v, x->ctl, sp[0]->n); - } - static void sighip_clear(t_sighip *x, t_floatarg q) { - x->cspace.x = 0; - } - void sighip_setup() { - sighip_class = class_new2("hip~",sighip_new,0,sizeof(t_sighip),0,"F"); - CLASS_MAINSIGNALIN(sighip_class, t_sighip, a); - class_addmethod2(sighip_class, sighip_dsp, "dsp",""); - class_addmethod2(sighip_class, sighip_ft1, "ft1","f"); - class_addmethod2(sighip_class, sighip_clear,"clear",""); - } - - /* ---------------- lop~ - 1-pole lopass filter. ----------------- */ - struct t_lopctl { - float x; - float coef; - }; - struct t_siglop : t_object { - float sr; - float hz; - t_lopctl cspace; - t_lopctl *ctl; - float a; - }; - t_class *siglop_class; - static void siglop_ft1(t_siglop *x, t_floatarg f); - static void *siglop_new(t_floatarg f) { - t_siglop *x = (t_siglop *)pd_new(siglop_class); - inlet_new(x, x, &s_float, gensym("ft1")); - outlet_new(x, &s_signal); - x->sr = 44100; - x->ctl = &x->cspace; - x->cspace.x = 0; - siglop_ft1(x, f); - x->a = 0; - return x; - } - static void siglop_ft1(t_siglop *x, t_floatarg f) { - if (f < 0) f = 0; - x->hz = f; - x->ctl->coef = f * (2 * 3.14159) / x->sr; - if (x->ctl->coef > 1) x->ctl->coef = 1; - if (x->ctl->coef < 0) x->ctl->coef = 0; - } - static void siglop_clear(t_siglop *x, t_floatarg q) { - x->cspace.x = 0; - } static t_int *siglop_perform(t_int *w) { float *in = (float *)w[1]; --- 2379,2382 ---- *************** *** 2454,2462 **** return w+5; } static void siglop_dsp(t_siglop *x, t_signal **sp) { ! x->sr = sp[0]->sr; ! siglop_ft1(x, x->hz); ! dsp_add(siglop_perform, 4, sp[0]->v, sp[1]->v, x->ctl, sp[0]->n);
} void siglop_setup() { --- 2392,2408 ---- return w+5; } + static void sighip_dsp(t_sighip *x, t_signal **sp) { + x->sr = sp[0]->sr; sighip_ft1(x, x->hz); + dsp_add(sighip_perform, 4, sp[0]->v, sp[1]->v, x->ctl, sp[0]->n);} static void siglop_dsp(t_siglop *x, t_signal **sp) { ! x->sr = sp[0]->sr; siglop_ft1(x, x->hz); ! dsp_add(siglop_perform, 4, sp[0]->v, sp[1]->v, x->ctl, sp[0]->n);}
+ void sighip_setup() { + sighip_class = class_new2("hip~",sighip_new,0,sizeof(t_sighip),0,"F"); + CLASS_MAINSIGNALIN(sighip_class, t_sighip, a); + class_addmethod2(sighip_class, sighip_dsp, "dsp",""); + class_addmethod2(sighip_class, sighip_ft1, "ft1","f"); + class_addmethod2(sighip_class, sighip_clear,"clear",""); } void siglop_setup() {