Allgemein > Fragen zu Funktionen

Zweistimmiger Schluss eines Liedes

(1/1)

Beda:
Hallo Leute

Warum funktioniert folgendes nicht:

--- Code: ---\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!
  }
>>

--- Ende Code ---

Ich bekomme die Fehlermeldung:

15:8: Warnung: unbegrenzter Bindestrich; entfernt
    De
       -- o!

So funktioniert's aber:


--- Code: ---\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!
  }
>>

--- Ende Code ---

Was ist der Grund dafür? Müsste die erste Lösung nicht auch funktionieren?

Beda

Manuela:
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.

fugenkomponist:
Hallo Beda,

willkommen im Forum!

--- Zitat von: Beda am Montag,  2. Januar 2017, 20:22 ---Was ist der Grund dafür? Müsste die erste Lösung nicht auch funktionieren?

--- Ende Zitat ---
Nein, muß sie nicht. Der Grund:
--- Code: ---<< A \\ B >>
--- Ende Code ---
ist kurz für
--- Code: ---<< \new Voice { \voiceOne A } \new Voice { \voiceTwo B } >>
--- Ende Code ---
, es werden also hier zwei neue Stimmen erstellt. Dagegen erstellt dein zweites Beispiel, welches ja von der Form
--- Code: ---<< { \voiceOne A } \new Voice { \voiceTwo B } >>
--- Ende Code ---
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:
--- Zitat von: Manuela ---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".
--- Ende Zitat ---
Genau genommen brauchts wie gesagt noch den „\\“, damit automatische neue Stimmen erzeugt werden, nicht die spitzen Klammern allein. Aber grundsätzlich hast du recht:
--- Code: ---\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
  }
>>
--- Ende Code ---

Beda:
Herzlichen Dank für die Antworten.

Ich glaube, ich komme langsam dahinter, wie lilypond funktioniert. Ich werde fleissig weiterüben  :)

Beda

Manuela:

--- Zitat von: Beda am Samstag,  7. Januar 2017, 20:19 ---Ich glaube, ich komme langsam dahinter, wie lilypond funktioniert. Ich werde fleissig weiterüben  :)


--- Ende Zitat ---

Es lohnt sich!!!  ;)

Navigation

[0] Themen-Index

Zur normalen Ansicht wechseln