1.2.4 Balken


Automatische Balken

LilyPond setzt Balken (engl. beam) automatisch.

\time 2/4 c8 c c c
\time 6/8 c c c c8. c16 c8

[image of music]

Wenn diese automatischen Entscheidungen nicht gut genug sind, können die Balken auch explizit eingegeben werden, siehe Manuelle Balken. Balken müssen auch auf diese Weise eingegeben werden, wenn sie über Pausen hinwegreichen sollen.

Wenn automatische Bebalkung nicht benötigt wird, kann sie mit dem Befehl \autoBeamOff aufgehoben werden und mit dem Befehl \autoBeamOn wieder eingeschaltet werden.

c4 c8 c8. c16 c8. c16 c8
\autoBeamOff
c4 c8 c8. c16 c8.
\autoBeamOn
c16 c8

[image of music]

Achtung: Wenn Balken eingesetzt werden, um Melismen in Gesang zu notieren, sollte die automatische Bebalkung mit autoBeamOff ausgeschaltet werden und die Balken manuell notiert werden.

Balkenmuster, die sich von den automatisch erstellen unterscheiden, können erstellt werden, siehe Einstellung von automatischen Balken.

Vordefinierte Befehle

\autoBeamOff, \autoBeamOn.

Ausgewählte Schnipsel

Balken über Zeilenumbrüche

Zeilenumbrüche sind normalerweise während Balken verboten. Das kann geändert werden.

\relative c'' {
  \override Beam #'breakable = ##t
  c8 c[ c] c[ c] c[ c] c[ \break
  c8] c[ c] c[ c] c[ c] c
}


[image of music]

Balken für weit auseinander liegende Noten ändern

Balken mit Hälsen in unterschiedliche Richtungen werden automatisch erstellt, wenn ein großer Sprung zwischen Tonhöhen gefunden wird. Dieses Verhalten kann durch die auto-knee-gap-Eigenschaft beeinflusst werden. Ein derartiger Knie-Balken wird erstellt, wenn der Abstand größer ist als der Wert von auto-knee-gap plus der Dicke des Balkens (was von der Notendauer und der Neigung des Balkens abhängt). Der Standardwert von auto-knee-gap ist 5.5 Notensystemabstände.

{
  f8 f''8 f8 f''8
  \override Beam #'auto-knee-gap = #6
  f8 f''8 f8 f''8
}

[image of music]

Siehe auch

Notationsreferenz: Manuelle Balken, Einstellung von automatischen Balken.

Installierte Dateien: ‘scm/auto-beam.scm’.

Schnipsel: Rhythms.

Referenz der Interna: Beam.

Bekannte Probleme und Warnungen

Balken können mit Notenköpfen und Versetzungszeichen in anderen Stimmen zusammenstoßen.


Einstellung von automatischen Balken

Die Platzierung der automatischen Bebalkung wird entsprechend der Taktart entschieden. Drei Arten von Regeln werden eingesetzt, um die Endpunkte der automatischen Balken zu bestimmen: Standardregeln für die Taktart, ausdrückliche Regeln für einen Balken in einer Taktart und die Eigenschaft beatLenght (Schlagdauer) der Taktart.

Die folgenden Regeln, in der Reihenfolge ihrer Priorität, gelten, wenn das Aussehen der Balken bestimmt wird:

Die Gruppierung von Taktzeiten verändern

Standardmäßig wird beatLength (Schlagdauer) von der Taktart abgeleitet, die mit dem \time-Befehl gesetzt wurde. Die Schlagdauer wird definiert als eine Eins über dem Nenner der Taktart.

beatLength ist ein Moment, eine Einheit musikalischer Dauer. Eine Größe der Art Moment wird durch die Scheme-Funktion ly:make-moment erstellt. Für mehr Information zu dieser Funktion siehe Verwaltung der Zeiteinheiten.

Automatische Bebalkung und Balkenunterteilungen werden gespeichert in den Einstellungen der beamSettings-Eigenschaft. Standardwerte von beamSettings werden in der Datei ‘scm/beam-settings.scm’ definiert. Einträge in beamSettings werden nach Taktart und Regelart sortiert.

Die Taktart sollte als Scheme-Paar dargestellt werden, also #'(4 . 4).

Die Regelart sollte sein #'end für Balkenenden und #'subdivide für Balkenunterteilungen.

Die Endungs- und Unterteilungsregeln bestehen aus einer Scheme-Aliste (oder Liste von Paaren), die den Balkentyp und die Gruppierung, die auf diesen Balkentyp angewendet werden soll, anzeigt.

