aboutsummaryrefslogtreecommitdiff
path: root/iemlib1/src/vcf_filter~.c
diff options
context:
space:
mode:
Diffstat (limited to 'iemlib1/src/vcf_filter~.c')
-rw-r--r--iemlib1/src/vcf_filter~.c174
1 files changed, 87 insertions, 87 deletions
diff --git a/iemlib1/src/vcf_filter~.c b/iemlib1/src/vcf_filter~.c
index 7caa68d..3771ecc 100644
--- a/iemlib1/src/vcf_filter~.c
+++ b/iemlib1/src/vcf_filter~.c
@@ -13,8 +13,8 @@ iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006
typedef struct _vcf_filter_tilde
{
t_object x_obj;
- t_float x_wn1;
- t_float x_wn2;
+ t_sample x_wn1;
+ t_sample x_wn2;
t_float x_float_sig_in1;
char x_filtname[6];
} t_vcf_filter_tilde;
@@ -23,8 +23,8 @@ static t_class *vcf_filter_tilde_class;
static t_int *vcf_filter_tilde_perform_snafu(t_int *w)
{
- t_float *in = (t_float *)(w[1]);
- t_float *out = (t_float *)(w[4]);
+ t_sample *in = (t_sample *)(w[1]);
+ t_sample *out = (t_sample *)(w[4]);
int n = (t_int)(w[6]);
while(n--)
@@ -61,52 +61,52 @@ wn1 = wn0;
static t_int *vcf_filter_tilde_perform_lp2(t_int *w)
{
- t_float *in = (t_float *)(w[1]);
- t_float *lp = (t_float *)(w[2]);
- t_float *q = (t_float *)(w[3]);
- t_float *out = (t_float *)(w[4]);
+ t_sample *in = (t_sample *)(w[1]);
+ t_sample *lp = (t_sample *)(w[2]);
+ t_sample *q = (t_sample *)(w[3]);
+ t_sample *out = (t_sample *)(w[4]);
t_vcf_filter_tilde *x = (t_vcf_filter_tilde *)(w[5]);
int i, n = (t_int)(w[6]);
- t_float wn0, wn1=x->x_wn1, wn2=x->x_wn2;
- t_float l, al, l2, rcp;
+ t_sample wn0, wn1=x->x_wn1, wn2=x->x_wn2;
+ t_sample l, al, l2, rcp;
for(i=0; i<n; i+=4)
{
l = lp[i];
- if(q[i] < 0.000001f)
- al = 1000000.0f*l;
- else if(q[i] > 1000000.0f)
- al = 0.000001f*l;
+ if(q[i] < 0.000001)
+ al = 1000000.0*l;
+ else if(q[i] > 1000000.0)
+ al = 0.000001*l;
else
al = l/q[i];
- l2 = l*l + 1.0f;
- rcp = 1.0f/(al + l2);
+ l2 = l*l + 1.0;
+ rcp = 1.0/(al + l2);
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
- *out++ = rcp*(wn0 + 2.0f*wn1 + wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
+ *out++ = rcp*(wn0 + 2.0*wn1 + wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
- *out++ = rcp*(wn0 + 2.0f*wn1 + wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
+ *out++ = rcp*(wn0 + 2.0*wn1 + wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
- *out++ = rcp*(wn0 + 2.0f*wn1 + wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
+ *out++ = rcp*(wn0 + 2.0*wn1 + wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
- *out++ = rcp*(wn0 + 2.0f*wn1 + wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
+ *out++ = rcp*(wn0 + 2.0*wn1 + wn2);
wn2 = wn1;
wn1 = wn0;
}
/* NAN protect */
if(IEM_DENORMAL(wn2))
- wn2 = 0.0f;
+ wn2 = 0.0;
if(IEM_DENORMAL(wn1))
- wn1 = 0.0f;
+ wn1 = 0.0;
x->x_wn1 = wn1;
x->x_wn2 = wn2;
@@ -115,53 +115,53 @@ static t_int *vcf_filter_tilde_perform_lp2(t_int *w)
static t_int *vcf_filter_tilde_perform_bp2(t_int *w)
{
- t_float *in = (t_float *)(w[1]);
- t_float *lp = (t_float *)(w[2]);
- t_float *q = (t_float *)(w[3]);
- t_float *out = (t_float *)(w[4]);
+ t_sample *in = (t_sample *)(w[1]);
+ t_sample *lp = (t_sample *)(w[2]);
+ t_sample *q = (t_sample *)(w[3]);
+ t_sample *out = (t_sample *)(w[4]);
t_vcf_filter_tilde *x = (t_vcf_filter_tilde *)(w[5]);
int i, n = (t_int)(w[6]);
- t_float wn0, wn1=x->x_wn1, wn2=x->x_wn2;
- t_float l, al, l2, rcp;
+ t_sample wn0, wn1=x->x_wn1, wn2=x->x_wn2;
+ t_sample l, al, l2, rcp;
for(i=0; i<n; i+=4)
{
l = lp[i];
- if(q[i] < 0.000001f)
- al = 1000000.0f*l;
- else if(q[i] > 1000000.0f)
- al = 0.000001f*l;
+ if(q[i] < 0.000001)
+ al = 1000000.0*l;
+ else if(q[i] > 1000000.0)
+ al = 0.000001*l;
else
al = l/q[i];
- l2 = l*l + 1.0f;
- rcp = 1.0f/(al + l2);
+ l2 = l*l + 1.0;
+ rcp = 1.0/(al + l2);
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
*out++ = rcp*al*(wn0 - wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
*out++ = rcp*al*(wn0 - wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
*out++ = rcp*al*(wn0 - wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
*out++ = rcp*al*(wn0 - wn2);
wn2 = wn1;
wn1 = wn0;
}
/* NAN protect */
if(IEM_DENORMAL(wn2))
- wn2 = 0.0f;
+ wn2 = 0.0;
if(IEM_DENORMAL(wn1))
- wn1 = 0.0f;
+ wn1 = 0.0;
x->x_wn1 = wn1;
x->x_wn2 = wn2;
@@ -170,53 +170,53 @@ static t_int *vcf_filter_tilde_perform_bp2(t_int *w)
static t_int *vcf_filter_tilde_perform_rbp2(t_int *w)
{
- t_float *in = (t_float *)(w[1]);
- t_float *lp = (t_float *)(w[2]);
- t_float *q = (t_float *)(w[3]);
- t_float *out = (t_float *)(w[4]);
+ t_sample *in = (t_sample *)(w[1]);
+ t_sample *lp = (t_sample *)(w[2]);
+ t_sample *q = (t_sample *)(w[3]);
+ t_sample *out = (t_sample *)(w[4]);
t_vcf_filter_tilde *x = (t_vcf_filter_tilde *)(w[5]);
int i, n = (t_int)(w[6]);
- t_float wn0, wn1=x->x_wn1, wn2=x->x_wn2;
- t_float al, l, l2, rcp;
+ t_sample wn0, wn1=x->x_wn1, wn2=x->x_wn2;
+ t_sample al, l, l2, rcp;
for(i=0; i<n; i+=4)
{
l = lp[i];
- if(q[i] < 0.000001f)
- al = 1000000.0f*l;
- else if(q[i] > 1000000.0f)
- al = 0.000001f*l;
+ if(q[i] < 0.000001)
+ al = 1000000.0*l;
+ else if(q[i] > 1000000.0)
+ al = 0.000001*l;
else
al = l/q[i];
- l2 = l*l + 1.0f;
- rcp = 1.0f/(al + l2);
+ l2 = l*l + 1.0;
+ rcp = 1.0/(al + l2);
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
*out++ = rcp*l*(wn0 - wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
*out++ = rcp*l*(wn0 - wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
*out++ = rcp*l*(wn0 - wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
*out++ = rcp*l*(wn0 - wn2);
wn2 = wn1;
wn1 = wn0;
}
/* NAN protect */
if(IEM_DENORMAL(wn2))
- wn2 = 0.0f;
+ wn2 = 0.0;
if(IEM_DENORMAL(wn1))
- wn1 = 0.0f;
+ wn1 = 0.0;
x->x_wn1 = wn1;
x->x_wn2 = wn2;
@@ -225,53 +225,53 @@ static t_int *vcf_filter_tilde_perform_rbp2(t_int *w)
static t_int *vcf_filter_tilde_perform_hp2(t_int *w)
{
- t_float *in = (t_float *)(w[1]);
- t_float *lp = (t_float *)(w[2]);
- t_float *q = (t_float *)(w[3]);
- t_float *out = (t_float *)(w[4]);
+ t_sample *in = (t_sample *)(w[1]);
+ t_sample *lp = (t_sample *)(w[2]);
+ t_sample *q = (t_sample *)(w[3]);
+ t_sample *out = (t_sample *)(w[4]);
t_vcf_filter_tilde *x = (t_vcf_filter_tilde *)(w[5]);
int i, n = (t_int)(w[6]);
- t_float wn0, wn1=x->x_wn1, wn2=x->x_wn2;
- t_float l, al, l2, rcp, forw;
+ t_sample wn0, wn1=x->x_wn1, wn2=x->x_wn2;
+ t_sample l, al, l2, rcp, forw;
for(i=0; i<n; i+=4)
{
l = lp[i];
- if(q[i] < 0.000001f)
- al = 1000000.0f*l;
- else if(q[i] > 1000000.0f)
- al = 0.000001f*l;
+ if(q[i] < 0.000001)
+ al = 1000000.0*l;
+ else if(q[i] > 1000000.0)
+ al = 0.000001*l;
else
al = l/q[i];
- l2 = l*l + 1.0f;
- rcp = 1.0f/(al + l2);
- forw = rcp * (l2 - 1.0f);
+ l2 = l*l + 1.0;
+ rcp = 1.0/(al + l2);
+ forw = rcp * (l2 - 1.0);
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
- *out++ = forw*(wn0 - 2.0f*wn1 + wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
+ *out++ = forw*(wn0 - 2.0*wn1 + wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
- *out++ = forw*(wn0 - 2.0f*wn1 + wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
+ *out++ = forw*(wn0 - 2.0*wn1 + wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
- *out++ = forw*(wn0 - 2.0f*wn1 + wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
+ *out++ = forw*(wn0 - 2.0*wn1 + wn2);
wn2 = wn1;
wn1 = wn0;
- wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2);
- *out++ = forw*(wn0 - 2.0f*wn1 + wn2);
+ wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2);
+ *out++ = forw*(wn0 - 2.0*wn1 + wn2);
wn2 = wn1;
wn1 = wn0;
}
/* NAN protect */
if(IEM_DENORMAL(wn2))
- wn2 = 0.0f;
+ wn2 = 0.0;
if(IEM_DENORMAL(wn1))
- wn1 = 0.0f;
+ wn1 = 0.0;
x->x_wn1 = wn1;
x->x_wn2 = wn2;
@@ -318,8 +318,8 @@ static void *vcf_filter_tilde_new(t_symbol *filt_typ)
inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
outlet_new(&x->x_obj, &s_signal);
x->x_float_sig_in1 = 0;
- x->x_wn1 = 0.0f;
- x->x_wn2 = 0.0f;
+ x->x_wn1 = 0.0;
+ x->x_wn2 = 0.0;
c = (char *)filt_typ->s_name;
c[5] = 0;
strcpy(x->x_filtname, c);