1.2.4 Balken
| Automatische Balken | ||
| Einstellung von automatischen Balken | ||
| Manuelle Balken | ||
| Gespreizte 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
Wenn diese automatischen Entscheidungen nicht gut genug sind, können
die Balken auch explizit eingegeben werden, siehe
Manuelle Balken. Es können auch bestimmte
Balkenmuster, die sich vom Standard unterscheiden, definiert werden.
Die Standard-Regeln für die gebräuchlichsten Taktarten sind
in der Datei ‘scm/auto-beam.scm’ definiert. Wenn
dort keine Balkenregeln für die aktuelle Taktart vorhanden
sind, wird die Bebalkung geregelt von drei Kontexteigenschaften:
measureLength, beatLength und beatGrouping.
Sowohl die Balkenregeln als auch diese Kontexteigenschaften
können geändert werden, siehe Einstellung von automatischen Balken.
|
Achtung: Wenn Balken eingesetzt werden, um Melismen in Gesang
anzuzeigen, müssen die automatische Bebalkung ausgeschaltet werden
mit dem Befehl |
Automatische Bebalkung kann 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
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
}
Balken für weit außeinander 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
}
Siehe auch
Notationsreferenz: Manuelle Balken, Einstellung von automatischen Balken.
Installierte Dateien: ‘scm/auto-beam.scm’.
Schnipsel: Rhythmus.
Referenz der Interna: Beam.
Bekannte Probleme und Warnungen
Automatische Bebalkung von weit außeinander liegenden Noten (wobei der Balken als Knie erscheint) kann nicht mit versteckten Systemen benutzt werden. Siehe Systeme verstecken.
Balken können mit Notenköpfen und Versetzungszeichen in anderen Stimmen zusammenstoßen.
Einstellung von automatischen Balken
Die Position und Länge der automatischen Balken wird bestimmt von bestimmten Regeln, wie beschrieben in Automatische Balken. Es gibt zwei einander ausschließende Arten, diese Regeln zu verändern. Mit der ersten Art verändert man Gruppen von Noten, die einer bestimmten Taktart entsprechend mit Balken versehen werden. Das muss manuell getan werden für die Taktarten, für welche keine fertigen Regeln definiert worden sind. Die zweite Methode verändert die Endpunkte der Balken und muss eingesetzt werden für die Taktarten, für welche schon Regeln definiert worden sind. Regeln sind definiert für die Taktarten 3/2, 3/4, 4/4, 2/4, 4/8, 4/16, 6/8, 9/8 und 12/8.
Die Gruppierung von Noten verändern
Wenn keine Regeln für die Beendung von Balken für die aktuelle
Taktart vorhanden sind, wird die Bebalkung von drei
Kontext-Eigenschaften kontrolliert:
measureLength, beatLength und beatGrouping.
Diese Eigenschaften können in den Score, Staff oder
Voice-Kontexten gesetzt werden, um ihre Wirkungsweise zu
begrenzen.
Durch sie werden die Balken wie folgt bestimmt:
Balken können überall beginnen (außer ein Balken ist schon aktiv).
Balken enden zu den Werten, die beatGrouping und
beatLength bestimmten, nach folgenden Regeln:
- Wenn
beatGroupingundbeatLengthden gleichen Wert wiemeasureLengthhaben, wirdbeatGroupingbenutzt, um die Endpunkte der Balken zu bestimmen. - Wenn
beatGroupingundbeatLengthnicht mitmeasureLengthübereinstimmen, wirdbeatLengthbenutzt, um die Endpunkte der Balken zu bestimmen.
Standardmäßig werden diese Eigenschaften durch die Taktart bestimmt,
die mit \time gesetzt wurde. Die measureLength
(Taktlänge) hat standardmäßig genau die gleiche Länge wie die
Taktlänge, die durch \time bestimmt wurde, und der
Standardwert für beatLength (Schlag-Länge) wird durch
den Nenner des Taktart-Bruches bestimmt.
Sowohl measureLength als auch beatLength sind
Momente, Einheiten 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.
beatGrouping ist eine Liste an Integren, die die Anzahl
von Zählzeiten für jede Gruppe darstellen.
Ausgewählte Schnipsel
Notengruppen
Balkengruppen können mit der beatGrouping-Eigenschaft geändert
werden:
\relative c'' {
\time 5/16
\set beatGrouping = #'(2 3)
c8[^"(2+3)" c16 c8]
\set beatGrouping = #'(3 2)
c8[^"(3+2)" c16 c8]
}
By specifying the context, the effect of beatGrouping can be
limited to the context specified, and values set in higher-level
contexts overridden:
\score {
\new Staff <<
\time 7/8
\new Voice {
\relative c'' {
\set Staff.beatGrouping = #'(2 3 2)
a8 a a a a a a
}
}
\new Voice {
\relative c' {
\voiceTwo
\set Voice.beatGrouping = #'(1 3 3)
f8 f f f f f f
}
}
>>
}
The property measureLength determines where bar lines
should be inserted and, with beatLength and
beatGrouping, how automatic beams should be generated
for time signatures for which no beam end rules are defined.
\time 3/4 % auto beam on 1/4 note groups
a16 a a a a a a a a a a a a a a a
\time 12/16 % no defined auto-beaming for this time sig
a16 a a a a a a a a a a a a a a a
\time 3/4
a16 a a a a a a a a a a a a a a a
\set Score.timeSignatureFraction = #'(12 . 16) %keep 3/4 beaming
% due to beatLength
a16 a a a a a a a a a a a a a a a
\set Score.beatLength = #(ly:make-moment 1 8) %beam on 1/8 notes
a16 a a a a a a a a a a a a a a a
\set Score.beatLength = #(ly:make-moment 1 16)
\set Score.beatGrouping = #'(3 4 2 3) %beam on 3/16, 7/16, 9/16, 12/16
a16 a a a a a a a a a a a a a a a
Sub-dividing beams
The beams of consecutive 16th (or shorter) notes are, by default, not
sub-divided. That is, the three (or more) beams stretch unbroken over
entire groups of notes. This behavior can be modified to sub-divide
the beams into sub-groups by setting the property
subdivideBeams. When set, multiple beams will be sub-divided at
intervals defined by the current value of beatLength by reducing
the multiple beams to just one beam between the sub-groups. Note that
beatLength 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 make-moment
function, as shown here:
\relative c'' {
c32[ c c c c c c c]
\set subdivideBeams = ##t
c32[ c c c c c c c]
% Balkenuntergruppenlänge als Achtel definieren
\set beatLength = #(ly:make-moment 1 8)
c32[ c c c c c c c]
% Balkenuntergruppenlänge als Sechszehntel definieren
\set beatLength = #(ly:make-moment 1 16)
c32[ c c c c c c c]
}
Conducting signs, measure grouping signs
Options to group beats within a bar are available through the Scheme
function set-time-signature, which takes three arguments: the
number of beats, the beat length, and the internal grouping of beats in
the measure. If the Measure_grouping_engraver is included, the
function will also create MeasureGrouping signs. Such signs
ease reading rhythmically complex modern music. In the example, the
9/8 measure is subdivided in 2, 2, 2 and 3. This is passed to
set-time-signature as the third argument: '(2 2 2 3):
\score {
\relative c'' {
#(set-time-signature 9 8 '(2 2 2 3))
#(revert-auto-beam-setting '(end * * 9 8) 3 8)
#(override-auto-beam-setting '(end 1 8 9 8) 1 4)
#(override-auto-beam-setting '(end 1 8 9 8) 2 4)
#(override-auto-beam-setting '(end 1 8 9 8) 3 4)
g8 g d d g g a( bes g) |
#(set-time-signature 5 8 '(3 2))
a4. g4
}
\layout {
\context {
\Staff
\consists "Measure_grouping_engraver"
}
}
}
Die Endpunkte von Balken bestimmen
In normalen Taktarten können automatisch gesetzte Balken an jeder
Note beginnen, aber nur an einigen bestimmten Positionen innerhalb
des Taktes beendet werden. Diese Positionen werden durch die
Eigenschaften in autoBeamSettings bestimmt. Sie bestehen
aus einer Liste an Regeln, die bestimmen, wo Balken enden können.
Die Standardeinstellungen dieser automatischen Einstellungen
befinden sich in der Datei ‘scm/auto-beam.scm’.
Diese Methode muss benutzt werden, wenn die Einstellungen
für die Balken in üblichen Taktarten verändert werden sollen, und
sie ist auch in vielen anderen Taktarten gut anzuwenden, wenn
die Taktart sich oft ändert. Weil die Regeln so formuliert werden
können, dass sie sich auf eine bestimmte Taktart beziehen, müssen
sie nur einmal für jede Taktart definiert werden. Wenn man das
selbe Ergebnis zu erreichen versucht, indem man die Zählzeiten
gruppiert, müsste man einen \set-Befehl nach jedem
Taktwechsel benutzen, wenn nicht die Standardwerte für die
Taktart passend sind.
Um eine neue Regel zu der Liste hinzuzufügen, muss folgende Syntax verwendet werden:
#(override-auto-beam-setting '(Balken-Limit Balken-Zähler Balken-Nenner Taktart-Zähler Taktart-Nenner) Moment-Zähler Moment-Nenner [Kontext])
wobei
-
Balken-Limitdie Art der Balkenbegrenzung ist. Das kann entweder der Wertbegin(Anfang) oderend(Ende) sein, aber nurendhat eine Auswirkung. -
Balken-Zähler/Balken-Nennerist die Balken-Dauer, auf die die Regel sich bezieht. Ein Balken hat per Definition die Dauer seiner kürzesten Note. Wenn sowohlBalken-Zählerals auchBalken-Nennerauf'*'gesetzt werden, gilt die Regel für alle Dauern. -
Taktart-Zähler/Taktart-Nennerbestimmen die Taktart, auf die die Regel sich bezieht. WennTaktart-ZählerundTaktart-Nennerauf'*'gesetzt werden, gilt die Regel für alle Taktarten. -
Moment-Zähler/Moment-Nennerist die Position im Takt, an welcher der Balken aufhören soll. -
Kontextist optional und bestimmt den Kontext, in welchem die Änderungen vorgenommen werden sollen. Der Standard ist'Voice.#(score-override-auto-beam-setting '(A B C D) E F)ist gleichbedeutend mit#(override-auto-beam-setting '(A B C D) E F 'Score).
Wenn beispielsweise die automatischen Balken immer auf der ersten Viertel enden sollen, unabhängig von der Taktart oder Dauer des Balkens, kann
a8 a a a a a a a #(override-auto-beam-setting '(end * * * *) 1 4) a8 a a a a a a a
benutzt werden.
Balkenregeln können aber auch auf Notengruppen beschränkt werden, deren kürzeste Note einen bestimmten Wert hat:
\time 2/4 % 1/16-Balken für alle Taktarten beim 1/16-Moment beenden #(override-auto-beam-setting '(end 1 16 * *) 1 16) a16 a a a a a a a | a32 a a a a16 a a a a a | % 1/23-Balken für alle Taktarten beim 1/16-Moment beenden #(override-auto-beam-setting '(end 1 32 * *) 1 16) a32 a a a a16 a a a a a |
Balkenregeln können so definiert werden, dass sie nur in bestimmten Taktarten angewendet werden:
\time 5/8 % Balken aller Längen im 5/8-Takt am 2/8-Moment beenden #(override-auto-beam-setting '(end * * 5 8) 2 8) c8 c d d d \time 4/4 e8 e f f e e d d \time 5/8 c8 c d d d
Wenn mehrfache Stimmen benutzt werden, muss der Staff-Kontext
angegeben werden, wenn die Balkenregeln auf alle Stimmen im System
angewendet werden sollen:
\time 7/8
% Rhythmus 3-1-1-2
% Kontext nicht angegeben - funktioniert nicht richtig
#(override-auto-beam-setting '(end * * 7 8) 3 8)
#(override-auto-beam-setting '(end * * 7 8) 4 8)
#(override-auto-beam-setting '(end * * 7 8) 5 8)
<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
% Funktioniert richtig mit angegebenem Kontext
#(override-auto-beam-setting '(end * * 7 8) 3 8 'Staff)
#(override-auto-beam-setting '(end * * 7 8) 4 8 'Staff)
#(override-auto-beam-setting '(end * * 7 8) 5 8 'Staff)
<< {a8 a a a16 a a a a8 a} \\ {f4. f8 f f f} >>
|
Achtung: Wenn eine unerwartete Bebalkung auftritt, schauen Sie zuerste die Balkeneinstellungen in ‘scm/auto-beam.scm’ nach, ob sich hier Überschneidungen ergeben, weil die Balkenenden, die dort definiert sind, auch noch weiterhin wirksam sind zusätzlich zu den von Ihnen definierten. |
Jede ungewollte oder störende Balkenbeendigung aus den Standard-Eingesllungen muss für Ihre Taktart rückgängig gemacht werden. Existierende automatische Bebalkungsregeln werden entfernt mit folgender Syntax:
#(revert-auto-beam-setting '(Balken-Limit Balken-Zähler Balken-Nenner Taktart-Zähler Taktart-Nenner) Moment-Zähler Moment-Nenner [Kontext])
wobei Balken-Limit, Balken-Zähler, Balken-Nenner,
Taktart-Zähler, Taktart-Nenner, Moment-Zähler,
Moment-Nenner sowie Kontext die gleichen sind
wie oben erklärt.
\time 4/4 a16 a a a a a a a a a a a a a a a % Regel annullieren, dass 1/16-Balken im 4/4-Takt am 1/4-Moment enden #(revert-auto-beam-setting '(end 1 16 4 4) 1 4) a16 a a a a a a a a a a a a a a a
Die Regel in einer revert-auto-beam-setting-Definition
muss exakt der ursprünglichen Regel entsprechen. Dabei werden
keine Platzhalter akzeptiert.
\time 1/4 #(override-auto-beam-setting '(end 1 16 1 4) 1 8) a16 a a a #(revert-auto-beam-setting '(end 1 16 * *) 1 8) % Das macht es nicth rückgängig a a a a #(revert-auto-beam-setting '(end 1 16 1 4) 1 8) % Das schon a a a a
Ausgewählte Schnipsel
Balkengruppen für 7/8-Takte
Es gibt keine automatischen Balkengruppen für 7/8-Takte. Wenn diese Taktart benötigt wird, müssen die Gruppierungen definiert werden. Um beispielsweise alle Noten in 2/8-3/8-2/8 aufzuteilen, müssen Balkenenden für 2/8 und 5/8 definiert werden:
\relative c'' {
\time 7/8
% Rhythmus 2-3-2
a8 a a a a a a
#(override-auto-beam-setting '(end * * 7 8) 2 8)
#(override-auto-beam-setting '(end * * 7 8) 5 8)
a8 a a a a a a
}
Reverting default beam endings
To typeset beams grouped 3-4-3-2 in 12/8 it is necessary first
to override the default beam endings in 12/8, and then to set up the
new beaming endings:
\relative c'' {
\time 12/8
% Default beaming
a8 a a a a a a a a a a a
% Revert default values in scm/auto-beam.scm for 12/8 time
#(revert-auto-beam-setting '(end * * 12 8) 3 8)
#(revert-auto-beam-setting '(end * * 12 8) 3 4)
#(revert-auto-beam-setting '(end * * 12 8) 9 8)
a8 a a a a a a a a a a a
% Set new values for beam endings
#(override-auto-beam-setting '(end * * 12 8) 3 8)
#(override-auto-beam-setting '(end * * 12 8) 7 8)
#(override-auto-beam-setting '(end * * 12 8) 10 8)
a8 a a a a a a a a a a a
}
Vordefinierte Befehle
Bekannte Probleme und Warnungen
Wenn eine Partitur aufhört, während ein automatischer Balken noch
nicht geschlossen ist und noch Noten erwartet, wird dieser letzte
Balken überhaupt nicht ausgegeben. Das gilt auch für polyphone
Stimmen, die mit << … \\ … >> gesetzt wurden.
Wenn eine polyphone Stimme endet, während ein Balken noch Noten
erwartet, wird dieser Balken nicht gesetzt.
Siehe auch
Schnipsel: Rhythmus.
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
}
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
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]
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] }
% in nichtgespreizte Balken zurückverwandeln
\override Beam #'grow-direction = #'()
{ g32[ a b c] }
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: Rhythmus.
Andere Sprachen: English, français, español.
Über die automatische Sprachauswahl.