[ << Musikalische Notation ] | [Top][Contents][Index] | [ Spezielle Notation >> ] |
[ < Automatische Balken ] | [ Up : 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
beamExceptions
definiert 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
beamExceptions
definiert ist, wird sie verwendet, um die gültigen Plätze für Balkenenden zu berechnen, andernfalls - benutze die Werte von
baseMoment
undbeatStructure
, 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 beams of more than two stems stretch unbroken
over entire groups of notes. This behavior can be modified to subdivide
the beams into sub-groups by setting the property subdivideBeams
to true (#t
). When set, a number of beamlets between two
consecutive stems are removed at intervals multiple beams will be
subdivided at intervals to match the metric value of the subdivision.
Properties minimumBeamSubdivisionInterval
and
maximumBeamSubdivisionInterval
allow configuring limits of
automatic beam subdivision: the minimum rhythmic interval at which to
subdivide beams and the number of beamlets removed depending on the
interval respectively. If the numerator of
maximumBeamSubdivisionInterval
is not a power of 2, the
smaller rhythmic intervals considered for subdivision are
maximumBeamSubdivisionInterval
divided by powers of 2 and
stay greater than or equal to minimumBeamSubdivisionInterval
. If
maximumBeamSubdivisionInterval
< minimumBeamSubdivisionInterval
,
then the depths of beam subdivision are limited to
maximumBeamSubdivisionInterval
, but not the frequency/intervals,
therefore possibly deviating from the correct expected metric value. If
respectIncompleteBeams
is set to true (##t
), the depth of the
subdivision (number of beams) reflects the longest possible subdivision interval
within the remaining length of the beam from the current stem. However, the
last two stems of the beam are exempt from this rule.
\relative c'' { c32[ c c c c c c c] \set subdivideBeams = ##t c32[ c c c c c c c] % Set minimum beam subdivision interval to 1/8 just for this beam \once \set minimumBeamSubdivisionInterval = \musicLength 8 c32[ c c c c c c c] % Set maximum beam subdivision interval to 1/16 just for this beam \once \set maximumBeamSubdivisionInterval = \musicLength 16 c32[ c c c c c c c] % Set maximum beam subdivision interval to 3/8 just for this beam \once \set maximumBeamSubdivisionInterval = \musicLength 8*3 [ \repeat unfold 16 c64 ] r2. % Set maximum beam subdivision interval to 1/64 to limit subdivision depth, % despite not being metrically correct \once \set minimumBeamSubdivisionInterval = \musicLength 32 \once \set maximumBeamSubdivisionInterval = \musicLength 64 [ \repeat unfold 32 c128 ] r2. % Shorten beam by 1/32 c32[ c c c c c c] r32 % Shorten beam by 3/32 c32[ c c c c] r16. % Respect the incomplete beams of the previous two examples \set respectIncompleteBeams = ##t c32[ c c c c c c] r32 % no visual change here as last two stems are exempt from this % special rule c32[ c c c c] r16. }
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 % baseMoment 1,5 % beatStructure #'() % beamExceptions \time 3/4 \repeat unfold 6 { a'8 } } \new Staff { \time 3/4 \repeat unfold 6 { a'8 } } >>
[ << Musikalische Notation ] | [Top][Contents][Index] | [ Spezielle Notation >> ] |
[ < Automatische Balken ] | [ Up : Balken ] | [ Manuelle Balken > ] |