Filter out second double midi note?

stoecklem

2015-03-30 21:46:41

Hello

If I could get some guidance with this, it would be much appreciated. I'm building a touchscreen control surface with Emulator Pro, which is great until I found it was sending double midi notes. I just can't figure out why and I haven't heard a response back from them yet.

So In the mean time, I'd like to use MT as a solution to filter out the second midi note, so if a second note occurs within under a second, then it is filtered out.

DvlsAdvct

2015-03-30 22:03:12

Yeah, this is doable. It's tough just due to how many buttons you'd be pressing at a single time. Is there always a double message, every single time? If so then it's really easy. If not it becomes a little bit more complicated, but is still doable.

If you need to filter individual messages, we need to know how many buttons you'd expect to press at a single time to allow times to reflect that. If we put a global timer on, it would prevent you from pressing more than one command every second. Does that make sense?

J

stoecklem

2015-03-30 22:28:06

It's very strange. Sometimes its sending out double notes all the time, and then other times only around 80% of the time so unfortunately not all the time. Its a video controller for a Tricaster, so while it would be nice to trigger a few things at once, its really not necessary. A global timer just preventing more than one command should do the trick.

DvlsAdvct

2015-03-31 18:16:10

Then let's set it to less than 1 second, maybe a quarter of a second. If they are happening quickly we can trim it down even more. It should read something like:

Code: Select all

Translator 1: Passthrough
Incoming Message: pp qq rr
Rules: if g0==1 then exit rules, skip outgoing action
Outgoing Message: pp qq rr

Translator 2: Lockout Timer
Incoming Message: pp qq rr
Rules: if g0==1 then exit rules, skip outgoing action
g0=1
Outgoing Message: Lock Out Timer, 250ms delay

Translator 3: Timer
Incoming Message: Lock Out Timer
Rules: g0=0
Outgoing Message: none
So when any message comes in from your controller, it will set a global variable which prevents any other message from triggering. When the timer goes off, after a quarter of a second, it resets the global variable so messages can be sent again. Feel free to play with the delay of the timer to dial in exactly how long you need.

Does that make sense?
Jared