Guide, node Updating translation committishes..
@end ignore
-@c \version "2.14.0"
+@c \version "2.19.24"
@node Music engraving
@chapter Music engraving
while the newer edition seems cold and mechanical.
It is hard to immediately see what makes the difference with the newer
-edition. Everything looks neat and tiny, possibly even @qq{better}
+edition. Everything looks neat and tidy, possibly even @qq{better}
because it looks more computerized and uniform. This really puzzled us
for quite a while. We wanted to improve computer notation, but we first
had to figure out what was wrong with it.
In spacing, the distribution of space should reflect the durations
between notes. However, as we saw in the Bach Suite above, many modern
scores adhere to the durations with mathematical precision, which leads
-to poor results. In the next example a motive is printed twice: the
+to poor results. In the next example a motif is printed twice: the
first time using exact mathematical spacing, and the second with
corrections. Which do you prefer?
\layout {
\context {
\Staff
- \override NoteSpacing #'stem-spacing-correction = #0.0
- \override NoteSpacing #'same-direction-correction = #0.0
- \override StaffSpacing #'stem-spacing-correction = #0.0
+ \override NoteSpacing.stem-spacing-correction = #0.0
+ \override NoteSpacing.same-direction-correction = #0.0
+ \override StaffSpacing.stem-spacing-correction = #0.0
}
}
}
\layout {
\context {
\Staff
- \override NoteSpacing #'stem-spacing-correction = #0.6
+ \override NoteSpacing.stem-spacing-correction = #0.6
}
}
}
At smaller sizes, LilyPond uses proportionally heavier lines so the
music will still read well.
-@ignore
This also allows staves of different sizes to coexist peacefully when
used together on the same page:
-@c TODO: are the stems in this example the right thickness? How should
-@c line weights be scaled for small staves?
-
@c Grieg's Violin Sonata Op. 45
-@lilypond[indent=1.5cm]
+@lilypond[indent=1.5\cm]
global = {
\time 6/8
\key c \minor
\score {
<<
\new Staff \with {
- fontSize = #-4
- \override StaffSymbol #'staff-space = #(magstep -4)
- \override StaffSymbol #'thickness = #(magstep -3)
+ \magnifyStaff #2/3
}
- \relative c' {
+ \relative {
\global
\set Staff.instrumentName = #"Violin"
- c8.(\f^> b16 c d) ees8.(^> d16 c b)
+ c'8.(\f^> b16 c d) ees8.(^> d16 c b)
g8.(^> b16 c ees) g8-.^> r r
R2.
}
\new PianoStaff <<
\set PianoStaff.instrumentName = #"Piano"
- \new Staff \relative c' {
+ \new Staff \relative {
\global
s2.
- s4. s8 r8 r16 <c f aes c>
+ s4. s8 r8 r16 <c' f aes c>
<c f aes c>4.^> <c ees g>8 r r
}
- \new Staff \relative c {
+ \new Staff \relative {
\global
\clef "bass"
<<
{
- \once \override DynamicText #'X-offset = #-3
+ \once \override DynamicText.X-offset = #-3
<ees g c>2.~->^\f
<ees g c>4.~ <ees g c>8
} \\ {
>>
}
@end lilypond
-@end ignore
+
@node Why work so hard?
@unnumberedsubsec Why work so hard?
of the three configurations should we choose for the following slur?
@lilypond
-\relative c {
+\relative {
\clef bass
- \once \override Slur #'positions = #'(1.5 . 1)
+ \once \override Slur.positions = #'(1.5 . 1)
e8[( f] g[ a b d,)] r4
- \once \override Slur #'positions = #'(2 . 3)
+ \once \override Slur.positions = #'(2 . 3)
e8[( f] g[ a b d,)] r4
e8[( f] g[ a b d,)] r4
}
15.39 points for grazing one of the noteheads:
@lilypond
-\relative c {
+\relative {
\clef bass
- \once \override Slur #'positions = #'(1.5 . 1)
+ \once \override Slur.positions = #'(1.5 . 1)
e8[(_"15.39" f] g[ a b d,)] r4
}
@end lilypond
descends for a total of 13.08 ugly points:
@lilypond
-\relative c {
+\relative {
\clef bass
- \once \override Slur #'positions = #'(2 . 3)
+ \once \override Slur.positions = #'(2 . 3)
e8[(_"13.08" f] g[ a b d,)] r4
}
@end lilypond
selects this one:
@lilypond
-\relative c {
+\relative {
\clef bass
e8[(_"12.04" f] g[ a b d,)] r4
}
automatically by comparing LilyPond's output to the output of a
commercial software product. In this case we have chosen Finale 2008,
which is one of the most popular commercial score writers, particularly
-in North America. Sibelius is their major rival and they appear to be
+in North America. Sibelius is its major rival and appears to be
especially strong in the European market.
For our comparison we selected Bach's Fugue in G minor from the
Well-Tempered Clavier, Book I, BWV 861, whose opening subject is
@lilypond
-\relative c' {
+\relative {
\key g \minor
\clef "treble_8"
- r8 d ees g, fis4 g
+ r8 d' ees g, fis4 g
r8 a16 bes c8 bes16 a bes8
}
@end lilypond
@lilypond[staffsize=19.5,line-width=14\cm]
global = { \key g \minor }
-partI = \relative c' {
+partI = \relative {
\voiceOne
- fis8 d' ees g, fis4 g
+ fis'8 d' ees g, fis4 g
r8 a16 bes c8 bes16 a d8 r r4
}
-partII = \relative c' {
+partII = \relative {
\voiceTwo
- d4 r4 r8 d'16 c bes8 c16 d
+ d'4 r4 r8 d'16 c bes8 c16 d
ees8 d c ees a, r r4
}
-partIII = \relative c' {
+partIII = \relative {
\voiceOne
- r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a
+ r2 r8 d' ees g, fis4 g r8 a16 bes c8 bes16 a
}
-partIV = \relative c {
+partIV = \relative {
\voiceTwo
d4 r r2
r8 d ees g, fis4 a
}
\context {
\PianoStaff
- \override StaffGrouper #'staff-staff-spacing #'padding = #1
+ \override StaffGrouper.staff-staff-spacing.padding = #1
}
}
}
@item Most of the beams extend too far off the staff. A beam that points
towards the center of the staff should have a length of about one
octave, but engravers shorten this when the beam points away from the
-staff in multi-voice music. The Finale beaming can be easily improved
+staff in multi-voice music. The Finale beaming can easily be improved
with their Patterson Beams plug-in, but we elected to skip that step for
this example.
@item Finale doesn't adjust the positions of interlocking note heads,
lower voices exchange positions temporarily:
@lilypond
-collide = \once \override NoteColumn #'force-hshift = #0
+collide = \once \override NoteColumn.force-hshift = #0
\score {
<<
\new Voice { \voiceTwo bes \collide bes }
>>
}
- \new Lyrics \lyricsto "sample" \lyricmode { "good " " bad" }
+ \new Lyrics \lyricsto "sample" { "good " " bad" }
>>
}
@end lilypond
fragments of music into larger ones, more complex music can be
expressed. For example
-@lilypond[quote,verbatim,fragment,relative=1]
-f4
+@lilypond[quote,verbatim,fragment]
+f'4
@end lilypond
@noindent
@lilypond[quote,fragment]
<<
- \new Staff \relative c'' {
+ \new Staff \relative {
\key g \major
\time 3/4
- d4 g,8 a b c d4 g, g
+ d''4 g,8 a b c d4 g, g
}
- \new Staff \relative c' {
+ \new Staff \relative {
\clef "bass"
\key g \major
<g b d>2 a4 b2.
\new PianoStaff <<
\new Staff = "RH" <<
- \new Voice = "I" \relative c''' {
+ \new Voice = "I" \relative {
\time 3/4
\voiceOne
- \times 6/7 { g8 g g g g g g }
+ \tuplet 7/6 { g''8 g g g g g g }
\oneVoice
r4 <b,, fis' g bes> r4\fermata
}
- \new Voice = "II" \relative c' {
+ \new Voice = "II" \relative {
\voiceTwo
- c4
- \times 4/5 {
+ c'4
+ \tuplet 5/4 {
<c ees>8 f g
\change Staff = "LH" \oneVoice
\stemUp g,( c}
r4
- \override Stem #'cross-staff = ##t
- \override Stem #'length = #12
+ \override Stem.cross-staff = ##t
+ \override Stem.length = #12
<fis, b>) r\fermata
}
>>
\new Staff = "LH" <<
- \new Voice = "III" \relative c' {
+ \new Voice = "III" \relative {
\time 2/4
\clef "bass"
g4 \stopStaff s
\remove "Phrasing_slur_engraver"
\remove "Slur_engraver"
\remove "Script_engraver"
+ \remove "New_fingering_engraver"
\remove "Beam_engraver"
\remove "Auto_beam_engraver"
}
\remove "Phrasing_slur_engraver"
\remove "Slur_engraver"
\remove "Script_engraver"
+ \remove "New_fingering_engraver"
\remove "Beam_engraver"
\remove "Auto_beam_engraver"
}
\remove "Phrasing_slur_engraver"
\remove "Slur_engraver"
\remove "Script_engraver"
+ \remove "New_fingering_engraver"
\remove "Beam_engraver"
\remove "Auto_beam_engraver"
}
\remove "Phrasing_slur_engraver"
\remove "Slur_engraver"
\remove "Script_engraver"
+ \remove "New_fingering_engraver"
\remove "Beam_engraver"
\remove "Auto_beam_engraver"
}
@lilypond[quote,ragged-right]
\score {
- \relative c' {
- \stemDown <e g b>4_>-\arpeggio
- \override Arpeggio #'direction = #RIGHT
+ \relative {
+ \stemDown <e' g b>4_>-\arpeggio
+ \override Arpeggio.direction = #RIGHT
\stemUp <e g b>4^>-\arpeggio
}
\layout {
\context {
\Score
- \override SpacingSpanner #'spacing-increment = #3
- \override TimeSignature #'transparent = ##t
+ \override SpacingSpanner.spacing-increment = #3
+ \hide TimeSignature
}
}
}
<<
\new Staff \fragment
\new Staff \with {
- \override Beam #'beam-thickness = #0.3
- \override Stem #'thickness = #0.5
- \override Bar #'thickness = #3.6
- \override Tie #'thickness = #2.2
- \override StaffSymbol #'thickness = #3.0
- \override Tie #'extra-offset = #'(0 . 0.3)
+ \override Beam.beam-thickness = #0.3
+ \override Stem.thickness = #0.5
+ \override Bar.thickness = #3.6
+ \override Tie.thickness = #2.2
+ \override StaffSymbol.thickness = #3.0
+ \override Tie.extra-offset = #'(0 . 0.3)
}
\fragment
>>
((-2) (make-smaller-markup (make-bold-markup "2")))
(else "bla")))))))))
-\new Voice \relative c' {
+\new Voice \relative {
\stemUp
\set autoBeaming = ##f
\time 2/4
+ <d' f g>4
+ \once \override NoteHead.stencil = #note-head::brew-ez-stencil
+ \once \override NoteHead.font-size = #-7
+ \once \override NoteHead.font-family = #'sans
+ \once \override NoteHead.font-series = #'bold
<d f g>4
- \once \override NoteHead #'stencil = #note-head::brew-ez-stencil
- \once \override NoteHead #'font-size = #-7
- \once \override NoteHead #'font-family = #'sans
- \once \override NoteHead #'font-series = #'bold
- <d f g>4
- \once \override NoteHead #'style = #'cross
+ \once \override NoteHead.style = #'cross
<d f g>4
- \applyOutput #'Voice #mc-squared
+ \applyOutput Voice #mc-squared
<d f g>4
<<
{ d8[ es-( fis^^ g] fis2-) }
- \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 }
+ \repeat unfold 5 { \applyOutput Voice #mc-squared s8 }
>>
}
@end lilypond
<<
\chords { c2 c f2 c }
\new Staff
- \relative c' {
+ \relative {
\time 2/4
- c4 c g' g a a g2
+ c'4 c g' g a a g2
}
\addlyrics { twin -- kle twin -- kle lit -- tle star }
>>
\time 4/8
\key c \minor
<< {
- \revert Stem #'direction
+ \revert Stem.direction
\change Staff = down
\set subdivideBeams = ##t
g16.[
\set followVoice = ##t
c'''32([ b''16 a''16 gis''16 g''32)]
} \\ {
- s4 \times 2/3 { d'16[ f' g'] } as'32[ b''32 e'' d'']
+ s4 \tuplet 3/2 { d'16[ f' g'] } as'32[ b''32 e'' d'']
} \\ {
s4 \autoBeamOff d''8.. f''32
} \\ {
\clef bass
\key c \minor
\set subdivideBeams = ##f
- \override Stem #'french-beaming = ##t
- \override Beam #'beam-thickness = #0.3
- \override Stem #'thickness = #4.0
+ \override Stem.french-beaming = ##t
+ \override Beam.beam-thickness = #0.3
+ \override Stem.thickness = #4.0
g'16[ b16 fis16 g16]
<< \makeClusters {
as16 <as b>
<g b>
<g cis>
} \\ {
- \override Staff.Arpeggio #'arpeggio-direction =#down
+ \override Staff.Arpeggio.arpeggio-direction =#down
<cis, e, gis, b, cis>4\arpeggio
}
>> }
>>
\midi {
- \context {
- \Score
- tempoWholesPerMinute = #(ly:make-moment 60 8)
- }
+ \tempo 8 = 60
}
\layout {
\context {
\Staff
- \consists Horizontal_bracket_engraver
+ \consists "Horizontal_bracket_engraver"
}
}
}
@command{lilypond-book} program, included with LilyPond, the input
fragments can be replaced by music images in the resulting PDF or HTML
output files. Another example is the third-party OOoLilyPond extension
-for OpenOffice.org, which makes it extremely easy to embed musical
-examples in documents.
+for OpenOffice.org or LibreOffice, which makes it extremely easy to
+embed musical examples in documents.
For more examples of LilyPond in action, full documentation, and the
software itself, see our main website: www.lilypond.org.
@lilypond[staffsize=14.3,line-width=15.9\cm]
global = {\key g \minor}
-partI = \relative c' {
+partI = \relative {
\voiceOne
- fis8 d' ees g, fis4 g
+ fis'8 d' ees g, fis4 g
r8 a16 bes c8 bes16 a d8 r r4
r2 r8 d16 ees f8 ees16 d
- ees4 ~ ees16 d c bes a4 r8 ees'16 d
+ ees4 ~ 16 d c bes a4 r8 ees'16 d
c8 d16 ees d8 e16 fis g8 fis16 g a4 ~
- a8 d, g f ees d c bes
+ 8 d, g f ees d c bes
a2 g\fermata \bar "|."
}
-partII = \relative c' {
+partII = \relative {
\voiceTwo
- d4 r4 r8 d'16 c bes8 c16 d
+ d'4 r4 r8 d'16 c bes8 c16 d
ees8 d c ees a, r r4
r8 fis16 g a8 g16 fis g2 ~
- g2 r8 d' ees g,
+ 2 r8 d' ees g,
fis4 g r8 a16 bes c8 bes16 a
bes4. <g b>8 <a c> r <d, g> r
<ees g>4 <d fis> d2
}
-partIII = \relative c' {
+partIII = \relative {
\voiceOne
- r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a
- bes2 ~ bes8 b16 a g8 a16 b
+ r2 r8 d' ees g, fis4 g r8 a16 bes c8 bes16 a
+ bes2 ~ 8 b16 a g8 a16 b
c4 r r2
R1
r8 d ees g, fis4 g
r8 a16 bes c8 bes16 a b2
}
-partIV = \relative c {
+partIV = \relative {
\voiceTwo
d4 r r2
r8 d ees g, fis4 a
d,8 d'16 c bes8 c16 d ees2 ~
- ees8 ees16 d c8 d16 ees fis,8 a16 g fis8 g16 a
+ 8 ees16 d c8 d16 ees fis,8 a16 g fis8 g16 a
d,8 d'16 c bes8 c16 d ees8 c a fis'
g f ees d c bes a g
c a d d, g2\fermata
}
\context {
\PianoStaff
- \override StaffGrouper #'staff-staff-spacing #'padding = #1
+ \override StaffGrouper.staff-staff-spacing.padding = #1
}
}
}