Trouble Figuring Out How To Hold Down A Keystroke Until Note Off

Hi! So I’ve figured out how to press a button like jump in video games, and it’s really cool, the only issue is that I want it to hold that button until I let go of the key on my piano. Is there any way to do this? Thanks!

Hi and welcome to the Bome community!

Yes, the incoming trigger would be probably a note on (depending on your MIDI controller). However, the outgoing action would be to send a keystroke “down” only with no repeat set.

Then when you release the button another translator would have trigger of note-off and would have an outgoing action of keystroke “up”.

Steve Caldwell
Bome Customer Care


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

Thank you so much! I actually had somewhat figured it out while waiting for a response, but it was slightly broken, with this it completely works! Thank you so much, great help!

Hey! Sorry to bother you again, but I just came across another thing I was curious about, when it comes to the mouse movement, is it possible to make it so holding down a key keeps the cursor moving at a smooth rate instead of me having to constantly press the note?

No bother.
On incoming trigger when you hold a button down (generally note on) start a repeating timer,
Have the timer move the mouse for each iteration. Set the speed of the timer to your liking.
Then another incoming trigger when you release the button (generally a note off) to kill the timer.l

So you will have 3 translators

  1. To start the timer
  2. To stop the timer
  3. The timer with the out going mouse movement action.

Steve Caldwell
Bome Customer Care


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

Sorry for responding late, I went to try this and when you go to incoming, you can only just put “timer” there’s no option to start repeating or anything like that, and also if I were to put a note for outgoing I can’t choose “any velocity”

The following example should work for right mouse movement. I have the repeating timer set to 50msec between output.

The first translator starts the timer.
The second translator stops the timer.
The third translator moves the mouse when the timer is running.

Move-Mouse Right.bmtp (1.2 KB)

If you want to capture the incoming velocity, capture it in a global variable and then use that variable for the movement direction of the mouse or whatever you want to use the variable for.

You cannot send “any velocity”. You would have to define the velocity you want to send either with a variable or with a hard coded number.

Steve Caldwell
Bome Customer Care


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

Oh my gosh thank you so much! You don’t understand how helpful this is! I really appreciate it

Glad to help!

Steve Caldwell
Bome Customer Care


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