Keystrokes held down during MIDI input

Hello, Sir. I have a tricky one for you; can’t figure this one out myself.
I want to move a vertical zoom translator from a platter that has touch sensitivity to a fader that doesn’t.
To use the zoom: The Ctrl + Middle Mouse button are held down and the mouse moves up and down. The platter could do this because the touch/release messages translated outputs was the hold down/released the Ctrl + middle mouse button.
So with the fader, I’m wondering when I move the fader, the first output could hold down ctrl + mouse button, then no longer have that as an output; only the mouse movements after the initial output. Then while MTP is receiving messages from the fader, the ctrl + mouse button will remain held down. Not repeating an output to hold them down for every message, but just remain held down. When I stop moving the fader, it will release the ctrl + mouse button. Can I do this with timers? Is this possible?

Hi, something like the attached should work. In my case I’m using a Pioneer DDJ SB3 with the right patter. The touch message is 91 36 7F and the release message is 91 36 00.

When I move the platter right, the message is B1 23 41 and platter left is B1 23 3F

I set it up so the touch message sets ga to 1 when touched ant to 0 when released. This prevents multiple touch/release messages and I only move the mouse if ga=1.

You will likely have to modify the touch and release messages of your controller.

Platter Move.bmtp (1.4 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz

You helped me before setting up the touch platters, so I already have a setup for that.
But what I’m trying to do now is the same thing, but without touch sensitivity.
Local variable sounds promising. When I start moving the fader, I can have the first translator output be ga=1. I could make ga hold down ctrl + middle mouse. But I don’t know how to tell MTP I’m no longer moving the fader, so I can make ga=0 again. With touch sensitivity, MTP actually gets a note off message with the release of the platter.

Ah now I get it. Yes, in this version we take the platter move message (either direction). On first move we set a watchdog timer and set ga to 1. This timer continues to get reset while you moving it. We set the timer delay to 100 milliseconds so that if there is no movement in 100ms the timer is tripped setting ga back to 0. Like the other program mouse moves only happen when ga=1 and we only send Control and Middle at first and then set back when the watchdog timer trips.

Platter Move-no-touch.bmtp (1.8 KB)

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz
1 Like

Ok great! Looks like it was only tricky for me, not for you.
It’s an absolute fader, so I had to add the up/down keystroke formula to the rules for the up/down translators. The ga variable was conflicting, so I changed the timer variable to gb and it still wasn’t working. Then suddenly it’s working now. Nice.

Glad you got it working!

Steve Caldwell
Bome Customer Care


Also available for paid consulting services: bome@sniz.biz