]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/tutorial.itely
robustify.
[lilypond.git] / Documentation / user / tutorial.itely
index 09e4f49ff7798fb3b6f795fc34e511a47bd49328..735200a1d06545a138cb85b81be09ee22b35afea 100644 (file)
 
 @menu
 * First steps::                 Music language of LilyPond
-* Cheat sheet::                 
 * Running LilyPond::            Printing music
-* The first real tune::         The first real tune
-* Lyrics and chords::           Lyrics and chords
+* More basics::                 
+* Printing lyrics::             
+* A melody with chords ::       
+* More stanzas::                
 * More movements ::             Joining separate pieces of music
 * A piano excerpt::             Piano music
 * Fine tuning a piece::         
 * An orchestral score::         Conductor's score and individual parts
-* Other ways to run LilyPond::  Other ways to run LilyPond
 * Integrating text and music::  Integrating text and music
 * End of tutorial::             The end
 @end menu
 
 Operating lilypond is done through text files: to print a piece of
-music, you enter the music in a file.  When you run lilypond, that
-file is read, and after some computations, the program produces a file
-containing the sheet music that you can print or view.
+music, you enter the music in a file.  When you run lilypond on that
+file, the program produces another file which contains sheet music that
+you can print or view.
 
 This tutorial starts with a small introduction to the LilyPond music
 language.  After this first contact, we will show you how to run
@@ -35,22 +35,12 @@ LilyPond to produce printed output; you should then be able to create
 your first sheets of music. The tutorial continues with more and more
 complex examples.
 
-
-@c title?
-
 @node First steps
 @section First steps
 
-@c @node Music language of LilyPond
-@c @section Music language of LilyPond
-
-In this section, we show how to make small, very simple pieces of
-music in LilyPond.  If you have not seen LilyPond input files before,
-this section is for you. The contents of this section are summarized
-in the Cheat Sheet (See @ref{Cheat sheet}).
-
-You get a simple note by typing its note name, from @code{a} through
-@code{g}. So if you enter
+We start off by showing how very simple music is entered in
+LilyPond:  you get a note simply by typing its note name, from
+@code{a} through @code{g}. So if you enter
 @quotation
 @example
 c d e f g a b
@@ -66,8 +56,8 @@ then the result looks like this:
 @end quotation
 @separate
 
-We continue showing  LilyPond input like we did previously: first a
-snippet of input, then the resulting output.
+We will continue with this format: first we show a snippet of input,
+then the resulting output.
 
 The length of a note is specified by adding a number, ``@code{1}'' for a
 whole note, ``@code{2}'' for a half note, and so on:
@@ -93,7 +83,7 @@ s16_" "
 If you don't specify a duration, the previous one is used: 
 @quotation
 @example
-a a a2 a
+a4 a a2 a
 @end example
 
 @c missing clef seems to raise more questions than actual pitch of notes,
@@ -109,7 +99,9 @@ s16_" "
 @separate
 
 A sharp (@texisharp{}) is made by adding ``@code{is}'', a flat
-(@texiflat{}) by adding ``@code{es}'':
+(@texiflat{}) by adding ``@code{es}''.  As you would expect, a
+double-sharp or double-flat is made by adding ``@code{isis}'' or
+``@code{eses}'':
 
 @quotation
 @example
@@ -169,9 +161,10 @@ The clef can be set using the ``@code{\clef}'' command:
 
 @c what is more common name treble or violin?
 @c in Dutch, its violin.
+@c in English its definately treble.
 @quotation
 @example
-\clef violin
+\clef treble
 \clef bass
 \clef alto
 \clef tenor
@@ -192,9 +185,12 @@ s16_" "
 @end quotation
 @separate
 
-From these commands and notes, a piece of music can be formed.  A piece
-of music is made by enclosing it in ``@code{\notes @{ ... @}}''.
-LilyPond then knows that music follows (and not lyrics, for example):
+@c From these commands and notes, a piece of music can be formed.  A piece
+@c of music is made by enclosing it in ``@code{\notes @{ ... @}}''.
+@c     rephrased:
+With these commands you can now write a piece of music.  The next step
+is to enclose your music inside ``@code{\notes @{ .. @}}''.
+This lets LilyPond know that music (and not lyrics, for example) follows:
 
 @quotation
 @example
@@ -208,14 +204,14 @@ LilyPond then knows that music follows (and not lyrics, for example):
 @end quotation
 @separate
 
-At this point, the piece of music is ready to be printed.  This is done
-by combining the music with a printing command.
+Now the piece of music is almost ready to be printed.  The final step is to
+combine the music with a printing command.
 
-The printing command is the so-called ``@code{\paper}'' block.  You
-will see later that the \paper block is necessary to customize all
-kinds of printing specifics.  The music and the \paper block are
-combined by enclosing them in ``@code{\score @{ ... @}}''.  This is
-what a full LilyPond source file looks like:
+The printing command is the so-called ``@code{\paper}'' block.  Later on
+you will see that the @code{\paper} block is used to customize
+printing specifics.  The music and the @code{\paper} block are combined by
+enclosing them in ``@code{\score @{ ... @}}''.  This is what a full
+LilyPond source file looks like:
 
 @quotation
 @example
@@ -245,11 +241,210 @@ what a full LilyPond source file looks like:
 @separate
 
 
