Difference between revisions of "Lilypond"
Jump to navigation
Jump to search
(→Links) |
(→Links) |
||
Line 8: | Line 8: | ||
* http://lilypond.org/manuals.html Manuals and Tutorials | * http://lilypond.org/manuals.html Manuals and Tutorials | ||
* http://lilypond.org/doc/v2.12/Documentation/user/lilypond/index.html Notation Reference | * http://lilypond.org/doc/v2.12/Documentation/user/lilypond/index.html Notation Reference | ||
+ | * http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Cheat-sheet#Cheat-sheet Cheat Sheet | ||
* http://lilypond.org/download.html Downloads | * http://lilypond.org/download.html Downloads | ||
* http://lilypond.org/doc/v2.12/input/lsr/lilypond-snippets/index.html Short example of lilypond code and graphical notation output. | * http://lilypond.org/doc/v2.12/input/lsr/lilypond-snippets/index.html Short example of lilypond code and graphical notation output. |
Revision as of 17:43, 2 December 2010
Lilypond is the most feature-rich of the non-interactive graphical music notation rendering systems. It evolved from TeX-based music notation display systems (see http://icking-music-archive.org/software/indexmt6.html).
Links
- http://en.wikipedia.org/wiki/GNU_LilyPond Wikipedia entry for Lilypond
- http://lilypond.org Main website for Lilypond
- http://lilypond.org/manuals.html Manuals and Tutorials
- http://lilypond.org/doc/v2.12/Documentation/user/lilypond/index.html Notation Reference
- http://lilypond.org/doc/v2.12/Documentation/user/lilypond/Cheat-sheet#Cheat-sheet Cheat Sheet
- http://lilypond.org/download.html Downloads
- http://lilypond.org/doc/v2.12/input/lsr/lilypond-snippets/index.html Short example of lilypond code and graphical notation output.
- Pitches
- Rhythms
- Expressive marks
- Repeats
- Simultaneous notes
- Staff notation
- Editorial annotations
- Text
- Vocal music
- Chords
- Keyboards
- Percussion
- Fretted strings
- Unfretted strings
- Winds
- Ancient notation
- World music
- Contexts and engravers
- Tweaks and overrides
- Paper and layout
- Titles
- Spacing
- MIDI
- Templates
- http://www.mutopiaproject.org Online library of music encoded in Lilypond format.
Beethoven Piano Sonata Example
Mutopia Link for Beethoven Piano Sonata (PDF)
- Data below recompiled for lilypond 2.12.2: Beethoven Piano Sonata No. 1, mvmt. 1
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):
- 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.
- 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.
\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 { } }