Noteworthy Composer files support

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Noteworthy Composer files support

Éloi Rivard-2
Hi,
I (maybe) would like to work on the nwc files support. I just want to check with the upstream if it is OK, and if anyone is already working on it. I just found an old post about nwc2xml. Actually I think it would be a good idea to reuse the reverse engineering part of nwc2xml to make musescore support nwc files.
So, what do you think ?

Éloi Rivard

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Noteworthy Composer files support

lasconic
Administrator
Hi,

I'm the author of http://nwc2musicxml.appspot.com an open source nwctxt to MusicXML converter and one of the core committer of MuseScore. I also manage http://abc2xml.appspot.com/ and the abc import plugin of MuseScore.
 
To me, it always make more sense to create convertors to MusicXML and improve the MusicXML import in MuseScore instead of creating an importer in MuseScore... If the language of the converter is web friendly, setting up a simple webservice with an API enables a very easy deployment and iterations. Also a plugin for MuseScore can be use for the import.

Obviously other people disagree and that why we have Capella, Overture and Guitar Pro import in MuseScore. I have to agree that it's also a lot more user friendly. Unfortunately, none of these importers are perfect and improving them requires quite some knowledge of MuseScore internals so it's less easy to contribute compared to a simple XXX2XML converter...

Two things to note:

1/ https://forum.noteworthycomposer.com/?topic=9281.0 Noteworthy forked my code and it could be they are working on a native MusicXML export. It's probably a good idea to ask them before any effort?

2/ NWC2XML is indeed a good start. I actually started a reverse engineering effort based on it but it's really the very start ... https://github.com/lasconic/nwc2musicxml/blob/master/src/fr/lasconic/nwc2musicxml/model2/NWCFile.java 
Also I believe Music21 also have a nwc importer based on NWC2XML http://web.mit.edu/music21/doc/moduleReference/moduleNoteworthyBinaryTranslate.html


lasconic

2016-01-10 20:42 GMT+01:00 Éloi Rivard <[hidden email]>:
Hi,
I (maybe) would like to work on the nwc files support. I just want to check with the upstream if it is OK, and if anyone is already working on it. I just found an old post about nwc2xml. Actually I think it would be a good idea to reuse the reverse engineering part of nwc2xml to make musescore support nwc files.
So, what do you think ?

Éloi Rivard

------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer



------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Noteworthy Composer files support

Éloi Rivard
I am digging up this thread.

What you say about improving MusicXML support makes sense.
Have you considered moving the score file format stuffs in an external library? I am talking about a library that would deal with the file opening (and saving?), and expose some MusicXML based data structures representing the score.
There would be several benefits:
- There would be only one way for Musescore to deal with score files.
- Such a libray could be used by other projects, and that would improve contributions.
- Musescore would remain user-friendly while hopefully supporting more and more scores format types.

If the idea interests you, I would gladly volunteer to work on this. i.e. moving the Capella, Overture and GP related code to an external library, and working on a clean and reusable interface.

What do you think?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Noteworthy Composer files support

Jojo-Schmitz
I believe that has been done already, by splitting thins between the
libmscore and mscore directories in the MuseScore source tree. AFAIK
'clients' for this are the iOS and Android player/songbook apps and the
musescore.com website

-----Original Message-----
From: azmeuk [mailto:[hidden email]]
Sent: Tuesday, December 20, 2016 5:26 PM
To: [hidden email]
Subject: Re: [Mscore-developer] Noteworthy Composer files support

I am digging up this thread.

What you say about improving MusicXML support makes sense.
Have you considered moving the score file format stuffs in an external
library? I am talking about a library that would deal with the file opening
(and saving?), and expose some MusicXML based data structures representing
the score.
There would be several benefits:
- There would be only one way for Musescore to deal with score files.
- Such a libray could be used by other projects, and that would improve
contributions.
- Musescore would remain user-friendly while hopefully supporting more and
more scores format types.

If the idea interests you, I would gladly volunteer to work on this. i.e.
moving the Capella, Overture and GP related code to an external library, and
working on a clean and reusable interface.

What do you think?



