Hi Ed,
The prototype of your perform method is wrong. You should have something like:
static t_int *wrap_overshoot_tilde_perform(t_int *w)
{
t_wrap_overshoot_tilde *x = (t_wrap_overshoot_tilde *)(w[1]);
t_sample *in = (t_sample *)(w[2]);
t_sample *out = (t_sample *)(w[3]);
t_int n = (t_int)(w[4]);
...
return w+5;
}
and the dsp_add method should be called like this:
dsp_add((t_perfroutine)wrap_overshoot_tilde_perform, 4, (t_int)x, (t_int)sp[0]->s_vec, (t_int)sp[1]->s_vec, (t_int)sp[0]->s_n);
About what you want to do, I would like to help but I'm not sure to understand. I understand that you want that your object performs at the end of the DSP chain (end of the audio block) on a signal that should be computed previously in the DSP chain but as we all know only the Matthew McConaughey from Interstellar has this power :).
Cheers,
Pierre