What is the 'eid' tag in the mscx file of the latest versions of Musescore used for?
I was undecided whether to publish this 'post' in this section or in the 'general discussion' section: indeed, I wondered if it was worth wasting time to write it. Anyway, here I am.
A premise is necessary.
I recently created a plugin (intended for personal use) that aims to compatibility scores made with different versions of Musescore, through the manipulation of mscx files. For example, load a score made with 4.5.2 into 3.6.2
The biggest problems arose in adapting to 4.4.4 (and similar versions) a score made with 4.5.2. While in other cases it is sufficient to change the file header (and, subsequently, something else to improve compatibility) to make the load happen, in this case the program crashed.
Both have a recently introduced 'tag', 'eid', evidently with encrypted information. However, in 4.4.4 it is of the 'numeric' type, while in 4.5.2 it is of the 'alphanumeric' type. So I said to myself: what if I tried to delete this information, what happens? So, I added a 'routine' to the plugin to systematically delete this information.
Surprise: once the 'eid' information is removed, the file is loaded perfectly. In a very complex score you could see small inaccuracies in the 'layout', certainly not due to the absence of the 'eid' information, but rather related to the different way of treating the placement of the 'musical objects' depending on the version of the program.
Having finished the premise, I come to the subject of this post.
I asked myself these two questions:
1) Why does an 'open-source' program use encrypted information?
2) Since this information is not related to the score, what is the purpose (or, maliciously, what will be the purpose in the future) of this new 'tag'?
The answers I have given myself are only hypotheses, and therefore I will not report them.
Consistent with the subject of the post, I will end in a 'cryptic' way: the future will tell me if I am wrong or right.
Comments
I believe their main purpose is to link elements between main score and parts.
Another use is for system locks, which is why those can't get converted to system breaks in 3.7
In reply to I believe their main purpose… by Jojo-Schmitz
Thanks for the precious information. I saw how it works for 'System Locks' and the concept is very clear to me.
The mechanism seems to me a little cumbersome, but this is just an opinion.
You could probably think of a conversion into the MSCX file, but this is outside my horizon of interests.
I also see that this new element is called 'systemLockIndicator' (Type == 88), and it may be that a plugin can be made to replace it with the 'traditional' Layoutbreaks. I don't know who it may be interested, though ...