@c -*-texinfo-*-
@c This file is part of lilypond.tely

@c TODO:
@c   * more details about running lilypond; error messages,
@c     compiling/viewing (emacs?)
@c   * where to go from First steps+More basics?

@c Your first LilyPond score in 10 minutes?

@node Tutorial
@chapter Tutorial

This tutorial starts with a short introduction to the LilyPond music
language.  After this first contact we will show you how to produce
printed output.  Then you will be able to create and print your own
sheets of music.

@ifhtml
Many people learn programs by trying and fiddling around with the
program.  This is also possible with LilyPond.  If you click on a
picture in the HTML version of this manual, you will see the exact
LilyPond input that was used to generate that image.
Try it on this image

@lilypond[fragment,quote,raggedright,relative=2]
c-\markup { \bold \huge { Click here.  } }
@end lilypond
@end ifhtml

By cutting and pasting the full input into a test file, you have a
starting template for experiments.  If you like learning in this way,
you will probably want to print out or bookmark
@ifhtml
the
@end ifhtml
@ref{Cheat sheet}, which is a table listing all commands for quick
reference.

@menu
* First steps::                 
* Running LilyPond for the first time::  
* More about pitches::          
* Entering ties::               
* Automatic and manual beams::  
* Octave entry::                
* Music expressions explained::  
* More staves::                 
* Adding articulation marks to notes::  
* Combining notes into chords::  
* Advanced rhythmic commands::   
* Commenting input files::      
* Printing lyrics::             
* A lead sheet::                
* Adding titles::               
* Single staff polyphony::      
* Piano staves::                
* Organizing larger pieces::    
* An orchestral part::          
@end menu


@node First steps
@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

@example
c d e f g a b
@end example

@noindent
the result looks like this

@lilypond[fragment,quote,notime,relative=1]
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},
@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

@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}

@cindex rests
@example
r2 r4 r8 r16
@end example

@lilypond[fragment,quote,notime]
\set Score.timing = ##f
r2 r4 r8 r16 s16_" "
@end lilypond

Add a dot @samp{.} after the duration to get a @rglos{dotted note}

@example
a2. a4 a8. a16
@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

@example
\time 3/4
\time 6/8
\time 4/4
@end example

@c A clef here may lead to confusion, remove it.
@lilypond[fragment,quote]
\override Staff.Clef #'transparent = ##t 
\time 3/4
s4_" "
\time 6/8
s4_" "
\time 4/4
s16_" "
@end lilypond

The @rglos{clef} can be set using the @code{\clef} command

@c what is more common name treble or violin?
@c in Dutch, it is violin.
@c in English it is definitely treble.
@example
\clef treble
\clef bass
\clef alto
\clef tenor
@end example

@lilypond[fragment,quote,notime]
\set Score.timing = ##f
\clef violin
s4_" "
\clef bass
s4_" "
\clef alto
s4_" "
\clef tenor
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]
{
  \time 3/4
  \clef bass
  c2 e4 g2.
  f4 e d c2 r4
}
@end lilypond

For more elaborate information on

@quotation
@table @asis
@item Entering pitches and durations
see 
@ref{Pitches}, and @ref{Durations}.
@item Clefs
see @ref{Clef}.
@item Rests
see @ref{Rests}.  
@item Time signatures and other timing commands
see @ref{Time signature}.
@end table
@end quotation


@node Running LilyPond for the first time
@section Running LilyPond for the first time

@c cheesy title to avoid clash with chapter name.

@c FIXME: let's not be so casual about Emacs and VIM, but rather
@c instruct (how) to use them; let advanced user figure-out what
@c commands to type?

@c
@c We don't have enough space to explain either VIM
@c or Emacs non-advanced users, and I fear that both editors will only
@c confuse newbies. I vote for keeping the material in footnotes.
@c 
@c --hwn 

In the last section we explained what kind of things you could 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.

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}

