Visual diff for Musescore files
Inspired by this discussion, I've written a python program (named msdiff) that allows you to get a visual diff of two .mscx files. Support for .mscz is planned.
The program takes two .mscx, generates a third .mscx file containing the highlighted differences between the scores, and calls Musescore on that file. Link here, with images and examples. It is not perfect yet, but I think it is already very useful.
Bad parts:
- Depends on the numpy library, which must be installed separately (it can be installed from source but it takes ages to compile). I plan on removing this dependency as soon as I can
- It's an external program that reads and writes Musescore files , which seems to be some what taboo here and extremely discouraged. The program is completely independent of Musescore, except that it requires Musescore to show the output file.
For the Musescore developers reading this:
1) Do you think this is useful?
2) Would you be interested in working with me by notifying me of any changes in the .mscx format so that I can update my program accordingly?
Comments
Looks promising!
I think the nervousness about people depending on the details of the format are that they tend to change quite often, and this was especially true during the course of 2.0 development. And no one one wants to spend the time on the sort of documentation that would be necessary to truly support this, nor do people want to have to worry about backwards compatibility for third party tools.
On the other hand, my guess is your tool doesn't depend a *ton* on the details, and probably can get by just knowing the basics and isn't as sensitive to some of the sort of things that are likely to change as some tools might be. I could easily be wrong about that though.
In reply to Looks promising! I think the by Marc Sabatella
Yeah, it's pretty generic. The hardest part is to handle the tick tags that are needed for more than one voice in the same staff.
In reply to probably can get by just by GEB
Talking as one of the developer.
1/ Do you think this is useful?
Yes. Extremely. Good job!
I would love to have the same but in MuseScore, so working with the MuseScore structure in memory and not the MSCX format.
2/ Would you be interested in working with me by notifying me of any changes in the .mscx format so that I can update my program accordingly?
No. See 1.
However, I would love to guide you to implement this as a command line option in MuseScore. Even maybe implementing side by side diff if it makes sense. You can find me here, or on the dev mailing list http://dev-list.musescore.org or on IRC #musescore on freenode.net.
In reply to Talking as one of the by [DELETED] 5
Ok, I'm now interested in learning C++ so I might be interested in taking this up as an exercise. I'll have a look at Musescore's representation and see what I can do.