]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/tutorial.itely
* Documentation/user/refman.itely: doco updates.
[lilypond.git] / Documentation / user / tutorial.itely
index 09d60d1ed2f601c6b5c3efcbd02633957d70fa83..d28775ac5b1b3fbe66ee41c176cf581df39a772f 100644 (file)
 @c -*-texinfo-*-
 
-@c TODO: LilyPond Lilypond lilypond
-
-FIXME: choose one of: notation context/interpretation context.
-
+@c TODO: LilyPond LilyPond LilyPond
 
 @node Tutorial
 @chapter Tutorial
-  
-LilyPond prints music from a specification that you, the user, supply.
-You have to give that specification using a textual @emph{language}.  
-This chapter is a gentle introduction to that language.
-
-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.
-
-@cindex examples, tutorial
-
-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.  In binary installations you should look in your doc section,
-eg, @code{/usr/share/doc/lilypond1.3/examples/input/tutorial}
-@cindex file names
-}. We recommend that you experiment with writing Lilypond input
-yourself, to get a feel for how the program behaves.
+
+@html
+<!--- @@WEB-TITLE@@=Tutorial --->
+@end html
 
 @menu
-* Running LilyPond::            Getting started
-* The first tune::              The first tune
-* Lyrics and chords::           Lyrics and chords
-* More movements ::             
+* First steps::                 Music language of LilyPond
+* Running LilyPond::            Printing music
+* More basics::                 
+* Printing lyrics::             
+* A melody with chords ::       
+* More stanzas::                
+* More movements ::             Joining separate pieces of music
 * A piano excerpt::             Piano music
-* An orchestral score::         
-* Other ways to run LilyPond::  
-* Latex and texinfo integration::  
-* end of tutorial::             The end
+* Fine tuning a piece::         
+* An orchestral score::         Conductor's score and individual parts
+* 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.
 
-@node Running LilyPond
-@section Running LilyPond
+This tutorial starts with a small introduction to the LilyPond music
+language.  After this first contact, we will show you how to run
+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.
 
-Before we dive into describing the input language of LilyPond, we first
-show you through the procedure for getting notes on your screen and out
-of your printer.
+@node First steps
+@section First steps
 
-The first step is creating an input file.  Using your favorite
-text-editor, create @file{test.ly} containing
-
-@ignore
+We tsart off with showing how very simple music is entered in
+LilyPond:  you get a simple note by typing its note name, from
+@code{a} through @code{g}. So if you enter
+@quotation
+@example
+c d e f g a b
+@end example
+@end quotation
+then the result looks like this:
+@quotation
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\transpose c'' { c d e f g a b }
+@end lilypond
+@end quotation
+@separate
 
-NOTE: if you're reading this, ie, the Texinfo source itself, test.ly
-should of course contain:
+We will continue with this format: first we show a snippet of input,
+then the resulting output.
 
