MIDI velocity to keystroke - followed by ENTER

I have this set up in Bome Classic - now moving to mac and already have putchased Bome Pro. How do I make script to accept ANY midi Note and output Velocity as keystroke + ENTER?

I did 127 lines in classic manually - now it seems that there might be better way doing it?

Hi and welcome to the Bome community!

Assuming you want each note to have a different computer keystroke, you will have to have each translator output the specific keystroke you want for each of the 128 different notes. This would be 128 separate translators.

Steve Caldwell
Bome Customer Care


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

Hi SteveC, thanks for your reply!

I only need numbers as keystrokes. Nothing special.

Note xx, Velocity yy → output keystroke: yy+ENTER

velocity 1 = keystroke 1+ENTER

velocity 127 = keystroke 127+ENTER

I did this with 127 lines in Classic - but It doesn’t open in Pro

OK, yes this is quite different and can be done with less translators.

In the example below I use “Perform” which is available as of Bome MIDI Translator Pro 1.9.0 to handle this.

Translator 0.0 takes the note-on message as a trigger and captures the velocity into the global variable “ga”.

It then calls translator 0.1 which does first focuses the target application (translator 0.2) and then does the character conversion.

A combination of perform “Digit” and perform “Character” are called with parameters to output each desired character. The keystrokes are all contained in preset 1 which contain the 10 digits needed (0-9) an characters space CR and LF.

Most of the heavy lifting is done in the rules of translator 1.1. It is written to accept values up to 9999 and can be used by other triggers than notes which would only allow up to 127. Leading zeros are skipped in the rules. The parameters passed are the desired keystroke and delay.

Perform "Focus"
//delay increment
ss=5
rr=ss
//1000's
pp=ga%10000
pp=pp/1000
//skip leading zeros
if ga<1000 then skip next rule
Perform "Digit",pp,rr
rr=rr+ss
//100's
pp=ga%1000
pp=pp/100
// skip leading zeros
if ga<100 then skip next rule
Perform "Digit",pp,rr
rr=rr+ss
//10's
pp=ga%100
pp=pp/10
//skip leading zeros
if ga<10 then skip next rule
Perform "Digit", pp, rr
rr=rr+ss
//1's
pp=ga%10
Perform "Digit",pp,rr
rr=rr+ss
Perform "Character",13,rr

I use the following aliases for testing.

You can learn more about aliases from this tutorial.

Note-to-Velocity-Perform-2025-06-04.bmtp (5.7 KB)

Steve Caldwell
Bome Customer Care


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

Thank you very much! Very well explained - dont know if I got it all but - I’ll do some testing and see if it works