Guide, node Updating translation committishes..
@end ignore
-@c \version "2.13.4"
+@c \version "2.16.0"
@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}
-because it looks more computerized and uniform. This really puzzled us
-for quite a while. We wanted to improve computer notation, but we first
+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.
The answer lies in the precise, mathematical uniformity of the newer
There are other differences as well: in the hand-engraved edition the
vertical lines are all stronger, the slurs lie closer to the note heads,
-and there is more variety in the slopes of the beams. Although such
+and there is more variety in the slopes of the beams. Although such
details may seem like nitpicking, the result is a score that is easier
-to read. In the computer-generated output, each line is nearly identical
+to read. In the computer-generated output, each line is nearly identical
and if the musician looks away for a moment she will be lost on the
page.
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?
The spacing algorithms in LilyPond even take the barlines into account,
which is why the final up-stem in the properly spaced example has been
given a little more space before the barline to keep it from looking
-crowded. A down-stem would not need this adjustment.
+crowded. A down-stem would not need this adjustment.
@node Ledger lines
@unnumberedsubsec Ledger lines
\key c \minor
}
-\new Score <<
- \new Staff \with {
+\score {
+ <<
+ \new Staff \with {
fontSize = #-4
\override StaffSymbol #'staff-space = #(magstep -4)
\override StaffSymbol #'thickness = #(magstep -3)
g8.(^> b16 c ees) g8-.^> r r
R2.
}
- \new PianoStaff <<
- \set PianoStaff.instrumentName = #"Piano"
- \new Staff \relative c' {
- \global
- s2.
- s4. s8 r8 r16 <c f aes c>
- <c f aes c>4.^> <c ees g>8 r r
- }
- \new Staff \relative c {
- \global
- \clef "bass"
- <<
+ \new PianoStaff <<
+ \set PianoStaff.instrumentName = #"Piano"
+ \new Staff \relative c' {
+ \global
+ s2.
+ s4. s8 r8 r16 <c f aes c>
+ <c f aes c>4.^> <c ees g>8 r r
+ }
+ \new Staff \relative c {
+ \global
+ \clef "bass"
+ <<
{
\once \override DynamicText #'X-offset = #-3
<ees g c>2.~->^\f
<c g c,>2.~
<c g c,>4.~ <c g c,>8
}
- >>
- r8 r16 <f, c' aes'>16
- <f c' aes'>4.-> <c' g'>8 r r
- }
+ >>
+ r8 r16 <f, c' aes'>16
+ <f c' aes'>4.-> <c' g'>8 r r
+ }
+ >>
>>
->>
+}
@end lilypond
@end ignore
choose the least ugly configuration.
For example, here are three possible slur configurations, and LilyPond
-has given each one a score in @q{ugly points}. The first example gets
+has given each one a score in @q{ugly points}. The first example gets
15.39 points for grazing one of the noteheads:
@lilypond
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
the subject returns in a three-part stretto and leads into the closing
section. In the Finale version, we have resisted the temptation to make
any adjustments to the default output because we are trying to show the
-things that each software package gets right without assistance. The
+things that each software package gets right without assistance. The
only major edits that we made were adjusting the page size to match this
essay and forcing the music onto two systems to make the comparison
-easier. By default Finale would have engraved two systems of three
+easier. By default Finale would have engraved two systems of three
measures each and a final, full-width system containing a single
measure.
d4 r4 r8 d'16 c bes8 c16 d
ees8 d c ees a, r r4
}
+
partIII = \relative c' {
\voiceOne
r2 r8 d ees g, fis4 g r8 a16 bes c8 bes16 a
}
+
partIV = \relative c {
\voiceTwo
d4 r r2
}
\context {
\PianoStaff
- \override StaffGrouper #'between-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,
@lilypond
collide = \once \override NoteColumn #'force-hshift = #0
-\new Score <<
- \new Voice = "sample" \relative c''{
- \key g \minor
- <<
- { \voiceOne g4 \collide g4 }
- \new Voice { \voiceTwo bes \collide bes }
- >>
- }
- \new Lyrics \lyricsto "sample" \lyricmode { "good " " bad" }
->>
+
+\score {
+ <<
+ \new Voice = "sample" \relative c''{
+ \key g \minor
+ <<
+ { \voiceOne g4 \collide g4 }
+ \new Voice { \voiceTwo bes \collide bes }
+ >>
+ }
+ \new Lyrics \lyricsto "sample" \lyricmode { "good " " bad" }
+ >>
+}
@end lilypond
@item Finale has placed all of the rests at fixed heights on the staff.
@end itemize
This example is not intended to suggest that Finale cannot be used to
-produce publication-quality output. On the contrary, in the hands of a
-skilled user it can and does, but it requires skill and time. One of the
+produce publication-quality output. On the contrary, in the hands of a
+skilled user it can and does, but it requires skill and time. One of the
fundamental differences between LilyPond and commercial scorewriters is
that LilyPond hopes to reduce the amount of human intervention to an
absolute minimum, while other packages try to provide an attractive
If you are interested in examining these examples in more detail, the
full seven-measure excerpt can be found at the end of this essay along
-with four different published engravings. Close examination reveals that
+with four different published engravings. Close examination reveals that
there is some acceptable variation among the hand-engravings, but that
-LilyPond compares reasonably well to that acceptable range. There are
+LilyPond compares reasonably well to that acceptable range. There are
still some shortcomings in the LilyPond output, for example, it appears
a bit too aggressive in shortening some of the stems, so there is room
for further development and fine-tuning.
the source code.
When designing the structures used in LilyPond, we made some different
-decisions than are apparent in other software. Consider the hierarchical
+decisions than are apparent in other software. Consider the hierarchical
nature of music notation:
@lilypond[quote,fragment]
chord has all directions up (right).
@lilypond[quote,ragged-right]
-\new Score \with {
- \override SpacingSpanner #'spacing-increment = #3
- \override TimeSignature #'transparent = ##t
-} \relative c' {
- \stemDown <e g b>4_>-\arpeggio
- \override Arpeggio #'direction = #RIGHT
- \stemUp <e g b>4^>-\arpeggio
+\score {
+ \relative c' {
+ \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
+ }
+ }
}
@end lilypond
>> }
>>
\midi {
- \context {
- \Score
- tempoWholesPerMinute = #(ly:make-moment 60 8)
- }
+ \tempo 8 = 60
}
\layout {
\context {
}
\context {
\PianoStaff
- \override StaffGrouper #'between-staff-spacing #'padding = #1
+ \override StaffGrouper #'staff-staff-spacing #'padding = #1
}
}
}