|
Post by klay2000 on May 27, 2020 0:14:27 GMT
Hi , I’m trying to clear up some confusion I have about the +C flag in stream byter
It’s definition is ....... +C = Clone the incoming message and apply the output clause to the clone
For example
B6 10 = B6 50 +C
I’m trying to understand how the output really responds to the input when implementing the +C flag at the end of the output clause
An incoming cc16 message is received on midi channel 7...
Midifire sees this Incoming message and makes a copy of It at the output ?
So therefore that this creates an output message of cc 16 and cc 80 simultaneously on the output?
Is this the correct way to think of a +C flag? If not is there another way of explaining it so I understand it fully?
Thankyou
Clayton
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jun 1, 2020 7:45:32 GMT
Hi klay2000 , > B6 10 = B6 50 +C
> An incoming cc16 message is received on midi channel 7...Without the '+C' flag that CC message would just be remapped to CC number 80: B6 50 nn (where nn is the CC value received)Adding the +C flag tells StreamByter to take a copy of the incoming message and work on it, while leaving the original message alone, so two messages are generated: B6 10 nn (original message) B6 50 nn (modified copy)
Regards, Nic
|
|
|
Post by klay2000 on Jun 2, 2020 9:53:07 GMT
Hi Nic
B6 10 = B6 50 +C B6 10 = B6 51
Does this mean cc16 converts to cc80 but also passes through as cc16
So that if the second line is B6 10 = B6 51
The cc16 then is seen by the second line and also converts to cc81?
In other words if the +C was not present in the first line of my example above, the cc16 could not convert to cc81?
Or does the first line not affect the second line?
Thanks
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jun 4, 2020 16:05:56 GMT
Hi klay2000 , Rules are evaluated in order against the current message. If a rule changes the current message (which it can) then subsequent rules are matched/applied against that changed message. Your rules here: B6 10 = B6 50 +C B6 10 = B6 51If the incoming message is CC16, then there will be two outgoing messages: B6 50 nn B6 51 nnbecause the incoming message is not changed by the first line and matches the second line before being remapped. If you remove the +C flag, then the output will be: B6 50 nnbecause CC 16 was matched in the first line and modified to CC 80. When the second rule is evaluated the message is now CC80 and does not match the second rule, so nothing happens. Regards, Nic.
|
|
|
Post by klay2000 on Jun 8, 2020 2:11:44 GMT
Thanks very much Nic. That clears it up perfectly for me
|
|