Thanks to dmitrio95, mirabilos, and Jojo for chiming in on the spatium issue.  I have created a document to consolidate all the issues surrounding these problems, and uploaded it in this comment on the spatium issue page:

https://musescore.org/en/node/278889#comment-873838

The doc is not 100% complete, but it captures all the related issues I have found, and reviews/proposes integrated solutions for them all.
There are also open questions raised in the document.

Thanks for listening.  I still feel strongly that this is a critical set of issues that should be included in the upcoming 3.0 beta.  I have not seen any timeline for that beta release, but I am working to deliver some solution this week, if possible.  Further feedback is much appreciated.


On 11/29/2018 10:27 AM, Sideways Skullfinger wrote:
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




_______________________________________________
Mscore-developer mailing list
Mscore-developer@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mscore-developer

Reply via email to