How to approach scaling issues in Dorico 2 on Windows 10 [Guide]

Preface:
I had tested the trial of Dorico Pro 2 thoroughly, before purchasing the full version. This means I was totally aware of the scaling issues on Windows 10, but they were not a deal-breaker for me, as I got used to the interface and workflow fairly quickly. I liked Dorico’s features too much to not want to keep it. I realized from the first moment on that Dorico is not a notation software like all the other current ones out there. Dorico is an actual engraving tool, which focuses on creating neatly looking scores right out of the box all packed into a clean consistent interface. Dorico focuses on layout, and any layout program should be able to display properly to the user’s content. That is exactly the reason why I write this post in order to help other people to find the proper scaling solution for the time being so they will not get frustrated in the process of setting up their interface. Moreover, I want to point out to the Dorico-Team that this issue has still not been resolved satisfactorily in an age where high DPI screens have become almost the standard of technology.

Guide:
As Daniel had pointed out in an earlier post the Dorico user interface scales to a rounded number of 1x, 2x or 3x. This means that if you put your global display scaling to 100% you get 1x, if you put it to 125% you still get 1x, even though everything else on your computer scales to the proper 1.25x. If you put the global display scaling to 150% however, it already rounds up to 2x (=200%) so the gap is fairly large. This also applies if you set a custom scaling of for instance 149%, in which case all of the buttons and menus, etc. of the Dorico interface are still going to be scaled as if you were using 100% system wide scaling.

Scaling chart for Dorico:
100 - 149% = 1x (=100%)
150 - 249% = 2x (=200%)
250 - 349% = 3x (=300%)

Nevertheless there is a hidden option in Windows 10 where you can force the program to run at a specific scaling not rounding to the nearest whole number anymore at cost of resolution because then Windows takes over the scaling instead of Dorico itself (See “Approach B”).

Now that all of this is explained properly, you can find out yourself what scaling you want to use for best legibility vs. screen real estate.

A. Standard Approach
Step 1: Find your current global scaling percentage: SettingsSystemDisplay
or by simply right-clicking the desktop and then choosing “Display settings”
Step 2: Open Dorico. Do you want everything to be smaller or bigger? Keeping the scaling chart above in mind enter a value which is smaller or bigger for the global scaling percentage. See how the scaling changes for Dorico while the program is open. If you are not happy with the only possible 3 scaling increments which are given by Dorico because the increments are too large, there is the following second approach.

B. High DPI scaling override
Step 1: Make sure Dorico is completely closed. Find the Dorico shortcut and right-click it → Properties
Step 2: Navigate to the “Compatibility” tab and press the “Change high DPI settings” button at the bottom
Step 3: Tick the “High DPI scaling override” checkbox at the bottom and choose “System (Enhanced)” from the dropdown menu.
Now proceed as in “Approach A”. Notice that the Dorico interface now doesn’t round up anymore and is going to be scaled accurately according to the global scaling percentage. The only drawback is that now Windows is scaling everything so everything looks a bit blurry unfortunately.

Now it’s your decision to make if you would rather have crystal clear text and symbols even though everything might be too small or big in general, or you prefer the right size of the objects at cost of a bit blurriness.
For “Approach B” never choose a global scaling percentage of 100, 200 or 300%, as you should always prefer Approach A for these round numbers, because the size of everything is going to be exactly the same only that with Approach A you can make use of Dorico’s full native resolution.

Thanks for taking the time to share this write-up, doricardo. We are of course hoping to find a proper solution for this in the future: preferably the Qt developers will tackle this problem properly, but failing that we will try to take care of it ourselves.

The thing I find interesting is, that Doico’s native resolution does in fact support up to very large objects & symbols, which means that all the objects & symbols should have a high enough resolution to be scaled to all different kinds of resolutions natively without any problems (at least concerning their resolution). I presume this must be purely a scaling issue that theoretically should be easy to fix (because all the data is already there).
Maybe you could implement an internal scaling factor controller or something similar in the preferences of Dorico in the future?


I would like to add a couple of screenshots to summarize the case and as well to give further insight to anyone who is interested.
Unfortunately, I had to split the screenshots in zip archives because of allowed file size limits on the forum. If anyone knows a better way to upload these screenshots, please tell me.

I am using a 13.5" Surface Book with a screen resolution of 3000 x 2000. I also use an external 24" Dell monitor with a resolution of 1920 x 1080.

For the Surface Book I find 2x (=200%) not touch friendly enough. This is the reason why I am using 3x for the time being which is actually fine for me even though the drawers are a bit too large. My actual global scaling percentage is set to 250%, because the Surface Book has a very high PPI and I want to make use of its touch screen comfortably. As you can see on the screenshot of the Dorico interface at 2.5x by enabling High DPI scaling override everything looks very nice and has just the perfect size. Notice also that the top status bar has not yet collapsed. I personally prefer sharp text rather than screen real estate, because I can fold up all the drawers at any time when I am not using them. Natively supported 2.5x would be the perfect solution for me.

Now with the 24" Dell Monitor I am having more of a problem. As my reading distance is a bit further away, I find everything a bit too small at 1x, but at 2x everything is way too large making the interface too complicated to use. Once again, at a forced scaling of 1.25x or 1.5x everything looks very nice and very relieving for my eyes (except that it is now a bit blurry).

It would make me very happy if in the future Dorico could natively support scaling factors at 0.5x increments or at 0.25x increments altogether.


Dorico UI [3000x2000].zip (1 MB)
Dorico UI [1920x1080].zip (1.77 MB)

Dorico itself is designed to use no bitmap graphics and to draw its whole user interface using font glyphs and primitive drawing commands, which indeed in theory allows us to draw the interface at any scale factor. However, the problem is that the underlying GUI library that Dorico uses, Qt “Widgets”, don’t currently support drawing any at non-integral scale factors, because of various problems in how those controls then draw. In other words, Qt’s versions of the standard Windows GUI controls like edit boxes, checkboxes, list controls, menus, etc., look bad when drawn at non-integral scale factors. Rather than coming up with a comprehensive fix for this problem (yet!) the Qt team decided to round the scale factor to the next integral one. Dorico relies completely on the Qt Widgets engine for drawing its user interface, so until those issues are fixed by the Qt developers, we can’t go much further. We haven’t ruled out trying to dig in and fix some of these problems for ourselves, but it will require a large time investment in the infrastructure that we pay to be provided to us by Qt, and we would rather spend our limited development time and money on building features for the software.