I have a Python video application with its own GUI, and I want to control it from Bome MIDI Translator using a Steinberg CMC AI controller, especially for a slider/jog control.
My problem is with Bome’s application focus detection.
In Bome’s focus/application list, my app does not appear as its own application.
When I run the script normally, Bome only seems to detect python.exe, not the actual GUI window of my app.
That is a problem because I have many different Python applications running on the same machine.
If I bind Bome to python.exe, the translation could affect all of them, not just this specific app.
I tried two things:
I created a custom alias executable instead of using plain python.exe
Result: Bome still does not recognize it as a separate target.
I built the app as a standalone exe with PyInstaller
Result: the app still does not appear in Bome’s application/focus list.
So my question is:
How does Bome identify a target application for focus?
Is it based on the process name, the top-level window class, the executable, or something else?
And is there any way to make my app appear as a distinct application target in Bome?
Additional detail:
the GUI window itself does have its own window title
but Bome still does not list it as a separate application target
Bome MIDI Translator Pro recognizes the application level only which on Windows is .exe file and on Mac is .app. Some, but not all, applications may expose various controls within Windows. If it does, you would use an injected keystroke or mouse action. If not, you would need to lock in the screen coordinates for a given control at a fixed location and use that to position the mouse or cursor prior to executing the outgoing action.
On Mac, you might have some luck through an AppleScript outgoing action.
For Python, even if it is compiled it uses python.exe as the application and runs the interpreter under that.
Steve Caldwell
Bome Customer Care Also available for paid consulting services: bome@sniz.biz
I found i think a solution as the real problem is preset activation and application targeting.
Because my GUI runs under Python, Bome tends to see it at the python.exe level. I may also have other Python apps open, So I do not want my MIDI controller to keep sending those same commands to another Python app by mistake.
My idea : I can manually force-enable a preset for this GUI, and disable it when I am done, but that is not ideal because I can forget to turn it off.
So I am considering this approach:
when the GUI opens, the Python app sends a specific SysEx message to Bome (via virtual MIDI port)
Bome receives that SysEx and enables the preset for this GUI. bome already send this sys ex F0 43 10 3E 18 00 01 02 01 F7 to my Steinberg CMC AI , to turn the led on/off.
when the GUI closes, the Python app sends another SysEx message to turn the preset off.
Bome receives it and disables the preset again
The reason for using SysEx is that I want something very unlikely to be triggered accidentally by a normal MIDI keyboard, pad controller, or other hardware.
Does this sound like a good way to manage preset activation/deactivation in Bome?
Is SysEx on a dedicated Bome virtual port a reasonable approach for this use case?
Yes, that should work but what outgoing actions are you sending to each Python App. If it is MIDI you could just have each app use a different MIDI port and have Bome MIDI Translator Pro routed to the MIDI port that particular app is using.
Steve Caldwell
Bome Customer Care Also available for paid consulting services: bome@sniz.biz
just tested, and it works ! I made the Python/OpenCV GUI of the app to send a specific SysEx message to Bome virtual MIDI port 1 when the GUI opens, and another one when it closes.
i’ll use the midi port to switch to an another app, didn’t think about it, so thanks for the suggestion !
all the best !