|
Post by rolandvg99 on Apr 13, 2014 14:49:29 GMT
Anyone got an idea of how to reverse the value of a set of chosen CCs?
I want to reverse CC 20-23, but leave others untouched.
Thx.
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Apr 13, 2014 15:18:01 GMT
It's a little bit tricky but the following will work if your incoming CC's are on MIDI channel 1 and you don't use channel 16 for CCs passing through this port, since we are hijacking channel 16 to temporarily remap the channel in order to reverse the CC. If that is all OK, post the following 128 rules into the Stream Byter on the relevant port and that set of CC's will be reversed.
# reverse CC's 21-23 on channel 1 B0 14-17 00 = BF XX 7F B0 14-17 01 = BF XX 7E B0 14-17 02 = BF XX 7D B0 14-17 03 = BF XX 7C B0 14-17 04 = BF XX 7B B0 14-17 05 = BF XX 7A B0 14-17 06 = BF XX 79 B0 14-17 07 = BF XX 78 B0 14-17 08 = BF XX 77 B0 14-17 09 = BF XX 76 B0 14-17 0A = BF XX 75 B0 14-17 0B = BF XX 74 B0 14-17 0C = BF XX 73 B0 14-17 0D = BF XX 72 B0 14-17 0E = BF XX 71 B0 14-17 0F = BF XX 70 B0 14-17 10 = BF XX 6F B0 14-17 11 = BF XX 6E B0 14-17 12 = BF XX 6D B0 14-17 13 = BF XX 6C B0 14-17 14 = BF XX 6B B0 14-17 15 = BF XX 6A B0 14-17 16 = BF XX 69 B0 14-17 17 = BF XX 68 B0 14-17 18 = BF XX 67 B0 14-17 19 = BF XX 66 B0 14-17 1A = BF XX 65 B0 14-17 1B = BF XX 64 B0 14-17 1C = BF XX 63 B0 14-17 1D = BF XX 62 B0 14-17 1E = BF XX 61 B0 14-17 1F = BF XX 60 B0 14-17 20 = BF XX 5F B0 14-17 21 = BF XX 5E B0 14-17 22 = BF XX 5D B0 14-17 23 = BF XX 5C B0 14-17 24 = BF XX 5B B0 14-17 25 = BF XX 5A B0 14-17 26 = BF XX 59 B0 14-17 27 = BF XX 58 B0 14-17 28 = BF XX 57 B0 14-17 29 = BF XX 56 B0 14-17 2A = BF XX 55 B0 14-17 2B = BF XX 54 B0 14-17 2C = BF XX 53 B0 14-17 2D = BF XX 52 B0 14-17 2E = BF XX 51 B0 14-17 2F = BF XX 50 B0 14-17 30 = BF XX 4F B0 14-17 31 = BF XX 4E B0 14-17 32 = BF XX 4D B0 14-17 33 = BF XX 4C B0 14-17 34 = BF XX 4B B0 14-17 35 = BF XX 4A B0 14-17 36 = BF XX 49 B0 14-17 37 = BF XX 48 B0 14-17 38 = BF XX 47 B0 14-17 39 = BF XX 46 B0 14-17 3A = BF XX 45 B0 14-17 3B = BF XX 44 B0 14-17 3C = BF XX 43 B0 14-17 3D = BF XX 42 B0 14-17 3E = BF XX 41 B0 14-17 3F = BF XX 40 B0 14-17 40 = BF XX 3F B0 14-17 41 = BF XX 3E B0 14-17 42 = BF XX 3D B0 14-17 43 = BF XX 3C B0 14-17 44 = BF XX 3B B0 14-17 45 = BF XX 3A B0 14-17 46 = BF XX 39 B0 14-17 47 = BF XX 38 B0 14-17 48 = BF XX 37 B0 14-17 49 = BF XX 36 B0 14-17 4A = BF XX 35 B0 14-17 4B = BF XX 34 B0 14-17 4C = BF XX 33 B0 14-17 4D = BF XX 32 B0 14-17 4E = BF XX 31 B0 14-17 4F = BF XX 30 B0 14-17 50 = BF XX 2F B0 14-17 51 = BF XX 2E B0 14-17 52 = BF XX 2D B0 14-17 53 = BF XX 2C B0 14-17 54 = BF XX 2B B0 14-17 55 = BF XX 2A B0 14-17 56 = BF XX 29 B0 14-17 57 = BF XX 28 B0 14-17 58 = BF XX 27 B0 14-17 59 = BF XX 26 B0 14-17 5A = BF XX 25 B0 14-17 5B = BF XX 24 B0 14-17 5C = BF XX 23 B0 14-17 5D = BF XX 22 B0 14-17 5E = BF XX 21 B0 14-17 5F = BF XX 20 B0 14-17 60 = BF XX 1F B0 14-17 61 = BF XX 1E B0 14-17 62 = BF XX 1D B0 14-17 63 = BF XX 1C B0 14-17 64 = BF XX 1B B0 14-17 65 = BF XX 1A B0 14-17 66 = BF XX 19 B0 14-17 67 = BF XX 18 B0 14-17 68 = BF XX 17 B0 14-17 69 = BF XX 16 B0 14-17 6A = BF XX 15 B0 14-17 6B = BF XX 14 B0 14-17 6C = BF XX 13 B0 14-17 6D = BF XX 12 B0 14-17 6E = BF XX 11 B0 14-17 6F = BF XX 10 B0 14-17 70 = BF XX 0F B0 14-17 71 = BF XX 0E B0 14-17 72 = BF XX 0D B0 14-17 73 = BF XX 0C B0 14-17 74 = BF XX 0B B0 14-17 75 = BF XX 0A B0 14-17 76 = BF XX 09 B0 14-17 77 = BF XX 08 B0 14-17 78 = BF XX 07 B0 14-17 79 = BF XX 06 B0 14-17 7A = BF XX 05 B0 14-17 7B = BF XX 04 B0 14-17 7C = BF XX 03 B0 14-17 7D = BF XX 02 B0 14-17 7E = BF XX 01 B0 14-17 7F = BF XX 00 BF = B0
If you need further refinement on this just post away.
Regards, Nic.
|
|
|
Post by rolandvg99 on Apr 13, 2014 17:02:17 GMT
Wow! That's quite a list and what I was afraid off. Think I'll go with my very rude on/off makeshift implementation for the time being.  (Will of course try Your suggestion) B6 XX 7F = B5 XX 7F +B B6 XX 00 = B5 XX 7F Works with SetListMaker and other stuff that alternates when receiving a on message. Thing is: It affects all controllers and doesn't send an off message (as far as I can tell). Never the less I really, really apreciate Your time and effort on this subject. Regards, Asle.
|
|
nic
Soapbox Supremo  
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Apr 13, 2014 17:11:15 GMT
Aaah, you didn't tell me they were on/off controllers. Here is a set of rules to swap on/off for CC's 21 to 23, MIDI channel 7
# reverse on/off CC's 21-23 on channel 7 B6 14-17 00 = BF XX 7F B6 14-17 7F = BF XX 00 BF = B6
Your own ruleset blocks off the incoming 'on' message and maps the incoming 'off' message to 'on', so yes, you will never see an 'off' message.
BTW, I would not expect you to type that stuff in (I didn't type those rules - they were generated). The idea is to copy/paste! :-)
Regards, Nic.
|
|
|
Post by rolandvg99 on Apr 13, 2014 17:56:25 GMT
Muchas Gracias!
Regards, Asle
|
|