Zitiere thewade pdman@aproximation.org:
/*-----------fftbin's perform function-------------------*/ t_int *fftbin_tilde_perform(t_int *w) { t_fftbin *ref = (t_fftbin *)(w[1]); //data structure t_sample *in1 = (t_sample *)(w[2]); //fft~ output int in2 = (int)(w[3]); //bin number t_sample *out = (t_float *)(w[4]); //outlet int n = (int)(w[5]); //number of samples in } /*------------------------fftbin dsp function------------*/ void fftbin_tilde_dsp(t_fftbin *ref, t_signal **sp) { dsp_add(fftbin_tilde_perform, 5, ref, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[0]->s_n); } /*-------------------------------------------------------*/
i just noticed that there is a discrepancy between passed arguments (dsp_add) and how you interpret them in the perform()-routine: while you are passing the sp[1]-s_vec as the "3rd" argument to the perform routine, it is somehow interpreted as "int n2".
are you sure that you are getting 2 input-signal vectors ? (you have to acquire 2 signal-inputs in the _new()-function).
note: it is required (from you!) that you keep signal-in/out's consistent over the _new(), _dsp() and _perform() routines (at least you have to understand what is going on ;-))
mfg.a.srd IOhannes