besides this instance, all CC's on the left are also functioning as solos for channel toggles in AUM, B2 6F is a toggle for a channel that sends out a clock which needs to be active at all times, hence the need for it to be solo'd with the rest.
the obvious problem here is once the first solo command gos out, the next one will undo it again, so no more clock, I was wondering if there is a way to set it up so when I for instance press B2 70 followed by one of the other commands, it ignores them, untill the last active command in this block is unpressed, so SB should know to only then engage B2 6F again. Appreciate any kind of input on this!
What do you mean by "pressed" and "unpressed"? Does the controller send a toggle: first press 127, second press 0? Or does the controller just send "some CC value" on each press, and you're using AUM's MIDI mapping to configure the toggle. This is easy to do either way, but we need to know which it is.
This ought to do it. I used bit flags because it makes checking for all off so much easier. The only thing coming out of this will be CC 6F. All input messages are blocked. #init_preset #AutoSolo
If load # using aliases to try to make the logic clear # they also make it easy to change the implementation Alias 70 firstCC Alias 76 lastCC Alias 6F soloClock Alias J0 stateMemory
# using bits in a word to remember state of all toggles # makes it really easy to check for all off Ass stateMemory = 0
# bit values for indexes 0..$15 Ass KD0 = 1 2 4 8 10 20 40 80 100 200 400 800 1000 2000 4000 8000 +P Alias D0 bitBase End
If M0 == B2 If M1 >= firstCC If M1 <= lastCC # memory is zero when first CC arrives If stateMemory == 0 Snd M1 soloClock M2 End # index bit for this CC# Mat I00 = M1 - firstCC # index in the bit array Mat I00 = I00 + bitBase # exclusive or toggles this bit in memory Mat stateMemory = stateMemory ^ KI00 # memory is zero when last bit is off If stateMemory == 0 Snd M1 soloClock M2 End End End End