|
Post by mo13 on Jan 16, 2022 14:20:01 GMT
I'm trying to set up B2 70 - B2 76 for soloing a single channel :
B2 70 = B2 6F +C B2 71 = B2 6F +C B2 72 = B2 6F +C B2 73 = B2 6F +C B2 74 = B2 6F +C B2 75 = B2 6F +C B2 76 = B2 6F +C XX = XX +B
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!
|
|
|
Post by uncledave on Jan 16, 2022 15:58:26 GMT
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.
|
|
|
Post by mo13 on Jan 16, 2022 16:21:44 GMT
the latter, AUM initiates the toggle so just single CC on each press.
|
|
|
Post by uncledave on Jan 16, 2022 17:00:52 GMT
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
Block
|
|
|
Post by mo13 on Jan 16, 2022 18:15:26 GMT
thank you it's exactly what I ment, only AUM can't seem to pick up 70,71,72 etc.6F, shouldn't it be B2 6F on the output ?
|
|
|
Post by mo13 on Jan 16, 2022 19:24:08 GMT
got it clunkily going now by adding :
If M0 == 70 6F Snd B2 6F 7F End
If M0 == 71 6F Snd B2 6F 7F End
If M0 == 72 6F Snd B2 6F 7F End
If M0 == 73 6F Snd B2 6F 7F End
If M0 == 74 6F Snd B2 6F 7F End
If M0 == 75 6F Snd B2 6F 7F End
If M0 == 76 6F Snd B2 6F 7F End
I'm sure it's just a small adjustment in your script but I couldn't figure it out.
|
|
abadam
Developer 
Rotten Apple
Posts: 50
|
Post by abadam on Jan 16, 2022 21:19:42 GMT
B2 70-76 6F = XX 6F 7F +C
|
|
|
Post by uncledave on Jan 16, 2022 21:30:29 GMT
thank you it's exactly what I ment, only AUM can't seem to pick up 70,71,72 etc.6F, shouldn't it be B2 6F on the output ? The two sends should begin with M0, not M1, sorry. Exactly Snd M0 soloClock M2
Just trying to use the same CC code as came in.
|
|
|
Post by mo13 on Jan 16, 2022 21:59:10 GMT
B2 70-76 6F = XX 6F 7F +C B2 wasn’t coming out of that script, all started with 70 6F and so on so that’s why I rewrote it that way, but thanks that’s informative on it’s own, and sorted now uncledave cheers!
|
|