Don't use any other relative=X commands (make it a non-fragment
example), and don't use fragment without relative=2.
-- use "aes" and "ees" instead of "as" and "aes". I know it's not
+- use "aes" and "ees" instead of "as" and "es". I know it's not
correct Dutch naming, but let's not confuse people with this
until we get to the Basic notation chapter.
The first example demonstrates how to start working with LilyPond.
To create sheet music, we write a text file that specifies the
-notation. For example, if we write
+notation. For example, if we write:
@example
@{
@}
@end example
-To process @file{test.ly}, proceed as follows
+To process @file{test.ly}, proceed as follows:
@example
lilypond test.ly
@end example
@noindent
-You will see something resembling
+You will see something resembling:
@example
lilypond test.ly
-GNU LilyPond 2.10.0
+GNU LilyPond 2.12.0
Processing `test.ly'
Parsing...
-Interpreting music... [1]
+Interpreting music...
Preprocessing graphical objects...
-Calculating line breaks... [2]
+Finding the ideal number of pages...
+Fitting music on 1 page...
+Drawing systems...
Layout output to `test.ps'...
Converting to `test.pdf'...
@end example
@subheading Pitches
-Music glossary: @rglos{interval}, @rglos{fourth}, @rglos{scale},
-@rglos{middle C}, @rglos{octave}.
+Music glossary: @rglos{pitch}, @rglos{interval}, @rglos{fourth},
+@rglos{scale}, @rglos{middle C}, @rglos{octave}.
The easiest way to enter notes is by using @code{\relative} mode.
In this mode, the @notation{interval} between the previous note and
@end lilypond
@noindent
-As you may notice, this example does not start on middle C. The first
+As you may notice, this example does not start on middle C. The first
note -- the @code{d} -- is the closest D to middle C.
To add intervals that are larger than a fourth, we can raise
The @notation{duration} of a note is specified by a number after
the note name. @samp{1} for a @notation{whole note}, @samp{2} for
a @notation{half note}, @samp{4} for a @notation{quarter note} and
-so on. @notation{Beam}@tie{}s are added automatically.
+so on. @notation{Beams} are added automatically.
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
@seealso
-User manual: @ruser{Writing pitches}, @ruser{Writing rhythms},
+Notation reference: @ruser{Writing pitches}, @ruser{Writing rhythms},
@ruser{Writing rests}, @ruser{Time signature}, @ruser{Clef}.
@itemize
@cindex Case sensitive
-@item @strong{Case sensitive}:
+@item
+@strong{Case sensitive}:
it matters whether you enter a letter in lower case (e.g. @code{a,
b, s, t}) or upper case (e.g. @code{A, B, S, T}). Notes are
lower case: @code{@{ c d e @}} is valid input; @code{@{ C D E @}}
will produce an error message.
-@item @strong{Whitespace insensitive}:
+@item
+@strong{Whitespace insensitive}:
it does not matter how many spaces (or new lines) you add.
@code{@{ c d e @}} means the same thing as @code{@{ c @tie{}
-@tie{} @tie{} d e @}} and
+@tie{} @tie{} d e @}} and:
@example
@{ c d
@}
@end example
-@item @strong{Expressions:}
+@item
+@strong{Expressions:}
Every piece of LilyPond input needs to have @strong{@{ curly
braces @}} placed around the input. These braces tell LilyPond
that the input is a single music expression, just like parentheses
@cindex comments
@cindex line comment
@cindex block comment
-@item @strong{Comments}:
+@item
+@strong{Comments}:
A comment is a remark for the human reader of the music input; it
is ignored while parsing, so it has no effect on the printed
output. There are two types of comments. The percent symbol
that line is ignored. A block comment marks a whole section of
music input as a comment. Anything that is enclosed in @code{%@{}
and @code{%@}} is ignored. (Comments do not nest.) The following
-fragment shows possible uses for comments
+fragment shows possible uses for comments:
@example
% notes for twinkle twinkle follow
@end itemize
There are more tips for constructing input files in
-@ruser{Suggestions for writing LilyPond files}.
+@ref{Suggestions for writing LilyPond files}.
@node How to read the tutorial
@subsection How to read the tutorial
-As we saw in @ruser{Working on text files}, LilyPond input must be
-surrounded by @{ @} marks or a @code{\relative c'' @{ ... @}}.
-For the rest of this manual, most examples will omit this. To
-replicate the examples, you may copy and paste the displayed input
-but you @strong{must} add the @code{\relative c'' @{ @}} like
-this:
+LilyPond input must be surrounded by @{ @} marks or a
+@code{\relative c'' @{ ... @}}, as we saw in @ref{Working on text
+files}. For the rest of this manual, most examples will omit
+this. To replicate the examples, you may copy and paste the
+displayed input but you @strong{must} add the @code{\relative c''
+@{ @}} like this:
@example
\relative c'' @{
* Accidentals and key signatures::
* Ties and slurs::
* Articulation and dynamics::
+* Adding text::
* Automatic and manual beams::
* Advanced rhythmic commands::
@end menu
Music glossary: @rglos{octave}, @rglos{fourth}, @rglos{fifth}.
-As we saw in @ref{Simple notation}, LilyPond calculates the pitch of
-each note relative to the previous one@footnote{There is another mode
-of entering pitches, @ruser{Absolute note names}, but in practice
-relative mode is much easier and safer to use.}. If no extra
-@notation{octave} marks (@code{'} and @code{,}) are added, it assumes
-that each pitch is within a @notation{fourth} of the previous note.
+LilyPond calculates the pitch of each note relative to the
+previous one@footnote{There is another mode of entering pitches,
+@ruser{Absolute note names}. However, in practice relative mode is
+much easier and safer to use.}, as we saw in @ref{Simple
+notation}. If no extra @notation{octave} marks (@code{'} and
+@code{,}) are added, it assumes that each pitch is within a
+@notation{fourth} of the previous note.
LilyPond examines pitches based on the note names -- in other
words, an augmented fourth is @emph{not} treated the same as a
A @notation{sharp} pitch is made by adding @samp{is} to the name, and
a @notation{flat} pitch by adding @samp{es}. As you might expect, a
@notation{double sharp} or @notation{double flat} is made by adding
-@samp{isis} or @samp{eses}@footnote{This syntax derived from note
+@samp{isis} or @samp{eses}. This syntax derived from note
naming conventions in Nordic and Germanic languages, like German
and Dutch. To use other names for @notation{accidentals}, see
-@ruser{Note names in other languages}.}
+@ruser{Note names in other languages}.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
cis1 ees fisis, aeses
@subheading Warning: key signatures and pitches
Music glossary: @rglos{accidental}, @rglos{key signature},
-@rglos{pitch}, @rglos{flat}, @rglos{natural}, @rglos{sharp}.
+@rglos{pitch}, @rglos{flat}, @rglos{natural}, @rglos{sharp},
+@rglos{transposition}.
To determine whether to print an @notation{accidental}, LilyPond
examines the pitches and the @notation{key signature}. The key
newcomers, so let us explain it in more detail.
LilyPond makes a sharp distinction between musical content and
-layout. The alteration (@notation{flat}, @notation{natural} or @notation{sharp}) of a note is part of the pitch, and is therefore
+layout. The alteration (@notation{flat}, @notation{natural} or
+@notation{sharp}) of a note is part of the pitch, and is therefore
musical content. Whether an accidental (a @emph{printed} flat, natural
or sharp sign) is printed in front of the corresponding note is a
question of layout. Layout is something that follows rules, so
@samp{is} to @code{cis} and @code{fis}.
The code @samp{e} does not mean @qq{print a black dot just below
-the first line of the staff.} Rather, it means: @qq{there is a
+the first line of the staff.} Rather, it means @qq{there is a
note with pitch E-natural.} In the key of A-flat major, it
@emph{does} get an accidental:
@end lilypond
Adding all alterations explicitly might require a little more
-effort when typing, but the advantage is that transposing is
-easier, and accidentals can be printed according to different
-conventions. See @ruser{Automatic accidentals}, for some examples
-how accidentals can be printed according to different rules.
+effort when typing, but the advantage is that
+@notation{transposing} is easier, and accidentals can be printed
+according to different conventions. For some examples how
+accidentals can be printed according to different rules, see
+@ruser{Automatic accidentals}.
@seealso
@quotation
Music glossary: @rglos{articulation}, @rglos{slur}, @rglos{tie}.
A @notation{slur} looks like a @notation{tie}, but it has a different
-meaning. A tie simply makes the first note longer, and can only be used on pairs of notes with the same pitch. Slurs indicate the
+meaning. A tie simply makes the first note longer, and can only be
+used on pairs of notes with the same pitch. Slurs indicate the
@notation{articulation} of notes, and can be used on larger groups of
-notes. Slurs and ties can be nested.
+notes. Slurs and ties can be nested.
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c2~( c8 fis fis4 ~ fis2 g2)
Music glossary: @rglos{articulation}.
-Common @notation{articulation}@tie{}s can be added to a note using a
+Common @notation{articulations} can be added to a note using a
dash @samp{-} and a single character:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
Music glossary: @rglos{dynamics}, @rglos{crescendo},
@rglos{decrescendo}.
-Dynamic signs are made by adding the markings (with a backslash)
-to the note
+@notation{Dynamic} signs are made by adding the markings (with a
+backslash) to the note:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c\ff c\mf c\p c\pp
@cindex decrescendo
@cindex crescendo
-Crescendi and decrescendi are started with the commands @code{\<}
-and @code{\>}. An ending dynamic, for example @code{\f}, will
-finish the (de)crescendo, or the command @code{\!} can be used:
+@notation{Crescendi} and @notation{decrescendi} are started with
+the commands @code{\<} and @code{\>}. An ending dynamic, for
+example @code{\f}, will finish the (de)crescendo, or the command
+@code{\!} can be used:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c2\< c2\ff\> c2 c2\!
@item Fingering
see @ruser{Fingering instructions}.
@item Dynamics
-see @ruser{Dynamics} (User manual) and @rglos{dynamics} (Glossary).
+see @ruser{Dynamics} (Notation reference) and @rglos{dynamics}
+(Glossary).
@end table
@end quotation
@c CONTINUE HERE
+@node Adding text
+@subsection Adding text
+
+Text may be added to your scores:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c1^"espr" a_"legato"
+@end lilypond
+
+Extra formatting may be added with the @code{\markup} command:
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
+c1^\markup{ \bold espr}
+a1_\markup{
+ \dynamic f \italic \small { 2nd } \hspace #0.1 \dynamic p
+}
+@end lilypond
+
+
+@c Kurt: leave this alone for now.
+
+@seealso
+
+Notation reference: @ruser{Writing text}.
+
+
@node Automatic and manual beams
@subsection Automatic and manual beams
+Music glossary: @rglos{beam}.
+
@cindex beams, by hand
-All @rglos{beam}s are drawn automatically:
+All @notation{beams} are drawn automatically:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
a8 ais d ees r d c16 b a8
@subsection Advanced rhythmic commands
@cindex pickup
-@cindex anacruse
+@cindex anacrusis
@cindex partial measure
@subheading Partial measure
-A pickup (or @rglos{anacrusis}) is entered with the keyword
+Music glossary: @rglos{anacrusis}.
+
+A pickup (or @notation{anacrusis}) is entered with the keyword
@code{\partial}. It is followed by a duration: @code{\partial 4}
is a quarter note pickup and @code{\partial 8} an eighth note.
@cindex triplets
@subheading Tuplets
-Tuplets are made with the @code{\times} keyword. It takes two
-arguments: a fraction and a piece of music. The duration of the
-piece of music is multiplied by the fraction. Triplets make notes
-occupy 2/3 of their notated duration, so a triplet has 2/3 as its
-fraction
+Music glossary: @rglos{note value}, @rglos{triplet}.
+
+@notation{Tuplets} are made with the @code{\times} keyword. It
+takes two arguments: a fraction and a piece of music. The
+duration of the piece of music is multiplied by the fraction.
+Triplets make notes occupy 2/3 of their notated duration, so a
+@notation{triplet} has 2/3 as its fraction
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
\times 2/3 { f8 g a }
@cindex appoggiatura
@subheading Grace notes
-Grace notes are created with the @code{\grace} command, although
-they can also be created by prefixing a music expression with the
-keyword @code{\appoggiatura} or @code{\acciaccatura}
+Music glossary: @rglos{grace notes}, @rglos{appoggiatura}.
+
+@notation{Grace notes} are created with the @code{\grace} command,
+although they can also be created by prefixing a music expression
+with the keyword @code{\appoggiatura} or @code{\acciaccatura}:
@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
c2 \grace { a32[ b] } c2
@subheading Simultaneous music expressions: multiple staves
-This technique is useful for polyphonic music. To enter music
-with more voices or more staves, we combine expressions in
-parallel. To indicate that two voices should play at the same
-time, simply enter a simultaneous combination of music
+Music glossary: @rglos{polyphony}.
+
+This technique is useful for @notation{polyphonic} music. To
+enter music with more voices or more staves, we combine
+expressions in parallel. To indicate that two voices should play
+at the same time, simply enter a simultaneous combination of music
expressions. A @q{simultaneous} music expression is formed by
enclosing expressions inside @code{<<} and @code{>>}. In the
following example, three sequences (all containing two separate
@node Multiple staves
@subsection Multiple staves
-As we saw in @ruser{Music expressions explained}, LilyPond input
-files are constructed out of music expressions. If the score
-begins with simultaneous music expressions, LilyPond creates
-multiples staves. However, it is easier to see what happens if we
-create each staff explicitly.
+LilyPond input files are constructed out of music expressions, as
+we saw in @ref{Music expressions explained}. If the score begins
+with simultaneous music expressions, LilyPond creates multiples
+staves. However, it is easier to see what happens if we create
+each staff explicitly.
To print more than one staff, each piece of music that makes up a
staff is marked by adding @code{\new Staff} before it. These
expression, so @math{-(4+5)} is a bigger expression.
Time signatures entered in one staff affects all other
-staves@footnote{This behavior may be changed if desired; see
-@ruser{Polymetric notation}, for details.}. On the other hand, the
-key signature of one staff does @emph{not} affect other staves.
+staves@footnote{This behavior may be changed if desired; for
+details, see @ruser{Polymetric notation}.}. On the other hand,
+the key signature of one staff does @emph{not} affect other
+staves.
@lilypond[verbatim,quote,ragged-right]
\relative c'' {
@cindex staff switch, manual
@cindex cross staff voice, manual
-Piano music is typeset in two staves connected by a brace.
+
+Music glossary: @rglos{brace}.
+
+Piano music is typeset in two staves connected by a
+@notation{brace}.
Printing such a staff is similar to the polyphonic example in
-@ruser{Multiple staves}, but now this entire expression is
+@ref{Multiple staves}. However, now this entire expression is
inserted inside a @code{PianoStaff}:
@example
@subsection Combining notes into chords
@cindex chords
-Chords can be made by surrounding pitches with single angle
-brackets. Angle brackets are the symbols @samp{<} and @samp{>}.
-@lilypond[quote,fragment,verbatim,relative=2,fragment]
+Music glossary: @rglos{chord}.
+
+@notation{Chords} can be made by surrounding pitches with single
+angle brackets. Angle brackets are the symbols @samp{<} and
+@samp{>}.
+
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
r4 <c e g>4 <c f a>2
@end lilypond
You can combine markings like beams and ties with chords. They
must be placed outside the angle brackets
-@lilypond[quote,fragment,verbatim,relative=2,fragment]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
r4 <c e g>8[ <c f a>]~ <c f a>2
@end lilypond
-@lilypond[quote,fragment,verbatim,relative=2,fragment]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
r4 <c e g>8\>( <c e g> <c e g>4 <c f a>\!)
@end lilypond
@noindent
Again, these expressions can be nested arbitrarily.
-@lilypond[quote,fragment,verbatim,relative=2,fragment]
+@lilypond[verbatim,quote,ragged-right,fragment,relative=2]
<<
\new Staff <<
{ a4 g2 f4~ f4 } \\
@seealso
@quotation
-See @ruser{Basic polyphony}.
+See @ruser{Simultaneous notes}.
@end quotation
@cindex Lyrics
@cindex Songs
+
+Music glossary: @rglos{lyrics}.
+
Here is the start of the melody to a nursery
rhyme, @qq{Girls and boys come out to play}:
@lilypond[verbatim,quote,ragged-right]
- \relative c'' {
+\relative c'' {
\key g \major
\time 6/8
d4 b8 c4 a8 d4 b8 g4
- }
+}
@end lilypond
-The lyrics can be set to these notes, combining both with the
-@code{\addlyrics} keyword. Lyrics are entered by separating each
-syllable with a space.
+The @notation{lyrics} can be set to these notes, combining both
+with the @code{\addlyrics} keyword. Lyrics are entered by
+separating each syllable with a space.
@lilypond[verbatim,quote,ragged-right]
<<
- \relative c'' {
- \key g \major
- \time 6/8
- d4 b8 c4 a8 d4 b8 g4
- }
- \addlyrics {
- Girls and boys come out to play,
- }
+ \relative c'' {
+ \key g \major
+ \time 6/8
+ d4 b8 c4 a8 d4 b8 g4
+ }
+ \addlyrics {
+ Girls and boys come out to play,
+ }
>>
@end lilypond
@node Aligning lyrics to a melody
@subsection Aligning lyrics to a melody
+Music glossary: @rglos{melisma}, @rglos{extender line}.
+
@cindex melisma
@cindex extender line
@cindex hyphens
@lilypond[verbatim,quote,ragged-right]
<<
- \relative c'' {
- \key g \major
- \time 6/8
- d4 b8 c4 a8 d4 b8 g4
- g8 a4 b8 c b a d4 b8 g4.
- }
- \addlyrics {
- Girls and boys come out to play,
- The moon doth shine as bright as day;
- }
+ \relative c'' {
+ \key g \major
+ \time 6/8
+ d4 b8 c4 a8 d4 b8 g4
+ g8 a4 b8 c b a d4 b8 g4.
+ }
+ \addlyrics {
+ Girls and boys come out to play,
+ The moon doth shine as bright as day;
+ }
>>
@end lilypond
We see the extra lyrics do not align properly with the notes. The
word @q{shine} should be sung on two notes, not one. This is
-called a @rglos{melisma}, a single syllable sung to more than one
+called a @notation{melisma}, a single syllable sung to more than one
note. There are several ways to spread a syllable over multiple
notes, the simplest being to add a slur across them (see @ref{Ties
and slurs}):
@lilypond[verbatim,quote,ragged-right]
<<
- \relative c'' {
- \key g \major
- \time 6/8
- d4 b8 c4 a8 d4 b8 g4
- g8 a4 b8 c([ b)] a d4 b8 g4.
- }
- \addlyrics {
- Girls and boys come out to play,
- The moon doth shine as bright as day;
- }
+ \relative c'' {
+ \key g \major
+ \time 6/8
+ d4 b8 c4 a8 d4 b8 g4
+ g8 a4 b8 c([ b)] a d4 b8 g4.
+ }
+ \addlyrics {
+ Girls and boys come out to play,
+ The moon doth shine as bright as day;
+ }
>>
@end lilypond
(see @ref{Automatic and manual beams}).
If a syllable extends over several notes or a single very long
-note an @emph{extender line} is usually drawn from the syllable
+note an @notation{extender line} is usually drawn from the syllable
extending under all the notes for that syllable. It is entered as
two underscores @code{__}. Here is an example from the first
three bars of Dido's Lament, from Purcell's Dido and Æneas:
-
+
@lilypond[verbatim,quote,ragged-right]
<<
\relative c'' {
@c no ragged-right here because otherwise the hyphens get lost,
@c but the example is long enough to avoid looking strange.
-@lilypond[quote,verbatim]
+@lilypond[verbatim,quote]
<<
\relative c' {
\key g \major
@c no ragged-right here because otherwise the hyphens get lost,
@c but the example is long enough to avoid looking strange.
-@lilypond[quote,verbatim]
+@lilypond[verbatim,quote]
<<
\relative c' {
\clef bass
\time 6/8
\partial 8
}
- \relative c'' { \key f \major
+ \relative c'' {
+ \key f \major
c8 c([ bes)] a a([ g)] f f'4. b, c4.~ c4
}
\addlyrics {
Let flee -- cy flocks the hills a -- dorn, __
}
- \relative c' { \key f \major
+ \relative c' {
+ \key f \major
r8 r4. r4 c8 a'([ g)] f f([ e)] d e([ d)] c bes'4
}
\addlyrics {
@end example
@noindent
-by convention, this is placed at the top of your LilyPond file.
+By convention, this is placed at the top of your LilyPond file.
These annotations make future upgrades of LilyPond go more
smoothly. Changes in the syntax are handled with a special
-program, @file{convert-ly} (see @rprogram{Updating files with
-convert-ly}), and it uses @code{\version} to determine what rules
-to apply.
+program, @file{convert-ly}, and it uses @code{\version} to
+determine what rules to apply. For details, see
+@rprogram{Updating files with convert-ly}.
@node Adding titles
The title, composer, opus number, and similar information are
entered in the @code{\header} block. This exists outside of the
main music expression; the @code{\header} block is usually placed
-underneath the @ruser{Version number}.
+underneath the @ref{Version number}.
@example
\version "2.11.23"
@code{g,} will always mean the note on the bottom staff of the
bass clef.
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[verbatim,quote,ragged-right]
{
\clef bass
c' b g, g,
Here is a four-octave scale:
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[verbatim,quote,ragged-right]
{
\clef bass
c, d, e, f,
As you can see, writing a melody in the treble clef involves a lot
of quote @code{'} marks. Consider this fragment from Mozart:
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[verbatim,quote,ragged-right]
{
\key a \major
\time 6/8
of errors. With @code{\relative}, the previous example is much
easier to read:
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[verbatim,quote,ragged-right]
\relative c'' {
\key a \major
\time 6/8
confusing. We can reduce this confusion by using
@emph{variables}.
-With variables (also known as variables or macros), we can break
+With variables (also known as identifiers or macros), we can break
up complex music expressions. An variable is assigned as
follows:
Variables must be defined @emph{before} the main music
expression.
-@lilypond[quote,verbatim,ragged-right]
+@lilypond[verbatim,quote,ragged-right]
violin = \new Staff { \relative c'' {
a4 b c b
}}
@end lilypond
@noindent
-The name of an variable must have alphabetic characters only: no
+The name of an variable must have alphabetic characters only, no
numbers, underscores, or dashes.
It is possible to use variables for many other types of objects in
@subsection After the tutorial
After finishing the tutorial, you should probably try writing a
-piece or two. Start with one of the @ruser{Templates}, and add
-notes. If you need any notation that was not covered in the
+piece or two. Start by adding notes to one of the @ref{Templates}.
+If you need any notation that was not covered in the
tutorial, look at the Notation Reference, starting with
-@ruser{Basic notation}. If you want to write for an instrument
+@ruser{Musical notation}. If you want to write for an instrument
ensemble that is not covered in the templates, take a look at
-@ruser{Extending the templates}.
+@ref{Extending the templates}.
Once you have written a few short pieces, read the rest of the
Learning Manual (chapters 3-5). There's nothing wrong with
@node How to read the manual
@subsection How to read the manual
-As we saw in @ruser{How to read the tutorial}, many examples in
-the tutorial omitted a @code{\relative c'' @{ ... @}} around the
-printed example.
+Many examples in the tutorial omitted a @code{\relative c'' @{
+... @}} around the printed example, as we saw in
+@ref{How to read the tutorial}.
In the rest of the manual, we are much more lax about the printed
examples: sometimes they may have omitted a @code{\relative c'' @{
manual.
For information about the structure of the rest of the manual, see
-@ruser{About this manual}.
+@ref{About this manual}.