2 @c This file is part of lilypond.tely
5 @c * more details about running lilypond; error messages,
6 @c compiling/viewing (emacs?)
7 @c * where to go from First steps+More basics?
14 Using LilyPond comes down to encoding music in an input file. After
15 entering the music, the program is run on the file producing output
16 which can be viewed or printed. In this tutorial, we will show step
17 by step how to enter such files, and illustrate the process with
18 fragments of input and the corresponding output. At the end of every
19 section, a paragraph will list where to find further information on
22 Many people learn programs by trying and fiddling around with the
23 program. This is also possible with LilyPond. If you click on a
24 picture in the HTML version of this manual, you will see the exact
25 LilyPond input that was used to generate that image.
27 For example, consider the following input:
29 c'^\markup @{ \bold \huge @{ Click on this image! @} @}
31 @c @lily pond[relative=1,raggedright,with the following output:]
32 with the following output:
33 @lilypond[relative=1,raggedright]
34 c'^\markup { \bold \huge { Click on this image! } }
38 By cutting and pasting the full input into a test file, you have a
39 starting template for experiments. If you like learning in this way,
40 you will probably want to print out or bookmark
44 @ref{Cheat sheet}, which is a table listing all commands for quick
48 This tutorial starts with a short introduction to the LilyPond music
49 language. After this first contact, we will show you how to to
50 produce printed output. You should then be able to create and print
51 your first sheets of music.
56 * More about pitches::
58 * Combining music into compound expressions::
59 * Adding articulation marks to notes::
60 * Combining notes into chords::
61 * Basic rhythmical commands::
62 * Commenting input files::
65 * Listening to output::
67 * Single staff polyphony::
70 * Fine tuning layout::
71 * Organizing larger pieces::
72 * An orchestral part::
73 * Integrating text and music::
80 We start off by showing how very simple music is entered in LilyPond:
81 you get a note simply by typing its note name, from @samp{a}
82 through @samp{g}. So if you enter
89 then the result looks like this:
91 @lilypond[notime,relative]
95 The length of a note is specified by adding a number, @samp{1} for a
96 @rglos{whole note}, @samp{2} for a @rglos{half note}, and so on:
103 \set Score.timing = ##f
104 \set Staff.autoBeaming = ##f
105 \transpose c c' { a1 a2 a4 a16 a32 s16_" " }
108 If you do not specify a @rglos{duration}, the previous one is used:
115 \set Score.timing = ##f
116 \transpose c c' { a a a2 a s16_" " }
120 Rests are entered just like notes, but with the name ``@code{r}'':
129 \set Score.timing = ##f
130 \set Staff.Clef = \turnOff
131 \set Staff.TimeSignature = \turnOff
139 Add a dot @samp{.} after the duration to get a @rglos{dotted note}:
146 \set Score.timing = ##f
147 \transpose c c' { a2. a4 a8. a16 s16_" " }
151 The @rglos{meter} (or @rglos{time signature}) can be set with the
152 @code{\time} command:
160 @c a clef here may lead to confusion
162 \override Staff.Clef #'transparent = ##t
172 The @rglos{clef} can be set using the @code{\clef} command:
174 @c what is more common name treble or violin?
175 @c in Dutch, it's violin.
176 @c in English it's definitely treble.
185 \set Score.timing = ##f
196 Notes and commands like @code{\clef} and @code{\time}, are enclosed
197 in @code{\notes @{@dots{}@}}. This indicates that music (as opposed
198 to @rglos{lyrics}) follows:
208 Now the piece of music is almost ready to be printed. The final step is to
209 combine the music with a printing command.
211 The printing command is the so-called @code{\paper} block:
217 The @code{\paper} block is used to customize printing specifics. The
218 customization commands go between @code{@{} and @code{@}}, but for
219 now, we will accept the defaults. The music and the @code{\paper} block
220 are combined by enclosing them in @code{\score @{ ... @}}, so the
221 following is a complete and valid input file:
244 linewidth = 55 * \staffspace
249 In the rest of the tutorial we will often leave out @code{\score}
250 and @code{\paper} for clarity. However, both must be present when
251 feeding the file to LilyPond.
253 For more elaborate information on
256 @item entering pitches and durations
258 @ref{Pitches} and @ref{Durations}.
261 @item Time signatures and other timing commands
262 see @ref{Time signature}.
265 @node Running LilyPond
266 @section Running LilyPond
268 In the last section we explained what kind of things you could enter
269 in a LilyPond file. In this section we will explain what commands to run
270 and how to view or print the output. If you have not used LilyPond
271 before, want to test your setup, or want to run an example file
272 yourself, read this section. The instructions that follow are for
273 Unix-like systems. Some additional instructions for Microsoft Windows
274 are given at the end of this section.
276 Begin by opening a terminal window and starting a text editor. For
277 example, you could open an xterm and execute
278 @code{joe}.@footnote{There are macro files for VIM addicts, and there
279 is a @code{LilyPond-mode} for Emacs addicts. If it has not been
280 installed already, then refer to the file @file{INSTALL.txt}}. In
281 your text editor, enter the following input and save the file as
287 \notes @{ c'4 e' g' @}
292 To process @file{test.ly}, proceed as follows:
300 You will see something resembling:
305 Now processing: `/home/fred/ly/test.ly'
307 Interpreting music...[1]
308 @emph{ ... more interesting stuff ... }
309 PDF output to `test.pdf'...
310 DVI output to `test.dvi'...
314 @cindex Viewing music
317 The result is the file @file{test.pdf}.@footnote{For @TeX{}
318 afficionados: there is also a @file{test.dvi} file. It can be viewed
319 with @code{xdvi}. The DVI uses a lot of PostScript specials, which do
320 not show up in the magnifying glass. The specials also mean that the
321 DVI file cannot be processed with @code{dvilj}. Use @code{dvips} for
326 } One of the following commands should put the PDF on your
342 If the music on your screen looks good, you can print it by clicking
343 File/Print inside your viewing program.
347 @cindex Printing output
352 On Windows, the same procedure should work. The terminal is started by
353 clicking on the LilyPond or Cygwin icon. Any text editor (such as
354 NotePad, Emacs or Vim) may be used to edit the LilyPond file.
356 To view the PDF file, try the following:
359 If your system has a PDF viewer installed, open
360 @file{C:\Cygwin\home\@var{your-name}} in the explorer and double-click
363 If you prefer the keyboard, you can try to enter one of the commands
364 from the list shown before in the terminal. If none work, go to
365 @uref{http://www.cs.wisc.edu/~ghost/} to install the proper software.
368 The commands for formatting and printing music on all platforms are
369 detailed in @ref{Invoking LilyPond}.
371 @node More about pitches
372 @section More about pitches
374 A @rglos{sharp} (@texisharp{}) pitch is made by adding @samp{is} to
375 the name, a @rglos{flat} (@texiflat{}) pitch by adding @samp{es}. As
376 you might expect, a @rglos{double sharp} or @rglos{double flat} is
377 made by adding @samp{isis} or @samp{eses}:@footnote{This syntax
378 derived from note naming conventions in Nordic and Germanic languages,
379 like German and Dutch.}
386 \set Score.timing = ##f
387 \transpose c c' { cis1 ees fisis aeses s16_" " }
391 @cindex key signature, setting
393 The key signature is set with the command ``@code{\key}'', followed by
394 a pitch and @code{\major} or @code{\minor}:
404 \set Staff.TimeSignature = \turnOff
413 Key signatures together with the pitches (including alterations) are
414 used together to determine when to print accidentals. This is a
415 feature that often causes confusion to newcomers, so let us explain it
419 LilyPond makes a sharp distinction between musical content and
420 layout. The alteration (flat, natural or sharp) of a note is part of
421 the pitch, and is therefore musical content. Whether an accidental (a
422 flat, natural or sharp @emph{sign}) is a printed in front of the
423 corresponding note is a question of layout. Layout is something that
424 follows rules, so accidentals are printed automatically according to
425 those rules. The pitches in your music are works of art, so they will
426 not be added automatically, and you must enter what you want to hear.
428 For example, in this example:
430 \set Staff.TimeSignature = \turnOff
436 no note gets an explicit accidental, but still you enter
443 The code @code{d} does not mean ``print a black dot just below the
444 staff.'' Rather, it means: ``a note with pitch D-natural.'' In the key
445 of A-flat, it gets an accidental:
448 \set Staff.TimeSignature = \turnOff
459 Adding all alterations explicitly might require some more effort when
460 typing, but the advantage is that transposing is easier, and music can
461 be printed according to different conventions. See @ref{Accidentals}
462 for some examples how accidentals can be printed according to
467 A tie is created by adding a tilde ``@code{~}'' to the first note
470 @lilypond[fragment,verbatim,relative=2]
476 This example shows the key signature, accidentals and ties in action:
487 fis4 fis8 fis8 eis4 a8 gis~
496 \notes { \transpose c c' {
502 fis4 fis8 fis8 eis4 a8 gis~
505 \paper { linewidth = #(* 50 staffspace) }
511 There are some interesting points to note in this example. Bar lines
512 and beams are drawn automatically. Line breaks are calculated
513 automatically; it does not matter where the line breaks are in the
514 source file. Finally, the order in which time, key and clef changes are entered is not
515 relevant: in the printout, these are ordered according to standard
516 notation conventions.
519 @cindex beams, by hand
520 Beams are drawn automatically, but if you do not like where they are
521 put, they can be entered by hand. Mark the first note to be beamed
522 with @code{[} and the last one with @code{]}:
524 @lilypond[fragment,relative=1,verbatim]
530 For more information on
539 see @ref{Accidentals}
542 see @ref{Key signature}
550 @section Octave entry
553 @c Tim wants to move this quotes example just before the: quotes-do not-work
554 @c score, but we'd need to remove quotes from the other two (key and
557 @c better to have this just before the `octaves are bad' snipped
558 @c but we'd need to remove the ', from \key and tie
559 To raise a note by an octave, add a high quote @code{'} (apostrophe) to
560 the note name, to lower a note one octave, add a ``low quote'' @code{,}
561 (a comma). Middle C is @code{c'}:
565 c'4 c'' c''' \clef bass c c,
569 \set Score.timing = ##f
570 \set Staff.TimeSignature = \turnOff
571 c'4 c'' c''' \clef bass c c,
576 An example of the use of quotes is in the following Mozart fragment:
577 @lilypond[raggedright,fragment,verbatim]
580 cis''8. d''16 cis''8 e''4 e''8
581 b'8. cis''16 b'8 d''4 d''8
584 This example shows that music in a high register needs lots of quotes.
585 This makes the input less readable, and it is a source of errors. The
586 solution is to use ``relative octave'' mode. In practice, this is the
587 most convenient way to copy existing music. To use relative mode, add
588 @code{\relative} before the piece of music. You must also give a note
589 from which relative starts, in this case @code{c''}. If you do not
590 use octavation quotes (i.e. do not add @code{'} or @code{,} after a
591 note), relative mode chooses the note that is closest to the previous
592 one. For example, @code{c f} goes up while @code{c g} goes down:
602 \set Score.timing = ##f
603 \set Staff.TimeSignature = \turnOff
612 Since most music has small intervals, pieces can be written almost
613 without octavation quotes in relative mode. The previous example is
616 @lilypond[raggedright,fragment,verbatim]
626 @c needed better, maybe even redundant explanation
627 @c added another example below.
628 @c grappig: Pa vond het heel logies, en slim toen-i eenmaal begreep.
629 @c in eerste instantie drong het `relative' niet door zonder extra uitleg.
630 Larger intervals are made by adding octavation quotes.
639 \set Score.timing = ##f
640 \set Staff.TimeSignature = \turnOff
648 Quotes or commas do not determine the absolute height of a note; the
649 height of a note is relative to the previous one.
650 @c do not use commas or quotes in this sentence
651 For example: @code{c f,} goes down; @code{f, f} are both the same;
652 @code{c' c} are the same; and @code{c g'} goes up:
656 Here is an example of the difference between relative mode and
657 ``normal'' (non-relative) mode:
668 \set Score.timing = ##f
669 \set Staff.TimeSignature = \turnOff
685 \set Score.timing = ##f
686 \set Staff.TimeSignature = \turnOff
694 For more information on Relative octaves see @ref{Relative octaves}
695 and @ref{Octave check}.
702 @node Combining music into compound expressions
703 @section Combining music into compound expressions
705 To print more than one staff, each piece of music that makes up a
706 staff is marked by adding @code{\context Staff} before it. These
707 @code{Staff}'s are then grouped inside @code{\simultaneous @{} and
708 @code{@}}, as is demonstrated here:
711 @lilypond[fragment,verbatim]
713 \new Staff { \clef violin c'' }
714 \new Staff { \clef bass c }
720 In this example, @code{\simultaneous } indicates that both music
721 fragments happen at the same time, and must be printed stacked
722 vertically. The notation @code{<< .. >>} can also be used as a
723 shorthand for @code{\simultaneous @{ .. @}}.
725 The command @code{\new} introduces a ``notation context''. To
726 understand this concept, imagine that you are performing a piece of
727 music. When you are playing, you combine the symbols printed at a
728 certain point with contextual information. For example, without
729 knowing the current clef, and the accidentals in the last measure, it
730 would be impossible to determine the pitch of a note. In other words,
731 this information forms a context that helps you decipher a
732 score. LilyPond produces notation from music, so in effect, it does
733 the inverse of reading scores. Therefore, it also needs to keep track
734 of contextual information. This information is maintained in
735 ``notation contexts.'' There are several types of contexts,
736 e.g. @code{Staff}, @code{Voice} and @code{Score}, but also
737 @code{Lyrics} and @code{ChordNames}. Prepending @code{\new} to a chunk
738 of music indicates what kind of context to use for interpreting it,
739 and ensures that the argument is interpreted with a fresh instance of
740 the context indicated.
745 We can now typeset a melody with two staves:
748 @lilypond[verbatim,raggedright]
769 The example shows how small chunks of music, for example, the notes
770 @code{c2}, @code{e4}, etc. of the second staff, are combined to form a
771 larger chunk by enclosing it in braces. Again, a larger chunk is
772 formed by prefix @code{\new Staff} to it, and that chunk is combined
773 with @code{<< >>}. This mechanism is similar to mathematical
774 formulas: a big formula is created by composing small formulas. Such
775 formulas are called expressions, and their definition is recursive, so
776 you can make arbitrarily complex and large expressions. For example,
785 ((1 + 2) * 3) / (4 * 5)
788 @cindex music expression
789 This example shows a sequence of expressions, where each expression is
790 contained in the next one. The simplest expressions are numbers and
791 operators (like +, * and /). Parentheses are used to group
792 expressions. In LilyPond input, a similar mechanism is used. Here,
793 the simplest expressions are notes and rests. By enclosing
794 expressions in @code{<< >>} and @code{@{ @}}, more complex music is
795 formed. The @code{\new} command also forms new expressions; prepending
796 it to a music expression yields a new expression.
798 Like mathematical expressions, music expressions can be nested
799 arbitrarily deep, e.g.
800 @lilypond[verbatim,relative=1]
802 << { e f } { c <<b d>> }
809 When spreading expressions over multiple lines, it is customary to use
810 an indent that indicates the nesting level. Formatting music like this
811 eases reading, and helps you insert the right number of closing
812 braces at the end of an expression. For example,
827 For more information on context see the Technical manual description
828 in @ref{Interpretation context}.
832 @node Adding articulation marks to notes
833 @section Adding articulation marks to notes
839 Common accents can be added to a note using a dash (`@code{-}') and a
842 @lilypond[verbatim,relative=1]
843 c-. c-- c-> c-^ c-+ c-_
849 Similarly, fingering indications can be added to a note using a dash
850 (`@code{-}') and the digit to be printed:
852 @lilypond[verbatim,relative=1]
857 Dynamic signs are made by adding the markings to the note:
859 @lilypond[verbatim,relative=1]
869 Crescendi and decrescendi are started with the commands @code{\<} and
870 @code{\>}. The command @code{\!} finishes a crescendo on the note it
873 @lilypond[verbatim,relative=1]
874 c2\< c2\!\ff\> c2 c2\!
883 A slur is drawn across many notes, and indicates bound articulation
884 (legato). The starting note and ending note are marked with a
885 ``@code{(}'' and a ``@code{)}'' respectively:
888 @lilypond[fragment,relative=1,verbatim]
889 d4( c16)( cis d e c cis d e)( d4)
893 @cindex slurs versus ties
894 A slur looks like a tie, but it has a different meaning. A tie simply
895 makes the first note sound longer, and can only be used on pairs of
896 notes with the same pitch. Slurs indicate the articulations of notes,
897 and can be used on larger groups of notes. Slurs and ties are also
900 @lilypond[fragment,relative=1]
901 c2~( c8 fis fis4 ~ fis2 g2)
904 @cindex phrasing slurs
905 If you need two slurs at the same time (one for articulation, one for
906 phrasing), you can also make a phrasing slur with @code{\(} and
910 @lilypond[fragment,relative=1,verbatim]
911 a8(\( ais b c) cis2 b'2 a4 cis, c\)
916 For more information on
919 see @ref{Fingering instructions}
921 see @ref{Articulations}
925 see @ref{Phrasing slurs}
931 @node Combining notes into chords
932 @section Combining notes into chords
935 Chords can be made by
936 surrounding pitches with @code{<} and @code{>}:
938 @lilypond[relative,fragment,verbatim]
945 You can combine beams and ties with chords. Beam and tie markings
946 must be placed outside the chord markers:
948 @lilypond[relative,fragment,verbatim]
949 r4 <c e g>8[ <c f a>]~ <c f a>
955 r4 <c e g>8\>( <c e g> <c e g> <c f a>8\!)
957 @lilypond[relative,fragment]
959 r4 <c e g>8\>( <c e g> <c e g> <c f a>8\!)
967 @node Basic rhythmical commands
968 @section Basic rhythmical commands
973 @cindex partial measure
974 A pickup (or upstep) is entered with the keyword @code{\partial}. It
975 is followed by a duration: @code{\partial 4} is a quarter note upstep
976 and @code{\partial 8} an eighth note:
977 @lilypond[relative=1,verbatim,fragment]
984 Tuplets are made with the @code{\times} keyword. It takes two
985 arguments: a fraction and a piece of music. The duration of the piece
986 of music is multiplied by the fraction. Triplets make notes occupy
987 2/3 of their notated duration, so a triplet has 2/3 as its fraction:
989 @lilypond[relative,verbatim,fragment]
990 \times 2/3 { f8 g a }
996 Grace notes are also made by prefixing a note, or a set of notes with
997 a keyword. In this case, the keywords are @code{\appoggiatura}
998 and @code{\acciaccatura}
1000 @cindex acciaccatura
1002 @lilypond[relative=1,verbatim,fragment]
1003 c4 \appoggiatura b16 c4
1004 c4 \acciaccatura b16 c4
1009 For more information on
1012 see @ref{Grace notes},
1016 see @ref{Partial measures}.
1021 @node Commenting input files
1022 @section Commenting input files
1025 @cindex line comment
1026 @cindex block comment
1027 Comments are pieces of the input that are ignored. There are two
1028 types of comments. A line comment is introduced by @code{%}: after
1029 that, the rest of that line is ignored. Block comments span larger
1030 sections of input. Anything that is enclosed in @code{%@{} and
1031 @code{%@}} is ignored too. The following fragment shows possible uses
1035 % notes for twinkle twinkle follow:
1040 This line, and the notes below
1041 are ignored, since they are in a
1051 @node Printing lyrics
1052 @section Printing lyrics
1057 Lyrics are entered by separating each syllable with a space, and
1058 surrounding them with @code{\lyrics @{ @dots{} @}}, for example,
1060 \lyrics @{ I want to break free @}
1063 Like notes, lyrics are also a form of music, but they must not be
1064 printed on a staff, which is the default way to print music. To print
1065 them as lyrics, they must be marked with @code{ \new Lyrics}:
1067 \new Lyrics \lyrics @{ I want to break free @}
1069 The melody for this song is as follows:
1071 @lilypond[fragment,relative=1]
1074 \times 2/3 { f4 g g } \times 2/3 { g4( a2) }
1077 The lyrics can be set to these notes, combining both with the
1078 @code{\lyricsto} keyword:
1080 \lyricsto "@var{name}" \new Lyrics @dots{}
1082 where @var{name} identifies to which melody the lyrics should be
1083 aligned. In this case, there is only one melody, so we can leave it
1087 @lilypond[verbatim,fragment]
1090 \relative c' \new Voice {
1093 \times 2/3 { f g g } \times 2/3 { g4( a2) }
1095 \lyricsto "" \new Lyrics \lyrics { I want to break free }
1102 @cindex extender line
1104 This melody ends on a @rglos{melisma}, a single syllable (``free'')
1105 sung to more than one note. This is indicated with an @emph{extender
1106 line}. It is entered as two underscores, i.e.
1108 \lyrics @{ I want to break free __ @}
1110 @lilypond[raggedright]
1113 \relative c' \new Voice {
1116 \times 2/3 { f g g } \times 2/3 { g4( a2) } }
1117 \lyricsto "" \new Lyrics \lyrics { I want to break free __ }
1123 Similarly, hyphens between words can be entered as two dashes,
1124 resulting in a centered hyphen between two syllables:
1126 Twin -- kle twin -- kle
1128 @lilypond[raggedright]
1130 << \notes \relative f' { \time 2/4
1132 \new Lyrics \lyrics { Twin -- kle twin -- kle }
1134 \paper { raggedright = ##t }
1138 More options, like putting multiple lines of lyrics below a melody are
1139 discussed in @ref{Vocal music}.
1144 @section A lead sheet
1150 In popular music, it is common to denote accompaniment as chord-names.
1151 Using them in LilyPond has two parts, just like lyrics: entering the
1152 chords (with @code{\chords}), and printing them (with @code{\new
1155 Chord names are entered by starting chords mode (with @code{\chords}).
1156 In chords mode, you can enter chords with a letter (indicating the
1157 root of the chord), and a durations following that:
1160 \chords { c2 f4. g8 }
1164 The result of @code{\chords} is a list of chords, and is equivalent
1165 to entering chords with @code{<@dots{}>}.
1167 Other chords can be created by adding modifiers after a colon. The
1168 following example shows a few common modifiers:
1171 \chords { c2 f4:m g4:maj7 gis1:dim7 }
1174 Printing chords is done by adding @code{\context ChordNames}
1175 before the chords thus entered:
1178 \context ChordNames \chords { c2 f4.:m g4.:maj7 gis8:dim7 }
1183 When put together, chord names, lyrics and a melody form
1184 a lead sheet, for example,
1189 \context ChordNames \chords @{ @emph{chords} @}
1190 \notes @emph{the melody}
1191 \lyricsto "" \new Lyrics \lyrics @{ @emph{the text} @}
1199 \context ChordNames \chords { r8 c2:sus4 f }
1200 \notes \relative c' {
1203 \times 2/3 { f g g } \times 2/3 { g4( a2) } }
1204 \new Lyrics \lyricsto "" \lyrics { I want to break free __ }
1206 \paper{ raggedright = ##t }
1211 A complete list of modifiers and other options for layout are in the
1212 reference manual section @ref{Chords}.
1214 @node Listening to output
1215 @section Listening to output
1220 MIDI (Musical Instrument Digital Interface) is a standard for
1221 connecting and recording digital instruments. A MIDI file is like a
1222 tape recording of a MIDI instrument. The @code{\midi} block causes LilyPond
1223 to create a MIDI file, so you can listen to the music you entered.
1224 It is great for checking the music: octaves that are off or
1225 accidentals that were mistyped stand out very much when listening to
1226 the musical transcription.
1228 @code{\midi} can be used in similarly to @code{\paper @{ @}}, for
1233 \midi @{ \tempo 4=72 @}
1238 Here, the tempo is specified using the @code{\tempo} command. In this
1239 case the tempo of quarter notes is set to 72 beats per minute. More
1240 information on auditory output is in the @ref{Sound} section in the
1248 Bibliographic information is entered in a separate block, the
1249 @code{\header} block. The name of the piece, its composer, etc. are
1250 entered as an assignment, within @code{\header @{ @dots{} @}}. For
1254 title = "Eight miniatures"
1255 composer = "Igor Stravinsky"
1256 tagline = "small is beautiful"
1259 \score @{ @dots{} @}
1262 @cindex bibliographic information
1265 @cindex Engraved by LilyPond
1267 When the file is processed by the @code{lilypond} wrapper script
1268 the title and composer specified are printed above the music. The
1269 `tagline' is a short line printed at bottom of the last page which
1270 normally says ``Engraved by LilyPond, version @dots{}''. In the
1271 example above it is replaced by the line ``small is
1272 beautiful.''@footnote{Nicely printed parts are good PR for us, so do
1273 us a favor, and leave the tagline if you can.}
1275 Normally, the @code{\header} is put at the top of the file. However,
1276 for a document that contains multiple pieces (e.g. an etude book, or
1277 an orchestral part with multiple movements), the header can be
1278 put in the @code{\score} block as follows; in this case, the name of
1279 each piece will be printed before each movement:
1282 @cindex Engraved by LilyPond
1283 @cindex signature line
1288 title = "Eight miniatures"
1289 composer = "Igor Stravinsky"
1290 tagline = "small is beautiful"
1294 \header @{ piece = "Adagio" @}
1297 \header @{ piece = "Menuetto" @}
1301 More information on titling can be found in @ref{Invoking lilypond}.
1304 @node Single staff polyphony
1305 @section Single staff polyphony
1308 @cindex multiple voices
1309 @cindex voices, more -- on a staff
1311 When different melodic lines are combined on a single staff they are
1312 printed as polyphonic voices: each voice has its own stems, slurs and
1313 beams, and the top voice has the stems up, while the bottom voice has
1316 Entering such parts is done by entering each voice as a sequence (with
1317 @code{@{ .. @}}), and combining those simultaneously, separating the
1318 voices with @code{\\}:
1321 << @{ a4 g2 f4~ f4 @} \\
1322 @{ r4 g4 f2 f4 @} >>
1324 @lilypond[relative=1]
1325 \context Staff << { a4 g2 f4~ f4 } \\
1329 For polyphonic music typesetting, spacer rests can also be convenient: these
1330 are rests that do not print. It is useful for filling up voices that
1331 temporarily do not play:
1333 << @{ a4 g2 f4~ f4 @} \\
1334 @{ s4 g4 f2 f4 @} >>
1336 @lilypond[relative=1]
1337 \context Staff << { a4 g2 f4~ f4 } \\
1341 Again, these expressions can be nested arbitrarily:
1347 << { a4 g2 f4~ f4 } \\
1350 << { \clef bass <c g>1 ~ <c g>4 } \\
1357 More features of polyphonic typesetting are in the notation manual
1361 @section Piano staves
1363 @cindex staff switch, manual
1364 @cindex cross staff voice, manual
1365 @cindex @code{\translator}
1367 Piano music is always typeset in two staves connected by a brace.
1368 Printing such a staff is similar to the polyphonic example in
1369 @ref{Combining music into compound expressions}:
1371 << \new Staff @{ @dots{} @}
1372 \new Staff @{ @dots{} @}
1375 but now this entire expression must be interpreted as a
1378 \new PianoStaff << \new Staff @dots{} >>
1381 Here is a full-fledged example:
1383 @lilypond[relative,fragment]
1385 << \new Staff { \time 2/4
1388 \clef bass c,, c' e c }
1392 More information on formatting piano music is in @ref{Piano music}.
1394 @node Setting variables
1395 @section Setting variables
1397 When the music is converted from notes to print it is interpreted
1398 in left-to-right order. This is similar to what happens when we read
1399 music. During this step context-sensitive information such as the
1400 accidentals to print, and where barlines must be placed, are stored in
1401 variables. These variables are called @emph{context properties}.
1402 The properties can also be manipulated from input files. Consider this input:
1404 \set Staff.autoBeaming = ##f
1408 It sets the property named @code{autoBeaming} in the current staff at
1409 this point in the music to @code{##f}, which means `false'. This
1410 property controls whether beams are printed automatically:
1412 @lilypond[relative=1,fragment,verbatim]
1414 \set Staff.autoBeaming = ##f
1419 LilyPond includes a built-in programming language, namely, a dialect
1420 of Scheme. The argument to @code{\set}, @code{##f}, is an
1421 expression in that language. The first hash-mark signals that a piece
1422 of Scheme code follows. The second hash character is part of the
1423 boolean value true (@code{#t}). Values of other types may be
1426 @item a string, enclosed in double quotes, for example,
1428 \set Staff.instrument = #"French Horn"
1430 @item a boolean: either @code{#t} or @code{#f}, for true and false
1433 \set autoBeaming = ##f
1434 \set Score.skipBars = ##t
1437 @item a number, such as
1439 \set Score.currentBarNumber = #20
1442 @item a symbol, which is introduced by a quote character, as in
1444 \set Staff.crescendoSpanner = #'dashed-line
1447 @item a pair, which is also introduced by a quote character, like in
1448 the following statements, which set properties to the pairs (-7.5, 6)
1449 and (3, 4) respectively:
1452 \set Staff.minimumVerticalExtent = #'(-7.5 . 6)
1453 \set Staff.timeSignatureFraction = #'(3 . 4)
1456 @item a list, which is also introduced by a quote character. In the
1457 following example, the @code{breakAlignOrder} property is set to a
1460 \set Score.breakAlignOrder =
1461 #'(left-edge time-signature key-signatures)
1467 There are many different properties. Not all of them are listed in
1468 this manual. However, the program reference lists them all in the
1469 section @internalsref{Context-properties}, and most properties are
1470 demonstrated in one of the
1472 @uref{../../../input/test/out-www/collated-files.html,tips-and-tricks}
1480 @node Fine tuning layout
1481 @section Fine tuning layout
1483 Sometimes it is necessary to change music layout by hand. When music
1484 is formatted, layout objects are created for each symbol. For
1485 example, every clef and every note head is represented by a layout
1486 object. These layout objects also carry variables, which we call
1487 @emph{layout properties}. By changing these variables from their
1488 values, we can alter the look of a formatted score:
1490 @lilypond[verbatim,relative]
1492 \override Stem #'thickness = #3.0
1497 In the example shown here, the layout property @code{thickness} (a
1498 symbol) is set to 3 in the @code{Stem} layout objects of the current
1499 As a result, the notes following @code{\override} have thicker
1502 For the most part, a manual override is needed only on a case by
1503 case basis and not for all subsequent instances of the altered
1504 property. To accomplish this, simply prefix @code{\once} to the
1505 @code{\override} statement and the override will apply only once,
1506 immediately reverting to its default setting, i.e.
1509 \once \override Stem #'thickness = #3.0
1514 \once \override Stem #'thickness = #3.0
1519 Some overrides are so common that predefined commands are provided as
1520 a short cut. For example, @code{\slurUp} and @code{\stemDown}. These
1521 commands are described in
1525 @ref{Notation manual}, under the sections for slurs and stems
1528 The exact tuning possibilities for each type of layout object are
1529 documented in the program reference of the respective
1530 object. However, many layout objects share properties, which can be
1531 used to apply generic tweaks. We mention a couple of these:
1534 @item The @code{extra-offset} property, which
1535 @cindex @code{extra-offset}
1536 has a pair of numbers as value, moves around objects in the printout.
1537 The first number controls left-right movement; a positive number will
1538 move the object to the right. The second number controls up-down
1539 movement; a positive number will move it higher. The units of these
1540 offsets are staff-spaces. The @code{extra-offset} property is a
1541 low-level feature: the formatting engine is completely oblivious to
1544 In the following example, the second fingering is moved a little to
1545 the left, and 1.8 staff space downwards:
1547 @cindex setting object properties
1549 @lilypond[relative=1,verbatim]
1552 \once \override Fingering
1553 #'extra-offset = #'(-0.3 . -1.8)
1558 Setting the @code{transparent} property will cause an object to be printed
1559 in `invisible ink': the object is not printed, but all its other
1560 behavior is retained. The object still takes up space, it takes part in
1561 collisions, and slurs, and ties and beams can be attached to it.
1563 @cindex transparent objects
1564 @cindex removing objects
1565 @cindex invisible objects
1566 The following example demonstrates how to connect different voices
1567 using ties. Normally, ties only connect two notes in the same
1568 voice. By introducing a tie in a different voice, and blanking a stem
1569 in that voice, the tie appears to cross voices:
1571 @lilypond[fragment,relative=1,verbatim]
1573 \once \override Stem #'transparent = ##t
1581 The @code{padding} property for objects with
1582 @cindex @code{padding}
1583 @code{side-position-interface} can be set to increase distance between
1584 symbols that are printed above or below notes. We only give an
1585 example; a more elaborate explanation is in @ref{Constructing a
1588 @lilypond[relative=1,verbatim]
1590 \override Script #'padding = #3
1596 More specific overrides are also possible. The notation manual
1597 discusses in depth how to figure out these statements for yourself, in
1598 @ref{Tuning output}.
1600 @node Organizing larger pieces
1601 @section Organizing larger pieces
1603 When all of the elements discussed earlier are combined to produce
1604 larger files, the @code{\score} blocks get a lot bigger, because the
1605 music expressions are longer, and, in the case of polyphonic and/or
1606 orchestral pieces, more deeply nested. Such large expressions can
1609 By using variables, also known as identifiers, it is possible to break
1610 up complex music expressions. An identifier is assigned as follows:
1613 namedMusic = \notes @{ @dots{}
1616 The contents of the music expression @code{namedMusic}, can be used
1617 later by preceding the name with a backslash, i.e. @code{\namedMusic}.
1618 In the next example, a two note motive is repeated two times by using
1619 variable substitution:
1621 @lilypond[raggedright,verbatim]
1630 The name of an identifier should have alphabetic characters only;
1631 no numbers, underscores or dashes. The assignment should be outside of
1632 the @code{\score} block.
1634 It is possible to use variables for many other types of objects in the
1639 aFivePaper = \paper @{ paperheight = 21.0 \cm @}
1641 Depending on its contents, the identifier can be used in different
1642 places. The following example uses the above variables:
1645 \notes @{ c4^\name @}
1653 More information on the possible uses of identifiers is in the
1654 technical manual, in @ref{Scheme datatypes}.
1657 @node An orchestral part
1658 @section An orchestral part
1660 In orchestral music, all notes are printed twice: both in a part for
1661 the musicians, and in a full score for the conductor. Identifiers can
1662 be used to avoid double work: the music is entered once, and stored in
1663 a variable. The contents of that variable is then used to generate
1664 both the part and the score.
1666 It is convenient to define the notes in a special file, for example,
1667 suppose that the @file{horn-music.ly} contains the following part of a
1670 hornNotes = \notes \relative c @{
1676 Then, an individual part is made by putting the following in a file:
1678 \include "horn-music.lyinc"
1680 instrument = "Horn in F"
1683 \notes \transpose f c' \hornNotes
1686 The @code{\include} command substitutes the contents of the file at
1687 this position in the file, so that @code{hornNotes} is defined
1688 afterwards. The code @code{\transpose f c'} indicates that the
1689 argument, being @code{\hornNotes}, should be transposed by a fifth
1690 downwards: sounding @code{f} is denoted by notated @code{c'}, which
1691 corresponds with tuning of a normal French Horn in F. The
1692 transposition can be seen in the following output:
1694 @lilypond[raggedright]
1696 \notes \transpose f c' \notes \relative c {
1703 In ensemble pieces, one of the voices often does not play for many
1704 measures. This is denoted by a special rest, the multi-measure
1705 rest. It is entered with a capital R followed by a duration (1
1706 for a whole note, 2 for a half note, etc.) By multiplying the
1707 duration, longer rests can be constructed. For example, this rest
1708 takes 3 measures in 2/4 time:
1713 When printing the part, the following @code{skipBars} property must be
1714 set to true, to prevent the rest from being expanded to three one bar
1717 \set Score.skipBars = ##t
1719 Prepending the rest and the property setting above, leads to the
1722 @lilypond[raggedright]
1723 \score {\notes { \transpose f c' \relative c { \time 2/4
1724 \set Score.skipBars = ##t
1726 r4 f8 a cis4 f e d } }}
1729 The score is made by combining all of the music in a @code{\score}
1730 block, assuming that the other voice is in @code{bassoonNotes}, in the
1731 file @file{bassoon-music.ly}:
1733 \include "bassoon-music.lyinc"
1734 \include "horn-music.lyinc"
1738 \new Staff \hornNotes
1739 \new Staff \bassoonNotes
1743 This would lead to the simple score depicted below:
1745 @lilypond[raggedright]
1747 \notes \relative c \simultaneous {
1748 \new Staff { \time 2/4
1750 r4 f8 a cis4 f e d }
1751 \new Staff { \clef bass
1752 r4 d,8 f | gis4 c | b bes |
1753 a8 e f4 | g d | gis f }
1757 More in-depth information on preparing parts and scores is in the
1758 notation manual, in @ref{Orchestral music}.
1761 @node Integrating text and music
1762 @section Integrating text and music
1764 @cindex La@TeX{}, music in
1765 @cindex HTML, music in
1766 @cindex Texinfo, music in
1768 Sometimes you might want to use music examples in a text that you are
1769 writing (for example, a musicological treatise, a songbook, or (like us)
1770 the LilyPond manual). You can make such texts by hand, simply by
1771 importing a PostScript figure into your word processor. However,
1772 there is an automated procedure to reduce the amount of work.
1774 If you use HTML, La@TeX{}, or Texinfo, you can mix text and LilyPond
1775 code. A script called @code{lilypond-book} will extract the music
1776 fragments, run LilyPond on them, and put back the resulting notation.
1777 This program is fully described in @ref{lilypond-book manual}. Here
1778 we show a small example. The example also contains explanatory text,
1779 so we will not comment on it further:
1782 \documentclass[a4paper]@{article@}
1785 In a lilypond-book document, you can freely mix music and text. For
1788 \score @{ \notes \relative c' @{
1789 c2 g'2 \times 2/3 @{ f8 e d @} c'2 g4
1793 If you have no \verb+\score+ block in the fragment,
1794 \texttt@{lilypond-book@} will supply one:
1800 In the example you see here two things happened: a
1801 \verb+\score+ block was added, and the line width was set to natural
1802 length. You can specify options by putting them in brackets:
1804 \begin[staffsize=26,verbatim]@{lilypond@}
1808 If you want to include large examples in the text it is more
1809 convenient to put it in a separate file:
1811 \lilypondfile@{screech-boink.ly@}
1816 Under Unix, you can view the results as follows:
1820 $ lilypond-book --output=out/ lilybook.tex
1821 lilypond-book (GNU LilyPond) 2.1.19
1822 Reading `input/tutorial/lilybook.tex'
1823 Reading `input/screech-boink.ly'
1824 @var{lots of stuff deleted}
1825 Writing `out/lilybook.latex'
1827 $ latex lilybook.latex
1828 @var{lots of stuff deleted}
1832 To convert the file into a nice PDF document, run the following
1835 $ dvips -Ppdf -u +lilypond lilybook
1836 $ ps2pdf lilybook.ps
1840 Running lilypond-book and running latex creates a lot of temporary
1841 files. You would not want those to clutter up your working
1842 directory. The @code{outdir} option to lilypond-book creates the
1843 temporary files in a separate subdirectory @file{out}.
1845 The result looks more or less like this:
1849 In a lilypond-book document, you can freely mix music and text. For
1853 \notes \relative c' {
1854 c2 g'2 \times 2/3 { f8 e d } c'2 g4
1862 If you have no @code{\score} block in the fragment,
1863 @code{lilypond-book} will supply one:
1869 In the example you see here, two things happened: a
1870 @code{score} block was added, and the line width was set to natural
1871 length. You can specify options by putting them in brackets:
1873 @lilypond[staffsize=26,verbatim]
1877 If you want to include large examples in the text, it is more
1878 convenient to put it in a separate file:
1880 @lilypondfile{screech-boink.ly}