On 2015-01-20 07:40, Pavel Roskin wrote:
> Hello!
Hello Pavel! Thanks for your thoughts! I'll try to explain some of the
reasoning behind the Frescobaldi export below.
>
> I have always assumed that there is no easy way to transform Lilypond
> source to MusicXML. I was surprised to find "Export MusicXML"
> functionality in the Frescobaldi menu. I'm even more surprised that
> it's a part of Frescobaldi, not a separate utility.
>
> I think that code should be a separate utility and Frescobaldi should
> call it instead of using the internal code.
Agreed, there should be a separate ly2musicxml in analogy with the
music2xml utility. But given that there isn't, a Frescobaldi tool is
better than nothing. You could see it as something of a temporary
compromise.
Actually there's a start-up for the development of the separate utility.
You can find it here:
https://github.com/openlilylib/ly2xml
In addition the Frescobaldi exporter uses a totally different approach.
It's heavily integrated with ly.music which is built so that Frescobaldi
will have as much knowledge of the LilyPond source code as possible. It
creates a tree structure with information about the score. From this to
exporting the information as MusicXML the step is relatively small.
Overall I see no problem with Frescobaldi developing own solutions (also
an own importer could be a good idea I think). I think it's important to
have good tools for import and export to attract a wider user base. And
having alternative tools could be useful, especially given the
development activity of the stand-alone utilities.
>
> The reasons are:
>
> Visibility. A project with a separate name and separate homepage would
> be easier to find than a feature of Frescobaldi. Likewise, if
> Frescobaldi users try to export to MusicXML and get a message that the
> program is missing, they would know the name of the recommended
> program for Lilypond to MusicXML conversion. Better visibility means
> more contributors.
>
> Batch processing. A non-GUI program can be used to process multiple
> files automatically.
There actually is a non-GUI version of this as part of the ly module.
See
https://pypi.python.org/pypi/python-ly
>
> Testing. A separate program could have an extensive testsuite.
I document the testing here:
https://github.com/openlilylib/ly2xml/wiki/musicXML-export-in-Frescobaldi#performed-tests
(Should be updated shortly).
>
> Fine tuning. A separate program can have many switches that would be
> impractical to expose in GUI.
>
> Tool choice. A separate program can be written in a programming
> language more suitable for the task. It may use Guile or include parts
> of Lilypond.
>
Agreed! To simplify things the Frescobaldi exporter can only export
music in LilyPond syntax and not music created by Guile/Scheme code.
To sum up, I think you have shown that separate tools have greater
potential. And when this potential is reached or even approached the
development of the tools internal to Frescobaldi could be stopped, or
perhaps integrated.
Best
Peter