Filtering Out Repeated MIDI Triggers

I have an RME ARC USB, which is a remote control hardware unit that controls a software (RME Totalmix Fx) for RME audio interfaces. It is a MIDI device built specifically for this task. Works wonderfully but there are a few extra buttons I'm not using so I'm trying to hijack the MIDI signal and use it trigger KM macros.

KM can see it fine. The problem is when I push a button it registers the trigger 5-6 times. It appears the unit is constantly sending out the message "controller 0 on ch 1". Then when I push a button it sends out that different controller number for a number of times before going back to it's "normal" state of constant 0s.

So the isue is the macro is being triggered 5 or 6 times with one button press. So I'm looking for away to get rid of all the "extra" triggers from that MIDI controller number. Of course it would need to timeout after a second or two, in case I want to hit it again.

I've mostly gotten around this by after my actions doing a "cancel all macros" action. That wipes away the remaining triggers that have queued up. And if that's all that I can do, I can work with that limitation.

But is there a way to filter out those extra triggers earlier? With some actions I'm finding it repeats before being able to cancel them out. For example if I have a macro that sends a MIDI note command, it will the note repeated a few times before stopping.

Any ideas? THANKS!

Hello, what you can try is to set a semaphore lock action at the beginning of you macro. Set the timeout of this semaphore to 1 hundreth of a second. Like so all other attempts to trigger this same macro will be aborted.
Inside the macro you can use a pause action until the midi stopped firing notes.

Hope it helps you.

Wow thanks for the quick reply! I'd never heard of a semaphore lock or been able to find it in my searching of the wiki. I think if I would have had "simultaneously" in my search it would have come up. I never knew that action exsisted. I figured it had been thought of before. That is awesome.

In this case it works perfectly. If I add a lock at the start and a delay after my action, I can lock out all the repeats and then cancel all the remaining copies of this macro before they're able to fire.

THANK YOU SO MUCH!

Screenshot 2023-09-22 at 1.38.08 PM

This still seems to repeat the macro when I hold the arc button down longer than the Pause Action. It seems like using "changed to" instead of "changes to" only triggers the macro once per press on the Arc!
image

Oh good eye Evan. I didn't think to change the trigger itself but that is an elegant solution in this particular case. Same here. If the trigger is set to "changed to" it works as expected.

On further investigation, this only seems to work if the controller value does not equal zero. So it works for Snap 1/2/3/4/5/6/7 but not 8. Can't say i understand why though :person_shrugging: