Deutschsprachiges LilyPond-Forum

Allgemeine Fragen und Probleme => Fragen und Probleme aller Art => Thema gestartet von: eichhofener am Samstag, 20. März 2021, 19:00

Titel: Vertikale Anordnung von Lyrics
Beitrag von: eichhofener am Samstag, 20. März 2021, 19:00
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!


Titel: Antw:Vertikale Anordnung von Lyrics
Beitrag von: harm6 am Sonntag, 21. März 2021, 11:14
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
Titel: Antw:Vertikale Anordnung von Lyrics
Beitrag von: eichhofener am Sonntag, 21. März 2021, 11:36
Hallo Harm!
Vielen Dank für Deine punktgenaue und präzise Antwort (wie  immer).

Liebe Grüße
Uwe