@example
@{ c'4 e' g' @}
@end example

@noindent
To process @file{test.ly}, proceed as follows

@example
lilypond test.ly
@end example

@noindent
You will see something resembling

@example
lilypond (GNU LilyPond) 2.2.0
Running lilypond...
Now processing `/home/fred/ly/test.ly'
Parsing...
Interpreting music...[1]
@emph{... more interesting stuff ... }
DVI output to `test.dvi'...
PDF output to `test.pdf'...
PS output to `test.ps'...
@end example

@cindex DVI file
@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 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 

A @rglos{sharp} (@texisharp{}) pitch is made by adding @samp{is} to
the name, a @rglos{flat} (@texiflat{}) 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,
like German and Dutch.}

@example
cis1 ees fisis aeses
@end example

@lilypond[fragment,quote,notime]
\set Score.timing = ##f
\transpose c c' { cis1 ees fisis aeses s16_" " }
@end lilypond

@cindex key signature, setting
The key signature is set with the command @code{\key}, followed by
a pitch and @code{\major} or @code{\minor}

@example
\key d \major
g1
\key c \minor
g
@end example

@lilypond[fragment,quote,notime,fragment]
\key d \major
g'1
\key c \minor
g'
@end lilypond

@noindent
Key signatures together with the pitches (including alterations) are
used to determine when to print accidentals.  This is a
feature that often causes confusion to newcomers, so let us explain it
in more detail.


LilyPond makes a sharp distinction between musical content and
layout.  The alteration (flat, natural or sharp) of a note is part of
the pitch, and is therefore musical content.  Whether an accidental (a
flat, natural or sharp @emph{sign}) is printed in front of the
corresponding note is a question of layout.  Layout is something that
follows rules, so accidentals are printed automatically according to
those rules.  The pitches in your music are works of art, so they will
not be added automatically, and you must enter what you want to hear.

In this example

@lilypond[quote,notime,fragment]
\key d \major
d' cis' fis'
@end lilypond

@noindent
no note has an explicit accidental, but you still must enter

@example
\key d \major
d cis fis
@end example

@noindent
The code @samp{d} does not mean `print a black dot just below the
staff.'  Rather, it means: `a note with pitch D-natural.'  In the key
of A-flat, it does get an accidental

@lilypond[quote,notime,fragment]
\key as \major
d'
@end lilypond

@example
\key as \major
d
@end example

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
according to different rules.


For more information on

@quotation
@table @asis
@item Accidentals
see @ref{Accidentals}.

@item Key signature
see @ref{Key signature}.
@end table
@end quotation

@node Entering ties
@section Entering ties

@cindex tie
A 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
@end lilypond

For more information on Ties see @ref{Ties}.



@node Automatic and manual beams
@section Automatic and manual beams

@cindex beams, by hand 
Beams are drawn automatically

@lilypond[quote,fragment,relative=2,verbatim]
a8 ais d es r d
@end lilypond

@noindent
If you do not like where beams are put, they can be entered by
hand.  Mark the first note to be beamed with @samp{[} and the last one
with @samp{]}.

@lilypond[quote,fragment,relative=2,verbatim]
a8[ ais] d[ es r d]
@end lilypond

For more information on beams, see @ref{Beaming}.


Here are key signatures, accidentals and ties in action

@example
@{
  \time 4/4
  \key g \minor
  \clef violin
  r4 r8 a8 gis4 b
  a8 d4.~ d e8
  fis4 fis8 fis8 eis4 a8 gis~
  gis2 r2
@}
@end example

@ignore
FIXME
ugr: removing the ignore block, leaving the comment line below
@c TODO: use relative mode, verbatim, junk \transpose and above @example
@end ignore


@lilypond[fragment,quote,noindent,linewidth=50\staffspace]
\transpose c c' {
  \time 4/4
  \key g \minor
  \clef violin
  r4 r8 a8 gis4 b
  a8 d4.~ d e8
  fis4 fis8 fis8 eis4 a8 gis~
  gis2 r2
}
@end lilypond

@cindex accidentals


@noindent
There are some interesting points to note in this example.  Bar lines
and beams are drawn automatically.  Line breaks are calculated
automatically; it does not matter where the line breaks are in the
source file.  Finally, the order in which time, key and clef changes
are entered is not relevant: in the printout, these are ordered
according to standard notation conventions.



@node Octave entry
@section Octave entry


