Guide, node Updating translation committishes..
@end ignore
-@c \version "2.17.6"
+@c \version "2.19.24"
@c Translators: Till Paala
Sie werden als @qq{Eigenschaften} (engl. properties) bezeichnet.
Eine kurze Einführung und Übung, wie man auf diese Eigenschaften
zugreifen kann und sie verändern kann, findet sich im Handbuch
-zum Lernen, siehe @rlearning{Die Ausgabe verändern}. Das Kapitel
+zum Lernen, siehe @rlearning{Die Ausgabe verbessern}. Das Kapitel
sollte zuerst gelesen werden. In diesem Kapitel werden die gleichen
Themen behandelt, aber der Schwerpunkt liegt eher auf einer technischen
Darstellung.
zur Verfügung zu stellen. Wenn Layoutentscheidungen verändert werden
sollen, müssen auf die programminternen Prozesse zugegriffen werden,
wozu Scheme-Code benötigt wird. Scheme-Abschnitte werden in einer
-LilyPond-Quelldatei mit einer Raute@tie{}@code{#} begonnen.@footnote{@rextend{Scheme-Übung} enthält eine kurze Übung, wie
+LilyPond-Quelldatei mit einer Raute@tie{}@code{#} begonnen.@footnote{@rextend{Scheme-Tutorium} enthält eine kurze Übung, wie
man Zahlen, Listen, Zeichenketten und Symbole in Scheme notiert.}
@menu
* Was sind Kontexte?::
-* Kontexte erstellen::
+* Kontexte erstellen und referenzieren::
* Kontexte am Leben halten::
* Umgebungs-Plugins verändern::
* Die Standardeinstellungen von Kontexten ändern::
Ausgabe von Akkordsymbolen.
-@node Kontexte erstellen
-@subsection Kontexte erstellen
-@translationof Creating contexts
+@node Kontexte erstellen und referenzieren
+@subsection Kontexte erstellen und referenzieren
+@translationof Creating and referencing contexts
In Partituren mit einer Stimme und einem System werden die Kontexte
normalerweise automatisch erstellt. In komplizierteren Partituren
interpretiert wird, muss folgende Form benutzt werden:
@example
-\applyOutput #'Score #@var{Funktion}
-\applyOutput #'Staff #@var{Funktion}
+\applyOutput Score #@var{Funktion}
+\applyOutput Staff #@var{Funktion}
@end example
@end itemize
Weise für die gesamte Dauer des Stückes am Leben gehalten.
@lilypond[quote,verbatim]
-musicA = \relative c'' { d4 d d d }
-musicB = \relative c'' { g4 g g g }
+musicA = \relative { d''4 d d d }
+musicB = \relative { g'4 g g g }
keepVoicesAlive = {
<<
\new Voice = "A" { s1*5 } % Keep Voice "A" alive for 5 bars
würden Begleitung und Melodie natürlich aus mehreren Abschnitten bestehen.
@lilypond[quote,verbatim]
-melody = \relative c'' { a4 a a a }
-accompaniment = \relative c' { d4 d d d }
+melody = \relative { a'4 a a a }
+accompaniment = \relative { d'4 d d d }
words = \lyricmode { These words fol -- low the mel -- o -- dy }
\score {
<<
mit der Begleitung passend auszurichten:
@lilypond[quote,verbatim]
-melody = \relative c'' {
+melody = \relative {
s1 % skip a bar
- a4 a a a
+ a'4 a a a
s1 % skip a bar
a4 a a a
}
-accompaniment = \relative c' {
- d4 d d d
+accompaniment = \relative {
+ d'4 d d d
d4 d d d
d4 d d d
d4 d d d
@code{\context} beginnt und ihn dann verändert:
@funindex \with
-@funindex with
@example
\new @var{context} \with @{
@code{Clef_engraver} (Engraver für den Schlüssel) aus dem
@code{Staff}-Kontext entfernt werden:
-@lilypond[quote,relative=1,verbatim]
+@lilypond[quote,verbatim]
<<
- \new Staff {
- f2 g
+ \new Staff \relative {
+ f'2 g
}
\new Staff \with {
\remove "Time_signature_engraver"
\remove "Clef_engraver"
- } {
- f2 g2
+ } \relative {
+ f'2 g2
}
>>
@end lilypond
@lilypond[quote,verbatim]
\score {
- \relative c'' {
- a4^"Thicker stems" a a a
+ \relative {
+ a'4^"Thicker stems" a a a
a4 a a\ff a
}
\layout {
@lilypond[quote,verbatim]
\score {
- \relative c'' {
- a4^"Smaller font" a a a
+ \relative {
+ a'4^"Smaller font" a a a
a4 a a\ff a
}
\layout {
@lilypond[quote,verbatim]
\score {
- \relative c'' {
- a4^"Dynamics above" a a a
+ \relative {
+ a'4^"Dynamics above" a a a
a4 a a\ff a
}
\layout {
\score {
\new Staff {
- \relative c'' {
- a4^"Smaller font" a a a
+ \relative {
+ a'4^"Smaller font" a a a
a4 a a a
}
}
@lilypond[quote,verbatim]
\score {
\new Staff {
- \relative c'' {
- a4^"Smaller font" a a a
+ \relative {
+ a'4^"Smaller font" a a a
a4 a a a
}
}
\override Stem.thickness = #4.0
}
{
- \relative c'' {
- a4^"Thick stems" a a a
+ \relative {
+ a'4^"Thick stems" a a a
a4 a a a
}
}
\score {
<<
\new Staff {
- \relative c'' {
- a4^"Default font" a a a
+ \relative {
+ a'4^"Default font" a a a
a4 a a a
}
}
\with {
fontSize = #-4
} {
- \relative c'' {
- a4^"Smaller font" a a a
+ \relative {
+ a'4^"Smaller font" a a a
a4 a a a
}
}
<<
\new Staff {
\new Voice {
- \relative c'' {
- a4^"Dynamics below" a a a
+ \relative {
+ a'4^"Dynamics below" a a a
a4 a a\ff a
}
}
\new Voice
\with { \dynamicUp }
{
- \relative c'' {
- a4^"Dynamics above" a a a
+ \relative {
+ a'4^"Dynamics above" a a a
a4 a a\ff a
}
}
@ref{Unterste Kontexte -- Stimmen},
@ref{Der set-Befehl},
@ref{Der override-Befehl},
-@ref{Die \layout-Umgebung}.
+@ref{Die layout-Umgebung}.
@node Neue Kontexte definieren
@cindex Engraver, in Kontexte einfügen
@funindex \alias
-@funindex alias
@funindex \name
-@funindex name
@funindex \type
-@funindex type
@funindex \consists
-@funindex consists
@funindex \accepts
-@funindex accepts
@funindex \denies
-@funindex denies
Bestimme Kontexte, wie @code{Staff} oder @code{Voice}, werden
erstellt, indem man sie mit einer Musikumgebung aufruft. Es ist
\consists "Pitch_squash_engraver"
squashedPosition = #0
\override NoteHead.style = #'slash
- \override Stem.transparent = ##t
- \override Flag.transparent = ##t
+ \hide Stem
\alias Voice
}
\context { \Staff
\accepts "ImproVoice"
}}
-\relative c'' {
- a4 d8 bes8 \new ImproVoice { c4^"ad lib" c
+\relative {
+ a'4 d8 bes8 \new ImproVoice { c4^"ad lib" c
c4 c^"ausziehen" c_"während des Spiels :)" c }
a1
}
@example
\override NoteHead.style = #'slash
-\override Stem.transparent = ##t
-\override Flag.transparent = ##t
+\hide Stem
@end example
Alle diese Engraver müssen zusammenarbeiten, und das wird erreicht mit
\consists "Pitch_squash_engraver"
squashedPosition = #0
\override NoteHead.style = #'slash
- \override Stem.transparent = ##t
- \override Flag.transparent = ##t
+ \hide Stem
\alias Voice
@}
@end example
@funindex \accepts
-@funindex accepts
Kontexte sind hierarchisch. Wie wollen, dass @code{ImproVoice}
sich als Unterkontext von @code{Staff} erkennt, wie eine normale
@end example
@funindex \denies
-@funindex denies
Das Gegenteil von @code{\accepts} ist @code{\denies} (verbietet), was
manchmal gebraucht werden kann, wenn schon existierende Kontext-Definitionen
notiert werden:
@example
-\relative c'' @{
- a4 d8 bes8
+\relative @{
+ a'4 d8 bes8
\new ImproVoice @{
c4^"ad lib" c
c4 c^"ausziehen"
sollte er folgenderweise erstellt werden:
@example
-@code{\new Staff \with @{ alignAboveContext = #"Hauptstimme" @} }
+\new Staff \with @{ alignAboveContext = #"Hauptstimme" @}
@end example
Eine ähnliche Situation entsteht, wenn man einen zeitweiligen Gesangstext
das gerade aktuelle Notensystem aus. Andere Systeme behalten
ihr normales Aussehen. Hier ein Beispiel mit diesem Befehl:
-@lilypond[quote,verbatim,relative=2]
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
\override Staff.Stem.thickness = #4.0
-c4
-c4
-c4
+c''4
+c''4
+c''4
@end lilypond
Der @code{\override}-Befehl verändert die Definitionen von
@code{Voice}-Kontext angenommen wird. Mit einem zusätzlichen
@code{\once} wirkt sich die Änderung nur einmal aus:
-@lilypond[quote,verbatim,relative=2]
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
\once \override Stem.thickness = #4.0
-c4
-c4
+c''4
+c''4
@end lilypond
Der @code{\override}-Befehl muss geschrieben sein, bevor das Objekt
schon geschrieben werden, bevor das Objekt begonnen wird. In dem
folgenden Beispiel
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
\override Slur.thickness = #3.0
-c8[( c
+c''8[( c''
\override Beam.beam-thickness = #0.6
-c8 c])
+c''8 c''])
@end lilypond
@noindent
@cindex Verändern von Eigenschaften
@funindex \set
-@funindex set
Jeder Kontext kann unterschiedliche @emph{Eigenschaften} besitzen,
Variablen, die in diesem Kontext definiert sind. Sie können
Kontexteigenschaften werden üblicherweise mit @code{kleinGroßbuchstabe}
benannt. Sie kontrollieren vor allem die Übersetzung von Musik in
-Notation, wie etwa @code{localKeySignature}, welche bestimmt, wann
+Notation, wie etwa @code{localAlterations}, welche bestimmt, wann
ein Taktstrich gesetzt werden muss. Kontexteigenschaften können
ihren Wert mit der Zeit ändern, während eine Notationsdatei interpretiert
wird. Ein gutes Beispiel dafür ist @code{measurePosition}, was die
Kontexteigenschaft @code{skipBars} (Takte überspringen) auf @code{#t}
(wahr) gesetzt wird:
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
R1*2
\set Score.skipBars = ##t
R1*2
üblicherweise @code{ChordNames}, @code{Voice} oder
@code{Lyrics}.
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
\set Score.autoBeaming = ##f
-<<
- {
- e8 e e e
- \set autoBeaming = ##t
- e8 e e e
- } \\ {
- c8 c c c c8 c c c
- }
->>
+\relative {
+ e''8 e e e
+ \set autoBeaming = ##t
+ e8 e e e
+} \\
+\relative {
+ c''8 c c c c8 c c c
+}
@end lilypond
Die Änderung wird zur Laufzeit während der Musik interpretiert, sodass
bezieht, die Eigenschaft sich aber im @code{Score}-Kontext
befindet:
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
R1*2
\set skipBars = ##t
R1*2
Kontext enthalten sind.
@funindex \unset
-@funindex unset
Es gibt auch einen @code{\unset}-Befehl:
Kontext rückgängig. Wenn also im @code{Staff}-Kontext die
Bebalkung ausgeschaltet wird:
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
\set Score.autoBeaming = ##t
-<<
- {
- \unset autoBeaming
- e8 e e e
- \unset Score.autoBeaming
- e8 e e e
- } \\ {
- c8 c c c c8 c c c
- }
->>
+\relative {
+ \unset autoBeaming
+ e''8 e e e
+ \unset Score.autoBeaming
+ e8 e e e
+} \\
+\relative {
+ c''8 c c c c8 c c c
+}
@end lilypond
Wie für @code{\set} muss das @var{Kontext}-Argument für den untersten
@code{Voice}-Kontext ist.
@funindex \once
-@funindex once
Einstellungen, die nur einmal vorgenommen werden sollen, können
mit @code{\once} notiert werden, etwa:
-@lilypond[quote,verbatim,relative=2]
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
\once \set fontSize = #4.7
-c4
-c4
+c''4
+c''4
@end lilypond
Eine vollständige Beschreibung aller vorhandenen Kontexteigenschaften
@cindex graphische Objekte, Eigenschaften
@funindex \override
-@funindex override
Es gibt eine besondere Art von Kontexteigenschaft: die Grob-Beschreibung.
Grob-Beschreibungen werden mit @code{GroßGroßbuchstabe} benannt. Sie
@cindex \override rückgängig machen
@funindex \revert
-@funindex revert
Die Auswirkungen von @code{\override} können mit @code{\revert} wieder
rückgängig gemacht werden:
@cindex \override, nur einmal
@funindex \once
-@funindex once
@code{\once} kann zusammen mit @code{\override} benutzt werden,
um nur den aktuellen Zeitwert zu verändern:
@cindex Veränderungen der Einstellungen
@cindex Einstellungen verändern
-@funindex override
@funindex \override
Viele Eigenschaften können unabhängig von der Art der Daten, die
@translationof The tweak command
@funindex \tweak
-@funindex tweak
@cindex Optimieren
werden, mit dem man Optimierungen vornehmen kann:
@example
-\tweak @var{Layout-Objekt} #'@code{grob-eigenschaft} #@code{Wert}
+\tweak @var{Layout-Objekt} #'grob-eigenschaft #Wert
@end example
Die Angabe von @var{Layout-Objekt} ist optional.
An einem Beispiel demonstriert: Das funktioniert:
-@lilypond[relative=2,verbatim,quote]
-<\tweak color #red c>4
+@lilypond[verbatim,fragment,quote]
+<\tweak color #red c''>4
@end lilypond
@noindent
und das nicht:
-@lilypond[relative=2,verbatim,quote]
-\tweak color #red c4
+@lilypond[verbatim,fragment,quote]
+\tweak color #red c''4
@end lilypond
@end ignore
In diesem Beispiel wird die Farbe eines Notenkopfes und die Art eines
anderen Notenkopfes innerhalb eines Akkordes verändert:
-@lilypond[relative=2,verbatim,quote]
-< c
+@lilypond[verbatim,fragment,quote]
+< c''
\tweak color #red
- d
- g
+ d''
+ g''
\tweak duration-log #1
- a
+ a''
> 4
@end lilypond
@code{\tweak} kann auch benutzt werden, um Bögen zu verändern:
-@lilypond[verbatim,quote,relative=1]
-c-\tweak thickness #5 ( d e f)
+@lilypond[verbatim,quote]
+\relative { c'-\tweak thickness #5 ( d e f) }
@end lilypond
Damit der @code{\tweak}-Befehl funktioniert, muss er direkt vor dem
Derartige indirekt erstellt Layoutobjekte können mit @code{\tweak} verändert
werden, indem man die ausführliche Form des Befehls einsetzt:
-@lilypond[relative=2,verbatim,quote]
+@lilypond[fragment,verbatim,quote]
\tweak Stem.color #red
-\tweak Beam.color #green c8 e
-<c e \tweak Accidental.font-size #-3 ges>4
+\tweak Beam.color #green c''8 e''
+<c'' e'' \tweak Accidental.font-size #-3 ges''>4
@end lilypond
@code{\tweak} kann auch nicht verwendet werden,
Mehrere @code{\tweak}-Befehle können vor ein Notationselement
gesetzt werden und alle werden interpretiert:
-@lilypond[verbatim,quote,relative=1]
-c
--\tweak style #'dashed-line
--\tweak dash-fraction #0.2
--\tweak thickness #3
--\tweak color #red
- \glissando
-f'
+@lilypond[verbatim,fragment,quote]
+c'
+ -\tweak style #'dashed-line
+ -\tweak dash-fraction #0.2
+ -\tweak thickness #3
+ -\tweak color #red
+ \glissando
+f''
@end lilypond
Der Strom der musikalischen Ereignisse (engl. music stream), der aus
Kontexte können Eigenschaften haben, deren Bezeichnungen
üblicherweise dem Schema @code{kleinGroß} folgen. Derartige
Eigenschaften sind vor allen Dingen für die Übersetzung der
-Musik in Notation zuständig, beispielsweise @code{localKeySignature}
+Musik in Notation zuständig, beispielsweise @code{localAlterations}
(um zu bestimmen, ob Versetzungszeichen ausgegeben werden
müssen), @code{measurePosition} (um zu bestimmen, ob eine
Taktlinie gesetzt werden muss). Kontexteigenschaften können
bewusst alle Werte zurücksetzen will.
@warning{Geschachtelte Aufrufe funktionieren nicht mit
-Kontexteigenschaften (wie etwa @code{beamExceptions}, @code{keySignature},
+Kontexteigenschaften (wie etwa @code{beamExceptions}, @code{keyAlterations},
@code{timeSignatureSettings}, usw.) Diese Eigenschaften können
nur verändert werden, indem man sie vollständig als Alisten umdefiniert.}
Ausrichtungsmarkierer haben nur eine Auswirkung auf die nächste Note:
-@lilypond[verbatim,quote,relative=2]
-c2( c)
-c2_( c)
-c2( c)
-c2^( c)
+@lilypond[verbatim,quote]
+\relative {
+ c''2( c)
+ c2_( c)
+ c2( c)
+ c2^( c)
+}
@end lilypond
Diese Ausrichtungsanzeigen wirken sich auf alle Noten aus, bis sie
rückgängig gemacht werden:
-@lilypond[verbatim,quote,relative=2]
-c2( c)
-\slurDown
-c2( c)
-c2( c)
-\slurNeutral
-c2( c)
+@lilypond[verbatim,quote]
+\relative {
+ c''2( c)
+ \slurDown
+ c2( c)
+ c2( c)
+ \slurNeutral
+ c2( c)
+}
@end lilypond
In polyphoner Musik ist es normalerweise besser, eine explizite
die Anzahl der Elemente in der Liste der Werte von
@code{'line-positions}.}
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote]
\new Staff \with {
\override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
}
-{ a4 e' f b | d1 }
+\relative { a4 e' f b | d1 }
@end lilypond
Die Breite eines Notensystems kann verändert werden. Die Einheit
in diesem Notensystem wird durch diese Einstellung nicht
beeinflusst.
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote]
\new Staff \with {
\override StaffSymbol.width = #23
}
-{ a4 e' f b | d1 }
+\relative { a4 e' f b | d1 }
@end lilypond
Mindestlänge eines Glissandos etwa wird erst aktiv, wenn
die @code{springs-and-rods}-Eigenschaft gesetzt ist:
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,fragment,quote]
% default
-e \glissando c'
+e' \glissando c''
% not effective alone
\once \override Glissando.minimum-length = #20
-e, \glissando c'
+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'
+e' \glissando c''
@end lilypond
Das gilt auch für das @code{Beam}-(Balken-)Objekt:
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,fragment,quote]
% not effective alone
\once \override Beam.minimum-length = #20
-e8 e e e
+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
-e8 e e e
+e'8 e' e' e'
@end lilypond
@strong{@i{Die @code{to-barline}-Eigenschaft}}
wird, erstrecken sich die Strecker entsprechend über die Taktlinie
hinüber und enden erst an der entsprechenden Note:
-@lilypond[verbatim,quote,relative=2]
-a \< a a a a \! a a a \break
-\override Hairpin.to-barline = ##f
-a \< a a a a \! a a a
+@lilypond[verbatim,quote]
+\relative {
+ a' \< a a a a \! a a a \break
+ \override Hairpin.to-barline = ##f
+ a \< a a a a \! a a a
+}
@end lilypond
Diese Eigenschaft wirkt sich nicht auf alle Strecker aus. Im Falle
tiefer angeordnet, aber die Syntax des @code{\override}-Befehls
ist ziemlich einfach:
-@lilypond[relative=2,quote,verbatim]
-e2 \glissando b
+@lilypond[quote,fragment,verbatim]
+e''2 \glissando b'
\once \override Glissando.bound-details.left.Y = #3
\once \override Glissando.bound-details.right.Y = #-2
-e2 \glissando b
+e''2 \glissando b'
@end lilypond
Die Einheiten für die @code{Y}-Eigenschaft werden in
in den Unterlisten @code{left-broken} bzw. @code{right-broken}
von @code{bound-details} abgelegt. Zum Beispiel:
-@lilypond[relative=2,ragged-right,verbatim,quote]
+@lilypond[ragged-right,fragment,verbatim,quote]
\override Glissando.breakable = ##t
\override Glissando.bound-details.right-broken.Y = #-3
-c1 \glissando \break
-f1
+c''1 \glissando \break
+f''1
@end lilypond
Eine Anzahl weitere Eigenschaft der @code{left}- und
um @i{cresc.}, @i{tr} oder andere Texte an horizontale
Strecker zu setzen.
-@lilypond[quote,ragged-right,relative=2,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\override TextSpanner.bound-details.left.text
= \markup { \small \bold Slower }
-c2\startTextSpan b c a\stopTextSpan
+\relative { c''2\startTextSpan b c a\stopTextSpan }
@end lilypond
@item stencil-align-dir-y
gesetzt werden, wird das Symbol am Rand vertikal entsprechend
des Endpunktes der Linie verschoben:
-@lilypond[relative=1,quote,verbatim]
+@lilypond[quote,fragment,verbatim]
\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"
-c4^\startTextSpan c c c \stopTextSpan
+
+\relative { c'4^\startTextSpan c c c \stopTextSpan }
@end lilypond
Dabei sollte beachtet werden, dass negative Werte das Objekt
@code{to-barline} auf wahr gesetzt ist und eine Taktlinie
vor der nächsten Note erscheint.
-@lilypond[verbatim,quote,ragged-right,relative=2]
-\endSpanners
-c2 \startTextSpan c2 c2
-\endSpanners
-c2 \< c2 c2
+@lilypond[verbatim,quote,ragged-right]
+\relative c'' {
+ \endSpanners
+ c2 \startTextSpan c2 c2
+ \endSpanners
+ c2 \< c2 c2
+}
@end lilypond
Wenn man @code{\endSpanners} benutzt, ist es nicht
Das Standardverhalten kann mit dem Befehl @code{\revert}
wieder hergestellt werden.
-@lilypond[quote,verbatim,relative=1]
+@lilypond[quote,fragment,verbatim]
a1 a
-\override Score.BarLine.stencil = ##f
+\omit Score.BarLine
a a
-\revert Score.BarLine.stencil
+\undo \omit Score.BarLine
a a a
@end lilypond
sie auf @code{#t} gesetzt wird, nimmt das Objekt immer noch
den entsprechenden Platz ein, ist aber unsichtbar.
-@lilypond[quote,verbatim,relative=2]
-a4 a
-\once \override NoteHead.transparent = ##t
-a a
+@lilypond[quote,fragment,verbatim]
+a'4 a'
+\once \hide NoteHead
+a' a'
@end lilypond
dass man die Umrisse des weißen Objektes erahnen kann, wie
in diesem Beispiel:
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
\override Staff.Clef.color = #white
-a1
+a'1
@end lilypond
Das kann man vermeiden, indem man die Satzreihenfolge der Objekte
(Notenschlüssel) ein niedrigerer Wert, etwa @w{@code{-1}}, gegeben
werden, sodass es früher gesetzt wird:
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,fragment,verbatim]
\override Staff.Clef.color = #white
\override Staff.Clef.layer = #-1
-a1
+a'1
@end lilypond
@item @code{KeySignature} (Tonart) @tab @code{Staff} @tab @code{begin-of-line-visible}
@c omit LeftEdge until it can be explained -td
@c @item @code{LeftEdge} @tab @code{Score} @tab @code{center-invisible}
-@item @code{OctavateEight} (Oktavierungs-Acht) @tab @code{Staff} @tab @code{begin-of-line-visible}
+@item @code{ClefModifier} (Oktavierungs-Acht) @tab @code{Staff} @tab @code{begin-of-line-visible}
@item @code{RehearsalMark} (Übungszeichen) @tab @code{Score} @tab @code{end-of-line-invisible}
@item @code{TimeSignature} (Taktart) @tab @code{Staff} @tab @code{all-visible}
nach dem expliziten Wechsel zu B-Dur immer noch sichtbar, obwohl
@code{all-invisible} eingesetzt wurde:
-@lilypond[quote,verbatim,relative=1,ragged-right]
-\key g \major
-f4 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
+@lilypond[quote,verbatim,ragged-right]
+\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
+}
@end lilypond
Die Sichtbarkeit derartiger expliziter Tonart- und Schlüsseländerungen
Schlüssel zu Beginn einer Zeile -- um diese zu beeinflussen, muss
@code{break-visibility} benutzt werden.
-@lilypond[quote,verbatim,relative=1,ragged-right]
-\key g \major
-f4 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
+@lilypond[quote,verbatim,ragged-right]
+\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
+}
@end lilypond
@strong{@emph{Sichtbarkeit von erinnernden Versetzungszeichen}}
expliziten Tonartänderung auftreten, muss die @code{Staff}-Eigenschaft
@code{printKeyCancellation} auf @code{#f} gesetzt werden:
-@lilypond[quote,verbatim,relative=1,ragged-right]
-\key g \major
-f4 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
+@lilypond[quote,verbatim,ragged-right]
+\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
+}
@end lilypond
Mit diesen Veränderungen bleiben nur noch die Versetzungszeichen
@cindex Schlüssel, Sichtbarkeit der Oktavierung
Das kleine Oktavierungssymbol von oktavierten Notenschlüsseln
-wird durch das @code{OctavateEight}-Layout-Objekt erstellt.
+wird durch das @code{ClefModifier}-Layout-Objekt erstellt.
Seine Sichtbarkeit wird automatisch vom @code{Clef}-Objekt
geerbt, sodass Veränderungen von @code{break-visibility}
-des @code{OctavateEight}-Layout-Objekts nicht auch noch
+des @code{ClefModifier}-Layout-Objekts nicht auch noch
für unsichtbare Schlüssel zusätzlich vorgenommen werden müssen.
Bei expliziten Schlüsseländerungn kontrolliert die
Hier einige Beispiele, welche Linienstile möglich sind
und wie sie verändert werden können:
-@lilypond[relative=2,ragged-right,verbatim,quote]
-d2 \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
+@lilypond[ragged-right,verbatim,quote]
+\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
+}
@end lilypond
Die Position der Endpunkte des Streckers werden in
es ist möglich, sie manuell vorzugeben:
@c TODO Complete
-@lilypond[relative=2,ragged-right,verbatim,quote]
-e2 \glissando f
-\once \override Glissando.bound-details.right.Y = #-2
-e2 \glissando f
+@lilypond[ragged-right,verbatim,quote]
+\relative {
+ e''2 \glissando f
+ \once \override Glissando.bound-details.right.Y = #-2
+ e2 \glissando f
+}
@end lilypond
Der Wert von @code{Y} wird für den rechten Endpunkt auf
Layout-Objektes sinnvoll ist. Das folgende Beispiel zeigt
eine sinnvolle Anwendung:
-@lilypond[quote,verbatim,relative=1]
-g4\< e' d' f\!
+@lilypond[quote,fragment,verbatim]
+g4\< e' d'' f''\!
\override Hairpin.rotation = #'(20 -1 0)
-g,,4\< e' d' f\!
+g4\< e' d'' f''\!
@end lilypond
werden, wodurch andernfalls einige der Texte zu hoch geschoben werden
würden.
-@lilypond[quote,verbatim,relative=1]
+@lilypond[quote,fragment,verbatim]
\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" }
+des'^\markup { \rotate #30 "a D-Flat" }
+fis'^\markup { \rotate #30 "an F-Sharp" }
@end lilypond
@seealso
Handbuch zum Lernen:
-@rlearning{Die Ausgabe verändern},
+@rlearning{Die Ausgabe verbessern},
@rlearning{Mehr Information}.
Notationsreferenz:
und die Positionen, wenn @code{X-offset} und @code{Y-offset}
verändert werden.
-@lilypond[verbatim,quote,relative=2]
-a-3
-a
+@lilypond[verbatim,fragment,quote]
+a'-3
+a'
-\tweak X-offset #0
-\tweak Y-offset #0
-3
-a
+a'
-\tweak X-offset #-1
-\tweak Y-offset #1
-3
@code{\tweak}-Befehl kann benutzen, um verschiedene Anmerkungen
an einer einzigen Note auszurichten:
-@lilypond[quote,verbatim,relative=1]
+@lilypond[quote,verbatim,fragment]
a'
-\tweak self-alignment-X #-1
^"left-aligned"
Das folgende Beispiel zeigt, wie man eine Fingersatzanweisung so
ausrichtet, dass sie nah am Notenkopf bleibt.
-@lilypond[quote,verbatim,relative=2]
-a
+@lilypond[quote,verbatim,fragment]
+a'
-\tweak self-alignment-X #0.5 % move horizontally left
-\tweak Y-offset #ly:self-alignment-interface::y-aligned-on-self
-\tweak self-alignment-Y #-1 % move vertically up
\musicglyph #"noteheads.s2cross"
}
}
-\relative c'' {
- a a \XinO a a
+\relative {
+ a' a \XinO a a
}
@end lilypond
-Alle Schriftzeichen in der feta-Schriftart können
+Alle Schriftzeichen in der Feta-Glyphe können
mit dem @code{\musicglyph}-Befehl erreicht werden.
-Siehe auch @ref{Die Feta-Schriftart}.
+Siehe auch @ref{Die Emmentaler-Schriftart}.
@seealso
Notationsreferenz:
@ref{Graphische Notation innerhalb einer Textbeschriftung},
@ref{Text formatieren},
@ref{Textbeschriftungsbefehle},
-@ref{Die Feta-Schriftart}.
+@ref{Die Emmentaler-Schriftart}.
erscheint, und wo auch @code{\tieDown} das Problem nicht
lösen würde.
-@lilypond[verbatim,quote,relative=1]
+@lilypond[verbatim,quote]
<<
- { e1~ e }
+ { e'1~ 1 }
\\
- { r4 <g c,> <g c,> <g c,> }
+ \relative { r4 <g' c,> <g c,> <g c,> }
>>
@end lilypond
<<
{
\once \override Tie.control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
- e1~ e1
+ e1~ 1
}
\\
{ r4 <g c,> <g c,> <g c,> }
@example
Funktion =
#(define-music-function
- (parser location @var{Arg1} @var{Arg2} @dots{})
+ (@var{Arg1} @var{Arg2} @dots{})
(@var{Typ1?} @var{Typ2?} @dots{})
#@{
@var{@dots{}Noten@dots{}}
@lilypond[quote,verbatim,ragged-right]
padText =
#(define-music-function
- (parser location padding)
+ (padding)
(number?)
#{
\once \override TextScript.padding = #padding
#})
-\relative c''' {
- c4^"piu mosso" b a b
+\relative {
+ c'''4^"piu mosso" b a b
\padText #1.8
c4^"piu mosso" d e f
\padText #2.6
@lilypond[quote,verbatim,ragged-right]
custosNote =
#(define-music-function
- (parser location note)
+ (note)
(ly:music?)
#{
\tweak NoteHead.stencil #ly:text-interface::print
#note
#})
-\relative c' { c4 d e f \custosNote g }
+\relative { c'4 d e f \custosNote g }
@end lilypond
Ersetzungsfunktionen mit mehrfachen Argumenten können definiert
@lilypond[quote,verbatim,ragged-right]
tempoPadded =
#(define-music-function
- (parser location padding tempotext)
+ (padding tempotext)
(number? markup?)
#{
\once \override Score.MetronomeMark.padding = #padding
\tempo \markup { \bold #tempotext }
#})
-\relative c'' {
+\relative {
\tempo \markup { "Low tempo" }
- c4 d e f g1
+ c''4 d e f g1
\tempoPadded #4.0 "High tempo"
g4 f e d c1
}