[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

5.4 Nützliche Konzepte und Eigenschaften

@translationof Useful concepts and properties


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

5.4.1 Eingabe-Modi

@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
}

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

5.4.2 Richtung und Platzierung

@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

Ausrichtungsmarkierer haben nur eine Auswirkung auf die nächste Note:

 
\relative {
  c''2( c)
  c2_( c)
  c2( c)
  c2^( c)
}

[image of music]

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)
}

[image of music]

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.

Siehe auch

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] [ ? ]

5.4.3 Abstände und Maße

@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.

Siehe auch

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] [ ? ]

5.4.4 Eigenschaften des Staff-Symbols

@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 }

[image of music]

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 }

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

5.4.5 Strecker

@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] [ ? ]

Das spanner-interface benutzen

Diese 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

[image of music]

 
a1
\compressEmptyMeasures
R1*23
% increase the length of the rest bar
\once \override MultiMeasureRest.minimum-length = #20
R1*23
a1

[image of music]

 
a \< a a a \!
% increase the length of the hairpin
\override Hairpin.minimum-length = #20
a \< a a a \!

[image of music]

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\)

[image of music]

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''

[image of music]

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'

[image of music]

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
}

[image of music]

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] [ ? ]

Das line-spanner-interface benutzen

Objekte, die das line-spanner-interface unterstützen, sind unter Anderem:

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'

[image of music]

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

[image of music]

Eine Anzahl weitere Eigenschaft der left- und right-Unterlisten der bound-details-Eigenschaft kann auf gleiche Weise wie Y verändert werden:

Y

Hiermit 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-dir

Das 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.

X

Das ist der absolute X-Koordinatenpunkt des Endpunktes. Der Wert wird normalerweise in Echtzeit errechnet, und ihn zu verändern ist normalerweise nicht nützlich.

stencil

Linienstrecker 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.

text

Das 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 }

[image of music]

stencil-align-dir-y
stencil-offset

Wenn 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 }

[image of music]

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.

arrow

Wenn diese Untereigenschaft auf #t gesetzt wird, wird ein Pfeilkopf am Ende der Linie erstellt.

padding

Diese 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
}

[image of music]

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.

Siehe auch

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] [ ? ]

5.4.6 Sichtbarkeit von Objekten

@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.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Einen 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

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Objekten unsichtbar machen

@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'

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Objekte weiß malen

@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

[image of music]

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

[image of music]


[ < ] [ > ]   [ << ] [ 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:

FunktionVektorVorkeinNach
FormFormUmbruchUmbruchUmbruch
all-visible'#(#t #t #t)jajaja
begin-of-line-visible'#(#f #f #t)neinneinja
center-visible'#(#f #t #f)neinjanein
end-of-line-visible'#(#t #f #f)janeinnein
begin-of-line-invisible'#(#t #t #f)jajanein
center-invisible'#(#t #f #t)janeinja
end-of-line-invisible'#(#f #t #t)neinjaja
all-invisible'#(#f #f #f)neinneinnein

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-ObjektNormaler KontextStandardeinstellung
BarLine (Taktstrich)Scorecalculated
BarNumber (Taktzahl)Scorebegin-of-line-visible
BreathingSign (Atemzeichen)Voicebegin-of-line-invisible
Clef (Schlüssel)Staffbegin-of-line-visible
CustosStaffend-of-line-visible
DoublePercentRepeat (Doppel-Prozent-WiederholungVoicebegin-of-line-invisible
KeySignature (Tonart)Staffbegin-of-line-visible
ClefModifier (Oktavierungs-Acht)Staffbegin-of-line-visible
RehearsalMark (Übungszeichen)Scoreend-of-line-invisible
TimeSignature (Taktart)Staffall-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

[image of music]

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:


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Besonderheiten

@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
}

[image of music]

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
}

[image of music]

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
}

[image of music]

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.

Siehe auch

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] [ ? ]

5.4.7 Linienstile

@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
}

[image of music]

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
}

[image of music]

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] [ ? ]

5.4.8 Drehen von Objekten

@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.


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Drehen von Layout-Objekten

@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''\!

[image of music]


[ < ] [ > ]   [ << ] [ Nach oben ] [ >> ]         [Anfang] [Inhalt] [Index] [ ? ]

Textbeschriftung drehen

@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" }

[image of music]


[ < ] [ > ]   [ << ] [ 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.