Difference between revisions of "Lilypond"

From CCARH Wiki
Jump to navigation Jump to search
Line 47: Line 47:
 
* [[Media:Beethoven-Sonata1-1-sibelius.pdf | Beethoven Piano Sonata No. 1, mvmt. 1]]
 
* [[Media:Beethoven-Sonata1-1-sibelius.pdf | Beethoven Piano Sonata No. 1, mvmt. 1]]
  
 +
Comments on the automatically typeset music (using Lilypond 2.12.2):
 +
 +
# m72<tt>-</tt>79: rests in top voice placed too high.  The algorithm for placing rests in multi-voice staff parts should be adjusted: if the other voice is not overlapping the middle of the staff, and particularly if the notes of the voice are in the middle of the staff, the rests for that voice should occur in the default positions as if there were only one voice in the staff.
 +
# In general, staves of system placed too far apart.  This make it easier to typeset automatically since there will be less collisions to deal with, but allows for less music on a page and makes it slightly more difficult to read the music.
 +
# Up-stems in m11 are way too short. This causes a collision of the accidental with the beam which decreases legibility.
 +
# m41 ''con espressione'' is occluded by the barline, also ''decresc.'' in m90.  The barline should break when text passes across it in most situations.
 +
# Page 6 is partially filled (could be fixed by shrinking the music size to get the music to fit on 5 pages).
 +
# Barlines are thicker than staff lines.  This is more useful for single-staff parts where it is more difficult to see the barlines.  For multi-staff parts (such as piano), barlines should have the same thickness as the staff lines because the barlines are easy to see between staves.
  
 
<pre style="font-size:10px">
 
<pre style="font-size:10px">

Revision as of 17:51, 1 December 2010

Beethoven Piano Sonata Example

Mutopia Link for Beethoven Piano Sonata (PDF)

Compare to a professionally typeset version (France, 1911):

Compare to typesetting with full-featured graphical music notation editor (Sibelius 5):

Comments on the automatically typeset music (using Lilypond 2.12.2):

  1. m72-79: rests in top voice placed too high. The algorithm for placing rests in multi-voice staff parts should be adjusted: if the other voice is not overlapping the middle of the staff, and particularly if the notes of the voice are in the middle of the staff, the rests for that voice should occur in the default positions as if there were only one voice in the staff.
  2. In general, staves of system placed too far apart. This make it easier to typeset automatically since there will be less collisions to deal with, but allows for less music on a page and makes it slightly more difficult to read the music.
  3. Up-stems in m11 are way too short. This causes a collision of the accidental with the beam which decreases legibility.
  4. m41 con espressione is occluded by the barline, also decresc. in m90. The barline should break when text passes across it in most situations.
  5. Page 6 is partially filled (could be fixed by shrinking the music size to get the music to fit on 5 pages).
  6. Barlines are thicker than staff lines. This is more useful for single-staff parts where it is more difficult to see the barlines. For multi-staff parts (such as piano), barlines should have the same thickness as the staff lines because the barlines are easy to see between staves.
\version "2.12.2"

 \header {
  title = "Piano Sonate Opus 2 No 1 (1st Movement)"
  composer = "Ludwig Van Beethoven"
  mutopiatitle = "Sonata No. 1 (1st Movement: Allegro)"
  mutopiacomposer = "BeethovenLv"
  mutopiainstrument = "Piano"
  mutopiaopus = "Op. 2, No. 1"
  date = "1794/95"
  source = "Breitkopf & Hartel (1862-1865)"
  style = "Classical"
  copyright = "Public Domain"
  maintainer = "Stelios Samelis"
  lastupdated = "2008/January/06"
  version = "2.10.3"
  footer = "Mutopia-2008/01/07-1211"
}