#'((beam-type1 . grouping-1)
   (beam-type2 . grouping-2)
   (beam-type3 . grouping-3))

Balkentyp ist entweder ein Scheme-Paar, das die Dauer des Balkens anzeigt, etwa (1 . 16), oder *, um eine Standardregel anzuzeigen, die auf alle Balken angewendet werden soll, wenn keine spezifische Regel vorliegt.

Die Balkengruppierung ist eine Scheme-Liste, die die Gruppierungsart für einen Balkentyp darstellt. Für Standardregeln (in denen der Balkentyp * ist) wird die Gruppierung in Einheiten von beatLength dargestellt. Für explizite Regeln wird die Gruppierung in Einheiten der Balkenart angezeigt.

Balkenregeln werden verändert mit \overrideBeamSettings und \revertBeamSettings.

  \time 5/16
  c8^"beats" c16 c8 |
  \overrideBeamSettings #'Score #'(5 . 16) #'end #'((* . (2 3)))
  c8^"(2+3)" c16 c8
  \overrideBeamSettings #'Score #'(5 . 16) #'end #'((* . (3 2)))
  c8^"(3+2)" c16 c8

[image of music]

Balkenregelveränderungen können auf bestimmte Kontexte beschränkt werden. Wenn keine Regeln in einen unteren Kontext definiert sind, gelten die Regeln des höheren Kontext, in dem sich der niedrigere befindet.

\new Staff <<
  \time 7/8
  \new Voice = one {
    \relative c'' {
      \overrideBeamSettings #'Staff #'(7 . 8) #'end #'((* . (2 3 2)))
        a8 a a a a a a
    }
  }
  \new Voice  = two {
    \relative c' {
      \voiceTwo
      \overrideBeamSettings #'Voice #'(7 . 8) #'end #'((* . (1 3 3)))
      f8 f f f f f f
    }
  }
>>

[image of music]

Wenn mehrere Stimmen eingesetzt werden, muss der Staff-Kontext definiert werden, wenn die Balkenregeln auf alle Stimmen des Systems angewendet werden sollen:

\time 7/8
% rhythm 3-1-1-2
% Context Voice specified --  does not work correctly
% Because of autogenerated voices, all beating will
% be at beatLength (1 . 8)
\overrideBeamSettings #'Voice #'(7 . 8) #'end #'((* . (3 1 1 2)))
<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>

% Works correctly with context Staff specified
\overrideBeamSettings #'Staff #'(7 . 8) #'end #'((* . (3 1 1 2)))
<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>

[image of music]

Balkenregeln können rückgängig gemacht und das Standardverhalten wieder hergestellt werden. Das erreicht man durch den Einsatz von \revertBeamSettings. Die Argumente sind die gleichen wie für overrideBeamSettings, außer das kein Wert für Gruppierung gegeben wird:

\revertBeamSettings Kontext Taktart Regelart
\time 4/4
\repeat unfold 16 {a16}
% set default rule for (1 1 1 1) grouping
\overrideBeamSettings #'Score #'(4 . 4) #'end #'((* . (1 1 1 1)))
\repeat unfold 16 {a16}
% revert the new rule
\revertBeamSettings #'Score #'(4 . 4) #'end
\repeat unfold 16 {a16}

[image of music]

Ausgewählte Schnipsel

Balken in Untergruppen teilen

Die Balken von aufeinanderfolgenden Sechszehnteln (oder kürzeren Notenwerten) werden standardmäßig nicht unterteilt. Dieses Verhalten kann verändert werden, sodass die Balken in Untergruppen aufgeteilt werden, indem man die Eigenschaft subdivideBeams verändert. Man muss die Unterteilungsintervalle als Notenbruch mit der make-moment-Funktion für beatLength angeben, damit die Balken unterbrochen wird und nur ein Balken durchgezogen bleibt. Der Standardwert für beatLength ist 1 / Zähler des aktuellen Taktes.

\relative c'' {
  c32[ c c c c c c c]
  \set subdivideBeams = ##t
  c32[ c c c c c c c]

  % Set beam sub-group length to an eighth note
  \set beatLength = #(ly:make-moment 1 8)
  c32[ c c c c c c c]

  % Set beam sub-group length to a sixteenth note
  \set beatLength = #(ly:make-moment 1 16)
  c32[ c c c c c c c]
}

[image of music]

Dirigirzeichen Taktgruppenzeichen