-We continue with the introduction of the remaining musical constructs.
+@node Running LilyPond
+@section Running LilyPond
+
+In the last section we explained what kind of things you could enter
+in a lilypond file.  In this section we explain how to run LilyPond 
+and how view or print the output.  If you have not used LilyPond
+before, want to test your setup of LilyPond, or want to run an example
+file yourself, read this section.  Most of the instructions that follow
+are for running LilyPond on Unix-like systems.  Some additional
+instructions for running LilyPond on 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}.  In your
+text editor, enter the following input and save the file as
+@file{test.ly}:
+
+@quotation
+@example
+\score @{
+  \notes @{ c'4 e' g' @}
+@} 
+@end example
+@end quotation
+
+@cindex ly2dvi
+
+@c now this is weird, running ly2dvi to run LilyPond
+@c (therefore name change proposal) 
+
+LilyPond is the program that computes the sheet music. All other
+things, such as adding titles, page breaking and other page layout,
+are done by a small wrapper program called
+@code{ly2dvi}. @code{ly2dvi} calls lilypond to render the music, and
+then adds the titling and page layout instructions.  To process
+@file{test.ly} with ly2dvi, proceed as follows:
+
+@quotation
+@example
+ly2dvi -P test.ly
+@end example
+@end quotation
+
+You will see the following on your screen:
+
+@quotation
+@example
+GNU LilyPond 1.6.0
+Now processing: `/home/fred/ly/test.ly'
+Parsing...
+Interpreting music...[1]
+ @emph{ ... more interesting stuff ... }
+PS output to `test.ps'...
+DVI output to `test.dvi'...
+@end example
+@end quotation
+@cindex DVI file
+@cindex Viewing music
+@cindex xdvi
+
+The results of the ly2dvi run are two files, @file{test.dvi} and
+@file{test.ps}.  The PS file (@file{test.ps}) is the one you can print.
+You can view the PS file using the program ghostview.  If a version of
+ghostview is installed on your system, one of these commands will
+produce a window with some music notation on your screen:
+@c eeek
+@quotation
+@example
+  gv test.ps
+  ghostview test.ps
+  ggv test.ps
+  kghostview test.ps
+@end example
+@end quotation
+If the music on your screen looks good, you can print it by clicking
+File/Print inside ghostview.
+
+The DVI file (@file{test.dvi}) contains the same sheet music in a
+different format. DVI files are more easily processed by the computer,
+so viewing them usually is quicker.  You can run @code{xdvi test.dvi} or
+@code{kdvi test.dvi} to view the DVI file. In Xdvi, the mouse buttons
+activate magnifying glasses.  Unfortunately, variable symbols (such as
+beams and slurs) are not displayed in the magnifying glasses.
+
+If your DVI viewer does not have a "Print" button, you can print the
+file by executing @code{lpr test.ps}.
+
+@c volgende alinea schrappen?  
+
+If your system does not support printing PostScript files, then you
+can install GhostScript, a PostScript emulator.  Refer to
+GhostScript's website at @uref{http://www.ghostscript.com}.
+
+@cindex GhostScript
+@cindex @code{lpr}
+@cindex Printing output
+@cindex PostScript
+@cindex PDF
+
+A final option is to use the popular PDF format.  You can get a PDF
+file by running @code{ly2dvi --pdf test.ly}.  With @code{--pdf}
+you will get DVI, PS and PDF files.  Viewers for PS files also
+accept PDF files, but there are also many other applications for
+viewing PDF files.
+
+If you are familiar with @TeX{}, be warned: do not use other
+DVI drivers like @code{dvilj}. The @TeX{} coming out of LilyPond
+uses embedded PostScript code and will not render correctly if
+you use anything other than @code{dvips}.
+
+@cindex dvips
+@cindex dvilj
+@cindex DVI driver
+
+@unnumberedsubsec Windows users
+Windows users can start the terminal by clicking on the LilyPond or
+Cygwin icons.  You can use any text editor (such as Notepad) to edit
+the LilyPond file.  Viewing the PS file can be done with:
+@quotation
+@example
+@code{gsview32 test.ps}
+@end example
+@end quotation
+You can also print from the command line by executing:
+@quotation
+@example
+@code{gsview32 /s test.ps}
+@end example
+@end quotation
+
+
+@strong{SUMMARY}
+
+To run LilyPond, input a text file, then run the command @code{ly2dvi} on
+that file.  The resulting files are either DVI or PostScript, and can
+be viewed with @code{xdvi} (unix) and ghostview (unix and windows)
+respectively.  The following table summarizes the constructs that were
+discussed in the previous two sections.
+
+@multitable @columnfractions  .3 .3 .4  
+
+@item @b{Syntax}
+@tab @b{Description}
+@tab @b{Example}
+
+@item @code{1 2 8 16}
+@tab durations 
+@tab
+@lilypond[fragment, relative 1]
+\property Staff.TimeSignature = \turnOff
+\property Staff.autoBeaming = ##f
+\property Staff.Clef = \turnOff
+c1 c2 c8 c16
+@end lilypond
+
+@item @code{. ..}
+@tab augmentation dots
+@tab
+@lilypond[fragment, relative 1]
+\property Staff.TimeSignature = \turnOff
+\property Staff.Clef = \turnOff
+c4. c4..  
+@end lilypond
+
+@item @code{c d e f g a b }
+@tab scale 
+@tab
+@lilypond[fragment, relative 1]
+\property Staff.TimeSignature = \turnOff
+\property Staff.Clef = \turnOff
+c d e f g a b
+@end lilypond
+
+@item @code{\clef treble \clef bass }
+@tab clefs
+@tab
+@lilypond[fragment]
+\property Staff.TimeSignature \set #'transparent = ##t 
+\clef treble
+s4_" "
+\clef bass
+s4_" "
+@end lilypond
+
+@item @code{\time 3/4 \time 4/4 }
+@tab time signature
+@tab
+@lilypond[fragment]
+\property Staff.Clef \set #'transparent = ##t 
+\time 3/4
+s4_" "
+\time 4/4
+s16_" "
+@end lilypond
+
+@end multitable
 
-@c maybe legend here?
 
-Normal rests are entered just like notes with the name ``@code{r}'':
+@node More basics
+@section More basics 
+
+We continue with the introduction of the remaining musical constructs.
+Normal rests are entered just like notes, but use the name
+``@code{r}'':
 
 @quotation
 @example
@@ -274,7 +469,7 @@ s16_" "
 @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).  The central C is @code{c'}:
+(a comma).  Middle C is @code{c'}:
 
 @quotation
 @example
@@ -291,7 +486,7 @@ c'4 c'' c''' \clef bass c c,
 
 A tie is created by entering a tilde ``@code{~}'' between the notes to
 be tied.  A tie between two notes means that the second note must not be
-played separately, but just makes the first note sound longer:
+played separately; it just makes the first note sound longer:
 
 @quotation
 @lilypond[fragment,verbatim]
@@ -322,15 +517,14 @@ g'
 @c bit on the long/complex/scary taste
 @c cheating a bit: two lines makes for a friendlier look
 This example shows notes, ties, octave marks, and rests in action.
-Don't worry about all the quotes.
 
 @quotation
 @example
 \score @{
   \notes @{
     \time 4/4
-    \clef violin
     \key d \minor
+    \clef violin
     r4 r8 d''8 cis''4 e''
     d''8 a'4. ~ a' b'8
     cis''4 cis''8 cis'' bis'4 d''8 cis'' ~
@@ -357,33 +551,27 @@ Don't worry about all the quotes.
 @end quotation
 
 @c accidentals...
-There are some interesting points to note in this example.  Firstly,
-accidentals (sharps and flats) don't have to be marked explicitly: you
+There are some interesting points to note in this example.
+Accidentals (sharps and flats) don't have to be marked explicitly: you
 just enter the note name, and LilyPond determines whether or not to
-print an accidental.  Secondly, bar lines and beams are drawn
-automatically.  Thirdly, LilyPond calculates line breaks for you; it
-doesn't matter where you make new lines in the source file.
+print an accidental.  Bar lines and beams are drawn automatically.
+LilyPond calculates line breaks for you; it doesn't matter where you
+make new lines in the source file. Finally, the order of time, key and
+clef changes is not relevant: lilypond will use standard notation
+conventions for ordering these items.
 
 The example also indicates that a piece of music written in a high
 register needs lots of quotes.  This makes the input less readable,
 and is therefore also a potential source of errors.
 
-@separate
-
-The solution is to use ``relative octave'' mode.  In practice, most
-music is entered using this mode.
-
-To use relative mode, add @code{\relative} before the piece of music.
-You must also give a note from which relative starts, in this case
-@code{c''}.
-
-@c In relative octave mode, quotes are used to mark large jumps in the
-@c melody.  Without any quotes or commas, the interval between a note and
-@c its predecessor is assumed to be a fourth or less.  Quotes and commas
-@c add octaves in up and down direction.
-
-If you type no octaviation quotes, relative mode chooses the note that
-is closest to the previous one, which is often just the one you need.
+The solution is to use ``relative octave'' mode.  In practice, this is
+the most convenient way to copy existing music.  To use relative mode,
+add @code{\relative} before the piece of music.  You must also give a
+note from which relative starts, in this case @code{c''}.  If you don't
+use octavation quotes (ie don't add ' or , after a note), relative mode
+chooses the note that is closest to the previous one.  Since most music
+has small intervals, you can write quite a lot in relative mode without
+using octavation quotes.
 @c don't use commas or quotes in this sentence
 For example: @code{c f} goes up; @code{c g} goes down:
 
@@ -404,10 +592,12 @@ For example: @code{c f} goes up; @code{c g} goes down:
 @end quotation
 @separate
 
+
 @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.
-You can make a large interval by adding octaviation quotes.  Note that
+You can make larger intervals by adding octavation quotes.  Note that
 quotes or commas do not determine the absolute height of a note;
 the height of a note is relative to the previous one.
 @c don't use commas or quotes in this sentence
@@ -431,6 +621,110 @@ For example: @code{c f,} goes down; @code{f, f} are both the same;
 @end quotation
 @separate
 
+
+Here's an example of the difference between relative mode and
+``normal'' (non-relative) mode:
+
+@quotation
+@example
+\relative a @{
+\clef bass
+  a d a e d c' d'
+@}
+@end example
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\relative a {
+\clef bass
+  a d a e d c' d'
+}
+@end lilypond
+@end quotation
+@separate
+
+@quotation
+@example
+\clef bass
+  a d a e d c' d'
+@end example
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\clef bass
+  a d a e d c' d'
+@end lilypond
+@end quotation
+@separate
+
+@strong{SUMMARY}
+
+The following table summarizes the syntax learned so far in this section.
+
+@multitable @columnfractions .3 .3 .4  
+
+@item @b{Syntax}
+@tab @b{Description}
+@tab @b{Example}
+
+@item @code{r4 r8}
+@tab rest 
+@tab
+@lilypond[fragment, relative 1]
+\property Staff.TimeSignature = \turnOff
+\property Staff.Clef = \turnOff
+r4 r8
+@end lilypond
+
+
+@item @code{~}
+@tab tie
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.autoBeaming = ##f
+\property Staff.Clef = \turnOff
+d ~ d
+@end lilypond
+
+
+@item @code{\key es \major }
+@tab key signature
+@tab
+@lilypond[fragment]
+\property Staff.TimeSignature \set #'transparent = ##t
+\clef treble
+\key es \major
+s4 
+@end lilypond
+
+@item @code{'}
+@tab raise octave
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.autoBeaming = ##f
+\property Staff.Clef = \turnOff
+a a'
+@end lilypond
+
+@item @code{,}
+@tab lower octave
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.autoBeaming = ##f
+\property Staff.Clef = \turnOff
+c c,
+@end lilypond
+
+@end multitable
+
 A slur is drawn across many notes, and indicates bound articulation
 (legato).  The starting note and ending note are marked with a
 ``@code{(}'' and a ``@code{)}'' respectively:
@@ -447,6 +741,13 @@ phrasing), you can also make a phrasing slur with @code{\(} and
 @code{\)}.
 
 @c lousy example
+@c ? --hwn
+@c fragment of 1st hrn in Adams' The Chairman Dances, with creative
+@c chromatic thing pasted in front.  (admittedly the original doesn't
+@c have a phrasing slur. The problem is that we don't want the slur
+@c and the Phrasing slur to collide. We're trying to make a good
+@c impression here.
+
 @quotation
 @lilypond[fragment,relative 1, verbatim]
 a8(\( ais b ) c cis2 b'2 a4 cis, \) c
@@ -479,15 +780,15 @@ demonstrated here:
 @end quotation
 
 In this example, @code{staffA} and @code{staffB} are names that are
-given to the staves.  For now, it doesn't matter what names you give, as
-long as each staff has a unique name.
+given to the staves.  It doesn't matter what names you give, as long
+as each staff has a unique name.
 
 @separate
 
 We can typeset a melody with two staves now:
 
 @quotation
-@lilypond[verbatim]
+@lilypond[verbatim,singleline]
 \score {
   \notes 
   < \context Staff = staffA {
@@ -553,7 +854,7 @@ happens at the same time, like in chords, or (like in the two-staff
 example above) in a bunch of stacked staves.
 @end ignore
 
-Of course, you can combine beams and ties with chords.  Notice that
+You can combine beams and ties with chords.  Notice that
 beam and tie markings must be placed outside the chord markers:
 @quotation
 @lilypond[relative 0, fragment,verbatim]
@@ -563,21 +864,35 @@ r4 [<c8 e g> <c8 f a>] ~ <c8 f a>
 
 When you want to combine chords with slurs and dynamics, technical
 detail crops up: you have type these commands next to the notes, which
-means that they have to be inside the @code{< >}:
+means that they have to be inside the @code{< >}.  Don't get confused
+by the chord @code{< >} and the dynamic @code{\< \>}!
+
 
 @quotation
-@lilypond[relative 0, fragment,verbatim]
+@example
+r4 <c8 e g \> ( > <c e g> <c e g>  < ) \! c8 f a>
+@end example
+@lilypond[relative 0, fragment]
+\slurUp
 r4 <c8 e g \> ( > <c e g> <c e g>  < ) \! c8 f a>
 @end lilypond
 @end quotation
 @separate
 
-There is one golden rule that you should keep in mind when writing
-LilyPond input:
-@quotation
-@strong{DO NOT START A PIECE WITH A CHORD}
-@end quotation
-Of course, it is a allowed, but the result might not be what you expect:
+@c   this example is a bit too strongly worded -- there's nothing wrong
+@c   with starting a piece with a chord; you just have to be careful when
+@c   you do so.  I've rephrased this example below.
+@c There is one golden rule that you should keep in mind when writing
+@c LilyPond input:
+@c @quotation
+@c @strong{DO NOT START A PIECE WITH A CHORD}
+@c @end quotation
+@c Of course, it is a allowed, but the result might not be what you expect:
+
+@c   rephrased "don't start with a chord"
+There is one caution when using chords: if you use a chord at the very
+beginning of the piece, LilyPond might not understand what you want:
+
 @quotation
 @lilypond[verbatim,singleline]
 \score { \notes <c'2 e'2> }
@@ -585,10 +900,10 @@ Of course, it is a allowed, but the result might not be what you expect:
 @end quotation
 @separate
 
-Of course, it is possible to typeset pieces that start with a chord,
-but you must make explicit that the notes of chord are to be put on
-the same staff, in the same voice.  This is done by specifying
-@code{\context Staff} for the notes:
+If you have a piece that begins with a chord, you must explicitly
+state that the notes of the chord are to be put on the same staff, in
+the same voice.  This is done by specifying @code{\context Staff} or
+@code{\context Voice} for the notes:
 
 @quotation
 @lilypond[verbatim,singleline]
@@ -598,194 +913,80 @@ the same staff, in the same voice.  This is done by specifying
 @separate
 
 
+@strong{SUMMARY}
 
+@multitable @columnfractions .3 .3 .4  
 
-@ignore
-[TODO add some more here
-
-* lyrics, chords (?)
-
-* \header
-
-* identifiers?
-
-]
-@end ignore
-
-This is the end of the simple tutorial. You know the basic ingredients
-of a music file, so this is the right moment to try your at hand at
-doing it yourself: try to type some simple examples, and experiment a
-little.
-
-When you're comfortable with the basics, then you might want to read the
-rest of this chapter. It also a manual in tutorial-style, but it is much
-more in-depth. It will also be very intimidating if you're not familiar
-with the basics.  It deals with some of the more advanced features of
-LilyPond. Topics include lyrics, chords, orchestral scores and parts,
-fine tuning output, polyphonic music, and integrating text and music.
-
-
-@c refer to this section
-@node Cheat sheet
-@section Cheat sheet
-
-
-@c need texinfo-4.0a or later for this
-
-
-@c both Tim and my father came independently with a request for a
-@c `legend' like this.
-
-@c what should be in it?
+@item @b{Syntax}
+@tab @b{Description}
+@tab @b{Example}
 
 
-
-@quotation
-@multitable @columnfractions .20 .20 .40
-
-
-@item @code{1 2 8 16}
-@tab durations 
-@tab
-@lilypond[fragment, relative 1]
-c1 c2 c8 c16
-@end lilypond
-
-@item @code{. ..}
-@tab augmentation dots
-@tab
-@lilypond[fragment, relative 1]
-c4. c4..  
-@end lilypond
-
-@item @code{c d e f g a b }
-@tab scale 
-@tab
-@lilypond[fragment, relative 1]
-c d e f g a b
-@end lilypond
-
-@item @code{es is}
-@tab flat/sharp
-@tab
-@lilypond[fragment, relative 2]
-bes4 cis4  
-@end lilypond
-
-@item @code{-. -^ ->}
-@tab articulations (1)
-@tab
-@lilypond[fragment, relative 2]
-c-. c-^ c->
-@end lilypond
-
-
-@item @code{-\trill -\fermata}
-@tab articulations (2)
-@tab
-@lilypond[fragment, relative 2]
-c-\trill c-\fermata 
-@end lilypond
-
-
-@item @code{\time 3/4 \time 6/8 \time 4/4 }
-@tab time signature
-@tab
-@lilypond[fragment]
-\property Staff.Clef \set #'transparent = ##t 
-\time 3/4
-s4_" "
-\time 6/8
-s4_" "
-\time 4/4
-s16_" "
-@end lilypond
-
-
-@item @code{\clef treble \clef bass }
-@tab clefs
-@tab
-@lilypond[fragment]
-\property Staff.TimeSignature \set #'transparent = ##t 
-\clef treble
-s4_" "
-\clef bass
-s4_" "
-@end lilypond
-
-
-@item @code{\sfz \mf }
-@tab dynamics
-@tab
-@lilypond[fragment,relative 1]
-c\sfz c\mf
-@end lilypond
-
-@item @code{[ ]}
-@tab beam
+@item @code{( )}
+@tab slur
 @tab
 @lilypond[fragment, relative 1]
 \property Score.timing = ##f
 \property Staff.TimeSignature = \turnOff
 \property Staff.autoBeaming = ##f
 \property Staff.Clef = \turnOff
-[a8 b]
+c( d )e
 @end lilypond
 
-@item @code{~}
-@tab tie
+
+@item @code{\( \)}
+@tab phrasing slur
 @tab
 @lilypond[fragment, relative 1]
 \property Score.timing = ##f
 \property Staff.TimeSignature = \turnOff
 \property Staff.autoBeaming = ##f
 \property Staff.Clef = \turnOff
-d ~ d
+c\(  c() d \)e
 @end lilypond
 
-@item @code{( )}
-@tab slur
+
+@item @code{[ ]}
+@tab beam
 @tab
 @lilypond[fragment, relative 1]
 \property Score.timing = ##f
 \property Staff.TimeSignature = \turnOff
 \property Staff.autoBeaming = ##f
 \property Staff.Clef = \turnOff
-c( d )e
+[a8 b]
 @end lilypond
-@item @code{'}
-@tab raise octave
+
+
+@item @code{< \context Staff ... >}
+@tab more staffs
 @tab
-@lilypond[fragment, relative 1]
-\property Score.timing = ##f
-\property Staff.TimeSignature = \turnOff
-\property Staff.autoBeaming = ##f
-\property Staff.Clef = \turnOff
-a a'
+@lilypond[fragment]
+< \context Staff = SA { c'1 }
+  \context Staff = SB { c'1 } >
 @end lilypond
 
-@item @code{,}
-@tab lower octave
+  
+@item @code{-> -.}
+@tab articulations
 @tab
 @lilypond[fragment, relative 1]
-\property Score.timing = ##f
 \property Staff.TimeSignature = \turnOff
-\property Staff.autoBeaming = ##f
 \property Staff.Clef = \turnOff
-c c,
+c-> c-.
 @end lilypond
 
-@item @code{< >}
-@tab chord
+
+@item @code{-\mf -\sfz}
+@tab dynamics
 @tab
 @lilypond[fragment, relative 1]
-\property Score.timing = ##f
 \property Staff.TimeSignature = \turnOff
-\property Staff.autoBeaming = ##f
 \property Staff.Clef = \turnOff
-\context Voice { <a c> }
+c-\mf c-\sfz
 @end lilypond
 
+
 @item @code{\< \!}
 @tab crescendo
 @tab
@@ -808,483 +1009,160 @@ a\< a \!a
 a\> a \!a
 @end lilypond
 
-@end multitable
-@end quotation
-
-
-
-@node Running LilyPond
-@section Running LilyPond
-
-In the last section, we explained what kind of things you could enter
-in a lilypond file.  In this section we explain how to run LilyPond,
-and how view or print the output.  If you have not used LilyPond
-before, want to test your setup of LilyPond, or try to run an example
-file yourself, then read this section.  The instructions that follow
-are for running LilyPond on Unix-like systems.  Some additional
-instructions for running LilyPond on Windows are given at the end of
-this section.
-
-You begin with opening a terminal window, and start up a text editor.
-For example, open an xterm and execute @code{joe}.  In your text editor,
-enter the following input, and save the file as @file{test.ly}:
-
-@quotation
-@example
-\score @{
-  \notes @{ c'4 e' g' @}
-@} 
-@end example
-@end quotation
-
-@cindex ly2dvi
-
-@c now this is weird, running ly2dvi to run LilyPond
-@c (therefore name change proposal) 
-
-LilyPond is the program that computes the sheet music. All other
-things, such as adding titles, page breaking and other page layout,
-are done by a small wrapper program called
-@code{ly2dvi}. @code{ly2dvi} calls lilypond to render the music, and
-then adds the titling and page layout instructions.  To process
-@file{test.ly} with ly2dvi, proceed as follows:
-
-@quotation
-@example
-ly2dvi -P test.ly
-@end example
-@end quotation
 
-You will see the following on your screen:
-
-@quotation
-@example
-GNU LilyPond 1.4.0
-Now processing: `/home/fred/ly/test.ly'
-Parsing...
-Interpreting music...[1]
- @emph{ ... more interesting stuff ... }
-PS output to `test.ps'...
-DVI output to `test.dvi'...
-@end example
-@end quotation
-@cindex DVI file
-@cindex Viewing music
-@cindex xdvi
-
-The results of the ly2dvi run are two files, @file{test.dvi} and
-@file{test.ps}.  The PS file (@file{test.ps}) is the one you can print.
-You can view the PS file using the program ghostview.  If a version of
-ghostview is installed on your system, one of these commands will
-produce a window with some music notation on your screen:
-@c eeek
-@quotation
-@example
-  gv test.ps
-  ghostview test.ps
-  ggv test.ps
-  kghostview test.ps
-@end example
-@end quotation
-If you are satisfied with the looks of the music displayed on your
-screen, you can print the PS file by clicking File/Print inside
-ghostview.
-
-The DVI file (@file{test.dvi}) contains the same sheet music in a
-different format. DVI files are more easily processed by the computer,
-so viewing them usually is quicker.  Execute @code{xdvi test.dvi}
-to view the DVI file.
-
-If your DVI viewer does not have a "Print" button, you can print the
-file by executing @code{lpr test.ps}.
-
-@c volgende alinea schrappen?  
-
-If you can't get the examples to print, then you should look into
-installing and configuring ghostscript.  Refer to GhostScript's website
-at @uref{http://www.ghostscript.com}.
-
-@cindex GhostScript
-@cindex @code{lpr}
-@cindex Printing output
-@cindex PostScript
+@item @code{< >}
+@tab chord
+@tab
+@lilypond[fragment, relative 1]
+\context Voice <c e> 
+@end lilypond
 
-@unnumberedsubsec Windows users
-Windows users start the terminal by clicking on the LilyPond or Cygwin
-icon.  Notepad is sufficient for editing the LilyPond file.  Viewing
-the PS file can be done with:
-@quotation
-@example
-@code{gsview32 test.ps}
-@end example
-@end quotation
-You can also print from the command line by executing:
-@quotation
-@example
-@code{gsview32 /s test.ps}
-@end example
-@end quotation
+@end multitable
 
+Now you know the basic ingredients of a music file, so this is the right
+moment to try your at hand at doing it yourself: try typing some
+simple examples, and experiment a little.
 
-@node The first real tune
-@section The first real tune
+When you're comfortable with the basics, you might want to read
+the rest of this chapter.  It continues in tutorial-style, but it
+is much more in-depth, dealing with more advanced topics such as
+lyrics, chords, orchestral scores and parts, fine tuning of output,
+polyphonic music, and integrating text and music.
 
 
-The rest of this tutorial will demonstrate how to use Lilypond by
-presenting examples of input along with resulting output.  We will use
-English terms for notation.  In case you are not familiar with those,
-you may consult the glossary that is distributed with LilyPond.
 
-The examples discussed are included in the distribution, in the
-subdirectory @file{input/tutorial/}@footnote{When we refer to filenames,
-they are relative to the top directory of the source package. }
 
-To demonstrate what LilyPond input looks like, we start off with a
-full-fledged, yet simple example. It is a convoluted version
-of the famous minuet in J. S. Bach's @emph{Klavierb@"uchlein}. The file
-is included in the distribution as  @file{minuet.ly}.
-@cindex Bach, Johann Sebastian 
 
-@lilypond[verbatim]
-% all text after a percent sign is a comment
-% and is ignored by LilyPond
-\include "paper16.ly"
-\score {
-    \notes                        
-    \relative c'' \sequential {
-            \time 3/4                
-            \key g \major
-
-        \repeat "volta" 2 {
-            d4 g,8 a b c d4 g, g |
-            e'4 c8 d e fis g4 g, g |
-            c4 d8( )c b a( )b4 c8 b a g |
-            a4 [b8 a] [g fis] g2.  |
-        }
+@node Printing lyrics
+@section Printing lyrics
+@cindex lyrics
 
-        b'4 g8 a b g
-        a4 d,8 e fis d |
-        g4 e8 fis g d cis4 b8 cis a4 |
-        a8-. b-. cis-. d-. e-. fis-.
-        g4 fis e |
-        fis a,  r8 cis8
-        d2.-\fermata
-        \bar "|."
-    }
-    \paper {
-       % standard settings are too big and wide for a book
-       indent = 1.0 \cm
-       linewidth = 15.0 \cm
-   }
+In this section we shall explain how to typeset the following
+fragment of The Free Software Song: 
+
+@lilypond[singleline]
+\score  { \notes { \addlyrics
+  \notes \relative c' {
+    \time 7/4
+    d'2 c4 b16 ( a g a b a b ) c a2
+    b2 c4 b8 ( a16 g ) a4 g2 }
+  \context Lyrics \lyrics { 
+    Join us now __ and
+    share the soft -- ware; }
+}
+\paper { linewidth = -1. }
 }
 @end lilypond
 
-We will analyse the input, line by line.
-@separate
-@example
-        % all text after a percent sign is a comment
-        % and is ignored by LilyPond
-@end example 
-Percent signs introduce comments: everything after a percent sign is
-ignored. You can use this If you want to write down mental notes to
-yourself in a file, then you can enter preceded with a @code{%} sign.
-These lines are called comments. If you have long winded mental notes,
-you can make comments that span several lines by enclosing text in
-@code{%@{} and @code{%@}}.
-@cindex comment
-@cindex block comment
-@cindex line comment
-@separate
-@example 
-
-        \include "paper16.ly"
-@end example
-@cindex @code{\include}
-@cindex point, printer's
-@cindex staff size, setting
-@cindex font size, setting
-
-By default, LilyPond will typeset the music in a size such that each
-staff is 20 point (0.7 cm, or 0.27 inch) high.  We want smaller output
-(16 point staff height), so we must import the settings for that size,
-which is done here.
-@separate
-@example 
-
-        \score @{
-@end example 
-Music is printed by combining a piece of music with directions for
-outputting it.  This combination is formed in the @code{\score} block.
-@separate
-@example 
-
-        \notes                
-@end example 
-Prepare LilyPond for accepting notes.
-@cindex octaves, choosing
-@cindex pitch
-@separate
-@example 
-
-        \relative c''
-@end example
-@cindex relative
-@c removed duplicate introduction to octave marks /MB
-@c Shorten even more?
-
-@c As we will see, each note is described by its note name, duration,
-@c octave and possibly a chromatic alteration.  In this setup, the octave
-@c is indicated by using high quotes (@code{'}) and ``lowered quotes''
-@c (commas: @code{,}).  The central C is denoted by @code{c'}.  The C one
-@c octave higher is @code{c''}.  One and two octaves below the central C is
-@c denoted by @code{c} and @code{c,} respectively.
-
-Even though a piece of music often spans a range of several octaves,
-often melodies move in small intervals. Such melodies can be entered
-easily using @code{\relative}.  In this ``relative octave mode'',
-octaves of notes without quotes are chosen such that a note is as
-close as possible (graphically, on the staff) to the preceding note.
-If you add a high-quote an extra octave is added.  A lowered quote (a
-comma) will subtract an extra octave.
-
-Absolute starting pitch for this relative mode is given as the
-argument to @code{\relative}. In this case it is the @code{c''}, one
-octave above central C.
-@separate
-@example 
-
-        \sequential @{
-@end example 
-What follows is sequential music, i.e.,
-@cindex sequential music
-notes that are to be played and printed after each other.
-@separate
-@example 
-
-        \time 3/4
-@end example
-@cindex time signature, setting
-@cindex @code{\time}
-The @code{\time} command sets (or changes) the time signature of the
-current piece: a 3/4 sign is printed.  This setting is also used to
-generate bar lines at the right spots.
-@separate
-@example 
-
-        \key g \major
-@end example
-@cindex key signature, setting
-@cindex @code{\key}
-Set (or change) the current key signature to G-major.  Although in this
-example, the @code{\key} command happened to be entered after the
-@code{\time} command, in the output the time signature will be printed
-after the key signature; LilyPond knows about music typesetting
-conventions.
-@separate
-@example 
-
-        \repeat "volta" 2
-@end example 
-The following piece of music is played twice.  The first argument
-indicates the type of repeat.  In this case, @code{"volta"} means that
-prima volta/secunda volta brackets are used for the alternative
-endings---if there were any.
-
-A special notation for repeats allows you to get correct repeats in
-MIDI output. However, some extra trickery is needed to get this
-working, See @ref{Repeats and MIDI}.  
-@separate
-@example 
-
-        @{
-@end example 
-The subject of the repeat is again sequential music.  Since
-@code{\sequential} is such a common construct, a shorthand is provided:
-just leave off @code{\sequential}, and the result is the same.
-@separate
-@example 
 
-        d4 g,8
-@end example 
-Two notes.  The first note is a quarter note with relative pitch
-@code{d}.  The relative music was started with a @code{c''}, so the real
-pitch of this note is @code{d''}.  The duration of a note is designated
-by a number; the @code{4} here represents a quarter note.
+@cindex lyric mode
+@cindex @code{\lyrics}
 
-The second note is an eight note with relative pitch @code{g,}.  The
-pitch is taken relative to the previous @code{d''}, making this
-note have real pitch @code{g'}.  The @code{8} represents an eight note.
-@separate
-@example 
 
-        a b
-@end example 
-Two more notes, with pitch @code{a} and @code{b}.  Because their
-duration is the same as the @code{g,8}, there is no need to enter the
-duration, but you may enter it anyway, i.e., @code{a8 b8}
-@separate
-@example 
+To print lyrics, you must enter them, and then instruct lilypond to
+handle the lyrics by printing them.
+You can enter lyrics in a special input mode of LilyPond. This mode is
+called Lyrics mode, and it is introduced by the keyword @code{\lyrics}.
+The purpose of this mode is that you can enter lyrics as plain text,
+punctuation and accents without any hassle.
 
-        d4 g, g |
-@end example
-@cindex bar check
-@cindex @code{|}
-@cindex errors, finding 
-Three more notes.  The @code{|} character is a ``bar check''.  LilyPond
-will verify that bar checks are found at the start of a measure.  This can
-help you track down typing errors.
-
-@cindex alteration, chromatic
-@cindex chromatic alteration
-@separate
-@example 
-
-        c8 d e fis
-
-@end example 
-So far, no notes were chromatically altered.  Here is the first one
-that is: @code{fis}.  LilyPond uses Dutch note names, and ``Fis'' is
-the name for ``F sharp''.  There is no sharp sign in the output. The
-program keeps track of key signatures, and will only print accidentals
-if they are needed.  If you can not get used to Dutch names, then
-there also are names available in several other languages.
-
-
-For groups of eighth notes and shorter, LilyPond can determine how the
-notes should form a beam.  In this case, the 4 eights are automatically
-printed as a beam.
-@separate
-@example 
+Syllables are entered like notes, with pitches replaced by text.  For
+example, @code{Twin- kle twin- kle} enters four syllables.  Note that
+the hyphen has no special meaning for lyrics, and does not introduce
+special symbols.
 
-        c4 d8( )c b a( )b4 c8 b a g |
-@end example 
-The beginning and ending notes of a slur are marked with parentheses,
-@code{(} and @code{)} for start and end respectively.  The line above
-indicates two slurs.  These slur markers (parentheses) are entered
-between the slurred notes.
-@separate
-@example 
-
-        a4 [b8 a] [g fis] 
-@end example 
-Automatic beaming can be overridden by inserting beam marks, @code{[}
-and @code{]}.  These beam markers (brackets) are put around the notes
-you want beamed.
-@separate
-@example 
-
-        g2.  |
-@end example
-@cindex augmentation dot
-@cindex dotted note
-A period adds a dot to the note.
-@separate
-@example 
-
-        @}
-@end example 
-The end of the sequential music to be repeated.  LilyPond will typeset a
-repeat bar.
-@separate
-@example 
+Spaces can be introduced into a lyric either by using quotes:
+@code{"He could"4 not4} or by using an underscore without quotes:
+@code{He_could4 not4}.  All unquoted underscores are converted to
+spaces.
 
-        cis'4 b8 cis a4 |
-@end example 
-Accidentals are printed whenever necessary: the first C sharp of the bar
-will be printed with an accidental, the second one without.
-@separate
-@example 
+These are the lyrics for the free software song:
 
-        a8-. b-. cis-. d-. e-. fis-.
-@end example
-@cindex articulation
-Staccato signs are entered as a dash and a period. Some other
-articulations may also be entered in this short form.
-@separate
 @example 
+ \lyrics @{ 
+    Join us now __ and
+    share the soft -- ware; @}
+@end example
 
-        fis a, r8 cis8
+As you can see, extender lines are entered as @code{__}.  This will
+create an extender, a line that extends over the entire duration of
+the lyric.  This line will run all the way to the start of the next
+lyric, so you may want to shorten it by using a blank lyric (using
+@code{_}).
+
+
+If you can use have hyphens at the end of a syllable, i.e.
+@example
+        soft- ware
+@end example
+but then the hyphen will be attached to the to the end of the first
+syllable.
  
-@end example 
+If you want them centered between syllables you can use the special
+`@code{-}@code{-}' lyric as a separate word between syllables.  The
+hyphen will have variable length depending on the space between
+syllables. It will be centered between the syllables.  
  
-Rests are denoted by the special note name @code{r}.  
-@separate
-@example 
+Normally, the notes that you enter are transformed into note heads.
+Note heads alone make no sense, they need surrounding information: a key
+signature, a clef, staff lines, etc.  They need @emph{context}.  In
+LilyPond, these symbols are created by objects called `interpretation
+contexts'.  Interpretation contexts exist for generating notation
+(`notation context') and for generating sound (`performance
+context'). These objects only exist during a run of LilyPond.
 
-        d2.-\fermata
-@end example 
-All articulations have a verbose form, like @code{\fermata}.  The
-command @code{\fermata} is not part of the core of the language, but it
-is a shorthand for a more complicated description of a fermata symbol.
-@code{\fermata} names that description and is therefore called an
-identifier.
-@cindex identifier
-@cindex @code{\fermata}
-@separate
+When LilyPond interprets music, it will create a Staff context.
+We don't want that default here, because we want lyric.  The
+command
 @example
-        \bar "|."
-        @}
-@end example 
-Here the music ends.  LilyPond does not automatically typeset an end
-bar, we must explicitly request one, using @code{"|."}.
+  \context Lyrics
+@end example
+explicitly creates an interpretation context of 
+@code{Lyrics} type to interpret the song text that we entered.
 
-@separate
-@example 
+The melody of the song doesn't offer anything new:
+@example
+ \notes \relative c' @{
+    \time 7/4
+    d'2 c4 b16 ( a g a b a b ) c a2
+    b2 c4 b8 ( a16 g ) a4 g2 @}
+@end example
 
-        \paper @{
-                % standard settings are too big and wide for a book
-                indent = 1.0\cm
-                linewidth = 15.0\cm
-        @}
-@end example 
-The @code{\paper} block specifies how entered music should be converted
-to notation output.  Most of the details of the conversion (font sizes,
-dimensions, etc.) have been taken care of, but to fit the output in this
-document, it has to be narrower.  We do this by setting the line width
-to 14 centimeters (approximately 5.5 inches).
-@separate
-@example 
+Both can be combined with the @code{\addlyrics}:
+@example
+\addlyrics
+  \notes \relative c' @dots{}
+  \context Lyrics \lyrics @dots{} 
+@end example
 
-        @}
-@end example 
-The last brace ends the @code{\score} block.
+The lyrics are also music expressions,  similar to notes. What happens
+here, is that each syllable of the lyrics is put under the a note of
+the melody. 
+The complete file is listed here:
 
+@example
+\score  @{ \notes @{ \addlyrics
+  \notes \relative c' @{
+    \time 7/4
+    d'2 c4 b16 ( a g a b a b ) c a2
+    b2 c4 b8 ( a16 g ) a4 g2 @}
+  \context Lyrics \lyrics @{ 
+    Join us now __ and
+    share the soft -- ware; @}
+@}
+\paper @{ linewidth = -1. @}
+@}
+@end example
 
 
 
-@node Lyrics and chords
-@section Lyrics and chords
+@node A melody with chords 
+@section A melody with chords
 
-In this section we show how to typeset a song. This file is
-included as @file{flowing.ly}.
+In this section we show how to typeset a melody with chord
+accompaniment. This file is included as @file{input/tutorial/flowing.ly}.
 
 @example 
-\header @{
-        title = "The river is flowing"
-        composer = "Traditional"
-@}
 \include "paper16.ly"
 melody = \notes \relative c' @{
         \partial 8
@@ -1295,11 +1173,6 @@ melody = \notes \relative c' @{
         \bar "|."
 @}
 
