Deutsches Lilypond Forum (Archiv)
Allgemein => Fragen zu Funktionen => Thema gestartet von: Beda am Montag, 2. Januar 2017, 20:22
-
Hallo Leute
Warum funktioniert folgendes nicht:
\version "2.18.0"
<<\new Staff
<<
\key g\major \time 4/4
\new Voice = "oben" \relative c''
{ %\voiceOne
b2( a) |
<<b2.\\g2.>>
b4\rest \bar "|."
}
>>
\new Lyrics \lyricsto "oben"
{
De -- o!
}
>>
Ich bekomme die Fehlermeldung:
15:8: Warnung: unbegrenzter Bindestrich; entfernt
De
-- o!
So funktioniert's aber:
\version "2.18.0"
<<\new Staff
<<
\key g\major \time 4/4
\new Voice = "oben" \relative c''
{ %\voiceOne
b2( a) |
<<
{ \voiceOne b2. }
\new Voice {
\voiceTwo
g2.}
>>
b4\rest \bar "|."
}
>>
\new Lyrics \lyricsto "oben"
{
De -- o!
}
>>
Was ist der Grund dafür? Müsste die erste Lösung nicht auch funktionieren?
Beda
-
Soweit ich das richtig verstanden und in Erinnerung habe, benennt Lilypond die Stimmen, die durch die spitzen Klammern erzeugt werden, standardmäßig mit "1" und "2". Daher findet in Version 1 die letzte Silbe keine Stimme mehr und endet im Nichts, daher die Fehlermeldung.
In der zweiten Version führt Lilypond offensichtlich die Stimme "oben" weiter.
-
Hallo Beda,
willkommen im Forum!
Was ist der Grund dafür? Müsste die erste Lösung nicht auch funktionieren?
Nein, muß sie nicht. Der Grund:<< A \\ B >>ist kurz für<< \new Voice { \voiceOne A } \new Voice { \voiceTwo B } >>, es werden also hier zwei neue Stimmen erstellt. Dagegen erstellt dein zweites Beispiel, welches ja von der Form<< { \voiceOne A } \new Voice { \voiceTwo B } >>ist, für B eine neue Stimme und verwendet für A die schon vorhandene, in deinem Fall die mit Namen „oben“. Das so unscheinbare „\\“ ist also hier der entscheidende Unterschied.
Und der Grund, warum das auch so sein muß: In A und B könnten ja verschiedene Rhythmen stehen wie so oft in der Polyphonie. Und LilyPond kann ja nicht automatisch wissen, welche der Stimmen es bei einem << \\ >>-Konstrukt bevorzugen soll ;)
Edit:Soweit ich das richtig verstanden und in Erinnerung habe, benennt Lilypond die Stimmen, die durch die spitzen Klammern erzeugt werden, standardmäßig mit "1" und "2".
Genau genommen brauchts wie gesagt noch den „\\“, damit automatische neue Stimmen erzeugt werden, nicht die spitzen Klammern allein. Aber grundsätzlich hast du recht:\version "2.18.0"
<<
\new Staff \relative {
\key g \major
\time 4/4
<< { c'2 e } \\ { c4 b a g } >>
}
\new Lyrics \lyricsto "1"
{
er -- ste
}
\new Lyrics \lyricsto "2"
{
zwei -- te Stim -- me
}
>>
-
Herzlichen Dank für die Antworten.
Ich glaube, ich komme langsam dahinter, wie lilypond funktioniert. Ich werde fleissig weiterüben :)
Beda
-
Ich glaube, ich komme langsam dahinter, wie lilypond funktioniert. Ich werde fleissig weiterüben :)
Es lohnt sich!!! ;)