aboutsummaryrefslogtreecommitdiff
path: root/iemlib1/src/pvu~.c
diff options
context:
space:
mode:
Diffstat (limited to 'iemlib1/src/pvu~.c')
-rw-r--r--iemlib1/src/pvu~.c63
1 files changed, 31 insertions, 32 deletions
diff --git a/iemlib1/src/pvu~.c b/iemlib1/src/pvu~.c
index 1576b79..e1d4053 100644
--- a/iemlib1/src/pvu~.c
+++ b/iemlib1/src/pvu~.c
@@ -31,11 +31,11 @@ static void pvu_tilde_tick(t_pvu_tilde *x);
static void pvu_tilde_reset(t_pvu_tilde *x)
{
- outlet_float(x->x_outlet_over, 0.0f);
- outlet_float(x->x_outlet_meter, -199.9f);
+ outlet_float(x->x_outlet_over, 0.0);
+ outlet_float(x->x_outlet_meter, -199.9);
x->x_overflow_counter = 0;
- x->x_cur_peak = 0.0f;
- x->x_old_peak = 0.0f;
+ x->x_cur_peak = 0.0;
+ x->x_old_peak = 0.0;
clock_delay(x->x_clock, x->x_metro_time);
}
@@ -67,16 +67,16 @@ static void pvu_tilde_float(t_pvu_tilde *x, t_floatarg f)
static void pvu_tilde_t_release(t_pvu_tilde *x, t_floatarg release_time)
{
- if(release_time <= 5.0f)
- release_time = 5.0f;
+ if(release_time <= 5.0)
+ release_time = 5.0;
x->x_release_time = release_time;
x->x_c1 = exp(-x->x_metro_time/release_time);
}
static void pvu_tilde_t_metro(t_pvu_tilde *x, t_floatarg metro_time)
{
- if(metro_time <= 5.0f)
- metro_time = 5.0f;
+ if(metro_time <= 5.0)
+ metro_time = 5.0;
x->x_metro_time = (int)metro_time;
x->x_c1 = exp(-metro_time/x->x_release_time);
}
@@ -88,7 +88,7 @@ static void pvu_tilde_threshold(t_pvu_tilde *x, t_floatarg thresh)
static t_int *pvu_tilde_perform(t_int *w)
{
- t_float *in = (t_float *)(w[1]);
+ t_sample *in = (t_sample *)(w[1]);
t_pvu_tilde *x = (t_pvu_tilde *)(w[2]);
int n = (int)(w[3]);
t_float peak = x->x_cur_peak;
@@ -99,7 +99,7 @@ static t_int *pvu_tilde_perform(t_int *w)
{
for(i=0; i<n; i++)
{
- absolute = fabs(*in++);
+ absolute = abs((t_float)(*in++));
if(absolute > peak)
peak = absolute;
}
@@ -122,26 +122,26 @@ static void pvu_tilde_tick(t_pvu_tilde *x)
x->x_old_peak *= x->x_c1;
/* NAN protect */
if(IEM_DENORMAL(x->x_old_peak))
- x->x_old_peak = 0.0f;
+ x->x_old_peak = 0.0;
if(x->x_cur_peak > x->x_old_peak)
x->x_old_peak = x->x_cur_peak;
- if(x->x_old_peak <= 0.0000000001f)
- db = -199.9f;
- else if(x->x_old_peak > 1000000.0f)
+ if(x->x_old_peak <= 0.0000000001)
+ db = -199.9;
+ else if(x->x_old_peak > 1000000.0)
{
- db = 120.0f;
- x->x_old_peak = 1000000.0f;
+ db = 120.0;
+ x->x_old_peak = 1000000.0;
}
else
- db = 8.6858896381f*log(x->x_old_peak);
+ db = 8.6858896381*log(x->x_old_peak);
if(db >= x->x_threshold_over)
{
x->x_overflow_counter++;
outlet_float(x->x_outlet_over, (t_float)x->x_overflow_counter);
}
outlet_float(x->x_outlet_meter, db);
- x->x_cur_peak = 0.0f;
+ x->x_cur_peak = 0.0;
clock_delay(x->x_clock, x->x_metro_time);
}
@@ -151,28 +151,28 @@ static void *pvu_tilde_new(t_floatarg metro_time, t_floatarg release_time, t_flo
t_float t;
x = (t_pvu_tilde *)pd_new(pvu_tilde_class);
- if(metro_time <= 0.0f)
- metro_time = 300.0f;
- if(metro_time <= 5.0f)
- metro_time = 5.0f;
- if(release_time <= 0.0f)
- release_time = 300.0f;
- if(release_time <= 5.0f)
- release_time = 5.0f;
- if(threshold == 0.0f)
- threshold = -0.01f;
+ if(metro_time <= 0.0)
+ metro_time = 300.0;
+ if(metro_time <= 5.0)
+ metro_time = 5.0;
+ if(release_time <= 0.0)
+ release_time = 300.0;
+ if(release_time <= 5.0)
+ release_time = 5.0;
+ if(threshold == 0.0)
+ threshold = -0.01;
x->x_threshold_over = threshold;
x->x_overflow_counter = 0;
x->x_metro_time = metro_time;
x->x_release_time = release_time;
x->x_c1 = exp(-metro_time/release_time);
- x->x_cur_peak = 0.0f;
- x->x_old_peak = 0.0f;
+ x->x_cur_peak = 0.0;
+ x->x_old_peak = 0.0;
x->x_clock = clock_new(x, (t_method)pvu_tilde_tick);
x->x_outlet_meter = outlet_new(&x->x_obj, &s_float);/* left */
x->x_outlet_over = outlet_new(&x->x_obj, &s_float); /* right */
x->x_started = 1;
- x->x_float_sig_in = 0.0f;
+ x->x_float_sig_in = 0.0;
return(x);
}
@@ -194,5 +194,4 @@ void pvu_tilde_setup(void )
class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_t_release, gensym("t_release"), A_FLOAT, 0);
class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_t_metro, gensym("t_metro"), A_FLOAT, 0);
class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_threshold, gensym("threshold"), A_FLOAT, 0);
-// class_sethelpsymbol(pvu_tilde_class, gensym("iemhelp/help-pvu~"));
}