To implement import of CapXML files (file name extension CAPX)

• Mar 24, 2013 - 10:06
Type
Functional
Severity
S5 - Suggestion
Status
closed
Project

I sing in a choir where we use sheet music in Capella format. The few members who do not use Windows systems could participate as long as the old, binary CAP format was used by opening those files in MuseScore.

Since we move forward towards using the current XML-based CAPX file formet, these members cannot open those scores any more with MuseScore. Also with downloadable sheet music, CAPX gradually replaces the old CAP format.

So my feature request for MuseScore is to implement the import of CapXML formatted Capella files.

CapXML is an open XML format which differes somewhat from MusicXML.
The documentation of CapXML can be downloaded here:
http://www.capella.de/de/index.cfm/download/capella/download-capella/
(click on "Entwicklerpaket" at the bottom of that web page).

The presentation of the original Capella developer and CapXML designer on "CapXML design goals" at the 2004 "MUSICNETWORK Open Workshop" in Barcelona can be downloaded here:
http://mfi.math.uni-siegen.de/barcelona.pdf

BTW, the scorewriter Forte does support CAPX import (http://www.forte-notensatz.de/ or http://www.fortenotation.com/ )


Comments

Bernd Jungmann, the current Capella developer, published a Python script CapToMusic to directly convert CapXML files to MusicXML files. This might serve as an example or inspiration for the MuseScore developers.

Find the script in the ZIP archive CapToMusic.ZIP with a documentation in English and German here:
http://bjungmann.privat.t-online.de/CapXMLSkripte.htm
Scroll down to item 6, CapToMusic

And why not install Parallels or some other Windows-Emulator or a virtual machine on those Macs, just to install the Capella Reader in there, and drop Musescore alltogether? That would be the best solution, because then the printed scores would really look the same for all.

I laid out my spedific motivations for this improvement of MuseScore, and I have no further interest in Musescore beyond that. But I am convinced that the implementation of CapXML-Import would help the Musescore users by giving them access to published sheet music, e.g. from Musicalion or to share electronic sheet music in similar situations as mine.

So giving advice on how to fix my problem without improving Musescore is not really helpful. Your proposal would require double work (exporting MusicXML files) for just 2 or 3 people, would require to bloat the emails sent around with those huge MusicXML files or sent separate eMails to the few Mac-users. ZIPping the huge MusicXML files is again an addional step in the workflow, and do not know how easy it is for Mac users to unpack the ZIP archive. Some of them are not really computer savvy. And I tried what you suggest, and found that the score looks awful in Musescore. There is already enough special treatment for the 3 or 4 members who do not have a computer at all. Everything has to be as simple as possible.

So please do not search for solutions for my situation, but think about the positive side for Musescore users, when Muscescore does not stop supporting the import of Capella files, which effectively occurs when providing import of the old binary format, but not of the current formats.

Would Musescore be able to open an MXL directly without the intermediate step of uncompressing it first to XML?

Any way. for the producer of the Capella formatted sheet music, it is the same additional step just like ZIPping the XML file. It seems, after browsing thru http://www.musicxml.com/tutorial/compressed-mxl-files/ that an MXL file needs some more complexity than simply renaming a ZIPped XML file to SomeScore.MXL from SomeScore.XML.

BTW, if MusicXML would be the way to go, then MuseScore is more or less no longer part of the solution for my problems. It could be any other score writer or score reader. It could also be Finale Notepad.

Implementing CAPX import gives Musescore a unique advantage of being the only other scorewriter which can import all Capella files, not only the old binary CAP format but also the current open CapXML, and thus giving its users the ability to use the thousands of Capella formatted scores available for free download on the Web (or for a modest subscription fee as from www.musicalion.com )

Yes, MuseScore opens standard compressed MusicXML files just fine without needing to uncompress first.

If it's really just about importing a file then printing it immediately - if you have no desire to actually edit it in any way - then indeed, Finale Notepad would probably be just as good. But Finale Notepad's editing facilities are *extremely* limited. It's the ability to actually edit all aspects of a score that would be the reason to choose MuseScore. Not the question of whether MuseScore might or might not save a step (uncompressing a file) takes all of a second to do anyhow.

MuseScore can read and write mxl files.
When I produces scores for our choir, I put the mssz, pdf and mxl files on a website for the choir members to fetch. To produce the mxl and pfd files, I use the batch export plugin.
But yes, I too would appreciate a good and fully working Capela import, the current cap import is pretty limited, I have quite a few Capella file I can't import in any usefull form.

MuseScore supports both MusicXML and compress MusicXML (MXL). Indeed, MXL is not just a MusicMXML file zipped, it needs a manifest file and can contains several other files. Capella doesn't export compressed MusicXML?
MusicXML is supported by over 150 software packages, so indeed it will let the choice to the users and that's great!

Among the scorewriters you mentioned, MuseScore is the only one open source. You can see the source code of MuseScore here https://github.com/musescore/MuseScore If you have the skill you can implement the import yourself. If not, someone from the developer community will have to be convinced that it's important enough to spend some time on it.

MuseScore can read and write mxl files.
When I produce scores for our choir, I put the mssz, pdf and mxl files on a website for the choir members to fetch. To produce the mxl and pfd files, I use the batch export plugin.

A quick investigation of the on-line documentation shows that CapXML is probably less complicated than MusicXML (e.g. size of the CapXML schema is about one quarter of the size of the MusicXML schema). CapToMusic.py is about 4500 line of Python code, with little documentation.

I still expect that implementing a feature-complete CapXML importer will be a major effort. Even though I understand the reason for the request, I think it is far from easy to do. Furthermore, according to the Capella website, the full Capella version can export MusicXML. If that works well enough, why not use that ?

I said, don't get stuck with my problems, look at it from a wider MuseScore usability point of view.

Actually, the best for me (us) would be a port of the Capella Reader to Mac, Linux and Linux derivates (like Android and iOS). The user should not be bothered with the need to reformat the score. Editing is not needed at all. Printing the score is only one purpose, more important in my view is the ability to play the score, with means to select the staves and voices to play and to control the speed of the playing, so that the singers can learn and train at home. (BTW, I have also submitted a feature request to Capella for a port of the Reader to other operating systems).

One of the more computer savvy Mac users in our choir did use MuseScore importing the old CAP files, which gave me the idea that MuseScore should also be able to import the open CapXML scores.

Only a few people in "my" choir do prepare electronic notes, and those do use the full Capella (as me e.g.). For most of the others, a Reader is enough, or even already too much of a challenge.

If I recall correctly my test back some months with Musescore importing a MusicXML file produced by Capella, this did require editing, at least formatting of the score, which would result in various different printed layouts of the score, and would present unsurmountable challenges for some users. Not good...

Just in case you are interesting to know, there is a MuseScore player for Android (no mixer yet, but it's on the roadmap) and work for a one on iOS has already started. If you want to be mailed when it's released you can let your email here http://musescore.com/ipad MuseScore is already available on Mac, Windows and Linux.
Switching your editing to MuseScore could solve all your issues at once! I understand that importing CapXML files would be yet another argument to do this switch.

"If I recall correctly my test back some months with Musescore importing a MusicXML file produced by Capella, this did require editing, at least formatting of the score, which would result in various different printed layouts of the score, and would present unsurmountable challenges for some users."

It would be no different for importing CapXML files directly into MuseScore if that were possible. Each notation software has their own font properties, engraving rules, etc which means you can't expect to transfer files without having to do a layouting audit. So transferring sheet music from one software package will never be painless.

On further investigation, it seems that the Capella XML file format is a rather straightforward XML serialization of the binary format. Thus it may be possible to build a .capx importer with limited effort, provided that only the features already present in the binary format are supported.

An initial, incomplete, implementation of CapXML import is available in pull request 296 (https://github.com/musescore/MuseScore/pull/296). Note that it currently ONLY reads systems, clefs, time and key signatures and notes from CapXML version 1.0 files. All other information in the file is ignored.

Test results and bug reports are welcome, especially if note values or system or measure layout are incorrect.

Please don't complain about the missing features, as I am aware of those.

In reply to #19: I checked the notensatz forum, but the only information seems to be "it crashes". I need more information to find and fix issues: links to failing files, operating system used, musescore version, does loading the .cap file work etc. Note that I am willing to put in the work required to make this work well, but not to waste time second-guessing incomplete bug reports.

In reply to #20: both files work OK for me, see attached screenshots (which also show the limitations mentioned in #18). Note that I am running a completely unmodified trunk as of half an hour ago, on openSUSE 12.3. Could you provide more information ?

I'm not sure what you mean, but if you have the intention of adding a "loading..." message with a progress bar, I'm all for that! Most of the medium to large files can take a long time to show anything and it appears like MS has hung.

As of commit 85680d, .capx import should be feature complete compared to the existing .cap import. I still appreciate testing and bug reports. I expect the reported crashes to be caused by the "score starts with repeat" issue, which has been fixed, both for cap and capx.

After comparing the import result of a few .cap and equivalent .capx files downloaded from hausmusik.ch, I made a few more small adjustments to the .capx importer. Once pull request #328 has been merged, import of .cap and .capx should have the same result in MuseScore. If not, I'd like to know. For the time being, I consider the capx import done.