typedef struct _viotest
{
t_object x_obj;
int n_outs, n_ins, n_iolets;
t_sample **in_vec, **out_vec; // vector to hold all the inlets and outlets
} t_viotest_tilde;
static void viotest_tilde_input(t_viotest_tilde *x, t_floatarg f)
{
error("[viotest~]: no method for float.");
}
static t_int *viotest_tilde_perform(t_int *w)
{
t_viotest_tilde *x = (t_viotest_tilde *)(w[1]);
int nblock = (int)(w[2]);
int n = nblock;
t_sample **in_vec = x->in_vec;
t_sample **out_vec = x->out_vec;
int smaller = (x->n_ins < x-> n_outs) ? x->n_ins : x->n_outs;
for(int channel = 0; channel < smaller; ++channel)
{
t_sample* in = in_vec[channel];
t_sample* out = out_vec[channel];
n = nblock;
while(n--)
{
t_sample out_val = *in++;
*out++ = out_val;
}
}
return (w + 3);
}
static void viotest_tilde_dsp(t_viotest_tilde *x, t_signal **sp)
{
int i, nblock = sp[0]->s_n;
t_sample **dummy = x->in_vec;
for(i = 0; i < x->n_ins; ++i)
{
*dummy++ = sp[i]->s_vec;
}
for(; i < x->n_iolets; ++i)
{
*dummy++ = sp[i]->s_vec;
}
dsp_add(viotest_tilde_perform, 2, x, nblock);
}
I remember I went through similar stuff, see the code of else/mtx~ and cyclone/matrix~and, share your code?cheersEm dom., 31 de mai. de 2020 às 16:00, Eric Lennartson <lennartsoneric@gmail.com> escreveu:Hey all,_______________________________________________I've been working with variable amounts of inlets and outlets and for the most part it's been working fine. If it's only variable inlets and the outlets are fixed, or vice versa, it works fine. However when both are variable I can't seem to get the inlets to go to the correct outlet. My current code is cycling through the inlets and outlets in pairs, but for some reason this isn't working. Any thoughts?ThanksEric
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev