• Willkommen im Forum „Archiviertes Lilypond Forum (2017)“.
 

Dies ist das Archiv des alten Forums (bis März 2017). Das aktuelle Forum ist unter lilypondforum.de zu finden.
This is the archive of the old forum (until March 2017). You can find the current forum at lilypondforum.de.

Hauptmenü

Verbalkung ändern bei wechselnden Takten

Begonnen von Notensatzzweifel, Sonntag, 24. April 2016, 16:04

Vorheriges Thema - Nächstes Thema

Notensatzzweifel

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)

fugenkomponist

#1
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

       
  • nur das setzt, was wirklich nötig ist (hier nämlich beamExceptions = #'(); beatStructure und baseMoment sind im 3/4- und 4/4-Takt eh so, wie du sie haben willst) und
  • Taktwechsel und alles andere, was alle Stimmen betrifft, in eine globale Stimme packst, die in jedem Staff mitläuft. Diese enthält dann unsichtbare Pausen, um alles dahin zu bringen, wo es hin soll.
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
    >>
  >>
}