-   \score{
-     \notes { c'4 e' g' }
-   }
+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:
 
-@end ignore
+@quotation
+@example
+a1 a2 a4 a16 a32
+@end example
+
+@c missing clef seems to raise more questions than actual pitch of notes,
+@c as these are snippets anyway
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.autoBeaming = ##f
+%\property Staff.Clef = \turnOff
+\transpose c'' { a1 a2 a4 a16 a32 }
+s16_" "
+@end lilypond
+@end quotation
+@separate
 
+If you don't specify a duration, the previous one is used: 
+@quotation
 @example
-\score @{
-  \notes @{ c'4 e' g' @}
-@} 
+a4 a a2 a
 @end example
 
-@unnumberedsubsec Unix
-@cindex Unix, Running lilypond on
-@cindex ly2dvi
+@c missing clef seems to raise more questions than actual pitch of notes,
+@c as these are snippets anyway
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+%\property Staff.Clef = \turnOff
+\transpose c'' { a a a2 a }
+s16_" "
+@end lilypond
+@end quotation
+@separate
 
-On unix, you invoke ly2dvi to compile your lilypond source file (you can
-omit the @code{.ly}):
+A sharp (@texisharp{}) is made by adding ``@code{is}'', a flat
+(@texiflat{}) by adding ``@code{es}'':
 
+@quotation
 @example
-ly2dvi -P test
+cis1 ees fisis aeses
 @end example
 
-You will see the following on your screen:
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\transpose c'' { cis1 ees fisis aeses }
+s16_" "
+@end lilypond
+@end quotation
+@separate
 
+Add a dot ``@code{.}'' after the duration to get a dotted note:
+@quotation
 @example
-GNU LilyPond 1.3.145
-Now processing: `/home/fred/ly/test.ly'
-Parsing...
-Interpreting music...[1]
-Preprocessing elements... 
-Calculating column positions... [2]
-paper output to test.tex...
-
-Analyzing test.tex...
-Running LaTeX...
-Running dvips...
-PS output to test.ps...
-DVI output to test.dvi...
+a2. a4 a8. a16
 @end example
 
-The results of the ly2dvi run are a ``DeVice Independent'' file
-(@file{test.dvi}) and a PostScript file (@file{test.ps}).
+@c missing clef seems to raise more questions than actual pitch of notes,
+@c as these are snippets anyway
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature \set #'transparent = ##t
+%\property Staff.Clef = \turnOff
+\transpose c'' { a2. a4 a8. a16 }
+s16_" "
+@end lilypond
+@end quotation
+@separate
+
+The meter (or time signature) can be set with the @code{\time} command:
 
-@cindex DVI file
+@quotation
+@example
+\time 3/4
+\time 6/8
+\time 4/4
+@end example
+
+@c a clef here may lead to confusion
+@lilypond[fragment]
+\property Staff.Clef \set #'transparent = ##t 
+\time 3/4
+s4_" "
+\time 6/8
+s4_" "
+\time 4/4
+s16_" "
+@end lilypond
+@end quotation
+@separate
 
-@cindex Viewing music
-@cindex xdvi
-@cindex .dvi
+The clef can be set using the ``@code{\clef}'' command:
+
+@c what is more common name treble or violin?
+@c in Dutch, its violin.
+@quotation
+@example
+\clef violin
+\clef bass
+\clef alto
+\clef tenor
+@end example
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\clef violin
+s4_" "
+\clef bass
+s4_" "
+\clef alto
+s4_" "
+\clef tenor
+s16_" "
+@end lilypond
+@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):
+
+@quotation
+@example
+\notes @{
+   \time 3/4
+   \clef bass
+   c2 e4 g2.
+   f4 e d c2.
+@}
+@end example
+@end quotation
+@separate
 
-To view the @code{test.dvi} output, run Xdvi (you may omit the
-@code{.dvi}):
+At this point, the piece of music is ready to be printed.  This is done
+by combining the music with a printing command.
 
+The printing command is the so-called ``@code{\paper}'' block.  You
+will see later that the @code{\paper} block is necessary 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
-xdvi test
+\score @{
+  \notes @{
+     \time 3/4
+     \clef bass
+     c2 e4 g2.
+     f4 e d c2.
+  @}
+  \paper @{ @}
+@}
 @end example
 
-You should see the following in  a window next to some buttons.
 @lilypond
 \score {
-  \notes { c'4 e' g' }
-} 
+  \notes {
+     \time 3/4
+     \clef bass
+     c2 e4 g2.
+     f4 e d c2.
+  }
+  \paper { linewidth = 60 * \staffspace }
+}
 @end lilypond
+@end quotation
+@separate
+
+
+@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}:
 
-When you're satisfied with the result, you can print the
-PostScript file:
+@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
-lpr test.ps
+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
-If this does not make your printer produce a page of music, you should
-look into installing and configuring ghostscript.  Refer to
+@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} 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 won't show up in these.
+
+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 .ps
+@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 the @code{--pdf},
+you will get a DVI, PS and PDF file. The viewers for the PS files also
+accept PDF files, but there are also many other applications for
+viewing PDF files.
+
+If you are familiar with @TeX{}, then one warning is in place: 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 different than @code{dvips}.
+
+@cindex dvips
+@cindex dvilj
+@cindex DVI driver
+
+@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
 
-@unnumberedsubsec Windows
 
-@strong{[TODO]}
+@strong{SUMMARY}
 
-* setting of env vars (TFMFONTS,MFINPUTS,TEXINPUTS)
+To run LilyPond, enter a file, and 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.
 
-* dvi viewer doesn't display postscript
+@multitable @columnfractions  .3 .3 .4  
 
+@item @b{Syntax}
+@tab @b{Description}
+@tab @b{Example}
 
-@node The first tune
-@section The first tune
+@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
 
-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 menuet in J. S. Bach's @emph{Klavierb@"uchlein}. The file
-is included in the distribution as  @file{menuet.ly}.
-@cindex Bach, Johann Sebastian 
+@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
 
-@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.  |
-        }
+@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
 
-        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 wide for a book
-       linewidth = 14.0 \cm
-   }
-}
+@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
 
-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 
-The percent sign, @code{%}, introduces a line comment.  You can also
-comment out a block of several lines, by enclosing them in
-@code{%@{} and @code{%@}}.
-@cindex comment
-@cindex block comment
-@cindex line comment
-@separate
-@example 
+@end multitable
 
-        \include "paper16.ly"
+
+@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
+r2 r4 r8 r16
 @end example
-@cindex @code{\include}
-@cindex point, printer's
-@cindex staff size setting 
-By default, LilyPond will typeset the music in a size such that each 
-staff is 20 point@footnote{A point is the standard measure of length for
-printing; one point is 1/72.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.
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.Clef = \turnOff
+\property Staff.TimeSignature = \turnOff
+r2 r4 r8 r16
+s16_" "
+@end lilypond
+@end quotation
 @separate
-@example 
 
-        \notes                
-@end example 
-Prepare LilyPond for accepting notes.
-@cindex octaves, choosing
-@cindex pitch
-@separate
-@example 
+@c Tim wants to move this quotes example just before the: quotes-don't-work
+@c score, but we'd need to remove quotes from the other two (key and
+@c tie) examples...
 
-        \relative c''
+@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).  The central C is @code{c'}:
+
+@quotation
+@example
+c'4 c'' c''' \clef bass c c,
 @end example
-@cindex relative
-As we will see, each note is described by its note name, duration,
-octave and possibly a chromatic alteration.  In this setup, the octave
-is indicated by using high quotes (@code{'}) and ``lowered quotes''
-(commas: @code{,}).  The central C is denoted by @code{c'}.  The C one
-octave higher is @code{c''}.  One and two octaves below the central C is
-denoted by @code{c} and @code{c,} respectively.
-
-Even though a piece of music often spans a range of several octaves, it
-mostly moves in small intervals.  LilyPond has a special entry mode to
-save typing in this situation.  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.
-
-Because the first note has no predecessor,
-you have to give the (absolute) pitch of the note to start with.
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+c'4 c'' c''' \clef bass c c,
+@end lilypond
+@end quotation
 @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.
+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:
+
+@quotation
+@lilypond[fragment,verbatim]
+g'4 ~ g' a'2 ~ a'4
+@end lilypond
+@end quotation
 @separate
-@example 
 
-        \time 3/4
+The key signature is set with the command ``@code{\key}'':
+@quotation
+@example
+\key d \major
+g'1
+\key c \minor
+g'
+@end example
+
+@lilypond[fragment]
+\property Staff.TimeSignature = \turnOff
+\key d \major
+g'1
+\key c \minor
+g'
+@end lilypond
+@end quotation
+
+
+@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.
+
+@quotation
+@example
+\score @{
+  \notes @{
+    \time 4/4
+    \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'' ~
+    cis''2 r2
+  @}
+  \paper @{ @}
+@}
 @end example
-@cindex time signature, setting
-@cindex @code{\time}
-Set (or change) the time signature of the current piece: a 3/4 sign is
-printed.  The time signature setting is also used to generate bar lines
-at the right spots.
-@separate
-@example 
 
-        \key g \major
+@lilypond
+\score {
+  \notes {
+    \time 4/4
+    \clef violin
+    \key d \minor
+    r4 r8 d''8 cis''4 e''
+    d''8 a'4. ~ a' b'8
+    cis''4 cis''8 cis'' bis'4 d''8 cis'' ~
+    cis''2 r2
+  }
+  \paper { linewidth = 50*\staffspace }
+}
+@end lilypond
+@end quotation
+
+@c accidentals...
+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.  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.
+
+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 type
+no octavation quotes, relative mode chooses the note that is closest
+to the previous one, which is often just the one you need.
+@c don't use commas or quotes in this sentence
+For example: @code{c f} goes up; @code{c g} goes down:
+
+@quotation
+@example
+\relative c'' @{
+  c f c g c
+@}
 @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.
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\relative c'' {
+  c f c g c
+}
+@end lilypond
+@end quotation
 @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.
+@c needed better, maybe even redundant explanation
+@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 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
+For example: @code{c f,} goes down; @code{f, f} are both the same;
+@code{c c'} are the same; and @code{c g'} goes up:
+
+@quotation
+@example
+\relative c'' @{
+  c f, f c' c g' c,
+@}
+@end example
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\relative c'' {
+  c f, f c' c g' c,
+}
+@end lilypond
+@end quotation
 @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.
+
+@strong{SUMMARY}
+
+The following table  summarizes the syntax learned 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:
+
+@quotation
+@lilypond[fragment,relative 1, verbatim]
+d4( )c16( cis d e c cis d )e( )d4
+@end lilypond
+@end quotation
 @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.
+If you need two slurs at the same time (one for articulation, one for
+phrasing), you can also make a phrasing slur with @code{\(} and
+@code{\)}.
 
-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.
+@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
+@end lilypond
+@end quotation
 @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{a4 b4}
+Beams are drawn automatically, but if you don't like the choices, you
+can enter beams by hand. Surround the notes to be grouped with @code{[}
+and @code{]}:
+@quotation
+@lilypond[fragment,relative 1, verbatim]
+[a8 ais] [d es r d]
+@end lilypond
+@end quotation
 @separate
-@example 
 
-        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.
+To print more than one staff, each piece of music that makes up a staff
+is marked by adding @code{\context Staff} before it.  These
+@code{Staff}'s can be grouped inside @code{<} and @code{>}, as is
+demonstrated here:
 
-@cindex alteration, chromatic
-@cindex chromatic alteration
-@separate
-@example 
+@quotation
+@lilypond[fragment,verbatim]
+<
+  \context Staff = staffA { \clef violin c'' }
+  \context Staff = staffB { \clef bass c }
+>
+@end lilypond
+@end quotation
 
-        c8 d e fis
+In this example, @code{staffA} and @code{staffB} are names that are
+given to the staves.  It doesn't matter what names you give, as long
+as each staff has a unique name.
 
-@end example 
-So far, no notes were chromatically altered.  Here is the first one that
-is: @code{fis}.  Lilypond by default uses Dutch@footnote{Note names are
-available in several languages, but we find the Dutch names quite
-convenient.} note names, and ``Fis'' is the Dutch note name for ``F
-sharp''.  However, there is no sharp sign in the output. The program
-keeps track of key signatures, and will only print accidentals if they
-are needed.
-
-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 
 
-        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.
+We can typeset a melody with two staves now:
+
+@quotation
+@lilypond[verbatim,singleline]
+\score {
+  \notes 
+  < \context Staff = staffA {
+      \time 3/4
+      \clef violin
+      \relative c'' { e2 ( d4 c2 b4 [a8 a] [b b] [g g] )a2. }  
+    }
+    \context Staff = staffB {
+       \clef bass
+       c2 e4  g2.
+       f4 e d c2.
+    }
+  >
+  \paper {} 
+}
+@end lilypond
+@end quotation
+
+Notice that the time signature is specified in one melody staff only
+(the top staff), but is printed on both.  LilyPond knows that the time
+signature should be the same for all staves.
+
 @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.
+Common accents can be added to a note using @code{-.}, @code{--}, @code{->}:
+@quotation
+@lilypond[verbatim,relative 1]
+c-. c-- c->
+@end lilypond
+@end quotation
 @separate
-@example 
 
-        g2.  |
-@end example
-@cindex augmentation dot
-@cindex dot
-A period adds an augmentation dot to the note.
+Dynamic signs are made by adding the markings to the note:
+@quotation
+@lilypond[verbatim,relative 1]
+c-\ff c-\mf
+@end lilypond
+@end quotation
 @separate
-@example 
 
-        @}
-@end example 
-The end of the sequential music to be repeated.  LilyPond will typeset a
-repeat bar.
+Crescendi are started with the commands @code{\<}  and @code{\>}. The
+command @code{\!} finishes a crescendo on the following note.
+@quotation
+@lilypond[verbatim,relative 1]
+c2\<  \!c2-\ff  \>c2  \!c2
+@end lilypond
+@end quotation
 @separate
-@example 
 
-        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.
+Chords can be made by surrounding notes with @code{<} and @code{>}:
+@quotation
+@lilypond[relative 0, fragment,verbatim]
+r4 <c e g> <c f a> 
+@end lilypond
+@end quotation
 @separate
-@example 
 
-        a8-. b-. cis-. d-. e-. fis-.
+@ignore
+@c te diepzinnig?
+@c hmm, te losjes, iig
+In general, @code{ < @var{stuff} > } is used when @var{stuff} all
+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
+beam and tie markings must be placed outside the chord markers:
+@quotation
+@lilypond[relative 0, fragment,verbatim]
+r4 [<c8 e g> <c8 f a>] ~ <c8 f a>
+@end lilypond
+@end quotation
+
+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{< >}:
+
+
+@quotation
+@example
+r4 <c8 e g \> ( > <c e g> <c e g>  < ) \! c8 f a>
 @end example
-@cindex articulation
-You can enter articulation signs either in a verbose form or using a
-shorthand.  Here we demonstrate the shorthand: it is formed by a dash
-and the character for the articulation to use, e.g. @code{-.} for
-staccato as shown above.
+@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:
+@quotation
+@lilypond[verbatim,singleline]
+\score { \notes <c'2 e'2> }
+@end lilypond
+@end quotation
 @separate
-@example 
 
-        fis a, r8 cis8
-@end example 
-Rests are denoted by the special notename @code{r}.  
+If you have a piece that starts with a chord, then 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} for
+the notes:
+
+@quotation
+@lilypond[verbatim,singleline]
+\score { \notes \context Voice <c'2 e'2> }
+@end lilypond
+@end quotation
 @separate
+
+
+
+@strong{SUMMARY}
+
+@multitable @columnfractions .3 .3 .4  
+
+@item @b{Syntax}
+@tab @b{Description}
+@tab @b{Example}
+
+
+@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
+c( d )e
+@end lilypond
+
+
+@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
+c\(  c() d \)e
+@end lilypond
+
+
+@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
+[a8 b]
+@end lilypond
+
+
+@item @code{< \context Staff ... >}
+@tab more staffs
+@tab
+@lilypond[fragment]
+< \context Staff = SA { c'1 }
+  \context Staff = SB { c'1 } >
+@end lilypond
+
+  
+@item @code{-> -.}
+@tab articulations
+@tab
+@lilypond[fragment, relative 1]
+\property Staff.TimeSignature = \turnOff
+\property Staff.Clef = \turnOff
+c-> c-.
+@end lilypond
+
+
+@item @code{-\mf -\sfz}
+@tab dynamics
+@tab
+@lilypond[fragment, relative 1]
+\property Staff.TimeSignature = \turnOff
+\property Staff.Clef = \turnOff
+c-\mf c-\sfz
+@end lilypond
+
+
+@item @code{\< \!}
+@tab crescendo
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.autoBeaming = ##f
+\property Staff.Clef = \turnOff
+a\< a \!a
+@end lilypond
+
+@item @code{\> \!}
+@tab decrescendo
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.autoBeaming = ##f
+\property Staff.Clef = \turnOff
+a\> a \!a
+@end lilypond
+
+
+@item @code{< >}
+@tab chord
+@tab
+@lilypond[fragment, relative 1]
+\context Voice <c e> 
+@end lilypond
+
+@end multitable
+
+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, dealing with more advanced topics such as
+lyrics, chords, orchestral scores and parts, fine tuning output,
+polyphonic music, and integrating text and music.
+
+
+
+
+
+@node Printing lyrics
+@section Printing lyrics
+@cindex lyrics
+
+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
+
+
+@cindex lyric mode
+@cindex @code{\lyrics}
+
+
+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.
+
+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.
+
+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.
+
+These are the lyrics for the free software song:
+
 @example 
+ \lyrics @{ 
+    Join us now __ and
+    share the soft -- ware; @}
+@end example
 
-        d2.-\fermata
+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 
-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
+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.  
+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.
+
+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 and end
-bar, we must explicitely request one, using @code{"|."}.
-@c FIXME: Why not?!  better to override \bar "" if not wanted?
-@separate
-@example 
+  \context Lyrics
+@end example
+explicitly creates an interpretation context of 
+@code{Lyrics} type to interpret the song text that we entered.
 
-        \paper @{
-                linewidth = 14.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 
+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
 
-        @}
-@end example 
-The last brace ends the @code{\score} block.
+Both can be combined with the @code{\addlyrics}:
+@example
+\addlyrics
+  \notes \relative c' @dots{}
+  \context Lyrics \lyrics @dots{} 
+@end example
 
+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
@@ -491,11 +1118,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
@@ -505,14 +1127,10 @@ accompaniment =\chords @{
         \simultaneous @{
           %\accompaniment
           \context ChordNames \accompaniment
-
-          \addlyrics
             \context Staff = mel @{        
-              \property Staff.noAutoBeaming = ##t
-              \property Staff.automaticMelismata = ##t
               \melody 
             @}
-            \context Lyrics \text
+
         @}
         \midi  @{ \tempo 4=72 @}
         \paper @{ linewidth = 10.0\cm @}
@@ -520,18 +1138,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
@@ -542,11 +1151,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
@@ -557,13 +1161,10 @@ accompaniment =\chords {
           %\accompaniment
           \context ChordNames \accompaniment
 
-          \addlyrics
             \context Staff = mel {
-              \property Staff.noAutoBeaming = ##t
-              \property Staff.automaticMelismata = ##t
-              \melody 
+              \property Staff.autoBeaming = ##f
+             \melody 
             }
-            \context Lyrics \text
         }
         \midi  { \tempo 4=72 }
         \paper { linewidth = 10.0\cm }
@@ -571,30 +1172,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. Lexically, both the variable name and the
-assigned value are strings. The values have to be quoted here, because
-they contain spaces, the variable names could also be put within quotes
-but it is not necessary. Each assignment is finished with a semicolon.
 @separate
 @example 
 
@@ -646,10 +1224,7 @@ beams off, and use explicit beaming where needed.
         @}
  
 @end example 
-This ends the definition of @code{melody}.  Note that there are no
-semicolons after assignments at the top level.
-
-[FIXME: no longer true for 146?]
+This ends the definition of @code{melody}.  
 
 @separate
 @example 
@@ -660,26 +1235,7 @@ semicolons after assignments at the top level.
 @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 
 
-  The4 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 enter the syllables as if they are all quarter notes
-in length (hence the @code{4}), and use a feature to align the
-syllables to the music, which obviously isn't all quarter notes.
 @separate
 @example 
 
@@ -702,17 +1258,22 @@ There is no accompaniment during the anacrusis.
 @separate
 @example 
 
-        c2:3- f:3-.7
+        c2:3- 
  
 @end example
 
 @cindex tonic
 @cindex chord modifier
 @cindex modifier, chord 
-A chord is started by  the tonic of the chord. The
-first one lasts a half note.  An unadorned note creates a major
-triad. Since a minor triad is wanted, @code{3-} is added to modify the
-third to be small. @code{7} modifies (adds) a seventh, which is small by
+This is a c minor chord, lasting half a note.  Chord are entered by
+entering the tonic. Then notes can be changed. In this case, a small third
+is used. The cod for this is @code{3-}. 
+
+@separate
+@example
+f:3-.7
+@end example
+Similarly, @code{7} modifies (adds) a seventh, which is small by
 default to create the @code{f a c es} chord.  Multiple modifiers must be
 separated by dots.
 @separate
@@ -721,8 +1282,7 @@ separated by dots.
         d:min es4 c8:min r8
  
 @end example
-
-Some modifiers have predefined names, eg. @code{min} is  the same as
+Some modifiers have predefined names, e.g. @code{min} is  the same as
 @code{3-}, so @code{d-min} is a minor @code{d} chord.
 @separate
 @example 
@@ -774,33 +1334,18 @@ 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 (or `Notation contexts') only exist
-during a run of LilyPond.
+contexts'.  Interpretation contexts exist for generating notation
+(`notation context') and for generating sound (`performance
+context'). These objects only exist during a run of LilyPond.
 
-By default, LilyPond will create a Staff context for you.  If you would
-remove the @code{%} sign in the previous line, you would see that
-mechanism in action.
+When LilyPond interprets music, it will create a Staff context.  If
+the @code{%} sign in the previous line were removed, you could see
+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.  If you would reverse the order, the notes would be
-aligned on the lyrics, which is not very useful, and looks
-silly.
 @separate
 @example 
 
@@ -808,56 +1353,27 @@ silly.
  
 @end example
 
-The second argument of @code{\addlyrics} is the melody.  We instantiate
-a @code{Staff} context explicitly: should you choose to remove the
-comment before the ``note heads'' version of the accompaniment, the
-accompaniment will be on a nameless staff.  The melody has to be on
-staff different from the accompaniment.  This is accomplished by giving
-the melody and accompaniment staffs different names.
+We place the melody on a staff called @code{mel}. We give it a name to
+differentiate it from the one that would contain note heads for the
+chords, if you would remove the comment before the ``note heads''
+version of the accompaniment. By giving this staff a name, it is
+forced to be different.
 @separate
 @example 
 
-        \property Staff.noAutoBeaming = ##t
+        \property Staff.autoBeaming = ##f
  
 @end example
 @cindex \property
 @cindex context variables
 @cindex setting context variables
 An interpretation context has variables, called properties, that tune
-its behaviour.  One of the variables is @code{noAutoBeaming}.  Setting
-this Staff's property to @code{##t}, which is the boolean value @var{true},
-turns the automatic beaming mechanism off for the current staff.
-@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.
-
+its behavior.  One of the variables is @code{autoBeaming}.  Setting
+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.
 
 
-@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 
 
@@ -869,16 +1385,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 
 
@@ -887,7 +1394,7 @@ Lyrics.
 @end example 
 MIDI (Musical Instrument Digital Interface) is a standard for
 connecting and recording digital instruments. So a MIDI file is like a
-tape recording of an instrument. The @code{\midi} block causes makes the
+tape recording of an instrument. The @code{\midi} block makes the
 music go to a MIDI file, so you can listen to the music you entered.  It
 is great for checking the music.  Whenever you hear something weird, you
 probably hear a typing error.
@@ -905,48 +1412,73 @@ 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,  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.3.124"
-\header @{ title = "Two miniatures"  @}
-
-#(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 it would look, but the result should resemble this:
+
+@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
@@ -974,102 +1506,93 @@ 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}.  They both look like this:
-
-@example
-        ...
-  \placebox@{-5  \outputscale @}%
-  @{  8.7229  \outputscale @}%
-  @{\magfontWXGEomMMBo\char90 @}%
-  
-  \placebox@{-4  \outputscale @}%
-  @{ 81.0647  \outputscale @}%
-        ...
-@end example
-
-@file{ly2dvi} looks at what output LilyPond produces, and generates a
-file called @file{ly2dvi.out.tex}. This file contains formatting
-instructions for the title and page layout.  A fragment might look like
+For example, consider the following file (@file{miniatures.ly}) 
 
 @example
+\version "1.5.60"
+\header @{
+  title = "Two miniatures"
+  composer = "F. Bar Baz" 
+  tagline = "small is beautiful" @}
 
-        \def\lilypondopus@{Opus 1.@}
-        \def\lilypondpiece@{Up@}
-        \def\mustmakelilypondtitle@{@}
-        \input miniatures.tex
-        \def\lilypondtitle@{Two miniatures@}
-
-@end example
+\paper @{ linewidth = -1.0 @}
 
-@file{ly2dvi} runs it through LaTeX. LaTeX is a text-formatting system
-built on top of @TeX{}. It's very popular in the academic world. If LaTeX
-is successful, this will produce a @file{.dvi} file, containing both the
-titling and the actual music.  @code{ly2dvi} completes its task by
-deleting the two temporary files, leaving only @file{miniatures.dvi}.
+%@{
 
-Next, now we'll look at the example line by line to explain new things.
+Mental note: discuss Schenkerian analysis of these key pieces.
 
-@separate
-@example 
-\version "1.3.124"
-@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{convert-ly}), which uses it to update the file to the latest lily
-version.
 
-@separate
-@example
-  \header @{ title = "Two miniatures"  @}
+\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
-This sets the titling information for the entire file.
 
-@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).
 
-Editing input files can be quite 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 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
@@ -1078,7 +1601,7 @@ little space, a longer phrase more space.
 @end example
 
 In previous examples, notes were specified in relative octaves,
-i.e. each note was put in the octave that would put it closest to its
+i.e. each note was put in the octave that is closest to its
 predecessor. Besides relative, there is also absolute octave
 specification, which you get when you don't specify @code{\relative}. In
 this input mode, the central C is denoted by @code{c'}. Going down, you
@@ -1087,8 +1610,8 @@ get @code{c} @code{c,} @code{c,,} etc.  Going up, you get @code{c''}
 
 When you're copying music from existing sheet music, relative octaves
 are probably the easiest to use: it's less typing work and errors are
-easily spotted. However, if you write LilyPond input, either by hand
-(ie. composing) or by computer, absolute octaves are probably less work.
+easily spotted. However, if you write LilyPond input directly, either by
+hand (i.e. composing) or by computer, absolute octaves may be easier to use.
 
 
 @separate
@@ -1113,109 +1636,57 @@ will be at the left.
 
 
 
-@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}.
-
-@lilypond[verbatim]
-\include "paper16.ly"
-
-stemDown = \property Voice.Stem \override #'direction = #-1
-stemUp = \property Voice.Stem \override #'direction = #1
-stemBoth = \property Voice.Stem \revert #'direction  
-
-viola = \notes \relative c' \context Voice = viola {
-    <c4-\f-\arpeggio g' c>
-    \stemDown g'8. b,16
-    s1 s2. r4
-    g
-}
-
-oboes = \notes \relative c'' \context Voice = oboe {
-    \stemUp s4  g8. b,16 c8 r <e'8.^\p g> <f16 a>
-    \grace <e8( g> <d4 )f> <c2 e>
-    \times 2/3 { <d8 \< f> <e g> <f a> }
-    <
-        { \times 2/3 { a8 g c } \! c2 }
-        \context Voice = oboeTwo {
-            \stemDown
-            \grace {
-                \property Grace.Stem \override #'direction = #-1
-                [f,16 g] }
-            f8 e e2
-        }
-    >
-    \stemBoth
-    \grace <c,8( e> <)b8. d8.-\trill> <c16 e> | 
-    [<d ( f> < )f8. a>] <)b,8 d> r [<d16( f> <f8. )a>] <b,8 d> r  |
-    [<c16( e>  < )e8. g>] <c8 e,>
-}
-
-hoomPah = \repeat unfold 8 \notes
-    \transpose c' { \stemUp c8 \stemBoth \stemDown c'8 \stemBoth }
-
-bassvoices = \notes \relative c' {
-    c4 g8. b,16
-    \autochange Staff \hoomPah
-    \translator Staff = down
-    \stemDown [c8 c'8] r4
-    <g d'> r4
-    < {\stemUp r2 <e4 c'> <c8 g'> }
-        \context Voice = reallyLow  {\stemDown g2 ~ | g4 c8 } >
-}
-
-\score {
-    \context PianoStaff \notes <
-        \context Staff = up < \time 2/2
-            \viola
-            \oboes
-        >
-        \context Staff = down < \time 2/2 \clef bass
-            \bassvoices
-        >
-    >
-    \midi { }
-    \paper {
-        indent = 0.0
-        linewidth = 15.0 \cm }
-}
-@end lilypond
+@example
+\version "1.5.60"
+\header @{
+  title = "Two miniatures"
+  composer = "F. Bar Baz" 
+  tagline = "small is beautiful" @}
 