@c Tim wants to move this quotes example just before the: quotes-do not-work
@c score, but we'd need to remove quotes from the other two (key and
@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 
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{,}
(a comma).  Middle C is @code{c'}

@example
c'4 c'' c''' \clef bass c c,
@end example

@lilypond[quote,notime,fragment]
c'4 c'' c''' \clef bass c c,
@end lilypond

An example of the use of quotes is in the following Mozart fragment

@lilypond[quote,raggedright,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 
@end lilypond

@noindent
The last example shows that music in a high register needs lots of quotes.
This makes the input less readable, and it is a source of errors.  The
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{'}
or @code{,} after a note) is chosen so it it is closest to the
previous one.  For example, @samp{c f} goes up while @samp{c g} goes
down

To use relative mode, add @code{\relative} before the piece of
music. The first note is taken relative to the middle C
@c no , for this sentence
(i.e. @code{c'})



@lilypond[quote,notime,fragment,verbatim]
\relative {
  c' f c g c
}
@end lilypond


Since most music has small intervals, pieces can be written almost
without octavation quotes in relative mode.  The previous example is
entered as

@lilypond[quote,raggedright,verbatim]
\relative {
  \key a \major
  \time 6/8
  cis'8. d16 cis8 e4 e8
  b8. cis16 b8 d4 d8
}
@end lilypond

@c needed better, maybe even redundant explanation
@c   added another example below.
@c grappig: Pa vond het heel logies, en slim toen-i eenmaal begreep.
@c in eerste instantie drong het `relative' niet door zonder extra uitleg.
Larger intervals are made by adding octavation quotes.

@lilypond[quote,notime,verbatim,fragment]
\relative c {
  c'' f, f c' c g' c,
}
@end lilypond

In summary, quotes or commas no longer determine the absolute height
of a note in @code{\relative} mode.  Rather, the height of a note is
relative to the previous one, and changing the octave of a single note
shifts all following notes an octave up or down.

For more information on Relative octaves see @ref{Relative octaves},
and @ref{Octave check}.


@node Music expressions explained
@section Music expressions explained


In input files, music is represent by so-called @emph{music
expression}.  We have already seen in the previous examples; 
a single note is a music expression

@lilypond[fragment,quote,verbatim,relative=3]
a4
@end lilypond

Enclosing group of notes in braces creates a new music
expression

@lilypond[fragment,quote,verbatim,relative=3]
{ a4 g4 }
@end lilypond

Putting a bunch of music expressions (notes) in braces, means that
they should be played in sequence.  The result again is a music
expression, which can be grouped with other expressions sequentially.
Here, the expression from the previous example is combined with two
notes

@lilypond[fragment,quote,verbatim,relative=3]
{ { a4 g } f g } 
@end lilypond

This technique is useful for non-monophonic music.  To enter music
with more voices or more staves, we also combine expressions in
parallel.  Two voices that should play at the same time, are entered
as a simultaneous combination of two sequences.  A `simultaneous'
music expression is formed by enclosing expressions in @code{<<} and
@code{>>}.  In the following example, three sequences (all containing
two other notes) are combined simultaneously

@lilypond[fragment,quote,verbatim,relative=3]
<<
   { a4 g }
   { f e }
   { d b }
>>
@end lilypond

This mechanism is similar to mathematical
formulas: a big formula is created by composing small formulas.  Such
formulas are called expressions, and their definition is recursive, so
you can make arbitrarily complex and large expressions.  For example,

@example
1

1 + 2

(1 + 2) * 3

((1 + 2) * 3) / (4 * 5)
@end example

@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
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
for complex music like polyphonic scores.

Note that this example only has one staff, whereas
the previous example had three seperate staves.  That is because this
example begins with a single note.  To determine the number of staves,
LilyPond looks at the first element.  If it's a single note, there's one
staff; if there's a simultaneous expression, there's more than one staff.

@lilypond[fragment,quote,verbatim,relative=2] 
{
  c <<c e>>
  << { e f } { c <<b d>> } >>
}
@end lilypond

Music files with deep nesting can be confusing to enter and
maintain.  One convention that helps against this confusion is
indenting.  When entering a file with deep nesting of braces and
angles, it is customary to use an indent that indicates the nesting
level.  Formatting music like this eases reading and helps you insert
the right number of closing braces at the end of an expression.  For
example,

@example
<<
  @{
    @dots{}
  @}
  @{
    @dots{}
  @}
>>
@end example

Some editors have special support for entering LilyPond, and can help
indenting source files.  See @ref{Editor support} for more information.

@node More staves
@section More staves

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
@code{Staff} elements are then combined parallel with @code{<<} and
@code{>>}, as demonstrated here

@lilypond[quote,fragment,verbatim]
<<
  \new Staff { \clef treble c'' }
  \new Staff { \clef bass c }
>>
@end lilypond


The command @code{\new} introduces a `notation context.'  A notation
context is an environment in which musical events (like notes or
@code{\clef} commands) are interpreted.  For simple pieces, such
notation contexts are created automatically.  For more complex pieces, it
is best to mark contexts explicitly.  This ensures that each fragment
gets its own stave.

There are several types of contexts: @code{Staff}, @code{Voice} and
@code{Score} handle melodic notation.  Other contexts are also
@code{Lyrics} (for setting lyric texts) and @code{ChordNames} (for
printing chord names).


In terms of syntax, prepending @code{\new} to a music expression
creates a bigger music expression.  In this way it resembles the minus
sign in mathematics.  The formula @math{(4+5)} is an expression, so
@math{-(4+5)} is a bigger expression.

We can now typeset a melody with two staves

@c TODO: (c) status of this Paul McCartney (?) song (let's all stand together)

@lilypond[fragment,quote,verbatim,raggedright]
\relative <<
  \new Staff {
    \time 3/4
    \clef treble 
    
    e'2 d4 c2 b4 a8[ a]
    b[ b] g[ g] a2. 
  }
  \new Staff {
     \clef bass
     c,,2 e4 g2.
     f4 e d c2.
  }
>>
@end lilypond

For more information on context see the description in
@ref{Interpretation contexts}.



@node Adding articulation marks to notes
@section Adding articulation marks to notes

@cindex articulation
@cindex accents
@cindex staccato

Common accents can be added to a note using a dash (@samp{-}) and a
single character

@lilypond[fragment,quote,verbatim,relative=2]
c-.  c-- c-> c-^ c-+ c-_
@end lilypond

@cindex fingering
Similarly, fingering indications can be added to a note using a dash
(@samp{-}) and the digit to be printed

@lilypond[fragment,quote,verbatim,relative=2]
c-3 e-5 b-2 a-1
@end lilypond

Articulations and fingerings are usually placed automatically, but you
can specify a direction using @samp{^} (up) or @samp{_} (down).  You can
also use multiple articulations on the same note.  In most cases, it's
best to let LilyPond determine the articulation directions.

@lilypond[fragment,quote,verbatim,relative=2]
c_-^1 d^. f^4_2-> e^-_+
@end lilypond

Dynamic signs are made by adding the markings (with a backslash) to
the note

@lilypond[fragment,quote,verbatim,relative=2]
c\ff c\mf
@end lilypond

@cindex dynamics
@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
crescendo, or the command @code{\!} can be used

@lilypond[fragment,quote,verbatim,relative=2]
c2\< c2\ff\> c2 c2\!
@end lilypond



@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

@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

@lilypond[quote,fragment,relative=2]
c2~( c8 fis fis4 ~ fis2 g2)
@end lilypond

@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.

@lilypond[quote,fragment,relative=2,verbatim]
a8(\( ais b c) cis2 b'2 a4 cis, c\)
@end lilypond


For more information on

@quotation
@table @asis
@item Fingering
see @ref{Fingering instructions}.
@item Articulations
see @ref{Articulations}.
@item Slurs
see @ref{Slurs}.
@item Phrasing slurs
see @ref{Phrasing slurs}.
@item Dynamics
see @ref{Dynamics}.
@end table
@end quotation


@node Combining notes into chords
@section Combining notes into chords

@cindex chords
Chords can be made by surrounding pitches with angle brackets.
Angle brackets are the symbols @samp{<} and @samp{>}.

@lilypond[quote,relative=1,fragment,verbatim]
r4 <c e g>4 <c f a>8
@end lilypond


You can combine markings like beams and ties with chords.  They must
be placed outside the angled brackets

@lilypond[quote,relative=1,fragment,verbatim]
r4 <c e g>8[ <c f a>]~ <c f a>
@end lilypond

@example
r4 <c e g>8\>( <c e g> <c e g> <c f a>\!)
@end example

@lilypond[quote,relative=1,fragment]
\slurUp
r4 <c e g>8\>( <c e g> <c e g> <c f a>\!)
@end lilypond


@node Advanced rhythmic commands
@section Advanced rhythmic commands

@cindex pickup
@cindex anacruse
@cindex partial measure
A pickup is entered with the keyword @code{\partial}.  It
is followed by a duration: @code{\partial 4} is a quarter note upstep
and @code{\partial 8} an eighth note

@lilypond[quote,relative=2,verbatim,fragment]
\partial 8
f8 c2 d e
@end lilypond

@cindex tuplets
@cindex triplets
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

@lilypond[quote,relative=1,verbatim,fragment]
\times 2/3 { f8 g a }
\times 2/3 { c r c }
@end lilypond

@cindex grace notes
@cindex acciaccatura
Grace notes are also made by prefixing a music expression with the
keyword @code{\appoggiatura} or @code{\acciaccatura}
@cindex appoggiatura
@cindex acciaccatura

@lilypond[quote,relative=2,verbatim,fragment]
c4 \appoggiatura b16 c4
c4 \acciaccatura b16 c4
@end lilypond

@noindent

For more information on

@quotation
@table @asis
@item Grace notes
see @ref{Grace notes},
@item Tuplets
see @ref{Tuplets},
@item Pickups
see @ref{Partial measures}.
@end table
@end quotation


@node Commenting input files
@section Commenting input files

@cindex comments
@cindex line comment
@cindex block comment
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 @samp{%}
introduces a line comment; after  @code{%} the rest of the line   is
ignored.  A block comments marks a whole section of music
input. Anything that is enclosed in @code{%@{} and @code{%@}} is
ignored.  The following fragment shows possible uses for comments

@example
% notes for twinkle twinkle follow
c4 c g' g a a g2

%@{
    This line, and the notes below
    are ignored, since they are in a
    block comment.

    g g f f e e d d c2 
%@}
@end example

@c  FIXME
@c   This is good info, but I wouldn't call it a comment.  IMO it should
@c   be moved somewhere else.  I don't know exactly where yet, but I'll
@c   resolve it soon.  -GP

@cindex versioning

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.1.17, use

@example
\version "2.1.17"
@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
@code{\version} to determine what rules to apply.


@node Printing lyrics
@section Printing lyrics
@cindex lyrics

@c TODO: (c) status of the Queen fragment.

@cindex Lyrics
@cindex Songs
Lyrics are entered by separating each syllable with a space

@example
I want to break free
@end example

Consider the melody

@lilypond[quote,verbatim,fragment,raggedright]
\relative {
    r4 c \times 2/3 { f g g }
    \times 2/3 { g4( a2) }
}
@end lilypond

The lyrics can be set to these notes, combining both with the
@code{\addlyrics} keyword

@lilypond[quote,verbatim,fragment,raggedright]
<<
  \relative {
    r4 c \times 2/3 { f g g }
    \times 2/3 { g4( a2) }
  }
  \addlyrics { I want to break free }
>>
@end lilypond

@cindex melisma
@cindex extender line
@c synonyms?
This melody ends on a @rglos{melisma}, a single syllable (`free')
sung to more than one note.  This is indicated with an @emph{extender
line}.  It is entered as two underscores, i.e.,

@example
@{ I want to break free __ @}
@end example 

@lilypond[fragment,quote,raggedright]
<<
  \relative {
    r4 c \times 2/3 { f g g }
    \times 2/3 { g4( a2) }
  }
  \addlyrics { I want to break free __ }
>>
@end lilypond

Similarly, hyphens between words can be entered as two dashes,
resulting in a centered hyphen between two syllables

@example
Twin -- kle twin -- kle
@end example

@lilypond[fragment,quote,raggedright]
<<
  \relative {
     \time 2/4
     f4 f c' c
   }
   \addlyrics { Twin -- kle twin -- kle }
>>
@end lilypond

More options, like putting multiple lines of lyrics below a melody are
discussed in @ref{Vocal music}.


@node A lead sheet
@section A lead sheet

@cindex Lead sheets
@cindex chords
@cindex chord names

In popular music, it is common to denote accompaniment with chord names.
Such chords can be entered like notes,

@lilypond[quote,verbatim,raggedright]
\chords { c2 f4. g8 }
@end lilypond

@noindent
Now each pitch is read as the root of a chord instead of a note.
This mode is switched on with @code{\chords}


Other chords can be created by adding modifiers after a colon.  The
following example shows a few common modifiers

@lilypond[quote,verbatim]
\chords { c2 f4:m g4:maj7 gis1:dim7 }
@end lilypond

For lead sheets, chords are not printed on staves, but as names on a
line of themselves.  Hence, we have to override the context with
@code{\new}, rendering the music expression in a @code{ChordNames}
context

@lilypond[quote,verbatim]
\new ChordNames \chords { c2 f4.:m g4.:maj7 gis8:dim7 }
@end lilypond

@cindex lead sheet
When put together, chord names, lyrics and a melody form
a lead sheet, for example,

@example
<<
  \new ChordNames \chords @{ @emph{chords} @}
  @emph{the melody}
  \addlyrics @{ @emph{the text} @}
>>
@}
@end example

@lilypond[quote,raggedright]
<<
  \new ChordNames \chords { r2 c:sus4 f } 
  \relative {
    r4 c' \times 2/3 { f g g }
    \times 2/3 { g4( a2) }
  }
 \addlyrics { I want to break free __ }
>>
@end lilypond

A complete list of modifiers and other options for layout can be found
in @ref{Chords}.


@node Adding titles
@section Adding titles

Bibliographic information is entered in a separate block, the
@code{\header} block.  The name of the piece, its composer, etc., are
entered as an assignment, within @code{\header
@{@tie{}@dots{}@tie{}@}}.  The @code{\header} block is usually put at
the top of the file.  For example,

@example 
\header @{
  title = "Miniature" 
  composer = "Igor Stravinsky"
@}

@{ @dots{} @}
@end example


When the file is processed the title and composer are printed above
the music.  More information on titling can be found in @ref{Creating
titles}.


@node Single staff polyphony
@section Single staff polyphony

@cindex polyphony
@cindex multiple voices
@cindex voices, more -- on a staff
When different melodic lines are combined on a single staff they are
printed as polyphonic voices; each voice has its own stems, slurs and
beams, and the top voice has the stems up, while the bottom voice has
them down.

Entering such parts is done by entering each voice as a sequence (with
@code{@{...@}}), and combining those simultaneously, separating the
voices with @code{\\}

@lilypond[quote,verbatim,relative=2,fragment]
<< { a4 g2 f4~ f4 } \\
   { r4 g4 f2 f4 } >>
@end lilypond

For polyphonic music typesetting, spacer rests can also be convenient;
these are rests that do not print.  They are useful for filling up
voices that temporarily do not play.  Here is the same example with a
spacer rest (@code{s}) instead of a normal rest (@code{r}),

@lilypond[quote,verbatim,relative=2,fragment]
<< { a4 g2 f4~ f4 } \\
   { s4 g4 f2 f4 } >>
@end lilypond

@noindent
Again, these expressions can be nested arbitrarily

@lilypond[quote,fragment,verbatim,relative=2,fragment]
<<
  \new Staff <<
    { a4 g2 f4~ f4 } \\
    { s4 g4 f2 f4 }
  >>
  \new Staff <<
    \clef bass
    { <c, g>1 ~ <c g>4 } \\
    { f4 d e2 ~ e4}
  >>
>>
@end lilypond

More features of polyphonic typesetting in the notation manual are
described in @ref{Polyphony}.


@node Piano staves
@section 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},

@example
<< \new Staff @{ @dots{} @}
   \new Staff @{ @dots{} @} >>
@end example

@noindent
but now this entire expression must be interpreted as a
@code{PianoStaff}

@example
\new PianoStaff << \new Staff @dots{} >>
@end example

Here is a small example

@lilypond[quote,verbatim,relative=1,fragment]
\new PianoStaff <<
  \new Staff { \time 2/4 c4 c g' g }
  \new Staff { \clef bass c,, c' e c }
>>
@end lilypond

More information on formatting piano music is 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,
more deeply nested.  Such large expressions can become unwieldy.

By using variables, also known as identifiers, it is possible to break
up complex music expressions.  An identifier is assigned as follows

@example
namedMusic = @{ @dots{} @}
@end example

@noindent
The contents of the music expression @code{namedMusic}, can be used
later by preceding the name with a backslash, i.e., @code{\namedMusic}.
In the next example, a two-note motive is repeated two times by using
variable substitution

@lilypond[quote,raggedright,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
running music.

It is possible to use variables for many other types of objects in the
input.  For example,

@example
width = 4.5\cm
name = "Wendy"
aFivePaper = \paper @{ paperheight = 21.0 \cm @}
@end example

Depending on its contents, the identifier can be used in different
places.  The following example uses the above variables

@example
  \paper @{
    \aFivePaper
    linewidth = \width
  @}
  @{ c4^\name @}
@end example

More information on the possible uses of identifiers is in the
technical manual, in @ref{Input variables and Scheme}.
@c fixme: the ref is too technical.


@node An orchestral part
@section An orchestral part

In orchestral music, all notes are printed twice. Once in a part for
the musicians, and once in a full score for the conductor.  Identifiers can
be used to avoid double work. The music is entered once, and stored in
a variable.  The contents of that variable is then used to generate
both the part and the score.

It is convenient to define the notes in a special file.  For example,
suppose that the file @file{horn-music.ly} contains the following part
of a horn/bassoon duo

@example
hornNotes =  \relative c @{
  \time 2/4
  r4 f8 a cis4 f e d
@}
@end example

@noindent
Then, an individual part is made by putting the following in a file

@example
\include "horn-music.ly"
\header @{
  instrument = "Horn in F"
@}

@{
 \transpose f c' \hornNotes
@}
@end example

The line

@example
\include "horn-music.ly"
@end example

@noindent
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
@samp{f} is denoted by notated @code{c'}, which corresponds with
tuning of a normal French Horn in@tie{}F.  The transposition can be seen
in the following output

@lilypond[quote,raggedright]
  \transpose f c' \relative c {
    \time 2/4
    r4 f8 a cis4 f e d
  }
@end lilypond

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
duration, longer rests can be constructed.  For example, this rest
takes 3@tie{}measures in 2/4 time

@example
R2*3
@end example

When printing the part, multi-rests
must be condensed.  This is done by setting a run-time variable

@example
\set Score.skipBars = ##t
@end example

@noindent
This command sets the property @code{skipBars} in the
@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]
\transpose f c' \relative c {
    \time 2/4
    \set Score.skipBars = ##t 
    R2*3
    r4 f8 a cis4 f e d
  }
@end lilypond


The score is made by combining all of the music together.  Assuming
that the other voice is in @code{bassoonNotes} in the file
@file{bassoon-music.ly}, a score is made with

@example
\include "bassoon-music.ly"
\include "horn-music.ly"

  <<
    \new Staff \hornNotes
    \new Staff \bassoonNotes
  >>
@end example

@noindent
leading to 

@lilypond[quote,raggedright]
  \relative c <<
    \new Staff {
      \time 2/4 R2*3
      r4 f8 a cis4 f e d
    }
    \new Staff {
      \clef bass
      r4 d,8 f | gis4 c | b bes |
      a8 e f4 | g d | gis f
    }
  >>
@end lilypond

More in-depth information on preparing parts and scores can be found
in the notation manual; see @ref{Orchestral music}.

Setting run-time variables (`properties') is discussed in
@ref{Changing context properties on the fly}.


@ignore

* longer example

* discuss expectations (?)

* conclude tutorial

* overview of chapters?

@end ignore
