From: Paul Brossier Date: Tue, 20 Sep 2016 20:25:39 +0000 (+0200) Subject: src/aubioshift~.c: add method as 2nd argument X-Git-Url: https://git.aubio.org/?a=commitdiff_plain;h=c95d80b90941227caaca5136c61c950ca4818836;p=pd-aubio.git src/aubioshift~.c: add method as 2nd argument --- diff --git a/src/aubioshift~.c b/src/aubioshift~.c index 2c5af66..59030d4 100644 --- a/src/aubioshift~.c +++ b/src/aubioshift~.c @@ -64,19 +64,22 @@ static void aubioshift_tilde_debug(t_aubioshift_tilde *x) x->hopsize, 1000.*latency/(float)sys_getsr(), latency, x->transpose); } -static void *aubioshift_tilde_new (t_floatarg f) +static void *aubioshift_tilde_new (t_floatarg f, t_symbol *s) { t_aubioshift_tilde *x = (t_aubioshift_tilde *)pd_new(aubioshift_tilde_class); + if (strcmp(s->s_name, "") == 0) s->s_name = "default"; + x->transpose = (f < -23.9999) ? -23.9999 : (f > 24.) ? 24. : f; x->hopsize = sys_getblksize(); x->input = (fvec_t *)new_fvec(x->hopsize); x->output = (fvec_t *)new_fvec(x->hopsize); - x->pitchshift = (aubio_pitchshift_t *)new_aubio_pitchshift("default", 1., + x->pitchshift = (aubio_pitchshift_t *)new_aubio_pitchshift(s->s_name, 1., x->hopsize, (uint_t)sys_getsr()); + if (x->pitchshift == NULL) return NULL; aubio_pitchshift_set_transpose(x->pitchshift, x->transpose); floatinlet_new (&x->x_obj, &x->transpose); @@ -89,7 +92,7 @@ void aubioshift_tilde_setup (void) aubioshift_tilde_class = class_new (gensym ("aubioshift~"), (t_newmethod)aubioshift_tilde_new, 0, sizeof (t_aubioshift_tilde), - CLASS_DEFAULT, A_DEFFLOAT, 0); + CLASS_DEFAULT, A_DEFFLOAT, A_DEFSYMBOL, 0); class_addmethod(aubioshift_tilde_class, (t_method)aubioshift_tilde_dsp, gensym("dsp"), 0);