The LilyPond input syntax is routinely changed to simplify it or improve it in different ways. As a side effect of this, the LilyPond interpreter often is no longer compatible with older input files. To remedy this, the program convert-ly can be used to deal with most of the syntax changes between LilyPond versions.
It uses \version
statements in the input files to detect the old
version number. In most cases, to upgrade your input file it is sufficient
to run
covert-ly -e myfile.ly
If there are no changes to myfile.ly and file called myfile.ly.NEW is created, then myfile.ly is already updated.
To upgrade LilyPond fragments in texinfo files, use
convert-ly --from=... --to=... --no-version *.itely
In general, the program is invoked as follows:
convert-ly [option]... file...
The following options can be given:
-e,--edit
--output
.
-f,--from=
from-patchlevel\version
strings in the file.
-o,--output=
file-n,--no-version
\version
indicator
to the output. Specifying this option suppresses this.
-s, --show-rules
--to=
to-patchlevel-h, --help
convert-ly always converts up to the last syntax change handled by
it. This means that the \version
number left in the file is
usually lower than the version of convert-ly itself.
Not all language changes are handled. Only one output option can be specified.
There are a few things that the convert-ly cannot handle. Here's a list of limitations that the community has complained about. This bug report structure has been chosen because convert-ly has a structure that doesn't allow to smoothly implement all needed changes. Thus this is just a wishlist, placed here for reference. 1.6->2.0: Doesn't always convert figured bass correctly, specifically things like {< >}. Mats' comment on working around this: To be able to run convert-ly on it, I first replaced all occurencies of '{<' to some dummy like '{#' and similarly I replaced '>}' with '&}'. After the conversion, I could then change back from '{ #' to '{ <' and from '& }' to '> }'. Doesn't convert all text markup correctly. Only very simple cases are fixed. 2.0->2.2: Doesn't handle \partcombine Doesn't do \addlyrics => \lyricsto, this breaks some scores with multiple stanzas. 2.2->2.4: \turnOff (used in \set Staff.VoltaBracket = \turnOff) is not properly converted.
This page is for LilyPond-2.5.11 (development-branch).