Update of /cvsroot/pure-data/externals/mrpeach/sqosc~
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26023
Modified Files:
sqosc~.c
Log Message:
Cleaned up, should compile under Darwin
Index: sqosc~.c
===================================================================
RCS file: /cvsroot/pure-data/externals/mrpeach/sqosc~/sqosc~.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** sqosc~.c 29 Mar 2007 02:41:10 -0000 1.2
--- sqosc~.c 10 Apr 2007 03:08:29 -0000 1.3
***************
*** 66,72 ****
};
! static t_class *sqosc_class, *scalarsqosc_class;
- static float *sqosc_table;
/* COSTABSIZE is 512 in m_pd.h, we start with that... */
#define LOGSQOSCTABSIZE 9
--- 66,71 ----
};
! static t_class *sqosc_class;
/* COSTABSIZE is 512 in m_pd.h, we start with that... */
#define LOGSQOSCTABSIZE 9
***************
*** 87,91 ****
} t_sqosc;
- static void sqosc_maketable(void);
void sqosc_tilde_setup(void);
static void sqosc_ft1(t_sqosc *x, t_float f);
--- 86,89 ----
***************
*** 95,118 ****
static void *sqosc_new(t_floatarg f, t_floatarg pw, t_float bw);
- static void sqosc_maketable(void)
- {
- int i;
- float *fp, phase, phsinc = (2. * 3.14159) / SQOSCTABSIZE;
- union tabfudge tf;
-
- if (sqosc_table) return;
- sqosc_table = (float *)getbytes(sizeof(float) * (SQOSCTABSIZE+1));
- for (i = SQOSCTABSIZE + 1, fp = sqosc_table, phase = 0; i--;
- fp++, phase += phsinc)
- {
- *fp = cos(phase);
- }
- /* here we check at startup whether the byte alignment
- is as we declared it. If not, the code has to be
- recompiled the other way. */
- tf.tf_d = UNITBIT32 + 0.5;
- if ((unsigned)tf.tf_i[LOWOFFSET] != 0x80000000)
- bug("cos~: unexpected machine alignment");
- }
static void *sqosc_new(t_floatarg f, t_floatarg pw, t_floatarg bw)
--- 93,96 ----
***************
*** 221,225 ****
t_float sample;
int n = (int)(w[4]);
! float *tab = sqosc_table, *addr, f1, f2, frac;
int index;
double dphase = x->x_phase + UNITBIT32;
--- 199,203 ----
t_float sample;
int n = (int)(w[4]);
! float *addr, f1, f2, frac;
int index;
double dphase = x->x_phase + UNITBIT32;
***************
*** 341,345 ****
else f2 = -twothirds;
sample = f1 + frac * (f2 - f1); /* the final sample */
! if (_finite(sample))*out++ = sample;
else *out++ = 0.0;
--- 319,323 ----
else f2 = -twothirds;
sample = f1 + frac * (f2 - f1); /* the final sample */
! if (finite(sample))*out++ = sample;
else *out++ = 0.0;
***************
*** 380,384 ****
class_addmethod(sqosc_class, (t_method)sqosc_pw, gensym("pw"), A_FLOAT, 0);
- sqosc_maketable(); /* make the same table as cos_table */
}
--- 358,361 ----