Backward Compatibility for MuseScore files

• Jan 19, 2015 - 20:21

From time to time I get the following notice when opening a score:

Cannot read file /home/sbesch/Music/scores/MuseScore/SomeFile.mscz: It was last saved with version 0.9.5 or older. You can convert this score by opening and then saving with MuseScore version 1.x

While the problem and its solution is stated quite clearly, there are some issues - especially for those who may have a large number of scores written with the older version - scores which have not been looked at for a long time. It is likely that the version used to write these scores will not even be remembered.

The problem, in a nutshell, is that it is equally likley that the needed older version of MuseScore is no longer installed (or indeed was never installed). While the ideal solution would be to have newer versions of MuseScore automatically load and convert all older formats, I realize that this is perhaps a bit of bloat that no one really wants to add to the core program. Nevertheless, it is a problem that should have a better solution than having to keep an old copy of the program installed, or worse, remember to load each and every score every time a new version is released so that it can be saved in the newer format.

Generally, I believe that breaking backwards compatibility of file formats - at least in terms of being able to read them - is not the best programming practice. What I would like to see is the development of a separate application that reads and updates old file formats.


You get that message from 2.0 Beta 2 or a nightly build?
It had been announced loooong ago that you should be resaving all ole files with a 1.x version, I think 1.2 was the one.
1.x and 2.0 can coexist and as long as 1.x is still available for download... and I guess it will get kept even after 2.0 gets released.

No need to create a separate application. Instead one can run an older MuseScore on the command line and open/save the mscz file.

If there would be huge demand for this (you're the first one to address this afaik), we would rather add this in MuseScore through a web service, instead of putting it in the actual code.

The comments so far rather sum this up. I am running the most recent build (2.0 beta) from git. Whether running the old app and re-writing the files is acceptable depends upon how many iterations are ultimately required. For example, will users of 3.x need to load old files into 1.x, save them, then load into 2.x, save them then load into 3.x and save again? OK, so this is a bit tedious but it does work. However it still begs the question of whether backwards compatibility should be broken in the first place. Breaking forward compatibility is fine - almost expected, but backwards compatibility is another matter altogether.

The WEB app idea is cool - really the same as an application to update files, just cleaner. However, it does still require that the user from time to time digs up all his scores and makes sure that they are all updated. Built in backwards compatibility would still be the best of all.

I should point out that I have discovered that simply clicking "Ignore" to the file warning loads the file anyway. It looks a bit odd but is readable. I don't know if it's safe to edit them or whether there may be some other less obvious errors introduced, but it does seem to read them nevertheless.

In reply to by sbesch

Indeed, you can ignore the message and it will still load the score. If the score was saved with MuseScore 1.2 or 1.3, the mscz file would contain more layouting information which would allow MuseScore 2.x to more or less preserve the original layouting. So hence the notice.

Anyhow, my advice would be to read this handbook chapter, especially the Local Relayout paragraph:

Backward compatibility is ALWAYS good practice. Commercial softwares break it in order to force customers to buy new versions of a program*, but I think that there is no reason why free software should (apart from making the development process easier, which I can easily understand as developing free software is unpaid work).

* Actually, I trashed Apple as a whole due to the horrible planned-obsolescence policy they embraced with their 10.x system. (indeed, they already did horrible things with their transition from 68xxx to PowerPc, adb to usb, scsi to ide and such.) People get pissed off when someone shakes their wallets once too often, you know.

Do you still have an unanswered question? Please log in first to post your question.