-If this looks like incomprehensible gibberish to you, you are right.
-This example has been doctored to have as many quirks as possible.
+\paper @{ linewidth = -1.0 @}
 
-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
-directions.
+\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
 
-Printed symbols are internally represented by so-called Graphical
-Objects (more colloquially: Grobs).  These statements concern the
-grob called `Stem'. 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}.
 
 @separate
-@example
-  stemDown = \property Voice.Stem \override #'direction = #-1
-@end example
+@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.
 
-Set a proprerty for all Stem grobs in the current Voice:
-@code{direction} is set to @code{-1}, which encodes down.  The setting
-remains in effect until it is reverted.
 
-@separate
-@example
- \property Voice.Stem \revert #'direction  
-@end example
+@node A piano excerpt
+@section A piano excerpt
 
-Revert the to the previous setting.  The effect of precisely one
-@code{\stemDown} or @code{\stemUp} is neutralised.
+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{input/tutorial/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
+directions.
 
 LilyPond includes the identifiers @code{\stemUp}, @code{\stemDown} along
 with some other commonly used formatting instructions, but to explain how
@@ -1229,37 +1700,35 @@ viola = \notes \relative c'  \context Voice = viola @{
 @end example 
 In this example, you can see multiple parts on a staff.  Each part is
 associated with one notation context.  This notation context handles
-stems and dynamics (among others).  The name of this context is
+stems and dynamics (among others).  The type name of this context is
 @code{Voice}.  For each part we have to make sure that there is
-precisely one @code{Voice} context, so we give it an unique name
+precisely one @code{Voice} context, so we give it a unique name
 (`@code{viola}').
 
 @separate
 @example 
