Windows Injects Events Breaks

The mouse click output, with set mouse position and “Windows Inject Events” has always stopped working when updating to a new version of FL Studio. I always just redid it because it’s not too common.

But now I noticed that even just changing the FLS window from fullscreen to a floating window then back to fullscreen breaks it too. Then after I redid the capture it’s back to not working again. That’s disappointing. It’s really useful but breaks if I breathe on it too hard.

Hi @SuperTRev

With Windows Inject events, we are pretty much at the mercy of the developers that create the injectable objects. I don’t think there will be much, if anything we can do from the Bome perspective. Either they work or they don’t. If they don’t the only alternative is to use ‘focus application’ followed by a click at the desired absolute coordinates (assuming you keep them the same on your screen at all times.

In playing with FL Studio a bit, it looks like most objects are actually groups of controls so selecting an object may or may not select the desired control you want to inject the event anyway.

It would be interesting to know exactly what object you are trying to select with the mouse event, however and I would be happy to test if I get the same thing on my computer. Here is what I am currently running.


Steve Caldwell
Bome Customer Care

Also available for paid consulting services:
1 Like

Ya, I had a feeling that was the case. I remember them being a hit or miss dice roll.
It’s just that they work fine but break because of a window movement. That’s strange.
Tried it again and it stopped working again, without any reason that I can tell.
If I have to keep redoing them then I can’t use them.

It’s sad that it doesn’t work with the plugin preset changes either. Because it must be that particular instance of that plugin for it to work. Each instance has its own unique ID or something.

For this particular case, it’s with the transport controls. I was using it with the play, stop and record buttons at the top toolbar. I’ve since found the MTP’s special keys output in the keystrokes. They have their own transport controls. The MIDI output does too. I’m trying to get those to not play youtube as well. Some of them will trigger windows multimedia keys, so anything running that has media will play/stop at the same time as FLS. Even Winamp was getting in on this action. I’m going to have to work on this.

The reason I don’t just use spacebar, is if the piano roll or playlist isn’t focused, it doesn’t work. Plugins can steal keystroke focus, as priority before the main FLS hotkeys.
I’m running the version 21.1 beta rc4 [Build 3708]. It’s almost ready, so it’s basically the stable version at this point.

Playing around with all these MPT special keys output to see what they do.

Ideally you could define a MIDI controller and use the supported transport controls for that controller to handle this. What is your MIDI controller definition you are using?

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

I’m not sure what you mean.
On my Akai Fire I have the play, stop, and record buttons.
The Patt/Song button has the same focus issue too, as “L” is it’s hotkey. I’m running that right now, but it only works when the piano roll or playlist is focused. How annoying.
“R” is the record hotkey but that has the same issue.

Some of the “Play” outputs from MTP trigger other media as well. I’m still experimenting to see which ones do what. I have found the outgoing keystrokes and also MIDI transport controls. I remember that I couldn’t use the MIDI output but forgot why.

Oddly the “Stop” MTP keystroke special key output makes FLS pause instead of stop (The FLS shortcut for pause is Ctrl + spacebar).

Play Keystroke

Right now I’m running the keystroke output special key “Stop”. Sometimes it makes the windows volume slider appear. Then sometimes the whole media sidebar pops up. (It will control FLS and youtube at the same time; even when only FLS is focused). I have no idea what tells it to do this or the variables that make one or the other happen. It makes no sense at all.

Just Volume


Just realized the “focus application” output exists. That looks useful.
Been struggling with windows program shortcuts. They work only sometimes.
Excited to see if the MTP “Focus Application” works like the windows + number keys do.

Can’t you just use MIDI to control your transport instead of translating to keystrokes.

Pattern/Song Sends note 0x32 (50 Decimal)
Play sends note 0x33 (51 Decimal)
Stop sends note 0x34 (52 Decimal)
Record sends note 0x35 (53 Decimal

728013 - MIDI IN [FL STUDIO FIRE]: 90 32 7F
728153 - MIDI IN [FL STUDIO FIRE]: 80 32 00
728782 - MIDI IN [FL STUDIO FIRE]: 90 33 7F
728943 - MIDI IN [FL STUDIO FIRE]: 80 33 00
729497 - MIDI IN [FL STUDIO FIRE]: 90 34 7F
729646 - MIDI IN [FL STUDIO FIRE]: 80 34 00
730874 - MIDI IN [FL STUDIO FIRE]: 90 35 7F
731017 - MIDI IN [FL STUDIO FIRE]: 80 35 00

Anytime you can use MIDI instead of keystrokes, things will be more reliable.

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:

When MTP is handling the Fire, I have to translate the messages, as everything just sends note on/off.
So trying to just pass through what it sends doesn’t work as it no longer sends its original functions.
Just note on/off. That doesn’t work. 90 32 7F for example is just the D4 note.

All my experiments with the different outputs yielded results that don’t work for me.
I’ll just use MIDI Buddy to manually click on the screen buttons.

It is not an either or. You basically use a combination of translators and MIDI thru path depending on what you want to do. You can set it up as a standard Fire with midi thru paths for anything you want handled natively and then use translators for those things that you want to translate to keystrokes. For anything you write translators, if you don’t want the original MIDI output, you just use the swallow option for the translator.


1 Like

Ok. Well I changed my mind again after all this. Went back to the inject events setup, instead of mouse clicks. I like it too much. Will just have to recapture buttons when they break.

You had noticed FLS uses groups of objects. I noticed that too.
I also noticed in the capture path a little number in there in box brackets.
My old translator that stopped working was the same path but with a [3]. The new one captured it with a [5]. So I think that means: ‘This is the object group, and the one to click on is object ID #5.’
But who knows. FLS still uses Delphi code.

So these problems did start happening after this new FLS update. Every time I install a new update I have to revert the toolbar back to my default template one because they are always trying to force the news panel on there. So that probably explains this. Weird it stopped working after a recent recapture though. (I bet if I tried it on my older stable version, the one you have, it would have been working fine. Maybe the fullscreen thing is involved in this, or maybe not. Dunno)

Your MIDI thru path mention reminded me that FLS supports the MCU protocol.
I used to use that for transport controls with my keyboard.
MCU Support

So what I could do is have a dedicated port for that, set it as MCU, and any of my transport buttons just have them output to that port. That might work. But I would have no idea what message to send. And I’m all out of ports. MTP will only let me have 4. :worried: sad

MT Pro allows for up to 9 virtual ports. This can be changed in settings.

Mackie MCU note numbers are:

5B (91 Decimal) REWIND

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:
1 Like

I didn’t know what you meant with those note numbers.
So I went and found this Mackie Control MIDI Map.
It’s actually working with sending note on, at those notes.

Had to use a note on with a qq=0 velocity to get it to let go of the stop button.
(Input of that is the 0 note off velocity, me letting go of the button; same as piano notes.)

This works for me because it’s how FLS setup their transport control.
Hitting their own stop button moves the playheader to the “seek time”. Pushing stop again will send it home. That’s very useful.

The seek time is the bookmarked playhead position the user sets. Wherever the mouse clicks is the new bookmark.
For me it’s critical because those / and * shortcuts on my ticky knobs take the seek time with it too.
That’s why I couldn’t use the MTP transport controls. They either just pause the playheader at its current position or just bulldoze over the seek time and sends it home.

Don’t know why I’ve never thought to use MCU all these years. Or why I thought MTP had 4 ports.
Going to play with all the other things on that MIDI map to see what happens.
I bet Image Line put the pattern/song button in there somewhere.
Thanks again.

Found a bunch of things.

In order of usefulness:
Play A#6
Stop A6
Patt/Song F#6
Metronome D#6
Undo C#4
REC Countdown E6

Toggle Grid Snap D6
Time Marker C#5
Enter B5
Escape A#5
Focus Channel Rack D#5
Focus Browser D5
Rewind G6
Fast Forward G#6

Cursor Up C7
Cursor Down C#7
Cursor Left D7
Cursor Right D#7

Menu A5
Alt menu B3
Open Audio Logger C#6
Save Project As G#5
Song Position Toggle F3

Some strange decisions on what shortcuts they included and what they ignored.
No surprises there. The whole reason I’m here is because of Image Line decisions.
Happy with this. Even kept my restart and REC+MET latching macroes.

Hi, I use absolute note numbers instead of note names as there is no MIDI standard for note names. For instance, some vendors call C-2 note 0 and come call c-1 note 0.

Note number are allows more specific and reliable to use otherwise, you can end up getting your note numbers off by an octave or more.

You can change the note naming conventions in Bome MIDI Translator Pro, however in the Setting menu.


Steve Caldwell
Bome Customer Care

Also available for paid consulting services:
1 Like

Never heard of absolute note numbers before. That’s neat.
I forgot about the octave shift. In the options I have Middle C set to C4 too.
Checked my note preset and when I send a note of C3 (48), FLS sees it as C4 (60).
Checked the MTP log and the FLS debug log too. So I’m sending an octave lower.
Think that is standard with FLS. They put the Middle C as C5 as I remember. Don’t’ quote me on that.

FLS log shows “Play” as 90 5E 7F (Note A7). MTP output is A#6 (94).
Now I don’t know what to believe. That’s not an octave, that’s only 11 semitones.

So I tried outputting with the RAW/Sysex method and it works.

Play note on is 90 5E 7F. Note off is 90 5E 00.
So 90 must be the controller address, the middle two is the note and 7F is on, 00 is off.
I should have known that by now after doing the lights on the Fire.
It all makes sense now.

You’re right about using the RAW MIDI. So that if someone wants to change the octave transposition it doesn’t mess with the transport. Smart. I will edit the list to reflect this.
I should change my output to Middle C = C5 to line up with FLS but I will have to change like 500 or so notes manually; shifting their output back down an octave.
Thanks again.

You should ignore the note name and always go with the correct note number which will never change.

You can enter the note number in the field as 0x5E or 94.

The below two pictures produce the same results.



Steve Caldwell
Bome Customer Care

Also available for paid consulting services:
1 Like

I didn’t know you could put that into the note box.
Don’t know what 0x is but it seems that my raw output and your note output both work.
Don’t know if there is an advantage to using the note box instead of the raw output.

In raw output it will always show in hex so 0x is not needed or supported there.

1 Like

I made a MIDI map for the note output for MCU controlling the FLS mixer.

MCU Mixer MIDI Map

The master mixer track doesn’t have any associated note for some reason.
MCU just starts at mixer track 1.

The first channels in my mixer are busses. So if I use the MCU solo message it will solo that bus;
muting the channels linked to it, so effectively muting FLS entirely.
Image Line had made an alternative solo to fix this. You hold down Alt while right clicking to solo a bus.

That’s what I had on my translators previously. Hold Alt, right click on the button, release Alt.
But now I can’t move the solo buttons to MCU because holding Alt doesn’t work. And the master channel isn’t even supported by MCU. Disappointing.

My Busses

No, the Mackie MCU protocol does not have Solo, Select Record or Mute.
I think it has something called Rude Solo though. You should be able to read more on what that does by viewing a Mackie MCU document. I think there is also a master record. Again check the Mackie MCU document.

Again, there is a master, fader supported and I believe Rude Solo and Record are available.

Solo is note 0x5a (decimal 90) and record is note (0x5F decimal 95).

Steve Caldwell
Bome Customer Care

Also available for paid consulting services:
1 Like

I assumed there is no master track support because of the map I was using; the one in the pic above, but the whole map is bigger than the pic.

It’s this one I was using:
Mackie Control MIDI Map.pdf (226.2 KB)

(EDIT: On the image of that control surface I just counted 8 tracks plus a master. So there must be master mixer messages in MCU somewhere)

I don’t have any Mackie control surface. I’m just piggybacking the driver in FLS, because that’s the only way to get the mixer mute/solo’s etc. without having to use mouse clicks.
In that map, mixer track 1 starts on note C-1. There is no notes before that one. And no mention of the master track.

Do you have an idea on how to trigger the alt mute in FLS, using the MCU?
You’re supposed to hold Alt and mouse right click the mixer track to do it.
I can have a translator sequence that holds down alt then send the solo message but that doesn’t work.

I have a Mackie Onyx 8. It has a rude solo onboard. A while ago I did a suggestion write up to Mackie for the next generation Onyx, which include toggling off rude solo. It’s too rude for me. :sweat_smile:

Don’t know where you got this MCU master track note data from. I can’t find it. Do you know what message (master track) mute and select channel is? I’m even interested in this rude solo messages, as Image Line might have used that for their alt solo instead. That would be nice.

Master mixer track solo can’t be note 90 as that’s what the song/patt button is.
And master mixer track record arm can’t be note 95 as that’s what the FLS main record arm is.