Hi
So I made to externals, [arp] (arpeggiator) and [legato] (legato monophonic midi module). My idea for both of them to be insertable "in a midi stream" for instance just after [notein], so they both have (amongst other things) a note inlet (leftmost, hot) and velocity (second to the left, cold).
They both worked fine by themselves, but one of my tests for [arp] show a problem: when it's note and velocity outlets were connected to the corresponding inlets of legato, legato would miss some noteoff's (resulting in hanging notes).
After some debugging I the hot/cold inlet thing came to mind. It turned out that in the code of [arp] I had outputted the note value (just) before the velocity, and if I reversed that sending order, [legato] would get all it's noteoffs and the hanging problem is gone.
Fine. I thought I had it all sorted out, it must have been because [arp] was sending its note first. Since the note outlet was connected to the hot note-inlet of [legato], legato would be triggered of the note and look at the velocity outlet, where [arp] hadn't yet made anything available.
So I thought, let's go through [legato] and in a similar fashion send velocities before notes. However that didn't work, there were no sound, probably because somewhere in the midi stream noteon's were thrown away.
Right now I'm pretty confused. What did I miss? In retrospect, it seems very odd to me that switching the lines sending velocity ad note in arp would have any effect. I would expect those to lines to happen "simultaneously" at least from interconnected pd-objects point of view.
If someone could enlighten me, I'd be most happy :-)