Optionen, mit denen die Balken in einem Takt gruppiert werden, sind durch die Scheme-Funktion set-time-signature erhältlich, die drei Argumente braucht: Die Zahl der Taktschläge, die Länge des Schlages und die interne gruppieren von Balken in dem Takt. Wenn der Measure_grouping_engraver hinzugefügt worden ist, erstellt diese Funktion auch MeasureGrouping-(Taktgruppen)-Zeichen. Derartige Zeichen erleichtern das Lesen von rhythmisch komplexer Musik. In dem Beispiel ist der 9/8-Takt in 2, 2, 2 und 3 aufgeteilt. Das wird der set-time-signature-Funktion als das dritte Argument mitgegeben: '(2 2 2 3):

\score {
  \relative c'' {
    \time 9/8
    \overrideBeamSettings #'Score #'(9 . 8) #'end #'((* . (2 2 2 3)))
    g8 g d d g g a( bes g) |
    #(set-time-signature 9 8 '(4 5))
    g8 g d d g g a( bes g) |
    \time 5/8
    a4. g4 |
  }
  \layout {
    \context {
      \Staff
      \consists "Measure_grouping_engraver"
    }
  }
}

[image of music]

Balkenenden auf Score-Ebene

Balkenenderegeln, die im Score-Kontext definiert werden, wirken sich auf alle Systeme aus, können aber auf Staff- und Voice-Ebene neu verändert werden:

\relative c'' {
  \time 5/4
  % Set default beaming for all staves
  \overrideBeamSettings #'Score #'(5 . 4) #'end
     #'(((1 . 8) . (3 4 3))
        ((1 . 16) . (6 8 6))
        ((1 . 32) . (12 16 12)))
  <<
    \new Staff {
      c8 c c c c c c c c c
    }
    \new Staff {
      % Modify beaming for just this staff
      \overrideBeamSettings #'Staff #'(5 . 4) #'end
        #'((* . (3 2)))
      c8 c c c c c c c c c
    }
    \new Staff {
      % Inherit beaming from Score context
      <<
        {
          \voiceOne
          c8 c c c c c c c c c
        }
        % Modify beaming for this voice only
        \new Voice {
          \voiceTwo
          \overrideBeamSettings #'Voice #'(5 . 4) #'end
              #'((* . (3 2)))
          a8 a a a a a a a a a
        }
      >>
    }
  >>
}

[image of music]

Bekannte Probleme und Warnungen

Wenn eine Partitur endet, während ein automatischer Balken noch nicht beendet wurde und weiterhin Notenerwartet, wird dieser letzte Balken nicht ausgegeben. Das Gleiche gilt auch für polyphone Stimmen, die mit der << … \\ … >>-Konstruktion notiert wurden. Wenn eine polyphone Stimme endet, während ein Balken noch weitere Noten erwartet, wird der Balken nicht gesetzt.

Siehe auch

Schnipsel: Rhythms.


Manuelle Balken

In einigen Fällen kann es nötig sein, den automatischen Algorithmus für die Balken zu überschreiben. Die automatischen Balken werden beispielsweise nicht über Pausen oder Taktlinien hinweg gesetzt, und in Gesang werden die Balken oft nach dem Rhythmus des Textes und nicht dem der Musik gesetzt. Manuell definierte Balken werden mit den Zeichen [ und ] (AltGr+8 bzw. 9) markiert.

