Update of /cvsroot/pure-data/pd/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3807
Modified Files: Tag: desiredata builtins_dsp.c Log Message: added macros DSPNEW and DSPDSP
Index: builtins_dsp.c =================================================================== RCS file: /cvsroot/pure-data/pd/src/Attic/builtins_dsp.c,v retrieving revision 1.1.2.5 retrieving revision 1.1.2.6 diff -C2 -d -r1.1.2.5 -r1.1.2.6 *** builtins_dsp.c 3 Jan 2007 21:46:15 -0000 1.1.2.5 --- builtins_dsp.c 3 Jan 2007 22:15:19 -0000 1.1.2.6 *************** *** 14,20 **** --- 14,49 ---- #include "m_pd.h" #include "m_simd.h" + #include "s_stuff.h" + #include <math.h> + #include <stdio.h> + #include <string.h> + extern "C" int ugen_getsortno(void); + #define DEFDELVS 64 /* LATER get this from canvas at DSP time */ + #ifdef HAVE_LIBFFTW3F + #include <fftw3.h> + #endif + #define DEFSENDVS 64 /* LATER get send to get this from canvas */ + #define LOGTEN 2.302585092994 + #define UNITBIT32 1572864. /* 3*2^19; bit 32 has place value 1 */ + #define int32 int + #ifdef BIGENDIAN + #define HIOFFSET 0 /* word offset to find MSB */ + #define LOWOFFSET 1 /* word offset to find LSB */ + #else + #define HIOFFSET 1 + #define LOWOFFSET 0 + #endif + + #undef CLASS_MAINSIGNALIN + /* because C++ bitches about null pointers, we'll use 8 instead (really): */ + #define CLASS_MAINSIGNALIN(c, type, field) class_domainsignalin(c, (char *)(&((type *)8)->field) - (char *)8)
/* ----------------------------- plus ----------------------------- */ static t_class *plus_class, *scalarplus_class; + static t_class *minus_class, *scalarminus_class; + static t_class *times_class, *scalartimes_class; + static t_class *over_class, *scalarover_class; + static t_class *max_class, *scalarmax_class; + static t_class *min_class, *scalarmin_class;
struct t_dop : t_object { *************** *** 24,48 ****
typedef t_dop t_plus, t_scalarplus;
! static void *plus_new(t_symbol *s, int argc, t_atom *argv) ! { ! if (argc > 1) post("+~: extra arguments ignored"); ! if (argc) ! { ! t_scalarplus *x = (t_scalarplus *)pd_new(scalarplus_class); ! floatinlet_new(x, &x->b); ! x->b = atom_getfloatarg(0, argc, argv); ! outlet_new(x, &s_signal); ! x->a = 0; ! return (x); ! } ! else ! { ! t_plus *x = (t_plus *)pd_new(plus_class); ! inlet_new(x, x, &s_signal, &s_signal); ! outlet_new(x, &s_signal); ! x->a = 0; ! return (x); ! } }
--- 53,94 ----
typedef t_dop t_plus, t_scalarplus; + typedef t_dop t_min, t_scalarmin; + typedef t_dop t_max, t_scalarmax; + typedef t_dop t_over, t_scalarover; + typedef t_dop t_times, t_scalartimes; + typedef t_dop t_minus, t_scalarminus;
! #define DSPNEW(NAME) \ ! static void *NAME##_new(t_symbol *s, int argc, t_atom *argv) { \ ! if (argc > 1) error("extra arguments ignored"); \ ! t_dop *x = (t_dop *)pd_new(argc ? scalar##NAME##_class : NAME##_class); \ ! if (argc) { \ ! floatinlet_new(x, &x->b); \ ! x->b = atom_getfloatarg(0, argc, argv); \ ! } else inlet_new(x, x, &s_signal, &s_signal); \ ! outlet_new(x, &s_signal); \ ! x->a = 0; \ ! return x;} ! ! #define DSPDSP(NAME) \ ! static void NAME##_dsp(t_minus *x, t_signal **sp) { \ ! const int n = sp[0]->s_n; \ ! if(n&7) \ ! dsp_add(NAME##_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); \ ! else if(SIMD_CHECK3(n,sp[0]->s_vec,sp[1]->s_vec,sp[2]->s_vec)) \ ! dsp_add(NAME##_perf_simd, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); \ ! else \ ! dsp_add(NAME##_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); \ ! }\ ! \ ! static void scalar##NAME##_dsp(t_scalarminus *x, t_signal **sp) \ ! { \ ! const int n = sp[0]->s_n;\ ! if(n&7)\ ! dsp_add(scalar##NAME##_perform, 4, sp[0]->s_vec, &x->b,sp[1]->s_vec, n);\ ! else if(SIMD_CHECK2(n,sp[0]->s_vec,sp[1]->s_vec))\ ! dsp_add(scalar##NAME##_perf_simd, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n);\ ! else \ ! dsp_add(scalar##NAME##_perf8, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n);\ }
*************** *** 85,125 **** return w+5;}
! PERFORM(plus,a+b) ! PERFORM(minus,a-b) ! PERFORM(times,a*b) ! //PERFORM(over,a/b) ! PERFORM(min,a<b?a:b) ! PERFORM(max,a>b?a:b) ! ! void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n) ! { ! if (n&7) ! dsp_add(plus_perform, 4, in1, in2, out, n); ! else if(SIMD_CHECK3(n,in1,in2,out)) ! dsp_add(plus_perf_simd, 4, in1, in2, out, n); ! else ! dsp_add(plus_perf8, 4, in1, in2, out, n); ! } ! ! static void plus_dsp(t_plus *x, t_signal **sp) ! { ! dsp_add_plus(sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n); ! }
! static void scalarplus_dsp(t_scalarplus *x, t_signal **sp) ! { ! const int n = sp[0]->s_n; ! if(n&7) ! dsp_add(scalarplus_perform, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); ! else if(SIMD_CHECK2(n,sp[0]->s_vec,sp[1]->s_vec)) ! dsp_add(scalarplus_perf_simd, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); ! else ! dsp_add(scalarplus_perf8, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); }
- #undef CLASS_MAINSIGNALIN - /* because C++ bitches about null pointers, we'll use 8 instead (really): */ - #define CLASS_MAINSIGNALIN(c, type, field) class_domainsignalin(c, (char *)(&((type *)8)->field) - (char *)8) - static void plus_setup(void) { --- 131,147 ---- return w+5;}
! PERFORM(plus ,a+b) DSPNEW(plus) DSPDSP(plus) ! PERFORM(minus,a-b) DSPNEW(minus) DSPDSP(minus) ! PERFORM(times,a*b) DSPNEW(times) /*DSPDSP(times)*/ ! /*PERFORM(over,a/b)*/ DSPNEW(over) DSPDSP(over) ! PERFORM(min ,a<b?a:b) DSPNEW(min) DSPDSP(min) ! PERFORM(max ,a>b?a:b) DSPNEW(max) DSPDSP(max)
! void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n) { ! if (n&7) dsp_add(plus_perform, 4, in1, in2, out, n); ! else if(SIMD_CHECK3(n,in1,in2,out)) dsp_add(plus_perf_simd, 4, in1, in2, out, n); ! else dsp_add(plus_perf8, 4, in1, in2, out, n); }
static void plus_setup(void) { *************** *** 137,189 **** }
- /* ----------------------------- minus ----------------------------- */ - static t_class *minus_class, *scalarminus_class; - - typedef t_dop t_minus, t_scalarminus; - - static void *minus_new(t_symbol *s, int argc, t_atom *argv) - { - if (argc > 1) post("-~: extra arguments ignored"); - if (argc) - { - t_scalarminus *x = (t_scalarminus *)pd_new(scalarminus_class); - floatinlet_new(x, &x->b); - x->b = atom_getfloatarg(0, argc, argv); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - else - { - t_minus *x = (t_minus *)pd_new(minus_class); - inlet_new(x, x, &s_signal, &s_signal); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - } - - static void minus_dsp(t_minus *x, t_signal **sp) - { - const int n = sp[0]->s_n; - if(n&7) - dsp_add(minus_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - else if(SIMD_CHECK3(n,sp[0]->s_vec,sp[1]->s_vec,sp[2]->s_vec)) - dsp_add(minus_perf_simd, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - else - dsp_add(minus_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - } - - static void scalarminus_dsp(t_scalarminus *x, t_signal **sp) - { - const int n = sp[0]->s_n; - if(n&7) - dsp_add(scalarminus_perform, 4, sp[0]->s_vec, &x->b,sp[1]->s_vec, n); - else if(SIMD_CHECK2(n,sp[0]->s_vec,sp[1]->s_vec)) - dsp_add(scalarminus_perf_simd, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); - else - dsp_add(scalarminus_perf8, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); - } - static void minus_setup(void) { --- 159,162 ---- *************** *** 201,232 **** }
- /* ----------------------------- times ----------------------------- */ - - static t_class *times_class, *scalartimes_class; - - typedef struct t_dop t_times, t_scalartimes; - - static void *times_new(t_symbol *s, int argc, t_atom *argv) - { - if (argc > 1) post("*~: extra arguments ignored"); - if (argc) - { - t_scalartimes *x = (t_scalartimes *)pd_new(scalartimes_class); - floatinlet_new(x, &x->b); - x->b = atom_getfloatarg(0, argc, argv); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - else - { - t_times *x = (t_times *)pd_new(times_class); - inlet_new(x, x, &s_signal, &s_signal); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - } - /* T.Grill - squaring: optimized * for equal input signals */ t_int *sqr_perf8(t_int *w) --- 174,177 ---- *************** *** 296,326 **** }
- /* ----------------------------- over ----------------------------- */ - static t_class *over_class, *scalarover_class; - - typedef t_dop t_over, t_scalarover; - - static void *over_new(t_symbol *s, int argc, t_atom *argv) - { - if (argc > 1) post("/~: extra arguments ignored"); - if (argc) - { - t_scalarover *x = (t_scalarover *)pd_new(scalarover_class); - floatinlet_new(x, &x->b); - x->b = atom_getfloatarg(0, argc, argv); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - else - { - t_over *x = (t_over *)pd_new(over_class); - inlet_new(x, x, &s_signal, &s_signal); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - } - t_int *over_perform(t_int *w) { --- 241,244 ---- *************** *** 393,418 **** }
- static void over_dsp(t_over *x, t_signal **sp) - { - const int n = sp[0]->s_n; - if (n&7) - dsp_add(over_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - else if(SIMD_CHECK3(n,sp[0]->s_vec,sp[1]->s_vec,sp[2]->s_vec)) - dsp_add(over_perf_simd, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - else - dsp_add(over_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - } - - static void scalarover_dsp(t_scalarover *x, t_signal **sp) - { - const int n = sp[0]->s_n; - if (n&7) - dsp_add(scalarover_perform, 4, sp[0]->s_vec, &x->b,sp[1]->s_vec, n); - else if(SIMD_CHECK2(n,sp[0]->s_vec,sp[1]->s_vec)) - dsp_add(scalarover_perf_simd, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); - else - dsp_add(scalarover_perf8, 4, sp[0]->s_vec, &x->b,sp[1]->s_vec, n); - } - static void over_setup(void) { --- 311,314 ---- *************** *** 430,483 **** }
- /* ----------------------------- max ----------------------------- */ - static t_class *max_class, *scalarmax_class; - - typedef t_dop t_max, t_scalarmax; - - static void *max_new(t_symbol *s, int argc, t_atom *argv) - { - if (argc > 1) post("max~: extra arguments ignored"); - if (argc) - { - t_scalarmax *x = (t_scalarmax *)pd_new(scalarmax_class); - floatinlet_new(x, &x->b); - x->b = atom_getfloatarg(0, argc, argv); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - else - { - t_max *x = (t_max *)pd_new(max_class); - inlet_new(x, x, &s_signal, &s_signal); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - } - - - static void max_dsp(t_max *x, t_signal **sp) - { - const int n = sp[0]->s_n; - if(n&7) - dsp_add(max_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - else if(SIMD_CHECK3(n,sp[0]->s_vec,sp[1]->s_vec,sp[2]->s_vec)) - dsp_add(max_perf_simd, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - else - dsp_add(max_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - } - - static void scalarmax_dsp(t_scalarmax *x, t_signal **sp) - { - const int n = sp[0]->s_n; - if (n&7) - dsp_add(scalarmax_perform, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); - else if(SIMD_CHECK2(n,sp[0]->s_vec,sp[1]->s_vec)) - dsp_add(scalarmax_perf_simd, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); - else - dsp_add(scalarmax_perf8, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); - } - static void max_setup(void) { --- 326,329 ---- *************** *** 495,547 **** }
- /* ----------------------------- min ----------------------------- */ - static t_class *min_class, *scalarmin_class; - - typedef t_dop t_min, t_scalarmin; - - static void *min_new(t_symbol *s, int argc, t_atom *argv) - { - if (argc > 1) post("min~: extra arguments ignored"); - if (argc) - { - t_scalarmin *x = (t_scalarmin *)pd_new(scalarmin_class); - floatinlet_new(x, &x->b); - x->b = atom_getfloatarg(0, argc, argv); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - else - { - t_min *x = (t_min *)pd_new(min_class); - inlet_new(x, x, &s_signal, &s_signal); - outlet_new(x, &s_signal); - x->a = 0; - return (x); - } - } - - static void min_dsp(t_min *x, t_signal **sp) - { - const int n = sp[0]->s_n; - if(n&7) - dsp_add(min_perform, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - else if(SIMD_CHECK3(n,sp[0]->s_vec,sp[1]->s_vec,sp[2]->s_vec)) - dsp_add(min_perf_simd, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - else - dsp_add(min_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, n); - } - - static void scalarmin_dsp(t_scalarmin *x, t_signal **sp) - { - const int n = sp[0]->s_n; - if (n&7) - dsp_add(scalarmin_perform, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); - else if(SIMD_CHECK2(n,sp[0]->s_vec,sp[1]->s_vec)) - dsp_add(scalarmin_perf_simd, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); - else - dsp_add(scalarmin_perf8, 4, sp[0]->s_vec, &x->b, sp[1]->s_vec, n); - } - static void min_setup(void) { --- 341,344 ---- *************** *** 559,573 **** }
- /* Copyright (c) 1997-1999 Miller Puckette and others. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - /* sampling */ - - /* LATER make tabread4 and tabread~ */ - - #include "m_pd.h" - #include "m_simd.h" - /* ------------------------- tabwrite~ -------------------------- */
--- 356,359 ---- *************** *** 1595,1612 **** }
- /* Copyright (c) 1997-1999 Miller Puckette. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - /* sig~ and line~ control-to-signal converters; - snapshot~ signal-to-control converter. - */ - - #include "m_pd.h" - #include "math.h" - - /* T.Grill - include SIMD functionality */ - #include "m_simd.h" - /* -------------------------- sig~ ------------------------------ */ static t_class *sig_tilde_class; --- 1381,1384 ---- *************** *** 2581,2597 **** }
- /* Copyright (c) 1997-1999 Miller Puckette. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - /* The dac~ and adc~ routines. - */ - - #include "m_pd.h" - #include "s_stuff.h" - - /* T.Grill - include SIMD functionality */ - #include "m_simd.h" - /* ----------------------------- dac~ --------------------------- */ static t_class *dac_class; --- 2353,2356 ---- *************** *** 2767,2784 **** }
- /* Copyright (c) 1997-1999 Miller Puckette. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - /* send~, delread~, throw~, catch~ */ - - #include "m_pd.h" - - #include "m_simd.h" - - extern "C" int ugen_getsortno(void); - - #define DEFDELVS 64 /* LATER get this from canvas at DSP time */ - /* ----------------------------- delwrite~ ----------------------------- */ static t_class *sigdelwrite_class; --- 2526,2529 ---- *************** *** 3206,3220 **** }
- /* Copyright (c) 1997-1999 Miller Puckette and others. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - #include "m_pd.h" - - #ifdef HAVE_LIBFFTW3F - #include "fftw3.h" - #include <string.h> - #endif - #ifndef HAVE_LIBFFTW3F /* ------------------------ fft~ and ifft~ -------------------------------- */ --- 2951,2954 ---- *************** *** 3785,3797 **** }
- /* Copyright (c) 1997-1999 Miller Puckette. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - /* "filters", both linear and nonlinear. - */ - #include "m_pd.h" - #include <math.h> - /* ---------------- hip~ - 1-pole 1-zero hipass filter. ----------------- */
--- 3519,3522 ---- *************** *** 4872,4887 **** }
- /* Copyright (c) 1997-1999 Miller Puckette. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - /* send~, receive~, throw~, catch~ */ - - #include "m_pd.h" - #include "m_simd.h" - #include <string.h> - - #define DEFSENDVS 64 /* LATER get send to get this from canvas */ - /* ----------------------------- send~ ----------------------------- */ static t_class *sigsend_class; --- 4597,4600 ---- *************** *** 5228,5246 **** }
- /* Copyright (c) 1997-2001 Miller Puckette and others. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - /* mathematical functions and other transfer functions, including tilde - versions of stuff from acoustics.c. - */ - - #include "m_pd.h" - #include <math.h> - #define LOGTEN 2.302585092994 - - /* T.Grill - use SIMD functionality */ - #include "m_simd.h" - /* ------------------------- clip~ -------------------------- */ static t_class *clip_class; --- 4941,4944 ---- *************** *** 5770,5784 **** }
- /* Copyright (c) 1997-1999 Miller Puckette. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - /* miscellaneous: print~; more to come. - */ - - #include "m_pd.h" - #include <stdio.h> - #include <string.h> - /* ------------------------- print~ -------------------------- */ static t_class *print_class; --- 5468,5471 ---- *************** *** 5895,5919 **** }
- /* Copyright (c) 1997-1999 Miller Puckette. - * For information on usage and redistribution, and for a DISCLAIMER OF ALL - * WARRANTIES, see the file, "LICENSE.txt," in this distribution. */ - - /* sinusoidal oscillator and table lookup; see also tabosc4~ in d_array.c. - */ - - #include "m_pd.h" - #include "math.h" - - #define UNITBIT32 1572864. /* 3*2^19; bit 32 has place value 1 */ - - #define int32 int - #ifdef BIGENDIAN - #define HIOFFSET 0 /* word offset to find MSB */ - #define LOWOFFSET 1 /* word offset to find LSB */ - #else - #define HIOFFSET 1 - #define LOWOFFSET 0 - #endif - /* -------------------------- phasor~ ------------------------------ */ static t_class *phasor_class; --- 5582,5585 ---- *************** *** 6195,6202 ****
struct t_vcfctl { ! float c_re; ! float c_im; ! float c_q; ! float c_isr; };
--- 5861,5868 ----
struct t_vcfctl { ! float re; ! float im; ! float q; ! float isr; };
*************** *** 6217,6224 **** outlet_new(x, gensym("signal")); x->ctl = &x->cspace; ! x->cspace.c_re = 0; ! x->cspace.c_im = 0; ! x->cspace.c_q = q; ! x->cspace.c_isr = 0; x->a = 0; return (x); --- 5883,5890 ---- outlet_new(x, gensym("signal")); x->ctl = &x->cspace; ! x->cspace.re = 0; ! x->cspace.im = 0; ! x->cspace.q = q; ! x->cspace.isr = 0; x->a = 0; return (x); *************** *** 6227,6231 **** static void sigvcf_ft1(t_sigvcf *x, t_floatarg f) { ! x->ctl->c_q = (f > 0 ? f : 0.f); }
--- 5893,5897 ---- static void sigvcf_ft1(t_sigvcf *x, t_floatarg f) { ! x->ctl->q = (f > 0 ? f : 0.f); }
*************** *** 6239,6248 **** int n = (t_int)(w[6]); int i; ! float re = c->c_re, re2; ! float im = c->c_im; ! float q = c->c_q; float qinv = (q > 0? 1.0f/q : 0); float ampcorrect = 2.0f - 2.0f / (q + 2.0f); ! float isr = c->c_isr; float coefr, coefi; float *tab = cos_table, *addr, f1, f2, frac; --- 5905,5914 ---- int n = (t_int)(w[6]); int i; ! float re = c->re, re2; ! float im = c->im; ! float q = c->q; float qinv = (q > 0? 1.0f/q : 0); float ampcorrect = 2.0f - 2.0f / (q + 2.0f); ! float isr = c->isr; float coefr, coefi; float *tab = cos_table, *addr, f1, f2, frac; *************** *** 6288,6293 **** if (PD_BIGORSMALL(im)) im = 0; ! c->c_re = re; ! c->c_im = im; return (w+7); } --- 5954,5959 ---- if (PD_BIGORSMALL(im)) im = 0; ! c->re = re; ! c->im = im; return (w+7); } *************** *** 6295,6299 **** static void sigvcf_dsp(t_sigvcf *x, t_signal **sp) { ! x->ctl->c_isr = 6.28318f/sp[0]->s_sr; dsp_add(sigvcf_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, --- 5961,5965 ---- static void sigvcf_dsp(t_sigvcf *x, t_signal **sp) { ! x->ctl->isr = 6.28318f/sp[0]->s_sr; dsp_add(sigvcf_perform, 6, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec,