Text woanders als am Liedanfang ausrichten

Begonnen von tuimbe, Montag, 21. Oktober 2024, 15:40

« vorheriges - nächstes »

tuimbe

Hier ist eine komplette .ly-Datei, die ein paar Takte aus einem Lied enthält, auf zwei Stimmen beschränkt.

\version "2.22.1"

keyTime = { \key c \major \time 4/4 }

tuneS   = \relative c'' { \autoBeamOff
g8 g f e d d e f | e2 c'8 c c b |
a2 c8 c b a | g2 c8 c c b | a2 c8 c b a | g1 |
c,4 c8 e g4 g8 g | g g a g e2 | g8 g f e d d e f | e1 }

tuneA   = \relative c' { \autoBeamOff
e8 e d c b b c d | c1 |
f8 f f f f2 | e8 e e e e2 | f8 f f f f2 | e8 e e f e2 |
c4 c8 c e4 e8 e | e e f e c2 | e8 e d c b b c d | c1 }

textM = \lyricmode { \set stanza = #"1. "
  Mu -- ngu ni pe -- ndo a -- ni -- pe -- nda.
  Si -- ki -- li -- ze -- ni fu -- ra -- ha ya -- ngu: Mu -- ngu ni pe -- ndo! A -- pe -- nda wa -- tu!
  Mu -- ngu ni pe -- ndo! A -- pe- __ _ nda wa -- tu! Mu -- ngu ni pe -- ndo a -- ni -- pe -- nda. }

textS = \lyricmode {
  Si -- ki -- li -- ze -- ni fu -- ra -- ha ya -- ngu: Mu -- ngu ni pe -- ndo! A -- pe -- nda wa -- tu! }
 
\score {
  \layout {
    indent = #0
  }
  \new Staff <<
    \clef "treble"
    \new Voice = "voiceS"  { \voiceOne \keyTime \tuneS }
    \new Lyrics \with { alignAboveContext = "staff" } {
       \lyricsto "voiceS" { \textM } }
    \new Voice = "voiceA"  { \voiceTwo \tuneA }
    \new Lyrics \lyricsto "voiceA" { \textM }
  >>
}

Man sieht, dass der gleiche Text von Sopran und Alt gesungen wird, nur an einer Stelle vom Sopran einen halben Takt früher. Die beiden Textzeilen gelten für Sopran und Alt. Eigentlich wollte ich den Sopran-Text über der Notenzeile haben (siehe Quelltext), aber das hat nicht geklappt – ich weiß nicht, warum. Vor allem aber will ich den Text nicht doppelt haben, wo er genau gleich ist. Deswegen habe ich auch die Textvariante namens ,,textS" definiert, die nur den kurzen Text enthält, der an passender Stelle über den Noten als Sopran-Sondertext erscheinen soll. Nur: wie kann man ausdrücken, an welcher Stelle der Noten der Text hingehört?

Ein ähnliches Problem gibt es, wenn ein Refrain vor den Strophen steht: Dann beginnt der Text der 2. Strophe dort, wo nach dem Refrain auch die 1. Strophe begonnen hat, und nicht beim ersten Ton des ganzen Liedes.

Dort habe ich gesucht:
grün 3.3.2 Text an einer Melodie ausrichten
grün 4.2.2 Stimmen explizit beginnen
blau 2.1.2 Techniken für die Gesangstextnotation

... und habe entweder nichts gefunden oder habe so wenig verstanden, dass ich nicht gemerkt habe, dass das die Lösung ist. Wer kann bitte helfen?

harm6

Hallo tuimbe,

ZitatHier ist eine komplette .ly-Datei,
bitte füge code in die entsprechenden code-tags ein.

ZitatEigentlich wollte ich den Sopran-Text über der Notenzeile haben (siehe Quelltext), aber das hat nicht geklappt
Du wolltest den Sopran-Text über dem Staff mit Namen "staff" haben. Einen solchen Staff hast Du aber nicht. Dazu gabs auch eine Fehlermeldung ;)

ZitatNur: wie kann man ausdrücken, an welcher Stelle der Noten der Text hingehört?
In Kürze:
- verwende alignAboveContext richtig
- verwende eine zusätzliche benannte Voice innerhalb von tuneS
- orientiere textS an dieser Voice
keyTime = { \key c \major \time 4/4 }

tuneS = \relative c'' {
  g8 g f e d d e f | e2
  \new Voice = "II" {
    \voiceOne c'8 c c b |
    a2 c8 c b a | g2 c8 c c b | a2 c8 c b a | g1 |
  }
  c,4 c8 e g4 g8 g | g g a g e2 | g8 g f e d d e f | e1
}

tuneA = \relative c' {
  e8 e d c b b c d | c1 |
  f8 f f f f2 | e8 e e e e2 | f8 f f f f2 | e8 e e f e2 |
  c4 c8 c e4 e8 e | e e f e c2 | e8 e d c b b c d | c1
}

textM = \lyricmode {
  \set stanza = #"1. "
  Mu -- ngu ni pe -- ndo a -- ni -- pe -- nda.
  Si -- ki -- li -- ze -- ni fu -- ra -- ha ya -- ngu:
  Mu -- ngu ni pe -- ndo! A -- pe -- nda wa -- tu!
  Mu -- ngu ni pe -- ndo! A -- pe- __ _ nda wa -- tu!
  Mu -- ngu ni pe -- ndo a -- ni -- pe -- nda.
}

textS = \lyricmode {
  Si -- ki -- li -- ze -- ni fu -- ra -- ha ya -- ngu:
  Mu -- ngu ni pe -- ndo! A -- pe -- nda wa -- tu!
}
 
\score {
  \layout {
    indent = #0
    \autoBeamOff
  }
  <<
    \new Staff = "main"
      <<
      \clef "treble"
      \new Voice = "voiceS"  { \voiceOne \keyTime \tuneS }
      \new Voice = "voiceA"  { \voiceTwo \tuneA }
      >>
    \new Lyrics \lyricsto "voiceA" \textM
    \new Lyrics \with { alignAboveContext = "main" }
      \lyricsto "II" \textS
  >>
}

Ähnlich für deine weiterführende Frage.

HTH,
  Harm

P.S.
Warum verwendest du keine aktuelle Version? https://lilypond.org/doc/v2.24/Documentation/web/download
Was ist grün bzw blau? ???



Malte

Zitat von: tuimbe am Montag, 21. Oktober 2024, 15:40Dort habe ich gesucht:
grün 3.3.2 Text an einer Melodie ausrichten
grün 4.2.2 Stimmen explizit beginnen
blau 2.1.2 Techniken für die Gesangstextnotation
Zitat von: harm6 am Montag, 21. Oktober 2024, 23:15Was ist grün bzw blau? ???
Ich nehme an, es geht um das Learning Manual (grünes Inhaltsverzeichnis am linken Rand) und die Notation Reference (blau).

tuimbe

Ganz herzlichen Dank für die schnelle Reaktion mit der Lösung. Auf die Idee wäre ich nie gekommen: dass eine Voice eine andere als Teil von sich enthalten kann, so dass die Noten nur einmal komplett geschrieben werden, der Text aber bei Bedarf stückchenweise. Steht das irgendwo in der Doku, oder kommt da jeder selbst drauf, der das braucht? Oder fragen die alle hier?

Apropos Doku: Ich meinte die beiden HTML-Manuale ,,Einführung" (wo das angezeigte Inhaltsverzeichnis grüne Hintergrundfarbe hat) und ,,Notationsreferenz" (in blau). Aus letzterer war mein Versuch, den Text über der Notenzeile zu platzieren. Dafür gabs ein Beispiel, wo in der Tat der Staff "staff" hieß, was mir nicht aufgefallen war. Kein Wunder: wo steht denn, was ,,\new" macht und dass man einen Namen angeben kann, aber nicht muss? Oder was ein Staff ist? Diese ganze Ebene fehlt in der Einführung völlig. Auch, was es bedeutet, wenn Wörter mit \ anfangen, welche Funktion die {...} haben können und wann stattdessen <<...>> geschrieben werden, warum und wann simple Zahlenwerte ein vorangestelltes # haben und und und. Ich hab's nie gefunden. Ich denke, eine Einführung müsste weniger voraussetzen.

Also kann man als Newbie all das nie gezielt einsetzen, weil man es verstanden hat, sondern immer nur durch Kopie eines höchstens halb verstandenen Beispiels. Und genau so habe ich meine erste ly-Datei geschrieben: einen fertigen funktionierenden Chorsatz genommen, die Noten für die vier Stimmen durch die meines Liedes ersetzt und den Text auch ersetzt. Funktioniert prima, aber man hat keine Ahnung, was das alles bedeutet, was da steht. Hat's irgendjemand anders gemacht? Kann ich mir nicht vorstellen.

Ich will nicht jammern. Es funktioniert ja alles, und die Hilfe hier in der Community ist einsame Spitze. Aber am Anfang versteht man nur Bahnhof, weil es keine Einführung gibt.

Zur Lilypond-Version: Ich habe mich darauf verlassen, dass die Version von Zeit zu Zeit von allein erneuert wird, und darauf, dass es kaum etwas schadet, eine alte zu benutzen. Scheints zu Unrecht. Wie geht man denn damit um, wenns eine neue gibt: alle alten Quellen upgraden (mindestens mit der neuen Versionsnummer versehen)? Oder einfach weiterbenutzen und erst bei der nächsten Quelländerung upgraden?