3 #include "../../pdbox.h"
6 #include "../src/m_pd.h"
7 #include <../src/m_fixed.h>
9 #define LOGTEN 2.302585092994
12 typedef struct rmstodb_tilde
18 t_class
*rmstodb_tilde_class
;
20 static void *rmstodb_tilde_new(void)
22 t_rmstodb_tilde
*x
= (t_rmstodb_tilde
*)pd_new(rmstodb_tilde_class
);
23 outlet_new(&x
->x_obj
, gensym("signal"));
28 static t_int
*rmstodb_tilde_perform(t_int
*w
)
30 float *in
= *(t_float
**)(w
+1), *out
= *(t_float
**)(w
+2);
31 t_int n
= *(t_int
*)(w
+3);
32 for (; n
--; in
++, out
++)
38 float g
= 100 + 20./LOGTEN
* log(f
);
39 *out
= (g
< 0 ? 0 : g
);
45 static void rmstodb_tilde_dsp(t_rmstodb_tilde
*x
, t_signal
**sp
)
50 post("warning: %s not usable yet",__FUNCTION__
);
51 dsp_add(rmstodb_tilde_perform
, 3, sp
[0]->s_vec
, sp
[1]->s_vec
, sp
[0]->s_n
);
54 void rmstodb_tilde_setup(void)
56 rmstodb_tilde_class
= class_new(gensym("rmstodb~"), (t_newmethod
)rmstodb_tilde_new
, 0,
57 sizeof(t_rmstodb_tilde
), 0, 0);
58 CLASS_MAINSIGNALIN(rmstodb_tilde_class
, t_rmstodb_tilde
, x_f
);
59 class_addmethod(rmstodb_tilde_class
, (t_method
)rmstodb_tilde_dsp
, gensym("dsp"), 0);