Guide, node Updating translation committishes..
@end ignore
-@c \version "2.19.2"
+@c \version "2.19.22"
@node Tweaking output
@chapter Tweaking output
shape. Objects with an extended shape like these are called
@q{Spanners}.
+Spanners cannot be tweaked after their creation. This includes both
+@code{StaffSymbol} and @code{LedgerLineSpanner} which continue
+throughout the score, except if they are terminated by the
+@code{\stopStaff} command and then recreated using @code{\startStaff}
+command.
+
What is more, there are @q{abstract} grobs which do not print
anything of their own, but rather collect, position and manage
other grobs. Common examples for this are
modified by different commands, so it is useful to be able to recognize
the types of objects and properties from their names.
+@seealso
+Notation Reference:
+@ruser{Modifying properties}.
+
@node Tweaking methods
@subsection Tweaking methods
@cindex override syntax
@funindex \override
-@funindex override
We have already met the commands @code{\set} and @code{\with}, used to
change the properties of @strong{contexts} and to remove and add
@cindex color property, example
@cindex NoteHead, example of overriding
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4 d
-\override NoteHead.color = #red
-e4 f |
-\override NoteHead.color = #green
-g4 a b c |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \override NoteHead.color = #green
+ g4 a b c |
+}
@end lilypond
@cindex revert command
@funindex \revert
-@funindex revert
Once overridden, the property retains its new value until it is
overridden again or a @code{\revert} command is encountered.
@cindex color property, example
@cindex NoteHead, example of overriding
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-c4 d
-\override NoteHead.color = #red
-e4 f |
-\override NoteHead.color = #green
-g4 a
-\revert NoteHead.color
-b4 c |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \override NoteHead.color = #green
+ g4 a
+ \revert NoteHead.color
+ b4 c |
+}
@end lilypond
@unnumberedsubsubsec The @code{@bs{}once} prefix
@funindex \once
-@funindex once
-Both the @code{\override} and the @code{\set} commands may be prefixed
-by @code{\once}. This causes the following @code{\override} or
-@code{\set} command to be effective only during the current musical
+@code{\override}, @code{\revert}, @code{\set}, and @code{\unset}
+commands may be prefixed with @code{\once}. This causes such a
+command to be effective only during the current musical
moment before the property reverts back to its previous value (this can
be different from the default if another @code{\override} is still in
effect). Using the same example, we can change the color of a single
@cindex color property, example
@cindex NoteHead, example of overriding
-@lilypond[quote,verbatim,relative=1]
-c4 d
-\override NoteHead.color = #red
-e4 f |
-\once \override NoteHead.color = #green
-g4 a
-\revert NoteHead.color
-b c |
+@lilypond[quote,verbatim]
+\relative {
+ c'4 d
+ \override NoteHead.color = #red
+ e4 f |
+ \once \override NoteHead.color = #green
+ g4 a
+ \once \revert NoteHead.color
+ b c |
+ \revert NoteHead.color
+ f2 c |
+}
@end lilypond
The @code{\once} prefix may also be used in front of many
predefined commands to limit their effect to one musical moment:
-@lilypond[quote,verbatim,relative=1]
-c4 d
-\once \stemDown
-e4 f |
-g4 a
-\once \hideNotes
-b c |
+@lilypond[quote,verbatim]
+\relative {
+ c'4( d)
+ \once \slurDashed
+ e4( f) |
+ g4( a)
+ \once \hideNotes
+ b( c) |
+}
@end lilypond
-However, predefined commands of the form @code{\@dots{}Neutral},
-@code{\@dots{}Off} and @code{\un@dots{}} use @code{\revert} internally
-rather than @code{\override} so prefixing these with @code{\once} has no
-effect.
-
-
@node The overrideProperty command
@unnumberedsubsubsec The @code{@bs{}overrideProperty} command
@cindex overrideProperty command
@funindex \overrideProperty
-@funindex overrideProperty
There is another form of the override command,
@code{\overrideProperty}, which is occasionally required.
@cindex tweak command
@funindex \tweak
-@funindex tweak
The final tweaking command which is available is @code{\tweak}. This
should be used when several objects occur at the same musical moment,
@cindex font-size property, example
@cindex NoteHead, example of overriding
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-<c e g>4
-\once \override NoteHead.font-size = #-3
-<c e g>4
-<c e g>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ <c' e g>4
+ \once \override NoteHead.font-size = #-3
+ <c e g>4
+ <c e g>4
+}
@end lilypond
We see the override affects @emph{all} the note heads in the chord.
@cindex font-size property, example
@cindex @code{\tweak}, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-<c e g>4
-<c \tweak font-size #-3 e g>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ <c' e g>4
+ <c \tweak font-size #-3 e g>4
+}
@end lilypond
Note that the syntax of @code{\tweak} is different from that of the
@cindex color property, example
@cindex @code{\tweak}, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-a4^"Black"
+@lilypond[quote,fragment,ragged-right,verbatim]
+a'4^"Black"
-\tweak color #red ^"Red"
-\tweak color #green _"Green"
@end lilypond
the layout object, provided that LilyPond can trace its origin back to
the original event:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-<\tweak Accidental.color #red cis4
- \tweak Accidental.color #green es
- g>
+@lilypond[quote,fragment,ragged-right,verbatim]
+<\tweak Accidental.color #red cis''4
+ \tweak Accidental.color #green es''
+ g''>
@end lilypond
This long form of the @code{\tweak} command can be described as
@cindex direction property, example
@cindex color property, example
-@lilypond[quote,ragged-right,verbatim,fragment,relative=2]
-\tweak direction #up
-\tuplet 3/4 {
- \tweak color #red
- \tuplet 3/2 { c8[ c c] }
- \tuplet 3/2 { c8[ c c] }
- \tuplet 3/2 { c8[ c c] }
+@lilypond[quote,ragged-right,verbatim]
+\relative c'' {
+ \tweak direction #up
+ \tuplet 3/4 {
+ \tweak color #red
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ }
}
@end lilypond
@cindex transparent property, example
@cindex TupletNumber, example of overriding
-@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\tuplet 3/2 { c8[ c c] }
-\once \override TupletNumber.text = #tuplet-number::calc-fraction-text
-\tuplet 3/2 {
- c8[ c]
- c8[ c]
- \once \override TupletNumber.transparent = ##t
- \tuplet 3/2 { c8[ c c] }
- \tuplet 3/2 { c8[ c c] }
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \tuplet 3/2 { c'8[ c c] }
+ \once \override TupletNumber.text = #tuplet-number::calc-fraction-text
+ \tuplet 3/2 {
+ c8[ c]
+ c8[ c]
+ \once \override TupletNumber.transparent = ##t
+ \tuplet 3/2 { c8[ c c] }
+ \tuplet 3/2 { c8[ c c] }
+ }
}
@end lilypond
\override NoteHead.color = #red
\override NoteHead.font-size = 2
}
-\relative c'' {
- c4 a \once \emphNoteHead f d |
+\relative {
+ c''4 a \once \emphNoteHead f d |
}
@end lilypond
\override NoteHead.color = #red
\override NoteHead.font-size = 2
}
-\relative c'' {
- <c a \single \emphNoteHead f d>4
+\relative {
+ <c'' a \single \emphNoteHead f d>4
}
@end lilypond
@c Mozart, Die Zauberflöte Nr.7 Duett
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8 bes[( g]) g |
+ \relative {
+ r4 bes'8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
slurs, and you should find
@example
-@code{thickness} (number)
- @code{1.2}
- Line thickness, generally measured in @code{line-thickness}
+thickness (number)
+ 1.2
+ Line thickness, generally measured in line-thickness
@end example
This looks a good bet to change the heaviness. It tells us that
@cindex Slur example of overriding
@cindex thickness property, example
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
+ \relative {
% Increase thickness of all following slurs from 1.2 to 5.0
\override Slur.thickness = #5.0
- r4 bes8 bes[( g]) g |
+ r4 bes'8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
@cindex once override
@funindex \once
-@funindex once
As you can see, @emph{all} the slurs are thicker in the final example
above. But what if we wanted just the first slur to be thicker? This
@cindex Slur, example of overriding
@cindex thickness property, example
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8
+ \relative {
+ r4 bes'8
% Increase thickness of immediately following slur only
\once \override Slur.thickness = #5.0
bes8[( g]) g |
@cindex default properties, reverting to
@funindex \revert
-@funindex revert
Finally, what if we wanted just the first two slurs to be
heavier? Well, we could use two commands, each preceded by
@cindex Slur, example of overriding
@cindex thickness property, example
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8
+ \relative {
+ r4 bes'8
% Increase thickness of immediately following slur only
\once \override Slur.thickness = #5.0
bes[( g]) g |
@cindex Slur, example of overriding
@cindex thickness property, example
-@lilypond[quote,verbatim,relative=2]
+@lilypond[quote,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8
+ \relative {
+ r4 bes'8
% Increase thickness of all following slurs from 1.2 to 5.0
\override Slur.thickness = #5.0
bes[( g]) g |
@cindex LyricText, example of overriding
@cindex @code{\addlyrics}, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
{
\key es \major
\time 6/8
- {
- r4 bes8 bes[( g]) g |
+ \relative {
+ r4 bes'8 bes[( g]) g |
g8[( es]) es d[( f]) as |
as8 g
}
@cindex BarLine, example of overriding
@cindex stencil property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override BarLine.stencil = ##f
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex BarLine, example of overriding
@cindex stencil property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.stencil = ##f
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
shorthand for it called @code{\omit}:
@funindex \omit
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\omit Staff.BarLine
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@code{point-stencil} function, which sets the stencil to an object
with zero size:
-@lilypond[quote,verbatim,relative=2]
-{
- c4 c
+@lilypond[quote,verbatim]
+\relative {
+ c''4 c
\once \override NoteHead.stencil = #point-stencil
c4 c
}
@cindex BarLine, example of overriding
@cindex break-visibility property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.break-visibility = ##(#f #f #f)
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex TimeSignature, example of overriding
@cindex transparent property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.TimeSignature.transparent = ##t
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@code{\hide}:
@funindex \hide
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\hide Staff.TimeSignature
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex TimeSignature, example of overriding
@cindex stencil property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\omit Staff.TimeSignature
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex BarLine, example of overriding
@cindex color property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.color = #white
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex BarLine, example of overriding
@cindex color property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.color = #(x11-color 'white)
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex BarLine, example of overriding
@cindex color property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.BarLine.color = #(rgb-color 1 1 1)
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex color property, example
@cindex x11-color, example of using
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-{
+@lilypond[quote,ragged-right,verbatim]
+\relative {
\time 12/16
\override Staff.StaffSymbol.color = #(x11-color 'grey30)
\override Staff.TimeSignature.color = #(x11-color 'grey60)
\override Voice.NoteHead.color = #(x11-color 'grey85)
\override Voice.Stem.color = #(x11-color 'grey85)
\override Staff.BarLine.color = #(x11-color 'grey10)
- c4 b8 c d16 c d8 |
+ c''4 b8 c d16 c d8 |
g,8 a16 b8 c d4 e16 |
e8
}
@cindex alignAboveContext property, example
@cindex @code{\with}, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@cindex Clef, example of overriding
@cindex TimeSignature, example of overriding
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@cindex Clef, example of overriding
@cindex TimeSignature, example of overriding
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
and @code{\omit} for setting the @code{transparent} property and
clearing the @code{stencil} here, leading to the result
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@cindex TimeSignature, example of overriding
@cindex fontSize property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@cindex staff-space property, example
@cindex stencil property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
+ \relative {
+ r4 g'8 g c4 c8 d |
e4 r8
<<
{ f8 c c }
@cindex markup example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-c2^"Text1"
-c2^"Text2" |
-c2^"Text3"
-c2^"Text4" |
+@lilypond[quote,fragment,ragged-right,verbatim]
+c''2^"Text1"
+c''2^"Text2" |
+c''2^"Text3"
+c''2^"Text4" |
@end lilypond
Staves are also positioned, by default, as closely together as
@lilypond[quote,ragged-right,verbatim]
<<
\new Staff {
- \relative c' { c4 a, }
+ \relative { c'4 a, }
}
\new Staff {
- \relative c'''' { c4 a, }
+ \relative { c''''4 a, }
}
>>
@end lilypond
@cindex center
@cindex neutral
-The following example shows in bar 1 the default behavior of stems,
-with those on high notes pointing down and those on low notes pointing
-up, followed by four notes with all stems forced down, four notes with
-all stems forced up, and finally four notes reverted back to the
-default behavior.
+The following example shows the default positioning of slurs in the
+first bar, with slurs starting on high notes positioned above the notes
+and those starting on low notes positioned below, followed by a bar
+with both slurs forced down, a bar with both slurs forced up, and
+finally a bar with both slurs reverted back to the default behavior.
-@cindex Stem, example of overriding
+@cindex Slur, example of overriding
@cindex direction property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-a4 g c a |
-\override Stem.direction = #DOWN
-a4 g c a |
-\override Stem.direction = #UP
-a4 g c a |
-\revert Stem.direction
-a4 g c a |
+@lilypond[quote,fragment,verbatim]
+a'4( g') c''( a') |
+\override Slur.direction = #DOWN
+a'4( g') c''( a') |
+\override Slur.direction = #UP
+a'4( g') c''( a') |
+\revert Slur.direction
+a'4( g') c''( a') |
@end lilypond
-Here we use the constants @code{DOWN} and @code{UP}.
+Here we have used the constants @code{DOWN} and @code{UP}.
These have the values @w{@code{-1}} and @code{+1} respectively, and
these numerical values may be used instead. The value @code{0}
may also be used in some cases. It is simply treated as meaning
-@code{UP} for stems, but for some objects it means @q{center}.
+@code{UP} for slurs, but for some objects it means @q{center}.
There is a constant, @code{CENTER} which has the value @code{0}.
However, these explicit overrides are not usually used, as there are
@end multitable
The neutral/normal variants of these commands are implemented
-using @code{\revert} and may @strong{not} be
+using @code{\revert} and these may @strong{not} be
preceded by @code{\once}. If you wish to limit the
effect of the other commands (which are implemented using
@code{\override}) to a single timestep, you can precede them with
@code{\once} like you would do with explicit overrides.
+Or, if just a single layout object needs to be forced up or down, the
+direction indicators, @code{^} or @code{_}, may be used:
+
+@lilypond[quote,fragment,verbatim]
+a'4( g') c''( a') |
+a'4^( g') c''_( a') |
+@end lilypond
+
@node Fingering
@unnumberedsubsubsec Fingering
@cindex Fingering, example of overriding
@cindex direction property, example
-@lilypond[quote,verbatim,relative=2]
-c4-5 a-3 f-1 c'-5 |
-\override Fingering.direction = #DOWN
-c4-5 a-3 f-1 c'-5 |
-\override Fingering.direction = #UP
-c4-5 a-3 f-1 c'-5 |
+@lilypond[quote,verbatim]
+\relative {
+ c''4-5 a-3 f-1 c'-5 |
+ \override Fingering.direction = #DOWN
+ c4-5 a-3 f-1 c'-5 |
+ \override Fingering.direction = #UP
+ c4-5 a-3 f-1 c'-5 |
+}
@end lilypond
However, overriding the @code{direction} property is not the
@cindex fingering example
-@lilypond[quote,verbatim,relative=2]
-c4-5 a-3 f-1 c'-5 |
-c4_5 a_3 f_1 c'_5 |
-c4^5 a^3 f^1 c'^5 |
+@lilypond[quote,verbatim]
+\relative {
+ c''4-5 a-3 f-1 c'-5 |
+ c4_5 a_3 f_1 c'_5 |
+ c4^5 a^3 f^1 c'^5 |
+}
@end lilypond
The @code{direction} property is ignored for chords, but the
@cindex fingering example
-@lilypond[quote,verbatim,relative=2]
-<c-5 g-3>4
-<c-5 g-3 e-2>4
-<c-5 g-3 e-2 c-1>4
+@lilypond[quote,verbatim]
+\relative {
+ <c''-5 g-3>4
+ <c-5 g-3 e-2>4
+ <c-5 g-3 e-2 c-1>4
+}
@end lilypond
@noindent
@cindex fingering example
-@lilypond[quote,verbatim,relative=2]
-<c-5 g-3 e-2 c-1>4
-<c^5 g_3 e_2 c_1>4
-<c^5 g^3 e^2 c_1>4
+@lilypond[quote,verbatim]
+\relative {
+ <c''-5 g-3 e-2 c-1>4
+ <c^5 g_3 e_2 c_1>4
+ <c^5 g^3 e^2 c_1>4
+}
@end lilypond
Even greater control over the placement of fingering of the
command is:
@example
-@code{\set fingeringOrientations = #'([up] [left/right] [down])}
+\set fingeringOrientations = #'([up] [left/right] [down])
@end example
@noindent
@cindex @code{\set}, example of using
@cindex fingeringOrientations property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(up left down)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(up left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(right)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \set fingeringOrientations = #'(left)
+ <f'-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(up left down)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(up left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(right)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+}
@end lilypond
@noindent
@code{Fingering} object in the IR to be @w{@code{-5}}, so let's
try @w{@code{-7}}:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\override Fingering.font-size = #-7
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(up left down)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
-\set fingeringOrientations = #'(up left)
-<f-2>4
-<c-1 e-2 g-3 b-5>4 |
-\set fingeringOrientations = #'(right)
-<f-2>4
-<c-1 e-2 g-3 b-5>4
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \override Fingering.font-size = #-7
+ \set fingeringOrientations = #'(left)
+ <f'-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(up left down)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+ \set fingeringOrientations = #'(up left)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4 |
+ \set fingeringOrientations = #'(right)
+ <f-2>4
+ <c-1 e-2 g-3 b-5>4
+}
@end lilypond
@node Outside-staff objects
placed at the start of the spanner, which might include several
linked hairpins and dynamics.
-@multitable @columnfractions .3 .3 .3
+@multitable @columnfractions .3 .15 .45
@headitem Layout Object
@tab Priority
@tab Controls position of:
@item @code{MetronomeMark}
@tab @code{1000}
@tab Metronome marks
+@item @code{SostenutoPedalLineSpanner}
+ @tab @code{1000}
+ @tab Pedal indication
+@item @code{SustainPedalLineSpanner}
+ @tab @code{1000}
+ @tab
+@item @code{UnaCordaPedalLineSpanner}
+ @tab @code{1000}
+ @tab
+@item @code{MeasureCounter}
+ @tab @code{750}
+ @tab Measure number
@item @code{VoltaBracketSpanner}
@tab @code{600}
@tab Volta brackets
+@item @code{InstrumentSwitch}
+ @tab @code{500}
+ @tab Instrument switch text
@item @code{TextScript}
@tab @code{450}
@tab Markup text
@item @code{MultiMeasureRestText}
@tab @code{450}
- @tab Markup text over full-bar rests
+ @tab Markup text over multimeasure rests
+@item @code{CombineTextScript}
+ @tab @code{450}
+ @tab Part-combine text
@item @code{OttavaBracket}
@tab @code{400}
@tab Ottava brackets
@tab @code{250}
@tab All dynamic markings
@item @code{BarNumber}
- @tab @code{ 100}
+ @tab @code{100}
@tab Bar numbers
@item @code{TrillSpanner}
@tab @code{50}
@tab Spanning trills
+@item @code{AccidentalSuggestion}
+ @tab @code{0}
+ @tab Annotational accidentals
@end multitable
Here is an example showing the default placement of some of
@cindex ottava bracket
@funindex \startTextSpan
-@funindex startTextSpan
@funindex \stopTextSpan
-@funindex stopTextSpan
@cindex TextSpanner, example of overriding
@cindex bound-details property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+@lilypond[quote,fragment,ragged-right,verbatim]
% Set details for later Text Spanner
\override TextSpanner.bound-details.left.text
= \markup { \small \bold Slower }
\dynamicUp
% Start Ottava Bracket
\ottava #1
-c'4 \startTextSpan
+c''4 \startTextSpan
% Add Dynamic Text and hairpin
-c4\pp\<
-c4
+c''4\pp\<
+c''4
% Add Text Script
-c4^Text |
-c4 c
+c''4^Text |
+c''4 c''
% Add Dynamic Text and terminate hairpin
-c4\ff c \stopTextSpan |
+c''4\ff c'' \stopTextSpan |
% Stop Ottava Bracket
\ottava #0
-c,4 c c c |
+c'4 c' c' c' |
@end lilypond
This example also shows how to create Text Spanners --
overridden. Suppose we would like the ottava bracket to be placed
below the text spanner in the example above. All we need to do is to
look up the priority of @code{OttavaBracket} in the IR or in the
-tables above, and reduce it to a value lower than that of a
+table above, and reduce it to a value lower than that of a
@code{TextSpanner}, remembering that @code{OttavaBracket} is created
in the @code{Staff} context:
@cindex TextSpanner, example of overriding
@cindex bound-details property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
+@lilypond[quote,fragment,ragged-right,verbatim]
% Set details for later Text Spanner
\override TextSpanner.bound-details.left.text
= \markup { \small \bold Slower }
\once \override Staff.OttavaBracket.outside-staff-priority = #340
% Start Ottava Bracket
\ottava #1
-c'4 \startTextSpan
+c''4 \startTextSpan
% Add Dynamic Text
-c4\pp
+c''4\pp
% Add Dynamic Line Spanner
-c4\<
+c''4\<
% Add Text Script
-c4^Text |
-c4 c
+c''4^Text |
+c''4 c''
% Add Dynamic Text
-c4\ff c \stopTextSpan |
+c''4\ff c'' \stopTextSpan |
% Stop Ottava Bracket
\ottava #0
-c,4 c c c |
+c'4 c' c' c' |
@end lilypond
Note that some of these objects, in particular bar numbers,
other outside-staff objects according to that value. Here's an
example showing the effect of the two methods:
-@lilypond[quote,verbatim,relative=2]
-c4( c^\markup { \tiny \sharp } d4.) c8 |
-c4(
-\once \override TextScript.avoid-slur = #'inside
-\once \override TextScript.outside-staff-priority = ##f
-c4^\markup { \tiny \sharp } d4.) c8 |
-\once \override Slur.outside-staff-priority = #500
-c4( c^\markup { \tiny \sharp } d4.) c8 |
+@lilypond[quote,verbatim]
+\relative c'' {
+ c4( c^\markup { \tiny \sharp } d4.) c8 |
+ c4(
+ \once \override TextScript.avoid-slur = #'inside
+ \once \override TextScript.outside-staff-priority = ##f
+ c4^\markup { \tiny \sharp } d4.) c8 |
+ \once \override Slur.outside-staff-priority = #500
+ c4( c^\markup { \tiny \sharp } d4.) c8 |
+}
@end lilypond
Changing the @code{outside-staff-priority} can also be used to
@cindex TextScript, example of overriding
@cindex outside-staff-priority property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-c2^"Text1"
-c2^"Text2" |
+@lilypond[quote,fragment,ragged-right,verbatim]
+c''2^"Text1"
+c''2^"Text2" |
\once \override TextScript.outside-staff-priority = #500
-c2^"Text3"
-c2^"Text4" |
+c''2^"Text3"
+c''2^"Text4" |
@end lilypond
This certainly lifts @qq{Text3} above @qq{Text4} but it also lifts it
@cindex notes, spreading out with text
@funindex \textLengthOn
-@funindex textLengthOn
@funindex \textLengthOff
-@funindex textLengthOff
By default, text produced by markup takes up no horizontal space
as far as laying out the music is concerned. The @code{\textLengthOn}
command reverses this behavior, causing the notes to be spaced
out as far as is necessary to accommodate the text:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,fragment,ragged-right,verbatim]
\textLengthOn % Cause notes to space out to accommodate text
-c2^"Text1"
-c2^"Text2" |
-c2^"Text3"
-c2^"Text4" |
+c''2^"Text1"
+c''2^"Text2" |
+c''2^"Text3"
+c''2^"Text4" |
@end lilypond
The command to revert to the default behavior is
@cindex TextScript, example of overriding
@cindex outside-staff-priority property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
-% This markup is short enough to fit without collision
-c2^"Tex" c'' |
-R1 |
-
-% This is too long to fit, so it is displaced upwards
-c,,2^"Text" c'' |
-R1 |
-
-% Turn off collision avoidance
-\once \override TextScript.outside-staff-priority = ##f
-c,,2^"Long Text " c'' |
-R1 |
-
-% Turn off collision avoidance
-\once \override TextScript.outside-staff-priority = ##f
-\textLengthOn % and turn on textLengthOn
-c,,2^"Long Text " % Spaces at end are honored
-c''2 |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ % This markup is short enough to fit without collision
+ c''2^"Tex" c'' |
+ R1 |
+
+ % This is too long to fit, so it is displaced upwards
+ c,,2^"Text" c'' |
+ R1 |
+
+ % Turn off collision avoidance
+ \once \override TextScript.outside-staff-priority = ##f
+ c,,2^"Long Text " c'' |
+ R1 |
+
+ % Turn off collision avoidance
+ \once \override TextScript.outside-staff-priority = ##f
+ \textLengthOn % and turn on textLengthOn
+ c,,2^"Long Text " % Spaces at end are honored
+ c''2 |
+}
@end lilypond
@node Dynamics placement
This can give quite acceptable results, as this example
shows:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
-\clef "bass"
-\key aes \major
-\time 9/8
-\dynamicUp
-bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
-ees,2.~\)\mf ees4 r8 |
+@lilypond[quote,ragged-right,verbatim]
+\relative {
+ \clef "bass"
+ \key aes \major
+ \time 9/8
+ \dynamicUp
+ bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
+ ees,2.~\)\mf ees4 r8 |
+}
@end lilypond
However, if the notes and attached dynamics are close
not be the optimum placement, as this rather artificial example
shows:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim,fragment]
\dynamicUp
-a4\f b\mf a\mp b\p
+\relative { a'4\f b\mf a\mp b\p }
@end lilypond
@noindent
@cindex extra-spacing-width property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,ragged-right,verbatim,fragment]
\dynamicUp
% Extend width by 1 staff space
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5)
-a4\f b\mf a\mp b\p
+\relative { a'4\f b\mf a\mp b\p }
@end lilypond
@noindent
@cindex collisions, notes
@cindex shift commands
@funindex \shiftOff
-@funindex shiftOff
@funindex \shiftOn
-@funindex shiftOn
@funindex \shiftOnn
-@funindex shiftOnn
@funindex \shiftOnnn
-@funindex shiftOnnn
Within a voice, all the notes occuring at the same musical moment are
grouped into a note column, and a @code{NoteColumn} object is created
@cindex Script, example of overriding
@cindex padding property, example
-@lilypond[quote,fragment,relative=1,verbatim]
-c2\fermata
+@lilypond[quote,fragment,verbatim]
+c'2\fermata
\override Script.padding = #3
b2\fermata
@end lilypond
@cindex MetronomeMark, example of overriding
@cindex padding property, example
-@lilypond[quote,fragment,relative=1,verbatim]
+@lilypond[quote,fragment,verbatim]
% This will not work, see below
\override MetronomeMark.padding = #3
\tempo 4 = 120
-c1 |
+c'1 |
% This works
\override Score.MetronomeMark.padding = #3
\tempo 4 = 80
-d1 |
+d'1 |
@end lilypond
Note in the second example how important it is to figure out what
@lilypond[quote,ragged-right,verbatim]
sesquisharp = \markup { \sesquisharp }
-\relative c'' {
- c4
+\relative {
+ c''4
% This prints a sesquisharp but the spacing is too small
\once \override Accidental.stencil = #ly:text-interface::print
\once \override Accidental.text = #sesquisharp
@cindex DynamicLineSpanner, example of overriding
@cindex staff-padding property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,fragment,ragged-right,verbatim]
\override DynamicLineSpanner.staff-padding = #3
-a4\f b\mf a\p b\mp
+\relative { a'4\f b\mf a\p b\mp }
@end lilypond
@cindex StringNumber, example of overriding
@cindex self-alignment-X property, example
-@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
+@lilypond[quote,fragment,ragged-right,verbatim]
\voiceOne
-<a\2>
+<a''\2>
\once \override StringNumber.self-alignment-X = #RIGHT
-<a\2>
+<a''\2>
@end lilypond
@node The staff-position property
for notes and rests that occur at the same time. Here's an
example of a collision of this type:
-@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
-<< { c4 c c c } \\ { R1 } >>
+@lilypond[quote,verbatim,ragged-right]
+<< \relative { c'4 c c c } \\ { R1 } >>
@end lilypond
The best solution here is to move the multimeasure rest down, since the
@cindex MultiMeasureRest, example of overriding
@cindex staff-position property, example
-@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
+@lilypond[quote,verbatim,ragged-right]
<<
- { c4 c c c }
+ \relative { c'4 c c c }
\\
\override MultiMeasureRest.staff-position = #-8
{ R1 }
@cindex Fingering, example of overriding
@cindex extra-offset property, example
-@lilypond[quote,fragment,relative=1,verbatim]
-\stemUp
-f4-5
+@lilypond[quote,fragment,verbatim]
+f'4-5
\once \override Fingering.extra-offset = #'(-0.3 . -1.8)
-f4-5
+f'4-5
@end lilypond
Here's an example in which the phrasing slur and slur collide:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
-a8 \( ( a'16 ) a \)
+@lilypond[quote,verbatim,ragged-right]
+\relative { a'8 \( ( a'16 ) a \) }
@end lilypond
@cindex PhrasingSlur, example of overriding
select the phrasing slur from the candidates it has found with its
end points closest to these:
-@lilypond[quote,verbatim,fragment,ragged-right,relative=2]
+@lilypond[quote,verbatim,fragment,ragged-right]
\once \override PhrasingSlur.positions = #'(2.5 . 4.5)
-a8 \( ( a'16 ) a \)
+a'8 \( ( a''16 ) a'' \)
@end lilypond
This is an improvement, but why not lower the right end of the slur
Here's a further example. We see that the beams
collide with the ties:
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,verbatim,ragged-right]
{
\time 4/2
<<
- { c'1 ~ 2. e'8 f' }
+ \relative { c'1~ 2. e8 f }
\\
- { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ \relative {
+ e''8 e e e
+ e e e e
+ f2 g
+ }
>>
<<
- { c'1 ~ 2. e'8 f' }
+ \relative { c'1~ 2. e8 f }
\\
- { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ \relative {
+ e''8 e e e
+ e e e e
+ f2 g
+ }
>>
}
@end lilypond
@cindex Beam, example of overriding
@cindex positions property, example
-@lilypond[quote,verbatim,fragment,ragged-right]
+@lilypond[quote,verbatim,ragged-right]
{
\time 4/2
<<
- { c'1 ~ 2. e'8 f' }
+ \relative { c'1~ 2. e8 f }
\\
- {
+ \relative {
\override Beam.positions = #'(-1 . -1)
- e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g''
+ e''8 e e e
+ e e e e
+ f2 g
}
>>
<<
- { c'1 ~ 2. e'8 f' }
+ \relative { c'1~ 2. e8 f }
\\
- { e''8 e'' e'' e'' e'' e'' e'' e'' f''2 g'' }
+ \relative {
+ e''8 e e e
+ e e e e
+ f2 g
+ \revert Beam.positions
+ }
>>
}
@end lilypond
@noindent
-Note that the override continues to apply in the first voice of
+Note that the override continues to apply in the second voice of
the second measure of eighth notes, but not to any of the beams in the
-second voice.
+first voice, even those in the later second measure. As soon as the
+override should no longer apply it should be reverted, as shown.
@node The force-hshift property
@unnumberedsubsubsec The @code{force-hshift} property
was left looking like this:
@lilypond[quote,verbatim,fragment,ragged-right]
-\new Staff \relative c'' {
+\new Staff \relative {
\key aes \major
<<
- { c2 aes4. bes8 }
+ { c''2 aes4. bes8 }
\\
{ <ees, c>2 des }
\\
@noindent
The inner note of the first chord (i.e. the A-flat in the fourth
Voice) need not be shifted away from the note column of the higher
-note. We might expect to correct this by using @code{\shiftOff}, but
-this will cause warnings about clashing note columns. Instead, we
-set @code{force-hshift}, which is a property of @code{NoteColumn},
-of this note to zero.
+note, so we use @code{\shiftOff}.
In the second chord we prefer the F to line up with the A-flat and
the lowest note to be positioned slightly right to avoid a collision
@cindex force-hshift property, example
@lilypond[quote,verbatim,fragment,ragged-right]
-\new Staff \relative c'' {
+\new Staff \relative {
\key aes \major
<<
- { c2 aes4. bes8 }
+ { c''2 aes4. bes8 }
\\
{ <ees, c>2 \once \override NoteColumn.force-hshift = 0.5 des }
\\
\\
- { \once \override NoteColumn.force-hshift = 0 aes'2
- \once \override NoteColumn.force-hshift = 0 f4 fes }
+ { \once \shiftOff aes'2 \once \shiftOff f4 fes }
>> |
<c ees aes c>1 |
}
@c This example should not be indexed
@c line-width ensures no break
@lilypond[quote,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4. g8 |
+ r2 c''4. g8 |
bes1~ |
\time 6/4
bes2. r8
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2 |
+lhMusic = \relative {
+ r2 <c' g ees>2 |
<d g, d>1 |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
bes1~ |
\time 6/4
bes2. r8
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1) |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
@c line-width ensures no break
@lilypond[quote,verbatim,ragged-right,line-width=6\in]
-rhMusic = \relative c'' {
+rhMusic = \relative {
\new Voice {
- r2 c4.\( g8 |
+ r2 c''4.\( g8 |
\once \override Tie.staff-position = #3.5
bes1~ |
\bar "||"
}
}
-lhMusic = \relative c' {
- r2 <c g ees>2( |
+lhMusic = \relative {
+ r2 <c' g ees>2( |
<d g, d>1)\arpeggio |
r2. d,,4 r4 r |
r4
connected with ties. By using two voices, with the tied notes in one
of them
-@lilypond[quote,fragment,relative=2]
-<< { b8~ 8\noBeam } \\ { b8[ g] } >>
+@lilypond[quote]
+<< { b'8~ 8\noBeam } \\ { b'8[ g'] } >>
@end lilypond
@noindent
@cindex @code{\omit}, example
@cindex example of @code{\omit}
-@lilypond[quote,fragment,relative=2,verbatim]
+@lilypond[quote,verbatim]
<<
{
\once \omit Stem
\once \omit Flag
- b8~ 8\noBeam
+ b'8~ 8\noBeam
}
\\
- { b8[ g] }
+ { b'8[ g'] }
>>
@end lilypond
@lilypond[quote,verbatim,ragged-right]
\score {
- \relative c'' {
+ \relative {
% Visible tempo marking
\tempo 4=120
- a4 a a
+ a'4 a a
\once \hide Score.MetronomeMark
% Invisible tempo marking to lengthen fermata in MIDI
\tempo 4=80
@lilypond[quote,verbatim,ragged-right]
\score {
- \relative c'' {
+ \relative {
% Visible tempo marking
\tempo 4=120
- a4 a a
+ a'4 a a
\once \omit Score.MetronomeMark
% Invisible tempo marking to lengthen fermata in MIDI
\tempo 4=80
alternative can we use @code{\override} and @code{\revert} commands?
@example
-@code{\override Lyrics.LyricText.font-shape = #'italic}
-@code{\override Lyrics.LyricText.font-series = #'bold}
+\override Lyrics.LyricText.font-shape = #'italic
+\override Lyrics.LyricText.font-series = #'bold
-@code{\revert Lyrics.LyricText.font-shape}
-@code{\revert Lyrics.LyricText.font-series}
+\revert Lyrics.LyricText.font-shape
+\revert Lyrics.LyricText.font-series
@end example
These would also be extremely tedious to enter if there were many
global = { \key c \major \time 4/4 \partial 4 }
-SopranoMusic = \relative c' { c4 | e4. e8 g4 g | a4 a g }
-AltoMusic = \relative c' { c4 | c4. c8 e4 e | f4 f e }
-TenorMusic = \relative c { e4 | g4. g8 c4. b8 | a8 b c d e4 }
-BassMusic = \relative c { c4 | c4. c8 c4 c | f8 g a b c4 }
+SopranoMusic = \relative { c'4 | e4. e8 g4 g | a4 a g }
+AltoMusic = \relative { c'4 | c4. c8 e4 e | f4 f e }
+TenorMusic = \relative { e4 | g4. g8 c4. b8 | a8 b c d e4 }
+BassMusic = \relative { c4 | c4. c8 c4 c | f8 g a b c4 }
VerseOne = \lyrics {
E -- | ter -- nal \emphasize Fa -- ther, | \normal strong to save,
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
#{ <>^\markup \bold \box #string #})
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
#@{ <>^\markup \bold \box #string #@})
@end example
@example
\include "definitions.ily"
-\relative c'' @{
+\relative @{
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
#{ <>^\markup \bold \box #string #})
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
#@{ <>^\markup \bold \box #string #@})
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
#{ <>^\markup \bold \box #string #})
}
}
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
#@{ <>^\markup \bold \box #string #@})
inst =
#(define-music-function
- (parser location string)
+ (string)
(string?)
#{ <>^\markup \bold \box #string #})
}
}
-\relative c'' {
+\relative {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a |
+ a'4.\mpdolce d8 cis4--\glissando a |
b4 bes a2 |
\inst "Clarinet"
cis4.\< d8 e4 fis |
Open @file{ly/property-init.ly} in a text editor. The one
you normally use for @code{.ly} files will be fine. This file
contains the definitions of all the standard LilyPond predefined
-commands, such as @code{\stemUp} and @code{\slurDotted}. You will
+commands, such as @code{\tieUp} and @code{\slurDotted}. You will
see that these are nothing more than definitions of variables
containing one or a group of @code{\override} commands. For
-example, @code{/tieDotted} is defined to be:
+example, @code{\tieDotted} is defined to be:
@example
tieDotted = @{
((0) (x11-color 'violet )) ; for B
)))
-\relative c' {
+\relative {
% Arrange to obtain color from color-notehead procedure
\override NoteHead.color = #color-notehead
a2 b | c2 d | e2 f | g2 a |