Menu

#665 Request: MusicXML backend

Accepted
nobody
Enhancement
2018-10-16
2008-08-21
Anonymous
No

Originally created by: *anonymous

Originally created by: v.villenave

This feature has been proposed by Reinhold Kainhofer on -devel:
http://lists.gnu.org/archive/html/lilypond-devel/2008-06/msg00129.html

More recently, an user shared his experience on -user:
http://lists.gnu.org/archive/html/lilypond-user/2008-08/msg00838.html

Some highlights:

Han-Wen: "The last time we looked at this, I think the resolution was to
dump a music stream from LilyPond and postprocess that."

Reinhold: "unfortunately, the stream does only contain the musical content
in time-sorted order. MusicXML, however, also contains (or rather, can
contain) full information about page layout, breaks, object positioning and
similar settings [...] Since Lilypond produces a layout that is far
superior, I'd also like to include that information in
the xml files..."

Han-Wen: "you would probably have to use some sort of dual approach, where
you store the stream, label each event, and then you trace back the grobs
during output stage to their originating events. You can use the ordering
from the stream to output the XML elements in the correct order."

Discussion

  • Google Importer

    Google Importer - 2008-08-24

    Originally posted by: v.villenave

    Since we have more requests about it, I'm accepting it and slightly bumping the prio.

    Labels: -Priority-Postponed Priority-Medium
    Status: Accepted

     
  • Google Importer

    Google Importer - 2008-09-20

    Originally posted by: hanw...@gmail.com

    Please don't bump priority based on number of requests.

    Labels: -Priority-Medium -Usability Priority-Postponed

     
  • Google Importer

    Google Importer - 2008-11-20

    Originally posted by: v.villenave

    Jonathan Kulp has offered a $100 bounty on -devel.

    Labels: Bounty

     
  • Google Importer

    Google Importer - 2008-11-20

    Originally posted by: v.villenave

    I'll happily make it 200, by the way.

     
  • Google Importer

    Google Importer - 2008-11-22

    Originally posted by: v.villenave

    New comment from Ralph Little:
    http://lists.gnu.org/archive/html/lilypond-devel/2008-11/msg00293.html

    "I have been approached by a programmer who is interested in helping me with my efforts to produce braille output by going the XML approach.[...]

    Currently, using Erik's interface method, structure could be exported in a fairly straightforward manner, but positional information from Lilypond's layout engine would be much harder to extract. For the purposes of what we require [for braille conversion], the layout information is not really required. Therefore, we propose to just extract the structure and leave the positional information for a later time. I think the back-end implementation would be largely the same anyway.

    We propose to link to the LGPL MusicXML library if there are no objections:
    http://libmusicxml.sourceforge.net

    This library is pretty mature and covers all the bases I think."

     

    Last edit: Simon Albrecht 2015-09-27
  • Google Importer

    Google Importer - 2009-03-02

    Originally posted by: v.villenave

    New comment from Hu Haipeng:

    The best way for you all is, to make a MusicXml backend. This feature has the following three advantages, two of which can't be approached by making a much terrible and hopeless (complicated, because the ones who know braille don't know programming, while the ones who program don't know braille!) braille backend:

    1. Musicxml can be accepted by most [free and non-free] notation programs.
    2. LilyPond just focuses on music typesetting, its midi output is really not ideal. Every time I give my music to a composer, he/she will complain about the bad balance, suspecting my orchestration technique. Using Sibelius or Finale's VST plugin can get good sound output, including legato, staccato, glissando and smooth dynamic changes.
    3. It is a very important thing for the composer to hear what he/she have written. The more it's real, the better scoring result he/she can approach.
    4. It's a good thing to view our own compositions with braille. Ly2brl is extremely difficult, and we have to begin from 0. Why don't we borrow other's fruits?

    I use the BrailleMuse web-application, that is the most powerful musicxml2braille program now. I have helped this Japanese project to improve their program for nearly a year, and now, most of the musicxml files less than 20M can be processed. The only limitation is no lyrics (english version, but the Japanese one can only output Japanese texts), and the output is Ascii, which I like very much. You can adjust several formattings to fit your paper, change many settings to fit your preference.

    http://gotoh-lab.jks.ynu.ac.jp/braille_music_score_english/e-top-new.html#Service%20condition

     

    Last edit: Simon Albrecht 2015-09-27
  • Google Importer

    Google Importer - 2009-03-25

    Originally posted by: v.villenave

    Yet some unexpected news from Hu Haipeng: apparently, the professor who's in charge of BrailleMuse has gone missing lately, and since it's an online tool the source files cannot be fetched.
    However, the FreeDots project [1], that is fully Free Software, now has support for both ASCII and unicode output, and seems to be evolving fast.

    (Of course, that doesn't solve our need of a MusicXML output for LilyPond though.)

    [1] http://delysid.org/freedots.html

     

    Last edit: Simon Albrecht 2015-09-27
  • Google Importer

    Google Importer - 2009-04-10

    Originally posted by: Hopkin...@ldschurch.org

    My organization is looking at possibly using LilyPond, especially for its nice music typesetting and Unicode text support. However, we would absolutely need it to not only import MusicXML, but to export it as well. The reason for this is that we want to export the music and Unicode lyric text, etc. to a Web music product called Music Player by musicRAIN (see http://musicrain.com/) and http://www.lds.org/churchmusic).

     

    Last edit: Simon Albrecht 2015-09-27
  • Google Importer

    Google Importer - 2010-02-18

    Originally posted by: brownian.box@gmail.com

    I'll happily make it 300, by the way.

    Here in Kyiv, Ukraine is preferable option though, but others are possible, i hope.

     
  • Google Importer

    Google Importer - 2010-02-18

    Originally posted by: reinhold...@gmail.com

    There have been some discussions on lilypond-devel and lilypond-user. Here is a short excerpt from one of my mails, outlining how such a MusicXML backend could/would be implemented:

    The only problem is that the lilypond structure is not ideally suited for full MusicXML 2.0 export: All other graphical output formats (eps, ps, pdf, png, svg) simply export some graphical objects with a fixed position on a page, so at that stage the musical information is no longer available, so MusicXML export has to hook in earlier.

    The pure musical structure can probably be easily extracted from the music stream (e.g. by an engraver, listening to  all kinds of events), but at that stage the page layout has not been done, so the great layout of lilypond scores could not be exported directly.

    On the other hand, the final graphical objects don't have any link to the music object that caused them, so one would also have to add such a link to the grobs.

    The MusicXML export would then work in two stages in a lilypond run:
    1) In an engraver create the xml tree for the pure musical content
    2) at the same time, also listen to created graphical objects and add a pointer to the corresponding xml node
    3) After the layout is done, a MusicXML backend goes through the graphical object and exports all positioning information (most of which is new in MusicXML 2.0) to their linked xml nodes.

     

    Last edit: Simon Albrecht 2015-09-27
  • Google Importer

    Google Importer - 2010-02-18

    Originally posted by: v.villenave

    What about implementing the pure-music-stream export as a first step? Can't be (much)
    worse than our current MIDI export, can it?

    Labels: -Priority-Postponed Priority-Low musicxml
    Owner: ---

     
  • Google Importer

    Google Importer - 2011-01-01

    Originally posted by: rogerdp...@gmail.com

    $150 bounty from me.

     
  • Google Importer

    Google Importer - 2011-06-02

    Originally posted by: jan.nieuwenhuizen (code.google.com)

    You may want to look at input/regression/to-xml.ly and scm/to-xml.scm,
    some old and preliminary work there.

     
  • Google Importer

    Google Importer - 2011-06-04

    Originally posted by: kie...@alumni.rice.edu

    $100 here.

     
  • Google Importer

    Google Importer - 2011-07-21

    Originally posted by: lilyli...@googlemail.com

    Does anybody know whether the old bounty offers are still valid? If yes, they would by now up sum up to $600 (counting everything mentioned in this issue report). Add to it $50 from me.

    I would really like to have a structural MusicXML export.

    My 2cts to the discussion:

    • I think we all are convinced of the superiority of Lilypond's engraving output. Nevertheless there are situations where one may need Lilypond scores to be used with other programms. See comment #6 or this discussion on -user ("my" thread): http://lists.gnu.org/archive/html/lilypond-user/2010-06/msg00438.html
    • To offer an export option is nice behaviour, not to offer it may be regarded as arrogant. So having it could improve Lilypond's acceptance.
    • To have an at least semantically correct MusicXML file (instead of one with Lilyponds's layout information) would be plain better than not having it.
    • Many of the possible uses of such a file wouldn't even be interested in the superior layout information.

    So this is one more vote for this feature.

     

    Last edit: Simon Albrecht 2015-09-27
  • Paul Morris

    Paul Morris - 2018-10-16

    Jan-Peter Voigt has done some work on this. He wrote on the LilyPond developer mailing list on 2018/10/16:

    I wrote a rudimentary engraver-based solution last year which is
    waiting for clean-up and completion to support MEI, MusicXML, Humdrum,
    LilyPond (!) and any other format for which an export-module with a
    defined API exists.
    https://github.com/jpvoigt/lilypond-export/

    The code in the project is able to export a MusicXML-File for a simple
    lilypond-score. The resulting files are not always correct/functional so
    this is more sketch of the idea. The base is an engraver that fetches
    and collects events and on score-finalization calls the specified export
    module with this (normalized) music collection.
    The collection is some scheme-structure, but should probably be better a
    normal LilyPond music-expression.

    From this discussion thread: https://lists.gnu.org/archive/html/lilypond-devel/2018-10/msg00068.html

     
MongoDB Logo MongoDB