--
View this message in context:
http://dev-list.musescore.org/Noteworthy-Composer-files-support-tp7579582p75
80074.html
Sent from the MuseScore Developer mailing list archive at Nabble.com.

----------------------------------------------------------------------------
--
Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon
Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer


------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Noteworthy Composer files support

lasconic
Administrator
In reply to this post by Éloi Rivard
Hi,

I'm not sure I entirely follow you.
Capella and overture support is currently a single file (ove.cpp, cap(x).cpp). It's more or less the same for GP. We could move these files each one in its own library but there is not much value to it I believe.

Regarding the clean and reusable interface, it's more or less what we already have. I called it "MuseScore internals" in my previous email because this interface is a direct line to the MuseScore internal model. Unfortunately, for this very reason, this interface is not very stable. If we change something in the inner model, for a new feature or an optimisation, the interface changes too. We could fix the interface but that would reduce our speed to innovate.

MusicXML is the perfect way to solve this problem. It provides a relatively stable model and a converter just need to fill it. Of course, it means MuseScore needs to have a great MusicXML importer, but I hope it does :)

In any case, take a look to the code and if you see room for improvements, please contribute!

lasconic



------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Noteworthy Composer files support

Éloi Rivard
Ok I think I understand a bit more how things are organized. Correct me if I am wrong:
- You want to minimize the dependencies between importers, and the Musescore model, i.e. libmscore. The main benefit is that you keep flexibility to change things without bothering of what it might break. The main drawback is that there is a further step for importing other filetypes, that is converting it into MusicXML.
- There are GuitarPro, Capella and other file formats importers because they are historical, and light enough to be kept.

I have an unrelated question. Is there some data loss when saving to MusicXML instead of .mscz ? I imagine there is, or else .mscz would not be necessary.


Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Noteworthy Composer files support

lasconic
Administrator

- You want to minimize the dependencies between importers, and the Musescore
model, i.e. libmscore. The main benefit is that you keep flexibility to
change things without bothering of what it might break. The main drawback is
that there is a further step for importing other filetypes, that is
converting it into MusicXML.

More or less. We are flexible in the way we change the model. However, with time, we need to provide compatibility with the former MuseScore format and need to change every single importer. Fortunately we have some regression tests but never enough.
 
- There are GuitarPro, Capella and other file formats importers because they
are historical, and light enough to be kept.

Mainly because they are historical, and a developer once implemented it with a good regression suite. Still they are a burden to maintain, and we might kill some in the future if no other developers keep on supporting them.
 
I have an unrelated question. Is there some data loss when saving to
MusicXML instead of .mscz ? I imagine there is, or else .mscz would not be
necessary.

Yes, there is. MusicXML is designed to be an interchange format. MuseScore format is designed to provide features to MuseScore users. Sometimes there is no one to one mapping between the features, or the features are implemented differently. Also, MuseScore doesn't store much layout information into its format because it can recompute everything when loading the file. MusicXML can host position information but in practice many MusicXML importers don't bother reading or obey them MuseScore doesn't care about the measure width of a MusicXML measure for example, it will read the notes, rests etc... and give the measure a width according to its layout algorithm.

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Noteworthy Composer files support

Éloi Rivard
The library I was thinking of could be useful here.

It would provide a data model close to MusicXML (because as you say, it is an interchange format), and several importers (and why not exporters) to other file formats (gp, capella, etc.).
Instead of actually loading MusicXML files, Musescore could rely upon the data model provided by the library to load non-musescore file formats.

The library would imply a bit of work. It would be needed to rewire Musescore to the library, and develop importers for this intermediate data model instead of the Musescore one.

I am aware that in the end, it would be kicking up into something that currently work, to benefit things that are not needed in a short term. Still, I am quite interested in the topic. If such a library existed, would you be use it in Musescore?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Noteworthy Composer files support

lasconic
Administrator

The library would imply a bit of work.

This sounds like an understatement :)
In theory, it sounds like a good idea, but in practice, I'm not sure it would make the whole process easier, but sure, give it a try!

lasconic  

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
Mscore-developer mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/mscore-developer
Loading...