Request about Injected mouse capture (and other request in Bome midi translator pro)

Hi everyone, long time midi translator pro user, first time poster here,
I’ve bought this software some years ago and can’t tell you enought how much this piece of software is invaluable and useful. I use it everyday and continue to discover sometimes news features that i didn’t needed before. Thanks you guys at Bome for creating this!

In my use of the soft i find somes missing useful features that would be nice to have :

  1. We know that some applications don’t support injected mouse in their windows so it would be nice to be able to select a zone to capture then the exact point where the mouse have to interact like another software (Midi Keyboard Macros) could do with their featrure “Match and click”. Basically what i wanted to do is to use my midi controller to control for example the bypass of the focused plugin in Pro tools and this work like a charm with their software. Any plugin that is on top of the window could bypassed with my controller when i’m tweaking it for quick A/B comparison. You select a delimited zone with a rectangle in a window or application then the point where to click and that’s it. The only thing that i noticed is a small delay corresponding to the mouse quitting his actual position to go click bypass then come back to the position it was. With Bome midi translator pro i can only capture the whole plugin wrapper window or the whole mixer window in Pro tools if a want to control a parameter (let’s say the arm button for recording). This features would let’s us control plugin parameters or faders, buttons, all we want etc with ours controllers like a software called Controllermate only available for mac because like many already knows it’s not possible to control plugins in Pro tools with any midi controller. If this feature could be implemented it would be nice if it could be improved because their are some inconvinients:
  • With Midi Macros software, i need the Pro tools mixer window to be opened if i want the controller to work for arming the track that is matched.

  • Always with this software, when i move the mixer window to another group of tracks (the matched one is outside of the screen) when i try to arm the track button that was matched with my controller, the track that will be armed is the one that is on the position on the screen where the matched one was. Even though i take care to select the track name with my rectangle to avoid any other track to be armed beacause all the tracks looks alike.

With Bome midi translator pro, i link my controller to my Prism Orpheus (soundcard) mixer software that support injected mouse and it work like a charm Even if the window is minimized (not focused) and even somes buttons looks alike like mute, solo, cue etc, only the linked buttons or zone that were linked to the controller buttons or knob or fader will work (so no confusion here and that’s great)

  1. My other requests are:
    if possible to be able to change the input/output ports of multiple translators entry on Bome midi translator pro at once on the same time. For example i assign with my presets a project default port but some translators entry use specific ports and if i change my midi device or want to use another virtual port it would be cool to change the ports easily without going to each translator and change them.

  2. It would be nice to assign some Presets/translators by particular application so for example when i’m on google one translator do one thing and when i’m on Pro tools the same translator do another thing.

Hope that my explanations are clear and understandable easily. Thanks again for this awsome software. It is easily the most valuable one that i ever bought and i pay for softwares that are much far pricey!

Also can anybody explain or show us how the “Find” feature next to the “Capture” button works when selecting mouse on outgoing messages? I read the manual and i think i get what it’s suppose to do, but in practice i can’t for the life of me make it work.


For injected keystrokes and mouse actions, the granularity of the controls you use is dependent on the application developer of the software you are trying to work with. For instance, if the application exposes the entire application as a single control, that is the best granularity you will be able to get, however if they expose each knob or button to Windows as a separate control, then you will get much more granularity. Unfortunately, we are at the mercy of the software developer and Windows of the application you are working with. This is why Java applications are typically not useable for injected events as Java doesn’t natively expose anything (unless the developer used JNI).

This is a summary of why some applications work better than others as it is really the application developer that determines what is exposed and at what granularity. The are probably not often thinking about integrating with external programs when developing their applications.

Hint, you might get some additional granularity if you use the Window Spy feature of AutoHotKey to determine the control location. I’ve had some luck with this.

To your second and third question, port control is most easily done by enabling and disabling presets with the ports you want to use. I typically organize my presets by port routing as shown in this tutorial.

I also use aliases to assign ports for particular applications (ie BMT 1 for Pro Tools BMT 2 for Ableton Live etc).

