This is a set of issues driven by a core problem inside MuseScore. I
have attempted to fix this as part of a larger PR over 2 years ago, but
it was rejected at the time. As the beta release of 3.0 nears, I want
to try once again to convince the community & decision makers of the
importance of this issue, so that I might find agreement on how to fix
it. I am willing to write the code and submit the PR(s).
The core problem is the file format, unfortunately. The page settings
data is stored in three different units: inches, staff spaces, and
millimeters. Inches are for the page size and margins, staff spaces are
for most everything else, and millimeters are for the spatium itself.
This arrangement inevitably causes rounding errors when converting
units. It also creates too many situations where units must be
converted. The worst rounding error is in the spatium itself, and that
error happens every time you switch from millimeters to inches in the
page settings dialog. Once it has been rounded, you must edit the XML
to reset it, otherwise the rounding just compounds every time you switch
between inches and mm.
The solution is to store data in only one kind of unit, not three. This
has various downstream impacts, and is related to several open issues
from users other than myself. For me it is a critical issue because I
do SVG exports, and rounding the spatium means that the SVG export
automatically scales everything to the non-standard spatium value via
full matrix transforms. It's ugly and it bloats the exported file. Not
to mention the incorrectness of the scaling itself - I never change the
staff space value in the dialog.
I am seeking feedback on my solution to this problem, and some
guidance. This is partly because of my prior rejection, but mostly
because the code has changed in the 2 and a half years since I first
raised this issue, and it is an issue that might have downstream
consequences I might not see immediately. Unfortunately is is a core set
of changes and there is substantial detail to understand in order to
review the changes. I am hoping at least a couple of you can follow
along and assist with the design of this new code.
I have some issues open and some forum discussions in various states on
musescore.org. It's probably best to have the discussion and reviews
there instead of the mailing list, but either way is fine with me. I'm
already making some changes in a branch as I muddle through this, and
I'm having to make some decisions that could use some feedback. The
best two places to start are these two issues I've posted:
https://musescore.org/en/node/278887
https://musescore.org/en/node/278889
The first one is about the UI for these units, which is 100% tangled up
in this overall issue.
Thanks for listening!
__
Sideways
_______________________________________________
Mscore-developer mailing list
Mscore-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mscore-developer