| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Useful concepts and properties
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Input modes
Die Art, wie die Notation einer Eingabedatei interpretiert wird, hängt vom aktuellen Eingabemodus ab.
Chord (Akkordmodus)
Man erreicht ihn durch den Befehl \chordmode. Hierdurch
wird die Eingabe entsprechend der Syntax der Akkordnotation
interpretiert, siehe Notation von Akkorden. Akkorde werden als
Noten auf einem System dargestellt.
Der Akkordmodus wird auch mit dem Befehl \chords initiiert.
Dadurch wird gleichzeitig ein neuer ChordNames-Kontext
erstellt, die Eingabe entsprechend der Syntax der Akkordnotation
interpretiert und als Akkordbezeichnungen in einem
ChordNames-Kontext dargestellt. Siehe Akkordbezeichnungen drucken.
Drum (Schlagzeugmodus)
Man erreicht ihn mit dem Befehl \drummode. Die Eingabe
wird entsprechend der Syntax der Schlagzeugnotation interpretiert,
siehe Grundlagen der Schlagzeugnotation.
Der Schlagzeugmodus wird auch mit dem Befehl \drums aktiviert.
Dadurch wird gleichzeitig ein neuer DrumStaff-Kontext
erstellt, die Eingabe entsprechend der Syntax der Schlagzeugnotation
interpretiert und als Schlagzeugsymbole auf einem Schlagzeugsystem
dargestellt. Siehe Grundlagen der Schlagzeugnotation.
Figure (Ziffernmodus)
Man erreicht ihn mit dem Befehl \figuremode. Die Eingabe
wird entsprechend der Syntax für Generalbass interpretiert, siehe
Eingabe des Generalbass’.
Der Ziffernmodus wird auch mit dem Befehl \figures aktiviert.
Dadurch wird gleichzeitig ein neuer FiguredBass-Kontext
erstellt, die Eingabe entsprechend der Syntax für Generalbass
interpretiert und als Generalbassziffern im FiguredBass-Kontext
dargestellt. Siehe Grundlagen des Bezifferten Basses.
Fret/tab (Griffsymbol-/Tabulaturmodus)
Es gibt keinen besonderen Eingabemodus für Griffsymbole und Tabulaturen.
Um Tabulaturen zu erstellen, werden Noten oder Akkorde im
Notenmodus notiert und dann in einem TabStaff-Kontext
interpretiert, siehe
Standardtabulaturen.
Um Griffsymbole oberhalb eines Notensystems zu erstellen, gibt
es zwei Möglichkeiten. Man kann den FretBoards-Kontext
einsetzen (siehe Automatische Bund-Diagramme) oder sie können
als Beschriftung über den Noten eingefügt werden, indem man
den \fret-diagram-Befehl einsetzt (siehe
Bund-Diagramm-Beschriftung).
Lyrics (Gesangstextmodus)
Man erreicht ihn mit dem Befehl \lyricmode. Die Eingabe
wird entsprechend der Syntax für Silben eines Gesangstextes
interpretiert, wobei optional Dauern und verknüpfte
Gesangstextveränderer möglich sind, siehe Notation von Gesang.
Der Gesangstextmodus wird auch durch den Befehl \addlyrics
aktiviert. Dadurch wird auch ein neuer Lyrics-Kontext
erstellt und ein impliziter \lyricsto-Befehl, der den
nachfolgenden Gesangstext mit der vorhergehenden Musik verknüpft.
Markup (Textbeschriftungsmodus)
Man erreicht ihn mit dem Befehl \markup. Die Eingabe wird
entsprechend der Syntax für Textbeschriftung interpretiert, siehe
Textbeschriftungsbefehle.
Note (Notenmodus)
Das ist der Standardmodus. Er kann auch mit dem Befehl
\notemode gefordert werden. Die Eingabe wird als Tonhöhen,
Dauern, Beschriftung usw. interpretiert und als musikalische
Notation auf einem Notensystem gesetzt.
Es ist normalerweise nicht nötig, den Notenmodus extra anzugeben, aber es kann in bestimmten Situationen durchaus nützlich sein, etwa wenn man in einem Gesangstext-, Akkord- oder einem anderen Modus arbeitet aber ein Zeichen braucht, das nur im Notenmodus benutzt werden kann.
Um etwa Dynamikzeichen vor die Nummern von unterschiedlichen Strophen zu setzen, muss man den Notenmodus betreten:
{ c4 c4 c4 c4 } \addlyrics { \notemode{ \set stanza = \markup{ \dynamic f 1. } } To be sung loudly } \addlyrics { \notemode{ \set stanza = \markup{ \dynamic p 2. } } To be sung quietly }
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Direction and placement
Die Platzierung und Richtung von Objekten ist im Notensatz oft durch eine enge Auswahl begrenzt: Notenhälse beispielsweise können entweder nach oben oder nach unten zeigen, Gesangstext, Dynamikzeichen und andere Ausdrucksbezeichnungen können über oder unter dem System gesetzt werden, Text kann rechts, links oder mittig ausgerichtet werden usw. Die meisten dieser Entscheidungen können LilyPond direkt überlassen werden; in einigen Fällen kann es allerdings nötig sein, eine bestimmte Richtung oder eine Position zu erzwingen.
Richtungseinstellung von Artikulationszeichen
Standardmäßig sind bestimmte Objekte immer nach oben oder unten ausgerichtet, wie Dynamikzeichen oder Fermaten, während andere Objekte zwischen oben und unten wechseln, was vor allem von der Richtung der Notenhälse abhängt und etwa Bögen und Akzente betrifft.
Die Standardeinstellungen können verändert werden, indem dem
Artikulationszeichen ein Ausrichtungsmarkierer vorangeht. Drei
derartige Ausrichtungsmarkierer sind vorhanden: ^ (bedeutet „nach oben“), _
(bedeutet „nach unten“) bzw. - (bedeutet „Standardrichtung“
benutzen) normalerweise weggelassen werden. In diesem Fall wird
- angenommen. Eine Richtungsanweisung ist jedoch
immer erforderlich vor
\tweak-Befehlen
\markup-(Textbeschriftungs-)Befehlen
\tag-Befehlen
-"string"
-1
-., ->, --
Ausrichtungsmarkierer haben nur eine Auswirkung auf die nächste Note:
\relative { c''2( c) c2_( c) c2( c) c2^( c) }
Die direction-(Richtungs-)Eigenschaft
Die Position oder Richtung vieler Layoutobjekte wird von der
direction-Eigenschaft kontrolliert.
Der Wert der direction-Eigenschaft kann auf den Wert
1 gesetzt werden, was gleichbedeutend mit „nach oben“
bzw. „oberhalb“ ist, oder auf den Wert -1, was
„nach unten“ bzw. „unterhalb“ bedeutet. Die Symbole
UP und DOWN können anstelle von 1
und -1 benutzt werden. Die Standardausrichtung kann
angegeben werden, indem direction auf den Wert
0 oder CENTER gesetzt wird. In vielen Fällen
bestehen auch vordefinierte Befehle, mit denen die Ausrichtung
bestimmt werden kann. Sie haben die Form
\xxxUp, xxxDown, xxxNeutral
wobei xxxNeutral bedeutet: „Benutze die
Standardausrichtung“. Siehe auch
(learning)within-staff (Objekte innerhalb des Notensystems) in Abschnitt ‘within-staff (Objekte innerhalb des Notensystems)’ in Handbuch zum Lernen.
In wenigen Fällen, von denen Arpeggio das einzige häufiger
vorkommende Beispiel darstellt, entscheidet der Wert von
direction, ob das Objekt auf der rechten oder linken
Seite das Ursprungsobjektes ausgegeben wird. In diesem Fall
bedeutet -1 oder LEFT „auf der linken Seite“
und 1 oder RIGHT „auf der rechten Seite“. 0
oder CENTER bedeutet „benutze Standardausrichtung“.
Diese Ausrichtungsanzeigen wirken sich auf alle Noten aus, bis sie rückgängig gemacht werden:
\relative { c''2( c) \slurDown c2( c) c2( c) \slurNeutral c2( c) }
In polyphoner Musik ist es normalerweise besser, eine explizite
Stimme (voice zu erstellen, als die Richtung eines Objektes zu
ändern. Zu mehr Information siehe Mehrere Stimmen.
Handbuch zum Lernen: (learning)within-staff (Objekte innerhalb des Notensystems) in Abschnitt ‘within-staff (Objekte innerhalb des Notensystems)’ in Handbuch zum Lernen.
Notationsreferenz: Mehrere Stimmen.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Distances and measurements
In LilyPond gibt es zwei Arten von Abständen: absolute und skalierte.
Absolute Abstände werden benutzt, um Ränder, Einzüge und andere
Einzelheiten des Seitenlayouts zu bestimmen. Sie sind in den
Standardeinstellungen in Millimetern definiert. Abstände können
auch in anderen Einheiten definiert werden, indem folgende
Befehle auf die Zahl folgen: \mm, \cm,
\in (Zoll=2,54 cm) und \pt (Punkte, 1/72.27
eines Zolls). Abstände des Seitenlayouts können auch in
skalierbaren Einheiten (siehe folgenden Absatz) definiert
werden, indem man den Befehl \staff-space an die
Zahl hängt. Das Seitenlayout ist genauer beschrieben in
Seitenlayout.
Skalierbare Abstände werden immer in Einheiten von
Notenlinienabständen angegeben, oder seltener in halben
Notenlinienabständen. Ein Notenlinienabstand ist der
Abstand zwischen zwei benachbarten Linien eines Notensystems.
Der Standardwert dieser Einheit kann global geändert werden,
indem man die globale Notensystemgröße ändert, oder sie
kann lokal geändert werden, indem man die Eigenschaft
staff-space des StaffSymbol-Objekts mit
\override verändert. Skalierte Abstände verändern
sich automatisch entsprechend, wenn der Notenlinienabstand
entweder global oder lokal verändert wird, aber Schriftarten
verändern ihre Größe nur, wenn der Notenlinienabstand
global verändert wird. Mit dem globalen Notenlinienabstand
kann man also auf einfach Art und Weise die gesamte Größe
einer Partitur verändern. Zu Methoden, wie der globale
Notenlinienabstand verändert werden kann, siehe
Die Notensystemgröße einstellen.
Wenn nur eine ein Abschnitt einer Partitur in einer anderen
Größe erscheinen soll, etwa ein Ossia-Abschnitt in einer
Fußnote, kann die globale Notensystemgröße nicht einfach
geändert werden, weil sich diese Änderung auf die gesamte Partitur
auswirken würde. In derartigen Fällen muss die Größenänderung
vorgenommen werden, indem man sowohl die
staff-space-Eigenschaft von StaffSymbol als auch
die Größe der Schriftarten verändert. Eine Scheme-Funktion,
magstep, kann von einer Schriftartveränderung zu der
entsprechenden Veränderung in staff-space (Notenlinienabständen)
konvertieren. Zu einer Erklärung und Beispielen zu ihrer
Verwendung siehe
(learning)Länge und Dicke von Objekten in Abschnitt ‘Länge und Dicke von Objekten’ in Handbuch zum Lernen.
Handbuch zum Lernen: (learning)Länge und Dicke von Objekten in Abschnitt ‘Länge und Dicke von Objekten’ in Handbuch zum Lernen.
Notationsreferenz: Seitenlayout, Die Notensystemgröße einstellen.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Staff symbol properties
Die vertikale Position der Notenlinien und die Anzahl der Notenlinien kann gleichzeitig definiert werden. Wie das folgende Beispiel zeigt, werden Notenpositionen nicht durch die Position der Notenlinien verändert:
Achtung: Die 'line-positions-Eigenschaft
verändert die 'line-count-Eigenschaft. Die
Anzahl der Notenlinien wird implizit definiert durch
die Anzahl der Elemente in der Liste der Werte von
'line-positions.
\new Staff \with { \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7) } \relative { a4 e' f b | d1 }
Die Breite eines Notensystems kann verändert werden. Die Einheit ist in Notenlinienabständen. Die Abstände von Objekten in diesem Notensystem wird durch diese Einstellung nicht beeinflusst.
\new Staff \with { \override StaffSymbol.width = #23 } \relative { a4 e' f b | d1 }
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Spanners
Viele Objekte der Musiknotation erstrecken sich über mehrere Objekte oder gar mehrere Takte. Beispiele hierfür sind etwa Bögen, Balken, Triolenklammern, Volta-Klamern in Wiederholungen, Crescendo, Triller und Glissando. Derartige Objekte werden als „Strecker“ bezeichnet. Sie haben spezielle Eigenschaften, mit welchen ihre Eigenschaften und ihr Verhalten beeinflusst werden kann. Einige dieser Eigenschaften gelten für alle Strecker, andere beschränken sich auf eine Untergruppe der Strecker.
Alle Strecker unterstützen das spanner-interface
(Strecker-Schnittstelle).
Ein paar, insbesondere die, die zwischen zwei Objekten eine
gerade Linie ziehen, unterstützen auch das
line-spanner-interface (Strecker-Linienschnittstelle).
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
spanner-interface benutzenDiese Schnittstelle stellt zwei Eigenschaften zur Verfügung, die sich auf mehrere Strecker auswirken:
Die minimum-length-Eigenschaft
Die Mindestlänge eines Streckers wird durch die
minimum-length-Eigenschaft definiert. Wenn diese
Eigenschaft vergrößert wird, muss in den meisten Fällen
auch der Abstand der Noten zwischen den zwei Endpunkten
eines Streckers verändert werden. Eine Veränderung dieser
Eigenschaft hat jedoch auf die meisten Strecker keine Auswirkung,
weil ihre Länge aus anderen Berechnungen hervorgeht.
Einige Beispiele, wo die Eigenschaft benutzt wird, sind
unten dargestellt.
a~a a % increase the length of the tie -\tweak minimum-length #5 ~a
a1 \compressEmptyMeasures R1*23 % increase the length of the rest bar \once \override MultiMeasureRest.minimum-length = #20 R1*23 a1
a \< a a a \! % increase the length of the hairpin \override Hairpin.minimum-length = #20 a \< a a a \!
Diese Veränderung kann auch eingesetzt werden, um die Länge von Legato- und Phrasierungsbögen zu verändern:
a( a) a -\tweak minimum-length #5 ( a) a\( a\) a -\tweak minimum-length #5 \( a\)
Im Falle einiger Layoutobjekte wirkt sich die
minimum-length-Eigenschaft erst dann aus, wenn die
set-spacing-rods-Prozedur explizit aufgerufen wird.
Um das zu tun, sollte die springs-and-rods-Eigenschaft
auf ly:spanner::set-spacing-rods gesetzt werden. Die
Mindestlänge eines Glissandos etwa wird erst aktiv, wenn
die springs-and-rods-Eigenschaft gesetzt ist:
% default e' \glissando c'' % not effective alone \once \override Glissando.minimum-length = #20 e' \glissando c'' % effective only when both overrides are present \once \override Glissando.minimum-length = #20 \once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods e' \glissando c''
Das gilt auch für das Beam-(Balken-)Objekt:
% not effective alone \once \override Beam.minimum-length = #20 e'8 e' e' e' % effective only when both overrides are present \once \override Beam.minimum-length = #20 \once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods e'8 e' e' e'
Die to-barline-Eigenschaft
Die zweite nützliche Eigenschaft des spanner-interface ist
to-barline (bis zum Taktstrich). In den Standardeinstellungen
ist diese Eigenschaft auf „wahr“ gesetzt, was bedeutet, dass
ein Strecker, etwa eine Crescendo-Klammer, der an der ersten Noten
eines Taktes beendet wird, sich nur bis zum vorhergehenden
Taktstrich erstreckt. Wenn die Eigenschaft auf „falsch“ gesetzt
wird, erstrecken sich die Strecker entsprechend über die Taktlinie
hinüber und enden erst an der entsprechenden Note:
\relative { a' \< a a a a \! a a a \break \override Hairpin.to-barline = ##f a \< a a a a \! a a a }
Diese Eigenschaft wirkt sich nicht auf alle Strecker aus. Im Falle von Legato- oder Phrasierungsbögen etwa hat diese Eigenschaft keinen Effekt. Das gilt auch für alle anderen Streckern, bei denen es nicht sinnvoll währe, sie an einer Taktlinie abzuschließen.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
line-spanner-interface benutzenObjekte, die das line-spanner-interface unterstützen,
sind unter Anderem:
DynamicTextSpanner
Glissando
TextSpanner
TrillSpanner
VoiceFollower
Die Routine, die das Setzen der Matrizen dieser Strecker
hervorruft, ist ly:line-interface::print. Diese
Routine bestimmt die exakte Position der zwei Endpunkte
und zeichnet eine Linie zwischen ihnen, in dem erforderlichen
Stil. Die Position der zwei Endpunkte des Streckers wird
in Echtzeit errechnet, aber es ist möglich, ihre
Y-Koordinaten zu verändern. Die Eigenschaften, die angegeben
werden müssen, sind zwei Ebenen in der Objekthierarchie
tiefer angeordnet, aber die Syntax des \override-Befehls
ist ziemlich einfach:
e''2 \glissando b' \once \override Glissando.bound-details.left.Y = #3 \once \override Glissando.bound-details.right.Y = #-2 e''2 \glissando b'
Die Einheiten für die Y-Eigenschaft werden in
Notenlinienabständen angegeben, wobei die Mittellinie des
Notensystems die Null darstellt. Für das Glissando ist
der Wert von Y am entsprechenden X-Koordinatenpunkt
entsprechend dem Mittelpunkt des Notenkopfes, wenn die
Linie bis in die Noten hinein weitergeführt werden würde.
Wenn Y nicht gesetzt wird, wird der Wert aus der
vertikalen Position des entsprechenden Anknüpfpunkts des
Streckers errechnet.
Im Fall eines Zeilenumbruchs werden die Werte der Endpunkte
in den Unterlisten left-broken bzw. right-broken
von bound-details abgelegt. Zum Beispiel:
\override Glissando.breakable = ##t \override Glissando.bound-details.right-broken.Y = #-3 c''1 \glissando \break f''1
Eine Anzahl weitere Eigenschaft der left- und
right-Unterlisten der bound-details-Eigenschaft
kann auf gleiche Weise wie Y verändert werden:
YHiermit wird der Y-Koordinationspunkt des Endpunktes in Notenlinienabständen vom Mittelpunkt des Notensystems ausgehend angegeben. Der Endpunkt ist normalerweise der Mittelpunkt des Elternobjektes, sodass Glissandos vertikal auf den Mittelpunkt eines Notenkopfes weist.
Für horizontale Strecker, wie Textstrecker und Trillerstrecker ist sein Wert mit 0 definiert.
attach-dirDas entscheidet, wo die Linie auf der X-Achse beginnt und endet,
relativ zum Elternobjekt. Ein Wert -1 (oder
LEFT) lässt die Linie an der linken Seite der Noten
beginnen/enden, mit der sie verknüpft ist.
XDas ist der absolute X-Koordinatenpunkt des Endpunktes. Der Wert wird normalerweise in Echtzeit errechnet, und ihn zu verändern ist normalerweise nicht nützlich.
stencilLinienstrecker können Symbole am Ende oder zu Anfang des
Streckers haben, die in dieser Untereigenschaft definiert
werden. Die Eigenschaft ist für interne Benutzung, es
wird empfohlen, die Eigenschaft text zu benutzen.
textDas ist eine Textbeschriftung, die ausgewertet wird und die
stencil-Eigenschaft überschreibt. Sie wird eingesetzt,
um cresc., tr oder andere Texte an horizontale
Strecker zu setzen.
\override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } \relative { c''2\startTextSpan b c a\stopTextSpan }
stencil-align-dir-ystencil-offsetWenn keine dieser beiden Eigenschaften gesetzt wird, wird
die Matrize (engl. stencil) einfach am Endpunkt des Streckers,
auf seiner Mittellinie (wie durch X und Y
definiert) zentriert, ausgegeben. Wenn entweder
stencil-align-dir-y oder stencil-offset
gesetzt werden, wird das Symbol am Rand vertikal entsprechend
des Endpunktes der Linie verschoben:
\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2 \override TextSpanner.bound-details.right.stencil-align-dir-y = #UP \override TextSpanner.bound-details.left.text = "ggg" \override TextSpanner.bound-details.right.text = "hhh" \relative { c'4^\startTextSpan c c c \stopTextSpan }
Dabei sollte beachtet werden, dass negative Werte das Objekt
nach oben verschieben, anders als man erwarten könnte,
weil der Wert -1 oder DOWN bedeutet, dass
die Unterkante des Textes mit der Streckerlinie
ausgerichtet wird. Ein Wert 1 oder UP
richtet die Oberkante des Textes mit der Streckerlinie aus.
arrowWenn diese Untereigenschaft auf #t gesetzt wird,
wird ein Pfeilkopf am Ende der Linie erstellt.
paddingDiese Eigenschaft kontrolliert den Abstand zwischen dem angegebenen Endpunkt der Linie und dem wirklichen Ende. Ohne Füllung (engl. padding) würde ein Glissando in der Mitte eines Notenkopfes beginnen und enden.
Die musikalische Funktion \endSpanners beschließt
den Strecker, der an der direkt folgenden Note beginnt,
bevor er eigentlich zu ende wäre. Er wird exakt nach
einer Note beendet, oder am nächsten Taktstrich, wenn
to-barline auf wahr gesetzt ist und eine Taktlinie
vor der nächsten Note erscheint.
\relative c'' { \endSpanners c2 \startTextSpan c2 c2 \endSpanners c2 \< c2 c2 }
Wenn man \endSpanners benutzt, ist es nicht
nötig, den Befehl \startTextSpan mit \stopTextSpan
zu beenden, und es ist auch nicht nötig, Crescendo-Klammern
mit \! zu beenden.
Referenz der Interna: (internals)TextSpanner in Abschnitt ‘TextSpanner’ in Referenz der Interna, (internals)Glissando in Abschnitt ‘Glissando’ in Referenz der Interna, (internals)VoiceFollower in Abschnitt ‘VoiceFollower’ in Referenz der Interna, (internals)TrillSpanner in Abschnitt ‘TrillSpanner’ in Referenz der Interna, (internals)line-spanner-interface in Abschnitt ‘line-spanner-interface’ in Referenz der Interna.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Visibility of objects
Die Sichtbarkeit von Layout-Objekten kann auf vier Arten
kontrolliert werden: Ihre Matrizen (engl stencil) können
entfernt werden, sie können unsichtbar gemacht werden,
sie können weiß eingefärbt werden und ihre
break-visibility-Eigenschaft kann verändert werden.
Die ersten drei Möglichkeiten beziehen sich auf alle
Layout-Objekte, die letzte nur auf einige wenige, nämlich
die zerteilbaren Objekte. Das Handbuch zum Lernen
führt in alle vier Möglichkeiten ein, siehe
(learning)Sichtbarkeit und Farbe von Objekten in Abschnitt ‘Sichtbarkeit und Farbe von Objekten’ in Handbuch zum Lernen.
Es gibt auch einige weitere Techniken, die sich nur auf bestimmte Layout-Objekte beziehen. Sie werden im letzten Abschnitt behandelt.
Einen stencil entfernen | ||
| Objekten unsichtbar machen | ||
| Objekte weiß malen | ||
break-visibility (unsichtbar machen) benutzen | ||
| Besonderheiten |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
stencil entfernen@translationof Removing the stencil
Jedes Layout-Objekt hat eine Matrizen-(stencil)-Eigenschaft.
Sie ist normalerweise definiert als die Funktion, die das
entsprechende Objekt zeichnet. Wenn die Eigenschaft mit
\override auf #f gesetzt wird, wird keine
Funktion aufgerufen und also auch kein Objekt gezeichnet.
Das Standardverhalten kann mit dem Befehl \revert
wieder hergestellt werden.
a1 a \omit Score.BarLine a a \undo \omit Score.BarLine a a a
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Making objects transparent
Jedes Layout-Objekt hat eine Durchsichtigkeits-Eigenschaft
('transparent),
die normalerweise auf den Wert #f gesetzt ist. Wenn
sie auf #t gesetzt wird, nimmt das Objekt immer noch
den entsprechenden Platz ein, ist aber unsichtbar.
a'4 a' \once \hide NoteHead a' a'
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Painting objects white
Alle Layout-Objekte haben eine Farb-(color)-Eigenschaft, die
normalerweise schwarz (black) definiert ist. Wenn
sie nach weiß (white) verändert wird, kann man das
Objekt nicht mehr vom weißen Hintergrund unterscheiden.
Wenn das Objekt jedoch andere Objekte überschneidet, wird
die Farbe der Überschneidungen von der Reihenfolge entschieden,
in welcher die Objekte gesetzt werden. Es kann also vorkommen,
dass man die Umrisse des weißen Objektes erahnen kann, wie
in diesem Beispiel:
\override Staff.Clef.color = #white a'1
Das kann man vermeiden, indem man die Satzreihenfolge der Objekte
verändert. Alle Layout-Objekte haben eine layer-Eigenschaft,
die auf eine ganze Zahl gesetzt sein muss. Objekte mit der
niedrigsten Zahl in der layer-Eigenschaft werden zuerst
gesetzt, dann die nächsten Objekte in ansteigender Ordnung. Objekte
mit höheren Werten überschneiden also Objekte mit niedrigeren
Werten. Die meisten Objekte bekommen den Wert 1 zugewiesen,
einige wenige Objekte, unter die auch StaffSymbol (die
Notenlinien) gehört, jedoch den Wert 0. Die Reihenfolge,
in der Objekte mit demselben Wert gesetzt werden, ist nicht
definiert.
Im oberen Beispiel wird der weiße Schlüssel, der einen Wert von
1 für layer hat, nach den Notenlinien gesetzt
(die einen Wert von 0 für layer haben) und
überschneidet sie also. Um das zu ändern, muss dem Clef-Objekt
(Notenschlüssel) ein niedrigerer Wert, etwa -1, gegeben
werden, sodass es früher gesetzt wird:
\override Staff.Clef.color = #white \override Staff.Clef.layer = #-1 a'1
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
break-visibility (unsichtbar machen) benutzen@translationof Using break-visibility
Die meisten Layout-Objekte werden nur einmal gesetzt, aber
einige, wie Taktstriche, Schlüssel, Taktartbezeichnung und
Tonartvorzeichen, müssen mehrmals gesetzt werden, wenn
die Zeile gewechselt wird: einmal am Ende des oberen Systems
und ein zweites Mal zu Beginn des nächsten Systems.
Derartige Objekte werden als trennbar bezeichnet
und haben eine Eigenschaft, die break-visibility-Eigenschaft,
mit der ihre Sichtbarkeit an allen drei Positionen, an denen
sie auftreten können, kontrolliert werden kann: zu Beginn
einer Zeile, innerhalb einer Zeile, wenn sie verändert werden,
und am Ende einer Zeile, wenn die Änderung hier stattfindet.
Die Taktart wird beispielsweise standardmäßig nur zu Beginn des ersten Systems gesetzt, aber an anderen Stellen nur, wenn sie sich ändert. Wenn diese Änderung am Ende eines Systems auftritt, wird die neue Taktart am Ende des aktuellen Systems als auch zu Beginn des nächsten Systems gesetzt.
Dieses Verhalten wird von der break-visibility-Eigenschaft
kontrolliert, die erklärt wird in
(learning)Sichtbarkeit und Farbe von Objekten in Abschnitt ‘Sichtbarkeit und Farbe von Objekten’ in Handbuch zum Lernen. Die Eigenschaft
braucht einen Vektor von drei Booleschen Werten, die in ihrer
Reihenfolge bestimmte, ob das Objekt a) zu Ende der Zeile,
b) innerhalb einer Zeile oder c) zu Beginn einer Zeile gesetzt
wird. Oder, genauer gesagt, vor einem Zeilenumbruch, an Stellen,
wo kein Zeilenumbruch auftritt oder nach einem Zeilenumbruch.
Die acht möglichen Kombinationen können auch durch vordefinierte Funktionen bestimmt werden, welche in der Datei ‘scm/output-lib.scm’ definiert sind. Die letzten drei Spalten der folgenden Tabelle zeigen an, ob das Layout-Objekt an einer bestimmten Position sichtbar sein wird oder nicht:
| Funktion | Vektor | Vor | kein | Nach |
|---|---|---|---|---|
| Form | Form | Umbruch | Umbruch | Umbruch |
all-visible | '#(#t #t #t) | ja | ja | ja |
begin-of-line-visible | '#(#f #f #t) | nein | nein | ja |
center-visible | '#(#f #t #f) | nein | ja | nein |
end-of-line-visible | '#(#t #f #f) | ja | nein | nein |
begin-of-line-invisible | '#(#t #t #f) | ja | ja | nein |
center-invisible | '#(#t #f #t) | ja | nein | ja |
end-of-line-invisible | '#(#f #t #t) | nein | ja | ja |
all-invisible | '#(#f #f #f) | nein | nein | nein |
Die Standardeinstellungen von break-visibility hängen vom
Layout-Objekt ab. Die folgende Tabelle zeigt alle wichtigen Layout-Objekte,
die mit break-visibility verändert werden können und die
jeweiligen Standardeinstellungen der Eigenschaft:
| Layout-Objekt | Normaler Kontext | Standardeinstellung |
|---|---|---|
BarLine (Taktstrich) | Score | calculated |
BarNumber (Taktzahl) | Score | begin-of-line-visible |
BreathingSign (Atemzeichen) | Voice | begin-of-line-invisible |
Clef (Schlüssel) | Staff | begin-of-line-visible |
Custos | Staff | end-of-line-visible |
DoublePercentRepeat (Doppel-Prozent-Wiederholung | Voice | begin-of-line-invisible |
KeySignature (Tonart) | Staff | begin-of-line-visible |
ClefModifier (Oktavierungs-Acht) | Staff | begin-of-line-visible |
RehearsalMark (Übungszeichen) | Score | end-of-line-invisible |
TimeSignature (Taktart) | Staff | all-visible |
Das Beispiel unten zeigt die Verwendung der Vektor-Form um die Sichtbarkeit von Taktlinien zu bestimmten:
f4 g a b f4 g a b % Remove bar line at the end of the current line \once \override Score.BarLine.break-visibility = ##(#f #t #t) \break f4 g a b f4 g a b
Obwohl alle drei Bestandteile des Vektors, mit denen
break-visibility definiert wird, vorhanden sein
müssen, haben nicht alle eine Auswirkung auf jedes
Layout-Objekt, und einige Kombinationen können sogar
Fehler hervorrufen. Es gelten die folgenden Einschränkungen:
begin-of-line-invisible werden
sie ausgegeben, mit all-invisible unterdrückt.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Special considerations
Sichtbarkeit nach expliziten Änderungen
Die break-visibility-Eigenschaft kontrolliert die Sichtbarkeit
von Tonarten und Schlüsseländerungen nur zu Beginn einer Zeile,
d.h. nach einem Zeilenumbruch. Sie hat keinen Einfluss auf die
Sichtbarkeit von Tonarten bzw. Schlüsseln, die nach einer
expliziten Tonart- oder Schlüsseländerung in oder am Ende einer
Zeile angezeigt werden. Im nächsten Beispiel ist die Tonartangabe
nach dem expliziten Wechsel zu B-Dur immer noch sichtbar, obwohl
all-invisible eingesetzt wurde:
\relative { \key g \major f'4 g a b % Try to remove all key signatures \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
Die Sichtbarkeit derartiger expliziter Tonart- und Schlüsseländerungen
wird von den explicitKeySignatureVisibility- und
explicitClefVisibility-Eigenschaften kontrolliert. Sie
entsprechen der break-visibility-Eigenschaft und beide
brauchen drei Boolesche Werte bzw. die oben aufgelisteten vordefinierten
Funktionen als Argument, genau wie break-visibility.
Beide sind Eigenschaft des Staff-Kontextes, nicht der
Layout-Objekte selber, weshalb sie mit dem Befehl \set
eingesetzt werden. Beide sind standardmäßig auf die Funktion
all-visible gesetzt. Diese Eigenschaften kontrollieren nur
die Sichtbarkeit von Tonarten bzw. Schlüssel, die von expliziten
Änderungen herrühren, und haben keinen Einfluss auf Tonarten und
Schlüssel zu Beginn einer Zeile – um diese zu beeinflussen, muss
break-visibility benutzt werden.
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
Sichtbarkeit von erinnernden Versetzungszeichen
Um erinnernde Versetzungszeichen zu entfernen, die nach einer
expliziten Tonartänderung auftreten, muss die Staff-Eigenschaft
printKeyCancellation auf #f gesetzt werden:
\relative { \key g \major f'4 g a b \set Staff.explicitKeySignatureVisibility = #all-invisible \set Staff.printKeyCancellation = ##f \override Staff.KeySignature.break-visibility = #all-invisible \key bes \major f4 g a b \break f4 g a b f4 g a b }
Mit diesen Veränderungen bleiben nur noch die Versetzungszeichen vor den Noten übrig um den Wechsel der Tonart anzuzeigen.
Automatische Takte
Ein Sonderfall sind die automatischen Taktstriche, die mit der
Eigenschaft automaticBars im Score-Kontext
ausgeschaltet werden können. Wenn sie auf #f gesetzt
ist, werden Taktstrich nicht automatisch ausgegeben sondern
müssen explizit mit dem \bar-Befehl eingegeben werden.
Anders als bei dem \cadenzaOn-Befehl werden die Takte
allerdings immer noch gezählt. Takterstellung wird später
wieder mit diesem Zahl aufgenommen, wenn die Eigenschaft
wieder auf #t gesetzt wird. Wenn sie den Wert #f
hat, können Zeilenumbrüche nur an expliziten \bar-Befehlen
auftreten.
Oktavierte Schlüssel
Das kleine Oktavierungssymbol von oktavierten Notenschlüsseln
wird durch das ClefModifier-Layout-Objekt erstellt.
Seine Sichtbarkeit wird automatisch vom Clef-Objekt
geerbt, sodass Veränderungen von break-visibility
des ClefModifier-Layout-Objekts nicht auch noch
für unsichtbare Schlüssel zusätzlich vorgenommen werden müssen.
Bei expliziten Schlüsseländerungn kontrolliert die
explicitClefVisibility-Eigenschaft wohl das
Schlüsselsymbol als auch das damit verknüpfte Oktavierungssymbol.
Handbuch zum Lernen: (learning)Sichtbarkeit und Farbe von Objekten in Abschnitt ‘Sichtbarkeit und Farbe von Objekten’ in Handbuch zum Lernen.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Line styles
Einige Aufführungsanweisungen (z. B. rallentando und accelerando oder Triller werden als Text gesetzt und möglicherweise über mehrere Takte mit Linien fortgeführt, die teilweise gestrichelt oder gewellt sind.
Alle benutzen die gleichen Routinen wie das Glissando,
um Text und Linien zu produzieren, weshalb auch eine
Veränderungen der Erscheinung auf gleiche Weise vonstatten
geht. Die Ausgabe erfolgt durch einen Strecker (engl. spanner), und
die Routine, die ihn setzt, heißt ly:line-interface::print.
Diese Routine bestimmt die exakte Position von zwei
Strecker-Punkten und zeichnet eine Linie zwischen sie
im gewünschten Linienstil.
Hier einige Beispiele, welche Linienstile möglich sind und wie sie verändert werden können:
\relative { d''2 \glissando d'2 \once \override Glissando.style = #'dashed-line d,2 \glissando d'2 \override Glissando.style = #'dotted-line d,2 \glissando d'2 \override Glissando.style = #'zigzag d,2 \glissando d'2 \override Glissando.style = #'trill d,2 \glissando d'2 }
Die Position der Endpunkte des Streckers werden in Realzeit für jedes graphische Objekt errechnet, aber es ist möglich, sie manuell vorzugeben:
\relative { e''2 \glissando f \once \override Glissando.bound-details.right.Y = #-2 e2 \glissando f }
Der Wert von Y wird für den rechten Endpunkt auf
-2 gesetzt. Die linke Seite kann ähnlich angepasst
werden, indem man left anstelle von right angibt.
Wenn Y nicht gesetzt ist, wird der Wert ausgehend von
der vertikalen Position der linken und rechten Anbindepunkte
des Streckers errechnet.
Andere Anpassungen der Strecker sind auch möglich, für Einzelheiten siehe Strecker.
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Rotating objects
Layout-Objekte und Textbeschriftungselemente können zu einem beliebigen Winkel um einen beliebigen Punkt herum gedreht werden, aber die Methode, mit der die Änderung vorgenommen werden muss, unterscheidet sich je nach Objekt.
| Drehen von Layout-Objekten | ||
| Textbeschriftung drehen |
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Rotating layout objects
Alle Layout-Objekte, die das grob-interface unterstützen,
können gedreht werden, indem man ihre rotation-Eigenschaft
einstellt. Sie erhält eine Liste mit drei Einträgen: den
Winkel der Drehung gegen den Uhrzeiger sowie die X- und
Y-Koordinaten des Punktes relativ zum Referenzpunkt des Objekts,
um welchen herum die Drehung stattfinden soll. Der Winkel
der Drehung wird in Grad angegeben, die Koordinaten in
Notenlinienzwischenräumen.
Der Winkel der Drehung und die Koordinaten des Drehpunktes müssen durch Ausprobieren herausgefunden werden.
Es gibt nur wenige Situationen, in welchen die Drehung eines Layout-Objektes sinnvoll ist. Das folgende Beispiel zeigt eine sinnvolle Anwendung:
g4\< e' d'' f''\! \override Hairpin.rotation = #'(15 -1 0) g4\< e' d'' f''\!
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] | [Anfang] | [Inhalt] | [Index] | [ ? ] |
@translationof Rotating markup
Jede Textbeschriftung kann gedreht werden, indem vor die Anweisung
der Befehl \rotate gesetzt wird. Der Befehl hat zwei
Argumente: Den Winkel der Drehung in Grad gegen den Uhrzeiger und
der Text, der gedreht dargestllt werden soll. Die Ausdehnung des
Textes wird nicht gedreht, sie erhält ihren Wert von den Extrempunkten
der x- und y-Koordinaten des gedrehten Textes. Im folgenden
Beispiel wird die outside-staff-priority-Eigenschaft auf
#f gesetzt, damit automatische Zusammenstöße nicht verhindert
werden, wodurch andernfalls einige der Texte zu hoch geschoben werden
würden.
\override TextScript.outside-staff-priority = ##f g4^\markup { \rotate #30 "a G" } b^\markup { \rotate #30 "a B" } des'^\markup { \rotate #30 "a D-Flat" } fis'^\markup { \rotate #30 "an F-Sharp" }
| [ < ] | [ > ] | [ << ] | [ Nach oben ] | [ >> ] |
Dieses Dokument wurde erzeugt von gub am 13. Juli 2020 durch texi2html 1.82.
Andere Sprachen: English, català, español, français, italiano, 日本語.
Über die automatische Sprachauswahl.