As far as the find feature of the mouse action. After checking “Set Mouse position”. click on “Capture” (Capture will turn greeen and you will see coordinates move as you move your mouse) then click your mouse to the location you want and the X Y coordinates will be locked in and populated in to MT Pro


Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Hi Mr Steve,
Thanks again for taking the time to give detailed responses. You’re awsome!
I understand that the injected mouse on windows depends on the developpers and you are unfortunately at their mercy, tha’s why i suggest/ request that “Match and Click feature” or something alike because it’s working for the most part really well and with any kind on windows, application etc. I’ve attached a quick video to illustrate the exemple that i gave earlier for controlling Pro tools arm button track
Thanks for suggesting AutoHotkey, i’ve dowloaded it but i’m not really into scripting, i know only some basics and i’m those type of persons that really don’t want to spend too much time into coding/scripting instead of making music.

For the ports, that’s how you suggest it that i made my presets but there many reasons that makes me want to change many of my translator entries easily, for example:
*My very first translators when i bought the software were a mess because i didn’t undertand how the soft work at that time. All of them work, they are just not organised like my latest presets and it could be nice to be able to select them and do some rerouting once at the same time.
*For My latest presets i dedicate on specific port but sometimes in the translators entries i need also some specific port. Let say my Korg nanoKontrol2 output to loopbe internal midi to control Pro tools transport. But Pro tools have to send back midi messages to the nanoKontrol2 to have his button light up.
*Sometimes configurations evolve and i have new midi devices/virtual ports and i have to reroute everything.
Thanks, one port for one application is a good advice, that’s how i proced (Pro tools, Samplitude, Fl studio etc)
For the “Find” button, i was talking about the one that is next to the “Capture”Capture Bome Find button in the windows inject event (advanced). I understand the “Capture” thing and all my configurations with capture are fine, i’m just curious to knows what the “Find” button does because i’ve never being able to make it work. Thanks again for you work, you are a great helps for the Bome community.

I’m not 100% sure because I’ve never had to use it. I think clicking it will just display an error below the Captured control identifier if the target window provides insufficient information.

@florian Please let me know if you have anything to add.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Hi, indeed, the button is not at all self-explanatory! The intention is this: Once you’ve set up your injected action, you will have the Target Control Identifier filled in (which you originally retrieved using the Capture function). Now when you load the project later on (or looked at a different translator entry temporarily), you may want to verify if the target identifier exists at all (i.e. the target program is started and has that control available). For that, you can press the Find button, and it should display the window dimension underneath the Target Control Identifier field. If the control cannot be found, an error message is displayed.
Can you reproduce it now?

Thanks, @florian !

I don’t think he was having a problem. Just confusion on what the control did.


Thanks Mr Steve and Florian for your replies.
Ok now i get it about the “Find” button. So it will just dispaly the dimensions of the target window like when we captured it previously. It could be nice if the target window in this case have a delimited color (blue or yellow, red ect…) like when we captured it with the green color so we know exactely what was captured.
I’ve corrected my link for my attached video illustration on my previous post cause it was wrong, sorry for that. So if you’re interrested don’t hesitate to check it out.
Thank again for the support!

Glad to help! Your suggestion sounds like a good idea as well.

@florian maybe this could be something added in a future release?

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:
1 Like

it’s on the feature request list now!

PS: your other feature requests are already on our list. Editing multiple translator entries at once is difficult. We’re considering how “Per Application Presets” could be implemented.

I’m thinking translator group editing would be to:

Select an number of adjacent translator (the first one is the “control”)
Right click to get to an edit popup

The popup would allow you to increment or decrement

  • Select Incoming or outgoing then
  1. MIDI Channel # (second nibble of Status)
  2. Byte 1 - Note or CC Number
  3. Byte 2 - Note or CC value

This could work for any 3 byte (most common type of MIDI message)

We would need to consider what should be done if one of the messages is something else. For instance if one of them is 2 byte message then not allow increment of the missing byte, or if it is SysEX not allow editing at all.