\score {

 \new GrandStaff
 <<
 \new Staff = "up" {
 \clef treble
 \key f \minor
 \time 4/4
 \override Score.MetronomeMark #'transparent = ##t
 \tempo 4 = 190
 \override TextScript #'padding = #2.0
 \repeat volta 2 {
 \partial 4 c'4\p\staccato^\markup { \large \bold "Allegro." } f'\staccato
 aes'\staccato c''\staccato f''\staccato aes''4.( \times 2/3 { g''16[
 f'' e''] } f''4\staccato) r4 g'\staccato c''\staccato e''\staccato
 g''\staccato bes''4.( \times 2/3 { aes''16[ g'' f''] } g''4\staccato)
 r4 \acciaccatura c''16 aes''4.\sf( \times 2/3 { g''16[ f'' e''] }
 f''4\staccato) r4 \acciaccatura c''16 bes''4.\sf( \times 2/3 { aes''16[
 g'' f''] } g''4\staccato) r4 <c'' f'' aes'' c'''>2\ff\arpeggio\> bes''8([
 aes'' g'' f''\!]) \grace { e''16[ f'' g''] } f''4\p( e''\staccato)
 r4^\fermata r4 R1 R1 << { g''4\rest g''8\rest \times 2/3 { ees''16([
 des''! c''] } des''4\staccato) des''\staccato des''1~ des''4. \times
 2/3 { ees''16([ des'' c''] } des''4\staccato) des''\staccato g''4\rest
 g''8\rest \times 2/3 { des''16([ c'' b'] } c''4\staccato) c''\staccato
 } \\ { aes'1~ aes'4. \times 2/3 { bes'16([ aes' g'] } aes'4\staccato)
 aes'\staccato g'1 aes'1 } >> << { c''4\<( bes'!2\!\> aes'4\!) } \\ {
 f'1 } >> g'4\staccato ees''( des''! c'')~ c''4\<( bes'2\!\> aes'4\!)
 g'4 <ees' ees''>4\f( <des'! des''!> <c' c''>)~ <c' c''>4( <bes bes'>2
 <aes aes'>4) <g g'>4 r r fes''4\p( ees''4 des''! bes' g') fes'4.\sf(
 ees'8 aes'4\staccato) fes''4( ees'' des'' bes' g') fes'4.\sf( ees'8
 aes'4\staccato) fes''4( ees'' des'' bes' g') r8 g'( bes' aes') r a'( c''
 bes') r b'( des'' c'') r d''8\<( aes''\!\> d''\!)  ees''4 r r8 d''8\<(
 aes''\!\> d''\!) ees''4 r r8 g''8\<( fes'''\!\> g''\!) aes''4 r r8
 g''8\<( fes'''\!\> g''\!)  r8 g''\<( bes'' aes'') r a''( c''' bes'')
 r b''( des''' c''') r c'''( ees''' des'''\!)  r8 d'''8\f( f''' ees'''
 des''' c''' bes'' aes'' g''8 f'' ees'' des'' c'' bes' aes' g' f'\p ees'
 d' ees' d' ees' d' ees' d' ees' f' ees' d' ees' f' ees') r8 aes''8\f(
 f''' ees''' des'''! c''' bes'' aes'' g'' f'' ees'' des'' c'' bes' aes'
 g' f'\p ees' des' c' bes aes g f ees f g aes bes c' des' bes aes4) r4
 \acciaccatura d'16 ces''4._\markup { \italic "con espressione" }( bes'8)
 aes'2 g'4.( ees''8) ees''4\sf( aes'4) \acciaccatura d'16 ces''4.( bes'8)
 aes'2 g'4.( ees''8) ees''4\sf( aes'4) \acciaccatura d''16 ces'''4.(
 bes''8) aes''2 g''4.( ees'''8) <des'' g'' ees'''>1\ff\> <c'' ees''
 aes''>4\!\p r4 r }

 ees'4\p\staccato aes'\staccato c''\staccato ees''\staccato aes''\staccato
 c'''4.( \times 2/3 { bes''16[ aes'' g''] } aes''4\staccato) r4
 \acciaccatura des''16 des'''4.( \times 2/3 { c'''16[ bes'' a'']
 } bes''4\staccato) r4 bes'4\staccato des''\staccato g''\staccato
 bes''\staccato \acciaccatura des''16 des'''4.( \times 2/3 { c'''16[ bes''
 a''] } bes''4\staccato) r4 \acciaccatura des''16 des'''4.\<( \times 2/3
 { c'''16[ bes'' a''] } bes''4\staccato) r4\!  a''4\fp r r ges''( f''
 ees''! c'' a') ges'4.\sf( f'8 bes'4\staccato) ges''4( f'' ees'' c''
 a') ges'4.\sf( f'8 bes'4\staccato) ges''4( f'' ees'' c'' a') r8 a'(
 c'' bes') r bes'\<( des'' c'') r c''( ees'' des'') r b'( d'' c''\!)
 b'4\fp r r aes''!( g'' f''! d'' b') aes'4.\sf( g'8 c''4\staccato)
 aes''4( g'' f'' d'' b') aes'4.\sf( g'8 c''4\staccato) f'8 d' f'8 d' f'
 d' f' d' f' d' << { d''4\rest b'4( c'') d''4\rest R1 d''4\rest a'4(
 bes'!) d''4\rest R1 } \\ { f'8 d' f' d' ees' c' ees' c' ees' c' ees'
 c' ees' c' ees' c' ees' c' ees' c' des'! bes des' bes des'8 bes des'
 bes des' bes des' bes } >> << { r2 g'2 r2 aes'2^\sf r2 f'2 r2 g'2^\sf
 r2 e'2 r2 f'2^\sf r2 f'2^\sf } \\ { des'8 bes des' bes des' bes des'
 bes c' aes ees' aes ees' aes ees' aes des' aes des' aes des' aes des'
 aes des'8 g des' g des' g des' g c' g c' g c' g c' g aes f c' f c'
 f c' f des' f des' f des' f des' f } >> d'8 f <aes d' f'> f <aes d'
 f'> f <aes d' f'> f <g c' e'>4 r r c''4( aes'4\staccato) r4 r f''4(
 e''4\staccato) r4 r c'''4( f''\staccato) r \set doubleSlurs = ##t <f''
 f'''>2\sf( <e'' e'''>4\staccato) \set doubleSlurs = ##f r4 r \afterGrace
 c''4^\trill( { b'16[ c''] } aes'4\staccato) aes'\staccato r4 \afterGrace
 f''4^\trill( { e''16[ f''] } e''4\staccato) e''\staccato r4 \afterGrace
 c'''4^\trill( { b''16[ c'''] } f''4\staccato) f''\staccato r <f''
 f'''>4( <e'' e'''>\staccato) <e'' e'''>\staccato r4 <des''! des'''!>4(
 <c'' c'''>\staccato) <c'' c'''>\staccato r <f'' f'''>4_\markup {
 \italic "decresc." }( <e'' e'''>\staccato) <e'' e'''>\staccato r4
 <des''! des'''!>( <c'' c'''>\staccato) <c'' c'''>\staccato r4 <f''
 f'''>4( <e'' e'''>\pp\staccato) r4 r2 R1 r4 r8 \times 2/3 { aes'16([
 ges' f'] } ges'4\staccato) r4 r4 r8 \times 2/3 { ees'''16([ des'''
 c'''] } des'''4\staccato) r4 r4 r8 \setTextCresc \times 2/3 { f'16\<([
 e' d'] } e'4\staccato) r4 r4 r8 \times 2/3 { des'''!16([ c''' b''] }
 c'''4\staccato) r4 r4 r8 \times 2/3 { ees'16([ d' c'] } d'4\staccato)
 r4 r4 r8 \times 2/3 { c'''16([ bes'' a''] } bes''4\staccato) r4\!
 f'4\f\staccato aes'!\staccato c''\staccato f''\staccato aes''4.\sf(
 \times 2/3 { g''16[ f'' e''] } f''4\staccato) r4 g'4\staccato
 c''\staccato e''\staccato g''\staccato bes''4.\sf( \times 2/3 { aes''16[
 g'' f''] } g''4\staccato) r4 \acciaccatura c''16 aes''4.\sf( \times 2/3
 { g''16[ f'' e''] } f''4\staccato) r4 \acciaccatura c''16 bes''4.\sf(
 \times 2/3 { aes''16[ g'' f''] } g''4\staccato) r4 <c'' f'' aes''
 c'''>2\ff\arpeggio\> bes''8([ aes'' g'' f''\!]) \grace { e''16[ f''
 g''] } f''4\p( e''\staccato) r4^\fermata r4 R1 R1 bes''4.( \times 2/3
 { aes''16[ ges'' f''] } ges''4\staccato) ges''4\staccato << { ges''1~
 ges''4. \times 2/3 { ges''!16([ f'' e''] } f''4\staccato) f''4\staccato
 f''1 a''4\rest a''8\rest \times 2/3 { g''!16([ f'' e''] } f''4 g''
 aes''! e'' f'' b') } \\ { f'4\rest f'8\rest \times 2/3 { des''!16([ c''
 b'] } c''4\staccato) c''4\staccato c''1~ c''4.  \times 2/3 { c''16([
 bes'! a'] } bes'4\staccato) bes'4\staccato b'1 s1 } >> c''4\<( e'' f''
 g''\! aes''\> e'' f'' b'\!) <e' c''>4 r r des''4\p( c'' bes'! g' e')
 des'4.\sf( c'8 f'4\staccato) des'''4( c''' bes'' g'' e'') des''4.\sf(
 c''8 f''4\staccato) des'''4( c''' bes'' g'' e'') r8 e''8( g'' f'') r
 f''( aes'' g'') r g''( bes'' aes'') r b''\<( f'''\!\> b''\!) c'''4 r r8
 b''8\<( f'''\!\> b''\!)  c'''4 r4 r8 e''8\<( des'''!\!\> e''\!) f''4 r4
 r8 e''8\<( des'''!\!\> e''\!)  r8 \setTextCresc e''8\<( g'' f'') r f''(
 aes'' g'') r g''( bes'' aes'') r a''( c''' bes''\!)  r8 c'''8\f( f'''
 ees'''! des''' c''' bes'' aes''! g'' f'' ees'' des'' c'' bes' aes' g'
 f' e' des' c' b c' b c' b8\pp c' des' c' b c' des' c') r8 c'''8\f(
 f''' ees'''! des''' c''' bes'' aes'' g'' f'' ees'' des'' c'' bes'
 aes' g' f' e' des' c' b c' b c' b8\pp c' des' c') c'( bes! aes g f4)
 r4 aes'4._\markup { \italic "con espressione" }( g'8) f'2 e'4.( c''8)
 c''4\sf( f'4) aes'4.( g'8) f'2 e'4.( c''8) c''4\sf( f'4) \acciaccatura
 b'16 aes''4.( g''8) f''2 e''4.( c'''8) <c'' ees''! c'''>1\ff <bes'
 des'' f''>4 r r r8 <bes' des'' bes''>8 <bes' des'' bes''>1\ff <aes' c''
 ees''>4 r r <aes' c'' aes''>\sf\staccato <g' bes' des''>\staccato <g'
 bes' g''>\sf\staccato <f' aes' c''>\staccato <f' aes' f''>\sf\staccato
 <f' g' des'' f''>4\ff\staccato r <e' g' bes' c'' e''>\staccato r <f'
 aes' c'' f''>4\staccato r r4^\fermata \bar "|."
}

 \new Staff = "down" {
 \clef bass
 \key f \minor
 \time 4/4
 \repeat volta 2 {
 \partial 4 r4 R1 r4 <f aes c'>4\staccato <f aes c'>\staccato <f aes
 c'>\staccato <e g bes c'>4\staccato r4 r2 r4 <e g bes c'>\staccato
 <e g bes c'>\staccato <e g bes c'>\staccato r4 <f aes c'>\staccato
 <f aes c'>\staccato <f aes c'>\staccato r <g bes e'>\staccato <g bes
 e'>\staccato <g bes e'>\staccato r4 <aes c' f'>\staccato r <bes des'
 g'>\staccato r4 <c' g'>4\staccato r4^\fermata g,4\staccato^\p c\staccato
 ees!\staccato g\staccato c'\staccato ees'!4.( \times 2/3 { d'16[ c' b] }
 c'4\staccato) c'4\staccato <c' f'>1 <bes! f'>1 <bes ees'>1 <aes ees'>1
 des'2 d' ees'4 r r << { ees'4 f'2 f' ees'4 } \\ { c'4 des'2 d' ees'4 }
 >> r4 r << { ees4 f2 f2 } \\ { c4 des2 d2 } >> ees8 ees' ees ees' ees
 ees' ees ees' ees8 ees' ees ees' ees ees' ees ees' << { des'!2( c'4)
 s4 } \\ { ees4 ees ees8 ees' ees ees' } >> ees8 ees' ees ees' ees ees'
 ees ees' << { des'2( c'4) s4 } \\ { ees4 ees ees8 ees' ees ees' } >>
 ees8 ees' ees ees' des' ees' des' ees' c' ees' c' ees' g ees' g ees'
 aes! ees' aes ees' f d' aes d' ees8 ees' g ees' f d' aes d' ees ees'
 g ees' des! bes fes bes c aes ees aes des bes fes bes c8 aes ees aes
 g, g ees g aes,! aes ees aes bes,! bes ees bes c4 ees2\sf aes4 des4
 f2\sf bes4 ees4 aes2\sf c'4 des'!( bes g des) c,4 ees,2\sf aes,4 des,4
 f,2\sf bes,4 ees, aes,2\sf c4 des4( bes, g, ees,) aes,4 aes r <d f aes
 ces'>\staccato r4 <ees aes c'!>4\staccato r <ees bes des'!>\staccato r4
 <aes c'>\staccato r <d f aes ces'>\staccato r <ees aes c'!>\staccato r
 <ees bes des'!>\staccato r4 <aes c'> \clef treble r <d' f' aes' ces''>
 r <ees' aes' c''!> r <ees' bes' des''!> <aes bes des' ees' g'>1\ff\>
 <aes c' ees' aes'>4\!\p r4 r4 }

 r4 R1 \clef bass r4 <aes c' ees'> <aes c' ees'> <aes c' ees'> r <g bes
 des' ees'> <g bes des' ees'> <g bes des' ees'> R1 r4 <g bes des' e'>
 <g bes des' e'> <g bes des' e'> r <ges bes des' e'> <ges bes des' e'>
 <ges bes des' e'> f8 f' f f' f f' f f' f f' f f' f f' f f' << { ees'!2(
 des'4) s4 } \\ { f4 f f8 f' f f' } >> f8 f' f f' f f' f f' << { ees'2(
 des'4) s4 } \\ { f4 f f8 f' f f' } >> f8 f' f f' ees' f' ees' f' des'
 f' des' f' c' f' c' f' bes8 f' bes f' aes! fis' aes fis' g g' g g' g g'
 g g' g g' g g' g g' g g' << { f'!2( ees'4) s4 } \\ { g4 g g8 g' g g'
 } >> g8 g' g g' g g' g g' << { f'2( ees'4) } \\ { g4 g g } >> aes4(
 g f d b,) aes,4.\sf( g,8 c4\staccato) ges4( f ees c a,) ges,4.\sf(
 f,8 bes,4) fes4( ees des! bes, g,!)  fes,4( ees,2) ees4\sf~ ees c2 c,4~
 c,4 des,2 des4\sf~ des bes,2 bes,,4~ bes,, c,2 c4\sf~ c4 aes,2 aes,,4
 r4 bes,,2 bes,4 r b,,2 b,4 c,8 c e c e c e c f c f c f c aes c g8 c g
 c g c bes! c aes c c' c b c d' c c' c e c e c g c f c f c f c aes c g
 c g c g c bes! c aes8 c c' c b c d' c c' c c' c bes! c bes c aes c c'
 c b c d' c c' c c' c bes! c bes c aes c c' c b c d' c c'4\pp\staccato(
 c'\staccato c'\staccato c'\staccato) c'\staccato( c'\staccato
 c'\staccato c'\staccato) <c' des'!>\staccato( <c' des'>\staccato
 <c' des'>\staccato <c' des'>\staccato) <bes des'>\staccato(
 <bes des'>\staccato <bes des'>\staccato <bes des'>\staccato) <bes
 c'>\staccato( <bes c'>\staccato <bes c'>\staccato <bes c'>\staccato) <aes
 c'>\staccato( <aes c'>\staccato <aes c'>\staccato <aes c'>\staccato)
 <aes bes!>\staccato( <aes bes>\staccato <aes bes>\staccato <aes
 bes>\staccato) <g bes e'>\staccato( <g bes e'>\staccato <g bes
 e'>\staccato <g bes e'>\staccato) <f aes! c'>4\f r r2 r4 <f aes c'>
 <f aes c'> <f aes c'> <e g bes c'>4 r r2 r4 <e g bes c'> <e g bes c'>
 <e g bes c'> <f aes c'>2 r2 <g bes e'>2 r2 <aes c' f'>4\ff r <bes des'
 g'> r <c' g'>4\p r r4^\fermata c4\p\staccato f4\staccato aes\staccato
 c'\staccato f'\staccato \clef treble aes'4.( \times 2/3 { g'16[ f' e']
 } f'4\staccato) f'4\staccato <f' ges'>1 <ees' ges'>1 <ees' a'>1 <des'
 f'>1 << { f'2.( e'4 f'4 g' aes' f') e'4( g' f' e' f' bes'! aes' f') } \\
 { d'1~ d'1 c'1~ c'2 des'!2 } >> \clef bass c8 c' c c' c c' c c' c c' c c'
 c c' c c' << { bes2( aes4) s4 } \\ { c4 c c8 c' c c' } >> c8 c' c c' c c'
 c c' << { bes2( aes4) s4 } \\ { c4 c c8 c' c c' } >> c8 c' c c' bes c'
 bes c' aes8 f' c' f' g e' bes e' f c' aes c' des b f b c c' e c' des b f
 b c c' e c' bes,! g des g aes, f c f bes, g des g aes,8 f c f e, e c e f,
 f c f g, g c g aes,4 c2\sf f4 bes,4 des2\sf g4 c4 f2\sf aes4 bes!4\pp(
 g e bes,!)  aes,4 c2\sf f4 bes,4 des2\sf g4 c4 f2\sf aes4 r4 c,4 c, c,
 f,4 f r <des f b>\staccato r4 <c f aes c'>\staccato r <c g bes!>\staccato
 r <f aes>\staccato r <des f aes b>\staccato r4 <c f aes c'>\staccato
 r <c g bes!>\staccato r4 <f aes>4\staccato \clef treble r <des' f'
 aes' b'>\staccato r4 <c' f' aes' c''> r \clef bass <bes! c' g'> <a c'
 f'>1\ff <bes des' f'>4 r r r8 <bes des' f'>8 <g bes ees'>1\ff <aes! c'
 ees'>4 r r <f des'>4\sf\staccato <g des'>\staccato <e c'>\sf\staccato
 <f c'>\staccato <des des'>\sf\staccato <bes, des g bes>\ff\staccato r
 <c e g c'>\staccato r <f, aes, c f>4\staccato r r4^\fermata \bar "|."
} >>

 \layout { }

}