X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fessay%2Fengraving.itely;h=3b97143b2a713f2583f99dc4dbbd4903ada7db0c;hb=4478a8dc0ac8de7e2596f01e7b212290d05d637c;hp=75975952336a0aa828180a6269e25abdbf536687;hpb=ff5b756b319b1a577e0ebcbe90b77feeef3eb1da;p=lilypond.git diff --git a/Documentation/essay/engraving.itely b/Documentation/essay/engraving.itely index 7597595233..3b97143b2a 100644 --- a/Documentation/essay/engraving.itely +++ b/Documentation/essay/engraving.itely @@ -8,7 +8,7 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.13.4" +@c \version "2.19.24" @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,15 +447,11 @@ 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 @@ -464,31 +460,29 @@ global = { \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 + s4. s8 r8 r16 4.^> 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 2.~->^\f 4.~ 8 } \\ { @@ -503,7 +497,7 @@ global = { >> } @end lilypond -@end ignore + @node Why work so hard? @unnumberedsubsec Why work so hard? @@ -561,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 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 } @@ -601,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 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 @@ -615,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 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 @@ -628,7 +622,7 @@ it is the most attractive of the three configurations, so LilyPond selects this one: @lilypond -\relative c { +\relative { \clef bass e8[(_"12.04" f] g[ a b d,)] r4 } @@ -737,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 @@ -779,24 +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 @@ -830,7 +824,7 @@ partIV = \relative c { } \context { \PianoStaff - \override StaffGrouper #'between-staff-spacing #'padding = #1 + \override StaffGrouper.staff-staff-spacing.padding = #1 } } } @@ -841,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, @@ -849,7 +843,7 @@ 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 +collide = \once \override NoteColumn.force-hshift = #0 \score { << @@ -860,7 +854,7 @@ collide = \once \override NoteColumn #'force-hshift = #0 \new Voice { \voiceTwo bes \collide bes } >> } - \new Lyrics \lyricsto "sample" \lyricmode { "good " " bad" } + \new Lyrics \lyricsto "sample" { "good " " bad" } >> } @end lilypond @@ -976,8 +970,8 @@ formed by the concept of music expressions: by combining small 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 @@ -1038,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 2 a4 b2. @@ -1084,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 r4\fermata } - \new Voice = "II" \relative c' { + \new Voice = "II" \relative { \voiceTwo - c4 - \times 4/5 { + c'4 + \tuplet 5/4 { 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 ) r\fermata } >> \new Staff = "LH" << - \new Voice = "III" \relative c' { + \new Voice = "III" \relative { \time 2/4 \clef "bass" g4 \stopStaff s @@ -1168,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" } @@ -1200,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" } @@ -1231,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" } @@ -1259,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" } @@ -1366,16 +1364,16 @@ chord has all directions up (right). @lilypond[quote,ragged-right] \score { - \relative c' { - \stemDown 4_>-\arpeggio - \override Arpeggio #'direction = #RIGHT + \relative { + \stemDown 4_>-\arpeggio + \override Arpeggio.direction = #RIGHT \stemUp 4^>-\arpeggio } \layout { \context { \Score - \override SpacingSpanner #'spacing-increment = #3 - \override TimeSignature #'transparent = ##t + \override SpacingSpanner.spacing-increment = #3 + \hide TimeSignature } } } @@ -1401,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 >> @@ -1436,23 +1434,23 @@ 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 + 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 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 - 4 - \once \override NoteHead #'style = #'cross + \once \override NoteHead.style = #'cross 4 - \applyOutput #'Voice #mc-squared + \applyOutput Voice #mc-squared 4 << { d8[ es-( fis^^ g] fis2-) } - \repeat unfold 5 { \applyOutput #'Voice #mc-squared s8 } + \repeat unfold 5 { \applyOutput Voice #mc-squared s8 } >> } @end lilypond @@ -1484,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 } >> @@ -1508,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.[ @@ -1525,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 } \\ { @@ -1537,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 } \\ { - \override Staff.Arpeggio #'arpeggio-direction =#down + \override Staff.Arpeggio.arpeggio-direction =#down 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" } } } @@ -1579,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. @@ -1658,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. 8 r r 4 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 @@ -1727,7 +1722,7 @@ partIV = \relative c { } \context { \PianoStaff - \override StaffGrouper #'between-staff-spacing #'padding = #1 + \override StaffGrouper.staff-staff-spacing.padding = #1 } } }