Right now, the template for Pd's multichannel support only addresses
objects with one or two inputs. In the case of two inputs, the input with
less channels gets wrapped to meet the number of channels of the other
input.
I just can't make this work the same way for 3 inputs, where the inputs
with less channels should also wrap. It's just hard to adapt the same
template and whatever I tried to do differently resulted in weird things
like the object mistaking the output as one of the inputs, so I guess that
there is some sort of pointer/buffer management issue.
By the way, this concerns my attempt to add secondary inlets to [clip~],
see https://github.com/pure-data/pure-data/pull/2110#discussion_r2384379092
I faced the same issue when dealing with MC support in my ELSE externals,
so I just gave up and decided that channel sizes must match if it's > 1!
But now I also want to make this more versatile in my objects. So I did the
same when adding secondary signal inlets to [clip~], but I agree this is
not consistent behaviour.
I guess I can create buffers and copy the inputs and then operate on them.
I had to do something like that for some objects that have a complex
management of inputs and outputs, like [else/mtx~]. I wonder if there's an
easy way to adapt the structure of two MC signal inputs to objects with
more than that.
thanks