Workaround for mixer going on top of plugin windows

I’m sharing my workaround for a known issue in Cubase that wasn’t fixed in 7.04.

The issue: When the Mixer is Always On Top or Full Screen, plugins won’t stay on top of it. If you open a plugin then click on the mixer window (such as to open another plugin), the plugin ends up behind the mixer; you have to quadruple-click to bring it back (first double-click closes it, second one reopens it on top of the mixer). If you want to have a few plugins open at once, it’s even more annoying.

The fix is one line of code:

SetWindowPos(theChildWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);

Until then, I wrote an app that fixes it from the outside. When Cubase creates an Always on Top window it calls the above line of code on it. That’s it.

It’s implemented as an application hook (SetWindowsHookEx) so it uses 0 CPU – it sleeps until Windows notifies that Cubase has opened a child window, then it wakes up, runs that line of code, and goes back to sleep. No overhead whatsoever. You’ll see an eyeball in your system tray when it’s running. If Cubase is running when you start it, it’ll hook in right away, otherwise it’ll watch for Cubase launching and hook it then.

Download is attached. Source code is included in case you don’t trust me and want to build it yourself. :slight_smile: There are 32 bit and 64 version of the binaries included. Use the one corresponding to your Cubase installation. Note: I haven’t tested the 32 bit version, but it should work (exactly same code just built for 32 bit).

Known Issues:

Hides tooltips in Halion Sonic (will take a look when I get time to install that).

All other issues reported below should be fixed at this time.
CubaseAlwaysOnTopFixer.zip (99.3 KB)

Wow thank you!!
Steinberg hire that guy!!!

He fixed an annoying issue that’s been there since 7.0.0 without having access to the code :S

Brilliant stuff, works perfectly here…thanks for sharing.

" :astonished: Has some limitations :exclamation: "

Basically this works but with some side effects.

Tool Tips get hidden (Not a big problem if you know the functionality)
A bigger problem is if a vst generates a Message Box (Modal) it can also be hidden and therefore unreadable but may require user action (e.g., YES/NO or OK/CCANCEL) before returning control to main vst. This can be confusing and appear to hang the system.

Well done… :exclamation:
didn’t try it myself, but for those who can’t or don’t want to install this app, i discovered today, if u press alt+tab (windows keys for switching open applications) if plugins are hidden behind mixer it will bring all open plugins on top of mixer , which is also kind of workaround until steinberg come with something.
Notes:
if cubase is the only app running one alt+tab key needed. if more apps running u will need to cycle alt+tab to cubase to bring the plugins.
*** also it won’t work well if channel setting is open and set to “always at top”.(u will have to close ch settings if opened)

didn’t try it myself, but for those who can’t or don’t want to install this app

Why couldn’t you or wouldn’t you want to?
There isn’t any install required and the end result is much better than your own workaround.

just mentioning…
everyone is free to do what they want, its about the same topic soo…
i will try the code of Mud as soon as i get to my DAW… seems its working well from users posting…

Thanks for the this! However, I am new to Cubase and have no idea what to do with the files.

Edit: Nevermind, I figured it out.

You are awesome for doing this. Thanks!

Hey Mud, great fix and I’m using it. But just to play Devil’s advocate :imp: , in defence of Steinberg, there could be all sorts of reasons they haven’t implemented it, even though it seems as though its one line of C code.

In plenty of project management methodologies these days, to ensure delivery dates, projects employ what is known as MoSCoW prioritisation. This fix may just be getting into the ‘Should haves’ rather than the ‘Must haves’. :astonished:

The ‘musts’ and ‘shoulds’ should be done before launch to keep users happy.

Every company must make money to survive, but they should make products that users will love. The problem is that users provide the money, so making a poor product will result in a lot less money. There’s also a deadline for which a product must be completed or profits will be cut into, which will displease investors, who also happen to provide money.


Prioritization always makes sense on paper until you think about it. Some goals and priorities make loops and are impossible to balance properly without running into moral or issues beyond logic. But apparently, for Steinberg, investors are more important than customers. They’ve got their goals straight, that’s for sure. Do you still want to defend them?

Hi,

Can you write workaround for “allways on top” for Key Editor and Sample Editor ?

Ok, just kidding :wink:

Thanks for the report. I just updated the code to fix it.

Can you try it out? If it works for you, can you edit your post so we don’t scare people off?

I’m not having this problem. Can you give a specific example? For instance, if I mouse over the transport play button, I get a small, yellow tooltip saying, “Transport Play (Enter)”. Are these the tooltips you’re talking about, or something else?


