Deutsches Lilypond Forum (Archiv)

Allgemein => Fragen zu Funktionen => Thema gestartet von: Notensatzzweifel am Sonntag, 24. April 2016, 16:04

Titel: Verbalkung ändern bei wechselnden Takten
Beitrag von: Notensatzzweifel am Sonntag, 24. April 2016, 16:04
Ich versuche gerade eine Verbalkung auf Viertel umzustellen. Es funktioniert aber nur nach der ersten Taktangabe. Dann geht mit der selben Syntax nach Taktwechseln nicht mehr.

Was ist falsch? (Siehe Anhang)
Titel: Re: Verbalkung ändern bei wechselnden Takten
Beitrag von: fugenkomponist am Sonntag, 24. April 2016, 16:59
Bitte gib immer ein möglichst kleines Beispiel an. Ich hab jetzt fünf Minuten dran gesessen, das von 171 auf 40 Zeilen runterzukürzen, bis ich festgestellt habe, wo das Problem liegt; die 40 Zeilen enthalten aber immer noch ganz schön viel für dieses Problem unwichtiges Zeug. Diese Arbeit möchte ich mir nächstes Mal nicht mehr machen. (Übrigens kommt man so oft selbst auf eine Lösung ;) )

Das Problem ist, dass du \time in jeder Stimme setzt, aber \set Timing.… nicht. Das \time in der letzten Stimme scheint hier als letztes angewendet zu werden, also werden die Standardbalken gesetzt.

Du kannst dir sehr viel Tipparbeit sparen, indem du
So könnte das aussehen:
\version "2.18.2"
\language "deutsch"

global = {
  \key g \major
  \time 4/4
  s1*3
  \break
  s1
  \bar "||"
  \key g \minor
  \time 3/4
  s2.*5
  \bar "|."
}

\score {
  <<
    \new Staff <<
      \global
      \relative {
        g'4 a h c
        d c h a
        g a h c
        d c h a
        b a g
        a g fis
        e d c
        d e fis
        g2.
      }
    >>
    \new Staff <<
      \global
      \relative {
        g'4 fis g a
        h a g fis
        e fis g a
        h a g fis
        g2.
        d
        c
        d
        g,
      }
    >>
  >>
}
Noch übersichtlicher wirds, indem du auch die Noten (hier die beiden \relative-Blöcke) in Variablen packst; dadurch wird die Struktur des \score-Blocks viel klarer. Das hilft auch, verschiedene Ausgaben (z. B. Partitur und Einzelstimmen) einfach zu erstellen.
\version "2.18.2"
\language "deutsch"

global = {
  \key g \major
  \time 4/4
  s1*3
  \break
  s1
  \bar "||"
  \key g \minor
  \time 3/4
  s2.*5
  \bar "|."
}

eins = \relative {
  g'4 a h c
  d c h a
  g a h c
  d c h a
  b a g
  a g fis
  e d c
  d e fis
  g2.
}

zwei = \relative {
  g'4 fis g a
  h a g fis
  e fis g a
  h a g fis
  g2.
  d
  c
  d
  g,
}

\score {
  <<
    \new Staff <<
      \global
      \eins
    >>
    \new Staff <<
      \global
      \zwei
    >>
  >>
}