13

Is there any reliable program to convert a fully-fledge piece in Lilypond format to MusicXML, such that Sibelius can read the original Lilypond notation?

Basically, I need to edit a score which is written in Lilypond, but cannot import it in Sibelius. Frescobaldi is not an option, need graphical editing (I'm unfamiliar with the Lilypond notation).

Update: Frescobaldi 2.0.13 has an option to export as MusicXML, which has dissapeared in higher versions, but it fails to export the score I'm using.

4
  • 1
    Note that there is another standard for a UI markup language owned by Adobe called "MXML", so to prevent confusion some people refer to the free licensed music format owned by MakeMusic as "MusicXML". Feb 27, 2016 at 14:07
  • 2
    @ToddWilcox, MusicXML isn't "owned" per se by MakeMusic any longer. Beginning last year, they are transitioning it over to "open-source" management and further development by the World Wide Web Consortium (W3C). w3.org/community/music-notation
    – user1044
    Feb 27, 2016 at 19:48
  • 2
    MusicXML is a "rosetta stone" that can be used to get a score document created in one music scoring program translated and ported into another different program. There are dozens of programs that can read and write MusicXML. However, Lilypond stands alone in that it cannot output MusicXML. While Lilypond undoubtedly produces excellent music scores, this is the reason that I've never used it. When you create an elaborate score in Lilypond, it's a dead-end. You can't port the document to any other platform. I do all my work in Sibelius and Finale and I can use MusicXML to go between the two.
    – user1044
    Feb 29, 2016 at 3:36
  • 4
    @user1044 Except that since LilyPond's native syntax is an easy-to-understand text format, it's actually not a dead end. The native formats of Sibelius and Finale, OTOH, are proprietary binary formats, and are dead ends except to the extent that MusicXML export works. Now, I absolutely think that LilyPond should export MusicXML. But calling it a dead end because it doesn't is not accurate in this case. Apr 11, 2018 at 17:06

4 Answers 4

6

Your goal is to get from Lilypond to Sibelius. MusicXML is an intermediary step.

I have had success by using an elaborate (and expensive) workaround: Take PDF scores created by Lilypond, or any other engraving program, and run them through music optical character recognition (OCR) using the commercial program Neuratron PhotoScore Ultimate. The output from PhotoScore is then sent to Sibelius, where you can edit it further.

PhotoScore Ultimate costs US $250.

(PhotoScore can output MusicXML, and Sibelius can input and output MusicXML, but with PhotoScore you can output directly to Sibelius, which works better. In this workflow, MusicXML is an optional extra step.)

The PhotoScore process is never perfect, and anything done with PhotoScore will require careful editing to correct inaccuracies in reading the images. One needs to develop some skill in using the process, finding the errors, and correcting them. I have been doing this for years and I am good at it. But first-time users of PhotoScore tend to be disappointed because they have unreasonable expectations about how it works.

I say it is worth a try. But it costs money, and it will only be worth your while if you have a lot of scores to convert on a regular basis.

Update

Sibelius comes bundled with a "lite" version of PhotoScore which is limited in its capabilities and can only scan simple scores. But you can try it out on what you have and see if you can get the hang of it. Then you can buy PhotoScore Ultimate for US $250 if you think it is worth it.

PhotoScore can use OCR to scan any printed paper score which has been put on a scanner and made into a bitmapped PDF (with variable results depending on the quality of the engraving and the quality of the scanned image). It can also work with a PDF which was generated directly from a music scoring program without going through paper and scanning (often with very good results).

There is a competing product called PDFtoMusic Pro made by Myriad Software which can only handle the latter case -- a PDF made directly from a music scoring program without going through paper and scanning. It cannot process bitmaps. Its output is MusicXML, and it has no features integrating it with Sibelius per se. I have owned PDFtoMusicPro for several years, through several updates, and I must say that it has always been inferior to PhotoScore Ultimate. PDFtoMusic Pro does a very poor job at what it is designed to do, and produces a great deal of errors and baffling glitches. I have never found a single score that PDFtoMusic Pro could handle anywhere near as well as PhotoScore could. I would not waste my time with PDFtoMusic Pro if I were you. I regret having paid US $200 for it.

1
  • While I agree with @welch that going via OCR is a very heavy-handed way of doing it, a friend has told me that ScoreMuse does a good job if you can afford it. But if you can afford Sibelius....
    – Peter
    Oct 7, 2021 at 10:21
22

from a terminal on your mac or linux box: pip install python-ly ly musicxml myscore.ly > myscore.musicxml

more information on ly: http://python-ly.readthedocs.io/en/latest/command.html#commands

When I read that the state of the art workflow for this involves rendering your score to PDF and then scanning back in with music OCR, I kind of blew milk out my nose.

2
  • According to the documentation this is "in development, far from complete" and may only work for simple lilypond files. It totally fails with complex scores and also the conversion of simple scores does not necessarily lead to usable results. Maybe a solution is to put single voices into a simple lilypond score and copy this parts to the target program. May 1, 2020 at 14:11
  • For simple scores this method works. Alternatively you can export to midi (from lilypond or frescobaldi) and direcly import the midi file into musescore and then export to musicxml Jun 5, 2020 at 13:35
6

At the current point of time, the answer boils down to "no" for practical purposes. Try going via Midi instead.

Unfamiliarity with the LilyPond notation, particularly if you already have access to a score for modification, can be cured by looking in the manual. Graphical editors don't magically teach you everything either.

There is the note editor Denemo which uses LilyPond as its typesetting backend but I have no clue how much of a chance you'd have actually importing existing LilyPond source: LilyPond output and input are two different things.

5
  • MIDI discards most of the expressiveness in the original score, not really an option. Graphical editors are way easier to use for musicians, you understand what's going on.
    – nightcod3r
    Feb 27, 2016 at 15:03
  • There is unlikely to be any useful information in the LilyPond input file which doesn't appear on the output score - Lilypond playback is (by design) rudimentary. So for practical purposes, you are starting from a PDF of the score, not from the LilyPond input. Siblelius comes with a "lite" version of PhotoScore which will scan from the PDF, so you don't need MusicXML at all. Since you can easily get a PDF from LilyPond, myriad-online.com/en/products/pdftomusicpro.htm will probably work better than PhotoScore, and is cheaper!
    – user19146
    Feb 28, 2016 at 6:15
  • 1
    @alephzero, No! I own both PDFtoMusicPro and the full version of PhotoScore. PDFtoMusicPro is a very poor quality product that produces lousy results and I regret having purchased it. PhotoScore is a much more capable product.
    – user1044
    Feb 29, 2016 at 2:59
  • @WheatWilliams I don't question your personal experience with PDFtoMusicPro, but there are several people on the Sibelius forum who claim it is more accurate than PhotoScore, provided the PDF was created direct from a notation program - i.e. the PDF is not just a set of raster-scanned page images. But PhotoScore does seem to have improved dramatically over the latest one or two releases. Maybe it has now caught up.
    – user19146
    Feb 29, 2016 at 4:33
  • @alephzero, this is not my experience. I have owned PDFtoMusic Pro for five years and it has been useless to me from the start. I have tried many scores with it as each new update came out. I always get errors and glitches that are so severe that it would have taken me less time to simply type the score into Sibelius from scratch. I have owned PhotoScore Ultimate for seven years and it has always worked better than PDFtoMusic Pro.
    – user1044
    Feb 29, 2016 at 4:43
3

There is a better option now available for this (June 2021). The steps are as follows:

\include "oll-core/package.ily"
\loadPackage lilypond-export

opts.exporter = #exportMusicXML
  • Update the \layout command to be like so:
    \layout{
            \FileExport #opts
    }

Now when running the file through Lilypond it should also produce a .xml file. I find the results to be better than the output from python-ly.

The developer of this plugin has some discussion about the challenges of allowing MusicXML export here:

9
  • Does anyone know how this is progressing? The GitHub files don't seem to have been updated since last year.
    – Peter
    Sep 30, 2021 at 9:57
  • It doesn't seem to work for me using LilyPond 2.22.1 - I get an error: D:/Peter/Music/Lilypond/Toye/Silly/SillyS1.ly:228:5: error: not a context mod \FileExport #opts
    – Peter
    Oct 1, 2021 at 11:35
  • I've added an example file here gist.github.com/xavriley/ec343c01eb2dd88de7982b85d265d673 which was working for me on 16th June 2021. @Peter can you double check that your file matches the structure in that example?
    – xavriley
    Oct 1, 2021 at 14:36
  • Thanks @xavriley. I found that I'd put the \FileExport inside a Score context in the layout block. I moved it outside but now get a different error message: init exportMusicXML: "SillyS1.xml" init Staff 1 init Voice 1/soprano (1)D:/Peter/PC/Lilypond/OpenLilylib/lilypond-export/api.scm:278:48: In expression (ly:grob-properties grob): D:/Peter/PC/Lilypond/OpenLilylib/lilypond-export/api.scm:278:48: Unbound variable: ly:grob-properties I'll work out a small example and report back.
    – Peter
    Oct 1, 2021 at 15:03
  • I've now got a tiny example and can't see any difference in layout between it and yours. <br/>\version "2.22.1" \language "english" \include "oll-core/package.ily" \loadPackage lilypond-export opts.exporter = #exportMusicXML \score { \new Staff \new Voice { c'4 4 4 4 } } \layout { \FileExport #opts }
    – Peter
    Oct 1, 2021 at 15:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.