Cheers.

I’d love to try it out…can you post the updated code, please?

I appreciate your IP
In response…
Tool Tips Problem…
Do not run run fxc.exe

Start Cubase - New project

Add instrument track using Halion Sonic SC
Open Edit Instrument

  1. Move Cursor over each control, pause, then tool tip will appear (defult action) e.g., VOICE/PITCH , Octave control … = “Octave Tuning” message.

Save and close Project

Start fxc.exe
Open saved Procect and repeat 1) above… tooltips do not appear… (Actually they are behind the window)



Modal Message Box Problem
This is more difficult to reproduce.

I use Kontak 5 (other versions may exhibit have the eame problem)
Add instrument track using Kontakt 5

Changing the output configuration can result in a Modal Dialog Box asking the user to close and reopen Kontakt. The Modal Dialog Box in this case is behind the main Kontakt window. Pressing “Enter” on the Keyboard will close the (hidden) Modal Dialog Box and return control to the Kontakt window to enable the user to take the appropraiate action.

If you nee more details I will try to give a more detailed way to reproduce the problem.

Many thanks for your efforts I sincerly hope SB problem can be resolved.

Greatitude :neutral_face:

I replaced the file in the original post.

I reproduced it by changing a project then trying to close Cubase, which generates the Save, Don’t Save, Cancel prompt.

I updated my original attachment. Can you see if it fixes the one in Kontakt 5 (I don’t have that)?

Well, crap. I don’t have Halion Sonic. I’ll see if I can dig up a copy. In the meantime if you reproduce it with something built-in to Cubase, lemme know.


The trick here is that I need to be selective about which windows I promote to “topmost”. For instance, I obviously can’t make the mixer window topmost or it’ll go above the plugin windows again. So I need to come up with a “signature” for the windows we want to actually push up. I’m using a combination of window class and window style.

In the case of modal dialogs, I was leaving them out, so they were behind when we didn’t want them to be. It looks like the same thing is happening to Halion sonic’s tooltips, but since I don’t have access to them I can’t figure out a signature for them.

[Edit: got it to work by running as administrator (right-click), after which it ran ok without having to do that]

Frustratingly, I can’t get this to work! Mixer is On Top (but not full screen) and prefs is set to force plugin editors to the same. Fxc is running (appears in system tray and fxc.exe is listed in Processes. I extracted the zip into my Downloads folder (where I keep this sort of thing) and run the 64-bit version from there via a Start Menu shortcut.

  • Launching fxc first, I get “Cubase not found. Waiting for Cubase to launch.” I presume this is to be expected.

  • I now launch Cubase, open the Mixer and double-click a plugin. It opens on top of the mixer (as it always has).

  • I double-click a second plugin. It opens on top too but the first one disappears behind it.

  • Close Cubase then fxc. No messages.

  • Launch Cubase first then fxc. Still no joy.

  • Close fxc. No message.

  • Relaunch fxc. Still doesn’t work.

  • Close Cubase.

  • Close fxc. Get “Unable to remove Cubase window hook” error. This error only seems to happen when you open fxc “within” Cubase but close it “outside”. Opening and closing fxc “within” Cubase or vice-versa is fine.

I really want this to work. What am I doing wrong?

C7.0.4 W7HP 64-bit.

PS: A bit cheeky, given your fine efforts, but could you make the icon a color please? Black on Aero on black meant it took a while to see it! :slight_smile:

Well, crap. I don’t have Halion Sonic. I’ll see if I can dig up a copy. In the meantime if you reproduce it with something built-in to Cubase, lemme know.

I think he meant Halion Sonic SE which is included with Cubase…his repro is the same with SC anyhow. Though imho who cares it’s only tooltips :wink:

IGNORE THIS…this is not an issue it is Cubase normal behaviour! My mistake

Another thing I notice is that you need to be careful to close plug guis before opening other windows you need to access…if I open prefs for instance it appears behind any plug windows but as preferences is the active window you cannot close or move the plugins out of the way and you can get stuck if the prefs cancel/ok buttons are hidden.

EDIT: Also channel settings window which opens OK without this running now opens behind the mixer

I really want this to work. What am I doing wrong?

Are you definitely running the correct version…64/32 to match your Cubase version not your o/s.

Yes, I just double-checked and the shortcut is definitely pointing to the 64-bit version (both Cubase and OS are 64-bit here).