3
/*--------------- lavg ---------------*/
5
static t_class *lavg_class;
16
static void lavg_perform(t_lavg *x, t_float in)
18
x->m_avg= x->m_avg * x->m_c_leak + in * x->m_leak;
19
outlet_float(x->x_obj.ob_outlet, x->m_avg);
22
static void lavg_clear(t_lavg *x)
27
static void lavg_setHalfDecay(t_lavg *x, t_float halfDecayTime)
29
x->m_c_leak=(float)powf(.5,(1.0f/halfDecayTime));
30
x->m_leak=1.0f-x->m_c_leak;
33
static void *lavg_new( t_float halfDecayTime)
35
t_lavg *x=(t_lavg *)pd_new(lavg_class);
36
outlet_new(&x->x_obj, gensym("float"));
38
lavg_setHalfDecay(x, halfDecayTime);
44
lavg_class = class_new(gensym("lavg"),
45
(t_newmethod)lavg_new, 0,
49
class_addfloat(lavg_class, (t_method)lavg_perform);
50
class_addmethod(lavg_class, (t_method)lavg_setHalfDecay,
51
gensym("decay"), A_DEFFLOAT, NULL);
52
class_addmethod(lavg_class, (t_method)lavg_clear,