Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
When revising a translation, copy the HEAD committish of the
- version that you are working on. See TRANSLATION for details.
+ version that you are working on. For details, see the Contributors'
+ Guide, node Updating translation committishes..
@end ignore
@c \version "2.12.0"
There is another form of the override command,
@code{\overrideProperty}, which is occasionally required.
We mention it here for completeness, but for details see
-@ruser{Difficult tweaks}.
+@rextend{Difficult tweaks}.
@c Maybe explain in a later iteration -td
@strong{\tweak command}
@c NOTE Tuplet brackets collide if notes are high on staff
@c See issue 509
@lilypond[quote,ragged-right,verbatim,fragment,relative=1]
-\times 2/3 { c8[ c c]}
+\times 2/3 { c8[ c c] }
\once \override TupletNumber
#'text = #tuplet-number::calc-fraction-text
\times 2/3 {
c[ c]
\once \override TupletNumber #'transparent = ##t
\times 2/3 { c8[ c c] }
-\times 2/3 { c8[ c c]}
+ \times 2/3 { c8[ c c] }
}
@end lilypond
{
\time 6/8
{
- r4 b8 b[( g]) g |
- g[( e]) e d[( f]) a |
- a g
+ r4 b8 b[( g]) g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
{
% Increase thickness of all following slurs from 1.2 to 5.0
\override Slur #'thickness = #5.0
- r4 b8 b[( g]) g |
- g[( e]) e d[( f]) a |
- a g
+ r4 b8 b[( g]) g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
r4 b8
% Increase thickness of immediately following slur only
\once \override Slur #'thickness = #5.0
- b[( g]) g |
- g[( e]) e d[( f]) a |
- a g
+ b4[( g]) g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
r4 b8
% Increase thickness of immediately following slur only
\once \override Slur #'thickness = #5.0
- b[( g]) g |
+ b4[( g]) g
% Increase thickness of immediately following slur only
\once \override Slur #'thickness = #5.0
- g[( e]) e d[( f]) a |
- a g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
r4 b8
% Increase thickness of all following slurs from 1.2 to 5.0
\override Slur #'thickness = #5.0
- b[( g]) g |
- g[( e])
+ b4[( g]) g
+ g4[( e])
% Revert thickness of all following slurs to default of 1.2
\revert Slur #'thickness
- e d[( f]) a |
- a g
+ e4 d[( f]) a
+ a4 g
}
\addlyrics {
The man who feels love's sweet e -- mo -- tion
@code{thickness} or @code{font-shape}, others are used as values that
can be given to properties, like @code{italic}. Note the distinction
from arbitrary text strings, which would appear as @code{"a text
-string"}; for more details about symbols and strings, see @ref{Scheme
-tutorial}.
+string"}; for more details about symbols and strings, see
+@rextend{Scheme tutorial}.
So we see that the @code{\override} command needed to print the lyrics
in italics is:
{
\time 6/8
{
- r4 b8 b[( g]) g |
- g[( e]) e d[( f]) a |
- a g
+ r4 b8 b[( g]) g
+ g4[( e]) e d[( f]) a
+ a4 g
}
\addlyrics {
\override LyricText #'font-shape = #'italic
@seealso
-Learning Manual: @ref{Scheme tutorial}.
+Extending: @rextend{Scheme tutorial}.
@node Types of properties
@seealso
-Learning Manual: @ref{Scheme tutorial}.
+Extending: @rextend{Scheme tutorial}.
@node Appearance of objects
{
\time 12/16
\override BarLine #'stencil = ##f
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'stencil = ##f
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'break-visibility = #'#(#f #f #f)
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.TimeSignature #'transparent = ##t
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.TimeSignature #'stencil = ##f
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'color = #white
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'color = #(x11-color 'white)
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
{
\time 12/16
\override Staff.BarLine #'color = #(rgb-color 1 1 1)
- c4 b8 c d16 c d8 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
\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 |
- g, a16 b8 c d4 e16 |
+ c4 b8 c d16 c d8
+ g,8 a16 b8 c d4 e16
e8
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
- \relative g' {
- r4 g8 g c4 c8 d |
- e4 r8
- <<
- { f c c }
- \new Staff \with {
- alignAboveContext = #"main" }
- { f8 f c }
- >>
- r4 |
- }
- }
+ \relative g' {
+ r4 g8 g c4 c8 d
+ e4 r8
+ <<
+ { f8 c c }
+ \new Staff \with {
+ alignAboveContext = #"main" }
+ { f8 f c }
+ >>
+ r4
+ }
+}
@end lilypond
Ossia are normally written without clef and time signature, and
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
\relative g' {
- r4 g8 g c4 c8 d |
+ r4 g8 g c4 c8 d
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff \with {
alignAboveContext = #"main"
}
{ f8 f c }
}
>>
- r4 |
+ r4
}
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
\relative g' {
- r4 g8 g c4 c8 d |
+ r4 g8 g c4 c8 d
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff \with {
alignAboveContext = #"main"
% Don't print clefs in this staff
% Don't print time signatures in this staff
\override TimeSignature #'stencil = ##f
}
- { f8 f c }
+ { f8 f c }
>>
- r4 |
+ r4
}
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
\relative g' {
- r4 g8 g c4 c8 d |
+ r4 g8 g c4 c8 d
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff \with {
alignAboveContext = #"main"
\override Clef #'stencil = ##f
% Reduce all font sizes by ~24%
fontSize = #-2
}
- { f8 f c }
+ { f8 f c }
>>
- r4 |
+ r4
}
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\new Staff ="main" {
\relative g' {
- r4 g8 g c4 c8 d |
+ r4 g8 g c4 c8 d
e4 r8
<<
- { f c c }
+ { f8 c c }
\new Staff \with {
alignAboveContext = #"main"
\override Clef #'stencil = ##f
% Reduce stem length and line spacing to match
\override StaffSymbol #'staff-space = #(magstep -2)
}
- { f8 f c }
+ { f8 f c }
>>
- r4 |
+ r4
}
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
c2^"Text1"
-c^"Text2"
-c^"Text3"
-c^"Text4"
+c2^"Text2"
+c2^"Text3"
+c2^"Text4"
@end lilypond
Staves are also positioned, by default, as closely together as
@lilypond[quote,ragged-right,verbatim]
<<
\new Staff {
- \relative c' { c a, }
+ \relative c' { c4 a, }
}
\new Staff {
- \relative c'''' { c a, }
+ \relative c'''' { c4 a, }
}
>>
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
a4 g c a
\override Stem #'direction = #DOWN
-a g c a
+a4 g c a
\override Stem #'direction = #UP
-a g c a
+a4 g c a
\revert Stem #'direction
-a g c a
+a4 g c a
@end lilypond
Here we use the constants @code{DOWN} and @code{UP}.
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
\set fingeringOrientations = #'(left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(up left down)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(up left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(right)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
@end lilypond
@noindent
\override Fingering #'font-size = #-7
\set fingeringOrientations = #'(left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(up left down)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(up left)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
\set fingeringOrientations = #'(right)
<f-2>
-< c-1 e-2 g-3 b-5 > 4
+<c-1 e-2 g-3 b-5>4
@end lilypond
@node Outside-staff objects
\dynamicUp
% Start Ottava Bracket
\ottava #1
-c' \startTextSpan
+c'4 \startTextSpan
% Add Dynamic Text and hairpin
-c\pp\<
-c
+c4\pp\<
+c4
% Add Text Script
-c^Text
-c c
+c4^Text
+c4 c
% Add Dynamic Text and terminate hairpin
-c\ff c \stopTextSpan
+c4\ff c \stopTextSpan
% Stop Ottava Bracket
\ottava #0
-c, c c c
+c,4 c c c
@end lilypond
This example also shows how to create Text Spanners --
\once \override Staff.OttavaBracket #'outside-staff-priority = #340
% Start Ottava Bracket
\ottava #1
-c' \startTextSpan
+c'4 \startTextSpan
% Add Dynamic Text
-c\pp
+c4\pp
% Add Dynamic Line Spanner
-c\<
+c4\<
% Add Text Script
-c^Text
-c c
+c4^Text
+c4 c
% Add Dynamic Text
-c\ff c \stopTextSpan
+c4\ff c \stopTextSpan
% Stop Ottava Bracket
\ottava #0
-c, c c c
+c,4 c c c
@end lilypond
@cindex slurs and outside-staff-priority
example showing the effect of the two methods:
@lilypond[quote,verbatim,relative=2]
-c4( c^\markup\tiny\sharp d4.) c8
+c4( c^\markup { \tiny \sharp } d4.) c8
c4(
\once \override TextScript #'avoid-slur = #'inside
\once \override TextScript #'outside-staff-priority = ##f
-c^\markup\tiny\sharp d4.) c8
+c4^\markup \tiny \sharp d4.) c8
\once \override Slur #'outside-staff-priority = #500
-c4( c^\markup\tiny\sharp d4.) c8
+c4( c^\markup { \tiny \sharp } d4.) c8
@end lilypond
Changing the @code{outside-staff-priority} can also be used to
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
c2^"Text1"
-c^"Text2"
+c2^"Text2"
\once \override TextScript #'outside-staff-priority = #500
-c^"Text3"
-c^"Text4"
+c2^"Text3"
+c2^"Text4"
@end lilypond
This certainly lifts @qq{Text3} above @qq{Text4} but it also lifts it
@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
\textLengthOn % Cause notes to space out to accommodate text
c2^"Text1"
-c^"Text2"
-c^"Text3"
-c^"Text4"
+c2^"Text2"
+c2^"Text3"
+c2^"Text4"
@end lilypond
The command to revert to the default behavior is
\key aes \major
\time 9/8
\dynamicUp
-bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! |
-ees,2.~\)\mf ees4 r8 |
+bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\!
+ees,2.~\)\mf ees4 r8
@end lilypond
However, if the notes and attached dynamics are close
@cindex padding property, example
@lilypond[quote,fragment,relative=1,verbatim]
-% This will not work, see below:
+% This will not work, see below
\override MetronomeMark #'padding = #3
\tempo 4=120
c1
-% This works:
+% This works
\override Score.MetronomeMark #'padding = #3
\tempo 4=80
d1
@lilypond[quote,ragged-right,verbatim]
sesquisharp = \markup { \sesquisharp }
\relative c'' {
- c
+ c4
% This prints a sesquisharp but the spacing is too small
\once \override Accidental
#'stencil = #ly:text-interface::print
\once \override Accidental #'text = #sesquisharp
- cis c
+ cis4 c
% This improves the spacing
\once \override Score.AccidentalPlacement #'right-padding = #0.6
\once \override Accidental
#'stencil = #ly:text-interface::print
\once \override Accidental #'text = #sesquisharp
- cis
+ cis4
}
@end lilypond
@lilypond[quote,fragment,ragged-right,verbatim,relative=3]
\voiceOne
-< a \2 >
+< a\2 >
\once \override StringNumber #'self-alignment-X = #RIGHT
-< a \2 >
+< a\2 >
@end lilypond
@subheading staff-position property
example of a collision of this type:
@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
-<< {c c c c} \\ {R1} >>
+<< { c4 c c c } \\ { R1 } >>
@end lilypond
The best solution here is to move the multimeasure rest down, since
@lilypond[quote,verbatim,fragment,ragged-right, relative=1]
<<
- {c c c c}
-\\
+ { c4 c c c }
+ \\
\override MultiMeasureRest #'staff-position = #-8
- {R1}
+ { R1 }
>>
@end lilypond
@lilypond[quote,fragment,relative=1,verbatim]
\stemUp
-f-5
-\once \override Fingering
- #'extra-offset = #'(-0.3 . -1.8)
-f-5
+f4-5
+\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
+f4-5
@end lilypond
avoid the slur on the acciaccatura.
@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
-r4 \acciaccatura e8\( d8 c ~c d c d\)
+r4 \acciaccatura e8\( d8 c~ c d c d\)
@end lilypond
@noindent
@lilypond[quote,verbatim,fragment,ragged-right,relative=1]
r4
\phrasingSlurUp
-\acciaccatura e8\( d8 c ~c d c d\)
+\acciaccatura e8\( d8 c~ c d c d\)
@end lilypond
@noindent
r4
\once \override PhrasingSlur #'positions = #'(-4 . -3)
\acciaccatura
-e8\( d8 c ~c d c d\)
+e8\( d8 c~ c d c d\)
@end lilypond
Here's a further example taken from the opening of the left-hand
@lilypond[quote,verbatim,fragment,ragged-right]
{
-\clef "bass"
-<< {b,8 ais, b, g,} \\ {e, g e, g} >>
-<< {b,8 ais, b, g,} \\ {e, g e, g} >>
+ \clef "bass"
+ << { b,8 ais, b, g, } \\ { e, g e, g } >>
+ << { b,8 ais, b, g, } \\ { e, g e, g } >>
}
@end lilypond
\clef "bass"
<<
\override Beam #'positions = #'(3 . 3)
- {b,8 ais, b, g,}
+ { b,8 ais, b, g, }
\\
- {e, g e, g}
+ { e,8 g e, g }
>>
- << {b,8 ais, b, g,} \\ {e, g e, g} >>
+ << { b,8 ais, b, g, } \\ { e, g e, g } >>
}
@end lilypond
@subheading force-hshift property
-@c FIXME: formatting stuff (ie not important right now IMO)
-@c @a nchor Chopin finally corrected TODOgp
-
We can now see how to apply the final corrections to the Chopin
example introduced at the end of @ref{I'm hearing Voices}, which
was left looking like this:
\key aes \major
<<
{ c2 aes4. bes8 } \\
- { aes2 f4 fes } \\
+ { aes2 f4 fes } \\
{ \voiceFour
<ees c>2
des2
}
- >> |
- <c ees aes c>1 |
+ >>
+ <c ees aes c>1
}
@end lilypond
\key aes \major
<<
{ c2 aes4. bes8 } \\
- { aes2 f4 fes } \\
+ { aes2 f4 fes } \\
{ \voiceFour
- \once \override NoteColumn #'force-hshift = #0 <ees c>2
- \once \override NoteColumn #'force-hshift = #0.5 des2
+ \once \override NoteColumn #'force-hshift = #0
+ <ees c>2
+ \once \override NoteColumn #'force-hshift = #0.5
+ des2
}
- >> |
- <c ees aes c>1 |
+ >>
+ <c ees aes c>1
}
@end lilypond
@lilypond[quote,ragged-right,line-width=5.5\in]
rhMusic = \relative c'' {
r2
- c4.\( g8 |
+ c4.\( g8
\once \override Tie #'staff-position = #3.5
- bes1~ |
+ bes1~
\bar "||"
\time 6/4
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
- bes2.^\markup {\bold "Moderato"} r8
+ bes2.^\markup { \bold "Moderato" } r8
<<
- {c,8 d fis bes a | }
+ { c,8 d fis bes a }
\\
% Reposition the c2 to the right of the merged note
- {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+ { c,8~ \once \override NoteColumn #'force-hshift = #1.0
% Move the c2 out of the main note column so the merge will work
- \shiftOnn c2}
+ \shiftOnn c2 }
\\
% Stem on the d2 must be down to permit merging
- {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+ { s8 \stemDown
+ \once \override Stem #'transparent = ##t
+ d2
+ }
\\
- {s4 fis4.}
+ { s4 fis4. }
>>
\mergeDifferentlyHeadedOff
\mergeDifferentlyDottedOff
}
lhMusic = \relative c' {
- r2 <c g ees>2( |
- <d g, d>1)\arpeggio |
- r2. d,,4 r4 r |
+ 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=5.5\in]
rhMusic = \relative c'' {
- r2 c4. g8 |
- bes1~ |
+ r2 c4. g8
+ bes1~
\time 6/4
bes2. r8
% Start polyphonic section of four voices
<<
- {c,8 d fis bes a | }
+ { c,8 d fis bes a }
\\
- {c,8~ c2 | }
+ { c,8~ c2 }
\\
- {s8 d2 | }
+ { s8 d2 }
\\
- {s4 fis4. | }
+ { s4 fis4. }
>>
g2.
}
lhMusic = \relative c' {
- r2 <c g ees>2 |
- <d g, d>1 |
- r2. d,,4 r4 r |
+ 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=5.5\in]
rhMusic = \relative c'' {
- r2 c4.\( g8 |
- bes1~ |
+ r2 c4.\( g8
+ bes1~
\time 6/4
bes2. r8
% Start polyphonic section of four voices
<<
- {c,8 d fis bes a | }
+ { c,8 d fis bes a }
\\
- {c,8~ c2 | }
+ { c,8~ c2 }
\\
- {s8 d2 | }
+ { s8 d2 }
\\
- {s4 fis4. | }
+ { s4 fis4. }
>>
g2.\)
}
lhMusic = \relative c' {
- r2 <c g ees>2( |
- <d g, d>1) |
- r2. d,,4 r4 r |
+ 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=5.5\in]
rhMusic = \relative c'' {
- r2 c4.\( g8 |
+ r2 c4.\( g8
\once \override Tie #'staff-position = #3.5
- bes1~ |
+ bes1~
\bar "||"
\time 6/4
bes2. r8
% Start polyphonic section of four voices
<<
- {c,8 d fis bes a | }
+ { c,8 d fis bes a }
\\
- {c,8~ c2 | }
+ { c,8~ c2 }
\\
- {s8 d2 | }
+ { s8 d2 }
\\
- {s4 fis4. | }
+ { s4 fis4. }
>>
g2.\)
}
lhMusic = \relative c' {
- r2 <c g ees>2( |
- <d g, d>1)\arpeggio |
- r2. d,,4 r4 r |
+ 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=5.5\in]
rhMusic = \relative c'' {
- r2 c4.\( g8 |
+ r2 c4.\( g8
\once \override Tie #'staff-position = #3.5
- bes1~ |
+ bes1~
\bar "||"
\time 6/4
- bes2.^\markup {\bold "Moderato"} r8
+ bes2.^\markup { \bold "Moderato" } r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
% Start polyphonic section of four voices
<<
- {c,8 d fis bes a | }
+ { c,8 d fis bes a }
\\
- {c,8~ c2 | }
+ { c,8~ c2 }
\\
- {s8 d2 | }
+ { s8 d2 }
\\
- {s4 fis4. | }
+ { s4 fis4. }
>>
\mergeDifferentlyHeadedOff
\mergeDifferentlyDottedOff
}
lhMusic = \relative c' {
- r2 <c g ees>2( |
- <d g, d>1)\arpeggio |
- r2. d,,4 r4 r |
+ 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=5.5\in]
rhMusic = \relative c'' {
- r2 c4.\( g8 |
+ r2 c4.\( g8
\once \override Tie #'staff-position = #3.5
- bes1~ |
+ bes1~
\bar "||"
\time 6/4
- bes2.^\markup {\bold "Moderato"} r8
+ bes2.^\markup { \bold "Moderato" } r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
% Start polyphonic section of four voices
<<
- {c,8 d fis bes a | }
+ { c,8 d fis bes a }
\\
% Move the c2 out of the main note column so the merge will work
- {c,8~ \shiftOnn c2 | }
+ { c,8~ \shiftOnn c2 }
\\
% Stem on the d2 must be down to permit merging
- {s8 \stemDown d2 | }
+ { s8 \stemDown d2 }
\\
- {s4 fis4. | }
+ { s4 fis4. }
>>
\mergeDifferentlyHeadedOff
\mergeDifferentlyDottedOff
}
lhMusic = \relative c' {
- r2 <c g ees>2( |
- <d g, d>1)\arpeggio |
- r2. d,,4 r4 r |
+ r2 <c g ees>2(
+ <d g, d>1)\arpeggio
+ r2. d,,4 r4 r
r4
}
@lilypond[quote,verbatim,ragged-right,line-width=5.5\in]
rhMusic = \relative c'' {
r2
- c4.\( g8 |
+ c4.\( g8
\once \override Tie #'staff-position = #3.5
- bes1~ |
+ bes1~
\bar "||"
\time 6/4
- bes2.^\markup {\bold "Moderato"} r8
+ bes2.^\markup { \bold "Moderato" } r8
\mergeDifferentlyHeadedOn
\mergeDifferentlyDottedOn
<<
- {c,8 d fis bes a | }
+ { c,8 d fis bes a }
\\
% Reposition the c2 to the right of the merged note
- {c,8~ \once \override NoteColumn #'force-hshift = #1.0
+ { c,8~ \once \override NoteColumn #'force-hshift = #1.0
% Move the c2 out of the main note column so the merge will work
- \shiftOnn c2}
+ \shiftOnn c2 }
\\
% Stem on the d2 must be down to permit merging
- {s8 \stemDown \once \override Stem #'transparent = ##t d2}
+ { s8 \stemDown
+ \once \override Stem #'transparent = ##t
+ d2
+ }
\\
- {s4 fis4.}
+ { s4 fis4. }
>>
\mergeDifferentlyHeadedOff
\mergeDifferentlyDottedOff
}
lhMusic = \relative c' {
- r2 <c g ees>2( |
- <d g, d>1)\arpeggio |
- r2. d,,4 r4 r |
+ r2 <c g ees>2(
+ <d g, d>1)\arpeggio
+ r2. d,,4 r4 r
r4
}
\once \override Score.MetronomeMark #'transparent = ##t
% Invisible tempo marking to lengthen fermata in MIDI
\tempo 4=80
- a\fermata
+ a4\fermata
% New tempo for next section
\tempo 4=100
- a a a a
+ a4 a a a
}
\layout { }
\midi { }
\once \override Score.MetronomeMark #'stencil = ##f
% Invisible tempo marking to lengthen fermata in MIDI
\tempo 4=80
- a\fermata
+ a4\fermata
% New tempo for next section
\tempo 4=100
- a a a a
+ a4 a a a
}
\layout { }
\midi { }
\clef "treble"
\new Voice = "Soprano" { \voiceOne \global \SopranoMusic }
\new Voice = "Alto" { \voiceTwo \AltoMusic }
- \new Lyrics \lyricsto "Soprano" { \VerseOne }
- \new Lyrics \lyricsto "Soprano" { \VerseTwo }
+ \new Lyrics \lyricsto "Soprano" { \VerseOne }
+ \new Lyrics \lyricsto "Soprano" { \VerseTwo }
\new Lyrics \lyricsto "Soprano" { \VerseThree }
- \new Lyrics \lyricsto "Soprano" { \VerseFour }
+ \new Lyrics \lyricsto "Soprano" { \VerseFour }
>>
\new Staff <<
\clef "bass"
\new Voice = "Tenor" { \voiceOne \TenorMusic }
- \new Voice = "Bass" { \voiceTwo \BassMusic }
+ \new Voice = "Bass" { \voiceTwo \BassMusic }
>>
>>
}
\relative c'' {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ a4.\mpdolce d8 cis4--\glissando a
+ b4 bes a2
\inst "Clarinet"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ cis4.\< d8 e4 fis
+ g8(\! fis)-. e( d)-. cis2
}
@end lilypond
\relative c'' @{
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ a4.\mpdolce d8 cis4--\glissando a
+ b4 bes a2
\inst "Clarinet"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ cis4.\< d8 e4 fis
+ g8(\! fis)-. e( d)-. cis2
@}
@end example
\relative c'' {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ a4.\mpdolce d8 cis4--\glissando a
+ b4 bes a2
\inst "Clarinet"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ cis4.\< d8 e4 fis
+ g8(\! fis)-. e( d)-. cis2
}
@end lilypond
\relative c'' {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ a4.\mpdolce d8 cis4--\glissando a
+ b4 bes a2
\inst "Clarinet"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ cis4.\< d8 e4 fis
+ g8(\! fis)-. e( d)-. cis2
}
@end lilypond
\relative c'' {
\tempo 4=50
- a4.\mpdolce d8 cis4--\glissando a | b4 bes a2
+ a4.\mpdolce d8 cis4--\glissando a
+ b4 bes a2
\inst "Clarinet"
- cis4.\< d8 e4 fis | g8(\! fis)-. e( d)-. cis2
+ cis4.\< d8 e4 fis
+ g8(\! fis)-. e( d)-. cis2
}
@end lilypond
is currently outside the scope of this manual, as a knowledge of
the Scheme language is required. Users should be warned that
a substantial amount of technical knowledge or time is required
-to understand Scheme and these files (see @ref{Scheme tutorial}).
+to understand Scheme and these files (see @rextend{Scheme tutorial}).
If you have this knowledge, the Scheme files which may be of
interest are:
@node Avoiding tweaks with slower processing
@subsection Avoiding tweaks with slower processing
-LilyPond can perform extra checks while it processes input files. These
-checks will take extra time to perform, but fewer manual tweaks
+LilyPond can perform extra checks while it processes input files.
+These checks will take extra time to perform, but fewer manual tweaks
may be required to obtain an acceptable result. If a text script
or part of the lyrics extends over the margins these checks will
compress that line of the score just enough to fit within the
@}
@end example
+However, @code{keep-inside-line} is expensive and the recommendation
+is to not enable it, to allow for faster processing, until creating
+a final version. This way you do not need to manually add @code{\break}
+commands to avoid text running off the right-hand side of the page.
+
@node Advanced tweaks with Scheme
@subsection Advanced tweaks with Scheme
the Scheme programming language can be incorporated directly in
the internal operation of LilyPond. Of course, at least a basic
knowledge of programming in Scheme is required to do this, and an
-introduction is provided in the @ref{Scheme tutorial}.
+introduction is provided in the @rextend{Scheme tutorial}.
As an illustration of one of the many possibilities, instead of
setting a property to a constant it can be set to a Scheme
\relative c' {
% Arrange to obtain color from color-notehead procedure
\override NoteHead #'color = #color-notehead
- c2 c' |
- b4 g8 a b4 c |
- c,2 a' |
- g1 |
-}
-\addlyrics {
- Some -- where o -- ver the Rain -- bow, way up high,
+ a2 b
+ c2 d
+ e2 f
+ g2 a
}
@end lilypond
Further examples showing the use of these programmable interfaces
-can be found in @ref{Tweaking with Scheme}.
-
-
-
-
-
-
-
-
-
-
-
-
+can be found in @rextend{Callback functions}.