Hallo Bernhard,
vielen Dank für Deinen Code.
Zu Deinen Fragen
1. Warum kann die Voltaklammer nicht beendet werden?
Die Länge der Musik in den Klammern der einzelnen Stimmen ist nicht identisch.
Beispiel:
one = \repeat volta 2 { R1 } \alternative { { R1 } { R1 } }
two = \repeat volta 2 { s1 } \alternative { { s1 } { s2 } }
<< \one \\ \two >>
führt im Terminal zu:
warning: cannot end volta spanner
In diesem Beispiel ist das offensichtlich. Dein Code ist natürlich komplexer, da ist es nicht so leicht zu sehen ...
2. In der zweiten Klammer sitze die linke Hand auf einmal im G-Schlüssel und nicht im Bassschlüssel. Ich dachte die Schlüsselveränderung soll sich auf die Wiederholung auswirken, nicht aber auf die zweite Klammer.
So würde jeder Musiker denken. Aber LilyPond ist ein Computerprogram und liest strikt von links nach rechts.
So sehr ich LilyPond auch liebe: Computer sind blöd...
Tatsächlich mußt Du am Ende der ersten Klammer den Violinschlüssel setzen und am Anfang der zweiten Klammer den Bassschlüssel.
Aber erinnere Dich, Computer sind blöd, in diesem Fall so blöd, daß er dann meint der user hätte einen Fehler gemacht und zwei verschiedene Schlüssel zur selben Zeit gesetzt und um dem armen, kleinen user nicht weiter seine vermeintlichen Fehler vor Augen zu führen wird einfach ein Schlüssel unter den Teppich gekehrt und noch nicht mal eine Meldung dazu abgesetzt ...
Um hier weiter zu kommen muß der zweite Schlüssel zu einer anderen Zeit gesetzt werden.
Dazu kann man \grace s1 verwenden, jetzt kommen aber zwei neue Probleme ins Spiel einerseite issue 34 (ich brauch die Nummer gar nicht mehr nachzuschlagen) andererseits wird der Schlüssel tatsächlich gedruckt und zwar an einer Stelle wo man ihn sowieso nicht haben will.
Zumindest für das zweite Problem gibts die Möglichkeit den Druck zu unterbinden:
\repeat volta 2 { c''1 \clef bass cis }
\alternative {
{ d \clef treble }
{ \grace s1 \once \omit Staff.Clef \clef bass dis }
}
Damit ist issue 34 aber noch nicht gelöst (in diesem minimal kommt es allerdings nicht vor).
Wie man damit umgehen kann steht in der NR, such nach grace synchronization, iirc
Aber in Deiner Partitur kann man tatsächlich einfacher vorgehen:
in leftOne
\alternative {
{s4. \clef treble \stemDown <c'' as>8}
{ \once \omit Staff.Clef \clef bass s4 \clef treble <c b'>8 s}
funktioniert, imho.
3. In Takt 15 und 19 sind nochmal solche Stellen mit deänderten Melismata.
Dann verwende eine der Antworten aus diesem thread
https://liarchiv.joonet.de/index.php?topic=2398.04.Zum eigentlichen Thema des threads
Um offsetPositions verwenden zu können muß diese Definition
ins file. D.h.Dein file sollte so beginnen:
\version "2.19.49"
\language "deutsch"
offsetPositions =
#(define-music-function (parser location offsets) (pair?)
#{
\once \override Slur.positions = #(lambda (grob)
`(,(+ (car offsets) (cdar (ly:slur::calc-control-points grob))) .
,(+ (cdr offsets) (cdr (cadddr (ly:slur::calc-control-points grob))))))
#})
\paper {
#(set-paper-size "a4")
}
\header {
...
Mir ist nicht klar warum Manuela glaubt diese Definition streichen.
Gruß,
Harm