1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @c This file is part of lilypond.tely
4 @c A menu is needed before every deeper *section nesting of @node's; run
5 @c M-x texinfo-all-menus-update
6 @c to automatically fill in these menus before saving changes
11 This section deals with general lilypond issues, rather than
16 * A single music expression::
17 * Titles and headers::
20 * Multiple movements::
28 The main format of input for LilyPond are text files. By convention,
29 these files end with ``@code{.ly}''.
32 * File structure (introduction)::
34 * Including LilyPond files::
39 @node File structure (introduction)
40 @subsection File structure (introduction)
42 A basic example of a lilypond input file is
47 @{ @} % this is a single music expression;
48 % all the music goes in here.
56 There are many variations of this basic pattern, but this
57 example serves as a useful starting place.
59 The major part of this manual is concerned with entering various
60 forms of music in LilyPond. However, many music expressions are not
61 valid input on their own, for example, a @code{.ly} file containing
68 will result in a parsing error. Instead, music should be inside other
69 expressions, which may be put in a file by themselves. Such
70 expressions are called toplevel expressions. The next section enumerates
75 @subsection File structure
77 A @code{.ly} file contains any number of toplevel expressions, where a
78 toplevel expression is one of the following
82 An output definition, such as @code{\paper}, @code{\midi}, and
83 @code{\layout}. Such a definition at the toplevel changes the default
84 settings for the block entered.
87 A direct scheme expression, such as
88 @code{#(set-default-paper-size "a7" 'landscape)} or
89 @code{#(ly:set-option 'point-and-click #f)}.
92 A @code{\header} block. This sets the global header block. This
93 is the block containing the definitions for book-wide settings, like
97 An @code{\addquote} statement. See @ref{Quoting other voices}
101 A @code{\score} block. This score will be collected with other
102 toplevel scores, and combined as a single @code{\book}.
104 This behavior can be changed by setting the variable
105 @code{toplevel-score-handler} at toplevel. The default handler is
106 defined in the init file @file{scm/@/lily@/.scm}.
108 The @code{\score} must begin with a music expression, and may
109 contain only one music expression.
112 A @code{\book} block logically combines multiple movements
113 (i.e., multiple @code{\score} blocks) in one document. If there are
114 a number of @code{\scores}, a single output file will be created
115 in which all movements are concatenated.
117 This behavior can be changed by setting the variable
118 @code{toplevel-book-handler} at toplevel. The default handler is
119 defined in the init file @file{scm/@/lily@/.scm}.
122 A compound music expression, such as
127 This will add the piece in a @code{\score} and format it in a
128 single book together with all other toplevel @code{\score}s and music
129 expressions. In other words, a file containing only the above
130 music expression will be translated into
146 This behavior can be changed by setting the variable
147 @code{toplevel-music-handler} at toplevel. The default handler is
148 defined in the init file @file{scm/@/lily@/.scm}.
151 A markup text, a verse for example
154 2. The first line verse two.
158 Markup texts are rendered above, between or below the scores or music
159 expressions, wherever they appear.
162 An identifier, such as
167 This can be used later on in the file by entering @code{\foo}. The
168 name of an identifier should have alphabetic characters only; no
169 numbers, underscores or dashes.
173 The following example shows three things that may be entered at
178 % movements are non-justified by default
190 At any point in a file, any of the following lexical instructions can
194 @item @code{\version}
195 @item @code{\include}
196 @item @code{\renameinput}
200 @node Including LilyPond files
201 @subsection Including LilyPond files
203 @cindex @code{\include}
204 @cindex including files
206 A large project may be split up into separate files. To refer to another
210 \include "otherfile.ly"
213 The line @code{\include "file.ly"} is equivalent to pasting the contents
214 of file.ly into the current file at the place where you have the
215 \include. For example, for a large project you might write separate files
216 for each instrument part and create a ``full score'' file which brings
217 together the individual instrument files.
219 The initialization of LilyPond is done in a number of files that are
220 included by default when you start the program, normally transparent to the
221 user. Run lilypond --verbose to see a list of paths and files that Lily
224 Files placed in directory @file{PATH/TO/share/lilypond/VERSION/ly/} (where
225 VERSION is in the form ``2.6.1'') are on the path and available to
226 @code{\include}. Files in the
227 current working directory are available to \include, but a file of the same
228 name in LilyPond's installation takes precedence. Files are
229 available to \include from directories in the search path specified as an
230 option when invoking @code{lilypond --include=DIR} which adds DIR to the search
233 The @code{\include} statement can use full path information, but with the Unix
234 convention @code{"/"} rather than the DOS/Windows @code{"\"}. For example,
235 if @file{stuff.ly} is located one directory higher than the current working
239 \include "../stuff.ly"
244 @subsection Text encoding
246 LilyPond uses the Pango library to format multi-lingual texts, and
247 does not perform any input-encoding conversions. This means that any
248 text, be it title, lyric text, or musical instruction containing
249 non-ASCII characters, must be utf-8. The easiest way to enter such text is
250 by using a Unicode-aware editor and saving the file with utf-8 encoding. Most
251 popular modern editors have utf-8 support, for example, vim, Emacs,
254 Depending on the fonts installed, the following fragment shows Hebrew
261 @lilypondfile[fontload]{utf-8.ly}
263 The @TeX{} backend does not handle encoding specially at all. Strings
264 in the input are put in the output as-is. Extents of text items in the
265 @TeX{} backend, are determined by reading a file created via the
266 @file{texstr} backend,
269 lilypond -b texstr input/les-nereides.ly
270 latex les-nereides.texstr
273 The last command produces @file{les-nereides.textmetrics}, which is
274 read when you execute
277 lilypond -b tex input/les-nereides.ly
280 Both @file{les-nereides.texstr} and @file{les-nereides.tex} need
281 suitable LaTeX wrappers to load appropriate La@TeX{} packages for
282 interpreting non-ASCII strings.
284 To use a Unicode escape sequence, use
287 #(ly:export (ly:wide-char->utf-8 #x2014))
293 @inputfileref{input/regression,utf-8.ly}
297 @node A single music expression
298 @section A single music expression
300 A @code{\score} must contain a single music expression. However,
301 this music expression may be of any size. Recall that music
302 expressions may be included inside other expressions to form
303 larger expressions. All of these examples are single music
304 expressions; note the curly braces @{ @} or angle brackets <<
305 >> at the beginning and ending of the music.
311 @lilypond[ragged-right,verbatim,quote]
318 @lilypond[ragged-right,verbatim,quote]
320 \new Staff { c'4 c' c' c' }
321 \new Staff { d'4 d' d' d' }
329 \new Staff @{ \flute @}
330 \new Staff @{ \oboe @}
333 \new Staff @{ \violinI @}
334 \new Staff @{ \violinII @}
341 @node Titles and headers
342 @section Titles and headers
344 Almost all printed music includes a title and the composer's name;
345 some pieces include a lot more information.
353 @node Creating titles
354 @subsection Creating titles
356 Titles are created for each @code{\score} block, and over a
359 The contents of the titles are taken from the @code{\header} blocks.
360 The header block for a book supports the following
363 The dedicatee of the music, centered at the top of the first page.
366 The title of the music, centered just below the dedication.
369 Subtitle, centered below the title.
372 Subsubtitle, centered below the subtitle.
375 Name of the poet, flush-left below the subtitle.
378 Name of the composer, flush-right below the subtitle.
381 Meter string, flush-left below the poet.
384 Name of the opus, flush-right below the composer.
387 Name of the arranger, flush-right below the opus.
390 Name of the instrument, centered below the arranger. Also
391 centered at the top of pages (other than the first page).
394 Name of the piece, flush-left below the instrument.
396 @cindex page breaks, forcing
398 This forces the title to start on a new page (set to ##t or ##f).
401 Copyright notice, centered at the bottom of the first page. To
402 insert the copyright symbol, see @ref{Text encoding}.
405 Centered at the bottom of the last page.
409 Here is a demonstration of the fields available. Note that you
410 may use any @ref{Text markup} commands in the header.
412 @lilypond[quote,verbatim,line-width=11.0\cm]
415 paper-height = 10.0\cm
420 dedication = "dedicated to me"
421 title = \markup \center-align { "Title first line" "Title second line, longer" }
422 subtitle = "the subtitle,"
423 subsubtitle = #(string-append "subsubtitle LilyPond version " (lilypond-version))
425 composer = \markup \center-align { "composer" \small "(1847-1973)" }
426 texttranslator = "Text Translator"
427 meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge "r" }
428 arranger = \markup { \fontsize #8.5 "a" \fontsize #2.5 "r" \fontsize #-2.5 "r" \fontsize #-5.3 "a" \fontsize #7.5 "nger" }
429 instrument = \markup \bold \italic "instrument"
453 As demonstrated before, you can use multiple @code{\header} blocks.
454 When same fields appear in different blocks, the latter is used.
455 Here is a short example.
459 composer = "Composer"
467 piece = "New piece" % overwrite previous one
472 If you define the @code{\header} inside the @code{\score} block, then
473 normally only the @code{piece} and @code{opus} headers will be printed.
474 Note that the music expression must come before the @code{\header}.
476 @lilypond[quote,verbatim,line-width=11.0\cm]
480 title = "title" % not printed
487 @cindex @code{printallheaders}
489 You may change this behavior (and print all the headers when defining
490 @code{\header} inside @code{\score}) by using
500 @subsection Custom titles
502 A more advanced option is to change the definitions of the following
503 variables in the @code{\paper} block. The init file
504 @file{ly/titling-init.ly} lists the default layout.
507 @cindex @code{bookTitleMarkup}
508 @item bookTitleMarkup
509 This is the title put over an entire @code{\book} block. Typically,
510 it has the composer and the title of the piece
512 @cindex @code{scoreTitleMarkup}
513 @item scoreTitleMarkup
514 This is the title put over a @code{\score} block within a
515 @code{\book}. Typically, it has the name of the movement (@code{piece}
518 @cindex @code{oddHeaderMarkup}
519 @item oddHeaderMarkup
520 This is the page header for odd-numbered pages.
522 @cindex @code{evenHeaderMarkup}
523 @item evenHeaderMarkup
524 This is the page header for even-numbered pages. If unspecified,
525 the odd header is used instead.
527 By default, headers are defined such that the page number is on the
528 outside edge, and the instrument is centered.
530 @cindex @code{oddFooterMarkup}
531 @item oddFooterMarkup
532 This is the page footer for odd-numbered pages.
534 @cindex @code{evenFotterMarkup}
535 @item evenFooterMarkup
536 This is the page footer for even-numbered pages. If unspecified,
537 the odd header is used instead.
539 By default, the footer has the copyright notice on the first, and
540 the tagline on the last page.
550 The following definition will put the title flush left, and the
551 composer flush right on a single line.
555 bookTitleMarkup = \markup {
557 \fromproperty #'header:title
558 \fromproperty #'header:composer
567 The @code{breakbefore=##t} header requires that there is a @code{piece} header as well. It may be used as a normal header, or left blank (@code{=""}) as in the example above, but it must be present.
571 @node Paper and pages
572 @section Paper and pages
574 This section deals with the display of music on physical paper.
583 @subsection Paper size
587 @cindex @code{papersize}
589 To change the paper size, there are two commands,
591 #(set-default-paper-size "a4")
593 #(set-paper-size "a4")
597 The first command sets the size of all pages. The second command sets the size
598 of the pages that the @code{\paper} block applies to -- if the @code{\paper}
599 block is at the top of the file, then it will apply to all pages. If the
600 @code{\paper} block is inside a @code{\book}, then the paper size will only
603 Support for the following paper sizes are included by default,
604 @code{a6}, @code{a5}, @code{a4}, @code{a3}, @code{legal}, @code{letter},
605 @code{11x17} (also known as tabloid).
607 Extra sizes may be added by editing the definition for
608 @code{paper-alist} in the initialization file @file{scm/paper.scm}.
613 If the symbol @code{landscape} is supplied as an argument to
614 @code{set-default-paper-size}, the pages will be rotated by 90 degrees,
615 and wider line widths will be set correspondingly.
618 #(set-default-paper-size "a6" 'landscape)
621 Setting the paper size will adjust a number of @code{\paper} variables
622 (such as margins). To use a particular paper size with altered
623 @code{\paper} variables, set the paper size before setting the variables.
626 @node Page formatting
627 @subsection Page formatting
629 @cindex page formatting
634 LilyPond will do page layout, set margins, and add headers and
635 footers to each page.
637 The default layout responds to the following settings in the
640 @cindex @code{\paper}
644 @cindex @code{first-page-number}
645 @item first-page-number
646 The value of the page number of the first page. Default is@tie{}1.
648 @cindex @code{printfirst-page-number}
649 @item printfirst-page-number
650 If set to true, will print the page number in the first page. Default is
653 @cindex @code{print-page-number}
654 @item print-page-number
655 If set to false, page numbers will not be printed.
657 @cindex @code{paper-width}
659 The width of the page.
661 @cindex @code{paper-height}
663 The height of the page.
665 @cindex @code{top-margin}
667 Margin between header and top of the page.
669 @cindex @code{bottom-margin}
671 Margin between footer and bottom of the page.
673 @cindex @code{left-margin}
675 Margin between the left side of the page and the beginning of the music.
677 @cindex @code{line-width}
679 The length of the systems.
681 @cindex @code{head-separation}
682 @item head-separation
683 Distance between the top-most music system and the page header.
685 @cindex @code{foot-separation}
686 @item foot-separation
687 Distance between the bottom-most music system and the page footer.
689 @cindex @code{page-top-space}
690 Distance from the top of the printable area to the center of the first
691 staff. This only works for staves which are vertically small. Big staves
692 are set with the top of their bounding box aligned to the top of the
695 @cindex @code{ragged-bottom}
697 If set to true, systems will not be spread vertically across the page. This
698 does not affect the last page.
700 This should be set to true for pieces that have only two or three
701 systems per page, for example orchestral scores.
703 @cindex @code{ragged-last-bottom}
704 @item ragged-last-bottom
705 If set to false, systems will be spread vertically to fill the last page.
707 Pieces that amply fill two pages or more should have this set to
710 @cindex @code{system-count}
712 This variable, if set, specifies into how many lines a score should be
715 @cindex @code{between-system-space}
716 @item between-system-space
717 This dimensions determines the distance between systems. It is the
718 ideal distance between the center of the bottom staff of one system
719 and the center of the top staff of the next system.
721 Increasing this will provide a more even appearance of the page at the
722 cost of using more vertical space.
724 @cindex @code{between-system-padding}
725 @item between-system-padding
726 This dimension is the minimum amount of white space that will always
727 be present between the bottom-most symbol of one system, and the
728 top-most of the next system.
730 Increasing this will put systems whose bounding boxes almost touch
734 @cindex @code{horizontal-shift}
735 @item horizontal-shift
736 All systems (including titles and system separators) are shifted by
737 this amount to the right. Page markup, such as headers and footers are
738 not affected by this. The purpose of this variable is to make space
739 for instrument names at the left.
741 @cindex @code{after-title-space}
742 @item after-title-space
743 Amount of space between the title and the first system.
745 @cindex @code{after-title-space}
746 @item before-title-space
747 Amount of space between the last system of the previous piece and the
750 @cindex @code{between-title-space}
751 @item between-title-space
752 Amount of space between consecutive titles (e.g., the title of the
753 book and the title of a piece).
755 @cindex @code{printallheaders}
756 @item printallheaders
757 Setting this to #t will print all headers for each \score in a
758 \book. Normally only the piece and opus \headers are printed.
760 @cindex @code{systemSeparatorMarkup}
761 @item systemSeparatorMarkup
762 This contains a markup object, which will be inserted between
763 systems. This is often used for orchestral scores.
765 The markup command @code{\slashSeparator} is provided as a sensible
768 @lilypond[ragged-right]
771 \relative { c1 \break c1 }
774 systemSeparatorMarkup = \slashSeparator
790 ragged-last-bottom = ##t
794 You can also define these values in Scheme. In that case @code{mm},
795 @code{in}, @code{pt}, and @code{cm} are variables defined in
796 @file{paper-defaults.ly} with values in millimeters. That's why the
797 value has to be multiplied in the example
801 #(define bottom-margin (* 2 cm))
808 The default footer is empty, except for the first page, where the
809 @code{copyright} field from @code{\header} is inserted, and the last
810 page, where @code{tagline} from @code{\header} is added. The default
811 tagline is ``Music engraving by LilyPond (@var{version})''.@footnote{Nicely
812 printed parts are good PR for us, so please leave the tagline if you
815 The header and footer are created by the functions @code{make-footer}
816 and @code{make-header}, defined in @code{\paper}. The default
817 implementations are in @file{ly/@/paper@/-defaults@/.ly} and
818 @file{ly/@/titling@/-init@/.ly}.
820 The page layout itself is done by two functions in the
821 @code{\paper} block, @code{page-music-height} and
822 @code{page-make-stencil}. The former tells the line-breaking algorithm
823 how much space can be spent on a page, the latter creates the actual
824 page given the system to put on it.
829 The option right-margin is defined but doesn't set the right margin
830 yet. The value for the right margin has to be defined adjusting the
831 values of @code{left-margin} and @code{line-width}.
833 The default page header puts the page number and the @code{instrument}
834 field from the @code{\header} block on a line.
836 The titles (from the @code{\header@{@}} section) are treated as a
837 system, so @code{ragged-bottom} and @code{ragged-last-bottom} will
838 add space between the titles and the first system of the score.
842 @section Music layout
844 This section deals with the manner in which the music is printed
845 within the boundaries defined by the @code{\paper} block.
847 The global paper layout is determined by three factors: the page layout, the
848 line breaks, and the spacing. These all influence each other. The
849 choice of spacing determines how densely each system of music is set.
850 This influences where line breaks are chosen, and thus ultimately, how
851 many pages a piece of music takes.
853 Globally spoken, this procedure happens in three steps: first,
854 flexible distances (``springs'') are chosen, based on durations. All
855 possible line breaking combinations are tried, and the one with the
856 best results -- a layout that has uniform density and requires as
857 little stretching or cramping as possible -- is chosen.
859 After spacing and linebreaking, the systems are distributed across
860 pages, taking into account the size of the page, and the size of the
864 * Setting global staff size::
865 * Selecting notation font size::
868 * Vertical spacing of piano staves::
869 * Horizontal spacing::
876 @node Setting global staff size
877 @subsection Setting global staff size
879 @cindex font size, setting
880 @cindex staff size, setting
881 @cindex @code{layout} file
883 To set the global staff size, use @code{set-global-staff-size}.
886 #(set-global-staff-size 14)
890 This sets the global default size to 14pt staff height and scales all
893 The Feta font provides musical symbols at eight different
894 sizes. Each font is tuned for a different staff size: at a smaller size
895 the font becomes heavier, to match the relatively heavier staff lines.
896 The recommended font sizes are listed in the following table:
899 @multitable @columnfractions .15 .2 .22 .2
902 @tab @b{staff height (pt)}
903 @tab @b{staff height (mm)}
945 @c modern rental material?
950 These fonts are available in any sizes. The context property
951 @code{fontSize} and the layout property @code{staff-space} (in
952 @internalsref{StaffSymbol}) can be used to tune the size for individual
953 staves. The sizes of individual staves are relative to the global size.
961 This manual: @ref{Selecting notation font size}.
964 @node Selecting notation font size
965 @subsection Selecting notation font size
967 The easiest method of setting the font size of any context, is by
968 setting the @code{fontSize} property.
970 @lilypond[quote,fragment,relative=1,verbatim]
979 It does not change the size of variable symbols, such as beams or
982 Internally, the @code{fontSize} context property will cause the
983 @code{font-size} property to be set in all layout objects. The value
984 of @code{font-size} is a number indicating the size relative to the
985 standard size for the current staff height. Each step up is an
986 increase of approximately 12% of the font size. Six steps is exactly a
987 factor two. The Scheme function @code{magstep} converts a
988 @code{font-size} number to a scaling factor.
990 @lilypond[quote,fragment,relative=1,verbatim]
992 \override NoteHead #'font-size = #-4
994 \override NoteHead #'font-size = #3
998 LilyPond has fonts in different design sizes. The music fonts for
999 smaller sizes are chubbier, while the text fonts are relatively wider.
1000 Font size changes are achieved by scaling the design size that is
1001 closest to the desired size. The standard font size (for
1002 @code{font-size} equals 0), depends on the standard staff height. For
1003 a 20pt staff, a 10pt font is selected.
1005 The @code{font-size} property can only be set on layout objects that
1006 use fonts. These are the ones supporting the
1007 @internalsref{font-interface} layout interface.
1011 The following commands set @code{fontSize} for the current voice:
1013 @cindex @code{\tiny}
1015 @cindex @code{\small}
1017 @cindex @code{\normalsize}
1022 @subsection Score layout
1024 @cindex @code{\layout}
1026 While @code{\paper} contains settings that relate to the page formatting
1027 of the whole document, @code{\layout} contains settings for score-specific
1034 \override VerticalAxisGroup #'minimum-Y-extent = #'(-6 . 6)
1037 \override TextScript #'padding = #1.0
1038 \override Glissando #'thickness = #3
1046 This manual: @ref{Changing context default settings}
1049 @node Vertical spacing
1050 @subsection Vertical spacing
1052 @cindex vertical spacing
1053 @cindex distance between staves
1054 @cindex staff distance
1055 @cindex between staves, distance
1056 @cindex staves per page
1057 @cindex space between staves
1059 The height of each system is determined automatically. To prevent
1060 systems from bumping into each other, some minimum distances are set.
1061 By changing these, you can put staves closer together, and thus put
1062 more systems onto one page.
1064 Normally staves are stacked vertically. To make staves maintain a
1065 distance, their vertical size is padded. This is done with the
1066 property @code{minimum-Y-extent}. When applied to a
1067 @internalsref{VerticalAxisGroup}, it controls the size of a horizontal
1068 line, such as a staff or a line of lyrics. @code{minimum-Y-extent}
1069 takes a pair of numbers, so
1070 if you want to make it smaller than its default @code{#'(-4 . 4)}
1074 \override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
1078 This sets the vertical size of the current staff to 3 staff spaces on
1079 either side of the center staff line. The value @code{(-3 . 3)} is
1080 interpreted as an interval, where the center line is the 0, so the
1081 first number is generally negative. The staff can be made larger at
1082 the bottom by setting it to @code{(-6 . 4)}.
1084 The spacing of staves in a system may also be tuned per system. This is
1085 done with the command
1089 #"Score.NonMusicalPaperColumn"
1090 #'line-break-system-details
1091 #'((alignment-extra-space . 15))
1095 at the line break before the system to be changed. The distance
1096 @code{15} is distributed over all staves that have a fixed distance
1097 alignment. For example,
1099 @lilypond[ragged-right, fragment, relative=2, staffsize=13]
1105 #"Score.NonMusicalPaperColumn"
1106 #'line-break-system-details
1107 #'((fixed-alignment-extra-space . 15))
1115 The distance for @code{alignment-extra-space} may also be negative.
1118 To change the amount of space between systems, use
1119 @code{between-system-space}. A score with only one staff is still
1120 considered to have systems, so setting @code{between-system-space} will
1121 be much more useful than changing @code{minimum-Y-extent} of a Staff
1126 between-system-space = 10\mm
1130 If you simply want to tell LilyPond ``fit as much as possible onto
1131 these pages, then expand to fill any available space on the pages,''
1132 then use the following
1136 between-system-padding = #1
1138 ragged-last-bottom=##f
1143 @c let's wait for a some comments before writing more.
1145 The vertical spacing on a page can also be changed for each system individually.
1146 Some examples are found in the example file
1147 @inputfileref{input/regression/,page-spacing.ly}.
1149 When setting @code{annotate-spacing} in the @code{\paper} block LilyPond
1150 will graphically indicate the dimensions of properties that may be set
1154 #(set-default-paper-size "a7" 'landscape)
1155 \paper { annotate-spacing = ##t }
1160 All units dimensions are measured in staff spaces. The pairs
1161 (@var{a},@var{b}) are intervals, where @var{a} is the lower edge and
1162 @var{b} the upper edge of the interval.
1166 Internals: Vertical alignment of staves is handled by the
1167 @internalsref{VerticalAlignment} object. The context parameters
1168 specifying the vertical extent are described in connection with
1169 the @internalsref{Axis_group_engraver}.
1171 Example files: @inputfileref{input/regression/,page-spacing.ly},
1172 @inputfileref{input/regression/,alignment-vertical-spacing.ly}.
1177 @node Vertical spacing of piano staves
1178 @subsection Vertical spacing of piano staves
1180 The distance between staves of a @internalsref{PianoStaff} cannot be
1181 computed during formatting. Rather, to make cross-staff beaming work
1182 correctly, that distance has to be fixed beforehand.
1184 The distance of staves in a @code{PianoStaff} is set with the
1185 @code{forced-distance} property of the
1186 @internalsref{VerticalAlignment} object, created in
1187 @internalsref{PianoStaff}.
1189 It can be adjusted as follows
1191 \new PianoStaff \with @{
1192 \override VerticalAlignment #'forced-distance = #7
1199 This would bring the staves together at a distance of 7 staff spaces,
1200 measured from the center line of each staff.
1202 The difference is demonstrated in the following example,
1203 @lilypond[quote,verbatim]
1205 \new PianoStaff \with {
1206 \override VerticalAlignment #'forced-distance = #7
1219 It is also possible to change the distance between for each system
1220 individually. This is done by including the command
1224 #"Score.NonMusicalPaperColumn"
1225 #'line-break-system-details
1226 #'((fixed-alignment-extra-space . 15))
1230 at the line break before the system to be changed. The distance
1231 @code{15} is distributed over all staves that have a fixed distance
1232 alignment. For example,
1234 @lilypond[ragged-right, fragment, relative=2, staffsize=13]
1240 #"Score.NonMusicalPaperColumn"
1241 #'line-break-system-details
1242 #'((fixed-alignment-extra-space . 15))
1250 The distance for @code{fixed-alignment-extra-space} may also be
1255 Example files: @inputfileref{input/regression/,alignment-vertical-spacing.ly}.
1257 @node Horizontal spacing
1258 @subsection Horizontal Spacing
1260 The spacing engine translates differences in durations into stretchable
1261 distances (``springs'') of differring lengths. Longer durations get
1262 more space, shorter durations get less. The shortest durations get a
1263 fixed amount of space (which is controlled by
1264 @code{shortest-duration-space} in the @internalsref{SpacingSpanner}
1265 object). The longer the duration, the more space it gets: doubling a
1266 duration adds a fixed amount (this amount is controlled by
1267 @code{spacing-increment}) of space to the note.
1269 For example, the following piece contains lots of half, quarter, and
1270 8th notes; the eighth note is followed by 1 note head width (NHW).
1271 The quarter note is followed by 2 NHW, the half by 3 NHW, etc.
1273 @lilypond[quote,fragment,verbatim,relative=1]
1274 c2 c4. c8 c4. c8 c4. c8 c8
1278 Normally, @code{spacing-increment} is set to 1.2 staff space, which is
1279 approximately the width of a note head, and
1280 @code{shortest-duration-space} is set to 2.0, meaning that the
1281 shortest note gets 2.4 staff space (2.0 times the
1282 @code{spacing-increment}) of horizontal space. This space is counted
1283 from the left edge of the symbol, so the shortest notes are generally
1284 followed by one NHW of space.
1286 If one would follow the above procedure exactly, then adding a single
1287 32nd note to a score that uses 8th and 16th notes, would widen up the
1288 entire score a lot. The shortest note is no longer a 16th, but a 32nd,
1289 thus adding 1 NHW to every note. To prevent this, the shortest
1290 duration for spacing is not the shortest note in the score, but rather
1291 the one which occurs most frequently.
1294 The most common shortest duration is determined as follows: in every
1295 measure, the shortest duration is determined. The most common shortest
1296 duration is taken as the basis for the spacing, with the stipulation
1297 that this shortest duration should always be equal to or shorter than
1298 an 8th note. The shortest duration is printed when you run
1299 @code{lilypond} with the @code{--verbose} option.
1301 These durations may also be customized. If you set the
1302 @code{common-shortest-duration} in @internalsref{SpacingSpanner}, then
1303 this sets the base duration for spacing. The maximum duration for this
1304 base (normally an 8th), is set through @code{base-shortest-duration}.
1306 @cindex @code{common-shortest-duration}
1307 @cindex @code{base-shortest-duration}
1308 @cindex @code{stem-spacing-correction}
1309 @cindex @code{spacing}
1311 Notes that are even shorter than the common shortest note are
1312 followed by a space that is proportional to their duration relative to
1313 the common shortest note. So if we were to add only a few 16th notes
1314 to the example above, they would be followed by half a NHW:
1316 @lilypond[quote,fragment,verbatim,relative=2]
1317 c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
1321 In the introduction (see @ref{Engraving}), it was explained that stem
1322 directions influence spacing. This is controlled with the
1323 @code{stem-spacing-correction} property in the
1324 @internalsref{NoteSpacing}, object. These are generated for every
1325 @internalsref{Voice} context. The @code{StaffSpacing} object
1326 (generated in @internalsref{Staff} context) contains the same property
1327 for controlling the stem/bar line spacing. The following example shows
1328 these corrections, once with default settings, and once with
1329 exaggerated corrections:
1331 @lilypond[quote,ragged-right]
1335 \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
1336 \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
1342 Proportional notation is supported; see @ref{Proportional notation}.
1344 By default, spacing in tuplets depends on various non-duration
1345 factors (such as accidentals, clef changes, etc). To disregard
1346 such symbols and force uniform equal-duration spacing, use
1347 @code{Score.SpacingSpanner #'uniform-stretching}. This
1348 property can only be changed at the beginning of a score,
1350 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1352 \override SpacingSpanner #'uniform-stretching = ##t
1370 When @code{strict-note-spacing} is set, notes are spaced without
1371 regard for clefs, bar lines, and grace notes,
1373 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1374 \override Score.SpacingSpanner #'strict-note-spacing = ##t
1375 \new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
1381 Internals: @internalsref{SpacingSpanner}, @internalsref{NoteSpacing},
1382 @internalsref{StaffSpacing}, @internalsref{SeparationItem}, and
1383 @internalsref{SeparatingGroupSpanner}.
1387 Spacing is determined on a score wide basis. If you have a score that
1388 changes its character (measured in durations) halfway during the
1389 score, the part containing the longer durations will be spaced too
1392 There is no convenient mechanism to manually override spacing. The
1393 following work-around may be used to insert extra space into a score.
1395 \once \override Score.SeparationItem #'padding = #1
1398 No work-around exists for decreasing the amount of space.
1402 @subsection Line length
1405 @cindex breaking pages
1407 @cindex @code{indent}
1408 @cindex @code{line-width}
1409 @cindex @code{ragged-right}
1410 @cindex @code{ragged-last}
1412 @c Although line-width can be set in \layout, it should be set in paper
1413 @c block, to get page layout right.
1414 @c Setting indent in \paper block makes not much sense, but it works.
1416 @c Bit verbose and vague, use examples?
1417 The most basic settings influencing the spacing are @code{indent} and
1418 @code{line-width}. They are set in the @code{\layout} block. They
1419 control the indentation of the first line of music, and the lengths of
1422 If @code{ragged-right} is set to true in the @code{\layout} block, then
1423 systems ends at their natural horizontal length, instead of being spread
1424 horizontally to fill the whole line. This is useful for
1425 short fragments, and for checking how tight the natural spacing is.
1428 @cindex vertical spacing
1430 The option @code{ragged-last} is similar to @code{ragged-right}, but
1431 only affects the last line of the piece. No restrictions are put on
1432 that line. The result is similar to formatting text paragraphs. In a
1433 paragraph, the last line simply takes its natural horizontal length.
1434 @c Note that for text there are several options for the last line.
1435 @c While Knuth TeX uses natural length, lead typesetters use the same
1436 @c stretch as the previous line. eTeX uses \lastlinefit to
1437 @c interpolate between both these solutions.
1449 @subsection Line breaking
1452 @cindex breaking lines
1454 Line breaks are normally computed automatically. They are chosen so
1455 that lines look neither cramped nor loose, and that consecutive lines
1456 have similar density.
1458 Occasionally you might want to override the automatic breaks; you can
1459 do this by specifying @code{\break}. This will force a line break at
1460 this point. Line breaks can only occur at places where there are bar
1461 lines. If you want to have a line break where there is no bar line,
1462 you can force an invisible bar line by entering @code{\bar
1463 ""}. Similarly, @code{\noBreak} forbids a line break at a
1467 @cindex regular line breaks
1468 @cindex four bar music.
1470 For line breaks at regular intervals use @code{\break} separated by
1471 skips and repeated with @code{\repeat}:
1473 << \repeat unfold 7 @{
1474 s1 \noBreak s1 \noBreak
1475 s1 \noBreak s1 \break @}
1476 @emph{the real music}
1481 This makes the following 28 measures (assuming 4/4 time) be broken every
1482 4 measures, and only there.
1486 @code{\break}, and @code{\noBreak}.
1487 @cindex @code{\break}
1488 @cindex @code{\noBreak}
1492 Internals: @internalsref{BreakEvent}.
1494 A linebreaking configuration can now be saved as a @code{.ly} file
1495 automatically. This allows vertical alignments to be stretched to
1496 fit pages in a second formatting run. This is fairly new and
1497 complicated; see @inputfileref{input/regression/,page-layout-twopass.ly}
1502 Line breaks can only occur if there is a ``proper'' bar line. A note
1503 which is hanging over a bar line is not proper, such as
1505 @lilypond[quote,ragged-right,relative=2,fragment,verbatim]
1506 c4 c2 c2 \break % this does nothing
1507 c2 c4 | % a break here would work
1508 c4 c2 c4 ~ \break % as does this break
1514 @subsection Page breaking
1516 The default page breaking may be overriden by inserting
1517 @code{\pageBreak} or @code{\noPageBreak} commands. These commands are
1518 analogous to @code{\break} and @code{\noBreak}. They should be
1519 inserted at a bar line. These commands force and forbid a page-break
1520 from happening. Of course, the @code{\pageBreak} command also forces
1523 Page breaks are computed by the @code{page-breaking} function in the
1524 @code{\paper} block.
1526 To force a new page for a new piece (in a collection of pieces or a
1527 piece in several movements), use @code{breakbefore} in the header.
1538 @cindex @code{\pageBreak}
1540 @cindex @code{\noPageBreak}
1546 The @code{breakbefore=##t} header requires that there is a @code{piece} header as well. It may be used as a normal header, or left blank (@code{=""}) as in the example above, but it must be present.
1550 @node Multiple movements
1551 @section Multiple movements
1553 @cindex bibliographic information
1556 @cindex Music engraving by LilyPond
1558 A document may contain multiple pieces of music and texts. Examples
1559 of these are an etude book, or an orchestral part with multiple
1560 movements. Each movement is entered with a @code{\score} block,
1568 and texts are entered with a @code{\markup} block,
1576 @cindex @code{\book}
1578 The movements and texts are combined together in a @code{\book} block,
1596 The header for each piece of music can be put inside the @code{\score}
1597 block. The @code{piece} name from the header will be printed before
1598 each movement. The title for the entire book can be put inside the
1599 @code{\book}, but if it is not present, the @code{\header} which is at
1600 the top of the file is inserted.
1602 @cindex Engraved by LilyPond
1603 @cindex signature line
1608 title = "Eight miniatures"
1609 composer = "Igor Stravinsky"
1613 \header @{ piece = "Romanze" @}
1616 ..text of second verse..
1619 ..text of third verse..
1623 \header @{ piece = "Menuetto" @}
1631 @section MIDI output
1636 MIDI (Musical Instrument Digital Interface) is a standard for
1637 connecting and controlling digital instruments. A MIDI file is a
1638 series of notes in a number of tracks. It is not an actual
1639 sound file; you need special software to translate between the
1640 series of notes and actual sounds.
1642 Pieces of music can be converted to MIDI files, so you can listen to
1643 what was entered. This is convenient for checking the music; octaves
1644 that are off or accidentals that were mistyped stand out very much
1645 when listening to the MIDI output.
1649 Many musically interesting effects, such as swing, articulation,
1650 slurring, etc., are not translated to midi.
1652 The midi output allocates a channel for each staff, and one for global
1653 settings. Therefore the midi file should not have more than 15 staves
1654 (or 14 if you do not use drums). Other staves will remain silent.
1656 Not all midi players correctly handle tempo changes in the midi
1657 output. Players that are known to work include
1658 @uref{http://@/timidity@/.sourceforge@/.net/,timidity}.
1661 * Creating MIDI files::
1663 * MIDI instrument names::
1666 @node Creating MIDI files
1667 @subsection Creating MIDI files
1669 To create a MIDI from a music piece of music, add a @code{\midi} block
1670 to a score, for example,
1675 \midi @{ \tempo 4=72 @}
1679 The tempo is specified using the @code{\tempo} command. In this
1680 example the tempo of quarter notes is set to 72 beats per minute.
1683 If there is a @code{\midi} command in a @code{\score}, only MIDI will
1684 be produced. When notation is needed too, a @code{\layout} block must
1690 \midi @{ \tempo 4=72 @}
1694 @cindex layout block
1698 Ties, dynamics, and tempo changes are interpreted. Dynamic marks,
1699 crescendi and decrescendi translate into MIDI volume levels. Dynamic
1700 marks translate to a fixed fraction of the available MIDI volume
1701 range, crescendi and decrescendi make the volume vary linearly between
1702 their two extremes. The fractions can be adjusted by
1703 @code{dynamicAbsoluteVolumeFunction} in @internalsref{Voice} context.
1704 For each type of MIDI instrument, a volume range can be defined. This
1705 gives a basic equalizer control, which can enhance the quality of
1706 the MIDI output remarkably. The equalizer can be controlled by
1707 setting @code{instrumentEqualizer}, or by setting
1710 \set Staff.midiMinimumVolume = #0.2
1711 \set Staff.midiMaximumVolume = #0.8
1714 To remove dynamics from the MIDI output, insert the following lines
1715 in the @code{\midi@{@}} section.
1722 \remove "Dynamic_performer"
1723 \remove "Span_dynamic_performer"
1731 Unterminated (de)crescendos will not render properly in the midi file,
1732 resulting in silent passages of music. The workaround is to explicitly
1733 terminate the (de)crescendo. For example,
1740 will not work properly but
1751 @subsection MIDI block
1755 The MIDI block is analogous to the layout block, but it is somewhat
1756 simpler. The @code{\midi} block can contain
1760 @item a @code{\tempo} definition, and
1761 @item context definitions.
1764 A number followed by a period is interpreted as a real number, so
1765 for setting the tempo for dotted notes, an extra space should be
1766 inserted, for example
1769 \midi @{ \tempo 4 . = 120 @}
1773 @cindex context definition
1775 Context definitions follow precisely the same syntax as within the
1776 \layout block. Translation modules for sound are called performers.
1777 The contexts for MIDI output are defined in @file{ly/@/performer@/-init@/.ly}.
1780 @node MIDI instrument names
1781 @subsection MIDI instrument names
1783 @cindex instrument names
1784 @cindex @code{Staff.midiInstrument}
1786 The MIDI instrument name is set by the @code{Staff.midiInstrument}
1787 property. The instrument name should be chosen from the list in
1788 @ref{MIDI instruments}.
1791 \set Staff.midiInstrument = "glockenspiel"
1795 If the selected instrument does not exactly match an instrument from
1796 the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"})