Hallo Christa,
ich war gerade dabei einen neuen Thread zu eröffnen, um das Thema zu behandeln, als ich diesen bemerkte.
Es gibt zwar schon einen im Umfang riesigen Thread zum Thema, er befindet sich aber in der Abteilung
Mac OS X und ist schon etwas älter und scheint auch anders gelagert zu sein.
Die relevante Dokumentation ist
hier zu finden, dt. Übersetzung
hier.
Wobei man sagen muß, daß a) die dt. Übersetzung nicht immer auf dem neuesten Stand ist und b) die interne Verlinkung immer auf das engl. Original zurückführt
Um hier besser arbeiten zu können kann man auch die big-page-Datei benutzen.
Zum eigentlichen Thema:Im Prinzip ist
convert-ly gut dokumentiert. Im folgenden ein paar Anmerkungen zum Gebrauch.
Als Beispiel habe ich ein file kreiert mit
\version "2.10.1"
\relative c'' { c1 }und es
simple.ly genannt.
convert-ly ist ein Kommandozeilenbefehl genau wie
lilypond selbst. Insofern beziehen sich alle nachfolgenden Bemerkungen auf die Benutzung im Terminal. Wie das mit Frescobaldi und anderen Programmen zur erleichterten Eingabe funktioniert weiß ich allerdings nicht.
Die LilyPond-Version die im folgenden benutzt wird ist "2.17.20"
1)
"Der richtige Ort"Um
convert-ly auf
simple.ly anzuwenden, navigiere man dorthin, wo sich das file befindet.
Das ist natürlich eine Selbstverständlichkeit, aber ich habe mich selbst schon vertan. Um sicher zu gehen am richtigen Ort zu sein kann man ja einfach mal das file kompilieren mit
lilypond simple.ly2)
Das file "upgraden"Dies ist natürlich das, was man meistens haben möchte.
Wichtig: Das zu konvertierende file muß die alte Versionsangabe haben.
Sonst "denkt" convert-ly: "Ist ja schon auf der neuen Version, ich mach mal gar nichts."Um das file auf die aktuel installierte/benutzte Version zu konvertieren lautet der Befehl
convert-ly -e simple.lyErgebnis:
Das file
simple.ly wird editiert indem
- die Versionsangabe geändert wird und
- jeder Code für den es eine neuere Fassung und eine Konvertierungsregel gibt wird umgeschrieben.
- falls eine Konvertierung nicht möglich ist erscheint meistens eine Warnung.
not smart enough to ...
Das passiert, wenn von einer alten Version zu einer neuen hin die Unterschiede so groß sind, daß keine Konvertierungsregel geschrieben werden konnte und das Problem bekannt war.
Dann hilft nur manuelles upgraden.
Manchmal existiert aber auch keine Konvertierungsregel (z.B. für scheme-code), dann muß man sowieso per Hand ran.
(Das wird noch ein Problem beim nächsten LSR-upgrade, wegen der Veränderung bzgl. 'EventChord. Ist aber schon ein anderes Thema.)
3)
"Nur schauen"Weglassen der Option:
-eWie man oben schon sah, steht im Konvertierungsbefehl
-e.
Das bedeutet: Editiere das file. Das file wird also physisch verändert.
Wenn man das wegläßt, so kann man den neuen Code erstmal im Terminal begutachten, ohne das alte file zu verändern.
convert-ly simple.ly gibt im Terminal dann folgendes aus:
convert-ly (GNU LilyPond) 2.17.20
convert-ly: Processing `simple.ly'...
Applying conversion: 2.11.2, 2.11.3, 2.11.5, 2.11.6, 2.11.10, 2.11.11, 2.11.13, 2.11.15, 2.11.23, 2.11.35, 2.11.38, 2.11.46, 2.11.48, 2.11.50, 2.11.51, 2.11.52, 2.11.53, 2.11.55, 2.11.57, 2.11.60, 2.11.61, 2.11.62, 2.11.64, 2.12.0, 2.12.3, 2.13.0, 2.13.1, 2.13.4, 2.13.10, 2.13.16, 2.13.18, 2.13.20, 2.13.27, 2.13.29, 2.13.31, 2.13.36, 2.13.39, 2.13.40, 2.13.42, 2.13.44, 2.13.46, 2.13.48, 2.13.51, 2.14.0, 2.15.7, 2.15.9, 2.15.10, 2.15.16, 2.15.17, 2.15.18, 2.15.19, 2.15.20, 2.15.25, 2.15.32, 2.15.39, 2.15.40, 2.15.42, 2.15.43, 2.16.0, 2.17.0, 2.17.4, 2.17.5, 2.17.6, 2.17.11, 2.17.15, 2.17.18, 2.17.19
\version "2.17.19"
\relative c'' { c1 }
Das kann manchmal ganz praktisch sein.
3)
"Das alte file behalten"Option:
simple.ly > simple-new.lyWenn man das file mit der alten Version behalten möchte, aber ein neues, konvertiertes zusätzlich haben will kann man folgendes benutzen.
convert-ly simple.ly > simple-new.lyErgebnis:
- Das alte simple.ly bleibt unverändert.
- Ein neues file simple-new.ly wird geschaffen, welches den neuen Code beinhaltet.
4)
"Bis zu einer bestimmten Version"Option:
--to=to-patchlevelFalls man nur bis zu einer bestimmten Version konvertieren möchte, z.B. man benutzt "2.17.20" aber möchte nur bis "2.16.2" konvertieren, dann geht das so:
convert-ly -e --to=2.16.2 simple.lyoder in Kurzschreibweise:
convert-ly -e -t2.16.2 simple.lyDiese Option ist gelegentlich sinnvoll, da Konvertierungsregeln für neue Syntax manchmal verspätet implementiert werden.
Weitere Optionen kann man obigem link folgend nachlesen.
HTH,
Harm