-@c -*- coding: latin-1; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@c TODO:
@c compiling/viewing (emacs?)
@c * where to go from First steps+More basics?
+@c wherever possible, do not include index entries here; the
+@c index should point to stuff in the reference manual. -gp
+
@c Your first LilyPond score in 10 minutes?
@node Tutorial
LilyPond input that was used to generate that image.
Try it on this image
-@lilypond[fragment,quote,raggedright,relative=2]
+@lilypond[fragment,quote,ragged-right,relative=2]
c-\markup { \bold \huge { Click here. } }
@end lilypond
@end ifhtml
@ifhtml
the
@end ifhtml
-@ref{Cheat sheet}, which is a table listing all commands for quick
-reference.
+@ref{Cheat sheet}, which is a table listing of the most common
+commands for quick reference.
@menu
* First steps::
* More staves::
* Adding articulation marks to notes::
* Combining notes into chords::
-* Advanced rhythmic commands::
+* Advanced rhythmic commands::
* Commenting input files::
* Printing lyrics::
* A lead sheet::
* Piano staves::
* Organizing larger pieces::
* An orchestral part::
+* After the tutorial::
@end menu
@section First steps
The first example demonstrates how to enter the most elementary piece
-of music, a scale. A note can be entered by typing its name, from
-@samp{a} through @samp{g}. So, if you enter
+of music, a @rglos{scale}. A @rglos{note} can be entered by typing its
+name, from @samp{a} through @samp{g}. So, if you enter
@example
+@{
c d e f g a b
+@}
@end example
@noindent
c d e f g a b
@end lilypond
-The duration of a note is specified by a number after the note name.
-@samp{1} for a @rglos{whole note}, @samp{2} for a @rglos{half note},
+Every piece of LilyPond input needs to have @{curly braces@} placed
+around the input. For the rest of this manual, most examples will
+omit these braces, but don't forget them in your own music!
+
+In addition, many examples use @code{relative} mode. This is explained
+in @ref{Octave entry}; for now simply be aware that some examples
+should be placed inside @code{\relative @{ @emph{...music...} @}}.
+Many example have also been compressed horizontally to save
+space, using @code{\paper @{ ragged-right = ##t @}}.
+
+@cindex Case sensitive
+Finally, LilyPond input is case sensitive. @code{ @{ c d e @} } is
+valid input; @code{ @{ C D E @} } will produce an error message.
+
+The @rglos{duration} of a note is specified by a number after the note
+name. @samp{1} for a @rglos{whole note}, @samp{2} for a @rglos{half note},
@samp{4} for a @rglos{quarter note} and so on
@example
a1 a2 a4 a16 a32
@end example
-@c FIXME: have NOTIME also remove Score.timing?
@lilypond[fragment,quote,notime,relative=2]
-\set Score.timing = ##f
\set Staff.autoBeaming = ##f
{ a1 a2 a4 a16 a32 s16_" " }
@end lilypond
-If you do not specify a @rglos{duration}, the duration last entered is
-used for the next notes. The duration of the first note in input
-defaults to a quarter
+If you do not specify a duration, the duration last entered is used
+for the next notes. The duration of the first note in input defaults
+to a quarter
@example
a a8 a a2 a
@end example
@lilypond[fragment,quote,notime,relative=2]
-\set Score.timing = ##f
{ a a8 a a2 a s16_" " }
@end lilypond
-Rests are entered just like notes, but with the name @samp{r}
+A @rglos{rest} is entered just like a note, but with the name @samp{r}
-@cindex rests
@example
r2 r4 r8 r16
@end example
@lilypond[fragment,quote,notime]
-\set Score.timing = ##f
r2 r4 r8 r16 s16_" "
@end lilypond
@end example
@lilypond[fragment,quote,notime,relative=1]
-\set Score.timing = ##f
{ a2. a4 a8. a16 s16_" " }
@end lilypond
-The @rglos{meter} (or @rglos{time signature}) can be set with the
-@code{\time} command
+The (or @rglos{time signature}) can be set with the @code{\time}
+command
@example
\time 3/4
@c A clef here may lead to confusion, remove it.
@lilypond[fragment,quote]
-\override Staff.Clef #'transparent = ##t
+\override Staff.Clef #'transparent = ##t
\time 3/4
s4_" "
\time 6/8
@end example
@lilypond[fragment,quote,notime]
-\set Score.timing = ##f
\clef treble
s4_" "
\clef bass
s16_" "
@end lilypond
-
Remember to enclose the notes and commands in curly braces
@code{@{@tie{}@dots{}@tie{}@}} to convert it to printable output.
-@lilypond[fragment,quote,noindent,linewidth=55\staffspace]
+@c @li lypond[fragment,quote,noindent,line-width=55\staff-space]
+@lilypond[fragment,quote,noindent,verbatim]
\time 3/4
\clef bass
c2 e4 g2.
f4 e d c2 r4
@end lilypond
-For more elaborate information on
+For more information on
@quotation
@table @asis
@item Entering pitches and durations
-see
+see
@ref{Pitches}, and @ref{Durations}.
@item Clefs
see @ref{Clef}.
@item Rests
-see @ref{Rests}.
+see @ref{Rests}.
@item Time signatures and other timing commands
see @ref{Time signature}.
@end table
@c cheesy title to avoid clash with chapter name.
-In the last section we explained what kind of things you can enter
-in a LilyPond file. In this section we will explain what commands to
-run and how to view or print the output. If you have not used
-LilyPond before, want to test your setup, or want to run an example
-file yourself, read this section. The instructions that follow are
-for Unix-like systems. Some additional instructions for Microsoft
-Windows are given at the end of this section.
+In the last section we explained what kind of things you can enter in
+a LilyPond file. In this section we will explain what commands to run
+and how to view or print the output. If you have not used LilyPond
+before, want to test your setup, or want to run an example file
+yourself, read this section.
+
+@unnumberedsubsec MacOS X
+
+If you double click LilyPond.app, it will open with an example
+file. Save it, for example, to @file{test.ly} on your Desktop, and
+then process it with the menu command @samp{Compile > Typeset File}.
+The resulting PDF file will be displayed on your screen.
+
+Be warned that the first-ever run will take a minute or two, because
+all of the system fonts have to be analyzed first.
+
+@unnumberedsubsec Windows
+
+On Windows, start up a text-editor@footnote{Any simple or
+programmer-oriented editor will do, for example Notepad. Do not use a
+word processor, since these insert formatting codes that will confuse
+LilyPond.} and enter
+
+@verbatim
+{ c'4 e' g' }
+@end verbatim
+
+Save it on the desktop as @file{test.ly} and make sure that it is not
+called @file{test.ly.TXT}. Double clicking @file{test.ly} will process
+the file and show the resulting PDF file.
+
+
+@unnumberedsubsec Unix
Begin by opening a terminal window and starting a text editor. For
example, you could open an xterm and execute
@code{joe}.@footnote{There are macro files for VIM addicts, and there
is a @code{LilyPond-mode} for Emacs addicts. If they have not been
-installed already, refer to
-@c FIXME lousy reference.
-the file @file{INSTALL.txt}.} In your text editor, enter the following
-input and save the file as @file{test.ly}
+installed already, refer to the file @file{INSTALL.txt}.} In your
+text editor, enter the following input and save the file as
+@file{test.ly}
-@example
-@{ c'4 e' g' @}
-@end example
+@verbatim
+{ c'4 e' g' }
+@end verbatim
@noindent
To process @file{test.ly}, proceed as follows
@example
lilypond test.ly
-GNU LilyPond 2.5.0
+GNU LilyPond 2.6.0
Processing `test.ly'
Parsing...
Interpreting music... [1]
-Preprocessing graphical objects...
+Preprocessing graphical objects...
Calculating line breaks... [2]
-Layout output to `test.tex'...
-Converting to `test.dvi'...
-Converting to `test.ps'...
+Layout output to `test.ps'...
Converting to `test.pdf'...
@end example
@cindex Viewing music
@cindex xdvi
@noindent
-The result is the file @file{test.pdf}@footnote{For @TeX{}
-aficionados: there is also a @file{test.dvi} file. It can be viewed
-with @code{xdvi}. The DVI uses a lot of PostScript specials, which do
-not show up in the magnifying glass. The specials also mean that the
-DVI file cannot be processed with @code{dvilj}. Use @code{dvips} for
-printing.
-@cindex dvips
-@cindex dvilj
-@cindex DVI driver
-} which you can print or view with the standard facilities of your
-operating system.@footnote{If your system does not have any tools
-installed, you can try
+The result is the file @file{test.pdf} which you can print or view
+with the standard facilities of your operating system.@footnote{If
+your system does not have any tools installed, you can try
@uref{http://@/www@/.cs@/.wisc@/.edu/@/~ghost/,Ghostscript}, a freely
available package for viewing and printing PDF and PostScript files.}
-On Windows, start up a text-editor@footnote{Any simple or
-programmer-oriented editor will do, for example Notepad. Do not use a
-word processor, since these insert formatting codes that will confuse
-LilyPond.} and enter
-
-@example
-@{ c'4 e' g' @}
-@end example
-
-Save it on the desktop as @file{test.ly} and make sure that it is not
-called @file{test.ly.TXT}. Double clicking @file{test.ly} will process
-the file and show the resulting PDF file.
-
-
@node More about pitches
-@section More about pitches
+@section More about pitches
-A @rglos{sharp} (@texisharp{}) pitch is made by adding @samp{is} to
-the name, a @rglos{flat} (@texiflat{}) pitch by adding @samp{es}. As
+A @rglos{sharp} pitch is made by adding @samp{is} to
+the name, a @rglos{flat} pitch by adding @samp{es}. As
you might expect, a @rglos{double sharp} or @rglos{double flat} is
made by adding @samp{isis} or @samp{eses}@footnote{This syntax
derived from note naming conventions in Nordic and Germanic languages,
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
-@ref{Accidentals}, for some examples how accidentals can be printed
+@ref{Automatic accidentals}, for some examples how accidentals can be printed
according to different rules.
@quotation
@table @asis
@item Accidentals
-see @ref{Accidentals}.
+see @ref{Automatic accidentals}.
@item Key signature
see @ref{Key signature}.
@section Entering ties
@cindex tie
-A tie is created by appending a tilde @samp{~} to the first note
-being tied
+A @rglos{tie} is created by appending a tilde @samp{~} to the first
+note being tied
@lilypond[quote,notime,fragment,verbatim,relative=3]
g4~ g a2~ a4
@node Automatic and manual beams
@section Automatic and manual beams
-@cindex beams, by hand
-Beams are drawn automatically
+@cindex beams, by hand
+All @rglos{beam}s are drawn automatically
@lilypond[quote,fragment,relative=2,verbatim]
a8 ais d es r d
a8[ ais] d[ es r d]
@end lilypond
-For more information on beams, see @ref{Beaming}.
+For more information on beams, see @ref{Manual beams}.
Here are key signatures, accidentals and ties in action
-@lilypond[fragment,quote,noindent,linewidth=50\staffspace,verbatim]
+@lilypond[fragment,quote,noindent,line-width=50\staff-space,verbatim]
\relative c'' {
\time 4/4
\key g \minor
@c tie) examples...
@c better to have this just before the `octaves are bad' snipped
-@c but we'd need to remove the ', from \key and tie
+@c but we'd need to remove the ', from \key and tie
To raise a note by an octave, add a high quote @code{'} (apostrophe) to
the note name, to lower a note one octave, add a `low quote' @code{,}
(comma). Middle C is @code{c'}
An example of the use of quotes is in the following Mozart fragment
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\key a \major
\time 6/8
cis''8. d''16 cis''8 e''4 e''8
-b'8. cis''16 b'8 d''4 d''8
+b'8. cis''16 b'8 d''4 d''8
@end lilypond
@noindent
solution is to use `relative octave' mode. This is the
most convenient way to copy existing music.
-In relative mode, a note without octavation quotes (i.e. the @code{'}
+In relative mode, a note without octavation quotes (i.e., the @code{'}
or @code{,} after a note) is chosen so that it is closest to the
previous one. For example, @samp{c f} goes up while @samp{c g} goes
down.
without octavation quotes in relative mode. The previous example is
entered as
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
\relative {
\key a \major
\time 6/8
In input files, music is represent by so-called @emph{music
-expression}s. We have already seen some in the previous examples;
+expression}s. We have already seen some in the previous examples;
a single note is a music expression
@lilypond[fragment,quote,verbatim,relative=3]
notes
@lilypond[fragment,quote,verbatim,relative=3]
-{ { a4 g } f g }
+{ { a4 g } f g }
@end lilypond
This technique is useful for non-monophonic music. To enter music
@cindex expression
@cindex music expression
This is a sequence of expressions, where each expression is contained
-in the next one. The simplest expressions are numbers, and larger
+in the next (larger) one. The simplest expressions are numbers, and larger
ones are made by combining expressions with operators (like @samp{+},
@samp{*} and @samp{/}) and parentheses. Like mathematical expressions,
music expressions can be nested arbitrarily deep, which is necessary
LilyPond looks at the first element. If it is a single note, there is one
staff; if there is a simultaneous expression, there is more than one staff.
-@lilypond[fragment,quote,verbatim,relative=2]
+@lilypond[fragment,quote,verbatim,relative=2]
{
c <<c e>>
<< { e f } { c <<b d>> } >>
@c TODO: (c) status of this Paul McCartney (?) song (let's all stand together)
-@lilypond[fragment,quote,verbatim,raggedright]
+@lilypond[fragment,quote,verbatim,ragged-right]
\relative <<
\new Staff {
\time 3/4
- \clef treble
-
+ \clef treble
+
e'2 d4 c2 b4 a8[ a]
- b[ b] g[ g] a2.
+ b[ b] g[ g] a2.
}
\new Staff {
\clef bass
@cindex slur
-A slur is a curve drawn across many notes, and indicates legato
-articulation. The starting note and ending note are marked with
-@samp{(} and @samp{)}, respectively
+A @rglos{slur} is a curve drawn across many notes, and indicates
+legato articulation. The starting note and ending note are marked
+with @samp{(} and @samp{)}, respectively
@lilypond[fragment,quote,fragment,relative=2,verbatim]
d4( c16) cis( d e c cis d) e( d4)
@end lilypond
@cindex slurs versus ties
-A slur looks like a tie, but it has a different meaning. A tie simply
-makes the first note sound longer, and can only be used on pairs of
-notes with the same pitch. Slurs indicate the articulations of notes,
-and can be used on larger groups of notes. Slurs and ties can be
-nested
+A slur looks like a @rglos{tie}, but it has a different meaning. A
+tie simply makes the first note sound longer, and can only be used on
+pairs of notes with the same pitch. Slurs indicate the articulations
+of notes, and can be used on larger groups of notes. Slurs and ties
+can be nested
@lilypond[quote,fragment,relative=2]
c2~( c8 fis fis4 ~ fis2 g2)
@cindex phrasing slurs
Slurs to indicate phrasing can be entered with @code{\(} and
@code{\)}, so you can have both legato slurs and phrasing slurs at the
-same time.
+same time. You cannot have simultaneous slurs or simultaneous
+phrasing slurs.
@lilypond[quote,fragment,relative=2,verbatim]
a8(\( ais b c) cis2 b'2 a4 cis, c\)
are ignored, since they are in a
block comment.
- g g f f e e d d c2
+ g g f f e e d d c2
%@}
@end example
-@c TODO post-2.4 reorg
+@c TODO post-2.6 reorg
@c This is good info, but I wouldn't call it a comment. IMO it should
@c be moved somewhere else.
There is a special statement that is a kind of comment. The @code{\version}
statement marks for which version of LilyPond the file was written.
-To mark a file for version 2.4.0, use
+To mark a file for version 2.6.0, use
@example
-\version "2.4.0"
+\version "2.9.13"
@end example
@noindent
These annotations make future upgrades of LilyPond go more
smoothly. Changes in the syntax are handled with a special program,
-@file{convert-ly} (see @ref{Invoking convert-ly}), and it uses
+@file{convert-ly} (see @ref{Updating files with convert-ly}), and it uses
@code{\version} to determine what rules to apply.
Consider the melody
-@lilypond[quote,verbatim,fragment,raggedright]
+@lilypond[quote,verbatim,fragment,ragged-right]
\relative {
r4 c \times 2/3 { f g g }
\times 2/3 { g4( a2) }
The lyrics can be set to these notes, combining both with the
@code{\addlyrics} keyword
-@lilypond[quote,verbatim,fragment,raggedright]
+@lilypond[quote,verbatim,fragment,ragged-right]
<<
\relative {
r4 c \times 2/3 { f g g }
@example
@{ I want to break free __ @}
-@end example
+@end example
-@lilypond[fragment,quote,raggedright]
+@lilypond[fragment,quote,ragged-right]
<<
\relative {
r4 c \times 2/3 { f g g }
resulting in a centered hyphen between two syllables
@example
-Twin -- kle twin -- kle
+A -- le gri -- a
@end example
-@lilypond[fragment,quote,raggedright]
+@c no ragged-right here, because otherwise the hypens get lost.
+@lilypond[fragment,quote]
<<
\relative {
\time 2/4
f4 f c' c
}
- \addlyrics { Twin -- kle twin -- kle }
+ \addlyrics { A -- le gri -- a }
>>
@end lilypond
In popular music, it is common to denote accompaniment with chord names.
Such chords can be entered like notes,
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
\chordmode { c2 f4. g8 }
@end lilypond
Other chords can be created by adding modifiers after a colon. The
following example shows a few common modifiers
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
\chordmode { c2 f4:m g4:maj7 gis1:dim7 }
@end lilypond
of @code{\chordmode}. This uses the same syntax as @code{\chordmode},
but renders the notes in a @code{ChordNames} context, with the
following result.
-
-@lilypond[quote,verbatim,raggedright]
+
+@lilypond[quote,verbatim,ragged-right]
\chords { c2 f4.:m g4.:maj7 gis8:dim7 }
@end lilypond
@}
@end example
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
<<
- \chords { r2 c:sus4 f }
+ \chords { r2 c:sus4 f }
\relative {
r4 c' \times 2/3 { f g g }
\times 2/3 { g4( a2) }
@{@tie{}@dots{}@tie{}@}}. The @code{\header} block is usually put at
the top of the file. For example,
-@example
+@example
\header @{
- title = "Miniature"
+ title = "Miniature"
composer = "Igor Stravinsky"
@}
>>
\new Staff <<
\clef bass
- { <c, g>1 ~ <c g>4 } \\
- { e,4 d e2 ~ e4}
+ { <c g>1 ~ <c g>4 } \\
+ { e,,4 d e2 ~ e4}
>>
>>
@end lilypond
More features of polyphonic typesetting are described in this manual
-in section @ref{Polyphony}.
+in section @ref{Basic polyphony}.
@node Piano staves
@cindex staff switch, manual
@cindex cross staff voice, manual
-@cindex @code{\context}
Piano music is typeset in two staves connected by a brace. Printing
such a staff is similar to the polyphonic example in @ref{More staves},
>>
@end lilypond
-More information on formatting piano music is given in @ref{Piano music}.
+More information on formatting piano music is given in @ref{Piano music}.
@node Organizing larger pieces
@section Organizing larger pieces
When all of the elements discussed earlier are combined to produce
-larger files, the @code{\score} blocks get a lot bigger, because the
-music expressions are longer, and, in the case of polyphonic pieces,
+larger files, the @code{\score} blocks get a lot bigger because the
+music expressions are longer, and, in the case of polyphonic music,
more deeply nested. Such large expressions can become unwieldy.
By using variables, also known as identifiers, it is possible to break
In the next example, a two-note motive is repeated two times by using
variable substitution
-@lilypond[quote,raggedright,verbatim,nofragment]
+@lilypond[quote,ragged-right,verbatim,nofragment]
seufzer = {
e'4( dis'4)
}
{ \seufzer \seufzer }
@end lilypond
-The name of an identifier should have alphabetic characters only; no
-numbers, underscores or dashes. The assignment should be outside of
+The name of an identifier should have alphabetic characters only: no
+numbers, underscores, or dashes. The assignment should be outside of
running music.
It is possible to use variables for many other types of objects in the
@example
\paper @{
\aFivePaper
- linewidth = \width
+ line-width = \width
@}
@{ c4^\name @}
@end example
substitutes the contents of @file{horn-music.ly} at this position in
the file, so @code{hornNotes} is defined afterwards. The command
@code{\transpose f@tie{}c'} indicates that the argument, being
-@code{\hornNotes}, should be transposed by a fifth downwards. Sounding
+@code{\hornNotes}, should be transposed by a fifth upwards. Sounding
@samp{f} is denoted by notated @code{c'}, which corresponds with the
tuning of a normal French Horn in@tie{}F. The transposition can be seen
in the following output
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\transpose f c' \relative c {
\time 2/4
r4 f8 a cis4 f e d
In ensemble pieces, one of the voices often does not play for many
measures. This is denoted by a special rest, the multi-measure
rest. It is entered with a capital @samp{R} followed by a duration
-(1@tie{}for a whole note, 2@tie{}for a half note, etc.). By multiplying the
+(@code{1}@tie{}for a whole note, @code{2}@tie{}for a half note,
+etc.). By multiplying the
duration, longer rests can be constructed. For example, this rest
takes 3@tie{}measures in 2/4 time
@code{Score} context to true (@code{##t}). Prepending the rest and
this option to the music above, leads to the following result
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\transpose f c' \relative c {
\time 2/4
- \set Score.skipBars = ##t
+ \set Score.skipBars = ##t
R2*3
r4 f8 a cis4 f e d
}
@end example
@noindent
-leading to
+leading to
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\relative c <<
\new Staff {
\time 2/4 R2*3
@ref{Changing context properties on the fly}.
-@ignore
-
-* longer example
+@node After the tutorial
+@section After the tutorial
-* discuss expectations (?)
+After finishing the tutorial, you should probably try writing a
+piece or two. Start with one of the @ref{Example templates} and
+add notes. If you need any notation that was not covered in the
+tutorial, look at the Notation Reference, starting with
+@ref{Basic notation}. If you want to write for an instrument
+ensemble which is not covered in the @ref{Example templates},
+take a look at @ref{Extending the templates}.
-* conclude tutorial
+Once you have written a few short pieces, read the rest of
+the Learning Manual (chapters 3-5). There's nothing wrong
+with reading them now, of course! However, the rest of the
+Learning Manual assumes that you are familiar with
+LilyPond input. You may wish to skim these chapters right
+now, and come back to them after you have more experience.
-* overview of chapters?
-@end ignore