aboutsummaryrefslogtreecommitdiff
path: root/vocoder~.c
diff options
context:
space:
mode:
Diffstat (limited to 'vocoder~.c')
-rw-r--r--vocoder~.c88
1 files changed, 44 insertions, 44 deletions
diff --git a/vocoder~.c b/vocoder~.c
index c2e624c..60d3e8b 100644
--- a/vocoder~.c
+++ b/vocoder~.c
@@ -1,6 +1,6 @@
-/* vocoder~ -- vocoder effect inspired by xvox
+/* vocoder~ -- vocoder effect inspired by xvox
* written by Simon Morlat ( http://simon.morlat.free.fr )
- *
+ *
* Copyleft 2001 Yves Degoyon.
* Permission is granted to use this software for any purpose provided you
* keep this copyright notice intact.
@@ -37,11 +37,11 @@ static void vocoder_cutoff(t_vocoder *x, t_floatarg fcutoff )
{
if ( fcutoff > 128.0 )
{
- fcutoff = 128.0;
+ fcutoff = 128.0;
}
if ( fcutoff < 0.0 )
{
- fcutoff = 0.0;
+ fcutoff = 0.0;
}
x->x_cutoff = fcutoff;
}
@@ -50,11 +50,11 @@ static void vocoder_vfeedback(t_vocoder *x, t_floatarg fvfeedback )
{
if ( fvfeedback > 100.0 )
{
- fvfeedback = 100.0;
+ fvfeedback = 100.0;
}
if ( fvfeedback < 0.0 )
{
- fvfeedback = 0.0;
+ fvfeedback = 0.0;
}
x->x_vfeedback = fvfeedback;
}
@@ -71,53 +71,53 @@ static t_int *vocoder_perform(t_int *w)
int n = (int)(w[5]), i;
if ( !x->x_process ) return (w+6);
- if ( x->x_blocksize != n )
+ if ( x->x_blocksize != n )
{
- if ( x->x_in1buf ) freebytes( x->x_in1buf, 3*x->x_blocksize/2*sizeof( double ) );
- if ( x->x_in2buf ) freebytes( x->x_in2buf, 3*x->x_blocksize/2*sizeof( double ) );
- if ( x->x_outbuf ) freebytes( x->x_outbuf, (x->x_blocksize+OUTPUT_DELAY)*sizeof( double ) );
- x->x_blocksize = n;
- x->x_in1buf = (double*) getbytes( 3*x->x_blocksize/2*sizeof( double ) );
- x->x_in2buf = (double*) getbytes( 3*x->x_blocksize/2*sizeof( double ) );
- x->x_outbuf = (double*) getbytes( (x->x_blocksize+OUTPUT_DELAY)*sizeof( double ) );
- if ( !x->x_in1buf || !x->x_in2buf || !x->x_outbuf )
- {
- post( "vocoder~ : allocations failed : stop processing" );
- x->x_process = 0;
- }
- }
-
- for(i=0;i<x->x_blocksize/2;i++)
+ if ( x->x_in1buf ) freebytes( x->x_in1buf, 3*x->x_blocksize/2*sizeof( double ) );
+ if ( x->x_in2buf ) freebytes( x->x_in2buf, 3*x->x_blocksize/2*sizeof( double ) );
+ if ( x->x_outbuf ) freebytes( x->x_outbuf, (x->x_blocksize+OUTPUT_DELAY)*sizeof( double ) );
+ x->x_blocksize = n;
+ x->x_in1buf = (double*) getbytes( 3*x->x_blocksize/2*sizeof( double ) );
+ x->x_in2buf = (double*) getbytes( 3*x->x_blocksize/2*sizeof( double ) );
+ x->x_outbuf = (double*) getbytes( (x->x_blocksize+OUTPUT_DELAY)*sizeof( double ) );
+ if ( !x->x_in1buf || !x->x_in2buf || !x->x_outbuf )
+ {
+ post( "vocoder~ : allocations failed : stop processing" );
+ x->x_process = 0;
+ }
+ }
+
+ for(i=0; i<x->x_blocksize/2; i++)
{
- x->x_in1buf[i]=x->x_in1buf[i+x->x_blocksize];
+ x->x_in1buf[i]=x->x_in1buf[i+x->x_blocksize];
};
- for(i=0;i<OUTPUT_DELAY;i++) x->x_outbuf[i]=x->x_outbuf[i+x->x_blocksize];
- for(i=0;i<x->x_blocksize;i++)
+ for(i=0; i<OUTPUT_DELAY; i++) x->x_outbuf[i]=x->x_outbuf[i+x->x_blocksize];
+ for(i=0; i<x->x_blocksize; i++)
{
- x->x_in1buf[x->x_blocksize/2+i]=(double)(*(in1++));
- x->x_in2buf[x->x_blocksize/2+i]=(double)(*(in2++));
+ x->x_in1buf[x->x_blocksize/2+i]=(double)(*(in1++));
+ x->x_in2buf[x->x_blocksize/2+i]=(double)(*(in2++));
}
hp_filter(x->x_in2buf,x->x_cutoff/128.,n);
- for(i=0;i<4;i++)
+ for(i=0; i<4; i++)
{
- comp_lpc(x->x_in1buf+offset,correls,lpc_coef,x->x_blocksize/4);
- if (lpc_coef[0]!=0)
- {
- lpc2lsp(lpc_coef,f1,f2,lsp_coef);
- lsp2lpc(lsp_coef,lpc_coef);
- };
- lpc_filter(x->x_in2buf+offset,lpc_coef,x->x_outbuf+OUTPUT_DELAY+offset,x->x_blocksize/4);
- offset+=x->x_blocksize/4;
+ comp_lpc(x->x_in1buf+offset,correls,lpc_coef,x->x_blocksize/4);
+ if (lpc_coef[0]!=0)
+ {
+ lpc2lsp(lpc_coef,f1,f2,lsp_coef);
+ lsp2lpc(lsp_coef,lpc_coef);
+ };
+ lpc_filter(x->x_in2buf+offset,lpc_coef,x->x_outbuf+OUTPUT_DELAY+offset,x->x_blocksize/4);
+ offset+=x->x_blocksize/4;
};
- for(i=0;i<x->x_blocksize;i++)
+ for(i=0; i<x->x_blocksize; i++)
{
- if ( x->x_outbuf[OUTPUT_DELAY+i] > 1.0 ) x->x_outbuf[OUTPUT_DELAY+i]=1.0;
- if ( x->x_outbuf[OUTPUT_DELAY+i] < -1.0 ) x->x_outbuf[OUTPUT_DELAY+i]=-1.0;
- *(out1++)=(t_float)(((100-x->x_vfeedback)*x->x_outbuf[OUTPUT_DELAY+i]
- + x->x_vfeedback*(*fin1++))/100.0);
+ if ( x->x_outbuf[OUTPUT_DELAY+i] > 1.0 ) x->x_outbuf[OUTPUT_DELAY+i]=1.0;
+ if ( x->x_outbuf[OUTPUT_DELAY+i] < -1.0 ) x->x_outbuf[OUTPUT_DELAY+i]=-1.0;
+ *(out1++)=(t_float)(((100-x->x_vfeedback)*x->x_outbuf[OUTPUT_DELAY+i]
+ + x->x_vfeedback*(*fin1++))/100.0);
};
-
+
return (w+6);
}
@@ -143,7 +143,7 @@ static void *vocoder_new(void)
return (x);
}
- /* clean up */
+/* clean up */
static void vocoder_free(t_vocoder *x)
{
if ( x->x_in1buf ) freebytes( x->x_in1buf, 3*x->x_blocksize/2*sizeof( double ) );
@@ -155,7 +155,7 @@ void vocoder_tilde_setup(void)
{
verbose(0, vocoder_version);
vocoder_class = class_new(gensym("vocoder~"), (t_newmethod)vocoder_new, (t_method)vocoder_free,
- sizeof(t_vocoder), 0, 0);
+ sizeof(t_vocoder), 0, 0);
CLASS_MAINSIGNALIN( vocoder_class, t_vocoder, x_f );
class_addmethod(vocoder_class, (t_method)vocoder_dsp, gensym("dsp"), 0);
class_addmethod(vocoder_class, (t_method)vocoder_cutoff, gensym("cutoff"), A_FLOAT, 0);