Die Lösung, die ich gefunden habe, hätte ich gern allgemeiner formuliert, aber dann hätte ich wohl bis Ostern daran gesessen. Nun ist sie erstmal speziell auf meine eigenen Bedürfnisse abgestimmt.
Ich weiß nicht, ob ich den gesamten Code hier einstellen soll. Ist doch ziemlich umfangreich geworden. Hier kann er eingesehen und runtergeladen werden:
https://github.com/XRoemer/Lilypond/tree/master/Custom_SlursDownload als zip:
https://github.com/XRoemer/LilypondIch habe den Code in mehrere Dateien unterteilt, damit man klarer sieht, wo sich welche Methoden befinden und (hoffentlich) eine schnellere Übersicht bekommt.
Gestartet wird das Beispiel von custom_slurs_example.ly.
Und der Einstiegspunkt für alle Methoden, die dort aufgerufen werden, ist in shape_slurs.ly . Von da aus verzweigen sich die weiteren Methoden.
Insgesamt ist es leider eine mehrschrittige und auch nicht besonders übersichtliche Programmierung geworden. Die Lilypond Datei wird 2 x gerendert.
Beim ersten Mal werden die Abstände ausgelesen und in einem Hash Table gespeichert.
Beim zweiten Durchlauf werden erst mittels Engraver Slurs, Noten und PaperColumns ausgelesen, annotiert und im Hash Table ht-columns gespeichert.
Dann werden die Phrasierungsbögen bearbeitet. Gleichzeitig läuft ein Zähler für die Zeilen mit.
Was mich noch ernsthaft stört, ist der verzweigte Code in der Startdatei. Ich hätte gern einen Befehl wie
\use-custom-slurs an einer einzigen Stelle in
custom_slurs_example.lyMomentan muss ich aber an mehreren Stellen was einsetzen. Bis zum Sommer, wenn ich es wirklich brauchen werde, habe ich es bestimmt wieder vergessen.
Im Anhang sind zwei Bilder: Einmal mit unbearbeiteten Bögen, einmal mit bearbeiteten.
In Frescobaldi darf man übrigens nicht vergessen, die Pdf Ansicht umzuschalten. Es wird ja 2x gerendert, automatisch zeigt aber Frescobaldi die erste unbearbeitete Version.
Gruß,
Xaver
P.S. Die Bögen gewinnen wohl noch keinen Schönheitswettbewerb. Ihre Endpunkte sitzen jetzt zwar an den richtigen Stellen, aber die Handles könnten besser eingestellt werden. Naja, Ostern ...