Midi to PC Keyboard Macro

I want to turn a midi note on event into an in-game macro.

I have note on/off events controlling my WASD movement fine.

I have a note on event which sends either text r or physical key R. Both fail to trigger the macro in the proprietary razer synapse software.

Is there a way to do a macro in bome? Is there a way to trigger razer’s macros that I am failing to do?

Hi,

I can certainly look at your project file if you post it. Most programs receive keystrokes OK but some games bypass the operating system keyboard drivers, so that might be it. In either case, make sure your game has focus when pressing the MIDI note so that it is the application that is receiving the keystroke. If that doesn’t work, you can try injected keystrokes if you are on Windows platform. There is a checkbox on the outgoing action for injected events, you then can search for the application control with the “capture button”. When there is a green box surrounding it, the control is found. Click it and the control location within the green box will be pasted into the Target Control Identifier box. If this method works then the application will actually not even need to have focus.

Steve Caldwell
Bome Customer Care


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

Steve,

Here’s the kicker:

In-game, lets say I open the chat box. When I play the midi note, bome puts an “r” into the text field. When I press “r” on the keyboard, it puts 12341 into the text field, as that is the macro I made. Bome does in fact seem to be bypassing the keyboard software entirely.

I have tried to create a macro in bome with key down/up events and output delays, yet it did not function as intended. Attached is the file.

The better solution would be for the key event to be sent through the razer keyboard software, but an in-bome solution i’d be happy with as well.

jamstik to Slapshot.bmtp (7.0 KB)

Macro?

Does the Razer Keyboard have Macro Software so that if you press “r” it sends “12342” to Windows application? It is possible that that software looks at wherever the keystroke is coming from and then sends the same macro message (inserting itself between any keyboard including Bome Virtual Keyboard) and sending the macro output to the application.

If this is the case, I’m afraid MT Pro will not work here as the Razer software will interfere with the keyboard input form MT Pro.

By default MT Pro only sends to the currently focused application so if you move to the chat box, your keystrokes from MT Pro will go there. The only way to direct keystrokes to a specific application (on Windows) is to use injected keystrokes, but the application will need to expose the given application and control to the OS. If the application is Java based, it probably won’t work unless the developer has specifically added this functionality (which most don’t)

Steve Caldwell
Bome Customer Care


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

“Does the Razer Keyboard have Macro Software so that if you press “r” it sends “12342” to Windows application?”

Yes. Pressing “r” on my keyboard tells the razer software to execute the macro which I built inside their gui macro builder. Any text field I have tested (windows explorer, chrome browser, etc.) receives “12341” when i press the assigned key “r”. It also mimics the delays. You will see 1 then 2 then 3 then 4 then 1 appear in sequence.

I tried emulating this within MTP using the output delays and key down/up events

bome macro

With this configuration, nothing happens when I play note 69. It does not output any of the numbers corresponding to the key down/up events in ANY text box in ANY program. However, when I play note 67 it outputs “l” just fine. My WASD movement, shown below, works exactly as intended.

bome macro1

If I play note 4, bome will output “w” continuously until the note off event, in any text box as well as any game I have tested. The issue with the output of the 12341 macro is coming from the output delays if I were to guess.

I can make a video of what happens if it will help deduce the problem.

Well when I opened your project file, it appears the incoming keystrokes are not correct. This usually happens when you program on a Mac computer and then open on a Windows computer or visa versa.

I will fix on my PC and reprogram to see what happens.

Steve Caldwell
Bome Customer Care


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

I modified the file as follows.

  1. Create a new translator for incoming note with outgoing timer Spin Right
    That way I can change the incoming note in one translator and effect all outgoing keystroke
    actions.
  2. I changed the incoming note from note 69 on MIDI CH 4 to note 0 on MIDI CH 1 which my controller sends. You can change it back again on the new translator 0.14
  3. Fixed all the outgoing keystroke actions for Spin Right and enabled them.
  4. Tested with Notepad and also below

12341

As you can see it looks like it worked. Remember the application currently in focus will receive the incoming keystrokes.

jamstik to Slapshot-sjc.bmtp (5.9 KB)

Steve Caldwell
Bome Customer Care


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

Worlds sometimes collide. I’m not a Gamer but a Musician and your process of calling a PC Macro with MIDI in is GENIUS and something I could sure use. Many VST plugins will not respond or support mapping from a MIDI Controller. My thoughts are of using a process like yours but instead of calling a Macro just sending a Keystroke(s) from the Computer Keyboard to the target plugin (aka Application).

Would you consider either sharing your project source or a link that describes how such is done. I’ve not been able to find it.

Thanks for any help you can provide,
Bill

Ah man it has been a few years since i was doing this stuff. I dont have the files anymore. I just had to do a bunch of googling and testing. There’s no real shortcut. Where there’s a will there’s a way.