The major part of this manual is concerned with entering various
forms of music in LilyPond. However, many music expressions are not
valid input on their own, for example, a .ly
file containing
only a note
c'4
will result in a parsing error. Instead, music should be inside other expressions, which may be put in a file by themselves. Such expressions are called toplevel expressions. This section enumerates them all.
A .ly
file contains any number of toplevel expressions, where a
toplevel expression is one of the following
\paper
, \midi
, and
\layout
. Such a definition at the toplevel changes the default
settings for the block entered.
\header
block. This sets the global header block. This
is the block containing the definitions for book-wide settings, like
composer, title, etc.
\addquote
statement. See Quoting other voices
for more information.
\score
block. This score will be collected with other
toplevel scores, and combined as a single \book
.
This behavior can be changed by setting the variable
toplevel-score-handler
at toplevel. The default handler is
defined in the init file scm/lily.scm.
\book
block logically combines multiple movements
(i.e., multiple \score
blocks) in one document. A number of
\scores
creates a single output file, where all movement are
concatenated.
This behavior can be changed by setting the variable
toplevel-book-handler
at toplevel. The default handler is
defined in the init file scm/lily.scm.
{ c'4 d' e'2 }
This will add the piece in a \score
and format it in a
single book together with all other toplevel \score
s and music
expressions.
This behavior can be changed by setting the variable
toplevel-music-handler
at toplevel. The default handler is
defined in the init file scm/lily.scm.
foo = { c4 d e d }
This can be used later on in the file by entering \foo
.
The following example shows three things that may be entered at toplevel
\layout { % movements are non-justified by default raggedright = ##t } \header { title = "Do-re-mi" } { c'4 d' e2 }
At any point in a file, any of the following lexical instructions can be entered:
\version
\include
\renameinput
This page is for LilyPond-2.5.11 (development-branch).