|
Post by re5etuk on Jul 1, 2018 21:24:05 GMT
Hi i’d Like to convert a range of cc values and fix them to my own values..... e.g
if values 23,24,25,26,27 ... or a range from 24 to 31 are received , it sends out 24. this is effectively to enable me to send specific delay values that are used for tempo synced delays on digitakt. most usb devices only send 0 to 127 , but i only want to be sending 0,1,2,3,5,7,15,23,31,47,63 etc... (these are decimal).
the cc being sent is the same ( cc84 i think , cant remember ) but its handy to use this rule to enable me to do tempo synd pre delay on reverb , delay send times , even doing fixed lfo speeds to keep in sync . it would also help to define the top value, e.g. no delay send value over 100 (otherwise it feeds back a lot and gets noisy). so hopefully , quite flexible but i’m No coder , mostly art brain .
Maybe i’ll Try to do ‘almost random’ delay too , randomly choose a value from a table of values that i define ...tempo synd to bpm of course.... ive done the fixed table thing in midi designer pro , looking for a little midi filter to help on other things. cheers
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Jul 2, 2018 9:20:19 GMT
Hi re5etuk , If you want to fix ranges of CCs then it is easiest to do this with rules like the following: # map CC84 values 23-27 to 24 BX 54 17-1B = XX XX 18Quick explanation of the various bits: BX 54 - work with controller 84 on any channel 17-1B - work with controller value range 23 to 27 XX XX - don't change the CC/channel 18 - rewrite value to 24 All those numbers above are in hexadecimal. To map other ranges, add more rules, eg: # map CC84 values 0-15 to 7 BX 54 00-0F = XX XX 07Alternatively, you can setup up a lookup table to do the same thing over the whole CC value range (0-127): # CC value lookup table IF LOAD ASS L00 = 00 00 00 00 00 00 00 00 08 08 08 08 08 08 08 08 ASS L10 = 10 10 10 10 10 10 10 10 18 18 18 18 18 18 18 18 ASS L20 = 20 20 20 20 20 20 20 20 28 28 28 28 28 28 28 28 ASS L30 = 30 30 30 30 30 30 30 30 38 38 38 38 38 38 38 38 ASS L40 = 40 40 40 40 40 40 40 40 48 48 48 48 48 48 48 48 ASS L50 = 50 50 50 50 50 50 50 50 58 58 58 58 58 58 58 58 ASS L60 = 60 60 60 60 60 60 60 60 68 68 68 68 68 68 68 68 ASS L70 = 70 70 70 70 70 70 70 70 78 78 78 78 78 78 78 78 END
This table is just an example. You need to populate with your own values. Now, here is how you set the CC value from the lookup table entry directly: # replace CC84 value from lookup table IF M0 == B0 54 ASS M2 = LM2 ENDand here is how you select one at random: # replace cc84 value with random lookup value IF M0 == B0 54 ASS M2 = LR7F ENDRegards, Nic.
|
|
|
Post by re5etuk on Jul 2, 2018 14:27:26 GMT
Fantastic , i’ll Buy it later today. I was even able to understand it too.
|
|