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