Not sure how we would handle keystroke or mouse messages. Maybe initially just ignore for now.

This all could be a very daunting development effort.

Right now, I solve by:

  1. Using generic raw messages and then use rules to manipulate each translator or
  2. Reduce translators more rules or
  3. Copy then paste and then edit pasted translators

Even done from an external application (like MS Excel) and then importing them into MT Pro (if an import tool was available) would be somewhat clumsy.

A scripting language would be nice for programmers like me but may be unfriendly to most “music makers” that don’t necessarily want to do scripting. With that said, as scripting language that writes MT Pro files might certainly help in creation of “solution templates” that write out initial MT Pro files that a user could run to get a new project started. The user could run an application to create a template of their choice and then edit the MT Pro file from there. Just kicking ideas around.

Like anything with flexibility and power comes complexity.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

Hi again Mr Steve and Florian,
Thanks Florian for considering our requests. I understand that some are difficult to implement but hope that solutions will be found. looking foward for the next releases of BMT pro, they looks very interresting!

Thanks for your suggestions!


1 Like

How about multi-element editing like this:

  1. Select multiple translators
  2. Just like the way it is already working, the editor displays the last clicked translator entry. You can use Ctrl/Cmd-Click to select that last clicked translator entry.
  3. Now whenever you modify anything in the right-hand editor, it’ll commit that particular section for all selected translators.

Example 1: edit the translator name, and all selected translators will get that translator name. Example 2: modify the outgoing keystroke text. Now all selected translators will be configured to use keystroke as outgoing action (if not already), and be set to that entered text.

Well maybe but I think in most cases the incoming trigger or outgoing action might be a bit different.
I might need to think about this a bit more.

I’m thinking of a situation where you might want to change just the incoming channel for a bunch of translators. The incoming trigger on the existing translators have MIDI CH 1 but different notes. You want to change them all to MIDI CH2 with the same notes. So you would want to leave the note numbers alone but only change the MIDI CH. There may be many more similar type examples. So I think it might be important to not just copy the entire incoming trigger or outgoing action, but to just make changes to one part of either.

Today, I tend to use global variables in my translators for things like this that might change project wide, so I can change one global variables and all translators that use it follow suite.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

If i may, here are somes ideas. I don’t have any clue on how easy or difficult coding wise it would be :

  • An icon for group link can be added in the toolbar, so when someone want to edit some translators at once he left click on it and it turn green or blue or orange (so we are in link edit mode)

  • We have to right click in that icon to have a popup/configuration window that let us tick what we want to change. Here is an example Capture Bome Link popup .I don’t think that all the parameters need to be there. Everybody need is different but i think this feature have more sense for changing some entries relatives to midi ports/channels etc, and we dont have to forget that there is already a duplicate fonction that can do some copying cases. Perhaps starting with all edits relatives to midi then in future updates add/improve for mouse, keystrokes etc is a good start as suggested.

*When in this mode the first selected translator (let’s call it M) could be the one that the other follow the changes like already suggested but the selection, instead of the regular green can have a blue or orange color and the M translator have a little symbol or sign or a coarser color to be differenciated. The edit translator in the right can stay how it is (for individual changes), and we just select the M translator to edit the group. If in the selected translators some have differents incoming/outgoing entries (for example i want to change the incoming midi port for all but i accidentally select a translator that’s incoming keystrokes) they will have a red or grey color and if i do my changes in the M translator, i will get a popup warning me that an translator incoming keystoke (or a different entry from our popup/configuration window) will be changed. I agree or deselect it then. That warning could be disabled in the Appearance settings.

These kind of tweaks are usually done by those who know what they are doing but perhaps and undo (that we can disable) could be handy!

Hi, thanks, great ideas. It’s always good to look at things without considering the implementation burden. I want it to provide functionality users actually need, be sensible and logical.
Undo would be really great.
This thread is linked to our internal feature tracking so we can refer to it when starting to work on it.
Thanks a lot!

1 Like

My pleasure, I am glad if these could help!