Autor Thema: Gelöst: Bug? Hälse mittig...  (Gelesen 1774 mal)

Joei

  • Member
Gelöst: Bug? Hälse mittig...
« am: Montag, 3. Juni 2013, 09:14 »
Moin,

notiere gerade ein kleines Gitarrenstück und stolpere über ein Problem, was ich bisher nicht hatte:
die Hälse der zweiten Stimme sitzen mittig in den Köpfen  :o

Ist das ein Bug? Wie kann ich das verhindern?!?

\version "2.16.2"
\language "deutsch"

\header {
  title = "Sarabande"
  subtitle = "für Guitarre"
  composer = "Johann Ernst Bach (?)"
  arranger = "A. Nemerowski"
  % Voreingestellte LilyPond-Tagline entfernen
  tagline = ##f
}

\paper {
  #(set-paper-size "a4")
}
\version "2.16.2"
\language "deutsch"

\header {
  title = "Sarabande"
  subtitle = "für Guitarre"
  composer = "Johann Ernst Bach (?)"
  arranger = "A. Nemerowski"
  % Voreingestellte LilyPond-Tagline entfernen
  tagline = ##f
}

\paper {
  #(set-paper-size "a4")
  indent = 0
}

global = {
  \key g \major
  \time 3/4
  \tempo Andante
}

upper = \relative c' {
  \global
r8 h e h g e' a, d d, c' h g r g' h e, h e  <<  {e4. dis8 e4}\\{r8 g, fis4 g}>>
 
}

lower = \relative c' {
  \global
<e,, g'h>2. fis2 g4 g2. h2 h8\rest e, e2 h'4
 
}

\score {
  \new Staff \with {
    midiInstrument = "acoustic guitar (nylon)"
    instrumentName = ""
  } { \clef "treble_8" << \upper \\ \lower >> }
  \layout { }
  \midi {
    \context {
      \Score
      tempoWholesPerMinute = #(ly:make-moment 100 4)
    }
  }
}

Dank&Gruß
Joei
« Letzte Änderung: Montag, 3. Juni 2013, 11:53 von Joei »

eluze

  • Member
Re: Bug? Hälse mittig...
« Antwort #1 am: Montag, 3. Juni 2013, 10:52 »
da scheint ja LilyPond mit den vielen stimmen und überlappungen arg ins schwitzen zu kommen und findet keinen weg, die impliziten kontexte vernünftig zusammenzubringen (siehe log)

deshalb schlage ich vor, die stimmen explizit zu definieren:

\language "deutsch"
\new Staff <<
  \key g \major
  \new Voice = oben \relative c' {
    \voiceOne e'4. dis8 e4
  }
  \new Voice = "mitte/abwärts" \relative {
    \override Rest staff-position = #-2
    \voiceFour
    r8 g' fis4 g
  }
  \new Voice = unten \relative {
    \voiceTwo
    h2 r8
  }
>>
teils muss noch von hand eingestellt werden, wo die pausen hinkommen (ev. kann man sie auch weglassen, resp. mit s setzen!?)

Eluze

Be-3

  • Member
Re: Bug? Hälse mittig...
« Antwort #2 am: Montag, 3. Juni 2013, 11:18 »
Hallo Joei,

wie Eluze schon schreibt, liegt es an der dreistimmigen Polyphonie bzw. Deiner Benutzung der "Abkürzung" << ... \\ ... >> in geschachtelter Form.
LilyPond ordnet die "beiden unteren" Stimmen einander zu und kommt nicht mit den unterschiedlichen Rhythmen klar (Halbe Note plus Achtelpause verträgt sich nicht) - und tut dies mit der "Warnung: der rhythmische Kopf gehört nicht zu einer rhythmischen Kolumne" im Log kund.

Abgesehen von Eluzes komplett dreisimmigem Ansatz gibt es dennoch die Möglichkeit, nur temporär von zwei auf drei Stimmen zu wechseln.
Welche Schreibweise man vorzieht, hängt vom Gesamtaufbau des Stückes ab.

Die Doku zeigt, wie es geht, und zwar im Abschnitt "Vorrübergehende polyphone Passagen".
Abgesehen davon, daß dort unnötig viele Rs im Wort "Vorübergehend" sind, ist diese Stelle sehr hilfreich.
Angewandt auf Dein Beispiel sieht das folgendermaßen aus:
Es wird mit \new Voice zwischenzeitlich eine neue Stimme eingeführt, mit \voiceOne und \voiceTwo legt man die Ausrichtung oben/unten fest und kommt ohne das verwirrende \\ aus:

\version "2.16.2"
\language "deutsch"

\header {
  title = "Sarabande"
  subtitle = "für Guitarre"
  composer = "Johann Ernst Bach (?)"
  arranger = "A. Nemerowski"
  % Voreingestellte LilyPond-Tagline entfernen
  tagline = ##f
}

\paper {
  #(set-paper-size "a4")
}
\version "2.16.2"
\language "deutsch"

\header {
  title = "Sarabande"
  subtitle = "für Guitarre"
  composer = "Johann Ernst Bach (?)"
  arranger = "A. Nemerowski"
  % Voreingestellte LilyPond-Tagline entfernen
  tagline = ##f
}

\paper {
  #(set-paper-size "a4")
  indent = 0
}

global = {
  \key g \major
  \time 3/4
  \tempo Andante
}

upper = \relative c' {
  \global
  r8 h e h g e' |
  a, d d, c' h g |
  r g' h e, h e |
  <<  { \voiceOne e4. dis8 e4} \new Voice { \voiceTwo g,8\rest g fis4 g}>> |
}

lower = \relative c' {
  \global
  <e,, g'h>2. |
  fis2 g4 |
  g2. |
  h2 e,8\rest e |
  e2 h'4 |
}

\score {
  \new Staff \with {
    midiInstrument = "acoustic guitar (nylon)"
    instrumentName = ""
  } { \clef "treble_8" << \upper \\ \lower >> }
  \layout { }
  \midi {
    \context {
      \Score
      tempoWholesPerMinute = #(ly:make-moment 100 4)
    }
  }
}

Ich habe die Pausen noch zurechtgerückt und jedem Takt seine eigene Zeile (incl. Bar-Checks) gegönnt.

Viele Grüße
Torsten

Joei

  • Member
Re: Bug? Hälse mittig...
« Antwort #3 am: Montag, 3. Juni 2013, 11:52 »
herzlichen Dank Euch beiden - hatte bisher auch bei komplexen Stimmen keine Probleme mit dem <<{}//{}>> Polyphonie-Vorgehen - allerdings waren Einzelstimmen dann auch in eigenen Notenzeilen.

Werde es also "sauberer" machen.

Viele Grüße
Joei