]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/essay/engraving.itely
Run scripts/auxiliar/update-with-convert-ly.sh -f 2.19.20
[lilypond.git] / Documentation / essay / engraving.itely
index 61795e1a73ad3d949d34542602f7cffc6807d834..ef13eaab7702a122fdf75a91e0f78b7124dac7fa 100644 (file)
@@ -8,7 +8,7 @@
     Guide, node Updating translation committishes..
 @end ignore
 
-@c \version "2.13.4"
+@c \version "2.19.21"
 
 @node Music engraving
 @chapter Music engraving
@@ -83,7 +83,7 @@ and movement, and it feels like a living, breathing piece of music,
 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.
@@ -292,7 +292,7 @@ vertical strokes are heavier.
 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?
 
@@ -317,9 +317,9 @@ music = {
   \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
     }
   }
 }
@@ -345,7 +345,7 @@ music = {
   \layout {
     \context {
       \Staff
-      \override NoteSpacing #'stem-spacing-correction = #0.6
+      \override NoteSpacing.stem-spacing-correction = #0.6
     }
   }
 }
@@ -447,61 +447,57 @@ magnified by 236% to print at the same size as the previous example:
 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
 }
 
-\new Score <<
-  \new Staff \with {
-      fontSize = #-4
-      \override StaffSymbol #'staff-space = #(magstep -4)
-      \override StaffSymbol #'thickness = #(magstep -3)
+\score {
+  <<
+    \new Staff \with {
+      \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' {
-      \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 {
+        \global
+        s2.
+        s4. s8 r8 r16 <c' f aes c>
+        <c f aes c>4.^> <c ees g>8 r r
+      }
+      \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
         } \\ {
           <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
+
 
 @node Why work so hard?
 @unnumberedsubsec Why work so hard?
@@ -559,11 +555,11 @@ How do we actually make formatting decisions?  In other words, which
 of the three configurations should we choose for the following slur?
 
 @lilypond
-\relative {
+\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
 }
@@ -599,9 +595,9 @@ has given each one a score in @q{ugly points}.  The first example gets
 15.39 points for grazing one of the noteheads:
 
 @lilypond
-\relative {
+\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
@@ -613,9 +609,9 @@ side, plus another 2 points because the slur ascends while the melody
 descends for a total of 13.08 ugly points:
 
 @lilypond
-\relative {
+\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
@@ -626,7 +622,7 @@ it is the most attractive of the three configurations, so LilyPond
 selects this one:
 
 @lilypond
-\relative {
+\relative {
   \clef bass
   e8[(_"12.04" f] g[ a b d,)] r4
 }
@@ -735,17 +731,17 @@ We can also measure LilyPond's ability to make music engraving decisions
 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
@@ -777,22 +773,24 @@ measures 28--29, as shown here with Finale first and LilyPond second:
 @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
@@ -826,7 +824,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'between-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }
@@ -837,7 +835,7 @@ Some shortcomings in the unedited Finale output include:
 @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,
@@ -845,17 +843,20 @@ which makes the music extremely difficult to read when the upper and
 lower voices exchange positions temporarily:
 
 @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" }
->>
+collide = \once \override NoteColumn.force-hshift = #0
+
+\score {
+  <<
+    \new Voice = "sample" \relative c''{
+      \key g \minor
+      <<
+        { \voiceOne g4 \collide g4 }
+        \new Voice { \voiceTwo bes \collide bes }
+      >>
+    }
+    \new Lyrics \lyricsto "sample" { "good " " bad" }
+  >>
+}
 @end lilypond
 
 @item Finale has placed all of the rests at fixed heights on the staff.
@@ -1031,12 +1032,12 @@ nature of music notation:
 
 @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.
@@ -1077,28 +1078,28 @@ consider a more complicated musical example:
 
 \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
@@ -1161,6 +1162,7 @@ heads, the @code{Note_heads_engraver}.
       \remove "Phrasing_slur_engraver"
       \remove "Slur_engraver"
       \remove "Script_engraver"
+      \remove "New_fingering_engraver"
       \remove "Beam_engraver"
       \remove "Auto_beam_engraver"
     }
@@ -1193,6 +1195,7 @@ Then a @code{Staff_symbol_engraver} adds the staff,
       \remove "Phrasing_slur_engraver"
       \remove "Slur_engraver"
       \remove "Script_engraver"
+      \remove "New_fingering_engraver"
       \remove "Beam_engraver"
       \remove "Auto_beam_engraver"
     }
@@ -1224,6 +1227,7 @@ the @code{Clef_engraver} defines a reference point for the staff,
       \remove "Phrasing_slur_engraver"
       \remove "Slur_engraver"
       \remove "Script_engraver"
+      \remove "New_fingering_engraver"
       \remove "Beam_engraver"
       \remove "Auto_beam_engraver"
     }
@@ -1252,6 +1256,7 @@ and the @code{Stem_engraver} adds stems.
       \remove "Phrasing_slur_engraver"
       \remove "Slur_engraver"
       \remove "Script_engraver"
+      \remove "New_fingering_engraver"
       \remove "Beam_engraver"
       \remove "Auto_beam_engraver"
     }
@@ -1358,13 +1363,19 @@ graphical objects have all directions down (or left).  The second
 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 {
+    \stemDown <e' g b>4_>-\arpeggio
+    \override Arpeggio.direction = #RIGHT
+    \stemUp <e g b>4^>-\arpeggio
+  }
+  \layout {
+    \context {
+      \Score
+      \override SpacingSpanner.spacing-increment = #3
+      \hide TimeSignature
+    }
+  }
 }
 @end lilypond
 
@@ -1388,12 +1399,12 @@ fragment = {
 <<
    \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
 >>
@@ -1423,17 +1434,17 @@ note head symbol is changed during the music 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
   <d f g>4
@@ -1471,9 +1482,9 @@ By adding chord names and lyrics we obtain a lead sheet.
 <<
    \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 }
 >>
@@ -1495,7 +1506,7 @@ following example combines some more exotic constructs.
       \time 4/8
       \key c \minor
       << {
-        \revert Stem #'direction
+        \revert Stem.direction
         \change Staff = down
         \set subdivideBeams = ##t
         g16.[
@@ -1512,7 +1523,7 @@ following example combines some more exotic constructs.
         \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
       } \\ {
@@ -1524,30 +1535,27 @@ following example combines some more exotic constructs.
       \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"
     }
   }
 }
@@ -1566,8 +1574,8 @@ therefore be easily embedded in other text-based formats such as
 @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.
@@ -1645,42 +1653,42 @@ LilyPond, version @version{}:
 @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 {
+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
@@ -1714,7 +1722,7 @@ partIV = \relative c {
     }
     \context {
       \PianoStaff
-      \override StaffGrouper #'between-staff-spacing #'padding = #1
+      \override StaffGrouper.staff-staff-spacing.padding = #1
     }
   }
 }