-<c4-\f-\arpeggio g' c>
+<c4-\arpeggio g' c>
 @end example 
 The delimiters @code{<} and @code{>} are shorthands for
 @code{\simultaneous @{} and @code{@}}. The expression enclosed in
 @code{<} and @code{>} is a chord.
 
-@cindex dynamics
-@cindex loudness
-@cindex forte
 @cindex arpeggio
 
-@code{\f} places a forte symbol under the chord. The forte applies to
-the whole chord, but the syntax requires that commands like forte and
-arpeggio are attached to a note, so here we attach them to the first
-note.
-
 @code{\arpeggio} typesets an arpeggio sign (a wavy vertical line) before
 the chord.
 
 @separate
 @example 
-   \stemDown
+   \voiceTwo
 @end example 
 
+We want the viola to have stems down, and have all the other
+characteristics of a second voice. This is enforced using the
+@code{\voiceTwo} command:  it inserts instructions that makes stem,
+ties, slurs, etc. go down.
+
+
 
 @separate
 @example 
@@ -1289,26 +1758,23 @@ these notes are indeed processed by precisely one context with
 @code{\context}.
 @separate
 @example 
-\stemUp s4  g8. b,16 c8 r <e'8.-\p g> <f16 a> 
-@end example 
-@code{\stemUp} is a reference to the @code{\property \override} command
-defined above. 
+\voiceOne s4  g8. b,16 c8 r <e'8. g> <f16 a> 
+@end example
+
+The oboes should have stems up, so they should have stems up, to keep
+them from interfering with the staff-jumping bass figure.
+
 @separate
 @example 
