Autor Thema: Verbalkung ändern bei wechselnden Takten  (Gelesen 1350 mal)

Notensatzzweifel

  • Member
Verbalkung ändern bei wechselnden Takten
« 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)

fugenkomponist

  • Member
Re: Verbalkung ändern bei wechselnden Takten
« Antwort #1 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
  • 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
    >>
  >>
}
« Letzte Änderung: Sonntag, 24. April 2016, 17:02 von fugenkomponist »