lid55
MidiFire Beta
Posts: 75
|
Post by lid55 on Feb 1, 2018 15:39:30 GMT
Ah... good... not good that there's a bug... but things make more sense now... lol
|
|
lid55
MidiFire Beta
Posts: 75
|
Post by lid55 on Feb 4, 2018 3:12:48 GMT
Ok, so I couldn’t wrap my head around Timer Variables in combination with +D +I messages... so I came up with a simpler solution
So basically - there's a flag/gate function to separate footOn versus footOff keys - and there's a message count ("stepCount") that protects against the “misfire” issue (where if you press multiple FootOns there’s a chance that one of the later ones could trip the “gate”). The footOn messages count up, the received HOLD messages (+D +I messages) count back down.
IF LOAD ASS K0 = 1F4 #K0 = HOLD time of 500ms ASS L0 = 0 0 END
IF M0 == B0 00 7F #if footOn ASS L0 = 1 #footOn flag MAT L1 = L1 + 1 #increase stepCount SND B1 01 01 +DK0 +I #send HOLD message END
IF M0 == B0 00 00 #if footOff ASS L0 = 0 #footOff flag END
IF M0 == B1 01 01 #if HOLD message received IF L0 == 1 #if footOn IF L1 == 1 #and if StepCount is 1 SND BF 7F 7F #send trigger END END MAT L1 = L1 - 1 #decrease stepCount END
B1 01 01 = XX +B # block HOLD message B0 00 00 = XX +B # block footOff
|
|
lid55
MidiFire Beta
Posts: 75
|
Post by lid55 on Feb 4, 2018 22:36:31 GMT
So implementing this... my ruleset is getting stupid long. A “+H” function would definitely be clearer... so here’s my vote for a dedicated “+H” function in MidiFire... even a simple version of it.
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Feb 5, 2018 9:32:07 GMT
Hi lid55 , Well, rather than getting me to add +H I reckon you could revisit the scene (which I linked to at the start of this thread) I made for detecting hold, single tap and double tap (which works pretty well and takes care of all the logistics already) and then either modify that scene to handle CCs instead of notes, or add Stream Byters before/after to convert CCs to notes and back and treat as a black box? Regards, Nic.
|
|
lid55
MidiFire Beta
Posts: 75
|
Post by lid55 on Feb 7, 2018 14:39:19 GMT
Ok thanks for the advice Nic. I've looked at the Blueboard ruleset again, and applied the concepts to my ruleset, and I think it's going to "generalize" just fine, using a different MIDI channel to specify which messages get processed. I find it easier to work with my own ruleset, rather than adapt the Blueboard one, since I understand it completely. I'm still working on figuring out the Blueboard ruleset... which is some pretty amazing "coding" by the way (I know it's not the same as computer programming, but at that level... it might as well be)
|
|
nic
Soapbox Supremo
Troublemaker
Press any key to continue
Posts: 2,011
|
Post by nic on Feb 7, 2018 14:43:50 GMT
Hi lid55, I'm happy to explain any part of the BB rules; just ask away (hopefully I can figure out as I certainly won't remember!) Regards, Nic.
|
|