-\grace <e8 g> < d4 f> <c2 e> 
+\grace <e8( g> < d4 )f> <c2 e> 
 @end example
 @cindex @code{\grace}
 @cindex ornaments
 @cindex grace notes
-
 @code{\grace} introduces grace notes.  It takes one argument, in this
-case a chord.
+case a chord. A slur is introduced starting from the @code{\grace}
+ending on the following chord.
 
-@ignore
-The slur started on the @code{e} of the chord
-will be attached to the next note.@footnote{LilyPond will squirm
-about unended Slurs.  In this case, you can ignore the warning}.
-@end ignore
 @separate
 @example 
 \times 2/3 
@@ -1321,16 +1787,10 @@ of music is multiplied by the fraction.  Triplets make notes occupy 2/3
 of their notated duration, so in this case the fraction is 2/3.
 @separate
 @example 
-@{ <d8 \< f> <e g> <f a> @} 
+@{ <d8 f> <e g> <f a> @} 
 @end example 
 The piece of music to be `tripletted' is sequential music containing
-three notes.  On the first chord, a crescendo is started with
-@code{\<}. To be precise, the crescendo start is syntactically attached
-to the preceding note, the @code{d}.
-
-@cindex dynamics
-@cindex crescendo
-@cindex @code{\<}
+three chords.
 
 @separate
 @example 
@@ -1342,40 +1802,18 @@ we make a `chord' of sequences to do it.  We start with the upper
 voice, which continues with upward stems:
 @separate
 @example 
- @{ \times 2/3 @{ a8 g c @} \! c2 @} 
+ @{ \times 2/3 @{ a8 g c @} c2 @} 
 @end example
 
