Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: chf am Samstag, 15. Juni 2013, 13:12
-
noch eins -
Kann mit jemand die nötigen Schritte für convert-ly von den lilypond-Einstellungen bis zur Ausführung nochmal auflisten?
Ich erhalte bei jedemn Anpassungsversuch die Mitteilung, die Datei sei schon auf dem neuesten Stand. Es gibt aber keine Änderungen...
Verstehe ich wieder was falsch?
Christa
-
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 (https://liarchiv.joonet.de/index.php?topic=239.0) und ist schon etwas älter und scheint auch anders gelagert zu sein.
Die relevante Dokumentation ist hier (http://lilypond.org/doc/v2.17/Documentation/usage/updating-files-with-convert_002dly) zu finden, dt. Übersetzung hier (http://lilypond.org/doc/v2.17/Documentation/usage/updating-files-with-convert_002dly.de.html).
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.ly
2)
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.ly
Ergebnis:
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: -e
Wie 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.ly
Wenn 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.ly
Ergebnis:- 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-patchlevel
Falls 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.ly
oder in Kurzschreibweise:
convert-ly -e -t2.16.2 simple.ly
Diese 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
-
Danke, Harm!
Dann hat wohl meine Eigenschöpfung die Wandlung verhindert...
Christa