Vertikale Anordnung von Lyrics

Begonnen von eichhofener, Samstag, 20. März 2021, 19:00

« vorheriges - nächstes »

eichhofener

Liebe Leser!

Um zu meinen einfachen Banjo-Tabs Lyrics hinzuzufügen, nehme ich gerne NullVoices für den Textrhythmus her, weil beim Banjo die Melodie stark ornamentiert wird. Da müsste man sonst lauter Auslassungszeichen ( _ ) verwenden.

Beim Kombinieren von Lyrics z.B. TeilA mit Wiederholung und dann die Fortsetzung TeilB ohne Wiederholung kommt es oft dazu, dass die Fortsetzung nicht in der obersten Zeile geschieht. Es sieht so aus, als ob Lilypond nicht erkennt, dass TeilA schon abgeschlossen ist.

Hier ein Beispiel, was ich meine:

\version "2.23.0"

<<
\new Staff
<<
{ \repeat volta 2 { c'8 d' e' f' g' f' e' d' } g'4 e' c' e' }
{
  \new NullVoice = "teilA" { c'4 c' c' r }
  \new NullVoice = "teilB" { c'4 c' c' r }
}
>>
\new Lyrics
\lyricsto "teilA"
{
  \set stanza = #"1."
  tra la la
}

\new Lyrics
\lyricsto "teilA"
{
  \set stanza = #"2."
  c e g
}

\new Lyrics
\lyricsto "teilB"
{
  und so weiter
}
>>


Kann ich irgendwie erreichen, dass der Text "und so weiter" auf der gleichen Höhe wie "tra la la" erscheint?
Vielen Dank!



harm6

ZitatEs sieht so aus, als ob Lilypond nicht erkennt, dass TeilA schon abgeschlossen ist.

Hier irrst Du Dich, das genaue Gegenteil ist richtig: LilyPond erkennt sehr wohl, daß die Lyrics-Contexte assoziert mit "teilA" und "teilB" beendet sind und ordnet den von Dir neu initiierten Lyrics-Context darunter ein. Das ist das dokumentierte default Verhalten.

Und nicht was Du willst.
Stattdessen greife den Context assoziiert mit "teilA" wieder auf und führe ihn fort:
- benenne die Lyrics
- verwende \context und nicht \new


\version "2.23.0"

<<
  \new Staff
    <<
      { \repeat volta 2 { c'8 d' e' f' g' f' e' d' } g'4 e' c' e' }
      {
        \new NullVoice = "teilA" { c'4 c' c' r }
        \new NullVoice = "teilB" { c'4 c' c' r }
      }
    >>
 
  \new Lyrics = "one"
    \lyricsto "teilA"
    {
      \set stanza = #"1."
      tra la la
    }
 
  \new Lyrics = "two"
    \lyricsto "teilA"
    {
      \set stanza = #"2."
      c e g
    }
 
  \context Lyrics = "one"
    \lyricsto "teilB"
    {
      und so weiter
    }
>>


Das reicht hier. Sollte es eine zeitliche Lücke zwischen dem Ende und dem erneuten Aufgreifen geben, so muß der Context wahrscheinlich über die Lücke hinweg am Leben gehalten werden. Ist hier aber nicht nötig.


Gruß,
  Harm

eichhofener

Hallo Harm!
Vielen Dank für Deine punktgenaue und präzise Antwort (wie  immer).

Liebe Grüße
Uwe