@c -*- coding: utf-8; mode: texinfo; documentlanguage: de -*-
@ignore
- Translation of GIT committish: fc1ca638e0b5f66858b9b7a073ceefc1eccb3ed2
+ Translation of GIT committish: e5a609e373eae846857f9a6d70a402a3d42b7d94
When revising a translation, copy the HEAD committish of the
version that you are working on. For details, see the Contributors'
Guide, node Updating translation committishes..
@end ignore
-@c \version "2.15.20"
+@c \version "2.19.22"
@c Translators: Till Paala
die in LilyPond möglich sind. Es existiert als ein HTML-Dokumente, das
sich
@c leave the @uref as one long line.
-@uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/user/@/lilypond@/-internals/,on@/-line},
+@uref{http://@/lilypond@/.org/@/doc/@/stable/@/Documentation/@/internals/,on@/-line},
aber auch lokal in das LilyPond-Dokumentationspaket integriert lesen lässt.
Intern benutzt LilyPond Scheme (ein LISP-Dialekt), um eine Infrastruktur
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
genannt), die die einzelnen Notationselemente erstellen. Ein
@code{Voice}-Kontext enthält beispielsweise einen
@code{Note_heads_engraver}, der die Notenköpfe erstellt, und ein
-@code{Staff}-Kontext einen @code{Key_signature_engraver}, der die
+@code{Staff}-Kontext einen @code{Key_engraver}, der die
Vorzeichen erstellt.
Eine vollständige Erklärung jedes Plugins findet sich in
@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
@knownissues
-Normalerweise spielt es keine Rolle, in welcher Reihenfolge
-Engraver angegeben werden, aber in einigen Spezialfällen
+Die Reihenfolge, in der die Engraver definiert werden,
+ist die Reihenfolge, in welcher sie aufgerufen werden, um
+ihre Verarbeitung vorzunehmen. Normalerweise spielt die
+Reihenfolge, in welcher die Engraver angegeben werden,
+keine Rolle, aber in einigen Spezialfällen
ist die Reihenfolge sehr wichtig. Das kann beispielsweise
vorkommen, wenn ein Engraver eine Eigenschaft erstellt und
ein anderer von ihr liest, oder ein Engraver erstellt ein
-Grob und ein anderer wertet es aus. Die Reihenfolge, in der
-Engraver angegeben werden, ist die Reihenfolge, in der sie
-aufgerufen werden, um ihre Tätigkeiten auszuführen.
+Grob und ein anderer wertet es aus.
+
+Folgende Reihenfolgen müssen beachtet werden:
+
+@itemize
+@item
+der @code{Bar_engraver} muss normalerweise zuerst kommen,
-Folgende Reihenfolgen müssen beachtet werden: der
-@code{Bar_engraver} muss normalerweise zuerst kommen, und
+@item
der @code{New_fingering_engraver} muss vor dem
-@code{Script_column_engraver} kommen. Es gibt möglicherweise weitere
-Abhängigkeiten von der Reihenfolge geben.
+@code{Script_column_engraver} kommen,
+
+@item
+der @code{Timing_translator} muss vor dem @code{Bar_number_engraver}
+kommen.
+@end itemize
+
+@seealso
+Installlierte Dateien:
+@file{ly/engraver-init.ly}.
@node Die Standardeinstellungen von Kontexten ändern
@subsection Die Standardeinstellungen von Kontexten ändern
@translationof Changing context default settings
-Die Kontexteinstellungen, die standardmäßig in
-@code{Score}, @code{Staff} und @code{Voice}-Kontexten
-benutzt werden, können in einer @code{\layout}-Umgebung
-eingestellt werden, wie das folgende Beispiel zeigt. Die
-@code{\layout}-Umgebung sollte innerhalb der
-@code{\score}-Umgebung gesetzt werden, auf die sie sich
-auswirken soll, aber außerhalb von Notation.
+@cindex Standardkontexteigenschaften, ändern
+@cindex Kontexteigenschaften, Einstellungen ändern
+
+Kontext- und Grob-Eigenschaften können mit den Befehlen @code{\set}
+und @code{\override} verändert werden, wie beschrieben in
+@ref{Eigenschaften verändern}. Diese Befehle erstellen musikalische
+Ereignisse, damit die Veränderungen zum Zeitpunkt der Verarbeitung
+in den Noten erscheinen.
+
+Dieser Abschnitt hingegen erklärt, wie man die @emph{Standardwerte} von
+Kontext- und Grob-Eigenschaften zum Zeitpunkt, an dem der Kontext erstellt
+wird, verändert. Es gibt hierzu zwei Möglichkeiten. Die eine verändert
+die Standardeinstellungen aller Kontexte eines bestimmten Typs, die andere
+verändert die Standardwerte nur eines bestimmten Kontextes.
+
+@menu
+* Alle Kontexte des gleichen Typs verändern::
+* Nur einen bestimmten Kontext verändern::
+* Rangfolge von Kontextwerten::
+@end menu
+
+@node Alle Kontexte des gleichen Typs verändern
+@unnumberedsubsubsec Alle Kontexte des gleichen Typs verändern
+@translationof Changing all contexts of the same type
+
+@cindex \context in \layout-Umgebung
+@funindex \context
+@funindex \layout
+
+Die Kontexteinstellungen, die standardmäßig in @code{Score}, @code{Staff},
+@code{Voice} und anderen Kontexten eingesetzt werden, können in einer
+@code{\context}-Umgebung innerhalb einer beliebigen @code{\layout}-Umgebung
+spezifiziert werden. Die @code{\layout}-Umgebung sollte innerhalb der
+@code{\score} (Partitur) stehen, auf die sie sich bezieht, nach den Noten.
+
+@example
+\layout @{
+ \context @{
+ \Voice
+ [Kontexteinstellungen für alle Voice-Kontexte]
+ @}
+ \context @{
+ \Staff
+ [Kontexteinstellungen für alle Staff-Kontexte]
+ @}
+@}
+@end example
+
+Folgende Einstellungstypen können angegeben werden:
+
+@itemize
+@item
+Ein @code{\override}-Befehl, aber ohne die Kontextbezeichnung:
+
+@lilypond[quote,verbatim]
+\score {
+ \relative {
+ a'4^"Thicker stems" a a a
+ a4 a a\ff a
+ }
+ \layout {
+ \context {
+ \Staff
+ \override Stem.thickness = #4.0
+ }
+ }
+}
+@end lilypond
-Auch muss der @code{\set}-Befehl und der Kontext weggelassen
-werden, wenn die Einstellungen für den Kontext auf diese Weise
-vorgenommen werden:
+@item
+Eine Kontexteigenschaft kann direkt gesetzt werden:
@lilypond[quote,verbatim]
\score {
- \relative c'' {
- a4^"Really small, thicker stems, no time signature" a a a
- a a a a
+ \relative {
+ a'4^"Smaller font" a a a
+ a4 a a\ff a
}
\layout {
\context {
\Staff
fontSize = #-4
- \override Stem #'thickness = #4.0
- \remove "Time_signature_engraver"
}
}
}
@end lilypond
-Hier zeigt der @code{\Staff}-Befehl an, dass die folgenden Einstellungen
-sich auf alle Systeme in dieser Partitur erstrecken sollen.
+@item
+Ein vordefinierter Befehl wie etwa @code{\dynamicUp} oder ein
+musikalischer Ausdruck wie @code{\accidentalStyle dodecaphonic}:
-Veränderungen können auch für den @code{Score}- oder alle
-@code{Voice}-Kontexte auf gleiche Weise vorgenommen werden.
+@lilypond[quote,verbatim]
+\score {
+ \relative {
+ a'4^"Dynamics above" a a a
+ a4 a a\ff a
+ }
+ \layout {
+ \context {
+ \Voice
+ \dynamicUp
+ }
+ \context {
+ \Staff
+ \accidentalStyle dodecaphonic
+ }
+ }
+}
+@end lilypond
-Kontextänderungen können in eine Variable geschrieben werden und dann
-einer @code{\context}-Definition zu gewiesen werden, indem man der
-Veränderung ein @code{\with} voranstellt:
+@item
+Eine vom Benutzer definierte Variable, die eine @code{\with}-Umgebung enthält;
+zu Details der @code{\with}-Umgebung, siehe
+@ref{Nur einen bestimmten Kontext verändern}.
@lilypond[quote,verbatim]
-blubb = \with {
+StaffDefaults = \with {
fontSize = #-4
- \override Stem #'thickness = #4.0
- \remove "Time_signature_engraver"
}
-bla = \with {
- fontSize = #3
- \override Stem #'thickness = #-2.0
+\score {
+ \new Staff {
+ \relative {
+ a'4^"Smaller font" a a a
+ a4 a a a
+ }
+ }
+ \layout {
+ \context {
+ \Staff
+ \StaffDefaults
+ }
+ }
}
+@end lilypond
-melody = \relative c'' {
- a4 a a a |
- a4 a a a |
+@end itemize
+
+Befehle, die die Eigenschaften verändern, können in einer @code{\layout}-Umgebung
+platziert werden, ohne von einer @code{\context}-Umgebung eingeschlossen zu werden.
+Derartige Einstellungen verhalten sich äquivalet wie Eigenschaftsveränderungen,
+die zu jedem Beginn eines bestimmten Kontextes angegeben werden. Wenn kein
+Kontext angegeben wird, wird @emph{jeder} Kontext auf der untersten Ebene
+beeinflusst, siehe auch @ref{Unterste Kontexte -- Stimmen}. Die Syntax eines
+Befehls zu Einstellung von Eigenschaftseinstellungen in einer @code{\layout}-Umgebung
+ist die gleiche wie für den Befehl direkt zwischen den Noten geschrieben.
+
+@lilypond[quote,verbatim]
+\score {
+ \new Staff {
+ \relative {
+ a'4^"Smaller font" a a a
+ a4 a a a
+ }
+ }
+ \layout {
+ \accidentalStyle dodecaphonic
+ \set fontSize = #-4
+ \override Voice.Stem.thickness = #4.0
+ }
}
+@end lilypond
+
+
+@node Nur einen bestimmten Kontext verändern
+@unnumberedsubsubsec Nur einen bestimmten Kontext verändern
+@translationof Changing just one specific context
+@cindex \with
+@funindex \with
+
+Die Kontexteigenschaften nur eines bestimmten Kontextes können mit einer
+@code{\with}-Umgebung geändert werden. Alle anderen Vorkommen des
+gleichen Kontexts behalten ihre Standardeinstellungen, möglicherweise
+durch Einstellungn in @code{\layout}-Umgebungen verändert. Die
+@code{\with}-Umgebung muss direkt nach dem Befehl @code{\new}
+@var{Kontext-Typ} gesetzt werden:
+
+@example
+\new Staff
+\with @{
+ [enthält Einstellungen nur für diesen spezifischen Kontext]
+@} @{
+...
+@}
+@end example
+
+Folgende Arten von Einstellungen können angegeben werden:
+
+@itemize
+@item
+Ein @code{\override}-Befehl, dessen Kontextbezeichnung ausgelassen wird:
+
+@lilypond[quote,verbatim]
+\score {
+ \new Staff {
+ \new Voice
+ \with {
+ \override Stem.thickness = #4.0
+ }
+ {
+ \relative {
+ a'4^"Thick stems" a a a
+ a4 a a a
+ }
+ }
+ }
+}
+@end lilypond
+
+@item
+Eine Kontexeigenschaft direkt einstellen:
+
+@lilypond[quote,verbatim]
\score {
<<
- \new Staff <<
- \melody
- s1*0^"Small, thicker stems, no time signature"
- >>
- \new Staff \bla <<
- \melody
- s1*0^"Different"
- >>
+ \new Staff {
+ \relative {
+ a'4^"Default font" a a a
+ a4 a a a
+ }
+ }
+ \new Staff
+ \with {
+ fontSize = #-4
+ } {
+ \relative {
+ a'4^"Smaller font" a a a
+ a4 a a a
+ }
+ }
>>
- \layout {
- \context {
- \Staff
- \blubb
+}
+@end lilypond
+
+@item
+Ein vordefinierter Befehl wie etwa @code{\dynamicUp}
+
+@lilypond[quote,verbatim]
+\score {
+ <<
+ \new Staff {
+ \new Voice {
+ \relative {
+ a'4^"Dynamics below" a a a
+ a4 a a\ff a
+ }
+ }
}
- }
+ \new Staff
+ \with { \accidentalStyle dodecaphonic }
+ {
+ \new Voice
+ \with { \dynamicUp }
+ {
+ \relative {
+ a'4^"Dynamics above" a a a
+ a4 a a\ff a
+ }
+ }
+ }
+ >>
}
@end lilypond
- @c TODO: add \with in here.
-
+@end itemize
+
+
+@node Rangfolge von Kontextwerten
+@unnumberedsubsubsec Rangfolge von Kontextwerten
+@translationof Order of precedence
+
+Der Wert einer Eigenschaft, die zu einer bestimmten Zeit aktiv ist, wird
+wie folgend bestimmt:
+
+@itemize
+@item
+wenn ein @code{\override}- oder @code{\set}-Befehl in der Eingabe aktiv ist,
+wird dieser Wert benützt,
+
+@item
+ansonsten wird der Standardwert aus einer @code{\with}-Umgebung zu
+Beginn des Kontextes benützt,
+
+@item
+ansonsten wied der Standardwert aus der letzten passenden
+@code{\context}-Umgebung in der letzten @code{\layout}-Umgebung benützt,
+
+@item
+ansonsten wird der Standardwert von LilyPond eingesetzt.
+@end itemize
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{Kontexteigenschaften verändern}.
+
+Notationsreferenz:
+@ref{Was sind Kontexte?},
+@ref{Unterste Kontexte -- Stimmen},
+@ref{Der set-Befehl},
+@ref{Der override-Befehl},
+@ref{Die \layout-Umgebung}.
+
@node Neue Kontexte definieren
@subsection Neue Kontexte definieren
\consists "Note_heads_engraver"
\consists "Rhythmic_column_engraver"
\consists "Text_engraver"
- \consists Pitch_squash_engraver
+ \consists "Pitch_squash_engraver"
squashedPosition = #0
- \override NoteHead #'style = #'slash
- \override Stem #'transparent = ##t
- \override Flag #'transparent = ##t
+ \override NoteHead.style = #'slash
+ \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
}
hinzufügen, die für diese Aktionen zuständig sind:
@example
-\consists Note_heads_engraver
-\consists Text_engraver
+\consists "Note_heads_engraver"
+\consists "Text_engraver"
@end example
@noindent
aber die Noten sollen nur auf der mittleren Linie ausgegeben werden:
@example
-\consists Pitch_squash_engraver
+\consists "Pitch_squash_engraver"
squashedPosition = #0
@end example
Die Noten sehen wie ein Querstrich aus und haben keine Hälse:
@example
-\override NoteHead #'style = #'slash
-\override Stem #'transparent = ##t
-\override Flag #'transparent = ##t
+\override NoteHead.style = #'slash
+\hide Stem
@end example
Alle diese Engraver müssen zusammenarbeiten, und das wird erreicht mit
\type "Engraver_group"
\consists "Note_heads_engraver"
\consists "Text_engraver"
- \consists Pitch_squash_engraver
+ \consists "Pitch_squash_engraver"
squashedPosition = #0
- \override NoteHead #'style = #'slash
- \override Stem #'transparent = ##t
- \override Flag #'transparent = ##t
+ \override NoteHead.style = #'slash
+ \hide Stem
\alias Voice
@}
@end example
notiert werden:
@example
-\relative c'' @{
- a4 d8 bes8
+\relative @{
+ a'4 d8 bes8
\new ImproVoice @{
c4^"ad lib" c
c4 c^"ausziehen"
sein kann. Dass kann zu unerwarteten neuen Systemgruppen oder Partituren
führen.
+@cindex alignAboveContext
+@cindex alignBelowContext
+@funindex alignAboveContext
+@funindex alignBelowContext
+
+Manchmal soll ein Kontext nur für einen kurzen Moment existieren,
+ein gutes Beispiel etwa ein System für ein Ossia. Das wird normalerweise
+erreicht, indem man die Kontextdefinition an der richtigen Stelle parallel
+mit dem existierenden Abschnitt der Hauptnoten anlegt. Standardmäßig wird
+der neue Kontext unter den existierenden Kontexten angelegt. Um ihn aber
+über dem Kontext mit der Bezeichnung @qq{Hauptstimme} zu positionieren,
+sollte er folgenderweise erstellt werden:
+
+@example
+@code{\new Staff \with @{ alignAboveContext = #"Hauptstimme" @} }
+@end example
+
+Eine ähnliche Situation entsteht, wenn man einen zeitweiligen Gesangstext
+in einem Layout mit mehreren Notensystemen anlegen und positionieren will,
+etwa wenn eine zweite Strophe zu einem wiederholten Abschnitt in einem
+@code{ChoirStaff} hinzugefügt wird. Standardmäßig wird der neue Text unter
+dem untersten System angelegt. Wenn der Gesangstext mit der Eigenschaft
+@code{alignBelowContext} definiert wird, kann er korrekt unter dem
+(bezeichneten) Gesangstext positioniert werden, der die erste Strophe
+enthält.
+
+Beispiele, die diese Neuordnung von temporären Kontexten zeigen, finden sich
+an anderen Stellen; siehe @rlearning{Musikalische Ausdrücke ineinander verschachteln},
+@ref{Einzelne Systeme verändern} und @ref{Techniken für die Gesangstextnotation}.
+
@seealso
+Handbuch zum Lernen:
+@rlearning{Musikalische Ausdrücke ineinander verschachteln}.
+
+Notationsreferenz:
+@ref{Einzelne Systeme verändern},
+@ref{Techniken für die Gesangstextnotation}.
+
Handbuch zur Benutzung:
@rprogram{Ein zusätzliches System erscheint}.
fügt drei Notenlinienzwischenräume zwischen die Zahl und den Notenkopf:
@example
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
@end example
Wenn dieser Befehl in den Quelltext eingefügt wird, bevor der
Fingersatz notiert ist, erhält man folgendes:
@lilypond[quote,relative=2,verbatim]
-\once \override Voice.Fingering #'padding = #3
+\once \override Voice.Fingering.padding = #3
c-2
\stemUp
f
Der Befehl
@verbatim
-\override Staff.Stem #'thickness = #4.0
+\override Staff.Stem.thickness = #4.0
@end verbatim
@noindent
das gerade aktuelle Notensystem aus. Andere Systeme behalten
ihr normales Aussehen. Hier ein Beispiel mit diesem Befehl:
-@lilypond[quote,verbatim,relative=2]
-c4
-\override Staff.Stem #'thickness = #4.0
-c4
-c4
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
+\override Staff.Stem.thickness = #4.0
+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
-\once \override Stem #'thickness = #4.0
-c4
-c4
+@lilypond[quote,fragment,verbatim]
+c''4
+\once \override Stem.thickness = #4.0
+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]
-\override Slur #'thickness = #3.0
-c8[( c
-\override Beam #'beam-thickness = #0.6
-c8 c])
+@lilypond[quote,fragment,verbatim]
+\override Slur.thickness = #3.0
+c''8[( c''
+\override Beam.beam-thickness = #0.6
+c''8 c''])
@end lilypond
@noindent
weil er für den falschen Kontext gefordert wird.
@example
-\override Voice.Stem #'thickness = #4.0
-\revert Staff.Stem #'thickness
+\override Voice.Stem.thickness = #4.0
+\revert Staff.Stem.thickness
@end example
Einige veränderbare Optionen werden als Untereigenschaften (engl.
wie beispielsweise
@example
-\override Stem #'(details beamed-lengths) = #'(4 4 3)
+\override Stem.details.beamed-lengths = #'(4 4 3)
@end example
@end ignore
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 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
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
@lilypond[quote, verbatim, relative=2]
c4 c
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
c4 c
@end lilypond
benutzt:
@lilypond[quote, verbatim, relative=2]
-{ \override Staff.Stem #'thickness = #3.0
+{ \override Staff.Stem.thickness = #3.0
<<
{
e4 e
- \override Stem #'thickness = #0.5
+ \override Stem.thickness = #0.5
e4 e
} \\ {
c4 c c c
@lilypond[quote, verbatim, relative=2]
c4
-\override Voice.Stem #'thickness = #3.0
+\override Voice.Stem.thickness = #3.0
c4 c
-\revert Voice.Stem #'thickness
+\revert Voice.Stem.thickness
c4
@end lilypond
<<
{
e4
- \override Staff.Stem #'thickness = #3.0
+ \override Staff.Stem.thickness = #3.0
e4 e e
} \\ {
c4 c c
- \revert Staff.Stem #'thickness
+ \revert Staff.Stem.thickness
c4
}
>>
{
<<
{
- \override Stem #'thickness = #3.0
+ \override Stem.thickness = #3.0
e4 e e e
} \\ {
c4
- \once \override Stem #'thickness = #3.0
+ \once \override Stem.thickness = #3.0
c4 c c
}
>>
werden, mit dem man Optimierungen vornehmen kann:
@example
-\tweak #'@code{grob-eigenschaft} #@code{Wert}
+\tweak @var{Layout-Objekt} #'@code{grob-eigenschaft} #@code{Wert}
@end example
-Der @code{\tweak}-Befehl wirkt sich auf das Objekt aus, dass direkt auf
-@code{Wert} folgt.
+Die Angabe von @var{Layout-Objekt} ist optional.
+Der @code{\tweak}-Befehl wirkt sich auf das musikalische Objekt aus, dass direkt
+auf @code{Wert} folgt.
@ignore
In einigen Fällen ist es möglich, mit einem abgekürzten Befehl
@lilypond[relative=2,verbatim]
< c
- \tweak #'color #red
+ \tweak color #red
d
g
- \tweak #'duration-log #1
+ \tweak duration-log #1
a
> 4
--\tweak #'padding #8
+-\tweak padding #8
-^
@end lilypond
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
- \tweak #'color #red
- d
- g
- \tweak #'duration-log #1
- a
+@lilypond[verbatim,fragment,quote]
+< c''
+ \tweak color #red
+ d''
+ g''
+ \tweak duration-log #1
+ 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
-Objekt stehen, auf das er sich bezieht. Manchmal kommt es vor, dass
-LilyPond während der Kompilierung der Datei zusätzliche Elemente
-einfügt, die dann zwischen der Optimierung und dem Objekt stehen.
-Noten, auch einzlene Noten, werden beispielsweise intern von LilyPond
-immer wie Akkorde behandelt, sodass auch ein @code{\tweak}-Befehl
-für eine einzelne Note innerhalb von Akkordzeichen notiert werden
-muss:
+Objekt stehen, auf das er sich bezieht. Einen ganzen Akkord kann man
+nicht mit @code{\tweak} verändern, weil der Akkord wie ein Kontainer
+ist, in dem alle Layoutelemente aus Ereignissen innerhalb von
+@code{EventChord} erstellt werden:
@lilypond[relative=2,verbatim,quote]
-\tweak #'color #red c4
-<\tweak #'color #red c>4
+\tweak color #red <c e>4
+<\tweak color #red c e>4
@end lilypond
-Der @code{\tweak}-Befehl kann @emph{nicht} eingesetzt werden, um
-Elemente zu verändern, die sich nicht direkt im Notentext befinden.
-Insbesondere Hälse, Balken oder Versetzungszeichen lassen sich nicht
-beeinflussen, weil diese später durch den Notenkopf erstellt werden
-und nicht direkt durch
-den Quelltext. @code{\tweak} kann auch nicht verwendet werden,
+Der einfache @code{\tweak}-Befehl kann @emph{nicht} eingesetzt werden, um
+Elemente zu verändern, die nicht direkt aus der Eingabe erstellt werden.
+Insbesondere Hälse, automatische Balken oder Versetzungszeichen lassen sich nicht
+beeinflussen, weil diese später durch die Layoutobjekte des Notenkopfs erstellt
+werden und nicht direkt durch
+den Quelltext.
+
+Derartige indirekt erstellt Layoutobjekte können mit @code{\tweak} verändert
+werden, indem man die ausführliche Form des Befehls einsetzt:
+
+@lilypond[fragment,verbatim,quote]
+\tweak Stem.color #red
+\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,
um Schlüssel oder Taktarten zu verändern, denn sie werden von
dem @code{\tweak}-Befehl während der Interpretation durch
automatisches Einfügen von zusätzlichen Kontextelementen getrennt.
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
@knownissues
-@cindex tweak-Befehl in einer Variable
-@cindex Variable, tweak-Befehl benutzen
-@cindex Optimierung innerhalb einer Variable
-
-Der @code{\tweak}-Befehl kann nicht innerhalb von einer Variable eingesetzt werden.
-
-@cindex tweaks-Befehl in Gesangstext
-@cindex lyrics und tweak-Befehl
-@cindex Gesangstext und tweak-Befehl
-
-Der @code{\tweak}-Befehl kann nicht innerhalb von @code{\lyricmode} eingesetzt werden.
-
@cindex Kontrollpunkte und tweak
@cindex tweak und Kontrollpunkte
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
% reduced space between staves
\new PianoStaff \with {
% this is the nested declaration
- \override StaffGrouper #'staff-staff-spacing #'basic-distance = #7
+ \override StaffGrouper.staff-staff-spacing.basic-distance = #7
} <<
\new Staff { \clef treble c''1 }
\new Staff { \clef bass c1 }
@lilypond[quote,verbatim]
\new PianoStaff \with {
- \override StaffGrouper #'staff-staff-spacing =
+ \override StaffGrouper.staff-staff-spacing =
#'((basic-distance . 0)
(minimum-distance . 0)
(padding . 0)
folgende Aufrufe äquivalent:
@example
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
#'((basic-distance . 7))
-\override StaffGrouper #'staff-staff-spacing =
+\override StaffGrouper.staff-staff-spacing =
#'((basic-distance . 7)
(minimum-distance . 0)
(padding . 0)
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
+Stimme (@code{voice} zu erstellen, als die Richtung eines Objektes zu
+ändern. Zu mehr Information siehe @ref{Mehrere Stimmen}.
+
+@seealso
+Handbuch zum Lernen:
+@rlearning{within-staff (Objekte innerhalb des Notensystems)}.
+
+Notationsreferenz:
+@ref{Mehrere Stimmen}.
+
@node Abstände und Maße
@subsection Abstände und Maße
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)
+ \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
+ \override StaffSymbol.width = #23
}
-{ a4 e' f b | d1 }
+\relative { a4 e' f b | d1 }
@end lilypond
a~a
a
% increase the length of the tie
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
~a
@end lilypond
\compressFullBarRests
R1*23
% increase the length of the rest bar
-\once \override MultiMeasureRest #'minimum-length = #20
+\once \override MultiMeasureRest.minimum-length = #20
R1*23
a1
@end lilypond
@lilypond[verbatim,quote,relative=2]
a \< a a a \!
% increase the length of the hairpin
-\override Hairpin #'minimum-length = #20
+\override Hairpin.minimum-length = #20
a \< a a a \!
@end lilypond
@lilypond[verbatim,quote,relative=2]
a( a)
a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
( a)
a\( a\)
a
--\tweak #'minimum-length #5
+-\tweak minimum-length #5
\( a\)
@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'
+\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'
+\once \override Glissando.minimum-length = #20
+\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
+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
+\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
-e8 e e e
+\once \override Beam.minimum-length = #20
+\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
+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
-\once \override Glissando #'(bound-details left Y) = #3
-\once \override Glissando #'(bound-details right Y) = #-2
-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
+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]
-\override Glissando #'breakable = ##t
-\override Glissando #'(bound-details right-broken Y) = #-3
-c1 \glissando \break
-f1
+@lilypond[ragged-right,fragment,verbatim,quote]
+\override Glissando.breakable = ##t
+\override Glissando.bound-details.right-broken.Y = #-3
+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]
-\override TextSpanner #'(bound-details left text)
+@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]
-\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
+@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"
+
+\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]
-\override Staff.Clef #'color = #white
-a1
+@lilypond[quote,fragment,verbatim]
+\override Staff.Clef.color = #white
+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]
-\override Staff.Clef #'color = #white
-\override Staff.Clef #'layer = #-1
-a1
+@lilypond[quote,fragment,verbatim]
+\override Staff.Clef.color = #white
+\override Staff.Clef.layer = #-1
+a'1
@end lilypond
zeigen an, ob das Layout-Objekt an einer bestimmten Position
sichtbar sein wird oder nicht:
-@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {ja} {ja} {ja}
+@multitable {@code{begin-of-line-invisible}} {@code{'#(#t #t #t)}} {Vor} {Bei Nr.} {Nach}
@headitem Funktion @tab Vektor @tab Vor @tab kein @tab Nach
@headitem Form @tab Form @tab Umbruch @tab Umbruch @tab Umbruch
@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}
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)
+\once \override Score.BarLine.break-visibility = #'#(#f #t #t)
\break
f4 g a b
f4 g a b
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
@seealso
Handbuch zum Lernen:
-@rlearning{Sichtbarkeit und Farbe von Objekten}
+@rlearning{Sichtbarkeit und Farbe von Objekten}.
@node Linienstile
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\!
-\override Hairpin #'rotation = #'(20 -1 0)
-g,,4\< e' d' f\!
+@lilypond[quote,fragment,verbatim]
+g4\< e' d'' f''\!
+\override Hairpin.rotation = #'(20 -1 0)
+g4\< e' d'' f''\!
@end lilypond
werden, wodurch andernfalls einige der Texte zu hoch geschoben werden
würden.
-@lilypond[quote,verbatim,relative=1]
-\override TextScript #'outside-staff-priority = ##f
+@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
Notationsreferenz:
@ref{Die Referenz der Programminterna erklärt},
-@ref{Eigenschaften verändern},
+@ref{Eigenschaften verändern}.
+
+Erweitern:
+@rextend{Schnittstellen für Programmierer}.
Installierte Dateien:
@file{scm/define-grobs.scm}.
Schnipsel:
@rlsr{Tweaks and overrides}.
-Erweitern:
-@rextend{Schnittstellen für Programmierer}.
-
Referenz der Interna:
@rinternals{All layout objects}.
und die Positionen, wenn @code{X-offset} und @code{Y-offset}
verändert werden.
-@lilypond[verbatim,quote,relative=2]
-a-3
-a
--\tweak #'X-offset #0
--\tweak #'Y-offset #0
+@lilypond[verbatim,fragment,quote]
+a'-3
+a'
+-\tweak X-offset #0
+-\tweak Y-offset #0
-3
-a
--\tweak #'X-offset #-1
--\tweak #'Y-offset #1
+a'
+-\tweak X-offset #-1
+-\tweak Y-offset #1
-3
@end lilypond
@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
+-\tweak self-alignment-X #-1
^"left-aligned"
--\tweak #'self-alignment-X #0
+-\tweak self-alignment-X #0
^"center-aligned"
--\tweak #'self-alignment-X #RIGHT
+-\tweak self-alignment-X #RIGHT
^"right-aligned"
--\tweak #'self-alignment-X #-2.5
+-\tweak self-alignment-X #-2.5
^"aligned further to the right"
@end lilypond
Das folgende Beispiel zeigt, wie man eine Fingersatzanweisung so
ausrichtet, dass sie nah am Notenkopf bleibt.
-@lilypond[quote,verbatim,relative=2]
-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
+@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
-3 % third finger
@end lilypond
@lilypond[verbatim,quote,relative=1]
% The RehearsalMark will be centered above the Clef
-\override Score.RehearsalMark #'break-align-symbols = #'(clef)
+\override Score.RehearsalMark.break-align-symbols = #'(clef)
\key a \major
\clef treble
\mark "↓"
e1
% The RehearsalMark will be centered above the TimeSignature
-\override Score.RehearsalMark #'break-align-symbols = #'(time-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(time-signature)
\key a \major
\clef treble
\time 3/4
\mark "↓"
e2.
% The rehearsal mark will be centered above the Breath Mark
-\override Score.RehearsalMark #'break-align-symbols = #'(breathing-sign)
+\override Score.RehearsalMark.break-align-symbols = #'(breathing-sign)
\key a \major
\clef treble
\time 4/4
@lilypond[verbatim,quote,relative=1]
% The RehearsalMark will be centered above the Key Signature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
\key a \major
\clef treble
\mark "↓"
e1
% The RehearsalMark will be centered above the Clef
\set Staff.explicitKeySignatureVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
\key a \major
\clef bass
\mark "↓"
% The rehearsal mark will be centered above the Bar Line
\set Staff.explicitKeySignatureVisibility = #all-invisible
\set Staff.explicitClefVisibility = #all-invisible
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature clef)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature clef)
\key a \major
\clef treble
\mark "↓"
@lilypond[verbatim,quote,relative=1]
% The RehearsalMark will be centered above the KeySignature
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
\key a \major
\clef treble
\time 4/4
\mark "↓"
e1
% The RehearsalMark will be aligned with the left edge of the KeySignature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #LEFT
+\once \override Score.KeySignature.break-align-anchor-alignment = #LEFT
\mark "↓"
\key a \major
e1
% The RehearsalMark will be aligned with the right edge of the KeySignature
-\once \override Score.KeySignature #'break-align-anchor-alignment = #RIGHT
+\once \override Score.KeySignature.break-align-anchor-alignment = #RIGHT
\key a \major
\mark "↓"
e1
@lilypond[verbatim,quote,relative=1]
% The RehearsalMark will be aligned with the left edge of the KeySignature
% and then shifted right by 3.5 staff-spaces
-\override Score.RehearsalMark #'break-align-symbols = #'(key-signature)
-\once \override Score.KeySignature #'break-align-anchor = #3.5
+\override Score.RehearsalMark.break-align-symbols = #'(key-signature)
+\once \override Score.KeySignature.break-align-anchor = #3.5
\key a \major
\mark "↓"
e1
% The RehearsalMark will be aligned with the left edge of the KeySignature
% and then shifted left by 2 staff-spaces
-\once \override Score.KeySignature #'break-align-anchor = #-2
+\once \override Score.KeySignature.break-align-anchor = #-2
\key a \major
\mark "↓"
e1
@lilypond[verbatim,quote]
XinO = {
- \once \override NoteHead #'stencil = #ly:text-interface::print
- \once \override NoteHead #'text = \markup {
+ \once \override NoteHead.stencil = #ly:text-interface::print
+ \once \override NoteHead.text = \markup {
\combine
\halign #-0.7 \draw-circle #0.85 #0.2 ##f
\musicglyph #"noteheads.s2cross"
}
}
-\relative c'' {
- a a \XinO a a
+\relative {
+ a' a \XinO a a
}
@end lilypond
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
@lilypond[verbatim,quote,relative=1]
<<
{
- \once \override Tie
- #'control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
- e1~ e1
+ \once \override Tie.control-points = #'((1 . -1) (3 . 0.6) (12.5 . 0.6) (14.5 . -1))
+ e1~ 1
}
\\
{ r4 <g c,> <g c,> <g c,> }
Argumente. Wiederum muss das erste Argument immer der Grob sein, aber
das erste und zweite Argument sind @qq{Beginn-} und @qq{Endeargumente}.
-
-
@var{start} (Beginn) und @var{end} (Ende) sind absichtlich
nur Platzhalter, die nur für die Strecker gelten (etwa @code{Hairpin} oder
@code{Beam}), die unterschiedliche Höhenberechnungen je nach beginnender und
'(-0.5 . 0.5)))))
squareLineCircleSpace = {
- \override NoteHead #'stencil = #square-line-circle-space
+ \override NoteHead.stencil = #square-line-circle-space
}
smartSquareLineCircleSpace = {
\squareLineCircleSpace
- \override NoteHead #'Y-extent =
+ \override NoteHead.Y-extent =
#(ly:make-unpure-pure-container
ly:grob::stencil-height
(lambda (grob start end) (ly:grob::stencil-height grob)))
\new Voice \with { \remove "Stem_engraver" }
\relative c'' {
\squareLineCircleSpace
- cis4 ces cisis c
+ cis4 ces disis d
\smartSquareLineCircleSpace
- cis4 ces cisis c
+ cis4 ces disis d
}
@end lilypond
@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{}}
@item @code{@var{@dots{}Noten@dots{}}}
@tab normale LilyPond-Eingabe, wobei @code{$} (wenn nur LilyPond-Konstruktionen
erlaubt sind) oder @code{#} (um es als Scheme-Wert oder Argument einer
-musikalischen Funktionen einzusetzen) benutzt wird, um
+musikalischen Funktionen oder als Noten innerhalb von Notenlisten einzusetzen) benutzt wird, um
Argumente zu referenzieren (etwa @samp{$Arg1}).
@end multitable
@lilypond[quote,verbatim,ragged-right]
padText =
#(define-music-function
- (parser location padding)
+ (padding)
(number?)
#{
- \once \override TextScript #'padding = #padding
+ \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
Neben Zahlen können auch musikalische Ausdrücke wie Noten
als Argumente für musikalische Funktionen eingesetzt werden:
-@c TODO: use a better example (the music argument is redundant).
-
@lilypond[quote,verbatim,ragged-right]
custosNote =
#(define-music-function
- (parser location note)
+ (note)
(ly:music?)
#{
- \once \override Voice.NoteHead #'stencil =
- #ly:text-interface::print
- \once \override Voice.NoteHead #'text =
- \markup \musicglyph #"custodes.mensural.u0"
- \once \override Voice.Stem #'stencil = ##f
- $note
+ \tweak NoteHead.stencil #ly:text-interface::print
+ \tweak NoteHead.text
+ \markup \musicglyph #"custodes.mensural.u0"
+ \tweak Stem.stencil ##f
+ #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)
- (number? string?)
+ (padding tempotext)
+ (number? markup?)
#{
- \once \override Score.MetronomeMark #'padding = #padding
+ \once \override Score.MetronomeMark.padding = #padding
\tempo \markup { \bold #tempotext }
#})
-\relative c'' {
+\relative {
\tempo \markup { "Low tempo" }
- c4 d e f g1
- \tempoPadded #4.0 #"High tempo"
+ c''4 d e f g1
+ \tempoPadded #4.0 "High tempo"
g4 f e d c1
}
@end lilypond