From d3af2d2474bfff3a987d54bc58d96c97cea1ec11 Mon Sep 17 00:00:00 2001 From: musil Date: Wed, 8 Nov 2006 10:49:48 +0000 Subject: changed sig*.c to *~.c svn path=/trunk/externals/iemlib/; revision=6230 --- src/iemlib2/sigLFO_noise.c | 122 --------------------------------------------- 1 file changed, 122 deletions(-) delete mode 100644 src/iemlib2/sigLFO_noise.c (limited to 'src/iemlib2/sigLFO_noise.c') diff --git a/src/iemlib2/sigLFO_noise.c b/src/iemlib2/sigLFO_noise.c deleted file mode 100644 index 0547dfe..0000000 --- a/src/iemlib2/sigLFO_noise.c +++ /dev/null @@ -1,122 +0,0 @@ -/* For information on usage and redistribution, and for a DISCLAIMER OF ALL -* WARRANTIES, see the file, "LICENSE.txt," in this distribution. - -iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */ - - -#include "m_pd.h" -#include "iemlib.h" - - -/* -------------------- LFO_noise~ --------------------- */ -/* ---- outputs a 2 point interpolated white noise ----- */ -/* -- with lower cutoff frequency than 0.5 samplerate -- */ - -static t_class *sigLFO_noise_class; - -typedef struct _sigLFO_noise -{ - t_object x_obj; - double x_range; - double x_rcp_range; - unsigned int x_state; - t_float x_fact; - t_float x_incr; - t_float x_y1; - t_float x_y2; - t_float x_phase; -} t_sigLFO_noise; - -static int sigLFO_noise_makeseed(void) -{ - static unsigned int sigLFO_noise_nextseed = 1489853723; - - sigLFO_noise_nextseed = sigLFO_noise_nextseed * 435898247 + 938284287; - return(sigLFO_noise_nextseed & 0x7fffffff); -} - -static float sigLFO_noise_new_rand(t_sigLFO_noise *x) -{ - unsigned int state = x->x_state; - double new_val, range = x->x_range; - - x->x_state = state = state * 472940017 + 832416023; - new_val = range * ((double)state) * (1./4294967296.); - if(new_val >= range) - new_val = range-1; - new_val -= 32767.0; - return(new_val*(1.0/32767.0)); -} - -static void *sigLFO_noise_new(t_float freq) -{ - t_sigLFO_noise *x = (t_sigLFO_noise *)pd_new(sigLFO_noise_class); - - x->x_range = 65535.0; - x->x_rcp_range = (double)x->x_range * (1.0/4294967296.0); - x->x_state = sigLFO_noise_makeseed(); - x->x_fact = 2. / 44100.0; - x->x_incr = freq * x->x_fact; - if(x->x_incr < 0.0) - x->x_incr = 0.0; - else if(x->x_incr > 0.1) - x->x_incr = 0.1; - x->x_y1 = sigLFO_noise_new_rand(x); - x->x_y2 = sigLFO_noise_new_rand(x); - x->x_phase = 0.0; - outlet_new(&x->x_obj, gensym("signal")); - return (x); -} - -static t_int *sigLFO_noise_perform(t_int *w) -{ - t_float *out = (t_float *)(w[1]); - t_sigLFO_noise *x = (t_sigLFO_noise *)(w[2]); - int n = (int)(w[3]); - t_float phase = x->x_phase; - t_float x_y1 = x->x_y1; - t_float x_y2 = x->x_y2; - t_float incr = x->x_incr; - - while(n--) - { - if(phase > 1.0) - { - x_y1 = x_y2; - x_y2 = sigLFO_noise_new_rand(x); - phase -= 1.0; - } - *out++ = (x_y2 - x_y1) * phase + x_y1; - phase += incr; - } - x->x_phase = phase; - x->x_y1 = x_y1; - x->x_y2 = x_y2; - return (w+4); -} - -static void sigLFO_noise_float(t_sigLFO_noise *x, t_floatarg freq) -{ - x->x_incr = freq * x->x_fact; - if(x->x_incr < 0.0) - x->x_incr = 0.0; - else if(x->x_incr > 0.1) - x->x_incr = 0.1; -} - -static void sigLFO_noise_dsp(t_sigLFO_noise *x, t_signal **sp) -{ - x->x_fact = 2. / sp[0]->s_sr; - dsp_add(sigLFO_noise_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); -} - -void sigLFO_noise_setup(void) -{ - sigLFO_noise_class = class_new(gensym("LFO_noise~"), - (t_newmethod)sigLFO_noise_new, 0, - sizeof(t_sigLFO_noise), 0, A_DEFFLOAT, 0); - class_addmethod(sigLFO_noise_class, (t_method)sigLFO_noise_dsp, - gensym("dsp"), 0); - class_addfloat(sigLFO_noise_class, (t_method)sigLFO_noise_float); - class_sethelpsymbol(sigLFO_noise_class, gensym("iemhelp/help-LFO_noise~")); -} -- cgit v1.2.1