{
  r4 r8[ g' a r8] r8 g[ | a] r8
}

[image of music]

Einzelne Noten können mit dem Befehl \noBeam markiert werden, damit sie nicht mit einem Balken versehen werden.

\time 2/4 c8 c\noBeam c c

[image of music]

Noch bessere manuelle Kontrolle über die Balken kann durch Setzen der Eigenschaften stemLeftBeamCount und stemRightBeamCount erreicht werden. Sie bestimmen die Anzahl von Balken, die rechts und links vom Hals der nächsten Note gesetzt werden sollen. Wenn eine Eigenschaften gesetzt ist, wird ihr Wert nur einmal eingesetzt und dann wieder auf Null gesetzt. Im folgenden Beispiel hat das letzte f nur einen Balken an seiner linken Seite (der als Achtelbalken der gesamten Gruppe gewertet wird).

a8[ r16 f g a]
a8[ r16
\set stemLeftBeamCount = #2
\set stemRightBeamCount = #1
f
\set stemLeftBeamCount = #1
g a]

[image of music]

Ausgewählte Schnipsel

Gerade Fähnchen und überstehende Balkenenden

Gerade Fähnchen an einzelnen Noten und überstehende Balkenenden bei bebalkten Notengruppen sind möglich mit einer Kombination aus stemLeftBeamCount, stemRightBeamCount und Paaren von []-Balkenbegrenzungen.

Für gerade Fähnchen, die nach rechts zeigen, kann [] eingesetzt werden und stemLeftBeamCount auf Null gesetzt werden (wie Bsp. 1).

Für gerade Fähnchen, die nach links zeigen, muss stemRightBeamCount eingesetzt werden (Bsp. 2).

Für überstehende Balkenenden nach rechts muss stemRightBeamCount auf einen positiven Wert gesetzt werden, für Balkenenden, die nach links zeigen benutzt man stemLeftBeamCount (Bsp. 3).

Manchmal können einzelne Noten, die von Pausen umgeben sind, auch Balkenenden in beide Richtungen tragen. Das geschieht mit []-Klammern (Bsp. 4).

(\set stemLeftBeamCount entspricht immer dem Befehl \once \set. Anders gesagt müssen die Einstellungen immer wieder wiederholt werden und die Fähnchen des letzten Sechszehntels im letzten Beispiel haben nichts mit dem \set-Befehl zwei Noten vorher zu tun.)

\score {
  <<
    % Example 1
    \new RhythmicStaff {
      \set stemLeftBeamCount = #0
      c16[]
      r8.
    }
    % Example 2
    \new RhythmicStaff {
      r8.
      \set stemRightBeamCount = #0
      c16[]
    }
    % Example 3
    \new RhythmicStaff {
      c16 c
      \set stemRightBeamCount = #2
      c16 r r
      \set stemLeftBeamCount = #2
      c16 c c
    }
    % Example 4
    \new RhythmicStaff {
      c16 c
      \set stemRightBeamCount = #2
      c16 r
      c16[]
      r16
      \set stemLeftBeamCount = #2
      c16 c
    }
  >>
}

[image of music]


Gespreizte Balken

Gespreizte Balken werden teilweise eingesetzt um anzuzeigen, dass kleine Notengruppen in beschleunigendem oder verlangsamendem Tempo gespielt werden sollen, ohne dass sich das Tempo des Stückes verändert. Die Reichweite der gespreizten Balken muss manuell mit [ und ] angegeben werden und die Spreizung wird kontrolliert, indem der Balken-Eigenschaft grow-direction eine Richtung zugewiesen wird.

Wenn die Anordnung der Noten und die MIDI-Ausgabe das Ritardando oder Accelerando, wie es die Spreizung angibt, reflektieren soll, müssen die Noten als ein musikalischer Ausdruck notiert werden, der von geschweiften Klammern umgeben ist und dem ein featheredDurations-(gespreizteDauern)-Befehl vorangestellt ist, der das Verhaltnis der ersten und letzten Dauer definiert.

Die eckigen Klammern geben die Reichweite des Balkens an und die geschweiften Klammern zeigen, auf welche Noten sich die Veränderung der Dauern auswirkt. Normalerweise bezieht sich das auf die selbe Notengruppe, aber das ist nicht unbedingt erforderlich: beide Befehle sind unabhängig voneinander.

Im folgenden Beispiel nehmen die acht 16-Noten exakt die gleiche Zeit ein wie eine halbe Note, aber die erste Note ist halb so lang wie die letzte der Gruppe, und die Noten dazwischen werden stufenweise verlängert. Die ersten vier 32-Noten beschleunigen stufenweise das Tempo, während die darauffolgenden vier 32-Noten ein gleichmäßiges Tempo haben.

\override Beam #'grow-direction = #LEFT
\featherDurations #(ly:make-moment 2 1)
{ c16[ c c c c c c c] }
\override Beam #'grow-direction = #RIGHT
\featherDurations #(ly:make-moment 2 3)
{ c32[ d e f] }
% revert to non-feathered beams
\override Beam #'grow-direction = #'()
{ g32[ a b c] }

[image of music]

Die Platzierung der Noten im Druckbild entspricht den Notendauern nur annähernd, aber die MIDI-Ausgabe ist exakt.

Bekannte Probleme und Warnungen

Der \featherDurations-Befehl funktioniert nur mit kurzen Notenabschnitten, und wenn die Zahlen in den Brüchen klein sind.

Siehe auch

Snippets: Rhythms.


Andere Sprachen: English, español, français.

LilyPond – Notationsreferenz