HID 4Rotary Encoders to MIDI CC

Hello. I just recently Purchased BOME MIDI PRO. and I love it in my simple setup.
I Have no idea how to code this seems complicated device.

I have an HID keyboard that has 4 endless Rotary encoders. The encoders are bound in QMK as follows.

Rotary 1 - F13(CCW) , F14(CW)
Rotary 2 - F15(CCW), F16(CW)
Rotary 3 - F17(CCW), F18(CW)
Rotary 4 - F19(CCW), F20(CW)

Now I wanted to bind it Like this.
Rotary 1 = Pitch Bend (?)
Rotary 2 = CC1 Modulaltion
Rotary 3 = CC2 Breathe Control
Rotary 4 = CC7 Volume.

I don’t know if it’s possible to bind a Pitch Bend on these encoders.
Note that my encoders are endless rotary. I don’t know how to properly use BOME MIDI on these.
These encoders have push-button functions on them and might be used as calibrators?

My HID device comes in 16 Keys Switches and 4 Rotary encoders.

Thank you for your help.


I can work on this but before I do, please confirm that you have a way to ignore the original keystroke or a way to suppress them as Bome MIDI Translator Pro can translate keystroke to MIDI, however does NOT suppress the original keystroke(s).

Steve Caldwell
Bome Customer Care

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

Yes, that’s why I key bound to F13 to F20 since I don’t use that often. ANd I can block their function with Autohotkey.

I did Rotary 1 for you using the global variable ga
You should be able to model it and use different global variables, incoming keystrokes and outgoing MIDI for the other 3.

Key-to-PB.bmtp (1.1 KB)

Steve Caldwell
Bome Customer Care

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

Thank you.HID Rotary to MIDICC.bmtp (2.8 KB)

I just want to confirm if I’m doing it right.

No you have to use global variables as local variables are not persistent.

For information on global variables press F1 to read the manual

I would use gb, gc, and gd for Rotorys 2-4 respectively.

Also make sure you limit negative movement to never go less than 0 and positive movement to never go more than 127.
The output value should be the global variable you are using for that translator.