GSoC 2018: Score Comparison Tool — Week 3

Posted 5 years ago

Hello!

The third week I continued working on the changes on MSCX fileformat. In the previous week I worked on a mechanism which would help to store spanners, beams and tuplets (in general, any "connecting" elements) without using IDs, then I made spanners use this mechanism while reading/writing thus eliminating the need for spanner IDs. However I used ticks for identifying positions of elements in its initial version so, as pointed by my mentor (shoogle), it needed a rework to define distances between the elements in terms of measures and fractions. There was also a problem with correctly handling spanners having grace notes as one or more of its endpoints. These problems were solved by me during the first part of this week's work. After completing these tasks I made beams save themselves without using IDs using the reworked connectors storage mechanism. I started also the same work for tuplets though I have some strange issue with reading nested tuplets which is still in the debugging process.

So, to sum up, this week I have completed a work on:
1. Rework of the previously developed connectors storage mechanism to avoid usage of ticks in MSCX files.
2. Correct handling of grace notes if they are connected with other elements by a spanner or any other connector.
3. Storing beams without using IDs.
4. (half-completed) Storing tuplets without using IDs.

Next week I will complete the task on storing tuplets, make copy/paste mechanism work correctly after my changes and perhaps do some other minor changes to MSCX format if some will remain. If things go well I will start to prepare a pull request for merging my changes to the main MuseScore codebase but this will first need some discussions.

Thank you!
Dmitri Ovodok
The developed branch