I am trying to create a script that will when receiving an incoming MIDI note on send out a CC before the note on message.... I have it so that it is sending to correct CC and value based on the incoming note, BUT it seems the CC is sent after the note on message...how can I ensure that the CC gets sent first ?
Thanks for the clarification nic, I think I now understand the +C rules... but I still don't understand why the cloned NoteOn message on the second line doesn't get blocked as well in the third line. Are cloned events immune from being blocked somehow?
In MidiBridge if you used a +C on a port on the left hand side, then that cloned event was fed back into the port and processed as if it had been received externally. Therefore, yes, cloned notes would have been subject to a block if one existed and matched. If a +C was used on a right hand side port then the event was sent to the port immediately without any further processing. It was a quirk that came in handy for auto switching scenes.
Now, in MidiFire, the +C behaves the same was as a port on MidiBridge's right hand side. As soon as a +C is seen, then this event is pushed out of that module to the next 'as is'.
To do the auto-switching quirk and have a cloned event pass through the chain of command is done using the SND +I rule. These events *would* be blocked if they showed up in that module and they matched a block rule.
This is done this way as MidiFire has an unlimited (almost) chain of modules whereas MidiBridge just had the two, in and out.
So, when MidiFire sees a +C Stream Byter I rule, it passes it straight on, so in the example, it would never be blocked, since it goes straight out the door!