| [ << Musikalische Notation ] | [Anfang][Inhalt][Index] | [ Spezielle Notation >> ] |
| [ < Automatische Balken ] | [ Nach oben : Balken ] | [ Manuelle Balken > ] |
Einstellung von automatischen Balken
Wenn die automatischen Balken angeschaltet sind, wird die Platzierung der
automatischen Balken von drei Kontexteigenschaften bestimmt:
baseMoment, beatStructure und beamExceptions.
Wenn eine beamExceptions-Regel für die aktuelle Taktart definiert ist,
wird diese Regel zur Bestimmmung der Balkenplatzierung herangezogen. Wenn keine
beamExceptions-Regel für die aktuelle Taktart vorhanden ist, wird
die Platzierung der Balken durch die Einstellungen von baseMoment
und beatStructure bestimmt.
Standardmäßig sind beamExceptions-Regel für alle häufigen Taktarten
vordefiniert, sodass die beamExceptions-Regeln deaktiviert werden
müssen, wenn die Balkenplatzierung aufgrund von baseMoment und
beatStructure stattfinden soll. Die beamExceptions-Regeln werden
deaktiviert durch
\set Timing.beamExceptions = #'()
Bebalkung basierend auf baseMoment und beatStructure
In den meisten Fällen enden automatische Balken am Ende eines Taktes.
Die Endpunkte für Schläge werden durch die Kontexteigenschaften
baseMoment und beatStructure bestimmt. beatStructure
ist eine Scheme-Liste, die die Länge jedes Schlages im Takt in
Einheiten von baseMoment angibt. Der Standard von
baseMoment ist Eins durch den Numerator der Taktangabe. Der
Standardwert jeder Längeneinheit baseMoment ist ein
einzelner Taktschlag.
\time 5/16 c16^"default" c c c c | \set Timing.beatStructure = 2,3 c16^"(2+3)" c c c c | \set Timing.beatStructure = 3,2 c16^"(3+2)" c c c c |
Wenn eine häufige Taktart benützt wird, muss beamExceptions
deaktiviert werden, damit beatStructure funktionieren kann.
Der \set Timing.beamExceptions = #'()-Befehl kann immer eingefügt
werden, wenn die Bebalkung von beatStructure bestimmt werden soll.
\time 4/4 a8^"default" a a a a a a a \set Timing.baseMoment = \musicLength 4 \set Timing.beatStructure = 1,1,1,1 a8^"no change" a a a a a a a \set Timing.beamExceptions = #'() \set Timing.baseMoment = \musicLength 4 \set Timing.beatStructure = 1,1,1,1 a8^"changed" a a a a a a a
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 \set Staff.beatStructure = 2,3,2 \new Voice = one { \relative { a'8 a a a a a a } } \new Voice = two { \relative { \voiceTwo \set Voice.beatStructure = 1,3,3 f'8 f f f f f f } } >>
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 applied to Voice by dafault -- does not work correctly % Because of autogenerated voices, all beating will % be at baseMoment (1 . 8) \set beatStructure = 3,1,1,2 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >> % Works correctly with context Staff specified \set Staff.beatStructure = 3,1,1,2 << {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
Der Wert von baseMoment kann angepasst werden, um das
Bebalkungsverhalten zu ändern, wenn gewünscht. In diesem Fall
muss der Wert von beatStructure so gesetzt werden, dass
er kompatibel mit dem neuen Wert von baseMoment ist.
\time 5/8 \set Timing.baseMoment = \musicLength 16 \set Timing.beatStructure = 7,3 \repeat unfold 10 { a16 }
baseMoment ist ein Moment, eine Einheit an musikalischer
Dauer. Eine Anzahl vom Typus Moment wird durch die Scheme-Funktion
ly:make-moment erstellt. Zu mehr Information über diese Funktion
siehe Verwaltung der Zeiteinheiten.
Der Standardwert von baseMoment ist Eins durch den Denominator
der Taktangabe. Alle Ausnahmen dieses Standards finden sich in der Datei
‘scm/time-signature-settings.scm’.
Bebalkung basierend auf beamExceptions
Besondere automatische Bebalkungsregeln (außer dass ein Balken auf einem
Taktschlag aufhört) sind in der beamExceptions-Eigenschaft
definiert.
\time 3/16 \set Timing.beatStructure = 2,1 \set Timing.beamExceptions = #'( ;start of alist (end . ;entry for end of beams ( ;start of alist of end points ((1 . 32) . (2 2 2)) ;rule for 1/32 beams -- end each 1/16 ))) %close all entries c16 c c | \repeat unfold 6 { c32 } |
beamExceptions ist eine Aliste mit einem Schlüssel der Regeltypen
(rule-type) und einem Wert der Bebalkungsregeln (beaming-rules).
Im Moment ist der einzige mögliche rule-type 'end für ein
Balkenende.
Beaming-rules ist eine Scheme-Aliste (oder eine paarige Liste), die den Balkentyp und die Gruppierung anzeigt, die auf Balken angewendet werden, welche Noten mit einer kürzesten Dauer des Balkentyps enthalten.
#'((beam-type1 . grouping-1) (beam-type2 . grouping-2) (beam-type3 . grouping-3))
Beam-type ist ein Scheme-Paar, das die Dauer eines Balkens anzeigt,
etwa (1 . 16) für ein Sechszehntel.
Grouping ist eine Scheme-Liste, die die auf den Balken anzuwendene Gruppierung anzeigt. Die Gruppierung wird in Einheiten des Balkentyps angegeben.
Achtung: Ein beamExceptions-Wert muss eine vollständige
Ausnahme-Liste sein. Das heißt, dass jede Ausnahme, die angewendet werden
soll, auch in die Einstellungen mit aufgenommen werden muss. Es ist nicht
möglich, nur eine der Einstellungen zu ändern, zu entfernen oder hinzuzufügen.
Das mag seltsam erscheinen, bedeutet aber, dass die aktuellen
Balkenregeln bekann sein müssen, um ein neues Bebalkungsmuster definieren zu können.
Wenn die Taktart geändert wird, werden neue Standardwerte für
Timing.baseMoment, Timing.beatStructure und
Timing.beamExceptions definiert. Wenn die Taktart
definiert wird, werden die automatischen Bebalkungsregeln für den
Timing-Kontext auf den Standard zurückgesetzt.
\relative a' { \time 6/8 \repeat unfold 6 { a8 } % group (4 + 2) \set Timing.beatStructure = 4,2 \repeat unfold 6 { a8 } % go back to default behavior \time 6/8 \repeat unfold 6 { a8 } }
Die automatischen Standardeinstellungen für die Bebalkung einer Taktart werden in der Datei ‘scm/time-signature-settings.scm’ bestimmt. Änderungen der automatischen Bebalkungsregeln für eine Taktart werden in Taktangabe beschrieben.
Die meisten automatischen Bebalkungsregeln für eine Taktart enthalten einen
Eintrag für beamExceptions. Beispielsweise wird in einem 4/4-Takt
versucht, den Takt in zwei Hälfen zu teilen, wenn nur Achtelnoten vorkommen.
Die beamExceptions-Regel kann die beatStructure-Einstellung
überschreiben, wenn beamExceptions nicht zurückgesetzt wird:
\time 4/4 \set Timing.baseMoment = \musicLength 8 \set Timing.beatStructure = 3,3,2 % This won't beam (3 3 2) because of beamExceptions \repeat unfold 8 {c''8} | % This will beam (3 3 2) because we clear beamExceptions \set Timing.beamExceptions = #'() \repeat unfold 8 {c''8}
Auf gleiche Art werden Achtelnoten im 3/4-Takt über den ganzen Takt hin
mit Balken versehen. Damit Achtelnoten im 3/4-Takt auf jedem Schlag
einen neuen Balken erhalten, muss beamExceptions verändert werden:
\time 3/4 % by default we beam in (6) due to beamExceptions \repeat unfold 6 {a8} | % This will beam (1 1 1) due to beatLength \set Timing.beamExceptions = #'() \repeat unfold 6 {a8}
In Notenstichen der romantischen und klassischen Periode wird teilweise auch
ein halber Takt Achtelnoten im 3/4-Takt mit einem Balken versehen, moderner
Notenstich vermeidet dies jedoch, um nicht den falschen Eindruck eines
6/8-Taktes entstehen zu lassen (siehe Gould, S. 153). Eine ähnliche Situation
entsteht im 3/8-Takt. Dieses Verhalten wird durch
die Eigenschaft beamHalfMeasure bestimmt, welche sich nur auf
Takte mit einer 3 im Zähler auswirkt:
\relative a' { \time 3/4 r4. a8 a a | \set Timing.beamHalfMeasure = ##f r4. a8 a a | }
Wie die automatische Bebalkung funktioniert
Wenn die automatische Bebalkung aktiviert ist, wird die Platzierung
der automatischen Balken durch die Kontexteigenschaften
baseMoment, beatStructure und beamExceptions
bestimmt.
Die folgenden Regeln, in der Reihenfolge ihrer Priorität, gelten, wenn das Aussehen der Balken bestimmt wird:
-
Wenn ein manueller Balken mit
[...]definiert ist, wird er gesetzt, andernfalls -
wenn eine Balkenendung-Regel für den Balkentyp in
beamExceptionsdefiniert ist, wird sie verwendet, um die gültigen Plätze für Balkenenden zu berechnen, andernfalls -
wenn eine Balkenendung-Regel für einen größeren Balkentyp
in
beamExceptionsdefiniert ist, wird sie verwendet, um die gültigen Plätze für Balkenenden zu berechnen, andernfalls -
benutze die Werte von
baseMomentundbeatStructure, um die Enden der Balken im Takt zu definieren und beende Balken am Ende jedes Taktes.
In den oben genannten Regeln ist der Balkentyp die Dauer der kürzesten Note der bebalkten Gruppe.
Die Standardbebalkungsregeln finden sich in der Datei ‘scm/time-signature-settings.scm’.
Ausgewählte Schnipsel
Subdividing beams
The beams of consecutive 16th (or shorter) notes are, by default, not
subdivided. That is, the three (or more) beams stretch unbroken over
entire groups of notes. This behavior can be modified to subdivide the
beams into sub-groups by setting the property subdivideBeams.
When set, multiple beams will be subdivided at intervals defined by the
current value of baseMoment by reducing the multiple beams to
the number of beams that indicates the metric value of the subdivision.
If the group following the division is shorter than the current metric
value (usually because the beam is incomplete) the number of beams
reflects the longest possible subdivision group. However, if there is
only one note left after the division this restriction isn’t applied.
Note that baseMoment defaults to one over the denominator of the
current time signature if not set explicitly. It must be set to a
fraction giving the duration of the beam sub-group using the
ly:make-moment function, as shown in this snippet. Also, when
baseMoment is changed, beatStructure should also be
changed to match the new baseMoment:
\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 baseMoment = \musicLength 8 \set beatStructure = 2,2,2,2 c32[ c c c c c c c] % Set beam sub-group length to a sixteenth note \set baseMoment = \musicLength 16 \set beatStructure = 4,4,4,4 c32[ c c c c c c c] % Shorten beam by 1/32 \set baseMoment = \musicLength 8 \set beatStructure = 2,2,2,2 c32[ c c c c c c] r32 % Shorten beam by 3/32 \set baseMoment = \musicLength 8 \set beatStructure = 2,2,2,2 c32[ c c c c] r16. r2 }
Bebalkung nach Taktschlag
Sekundäre Balken können in die Richtung gesetzt werden, die ihrer rhythmischen Zugehörigkeit entspricht. Der erste Balken ist zusammengefasst (Standard), der zweite Sechszehntelbalken zeigt den Taktschlag an.
\relative c'' { \time 6/8 a8. a16 a a \set strictBeatBeaming = ##t a8. a16 a a }
Dirigierzeichen, 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 { \new Voice \relative c'' { \time 9/8 g8 g d d g g a( bes g) | \set Timing.beatStructure = 2,2,2,3 g8 g d d g g a( bes g) | \time 4,5 9/8 g8 g d d g g a( bes g) | \time 5/8 a4. g4 | } \layout { \context { \Staff \consists "Measure_grouping_engraver" } } }
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 \set Score.baseMoment = \musicLength 8 \set Score.beatStructure = 3,4,3 << \new Staff { c8 c c c c c c c c c } \new Staff { % Modify beaming for just this staff \set Staff.beatStructure = 6,4 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 \set Voice.beatStructure = 6,4 a8 a a a a a a a a a } >> } >> }
Siehe auch
Installierte Dateien: ‘scm/beam-settings.scm’.
Schnipsel: Rhythms.
Referenz der Interna: Auto_beam_engraver, Beam, BeamForbidEvent, beam-interface.
Bekannte Probleme und Warnungen
Wenn eine Partitur endet, während ein automatischer Balken noch
nicht beendet wurde und weiterhin Noten erwartet, 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. Eine Notlösung für
dieses Probelm ist, den letzten Balken in der Stimme oder
Partitur manuell zu setzen.
Die Standardeinstellungen weisen den dem
Score-Kontext zu. Das bedeutet, dass das Setzen der
Taktart (time signature) in einem System sich auch auf die Bebalkung
der anderen Systeme auswirkt. Darum verändert eine neue Taktart in einem
späteren System auch alle früher vorgenommenen eigenen Einstellungen
der Bebalkung eines anderen Systems. Eine Möglichkeit, dieses Problem zu
vermeiden, ist es, die Taktart nur in einem System zu setzen.
<< \new Staff { \time 3/4 \set Timing.baseMoment = \musicLength 8 \set Timing.beatStructure = 1,5 \repeat unfold 6 { a8 } } \new Staff { \repeat unfold 6 { a8 } } >>
Die Standardbebalkungsregeln für die Taktart können auch verändert werden, sodass die gewünschte Bebalkung immer benützt wird. Veränderungen der automatischen Bebalkungsregeln für eine Taktart sind in Taktangabe beschrieben.
<< \new Staff { \overrideTimeSignatureSettings 3/4 % timeSignatureFraction 1/8 % baseMomentFraction 1,5 % beatStructure #'() % beamExceptions \time 3/4 \repeat unfold 6 { a'8 } } \new Staff { \time 3/4 \repeat unfold 6 { a'8 } } >>
| [ << Musikalische Notation ] | [Anfang][Inhalt][Index] | [ Spezielle Notation >> ] |
| [ < Automatische Balken ] | [ Nach oben : Balken ] | [ Manuelle Balken > ] |
![[image of music]](../65/lily-6faa8d5e.png)
![[image of music]](../d4/lily-c33c6af0.png)
![[image of music]](../f5/lily-78c72305.png)
![[image of music]](../25/lily-5292edb2.png)
![[image of music]](../15/lily-ef75f01d.png)
![[image of music]](../02/lily-421521de.png)
![[image of music]](../1e/lily-e965a0ad.png)
![[image of music]](../bc/lily-fb973263.png)
![[image of music]](../c3/lily-a81eaeb8.png)
![[image of music]](../2d/lily-40b1adf2.png)
![[image of music]](../46/lily-310bcf31.png)
![[image of music]](../28/lily-7b225ceb.png)
![[image of music]](../ba/lily-9afcfbfc.png)
![[image of music]](../6a/lily-10201b5b.png)
![[image of music]](../3b/lily-d3b025bd.png)
![[image of music]](../9f/lily-76a91694.png)