3
/*--------------- lmin ---------------*/
5
static t_class *lmin_class;
16
static void lmin_perform(t_lmin *x, t_float in)
18
x->m_min=(in < x->m_min) ? in : x->m_min * x->m_c_leak + in * x->m_leak;
19
outlet_float(x->x_obj.ob_outlet, x->m_min);
22
static void lmin_setHalfDecay(t_lmin *x, t_float halfDecayTime)
24
x->m_c_leak=(float)powf(.5,(1.0f/halfDecayTime));
25
x->m_leak=1.0f-x->m_c_leak;
28
static void lmin_clear(t_lmin *x)
33
static void *lmin_new( t_float halfDecayTime)
35
t_lmin *x=(t_lmin *)pd_new(lmin_class);
36
outlet_new(&x->x_obj, gensym("float"));
38
lmin_setHalfDecay(x, halfDecayTime);
46
lmin_class = class_new(gensym("lmin"),
47
(t_newmethod)lmin_new, 0,
51
class_addfloat(lmin_class, (t_method)lmin_perform);
52
class_addmethod(lmin_class, (t_method)lmin_clear,
53
gensym("clear"), A_GIMME, NULL);
54
class_addmethod(lmin_class, (t_method)lmin_setHalfDecay,
55
gensym("decay"), A_DEFFLOAT, NULL);