slmnv
Converser
Posts: 22
|
Post by slmnv on Mar 18, 2018 19:46:18 GMT
Hello, I am using CCs sent by a switch button plugged into IRIG blueboard external pedal. There are too many B0 0C XX events coming close with values that randomly increase from 0 to 7F and then go back to 0 when I release button. I want to pass just 1st event converted to B1 0C 7F so that loopy can use it to trigger action. Can timer variable be used for that ?
I tried, but this did not work:
IF M0 == BO 0C IF T00 > 1000 SND B1 0C 7F END END
B0 XX = XX +B
thanks, S.
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Mar 19, 2018 11:46:37 GMT
Hi slmnv , Why just not filter out the unwanted CC's as so: B0 0C 01-7E = XX +BThat way Loopy will only ever see the 0 and 127 events. Also the blueboard generates copies of its events on channels 2-16 so I do recommend filtering that out with this: B1-F = XX +BBTW, the reason your timer approach didn't work is: a) a bug (now fixed, oops) that required a workaround of assigning the T0 variable to a normal variable before compare b) and the timeout value is specified in hex, so your 1000 would actually be 4096 milliseconds Regards, Nic.
|
|
slmnv
Converser
Posts: 22
|
Post by slmnv on Mar 20, 2018 1:45:06 GMT
Hi Nic, I tried about 4 different ways to do it in MIDIBRIDGE including the way you suggest, using +D, +H, scene changes etc. It worked but not reliably. The problem is that the flow of CC B0 events is random, sometime you see value 7F, sometime not, sometime twice or more. It depends on how long I hold the button, how often blue board measures input, R*C of input circuitry. I saw about 10 increasing and 10 decreasing random values. Did not see copies on ch. 2-16, may be they fixed that with firmware update?
BTW would be nice to have a way to specify integers in HEX and in DEC using some notation, e.g. DEC(256) = HEX(FF) Thanks for that application, now it works like a clock using timer variable! slmnv
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Mar 20, 2018 9:45:59 GMT
Hi slmnv , OK, I understand now. How about (using MidiFire Stream Byter II) we keep track of the CC and send a full ON when the CC reaches over 50% and off when it goes back towards 0 IF LOAD ASS L0 = 0 SET LB0 SOFF END
IF M0 == B0 0C IF M2 > 40 # CC over 50% IF L0 == 0 # not yet triggered SND B0 0C 7F # send ON ASS L0 = 1 # mark as triggered SET LB0 SON END END IF M2 < 20 # CC approaching 0 IF L0 == 1 # was triggered SND B0 0C 00 # send OFF ASS L0 = 0 # mark as not triggered SET LB0 SOFF END END XX = XX +B # always block original END
# block 2-16 just in case B1-F = XX +B
Regards, Nic.
|
|
slmnv
Converser
Posts: 22
|
Post by slmnv on Mar 21, 2018 3:05:46 GMT
Nic,
thanks again, that works !
|
|