I’m trying to use an encoder to select the outgoing midi channel by using receiver, sender and if_equal. I’m able to change the channel in a “static” way, regardless of the encoder value, but I’m unsuccessful in trying to use if_equal to control which sender gets activated.
The following setup (with only one sender and router routings disabled) works if I remove the if_equal=Enc:1:1. If it’s in, the receiver does work, but the sender won’t send anything, no matter what the encoder value is. Am I thinking this the right way?
The following setup is the same as above, only for a button instead of an encoder (the encoder setup is commented out). The button if_equal setup works as expected, the encoder one doesn’t, even though to me they seem the same. The encoder value changes and the label updates on the display, but no receiver is receiving; for some reason the if_equal condition doesn’t trigger like it does for the equivalent (so it seems to me) button value condition.
Define hw_id=1 for all event AND id=100..101..102… (or whatever numbering strategy you choose)
Don’t know if it’s the reason of your issue (but it might, same events with different conditional may behave strange and conflict…), you better make a correct config first
In on _ if_equal _ the id’s are the same for each command. I assume this works because the conditions are mutually exclusive, so that only one of the events will be triggered at any one time.
The same id for all senders works ok with one button, but not with one encoder, which leads me to think it’s not the sender id that’s the problem.
Reason was, that I “compacted” the storage for conditions so that it fits into a 32bit value. But meanwhile we’ve so many different event types, that I had to spend another bit for the hw_id of the condition.
As a quick solution I sacrificed two bits from the condition value, and gave it to the id
Which means: currently it’s not possible to check for values >12bit anymore, but the ENC event type should be found as expected