-@cindex @code{\!}
-
-The crescendo is ended at the half note by the escaped exclamation
-mark @code{\!}.
-@separate
-@example 
-\context Voice = oboeTwo @{
-\stemDown 
-@end example 
-We can't share stems with the other voice, so we have to create a new
-@code{Voice} context.  We give it the name @code{oboeTwo} to distinguish
-it from the other context.  Stems go down in this voice.
 @separate
-@example 
-\grace @{  
+@example
+\\
 @end example
-@cindex Grace context
-When a grace section is processed, a @code{Grace} context is
-created. This context acts like a miniature score of its own.  It has
-its own time bookkeeping, and you can make notes, beams, slurs
-etc. Here we fiddle with a property and make a beam.  The argument of
-@code{\grace} is sequential music.
-
-@separate
-@example 
-\property Grace.Stem \override #'direction = #-1
-[f,16 g] @}
-@end example 
-
-Normally, grace notes are always stem up, but in this case, the upper
-voice interferes. We set the stems down here.
+The easiest way to enter multiple voices is demonstrated
+here. Separate the components of the voice (single notes or entire
+sequences) with @code{\\} in a simultaneous music expression. The
+@code{\\} separators split first voice, second voice, third voice, and
+so on.
 
 As far as relative mode is concerned, the previous note is the
 @code{c'''2} of the upper voice, so we have to go an octave down for
@@ -1383,7 +1821,7 @@ the @code{f}.
 @separate
 @example 
 
-  f8 e e2
+  f,8 e e2
 @} > 
 @end example 
 This ends the two-part section.
@@ -1399,7 +1837,7 @@ This ends the two-part section.
 positioned as if it were single part music.
 
 The bass has a little hoom-pah melody to demonstrate parts switching
-between staffs.  Since it is repetitive, we use repeats:
+between staves.  Since it is repetitive, we use repeats:
 @separate
 @example 
 hoomPah  =  \repeat unfold 8
@@ -1414,29 +1852,41 @@ written out in full eight times.
 @cindex transposing
 @cindex relative mode and transposing
 
-Transposing can be done with @code{\transpose}.  It takes two arguments
-the first specifies what central C should be transposed to.  The second
+Transposing can be done with @code{\transpose}, which takes two arguments.
+The first specifies what central C should be transposed to.  The second
 is the to-be-transposed music.  As you can see, in this case, the
 transposition has no effect, as central C stays at central C.
 
-The purpose of this no-op is circumventing relative mode.  Relative mode
-can not be used together with transposition, so @code{\relative} will
-leave the contents of @code{\hoomPah} alone.  We can use it without
-having to worry about getting the motive in a wrong octave.
+The purpose of this no-op is to protect it from being interpreted as
+relative notes.  Relative mode can not be used together with
+transposition, so @code{\relative} will leave the contents of
+@code{\hoomPah} alone.  We can use it without having to worry about
+getting the motive in a wrong octave.
+@separate
+@cindex staff switch, manual
+@cindex cross staff voice, manual
+@cindex @code{\translator}
+
+@example
+       \translator Staff = down
+       \stemUp
+       c8
+       \translator Staff = up
+       \stemDown
+       c'8 @}
+@end example
+Voices can switch between staves. Here you see two staff switching
+commands. The first one moves to the lower staff, the second one to
+the lower one. If you set stem directions explicitly (using the
+identifiers @code{\stemUp} and @code{\stemDown}. 
+
 @separate
 @example 
 bassvoices = \notes \relative c' @{
 c4 g8. b,16
-\autochange Staff \hoomPah 
+\autochange Staff \hoomPah \context Voice
 @end example
-@cindex staff switch, automatic
-@cindex cross staff voice, automatic
-@cindex @code{\autochange}
 
-Voices can switch between staffs. The easiest way to get this, is to use
-@code{\autochange}. This command looks at the pitch of each note, and if
-necessary, will cross to the other staff. For this to work, the two
-staffs must be called @code{"up"} and @code{"down"}.
 @separate
 @example
         \translator Staff = down
@@ -1487,6 +1937,281 @@ to the page layout of this document.
 @end ignore
 
 
+@node Fine tuning a piece
+@section  Fine tuning a piece
+
+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). Both fragments (the
+tuned and the untuned are in the @file{input/tutorial/}).
+
+The code for the untuned example shows us some new things.
+
+@lilypondfile[verbatim]{brahms-original.ly}
+
+
+@cindex dynamics
+@cindex loudness
+@cindex forte
+@cindex crescendo
+@cindex @code{\<}
+@cindex @code{\!}
+
+The crescendo is ended at the half note by the escaped exclamation
+mark @code{\!}.
+
+Hairpin dynamics can be indicated using @code{\>} to start a
+decrescendo, and @code{\!} to end one. The crescendo is started using
+@code{\<} and also ended using @code{\!}. Absolute dynamics can be
+entered using @code{\p}, @code{\mf}, etc. All these commands apply to
+the complete chord where they are entered, but for syntactical
+reasons, they must be attached to one of the notes of  the chord.
+
+@cindex fingering instructions
+
+Fingering indications are entered simply using @code{-@var{N}}, where
+@var{N} is a digit.
+
+Now that we have the basic piece of music entered, we want to fine
+tune it, so we get something that resembles the original printed
+edition by Schott/Universal Edition:
+
+@lilypondfile{brahms-tweaked.ly}
+
+@cindex tuning grob behavior
+
+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.  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
+
+We start with the slur: the slur in the upper part, running from the F
+sharp to the A, runs from stem to stem in the printed edition, while
+ours starts from the note head at the left. The following property
+setting forces all slurs to run from stem to stem (and not from or to
+note head)
+
+@example
+  \property Voice.Slur \set #'attachment = #'(stem . stem)
+@end example
+
+More precisely, this command extends the definition of the @code{Slur}
+object in the current @code{Voice}.  The variable @code{attachment} is
+set to the pair of symbols @code{'(stem . stem)}. 
+
+Although this is useful information, it is not very helpful: the
+lilypond backend supports approximately 240 variables like
+@code{attachment}, each with their own meaning and own type
+(eg. number, symbol, list, etc). Besides slur, LilyPond has 80
+different types of Grobs, that may be created in 14 different context
+types besides Voice.
+
+@cindex internal documentation
+@cindex finding grobs
+@cindex grob descriptiosn 
+
+The interesting information is how you can figure out which properties
+to tune for your own scores. To discover this, you must have a copy of
+the internals document. This is a set of HTML pages, which should be
+included if you run a binary distribution@footnote{You can also
+compile them by executing @code{make -C Documentation/user/
+out/lilypond-internals.html} in the source package.}. This document is
+also available on the web: go to the lilypond website, click
+``Documentation: other'' on the side bar, click
+``lilypond-internals'', under information for users.
+
+You might want to bookmark either the HTML files on disk, or the one
+on the web. One word of caution is in place here: the internals
+documentation is generated from the definitions that lily uses. For
+that reason, it is strongly tied to the version of LilyPond that you
+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 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.
+@end quotation
+
+So the grob for this object is called @code{Slur}, and slurs are
+created in the @code{Voice} context.  If you are reading this tutorial
+in the HTML version, then you can simply click Slur, otherwise, you
+must look it up the internal documentation: click ``grob overview'' ,
+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 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
+
+If you ran the previous example, you have unknowingly already used
+this kind of command.  The @file{ly/property-init.ly} contains the
+definition of @code{\stemUp}
+@example
+  stemUp = \property Voice.Stem \set #'direction = #1
+@end example  
+
+
+We also want to move around the fingering `3'.  In the printed edition
+it is not above the stem, but a little lower, slightly left of the
+stem. From the user manual, we find that the associated grob is called
+@code{Fingering}, but how do we know if we should use @code{Voice} or
+@code{Staff}. In many cases, @code{Voice} is a safe bet, but you can
+also deduce this information from the internals documentation: if you
+visit the documentation of @code{Fingering}, you will notice
+@example
+Fingering grobs are created by: Fingering_engraver
+@end example
+
+
+
+Clicking @code{Fingering_engraver} will show you the documentation of
+the module responsible for interpreting the fingering instructions and
+translating them to a @code{Fingering} grob. Such a module is called
+an @emph{engraver}. The documentation of the @code{Fingering_engraver}
+says,
+@example
+Fingering_engraver is part of contexts: Voice and TabVoice
+@end example
+so tuning the settings for Fingering should be done using either
+@example
+  \property Voice.Fingering \set @dots{}
+@end example
+or
+@example
+  \property TabVoice.Fingering \set @dots{}
+@end example
+
+Since the @code{TabVoice} is only used for tab notation, we see that
+the first guess @code{Voice} was indeed correct.
+
+@cindex setting grob properties
+@cindex @code{extra-offset}
+
+For shifting the fingering, we use the grob property
+@code{extra-offset}.  The following command manually adds an offset to
+the object. We move it a little to the left, and 1.8 staff space
+downwards.
+@example
+ \property Voice.Fingering \set #'extra-offset = #'(-0.3 . -1.8) 
+@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. The unit of these offsets are staff-spaces. 
+
+@cindex reverting grob properties
+@cindex undoing grob properties
+
+We only want to offset a single grob, so after the F-sharp, we must
+undo the setting. The technical term is to revert the grob property.
+@example
+  \property Voice.Fingering \revert #'extra-offset
+@end example
+
+@cindex property types
+@cindex translator properties
+@cindex grob properties
+@cindex music properties
+
+
+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}. 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
+@code{extra-offset}, but in this case, a simpler mechanism also
+works. We insert an empty text between the 5 and the note. The empty
+text pushes the fingering instruction away:
+@example
+  a^" "^#'(finger "5")
+@end example
+
+Lilypond tries to put fingering instructions closer to the notes as
+text instructions. To insert an empty text (@code{^" "}) between the
+finger and the note, we have disguised the fingering instruction as a
+text: @code{(finger "5")}.
+
+Normally, one would specify dynamics in a single voice, and start and
+end dynamics (such as @b{f} and @b{p}) will be aligned with
+hairpins. In this case, we want the decrescendo to be in a different
+place from the piano sign. We achieve this by putting the dynamic
+markings in different voices. The crescendo should be above the upper
+staff. This can be forced by the precooked command 
+@example
+  \dynamicsUp
+@end example
+
+However, if you do that, the decrescendo will be too close to the
+upper voice, and collide with the stems. Looking at the manual for
+dynamics, we notice that ``Vertical positioning of these symbols is
+handled by the @internalsref{DynamicLineSpanner} grob.''. If we turn
+to the documentation of @code{DynamicLineSpanner}, we find that the
+@code{DynamicLineSpanner} supports several so-called
+`interfaces'. This grob not only puts dynamic objects next to the
+staff (@code{side-position-interface}), but it also groups dynamic
+objects (@code{axis-group-interface}), is considered a dynamic sign
+itself (@code{dynamic-interface}) and is a grob: it has the
+@code{grob-interface}, with all the variables that come with it.
+
+For the moment, we are interested in the side positioning:
+@quotation
+ side-position-interface
+
+  Position a victim object (this one) next to other objects (the
+  support).  In this case, the direction signifies where to put the
+  victim object relative to the support (left or right, up or down?)
+@end quotation
+Between the grob and its support (in this case: the notes in the voice
+going down), there should be more space. This space is controlled by
+@code{padding}, so we increase it.
+@example
+           \property Voice.DynamicLineSpanner \override #'padding = #5.0
+@end example
+
+This command is almost like the command for setting slur attachments,
+but subtly different in its details.  Grob properties can be
+manipulated with two commands: @code{\override} extends the grob
+variables with a setting, and @code{\revert} releases this
+setting. This has a certain theoretical appeal: the operations are
+simple and symmetric. For practical use, it can be cumbersome.  Both
+commands act like parentheses: you should carefully balance the use of
+@code{\override} and @code{\revert}. The @code{\set} command is more
+friendly: it first does a @code{\revert} followed by @code{\override}.
+
+Finally, Brahms uses music notation is a slightly unorthodox way. Ties
+usually happen only within one voice. In this piece, the composer
+gladly produces ties that jump voices. We deal with this by faking
+these ties: whenever we need such a tie, we insert a notehead in a
+different voice, and blank the stem. This is done in the following
+snippet of code.
+
+@example
+         \property Voice.Stem \set #'transparent = ##t
+         d'
+         \property Voice.Stem \revert #'transparent
+@end example
+
+Finally, the last tie is forced up using @code{\tieUp}.
+
+
 @node An orchestral score
 @section An orchestral score
 
@@ -1506,11 +2231,12 @@ 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
+If you were to run LilyPond on this file, no printable output would be
 produced.
 
 @example
@@ -1572,15 +2298,15 @@ to the end of the piece, and we can set the end bar.
 Key = \notes \key as \major
 @end example
 Declare the key signature of the piece and assign it to the identifier
-@var{Key}.  Lateron, we'll use @code{\Key} for all staffs except those
+@var{Key}.  Later on, we'll use @code{\Key} for all staves except those
 for transposing instruments.
 
 @node The full score
 @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.
 
 
@@ -1630,9 +2356,9 @@ conductor's score.
       \context Staff = corni <
         \property Staff.midiInstrument = #"french horn"
         \property Staff.instrument = #`(lines "Corno"
-          (rows "(E" ,text-flat ")"))
+          (columns "(E" ,text-flat ")"))
         \property Staff.instr = #`(lines "Cor."
-          (rows "(E" ,text-flat ")"))
+          (columns "(E" ,text-flat ")"))
         \property Staff.transposing = #3
         \notes \key bes \major
         \context Voice=one \corno
@@ -1643,13 +2369,8 @@ conductor's score.
     indent = 15 * \staffspace
     linewidth = 60 * \staffspace
     textheight = 90 * \staffspace
-    \translator@{
-      \VoiceContext
-      \consists "Multi_measure_rest_engraver"
-    @}
     \translator@{
       \HaraKiriStaffContext
-      \remove "Multi_measure_rest_engraver"
     @}
   @}
   \midi @{
@@ -1681,9 +2402,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
@@ -1695,7 +2426,7 @@ When naming the tuning of the french horn, we'll need a piece of text
 with a flat sign.  LilyPond has a mechanism for font selection and
 kerning called Scheme markup text (See @ref{Text markup}).  The flat
 sign is taken from the music font, and its name is @code{accidentals--1}
-(The sharp sign is called @code{accidentals-+1}).  The default font is
+(The natural sign is called @code{accidentals-0}).  The default font is
 too big for text, so we select a relative size of @code{-2}.
 
 @separate
@@ -1703,22 +2434,23 @@ too big for text, so we select a relative size of @code{-2}.
   <
     \global
 @end example
-Of course, all staffs are simultaneous and use the same global settings.
+Of course, all staves are simultaneous and use the same global settings.
 
 @separate
 @example
     \property Score.BarNumber \override #'padding = #3
 @end example
 LilyPond prints bar numbers at the start of each line, but
-unfortunately, they end up a bit too close to the staff in this example.
-A bar number internally is a Grob called @var{BarNumber}.  BarNumber
-Grobs can be manipulated through their @var{side-position-interface}.  One
-of the properties of a @var{side-position-interface} that can be tweaked
-is the @var{padding}: the amount of extra space that is put between this
-Grob and other Grobs.  We set the padding to three staff spaces.
-
-You can find all this kind of information in LilyPond's automatically
-generated documentation in
+unfortunately, they end up a bit too close to the staff in this
+example.  A bar number internally is a Grob called @var{BarNumber}.
+BarNumber Grobs can be manipulated through their
+@var{side-position-interface}.  One of the properties of a
+@var{side-position-interface} that can be tweaked is the
+@var{padding}: the amount of extra space that is put between this Grob
+and other Grobs.  We set the padding to three staff spaces.
+
+You can find information on all these kind of properties in LilyPond's
+automatically generated documentation in
 @ifnottex
 @ref{ (lilypond-internals)lilypond-internals, LilyPond Internals}.
 @end ifnottex
@@ -1731,11 +2463,11 @@ the online documentation.
     \context StaffGroup = woodwind <
       \context Staff = flauti <
 @end example
-A new notation context: the StaffGroup.  StaffGroup can hold one or more
-Staffs, and will print a big bracket at the left of the score.  Start a
-new staff group for the woodwind section (just the flutes in this case).
-Immediately after that, we start the staff for the two flutes, that also
-play simultaneously.
+A new notation context: the @code{StaffGroup}.  @code{StaffGroup} can
+hold one or more @code{Staff}'s, and will print a big bracket at the
+left of the score.  Start a new staff group for the woodwind section
+(just the flutes in this case).  Immediately after that, we start the
+staff for the two flutes, that also play simultaneously.
 
 @separate
 @example
@@ -1806,11 +2538,14 @@ when they're different.
 @separate
 @example
        \property Staff.instrument = #`(lines "Corno"
-          (rows "(E" ,text-flat ")"))
+          (columns "(E" ,text-flat ")"))
 @end example
 The french horn has the most complex scheme markup name, made up of two
-lines of text.  The second line has two elements (rows), the @code{E}
-and the flat sign @code{text-flat} that we defined before.
+lines of text.  The second line has three elements (columns), the @code{(E},
+the flat sign @code{text-flat} that we defined before and a final @code{")"}.
+Note that we use a backquote instead of an ordinary quote at the
+beginning of the Scheme expression to be able to access the
+@code{text-flat} identifier, `unquoting' it with a @code{,}.
 
 @separate
 @example
@@ -1820,7 +2555,7 @@ The french horn is to be tuned in E-flat, so we tell the MIDI backend to
 transpose this staff by three steps.
 
 Note how we can choose different tuning for entering, printing and
-playing, using @code{\transpose} and the MIDI Staff proprerty
+playing, using @code{\transpose} and the MIDI Staff property
 @var{transposing}.
 
 @separate
@@ -1838,27 +2573,21 @@ We specify a big indent for the first line and a small linewidth for this
 tutorial.
 
 @separate
+
+Usually, LilyPond's predefined setup of notation contexts (Thread,
+Voice, Staff, Staffgroup, Score) is just fine.  But in this case, we
+want a different type of Staff context.
+
 @example
-    \translator@{
-      \VoiceContext
-      \consists "Multi_measure_rest_engraver"
-    @}
     \translator@{
       \HaraKiriStaffContext
-      \remove "Multi_measure_rest_engraver"
     @}
 @end example
-[FIXME: ignoring mmrest moving for now, assuming we'll do that in
-engraver.ly]
-
-Usually, LilyPond's predefined setup of notation contexts (Thread,
-Voice, Staff, Staffgroup, Score) is just fine.  But in this case, we
-want a different type of Staff context.
 
 In orchestral scores, it often happens that one instrument has only
 rests during one line of the score.  The @code{HaraKiriStaffContext} can
 be used as a regular @code{StaffContext} drop-in and will take care of
-the automatic removing of empty staffs.
+the automatic removing of empty staves.
 
 @node Extracting an individual part
 @subsection Extracting an individual part
@@ -1906,7 +2635,7 @@ Opus 1.
 
 
 Because we separated the music definitions from the @code{\score}
-instantiations, we can easily define a second score from the music of
+instantiations, we can easily define a second score with the music of
 the second flute.  This then is the part for the second flute player.
 Of course, we make separate parts for all individual instruments.
 
@@ -1936,377 +2665,152 @@ 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
+@node Integrating text and music
+@section Integrating text and music
 
-[FIXME: describe all programs involved in one list.]
+Sometimes, you might want to use music examples in a text that you are
+writing. For example, if you are writing a musicological treatise, a
+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:
 
-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 in @ref{lilypond-book}.
-
-@c FIXME: ly2dvi option?
-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}.
+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.
 
-@c FIXME: ly2dvi option?
-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{}@footnote{@TeX{} is a text-typesetting system
-that is especially suited for typesetting mathematics.}  output.  Note
-that you must run @TeX{} on the resulting @file{test.tex}, ie, not
-LaTeX.
-@cindex @TeX{}
-
-
-
-
-
-@node Latex and texinfo integration
-@section Latex and texinfo integration
+\documentclass[a4paper]@{article@}
+\begin@{document@}
 
+In a lilypond-book document, you can freely mix music and text. For
+example:
+\begin@{lilypond@}
+  \score @{ \notes \relative c' @{
+     c2 g'2 \times 2/3 @{ f8 e d @} c'2 g4
+  @} @}
+\end@{lilypond@}
+Notice that the music line length matches the margin settings of the
+document.
 
-[TODO: rewrite completely.]
+If you have no \verb+\score+ block in the fragment,
+\texttt@{lilypond-book@} will supply one:
 
-@menu
-* Songs with additional verses::  
-@end menu
+\begin@{lilypond@}
+  c'4
+\end@{lilypond@}
 
+In the example you see here, a number of things happened: a
+\verb+\score+ block was added, and the line width was set to natural
+length. You can specify many more options using  \LaTeX style options
+in brackets:
 
-So what does this look like? Well, here is an example:
-@lilypond[veryverbatim, intertext="produces this music:"]
-\score{
-  \notes\relative c'{
-    \time 5/8
-    [e16( g b c a g][e a b d] | )e2 d,8 |
-    [e16( g b c a g][e a b d] | )b2 [a16( f] |
-    [e a b d] )e4 c8 | [es16( bes a as g es][d c b! )g] |
-    [f( a b d b a][f a b d] | )e2
-  }
-}
-@end lilypond
-If you are lucky, the above example show a nice feature of LilyPond
-and La@TeX{}. Since LilyPond can output the music as @TeX{} graphics,
-La@TeX{} can insert pagebreaks between the lines of music.
+\begin[verbatim,11pt,singleline,
+  fragment,relative,intertext="hi there!"]@{lilypond@}
+  c'4 f bes es
+\end@{lilypond@}
 
-Notice that there is no @code{\paper} statement in the example
-above. Lilypond-book will insert some code for you that defines the
-linewidth and the font to use. If you don't want to change the default, 
-there is no need to put an empty @code{\paper@{@}} inside the @code{\score}.
-In the example above, something like this might be inserted before your code:
-@example
-\include "paper16.ly"
-\paper@{ \paper_sixteen
-    linewidth = 390.\pt
-@}
-@end example
-The actual values for linewidth will differ depending on papersize and
-number of columns. Also, if you use a different fontsize for the
-music, another file than @code{paper16.ly} should be included.
-
-If you want to make the music not so wide, you can insert a
-@code{\paper} statement to set the linewidth:
-
-@lilypond[veryverbatim, intertext="produces this music:"]
-\score{
-  \notes\relative c'{
-    \time 5/8
-    [e16( g b c a g][e a b d] | )e2 d,8 |
-    [e16( g b c a g][e a b d] | )b2 [a16( f] |
-    [e a b d] )e4 c8 | [es16( bes a as g es][d c b! )g] |
-    [f( a b d b a][f a b d] | )e2
-  }
-  \paper{linewidth = 10.\cm }
-}
-@end lilypond
+\texttt@{verbatim@} also shows the LilyPond code, \texttt@{11pt@} selects
+the default music size, \texttt@{fragment@} adds a score block,
+\texttt@{relative@} uses relative mode for the fragment, and
+\texttt@{intertext@} specifies what to print between the
+\texttt@{verbatim@} code and the music.
 
-Very often, if you mix music and text, the music is often only a 
-few notes or at most a few bars. This music should be as short as
-possible and not stretched to be aligned to the right margin.
+If you include large examples into the text, it may be more convenient
+to put the example in a separate file:
 
-If you only write voice-contents in the lilypond block, @command{lilypond-book}
-will set the @code{linewidth} variable to -1, so Lilypond
-will make the music as short as possible but without breaking the
-line. Here is a well know harmonic progression:
-@lilypond[veryverbatim, intertext="produce a well known harmonic progression:"]
-  \context Voice { <c' e g> <b d g> <c2 e g> }
-@end lilypond
+\lilypondfile[printfilename]@{sammartini.ly@}
 
-If you want to place music examples in the text,
-@lilypond[eps]
-  \context Voice {  <c' e g> <b d g> <c2 e g> }
-@end lilypond
-, you can use the @code{eps} option. This will create the music as
-eps graphics and include it into the document with the 
-@code{\includegraphics} command.
+The \texttt@{printfilename@} option adds the file name to the output.
 
-The code used look like this:
-@example
-@@lilypond[eps]
- \context Voice @{ <c' e g> <b d g> <c2 e g> @}
-@@end lilypond
+\end@{document@}
 @end example
 
-You can also use the @code{eps} option if the block is a complete
-lilypond source. This 5 cm long empty line, 
-@lilypond[eps]
-\score{
-  \notes{s}
-  \paper{ linewidth = 5.\cm }
-}
-@end lilypond
-was created with this code:
+Under Unix, you can view the results as follows.
 @example
-@@lilypond[eps]
-\score@{
-  \notes@{s@}
-  \paper@{ linewidth = 5.\cm@}
-@}
-@@end lilypond
+$ cd input/tutorial
+$ lilypond-book --outdir=out/ lilbook.tex
+lilypond-book (GNU LilyPond) 1.3.146
+Reading `input/tutorial/lilbook.tex'
+Reading `input/tutorial/sammartini.ly'
+@var{lots of stuff deleted}
+Writing `out/lilbook.latex'
+$ cd out
+$ latex lilbook.latex
+@var{lots of stuff deleted}
+$ xdvi lilbook 
 @end example
 
-To avoid that La@TeX{} places the music on a line of its one, there should
-be no empty lines between the normal text and the lilypond
-environment. 
-
-You can also use @code{lilypondfile} (on a separate line, FIXME), to
-include another file.
-
-@subsection Fontsize options
+Notice the @code{outdir} option to lilypond-book. Running lilypond-book
+and running latex creates a lot of temporary files, and you wouldn't want
+those to clutter up your working directory. Hence, we have them created
+in a separate subdirectory.
 
-You can use all lilypond fontsizes in @command{lilypond-book}.  The
-default 16pt fontsize is probably to big to be included in the middle of
-the text, 11pt or 13pt is probably better.
+The result more or less looks like this: 
 
-The code can look like this:
-@example
-@@lilypond[13pt, eps]
-<c' e g>
-@@end lilypond
-@end example
+@separate
 
-The following options set the fontsize:
-@itemize
-@item @code{11pt}
-@lilypond[11pt, eps]
-  \relative c'{
-    r16 [c d e][f d e c] [g'8 c][b-\prall c] |
-    [d16 g, a b][c a b g][d'8 g f-\prall g]
-  }
-@end lilypond
-@item @code{13pt}
-@lilypond[13pt, eps]
-  \relative c'{
-    r16 [c d e][f d e c] [g'8 c][b-\prall c] |
-    [d16 g, a b][c a b g][d'8 g f-\prall g]
-  }
-@end lilypond
-@item @code{16pt}
-@lilypond[16pt, eps]
-  \relative c'{
-    r16 [c d e][f d e c] [g'8 c][b-\prall c] |
-    [d16 g, a b][c a b g][d'8 g f-\prall g]
-  }
-@end lilypond
-@item @code{20pt}
-@lilypond[20pt, eps]
-  \relative c'{
-    r16 [c d e][f d e c] [g'8 c][b-\prall c] |
-    [d16 g, a b][c a b g][d'8 g f-\prall g]
-  }
-@end lilypond
-@item @code{26pt}
-@lilypond[26pt, eps]
-  \relative c'{
-    r16 [c d e][f d e c] [g'8 c][b-\prall c] |
-  }
+In a lilypond-book document, you can freely mix music and text. For
+example:
+@lilypond
+  \score { \notes \relative c' {
+     c2 g'2 \times 2/3 { f8 e d } c'2 g4
+  } }
 @end lilypond
-@end itemize
-
-
-@subsection More options
-
-@itemize
-@item The @code{singleline} option sets @code{linewidth} to -1.0.
-@item The @code{multiline} option sets @code{linewidth} to a value letting
-the music be aligned to the right margin. The music can span several
-lines. 
-@end itemize
+Notice that the music line length matches the margin settings of the
+document.
 
-@subsection Just in case...
-The options @code{fragment} and @code{nofragment} will override
-@command{lilypond-book} when it scans the lilypond code to see if it is voice
-contents or complete code. This might be useful if @command{lilypond-book} choose
-wrong. 
-
-Since there is no finder's fee which doubles every year, there is no
-need to wait for the price money to grow. So send a bug report today
-if you need this one of these options.
-
-@subsection Examples
-
-This was all options to @code{\begin}. The rest of the lilypond
-document will show some ways you can use lilypond in
-La@TeX{} documents. It will also act as a simple test-suite for
-lilypond-book. You can place @code{eps} lilypond in and marginspars just
-as any other included eps graphics.
+If you have no @code{\score} block in the fragment,
+@code{lilypond-book} will supply one:
 
 @lilypond
-\score{
-  \notes\relative c'{ 
-        \time 12/8
-        r4-\fermata [b16-.( )b-.] [f'8-- dis16-.( )dis-. gis8--]
-        [f16-.( )f-. dis8-- gis16-.( )gis-.] cis4.-\fermata |
-        
-        r4.-\fermata [cis,16 cis g'8 f16 f b8][g16 g f8 b16 b] dis4.-\fermata
-  }
-  \paper{linewidth = 7.\cm}
-}
+  c'4
 @end lilypond
 
+In the example you see here, a number of things happened: a
+@code{\score} block was added, and the line width was set to natural
+length. You can specify many more options using  La@TeX{} style options
+in brackets:
 
-To the right you can see some bars from the trumpet fanfara from the
-beginning of the fantastic street opera ``Houdini the Great'', by the
-Danish composer Andy Pape. The music is put inside a
-@code{floatingfigure} environment, and the music will be aligned by
-the right margin if you set floatingfigure width and lilypond linewidth
-to the same value. The code looks like this:
-
-@lilypond[verbatim]
-\score{
-  \notes\relative c'{ 
-    \time 12/8
-    r4.-\fermata [b16-.( )b-.] [f'8-- dis16-.( )dis-. gis8--]
-    [f16-.( )f-. dis8-- gis16-.( )gis-.] cis8.-\fermata |
-        
-    r4.-\fermata [cis,16 cis g'8 f16 f b8]
-    [g16 g f8 b16 b] dis4.-\fermata
-  }
-  \paper{linewidth = 7.\cm }
-}
+@lilypond[verbatim,11pt,singleline,
+  fragment,relative,intertext="hi there!"]
+  c'4 f bes es
 @end lilypond
 
-If you have a lot of small music examples like this in the middle of
-your text, you might get a nicer look by using ``double'' line
-spacing. Put the @code{\linespread@{1.6@}} command into the preamble of
-your document. Then the line spacing will not be increased between the
-lines where you have music printed with the smallest font size.
-
-Lilypond-book does know about @code{\onecolumn} and @code{\twocolumn}. 
-So the music will be adjusted to the new linewidth:
-
-Verbatim environments will also ignore the page margins. That is
-a feature of La@TeX{}. (But you usually put things inside a verbatim
-environment when you don't want La@TeX{} to do any linebreaking)
-
-@node Songs with additional verses
-@subsection Songs with additional verses
-
-With lilypond-book, you can typeset songs with additional verses.  To
-make lilypond-book print titles like ly2dvi, add
-
-[TODO: merge with lilypond-book tutorial]
-
-
-
-
-@example
-\input titledefs.tex
-\def\preLilypondExample@{\def\mustmakelilypondtitle@{@}@}
-@end example
-
-just before the music fragment.
-
-@c urg: can't show, won't work for .texi docs
-
-@example
-% generate standard lilypond titles
-\input titledefs.tex
-\def\preLilypondExample@{\def\mustmakelilypondtitle@{@}@}
-
-\begin@{lilypond@}
-\header @{
-  title =      "Title"
-  subtitle =   "Subtitle"
-  subsubtitle =        "Subsubtitle"
-  opus =  "Opus 1"
-  piece = "Piece"
-  composer =    "Composer"
-  enteredby =   "JCN"
-  instrument = "instrument"
-@}
-\paper @{ linewidth = -1. @}
-\score @{
-  \notes \relative c'' @{ a b c d @}
-@}
-\end@{lilypond@}
-
-\begin@{enumerate@}
-\item Verse one.  aaa aaa aaa aaa aaa aaa aaa aaa aaa aaa 
-\item Verse two.  bbb bbb bbb bbb bbb bbb bbb bbb bbb bbb 
-\end@{enumerate@}
-@end example
+@code{verbatim} also shows the LilyPond code, @code{11pt} selects
+the default music size, @code{fragment} adds a score block,
+@code{relative} uses relative mode for the fragment, and
+@code{intertext} specifies what to print between the
+@code{verbatim} code and the music.
 
+If you include large examples into the text, it may be more convenient
+to put the example in a separate file:
 
+@lilypondfile[printfilename]{sammartini.ly}
 
-@node  end of tutorial
-@section The end        
+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 (TM), have a look at the @ref{Mutopia project}.
+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.
 
 
-
-@ignore
-
-[TODO
-
-this should be on mutopia website.
-
-]
-
-
-@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/menuet.ly .
-make menuet
-[..]
-Generated out/menuet.ps for target menuet.
-@end example
-
-Type @samp{make help} to see possible targets.
-
-[TODO]
-@file{/usr/share/lilypond/doc/lilypond/examples/input/mutopia-header.ly}
-
-@end ignore
-