@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
-@c A menu is needed before every deeper *section nesting of @node's; run
+@c A menu is needed before every deeper *section nesting of @node's; run
@c M-x texinfo-all-menus-update
@c to automatically fill in these menus before saving changes
@menu
* Input files::
-* Music expressions again::
+* A single music expression::
* Titles and headers::
* Paper and pages::
* Music layout::
* Multiple movements::
* MIDI output::
+* Displaying LilyPond notation::
+* Other::
@end menu
@item
A @code{\header} block. This sets the global header block. This
is the block containing the definitions for book-wide settings, like
-composer, title, etc.
+composer, title, etc.
@item
An @code{\addquote} statement. See @ref{Quoting other voices}
@code{toplevel-score-handler} at toplevel. The default handler is
defined in the init file @file{scm/@/lily@/.scm}.
-The @code{\score} must begin with music, and may contain only
-one music block.
+The @code{\score} must begin with a music expression, and may
+contain only one music expression.
@item
A @code{\book} block logically combines multiple movements
-(i.e., multiple @code{\score} blocks) in one document. A number of
-@code{\scores} creates a single output file, where all movement are
-concatenated.
+(i.e., multiple @code{\score} blocks) in one document. If there are
+a number of @code{\scores}, a single output file will be created
+in which all movements are concatenated.
This behavior can be changed by setting the variable
@code{toplevel-book-handler} at toplevel. The default handler is
\header @{ @}
@}
@end example
-
+
This behavior can be changed by setting the variable
@code{toplevel-music-handler} at toplevel. The default handler is
defined in the init file @file{scm/@/lily@/.scm}.
@example
\layout @{
- % movements are non-justified by default
+ % movements are non-justified by default
ragged-right = ##t
@}
\header @{
title = "Do-re-mi"
@}
-
+
@{ c'4 d' e2 @}
@end example
@item @code{\version}
@item @code{\include}
@item @code{\renameinput}
-@end itemize
+@end itemize
@node Including LilyPond files
@subsection Including LilyPond files
-@cindex @code{\include}
+@findex \include
@cindex including files
A large project may be split up into separate files. To refer to another
current working directory are available to \include, but a file of the same
name in LilyPond's installation takes precedence. Files are
available to \include from directories in the search path specified as an
-option when invoking @code{lilypond --include=DIR} which adds DIR to the search
-path.
+option when invoking @code{lilypond --include=DIR} which adds DIR to the
+search path.
The @code{\include} statement can use full path information, but with the Unix
convention @code{"/"} rather than the DOS/Windows @code{"\"}. For example,
-@c FIXME: --must-- delete/modify this before 2.8.0!!! -gp
-@node Music expressions again
-@section Music expressions again
+@node A single music expression
+@section A single music expression
+
+A @code{\score} must contain a single music expression. However,
+this music expression may be of any size. Recall that music
+expressions may be included inside other expressions to form
+larger expressions. All of these examples are single music
+expressions; note the curly braces @{ @} or angle brackets <<
+>> at the beginning and ending of the music.
+
+@example
+@{ c'4 c' c' c' @}
+@end example
+
+@lilypond[ragged-right,verbatim,quote]
+{
+ { c'4 c' c' c'}
+ { d'4 d' d' d'}
+}
+@end lilypond
+
+@lilypond[ragged-right,verbatim,quote]
+<<
+ \new Staff { c'4 c' c' c' }
+ \new Staff { d'4 d' d' d' }
+>>
+@end lilypond
-Should we include anything about this here?
+@example
+@{
+ \new GrandStaff <<
+ \new StaffGroup <<
+ \new Staff @{ \flute @}
+ \new Staff @{ \oboe @}
+ >>
+ \new StaffGroup <<
+ \new Staff @{ \violinI @}
+ \new Staff @{ \violinII @}
+ >>
+ >>
+@}
+@end example
@node Titles and headers
\book {
\header {
dedication = "dedicated to me"
- title = \markup \center-align { "Title first line" "Title second line, longer" }
+ title = \markup \center-align { "Title first line" "Title second line,
+longer" }
subtitle = "the subtitle,"
- subsubtitle = #(string-append "subsubtitle LilyPond version " (lilypond-version))
+ subsubtitle = #(string-append "subsubtitle LilyPond version "
+(lilypond-version))
poet = "Poet"
composer = \markup \center-align { "composer" \small "(1847-1973)" }
texttranslator = "Text Translator"
- meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge "r" }
- arranger = \markup { \fontsize #8.5 "a" \fontsize #2.5 "r" \fontsize #-2.5 "r" \fontsize #-5.3 "a" \fontsize #7.5 "nger" }
+ meter = \markup { \teeny "m" \tiny "e" \normalsize "t" \large "e" \huge
+"r" }
+ arranger = \markup { \fontsize #8.5 "a" \fontsize #2.5 "r" \fontsize
+#-2.5 "r" \fontsize #-5.3 "a" \fontsize #7.5 "nger" }
instrument = \markup \bold \italic "instrument"
piece = "Piece"
}
{ c'1 }
\header {
piece = "piece1"
- opus = "opus1"
+ opus = "opus1"
}
}
\markup {
{ c'1 }
\header {
piece = "piece2"
- opus = "opus2"
+ opus = "opus2"
}
}
}
@end lilypond
-As demonstrated before, you can use multiple @code{\header} blocks.
-When same fields appear in different blocks, the latter is used.
+As demonstrated before, you can use multiple @code{\header} blocks.
+When same fields appear in different blocks, the latter is used.
Here is a short example.
-@example
+@example
\header @{
composer = "Composer"
@}
\header @{
- title = "Title"
+ piece = "Piece"
@}
\score @{
\new Staff @{ c'4 @}
\header @{
- title = "New title" % overwrite previous one
+ piece = "New piece" % overwrite previous one
@}
@}
@end example
}
@end lilypond
-@cindex @code{printallheaders}
+@findex printallheaders
@noindent
You may change this behavior (and print all the headers when defining
@code{\header} inside @code{\score}) by using
@file{ly/titling-init.ly} lists the default layout.
@table @code
-@cindex @code{bookTitleMarkup}
+@findex bookTitleMarkup
@item bookTitleMarkup
This is the title put over an entire @code{\book} block. Typically,
it has the composer and the title of the piece
-
-@cindex @code{scoreTitleMarkup}
+
+@findex scoreTitleMarkup
@item scoreTitleMarkup
This is the title put over a @code{\score} block within a
@code{\book}. Typically, it has the name of the movement (@code{piece}
field).
-@cindex @code{oddHeaderMarkup}
+@findex oddHeaderMarkup
@item oddHeaderMarkup
- This is the page header for odd-numbered pages.
+ This is the page header for odd-numbered pages.
-@cindex @code{evenHeaderMarkup}
+@findex evenHeaderMarkup
@item evenHeaderMarkup
This is the page header for even-numbered pages. If unspecified,
the odd header is used instead.
By default, headers are defined such that the page number is on the
outside edge, and the instrument is centered.
-@cindex @code{oddFooterMarkup}
+@findex oddFooterMarkup
@item oddFooterMarkup
- This is the page footer for odd-numbered pages.
-
-@cindex @code{evenFotterMarkup}
+ This is the page footer for odd-numbered pages.
+
+@findex evenFotterMarkup
@item evenFooterMarkup
This is the page footer for even-numbered pages. If unspecified,
the odd header is used instead.
@refbugs
-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.
+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.
@cindex paper size
@cindex page size
-@cindex @code{papersize}
+@findex papersize
To change the paper size, there are two commands,
@example
@}
@end example
-The first command sets the size of all pages. The second command sets the size
+The first command sets the size of all pages. The second command sets the
+size
of the pages that the @code{\paper} block applies to -- if the @code{\paper}
block is at the top of the file, then it will apply to all pages. If the
@code{\paper} block is inside a @code{\book}, then the paper size will only
@example
#(set-default-paper-size "a6" 'landscape)
-@end example
+@end example
+
+Setting the paper size will adjust a number of @code{\paper} variables
+(such as margins). To use a particular paper size with altered
+@code{\paper} variables, set the paper size before setting the variables.
@node Page formatting
LilyPond will do page layout, set margins, and add headers and
footers to each page.
+@findex annotate-spacing
+@cindex Spacing, display of properties
+
+To graphically display the dimensions of properties that may
+be altered for page formatting, use
+
+@example
+\paper @{
+ annotate-spacing = ##t
+@}
+@end example
+
+@noindent
+All units dimensions are measured in staff spaces. The pairs
+(@var{a},@var{b}) are intervals, where @var{a} is the lower edge and
+@var{b} the upper edge of the interval.
+
The default layout responds to the following settings in the
@code{\paper} block.
-@cindex @code{\paper}
+@findex \paper
@quotation
@table @code
-@cindex @code{first-page-number}
+@findex first-page-number
@item first-page-number
The value of the page number of the first page. Default is@tie{}1.
-@cindex @code{printfirst-page-number}
+@findex printfirst-page-number
@item printfirst-page-number
If set to true, will print the page number in the first page. Default is
false.
-@cindex @code{print-page-number}
+@findex print-page-number
@item print-page-number
If set to false, page numbers will not be printed.
-@cindex @code{paper-width}
+@findex paper-width
@item paper-width
The width of the page.
-@cindex @code{paper-height}
+@findex paper-height
@item paper-height
The height of the page.
-@cindex @code{top-margin}
+@findex top-margin
@item top-margin
Margin between header and top of the page.
-@cindex @code{bottom-margin}
+@findex bottom-margin
@item bottom-margin
Margin between footer and bottom of the page.
-@cindex @code{left-margin}
+@findex left-margin
@item left-margin
Margin between the left side of the page and the beginning of the music.
-@cindex @code{line-width}
+@findex line-width
@item line-width
The length of the systems.
-@cindex @code{head-separation}
+@findex head-separation
@item head-separation
Distance between the top-most music system and the page header.
-@cindex @code{foot-separation}
+@findex foot-separation
@item foot-separation
Distance between the bottom-most music system and the page footer.
-@cindex @code{page-top-space}
+@findex page-top-space
Distance from the top of the printable area to the center of the first
staff. This only works for staves which are vertically small. Big staves
are set with the top of their bounding box aligned to the top of the
printable area.
-@cindex @code{ragged-bottom}
+@findex ragged-bottom
@item ragged-bottom
-If set to true, systems will not be spread across the page.
+If set to true, systems will not be spread vertically across the page. This
+does not affect the last page.
This should be set to true for pieces that have only two or three
systems per page, for example orchestral scores.
-
-@cindex @code{ragged-last-bottom}
+
+@findex ragged-last-bottom
@item ragged-last-bottom
-If set to false, systems will be spread to fill the last page.
+If set to false, systems will be spread vertically to fill the last page.
Pieces that amply fill two pages or more should have this set to
true.
-@cindex @code{system-count}
+@findex system-count
@item system-count
This variable, if set, specifies into how many lines a score should be
broken.
-@cindex @code{between-system-space}
+@findex between-system-space
@item between-system-space
This dimensions determines the distance between systems. It is the
ideal distance between the center of the bottom staff of one system
Increasing this will provide a more even appearance of the page at the
cost of using more vertical space.
-@cindex @code{between-system-padding}
+@findex between-system-padding
@item between-system-padding
This dimension is the minimum amount of white space that will always
be present between the bottom-most symbol of one system, and the
farther apart.
-@cindex @code{horizontal-shift}
+@findex horizontal-shift
@item horizontal-shift
All systems (including titles and system separators) are shifted by
this amount to the right. Page markup, such as headers and footers are
not affected by this. The purpose of this variable is to make space
for instrument names at the left.
-@cindex @code{after-title-space}
+@findex after-title-space
@item after-title-space
Amount of space between the title and the first system.
-@cindex @code{after-title-space}
-@item before-title-space
+@findex after-title-space
+@item before-title-space
Amount of space between the last system of the previous piece and the
title of the next.
-@cindex @code{between-title-space}
+@findex between-title-space
@item between-title-space
Amount of space between consecutive titles (e.g., the title of the
book and the title of a piece).
-@cindex @code{printallheaders}
+@findex printallheaders
@item printallheaders
Setting this to #t will print all headers for each \score in a
\book. Normally only the piece and opus \headers are printed.
-@cindex @code{systemSeparatorMarkup}
+@findex systemSeparatorMarkup
@item systemSeparatorMarkup
This contains a markup object, which will be inserted between
systems. This is often used for orchestral scores.
default, for example
@lilypond[ragged-right]
-\paper {
- systemSeparatorMarkup = \slashSeparator
+\book {
+ \score {
+ \relative { c1 \break c1 }
+ }
+ \paper {
+ systemSeparatorMarkup = \slashSeparator
+ }
}
-
-\relative { c1 \break c1 }
@end lilypond
@example
\paper @{
- #(define bottom-margin (* 2 cm))
+ #(define bottom-margin (* 2 cm))
@}
@end example
The header and footer are created by the functions @code{make-footer}
and @code{make-header}, defined in @code{\paper}. The default
-implementations are in @file{scm/@/page@/-layout@/.scm}.
+implementations are in @file{ly/@/paper@/-defaults@/.ly} and
+@file{ly/@/titling@/-init@/.ly}.
The page layout itself is done by two functions in the
@code{\paper} block, @code{page-music-height} and
The default page header puts the page number and the @code{instrument}
field from the @code{\header} block on a line.
+The titles (from the @code{\header@{@}} section) are treated as a
+system, so @code{ragged-bottom} and @code{ragged-last-bottom} will
+add space between the titles and the first system of the score.
@node Music layout
@cindex font size, setting
@cindex staff size, setting
-@cindex @code{layout} file
+@findex layout file
To set the global staff size, use @code{set-global-staff-size}.
@item feta11
@tab 11.22
-@tab 3.9
+@tab 3.9
@tab pocket scores
@item feta13
@tab 12.60
@tab 4.4
@tab
-
+
@item feta14
@tab 14.14
@tab 5.0
-@tab
+@tab
@item feta16
@tab 15.87
@tab 5.6
-@tab
+@tab
@item feta18
@tab 17.82
@item feta20
@tab 20
@tab 7.0
-@tab standard parts
+@tab standard parts
@item feta23
-@tab 22.45
+@tab 22.45
@tab 7.9
-@tab
+@tab
@item feta26
-@tab 25.2
+@tab 25.2
@tab 8.9
@tab
@c modern rental material?
The following commands set @code{fontSize} for the current voice:
-@cindex @code{\tiny}
-@code{\tiny},
-@cindex @code{\small}
-@code{\small},
-@cindex @code{\normalsize}
+@findex \tiny
+@code{\tiny},
+@findex \small
+@code{\small},
+@findex \normalsize
@code{\normalsize}.
@node Score layout
@subsection Score layout
-@cindex @code{\layout}
+@findex \layout
While @code{\paper} contains settings that relate to the page formatting
of the whole document, @code{\layout} contains settings for score-specific
Normally staves are stacked vertically. To make staves maintain a
distance, their vertical size is padded. This is done with the
-property @code{minimum-Y-extent}. It takes a pair of numbers, so
-if you want to make it smaller than its default @code{#'(-4 . 4)},
-then you could set. When applied to a
+property @code{minimum-Y-extent}. When applied to a
@internalsref{VerticalAxisGroup}, it controls the size of a horizontal
-line, such as a staff or a line of lyrics.
+line, such as a staff or a line of lyrics. @code{minimum-Y-extent}
+takes a pair of numbers, so
+if you want to make it smaller than its default @code{#'(-4 . 4)}
+then you could set
@example
\override Staff.VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
@lilypond[ragged-right, fragment, relative=2, staffsize=13]
\new StaffGroup <<
- \new Staff {
- c1\break
-
+ \new Staff {
+ c1\break
+
\overrideProperty
#"Score.NonMusicalPaperColumn"
#'line-break-system-details
#'((fixed-alignment-extra-space . 15))
- c\break
+ c\break
}
\new Staff { c c }
>>
@c let's wait for a some comments before writing more.
-The vertical spacing on a page can also be changed for each system individually.
+The vertical spacing on a page can also be changed for each system
+individually.
Some examples are found in the example file
@inputfileref{input/regression/,page-spacing.ly}.
-When setting @code{annotatespacing} in the @code{\paper} block LilyPond
+When setting @code{annotate-spacing} in the @code{\paper} block LilyPond
will graphically indicate the dimensions of properties that may be set
for page spacing,
@lilypond[verbatim]
#(set-default-paper-size "a7" 'landscape)
-\paper { annotatespacing = ##t }
+\paper { annotate-spacing = ##t }
{ c4 }
@end lilypond
Internals: Vertical alignment of staves is handled by the
@internalsref{VerticalAlignment} object. The context parameters
-specifying the vertical extent are described in connection with
+specifying the vertical extent are described in connection with
the @internalsref{Axis_group_engraver}.
Example files: @inputfileref{input/regression/,page-spacing.ly},
The distance between staves of a @internalsref{PianoStaff} cannot be
computed during formatting. Rather, to make cross-staff beaming work
correctly, that distance has to be fixed beforehand.
-
+
The distance of staves in a @code{PianoStaff} is set with the
@code{forced-distance} property of the
@internalsref{VerticalAlignment} object, created in
\new Staff { c }
\new Staff { c }
>>
->>
+>>
@end lilypond
It is also possible to change the distance between for each system
-individually. This is done by including the command
+individually. This is done by including the command
@example
\overrideProperty
@lilypond[ragged-right, fragment, relative=2, staffsize=13]
\new PianoStaff <<
- \new Staff {
- c1\break
-
+ \new Staff {
+ c1\break
+
\overrideProperty
#"Score.NonMusicalPaperColumn"
#'line-break-system-details
#'((fixed-alignment-extra-space . 15))
- c\break
+ c\break
}
\new Staff { c c }
>>
@code{spacing-increment}) of space to the note.
For example, the following piece contains lots of half, quarter, and
-8th notes; the eighth note is followed by 1 note head width (NHW).
+8th notes; the eighth note is followed by 1 note head width (NHW).
The quarter note is followed by 2 NHW, the half by 3 NHW, etc.
@lilypond[quote,fragment,verbatim,relative=1]
this sets the base duration for spacing. The maximum duration for this
base (normally an 8th), is set through @code{base-shortest-duration}.
-@cindex @code{common-shortest-duration}
-@cindex @code{base-shortest-duration}
-@cindex @code{stem-spacing-correction}
-@cindex @code{spacing}
+@findex common-shortest-duration
+@findex base-shortest-duration
+@findex stem-spacing-correction
+@findex spacing
Notes that are even shorter than the common shortest note are
followed by a space that is proportional to their duration relative to
\override Staff.NoteSpacing #'stem-spacing-correction = #1.5
\override Staff.StaffSpacing #'stem-spacing-correction = #1.5
c'4 e''4 e'4 b'4 |
- b'4 e''4 b'4 e''4|
+ b'4 e''4 b'4 e''4|
}
@end lilypond
regard for clefs, bar lines, and grace notes,
@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
-\override Score.SpacingSpanner #'strict-note-spacing = ##t
+\override Score.SpacingSpanner #'strict-note-spacing = ##t
\new Staff { c8[ c \clef alto c \grace { c16[ c] } c8 c c] c32[ c32] }
@end lilypond
@cindex page breaks
@cindex breaking pages
-@cindex @code{indent}
-@cindex @code{line-width}
-@cindex @code{ragged-right}
-@cindex @code{ragged-last}
+@findex indent
+@findex line-width
+@findex ragged-right
+@findex ragged-last
@c Although line-width can be set in \layout, it should be set in paper
@c block, to get page layout right.
the lines.
If @code{ragged-right} is set to true in the @code{\layout} block, then
-the lines are justified at their natural length. This is useful for
+systems ends at their natural horizontal length, instead of being spread
+horizontally to fill the whole line. This is useful for
short fragments, and for checking how tight the natural spacing is.
@cindex page layout
The option @code{ragged-last} is similar to @code{ragged-right}, but
only affects the last line of the piece. No restrictions are put on
that line. The result is similar to formatting text paragraphs. In a
-paragraph, the last line simply takes its natural length.
+paragraph, the last line simply takes its natural horizontal length.
@c Note that for text there are several options for the last line.
@c While Knuth TeX uses natural length, lead typesetters use the same
@c stretch as the previous line. eTeX uses \lastlinefit to
this point. Line breaks can only occur at places where there are bar
lines. If you want to have a line break where there is no bar line,
you can force an invisible bar line by entering @code{\bar
-""}. Similarly, @code{\noBreak} forbids a line break at a
+""}. Similarly, @code{\noBreak} forbids a line break at a
point.
@cindex regular line breaks
-@cindex four bar music.
+@cindex four bar music.
For line breaks at regular intervals use @code{\break} separated by
skips and repeated with @code{\repeat}:
s1 \noBreak s1 \noBreak
s1 \noBreak s1 \break @}
@emph{the real music}
->>
+>>
@end example
@noindent
@refcommands
@code{\break}, and @code{\noBreak}.
-@cindex @code{\break}
-@cindex @code{\noBreak}
+@findex \break
+@findex \noBreak
@seealso
complicated; see @inputfileref{input/regression/,page-layout-twopass.ly}
for details.
+@refbugs
+
+Line breaks can only occur if there is a ``proper'' bar line. A note
+which is hanging over a bar line is not proper, such as
+
+@lilypond[quote,ragged-right,relative=2,fragment,verbatim]
+c4 c2 c2 \break % this does nothing
+c2 c4 | % a break here would work
+c4 c2 c4 ~ \break % as does this break
+c4 c2 c4
+@end lilypond
+
@node Page breaking
@subsection Page breaking
a line break.
Page breaks are computed by the @code{page-breaking} function in the
-@code{\paper} block.
+@code{\paper} block.
To force a new page for a new piece (in a collection of pieces or a
piece in several movements), use @code{breakbefore} in the header.
@refcommands
-@cindex @code{\pageBreak}
+@findex \pageBreak
@code{\pageBreak}
-@cindex @code{\noPageBreak}
-@code{\noPageBreak}
+@findex \noPageBreak
+@code{\noPageBreak}
@refbugs
-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.
+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.
@}
@end example
-@cindex @code{\book}
+@findex \book
The movements and texts are combined together in a @code{\book} block,
like
@cindex Engraved by LilyPond
@cindex signature line
-@example
+@example
\book @{
\header @{
- title = "Eight miniatures"
+ title = "Eight miniatures"
composer = "Igor Stravinsky"
@}
\score @{
@end menu
@node Creating MIDI files
-@subsection Creating MIDI files
+@subsection Creating MIDI files
To create a MIDI from a music piece of music, add a @code{\midi} block
to a score, for example,
-@example
+@example
\score @{
@var{...music...}
\midi @{ \tempo 4=72 @}
@}
-@end example
+@end example
The tempo is specified using the @code{\tempo} command. In this
example the tempo of quarter notes is set to 72 beats per minute.
be produced. When notation is needed too, a @code{\layout} block must
be added
-@example
+@example
\score @{
@var{...music...}
\midi @{ \tempo 4=72 @}
\layout @{ @}
@}
-@end example
+@end example
@cindex layout block
For each type of MIDI instrument, a volume range can be defined. This
gives a basic equalizer control, which can enhance the quality of
the MIDI output remarkably. The equalizer can be controlled by
-setting @code{instrumentEqualizer}.
+setting @code{instrumentEqualizer}, or by setting
+
+@example
+\set Staff.midiMinimumVolume = #0.2
+\set Staff.midiMaximumVolume = #0.8
+@end example
To remove dynamics from the MIDI output, insert the following lines
in the @code{\midi@{@}} section.
inserted, for example
@example
-\midi @{ \tempo 4 . = 120 @}
+\midi @{ \tempo 4 . = 120 @}
@end example
@subsection MIDI instrument names
@cindex instrument names
-@cindex @code{Staff.midiInstrument}
+@findex Staff.midiInstrument
The MIDI instrument name is set by the @code{Staff.midiInstrument}
property. The instrument name should be chosen from the list in
the list of MIDI instruments, the Grand Piano (@code{"acoustic grand"})
instrument is used.
+
+@c Yes, this is a cop-out; this info doesn't belong in the Scheme
+@c chapter, but I'm not certain where to stick it.
+@c I think I'll eventually split this chapter into a "paper/layout"
+@c chapter and a "misc issues" chapter. -gp
+@node Displaying LilyPond notation
+@section Displaying LilyPond notation
+
+@findex \displayLilyMusc
+Displaying a music expression in LilyPond notation can be
+done using the music function @code{\displayLilyMusic}. For example,
+
+@example
+@{
+ \displayLilyMusic \transpose c a, @{ c e g a bes @}
+@}
+@end example
+
+will display
+
+@example
+@{ a, cis e fis g @}
+@end example
+
+By default, LilyPond will print these messages to the console along
+with all the other messages. To split up these messages and save
+the results of @code{\display@{STUFF@}}, redirect the output to
+a file.
+
+@example
+lilypond file.ly >display.txt
+@end example
+
+
+@node Other
+@section Other
+
+@c FIXME: yeah, it really needs to be moved soon. -gp
+@menu
+* Skipping corrected music::
+* Writing music in parallel::
+@end menu
+
+@node Skipping corrected music
+@subsection Skipping corrected music
+
+
+@findex skipTypesetting
+@findex showLastLength
+
+When entering or copying music, usually only the music near the end (where
+you
+are adding notes) is interesting to view and correct. To speed up
+this correction process, it is possible to skip typesetting of all but
+the last few measures. This is achieved by putting
+
+@verbatim
+showLastLength = R1*5
+\score { ... }
+@end verbatim
+
+@noindent
+in your source file. This will render only the last 5 measures
+(assuming 4/4 time signature) of every @code{\score} in the input
+file. For longer pieces, rendering only a small part is often an order
+of magnitude quicker than rendering it completely
+
+Skipping parts of a score can be controlled in a more fine-grained
+fashion with the property @code{Score.skipTypesetting}. When it is
+set, no typesetting is performed at all.
+
+This property is also used to control output to the MIDI file. Note that
+it skips all events, including tempo and instrument changes. You have
+been warned.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+\relative c'' {
+ c8 d
+ \set Score.skipTypesetting = ##t
+ e e e e e e e e
+ \set Score.skipTypesetting = ##f
+ c d b bes a g c2 }
+@end lilypond
+
+In polyphonic music, @code{Score.skipTypesetting} will affect all
+voices and staves, saving even more time.
+
+
+@node Writing music in parallel
+@subsection Writing music in parallel
+@cindex Writing music in parallel
+@cindex Interleaved music
+
+Music for multiple parts can be interleaved
+
+@lilypond[quote,fragment,verbatim]
+\parallelMusic #'(voiceA voiceB) {
+ r8 g'16[ c''] e''[ g' c'' e''] r8 g'16[ c''] e''[ g' c'' e''] |
+ c'2 c'2 |
+ r8 a'16[ d''] f''[ a' d'' f''] r8 a'16[ d''] f''[ a' d'' f''] |
+ c'2 c'2 |
+}
+\new StaffGroup <<
+ \new Staff \new Voice \voiceA
+ \new Staff \new Voice \voiceB
+>>
+@end lilypond
+
+