-text = \lyrics @{
-        The ri -- ver is flo- __ wing, flo -- wing and gro -- wing, the
-        ri -- ver is flo -- wing down to the sea.
-@}
-
 accompaniment =\chords @{
         r8
         c2:3- f:3-.7 d:min es4 c8:min r8
@@ -1309,14 +1182,10 @@ accompaniment =\chords @{
         \simultaneous @{
           %\accompaniment
           \context ChordNames \accompaniment
-
-          \addlyrics
             \context Staff = mel @{        
-              \property Staff.autoBeaming = ##f
-              \property Staff.automaticMelismata = ##t
               \melody 
             @}
-            \context Lyrics \text
+
         @}
         \midi  @{ \tempo 4=72 @}
         \paper @{ linewidth = 10.0\cm @}
@@ -1324,18 +1193,9 @@ accompaniment =\chords @{
 @end example 
 
 
-The result would look this.@footnote{The titling and font size shown
-may differ, since the titling in this document is not generated by
-@code{ly2dvi}.}
-
-@center @strong{The river is flowing}
-@center Traditional 
+The result would look this.
 
 @lilypond[center]
-\header {
-        title = "The river is flowing"
-        composer = "Traditional"
-}
 \include "paper16.ly"
 melody = \notes \relative c' {
         \partial 8
@@ -1346,11 +1206,6 @@ melody = \notes \relative c' {
         \bar "|."
 }
 
-text = \lyrics {
-        The ri -- ver is flo- __ wing, flo -- wing and gro -- wing, the
-        ri -- ver is flo -- wing down to the sea.
-}
-
 accompaniment =\chords {
         r8
         c2:3- f:3-.7 d:min es4 c8:min r8
@@ -1361,13 +1216,10 @@ accompaniment =\chords {
           %\accompaniment
           \context ChordNames \accompaniment
 
-          \addlyrics
             \context Staff = mel {
               \property Staff.autoBeaming = ##f
-              \property Staff.automaticMelismata = ##t
-              \melody 
+             \melody 
             }
-            \context Lyrics \text
         }
         \midi  { \tempo 4=72 }
         \paper { linewidth = 10.0\cm }
@@ -1375,27 +1227,7 @@ accompaniment =\chords {
 @end lilypond
 
 Again, we will dissect the file line by line.
-@separate
-@example 
-
-        \header @{
-@end example
-@cindex @code{\header}
-Information about the music you are about to typeset goes into a
-@code{\header} block.  The information in this block is not used by
-LilyPond, but it is passed into the output.  @file{ly2dvi} uses this
-information to print titles above the music.
-@separate
-@example 
 
-        title = "The river is flowing"
-        composer = "Traditional (?)"
-@end example
-@cindex assignments
-@cindex identifier assignment
-the @code{\header} block contains assignments.  In each assignment, a
-variable is set to a value. 
 @separate
 @example 
 
@@ -1458,25 +1290,7 @@ This ends the definition of @code{melody}.
 @cindex lyrics
 @cindex identifier assignment
 @cindex syllables, entering
-Another identifier assignment.  This one is for the lyrics. 
-Lyrics are formed by syllables that have duration, and not by
-notes. To make LilyPond parse words as syllables,  switch it  into
-lyrics mode with @code{\lyrics}.  Again, the brace after @code{\lyrics}
-is a shorthand for @code{\sequential @{}.
-@separate
-@example 
 
-  The ri -- ver is flo- __ wing,  flo -- wing and gro -- wing, the
-  ri- ver is flo- __ wing down to the sea.
-@}
-@end example
-@cindex extenders, lyric
-@cindex hyphens, lyric 
-The syllables  themselves are  separated by spaces.  You can get syllable
-extenders by entering @code{__}, and centered hyphens with
-@code{-}@code{-}.  We don't enter durations for  the syllables. They
-are  aligned with the melody later.
 @separate
 @example 
 
@@ -1586,21 +1400,7 @@ that mechanism in action.
 We don't want that default here, because we want chord names.  The
 command above explicitly creates an interpretation context of 
 @code{ChordNames} type to interpret the music @code{\accompaniment}. 
-@separate
-@example 
 
-        \addlyrics
-@end example
-@cindex @code{\addlyrics}
-@cindex lyrics and melody, combining
-@cindex combining lyrics and melody
-
-The lyrics should be aligned with the melody.  This is done by
-combining both with @code{\addlyrics}.  @code{\addlyrics} takes two
-pieces of music (usually a melody and lyrics, in that order) and
-aligns the syllables of the second piece under the notes of the
-first piece.
 @separate
 @example 
 
@@ -1628,38 +1428,7 @@ this @code{Staff}'s property to @code{##f}, which is the boolean value
 @var{false}, turns the automatic beaming mechanism off for the current
 staff.
 
-@ignore
-@cindex GUILE
-@cindex Scheme
-@cindex accessing Scheme
-@cindex evaluating Scheme
-@cindex LISP
-
-LilyPond internally uses GUILE, a Scheme-interpreter. Scheme is a
-language from the LISP family. You can learn more about Scheme at
-@uref{http://www.scheme.org}. It is used to represent data throughout
-the whole program. The hash-sign (@code{#}) accesses GUILE directly: the
-code following the hash-sign is evaluated as Scheme.  The boolean value
-@var{true} is @code{#t} in Scheme, so for LilyPond @var{true} looks like
-@code{##t}.
-
-If Scheme scares you, don't worry. You don't need to know Scheme to
-create beautiful sheet music.
-@end ignore
-
-
-@separate
-@example 
 
-        \property Staff.automaticMelismata = ##t
-@end example
-@cindex automaticMelismata
-@cindex melismata
-@cindex @code{\addlyrics} and slurs
-Similarly, we  don't want to print a  syllable when there is
-a slur. This sets up @code{\addlyrics} to not put lyrics under each
-separate note while there is a slur.
 @separate
 @example 
 
@@ -1671,16 +1440,7 @@ Finally, we put the melody on the current staff.  Note that the
 @code{\property} directives and @code{\melody} are grouped in sequential
 music,  so the property settings are done before the melody is
 processed.
-@separate
-@example 
 
-        \context Lyrics \text
-@end example 
-The second argument of @code{\addlyrics} is the text. The text also
-should not land on a Staff, but on a interpretation context for
-syllables, extenders, hyphens etc.  This context is called
-Lyrics.
 @separate
 @example 
 
@@ -1707,51 +1467,77 @@ also specifies an output method. You can specify the tempo using the
 We also want notation output.  The linewidth is short so the piece
 will be set in two lines.
 
-@node More movements 
-@section More movements
+@node More stanzas
+@section More stanzas
 
-[FIXME: merge here with, or move this to: Other ways to run LilyPond]
 
-You probably ran @file{ly2dvi} on the last example, and ended up with a
-viewable @file{.dvi} file.  However, between there are a few steps of
-which LilyPond is only one. To enhance your understanding of what's
-happening under the hood when you run @code{ly2dvi}, we explain what
-programs are run.
+@cindex phrasing
 
-@code{ly2dvi} is a program that calls a number of programs  in sequence.
-The first thing it does, is running LilyPond on the input file. After
-some calculations, a @file{.tex} is produced. The contents
-of this file are very  low-level instructions.
+If you have multiple stanzas printed underneath each other, the vertical
+groups of syllables should be aligned around punctuation. LilyPond can
+do this if you tell it which lyric lines belong to which melody.
+We show how you can do this by showing how you could print a frivolous
+fragment of a fictional Sesame Street duet. 
 
-For example, consider the following file (@file{miniatures.ly}) 
+@lilypond[singleline,verbatim]
+\score {
+\addlyrics
+  \notes \relative c'' \context Voice = duet { \time 3/4
+     g2 e4 a2 f4 g2.  }
+  \lyrics \context Lyrics <
+  \context LyricsVoice = "duet-1" {
+    \property LyricsVoice . stanza = "Bert"
+    Hi, my name is bert.    }
+  \context LyricsVoice = "duet-2" {
+    \property LyricsVoice . stanza = "Ernie" 
+    Ooooo, ch\'e -- ri, je t'aime. }
+  >
+}
+@end lilypond
 
+To this end, give the Voice context an identity, and set the
+LyricsVoice to a name starting with that identity followed by a dash.
+In the following example, the Voice identity is @code{duet},
 @example
-\version "1.5.60"
-\header @{
-  title = "Two miniatures"
-  tagline = "small is beautiful"
-@}
-
-#(set! point-and-click line-column-location)
+\context Voice = duet @{
+     \time 3/4
+     g2 e4 a2 f4 g2.  @}
+@end example
+and the
+identities of the LyricsVoices are @code{duet-1} and @code{duet-2}.
+@example
+  \context LyricsVoice = "duet-1" @{
+    Hi, my name is bert. @}
+  \context LyricsVoice = "duet-2" @{
+    Ooooo, ch\'e -- ri, je t'aime. @}
+@end example
 
-\paper @{ linewidth = -1.0 @}
+We add the names of the singers. This can be done by setting
+@code{LyricsVoice.Stanza} (for the first system) and
+@code{LyricsVoice.stz} for the following systems. Notice how you must
+surround dots with spaces in @code{\lyrics} mode.
 
-\score @{
-    \notes @{ c'4 d'4 @}
-    \header @{
-        opus = "Opus 1."
-        piece = "Up" @}
-@}
-\score @{
-    \notes @{ d'4 c'4 @}
-    \header @{
-        opus = "Opus 2."
-        piece = "Down" @}
-@}
+@example
+    \property LyricsVoice . stanza = "Bert"
+    @dots{}
+    \property LyricsVoice . stanza = "Ernie" 
 @end example
 
-The titling in this manual was not generated by ly2dvi, so we can't
-exactly show what it would look like, but the result should resemble this:
+The convention for naming @code{LyricsVoice} and @code{Voice} must
+also be used to get melismata on rests correct.
+
+
+
+@node More movements 
+@section More movements
+
+LilyPond only handles formatting sheet music. It doesn't concern
+itself with producing titles. This is the jobs of a simple wrapper
+program called ly2dvi. @code{ly2dvi} calls LilyPond to do the
+sheet music formatting. Then it produces titles, and ties together all
+inputs into a single @file{dvi} file. In this section, we show some of
+the options  for titling. We will  show how you can produce a file
+that looks like this:
 
 @center @strong{Two miniatures}
 @flushright
@@ -1779,83 +1565,98 @@ Opus 2.
   }
 @end lilypond
 
-This file is produced by ly2dvi in a few stages, with the help of text
-formatting tools. LilyPond produces two output files,
-@file{miniatures.tex} and @file{miniatures-1.tex}.  Both files contain
-only graphical music notation. @file{ly2dvi} looks at what output
-LilyPond produces, and adds page layout and titling to those files.  The
-result is a DVI file called @file{miniatures.dvi}.
+For example, consider the following file (@file{miniatures.ly}) 
 
-Next, now we'll look at the example line by line to explain new things.
+@example
+\version "1.5.60"
+\header @{
+  title = "Two miniatures"
+  composer = "F. Bar Baz" 
+  tagline = "small is beautiful" @}
 
-@separate
-@example 
-\version "1.4.0"
-@end example 
-Lilypond and its language are still under development, and occasionally,
-details of the syntax are changed. This fragment indicates for which
-version the input file was written. When you compile this file, the
-version number will be checked, and you will get a warning when the file
-is too old.
+\paper @{ linewidth = -1.0 @}
 
-This version number is also used by the @code{convert-ly} program (See
-@ref{convert-ly}), which is used to update the file to the latest lily
-version.
+%@{
 
-@separate
-@example
-  \header @{
-    title = "Two miniatures"  @}
-@end example
-This sets the titling information for the entire file.
-@separate
-@example
-    tagline = "small is beautiful" 
+Mental note: discuss Schenkerian analysis of these key pieces.
+
+%@}
+
+
+\score @{
+    \notes @{ c'4 d'4 @}
+    \header @{
+        opus = "Opus 1."
+        piece = "Up" @}
+@}
+\score @{
+    \notes @{ d'4 c'4 @}
+    \header @{
+        opus = "Opus 2."
+        piece = "Down" @}
+@}
 @end example
-A signature line is printed at the bottom of the last page.
- This signature is produced from the @code{tagline} field of
-@code{\header}.  Many people find the default "Lily was here,
-@var{version number}" too droll. If that is the case,  assign
-something else to @code{tagline}, as shown above.
-@separate
-@example
-        #(set! point-and-click line-column-location)
+
+The information for the global titling is in a so-called header block.
+The information in this block is not used by
+LilyPond, but it is passed into the output.  @file{ly2dvi} uses this
+information to print titles above the music.
+@cindex assignments
+@cindex identifier assignment
+the @code{\header} block contains assignments.  In each assignment, a
+variable is set to a value. The header block for this file looks like
+this
+@cindex @code{\header}
+@example 
+  \header @{
+    title = "Two miniatures" 
+    composer = "F. Bar Baz"
+    tagline = "small is beautiful"
+  @}
 @end example
 
-This piece of Scheme code sets the Scheme variable
-@code{point-and-click} to the value @var{line-column-location} (which
-itself is a Scheme procedure).
+When you process a file with ly2dvi, a signature line is printed at
+the bottom of the last page.  This signature is produced from the
+@code{tagline} field of @code{\header}.  The default "Lily was here,
+@var{version number}" is convenient for us programmers. Archived
+the layout of different versions can be compared using archived
+print-outs (that include a version number).
+
+@cindex Lily was here
+@cindex signature line
+@cindex tag line
 
-Editing input files can be complicated if you're working with
-large files: if you're digitizing existing music, you have to
-synchronize the .ly file, the sheet music on your lap and the sheet
-music on the screen.  The point-and-click mechanism makes it easy to
-find the origin of an error in the LY file: when you view the file with
-Xdvi and click on a note, your editor will jump to the spot where that
-note was entered.  For more information, see @ref{Point and click}.
+Many people find the default tagline (``Lily was here'') too droll.
+If that is the case, assign something else to @code{tagline}, as shown
+above.
 
 @separate
 @example
   \paper @{ 
+    linewidth = -1.0 @}
 @end example
 
-The @code{\score} blocks that follow in the file don't have
-@code{\paper} sections, so the settings of this block are substituted: A
-paper block at top level, i.e. not in a @code{\score} block sets the
-default page layout.
+A paper block at top level, i.e. not in a @code{\score} block sets the
+default page layout.  The following @code{\score} blocks don't have
+@code{\paper} sections, so the settings of this block are substituted:
+
+The variable @code{linewidth} normally sets the length of the systems
+on the page. However, a negative value has a special meaning. If
+@code{linewidth} is less than 0, no line breaks are inserted into the
+score, and the spacing is set to natural length: a short phrase takes
+up little space, a longer phrase more space.
 
-@separate
 @example
-  linewidth = -1.0 @}
-@end example
+%@{
 
+Mental note: discuss Schenkerian analysis of these key pieces.
 
+%@}
+@end example
 
-The variable @code{linewidth} normally sets the length of the systems on
-the page. However, a negative value has a special meaning. If
-@code{linewidth} is less than 0, no line breaks are inserted into the
-score, and the spacing is set to natural length: a short phrase takes up
-little space, a longer phrase more space.
+Mental notes to yourself can be put into comments. There are two types
+of comments. Line comments are introduced by @code{%}, and block
+comments are delimited by @code{%@{} and @code{%@}}.
 
 @separate
 @example
@@ -1899,15 +1700,53 @@ will be at the left.
 
 
 
+@example
+\version "1.5.60"
+\header @{
+  title = "Two miniatures"
+  composer = "F. Bar Baz" 
+  tagline = "small is beautiful" @}
+
+\paper @{ linewidth = -1.0 @}
+
+\score @{
+    \notes @{ c'4 d'4 @}
+    \header @{
+        opus = "Opus 1."
+        piece = "Up" @}
+@}
+\score @{
+    \notes @{ d'4 c'4 @}
+    \header @{
+        opus = "Opus 2."
+        piece = "Down" @}
+@}
+@end example
+
+
+@separate
+@example 
+\version "1.6.0"
+@end example 
+Lilypond and its language are still under development, and
+occasionally, details of the syntax are changed. This fragment
+indicates for which version the input file was written. When you
+compile this file, the version number will be checked, and you will
+get a warning when the file is too old.  This version number is also
+used by the @code{convert-ly} program (See @ref{Older 
+LilyPond versions}), which is used to update the file to the latest
+lily version.
+
+
 @node A piano excerpt
 @section A piano excerpt
 
 Our fourth subject is a piece of piano music.  The fragment in the
 input file is a piano reduction of the G major Sinfonia by Giovanni
 Battista Sammartini.  It was composed around 1740.  It's in the source
-package under the name @file{sammartini.ly}.
+package under the name @file{input/tutorial/sammartini.ly}.
 
-@lilypondfile[verbatim]{sammartini.ly}
+@lilypondfile[smallverbatim]{sammartini.ly}
 
 As you can see, this example features multiple voices on one staff.  To
 make room for those voices, their notes have to be stemmed in opposite
@@ -2167,8 +2006,8 @@ to the page layout of this document.
 
 In this section, we show some ways to fine tune the final output of a
 piece. We do so using a single measure of a moderately complex piano
-piece: a Brahms intermezzo (opus 119, no. 1).
-@cindex Brahms, Johannes
+piece: a Brahms intermezzo (opus 119, no. 1). Both fragments (the
+tuned and the untuned are in the @file{input/tutorial/}).
 
 The code for the untuned example shows us some new things.
 
@@ -2208,10 +2047,11 @@ edition by Schott/Universal Edition:
 The basic process that we follow is that we override defaults in the
 printing system. We do this by setting variables in so-called grobs.
 Printed symbols are internally represented by Graphical Objects
-(Grobs).  Each grob is described by a bunch of settings. These setting
-determine the fonts, offsets, sub-routines to be called on the grob,
-etc.  The initial values of these settings are set in the Scheme file
-@file{scm/grob-description.scm}.
+(Grobs).  Each grob is described by a bunch of settings.  Every
+setting is a variable: it has a name, and you can assign a value to
+the variable. These setting determine the fonts, offsets, sub-routines
+to be called on the grob, etc.  The initial values of these settings
+are set in the Scheme file @file{scm/grob-description.scm}.
 
 @cindex slur attachments
 
@@ -2258,8 +2098,8 @@ use. Before you proceed, please make sure that you are using the
 documentation that corresponds to the LilyPond version that you use.
 
 Suppose that you wanted to tune the behavior of the slur. The first
-step is to get some general info on slurs in lilypond. Turn to the
-index, and look up slur. The section on slurs says
+step is to get some general information on slurs in lilypond. Turn to
+the index, and look up ``slur''. The section on slurs says
 @quotation
 The grob for this object is @internalsref{Slur}, generally in
 @internalsref{Voice} context.
@@ -2273,7 +2113,9 @@ and select ``slur'' (the list is alphabetical.)
 
 Now you get a list of all the properties that the slur object
 supports, along with their default values. Among the properties we
-find the @code{attachment} property, leading to 
+find the @code{attachment} property with its default setting.
+The property documentation explains that the following setting will
+produce the desired effect:
 @example 
  \property Voice.Slur \set #'attachment = #'(stem . stem)
 @end example
@@ -2331,7 +2173,7 @@ downwards.
 @end example      
 The @code{extra-offset} is a low-level feature: it moves around
 objects in the printout; the formatting engine is completely oblivious
-to these offsets.
+to these offsets. The unit of these offsets are staff-spaces. 
 
 @cindex reverting grob properties
 @cindex undoing grob properties
@@ -2352,11 +2194,10 @@ There is three different types of variables in LilyPond, something
 which is confusing at first (and for some, it stays like that).
 Variables such as @code{extra-offset} and @code{attachment} are called
 grob properties. They are something different from the translator
-properties, like @code{autoBeaming} and
-@code{automaticMelismata}. Finally, music expressions are internally
-also stored using properties, so-called music properties. You will
-encounter the latter type if you run Scheme functions on music using
-@code{\apply}.
+properties, like @code{autoBeaming}. Finally, music expressions are
+internally also stored using properties, so-called music
+properties. You will encounter the latter type if you run Scheme
+functions on music using @code{\apply}.
 
 The second fingering instruction should be moved up a little, to avoid
 a collision with the slur. This could be achieved with
@@ -2454,9 +2295,10 @@ own name.  These pieces of music are then combined in different
 @code{\score} blocks to produce different combinations of the score.
 
 This orchestral score example consists of three input files.  In the
-first file, @file{os-music.ly}, we define the music for all instruments.
-This file will be used both for producing the score and the separate
-parts.
+first file, @file{os-music.ly}, we define the music for all
+instruments.  This file will be used both for producing the score and
+the separate parts. Other files reference this file by doing
+@code{\include "os-music.ly"}.
 
 If you were to run LilyPond on this file, no printable output would be
 produced.
@@ -2527,8 +2369,8 @@ for transposing instruments.
 @subsection The full score
 
 
-The second file, @file{os-score.ly} reads the definitions of the first
-(@file{os-music.ly}), and defines the @code{\score} block for the full
+The second file, @file{input/tutorial/os-score.ly} reads the definitions of the first
+(@file{input/tutorial/os-music.ly}), and defines the @code{\score} block for the full
 conductor's score.
 
 
@@ -2624,9 +2466,19 @@ First, we need to include the music definitions we made in
 @example
 #(set! point-and-click line-column-location)
 @end example
-In a large orchestral score like this you're bound to make some small
-mistakes, so we enable point and click (See @ref{Point and click})
-editing.
+
+This piece of Scheme code sets the Scheme variable
+@code{point-and-click} to the value @var{line-column-location} (which
+itself is a Scheme procedure).
+
+Editing input files can be complicated if you're working with large
+files: if you're digitizing existing music, you have to synchronize
+the .ly file, the sheet music on your lap and the sheet music on the
+screen.  The point-and-click mechanism makes it easy to find the
+origin of an error in the LY file: when you view the file with Xdvi
+and click on a note, your editor will jump to the spot where that note
+was entered.  For more information, see @ref{Point and click}.
+
 
 @separate
 @example
@@ -2877,43 +2729,6 @@ bars.  LilyPond will do this if Score's @var{skipBars} property to
 true. 
 
 
-@node Other ways to run LilyPond
-@section Other ways to run LilyPond
-
-Until now, you have been using @file{ly2dvi} to invoke LilyPond.
-There are three other routes.  Firstly, there is a script called
-@code{lilypond-book}, that allows you to freely mix LilyPond input with
-Texinfo or \LaTeX input. For example, this manual was written using
-@code{lilypond-book}. It is discussed below and in @ref{lilypond-book}.
-
-
-Secondly, you can generate PostScript directly. This is useful if you
-can not or do not want to run @TeX{} on your system.  To obtain direct
-PostScript output, invoke LilyPond as follows:
-@cindex PostScript output
-@example
-lilypond -f ps test.ly
-@end example
-You have to set some environment variables to view or print this output. 
-More information can be found in @ref{Invoking LilyPond}. Since the
-direct Postscript generation has some problems, it is recommended
-to use @file{ly2dvi}.
-
-
-Thirdly, if you want to do special things with your output, you can run
-invoke LilyPond directly:
-@example
-lilypond test.ly
-@end example
-to produce plain @TeX{} output.  Note that La@TeX{} will not work on the
-resulting @file{test.tex}.  You must run plain @TeX{} on it.
-
-@cindex @TeX{}
-
-
-
-
-
 @node Integrating text and music
 @section Integrating text and music
 
@@ -2923,12 +2738,13 @@ songbook, or (like us) the LilyPond manual.  You can make such texts by
 hand, simply by importing a PostScript figure into your wordprocessor.
 However, there is a also an automated procedure:
 
-If you use La@TeX{} or texinfo, you can mix text and LilyPond code. A
-script called @code{lilypond-book} will extract the music fragments, run
-LilyPond on them, and put back the resulting notation.  lilypond-book is
-described fully in @ref{lilypond-book}, but here we show a small
-example. Since the example also contains explanatory text, we won't
-comment on the contents.
+If you use HTML, La@TeX{} or texinfo, you can mix text and LilyPond
+code. A script called @code{lilypond-book} will extract the music
+fragments, run LilyPond on them, and put back the resulting notation.
+This utility program is described fully in the chapter @ref{Insert
+music snippets into your texts using lilypond-book}. Here we show a
+small example. Since the example also contains explanatory text, we
+won't comment on the contents.
 
 @example
 \documentclass[a4paper]@{article@}
@@ -3043,59 +2859,22 @@ The @code{printfilename} option adds the file name to the output.
 @node  End of tutorial
 @section End of tutorial
          
-That's all folks.  From here, you can either try fiddling with input
-files, or you can read the reference manual.  You can find more example
-files in @file{input} and @file{input/test}.  You can also look at some
-real music.  The website @uref{http://www.mutopiaproject.org} has many
-examples of real music typeset by LilyPond.
-
-
-
-@ignore
-
-[TODO
-
-this should be on mutopia website.
-
-]
-
+This is the end of the tutorial. If you came up till here, and
+have understood everything, then you're now an accomplished lilypond
+hacker. From here, you can  try fiddling with input
+files, coming back to the reference  manual for information.
+Also don't forget to check out the 
+@ifhtml
+@uref{../../templates/out-www/templates.html,templates},
+@uref{../../test/out-www/test.html,example} and 
+@uref{../../regression/out-www/regression.html,feature test}
+snippets.
+@end ifhtml
+@ifnothtml
+templates, example and feature test snippets.
+@end ifnothtml
+If you want to see real action lilypond, then head over to
+@uref{http://www.mutopiaproject.org}, which has many examples of
+classical music typeset by LilyPond.
 
-@c waar deze info?  is uiteindelijk wel handig, schat ik.
-[TODO: cut blabla]
-
-If you have a big music project, or just a lot of LilyPond input files,
-all generated output from LilyPond, @TeX{} and metafont will clutter
-your working directory.  LilyPond comes with a one-size-fits-all
-pre-cooked makefile that helps you manage producing output.  It will
-produce all output in the directory @file{out} , generate and track
-dependencies. Also, it helps in preparing your submission to @ref{Mutopia
-project}.
-
-@file{make/ly.make}
-@example
-mkdir my-project
-cd my-project
-cp /usr/share/lilypond/make/ly.make GNUmakefile
-cp /usr/share/doc/lilypond/examples/input/tutorial/minuet.ly .
-make minuet
-[..]
-Generated out/minuet.ps for target minuet.
-@end example
-
-Type @samp{make help} to see possible targets.
-
-[TODO]
-@file{/usr/share/lilypond/doc/lilypond/examples/input/mutopia-header.ly}
-
-
-
-
-
-[TODO: rewrite completely.]
-
-@menu
-* Songs with additional verses::  
-@end menu
-
-@end ignore