]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/tutorial.itely
release: 1.5.29
[lilypond.git] / Documentation / user / tutorial.itely
index 9fc31ed86e2552294ece539627156a46519227c5..c4690beb7a505b604991c67785de5482aa60df6c 100644 (file)
 @c -*-texinfo-*-
 
-@c TODO: LilyPond Lilypond lilypond
-
+@c TODO: LilyPond LilyPond LilyPond
 
 @node Tutorial
 @chapter Tutorial
-  
+
+@html
+<!--- @@WEB-TITLE@@=Tutorial --->
+@end html
+
 @menu
-* Running LilyPond::            Getting started
-* First steps::                 
-* The first tune::              The first tune
+* First steps::                 Music language of LilyPond
+* Simple legend::               Small table of music language symbols
+* Running LilyPond::            Printing music
+* The first real tune::         The first real tune
 * Lyrics and chords::           Lyrics and chords
-* More movements ::             
+* More movements ::             Joining separate pieces of music
 * A piano excerpt::             Piano music
-* An orchestral score::         
-* Other ways to run LilyPond::  
-* Integrating text and music::  
-* end of tutorial::             The end
+* An orchestral score::         Conductor's score and individual parts
+* Other ways to run LilyPond::  Other ways to run LilyPond
+* Integrating text and music::  Integrating text and music
+* End of tutorial::             The end
 @end menu
 
 
-@node Running LilyPond
-@section Running LilyPond
+The music is described in a text file, using a simple music language.
+LilyPond reads that text file and generates music that you can print or
+view.
 
-You make music notation with LilyPond as follows: first you edit a text
-file containing a description of the notes. Then you run LilyPond on the
-file. This leaves you with an output file, which you can view or print.
+Therefore, creating music notation with LilyPond is done in two steps.
+Using a text editor, you write down the notes to print.  Then, you run
+LilyPond to get your printed output.
 
-In this section we explain how to run LilyPond, and view or print the
-output.  If you want to test your setup of LilyPond, or try to run an
-example file yourself, then read this section. Otherwise, you can skip
-to the next section, which explains how to
-write LilyPond input.
+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 instructions that follow are for Unix. Windows instructions are
-given at the end of this section. Start with opening a terminal window,
-and start up a text editor.  For example, start an xterm and execute
-@code{joe}.   Enter the following
-input, and save the file as @file{test.ly}.
-@example
-\score @{
-  \notes @{ c'4 e' g' @}
-@} 
-@end example
-If this code looks intimidating you, then don't worry, we explain all
-about it in the next section.
+The tutorial continues with a slightly more elaborate example of real music.
+This piece introduces and explains some finer details of LilyPond.
+Then, a number of more complex examples follow, that will help you to
+produce most complex music with LilyPond.
 
-@cindex ly2dvi
 
-@c dit is dus raar, dat je ly2dvi draait om lelie te draaien
-@c (therefore name change proposal) 
+@c title?
 
-Invoke the program  @code{ly2dvi} to run lilypond on your source file:
-@example
-ly2dvi -P test
-@end example
+@node First steps
+@section First steps
 
-You will see the following on your screen:
-@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
+@c @node Music language of LilyPond
+@c @section Music language of LilyPond
 
-@cindex DVI file
-@cindex Viewing music
-@cindex xdvi
+This section shows how easy writing music with LilyPond actually is.  If
+you have not seen LilyPond input source before, this section is for you.
 
-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.
+The next section has a table (see @ref{Simple legend}) of all symbols
+that are introduced here, you may want to keep an eye on that.
+
+Writing music with LilyPond is explained below by a number of small
+examples.  Each example has a small piece of text; the LilyPond input
+that you should type, with the resulting music printed below it.
+
+You get a simple note by typing its note name, from @code{a} through
+@code{g}:
+
+@quotation
 @example
-kghostview test.ps
-ggv test.ps
-ghostview test.ps
-gv test.ps
+c d e f g a b
 @end example
-When you're satisfied with the result, 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}
-to view the DVI file.
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\transpose c'' { c d e f g a b }
+@end lilypond
+@end quotation
+@separate
 
-If your DVI viewer does not have a "Print" button, you can print the
-file by executing @code{lpr test.ps}.
+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:
 
-@c volgende alinea schrappen?  
+@quotation
+@example
+a1 a2 a4 a16 a32
+@end example
 
-If you can't get the examples to print, then you should look into
-installing and configuring ghostscript.  Refer to GhostScript's website
-at @uref{http://www.ghostscript.com}.
+@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.noAutoBeaming = ##t
+%\property Staff.Clef = \turnOff
+\transpose c'' { a1 a2 a4 a16 a32 }
+s16_" "
+@end lilypond
+@end quotation
+@separate
 
-@cindex GhostScript
-@cindex @code{lpr}
-@cindex Printing output
-@cindex PostScript
+If you don't specify a duration, the previous duration is used: 
 
+@quotation
+@example
+a a a2 a
+@end example
 
-Windows users start the terminal by clicking on the lilypond icon.
-Notepad is sufficient for editing the lilypond file. Viewing the PS file
-can be done with @code{gsview32 test.ps}. Viewing DVI files can be done
-with @code{yap test}. The "print" button in Yap will print files.  You
-can also print from the command line by executing @code{gsview32 /s
-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 = \turnOff
+%\property Staff.Clef = \turnOff
+\transpose c'' { a a a2 a }
+s16_" "
+@end lilypond
+@end quotation
+@separate
 
+A sharp (@texisharp{}) is made by adding ``@code{is}'', a flat
+(@texiflat{}) by adding ``@code{es}'':
 
-@c titel?
+@quotation
+@example
+cis1 ees fisis aeses
+@end example
 
-@node First steps
-@section First steps
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\transpose c'' { cis1 ees fisis aeses }
+s16_" "
+@end lilypond
+@end quotation
+@separate
 
-The basics of any piece of music are notes.  Notes are entered 
-with letters @code{a} to @code{g}, followed by a
-number that represents the duration: a @code{2} is a half note, a
-@code{4} is a quarter note. A period adds a dot to the note, so
-entering @code{2.} gives a dotted half note. 
+Add a dot ``@code{.}'' after the duration to get a dotted note:
+@quotation
 @example
-     c2 e4 g2.
+a2. a4 a8. a16
 @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.Clef  = \turnOff
-\clef bass c2 e4 g2.
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+%\property Staff.Clef = \turnOff
+\transpose c'' { a2. a4 a8. a16 }
+s16_" "
 @end lilypond
-If you don't specify a duration, then the duration last entered is used:
-@c
+@end quotation
+@separate
+
+The meter (or time signature) can be set with the ``@code{\time}'' command:
+
+@quotation
 @example
-  f4 e d c2.
+\time 3/4
+\time 6/8
+\time 4/4
 @end example
+
+@c a clef here may lead to confusion
 @lilypond[fragment]
-\property Score.timing  = ##f
-\property Staff.TimeSignature  = \turnOff
-\property Staff.Clef  = \turnOff
-\clef bass  f4 e d c2.
+\property Staff.Clef = \turnOff
+\time 3/4
+s4_" "
+\time 6/8
+s4_" "
+\time 4/4
+s16_" "
 @end lilypond
-The time signature can be set with a command of the form @code{\time},
-and the clef with @code{\clef} as follows:
+@end quotation
+@separate
+
+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
-     \time 3/4
-     \clef bass
+\clef violin
+\clef bass
+\clef alto
+\clef tenor
 @end example
+
 @lilypond[fragment]
-        \time 3/4
-        \clef bass
-        s2_" "
+\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
+
+At this point, the piece of music is ready to be printed.  This is done
+by combining the music with a printing command.
 
-The commands together with the notes are combined to form a snippet of
-music. They are combined by enclosing them with @code{\notes @{ @}}.
+The printing command is the so-called ``@code{\paper}'' block.  You will
+see later that the \paper block is necessary to customize all kinds of
+printing specifics.  The music and the \paper block are combined by
+enclosing them in ``@code{\score @{ ... @}}''.  This is what a full
+LilyPond source file looks like:
+
+@quotation
 @example
+\score @{
   \notes @{
      \time 3/4
      \clef bass
      c2 e4 g2.
      f4 e d c2.
   @}
+  \paper @{ @}
+@}
 @end example
 
-This snippet 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 \paper block is
-necessary to customize all kinds of printing specifics.  The music and
-paper block are combined by enclosing them in @code{\score}.
-
-@lilypond[verbatim]
+@lilypond
 \score {
   \notes {
      \time 3/4
      \clef bass
-     c2 e4  g2.
+     c2 e4 g2.
      f4 e d c2.
   }
-  \paper { }
+  \paper { linewidth = 60 * \staffspace }
 }
 @end lilypond
+@end quotation
+@separate
 
-@ignore
-The @code{\paper} block looks empty, which means that we get default. That is because we did not contains page layout settings, such as the linewidth and
-the staff size. For now, we'll use standard settings, hence the paper
-block is empty (its braces enclose a blank space).
-@end ignore
 
-Rests are entered just like notes with the name @code{r}
-@lilypond[fragment,verbatim]
-r4 r8 r16
-@end lilypond
+We continue with the introduction of the remaining musical constructs.
 
-Octaves are entered by adding apostrophes or commas to note names. For
-example, the central C is entered as @code{c'}.
+@c maybe legend here?
 
-Pitches can be octaviated by adding  apostrophes or commas. The central C is
-@code{c'}. Going up octave by octave we get @code{c''},
-@code{c'''}. Going down from central C, we get @code{c} @code{c,}
-@code{c,,} etc.
+Rests are entered just like notes with the name ``@code{r}'':
 
-@lilypond[verbatim,fragment]
-c'4 c'' c''' c c,
+@quotation
+@example
+r2 r4 r8 r16
+@end example
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.Clef = \turnOff
+\property Staff.TimeSignature = \turnOff
+r2 r4 r8 r16
+s16_" "
 @end lilypond
+@end quotation
+@separate
+
+@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...
 
-LilyPond uses Dutch note names: you can make a note sharp by appending
-@code{is} to the name, and flat by appending @code{es} to the name.
-@lilypond[verbatim,fragment]
-fis'4 bes'4 aeses'4
+@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
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+c'4 c'' c''' \clef bass c c,
 @end lilypond
+@end quotation
+@separate
+
+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:
 
-Ties are created by entering a tilde (@code{~}) between the notes to be
-tied:
+@quotation
 @lilypond[fragment,verbatim]
-  g'4 ~ g' a'2 ~ a'4
+g'4 ~ g' a'2 ~ a'4
 @end lilypond
-Ties look almost the same as slurs, but they are different. Ties can
-only indicate the extension of a note. Ties connect two note heads with
-the same pitch.  Slurs on the other hand, can be drawn across many
-notes, and indicate bound articulation.
-The key signature is set with the command @code{\key}:
-@lilypond[fragment,verbatim]
-  \key d \major
-  g'1
-  \key c \minor
-  g'
+@end quotation
+@separate
+
+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
 
-The next example shows octave marks, ties, and rests in action. 
-@lilypond[verbatim]
+
+@c bit on the long/complex/scary taste
+@c cheating a bit: two lines makes for a friendlier look
+This example shows notes, ties, octave marks, and rests in action.
+Don't worry about all the quotes.
+
+@quotation
+@example
+\score @{
+  \notes @{
+    \time 4/4
+    \clef violin
+    \key d \minor
+    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
+
+@lilypond
 \score {
   \notes {
     \time 4/4
-    \clef treble
+    \clef violin
     \key d \minor
     r4 r8 d''8 cis''4 e''
-    d''8 a'4. ~ a'  b'8
+    d''8 a'4. ~ a' b'8
     cis''4 cis''8 cis'' bis'4 d''8 cis'' ~
     cis''2 r2
   }
-  \paper { }
+  \paper { linewidth = 50*\staffspace }
 }
 @end lilypond
-There is one interesting point to note in this example: accidentals
-don't have to be marked explicitly. You just enter the pitch, and
-LilyPond determines wether or not to print an accidental.
-
-If you look at the last piece, it is already apparent that entering
-octaves using quotes is not very convenient. A score written in high
-register will be encoded using lots quotes. This makes the input file
-unreadable, and it also is a source of many errors.
-
-This problem is solved by relative octave mode. In this mode, the quotes
-are used to mark large jumps in the melody. Without any quotes or
-commas, the interval between a note and its predecessor is assumed to be
-a fourth or less. Quotes and commas add octaves in up and down
-direction.
-@lilypond[fragment,verbatim]
-\relative c'' { c4 d4 b4 e4 a,4 f'4 g,4 a'4 }
+@end quotation
+
+@c accidentals...
+There are some interesting points to note in this example.  Firstly,
+accidentals (sharps and flats) don't have to be marked explicitly: you
+just enter the note name, and LilyPond determines whether or not to
+print an accidental.  Secondly, bar lines and beams are drawn
+automatically.  Thirdly, LilyPond calculates line breaks for you; it
+doesn't matter where you make new lines in the source file.
+
+The example also indicates that a piece of music written in a high
+register needs lots of quotes.  This makes the input a bit unreadable,
+and is therefore also a potential source of errors.
+
+@separate
+
+The solution is to use ``relative octave'' mode.  In practice, most
+music is entered using this mode.
+
+To use relative mode, add @code{\relative} before the piece of music.
+You must also give a note from which relative starts, in this case
+@code{c''}.
+
+@c In relative octave mode, quotes are used to mark large jumps in the
+@c melody.  Without any quotes or commas, the interval between a note and
+@c its predecessor is assumed to be a fourth or less.  Quotes and commas
+@c add octaves in up and down direction.
+
+If you type no octaviation quotes, relative mode chooses the note that
+is closest to the previous one, which is often just the one you need.
+@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
+
+@lilypond[fragment]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\relative c'' {
+  c f c g c
+}
 @end lilypond
-You can enter a piece in relative mode, by putting @code{\relative} in
-front. You also have to enter a starting pitch, in this case @code{c''}.
+@end quotation
+@separate
 
+@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 octaviation 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
 
-Slurs (not to be confused with ties) are entered with parentheses. You
-mark the starting note and ending note with a @code{(} and a
-@code{)} respectively.
+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]
-c8( cis d ) e 
+d4( )c16( cis d e c cis d )e( )d4
 @end lilypond
+@end quotation
+@separate
 
 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{\)}.
 
 @c lousy example
+@quotation
 @lilypond[fragment,relative 1, verbatim]
 a8(\( ais b ) c cis2 b'2 a4 cis, \) c
 @end lilypond
+@end quotation
+@separate
 
 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
 
-You can make more than one staff, by specifying @code{\context Staff} before 
-snippets of music, and combining those snippets in @code{<} and
-@code{>}, as is demonstrated here:
+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:
 
+@quotation
 @lilypond[fragment,verbatim]
-< \context Staff = staffA { \clef treble c'' }
+<
+  \context Staff = staffA { \clef violin c'' }
   \context Staff = staffB { \clef bass c }
 >
 @end lilypond
-Here, @code{staffA} and @code{staffB} are names that you give them to
-the staff. For now, it doesn't matter what names you give them, as long
-as they are different.
+@end quotation
+
+In this example, @code{staffA} and @code{staffB} are names that are
+given to the staves.  For now, it doesn't matter what names you give, as
+long as each staff has a unique name.
+
+@separate
 
-We can typeset a melody with two staffs now:
+We can typeset a melody with two staves now:
 
+@quotation
 @lilypond[verbatim]
 \score {
   \notes 
   < \context Staff = staffA {
       \time 3/4
-      \clef treble
+      \clef violin
       \relative c'' { e2 ( d4 c2 b4 [a8 a] [b b] [g g] )a2. }  
     }
     \context Staff = staffB {
@@ -323,56 +513,93 @@ We can typeset a melody with two staffs now:
   \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 staffs.
+(the top staff), but is printed on both.  LilyPond knows that the time
+signature should be the same for all staves.
 
-Dynamic signs are made by adding the markings after the note
+@separate
+
+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
+
+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
 
 Crescendi are started with the commands @code{\<}  and @code{\>}. The
-command @code{\!} finishes a crescendo on the following.
+command @code{\!} finishes a crescendo on the following note.
+@quotation
 @lilypond[verbatim,relative 1]
-c2  \< \! c2-\ff \> c2  \! c2
+c2\<  \!c2-\ff  \>c2  \!c2
 @end lilypond
+@end quotation
+@separate
 
 Chords can be made by surrounding notes with @code{<} and @code{>}:
+@quotation
 @lilypond[relative 0, fragment,verbatim]
-  r4  <c e g> <c f a> 
+r4 <c e g> <c f a> 
 @end lilypond
+@end quotation
+@separate
 
+@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 staffs.
+example above) in a bunch of stacked staves.
+@end ignore
 
-Of course, you can combine beams and ties with chords:
+Of course, you can combine beams and ties with chords.  Notice that
+beam and tie markings are placed outside the chord markers:
+@quotation
 @lilypond[relative 0, fragment,verbatim]
- r4  [<c8 e g>   <c8 f a>] ~ <c8 f a>
+r4 [<c8 e g> <c8 f a>] ~ <c8 f a>
 @end lilypond
+@end quotation
 
 When you want to combine chords with slurs and dynamics, an annoying
 technical detail crops up: you have type these commands next to the
 notes, which means that they have to be inside the @code{< >}:
 
+@quotation
 @lilypond[relative 0, fragment,verbatim]
- r4     <c8 e g \> ( > <c e g> <c e g>  < ) \! c8 f a>
+r4 <c8 e g \> ( > <c e g> <c e g>  < ) \! c8 f a>
 @end lilypond
+@end quotation
+@separate
 
 A nasty technical detail also crops up when you start a score with a
 chord:
+
+@quotation
 @lilypond[verbatim,singleline]
 \score { \notes <c'1 e'1> }
 @end lilypond
+@end quotation
+@separate
+
 The program can not guess that you want the notes on only one staff. To
 force the chord on a staff, add @code{\context Staff} like this:
+
+@quotation
 @lilypond[verbatim,singleline]
 \score { \notes \context Staff <c'1 e'1> }
 @end lilypond
+@end quotation
+@separate
 
 
 
@@ -398,19 +625,234 @@ When you're comfortable with the basics, then you might want to read the
 rest of this chapter. It also a manual in tutorial-style, but it is much
 more in-depth. It will also be very intimidating if you're not familiar
 with the basics.  It deals with some of the more advanced features of
-lilypond. Topics include lyrics, chords, orchestral scores and parts,
+LilyPond. Topics include lyrics, chords, orchestral scores and parts,
 fine tuning output, polyphonic music, and integrating text and music.
 
 
+@c refer to this section
+@node Simple legend
+@section Simple legend
+
+
+@c need texinfo-4.0a or later for this
+
+
+@c both Tim and my father came independently with a request for a
+@c `legend' like this.
+
+@c what should be in it?
+
+
+
+@quotation
+@multitable @columnfractions .10 .20 .40
+
+@item @code{[ ]}
+@tab beam
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.noAutoBeaming = ##t
+\property Staff.Clef = \turnOff
+[a8 b]
+@end lilypond
+
+@item @code{~}
+@tab tie
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.noAutoBeaming = ##t
+\property Staff.Clef = \turnOff
+d ~ d
+@end lilypond
+
+@item @code{( )}
+@tab slur
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.noAutoBeaming = ##t
+\property Staff.Clef = \turnOff
+c( d )e
+@end lilypond
+@item @code{'}
+@tab raise octave
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.noAutoBeaming = ##t
+\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.noAutoBeaming = ##t
+\property Staff.Clef = \turnOff
+c c,
+@end lilypond
+
+@item @code{< >}
+@tab chord
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.noAutoBeaming = ##t
+\property Staff.Clef = \turnOff
+\context Voice { <a c> }
+@end lilypond
+
+@item @code{\< \!}
+@tab crescendo
+@tab
+@lilypond[fragment, relative 1]
+\property Score.timing = ##f
+\property Staff.TimeSignature = \turnOff
+\property Staff.noAutoBeaming = ##t
+\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.noAutoBeaming = ##t
+\property Staff.Clef = \turnOff
+a\> a \!a
+@end lilypond
+
+@end multitable
+@end quotation
+
+
+
+@node Running LilyPond
+@section Running LilyPond
+
+You write music with LilyPond as follows: first you edit a text file
+containing a description of the notes.  Then you run LilyPond on the
+file. This leaves you with an output file, which you can view or print.
+
+In this section we explain how to run LilyPond, and view or print the
+output.  If you have not used LilyPond before, want to test your setup
+of LilyPond, or try to run an example file yourself, then read this
+section.
+
+The instructions that follow are for running LilyPond on Unix-like
+systems.  Some additional instructions for running LilyPond on Windows
+are given at the end of this section.
+
+You begin with opening a terminal window, and start up a text editor.
+For example, open an xterm and execute @code{joe}.  In your text editor,
+enter the following input, and save the file as @file{test.ly}:
+
+@quotation
+@example
+\score @{
+  \notes @{ c'4 e' g' @}
+@} 
+@end example
+@end quotation
+
+@cindex ly2dvi
+
+@c now this is weird, running ly2dvi to run LilyPond
+@c (therefore name change proposal) 
+
+To run LilyPond, you invoke ly2dvi to compile your LilyPond source file:
+
+@quotation
+@example
+ly2dvi -P test.ly
+@end example
+@end quotation
+
+You will see the following on your screen:
+
+@quotation
+@example
+GNU LilyPond 1.4.0
+Now processing: `/home/fred/ly/test.ly'
+Parsing...
+Interpreting music...[1]
+ @emph{ ... more interesting stuff ... }
+PS output to `test.ps'...
+DVI output to `test.dvi'...
+@end example
+@end quotation
+@cindex DVI file
+@cindex Viewing music
+@cindex xdvi
+
+The results of the ly2dvi run are two files, @file{test.dvi} and
+@file{test.ps}.  The PS file (@file{test.ps}) is the one you can print.
+You can view the PS file using the program ghostview.  If a version of
+ghostview is installed on your system, one of these commands will
+produce a window with some music notation on your screen:
+@c eeek
+@quotation
+@example
+  gv test.ps
+  ghostview test.ps
+  ggv test.ps
+  kghostview test.ps
+@end example
+@end quotation
+If you are satisfied with the looks of the music displayed on your
+screen, you can print the PS file by clicking File/Print inside
+ghostview.
+
+The DVI file (@file{test.dvi}) contains the same sheet music in a
+different format. DVI files are more easily processed by the computer,
+so viewing them usually is quicker.  Execute @code{xdvi test.dvi}
+to view the DVI file.
+
+If your DVI viewer does not have a "Print" button, you can print the
+file by executing @code{lpr test.ps}.
+
+@c volgende alinea schrappen?  
+
+If you can't get the examples to print, then you should look into
+installing and configuring ghostscript.  Refer to GhostScript's website
+at @uref{http://www.ghostscript.com}.
 
-@node The first tune
-@section The first tune
+@cindex GhostScript
+@cindex @code{lpr}
+@cindex Printing output
+@cindex PostScript
+
+@unnumberedsubsec Windows users
+Windows users start the terminal by clicking on the LilyPond icon.
+Notepad is sufficient for editing the LilyPond file. Viewing the PS file
+can be done with @code{gsview32 test.ps}.@footnote{ You can also view
+DVI files with @code{yap test.dvi}, but unfortunately the postscript
+interaction seems broken, meaning that you will not see slurs or beams
+in the Yap window.}  You can also print from the command line by
+executing @code{gsview32 /s test.ps}
 
 
-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.
+
+@node The first real tune
+@section The first real tune
+
+
+The rest of this tutorial will demonstrate how to use Lilypond by
+presenting examples of input along with resulting output.  We will use
+English terms for notation.  In case you are not familiar with those,
+you may consult the glossary that is distributed with LilyPond.
 
 The examples discussed are included in the distribution, in the
 subdirectory @file{input/tutorial/}@footnote{When we refer to filenames,
@@ -424,7 +866,7 @@ is included in the distribution as  @file{minuet.ly}.
 
 @lilypond[verbatim]
 % all text after a percent sign is a comment
-% and is ignored by Lilypond
+% and is ignored by LilyPond
 \include "paper16.ly"
 \score {
     \notes                        
@@ -449,8 +891,9 @@ is included in the distribution as  @file{minuet.ly}.
         \bar "|."
     }
     \paper {
-       % standard settings are too wide for a book
-       linewidth = 14.0 \cm
+       % standard settings are too big and wide for a book
+       indent = 1.0 \cm
+       linewidth = 15.0 \cm
    }
 }
 @end lilypond
@@ -459,7 +902,7 @@ We will analyse the input, line by line.
 @separate
 @example
         % all text after a percent sign is a comment
-        % and is ignored by Lilypond
+        % and is ignored by LilyPond
 @end example 
 Percent signs introduce comments: everything after a percent sign is
 ignored. You can use this to write down mental notes to yourself.  You
@@ -505,12 +948,15 @@ Prepare LilyPond for accepting notes.
  
 @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.
+@c removed duplicate introduction to octave marks /MB
+@c Shorten even more?
+
+@c As we will see, each note is described by its note name, duration,
+@c octave and possibly a chromatic alteration.  In this setup, the octave
+@c is indicated by using high quotes (@code{'}) and ``lowered quotes''
+@c (commas: @code{,}).  The central C is denoted by @code{c'}.  The C one
+@c octave higher is @code{c''}.  One and two octaves below the central C is
+@c denoted by @code{c} and @code{c,} respectively.
 
 Even though a piece of music often spans a range of several octaves, it
 mostly moves in small intervals.  LilyPond has a special entry mode to
@@ -596,7 +1042,7 @@ note have real pitch @code{g'}.  The @code{8} represents an eight note.
 @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}
+duration, but you may enter it anyway, i.e., @code{a8 b8}
 @separate
 @example 
 
@@ -619,7 +1065,7 @@ help you track down typing errors.
 
 @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
+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
@@ -691,7 +1137,7 @@ staccato as shown above.
  
 @end example 
  
-Rests are denoted by the special notename @code{r}.  
+Rests are denoted by the special note name @code{r}.  
 @separate
 @example 
 
@@ -710,14 +1156,16 @@ identifier.
         \bar "|."
         @}
 @end example 
-Here the music ends.  LilyPond does not automatically typeset and end
-bar, we must explicitely request one, using @code{"|."}.
+Here the music ends.  LilyPond does not automatically typeset an end
+bar, we must explicitly request one, using @code{"|."}.
 
 @separate
 @example 
 
         \paper @{
-                linewidth = 14.0\cm
+                % standard settings are too big and wide for a book
+                indent = 1.0\cm
+                linewidth = 15.0\cm
         @}
  
 @end example 
@@ -860,7 +1308,7 @@ information to print titles above the music.
 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
+they contain spaces. The variable names could also be put within quotes
 but it is not necessary. 
 @separate
 @example 
@@ -986,7 +1434,7 @@ separated by dots.
  
 @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 
@@ -1073,12 +1521,12 @@ silly.
  
 @end example
 
-The second argument of @code{\addlyrics} is the melody.  We instantiate
+The first 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.
+the melody and accompaniment staves different names.
 @separate
 @example 
 
@@ -1089,9 +1537,10 @@ the melody and accompaniment staffs different names.
 @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.
+its behavior.  One of the variables is @code{noAutoBeaming}.  Setting
+this @code{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
@@ -1152,7 +1601,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.
@@ -1186,10 +1635,10 @@ 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.
 
-For example,  the following file (@file{miniatures.ly}) 
+For example, consider the following file (@file{miniatures.ly}) 
 
 @example
-\version "1.3.124"
+\version "1.4.0"
 \header @{
   title = "Two miniatures"
   tagline = "small is beautiful"
@@ -1214,7 +1663,7 @@ For example,  the following file (@file{miniatures.ly})
 @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:
+exactly show what it would look like, but the result should resemble this:
 
 @center @strong{Two miniatures}
 @flushright
@@ -1253,7 +1702,7 @@ Next, now we'll look at the example line by line to explain new things.
 
 @separate
 @example 
-\version "1.3.124"
+\version "1.4.0"
 @end example 
 Lilypond and its language are still under development, and occasionally,
 details of the syntax are changed. This fragment indicates for which
@@ -1262,7 +1711,7 @@ 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
+@ref{convert-ly}), which is used to update the file to the latest lily
 version.
 
 @separate
@@ -1304,7 +1753,7 @@ note was entered.  For more information, see @ref{Point and click}.
 
 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
+paper block at top level, i.e. not in a @code{\score} block sets the
 default page layout.
 
 @separate
@@ -1327,7 +1776,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
@@ -1337,7 +1786,7 @@ 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 directly, either by
-hand (i.e. composing) or by computer, absolute octaves are easier to use.
+hand (i.e. composing) or by computer, absolute octaves may be easier to use.
 
 
 @separate
@@ -1393,8 +1842,10 @@ oboes = \notes \relative c'' \context Voice = oboe {
         \context Voice = oboeTwo {
             \stemDown
             \grace {
-                \property Grace.Stem \override #'direction = #-1
-                [f,16 g] }
+                \property Voice.Stem \override #'direction = #-1
+                [f,16 g] 
+                \property Voice.Stem \revert #'direction
+           }
             f8 e e2
         }
     >
@@ -1453,7 +1904,7 @@ file @file{scm/grob-description.scm}.
   stemDown = \property Voice.Stem \override #'direction = #-1
 @end example
 
-Set a proprerty for all Stem grobs in the current Voice:
+Set a property 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.
 
@@ -1463,7 +1914,7 @@ remains in effect until it is reverted.
 @end example
 
 Revert the to the previous setting.  The effect of precisely one
-@code{\stemDown} or @code{\stemUp} is neutralised.
+@code{\stemDown} or @code{\stemUp} is neutralized.
 
 
 LilyPond includes the identifiers @code{\stemUp}, @code{\stemDown} along
@@ -1478,9 +1929,9 @@ 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
@@ -1549,7 +2000,6 @@ defined above.
 @cindex @code{\grace}
 @cindex ornaments
 @cindex grace notes
-
 @code{\grace} introduces grace notes.  It takes one argument, in this
 case a chord.
 
@@ -1608,7 +2058,7 @@ We can't share stems with the other voice, so we have to create a new
 it from the other context.  Stems go down in this voice.
 @separate
 @example 
-\grace @{  
+\grace
 @end example
 @cindex Grace context
 When a grace section is processed, a @code{Grace} context is
@@ -1619,12 +2069,13 @@ etc. Here we fiddle with a property and make a beam.  The argument of
 
 @separate
 @example 
-\property Grace.Stem \override #'direction = #-1
-[f,16 g] @}
+                \property Voice.Stem \override #'direction = #-1
+                [f,16 g] 
+                \property Voice.Stem \revert #'direction
 @end example 
 
 Normally, grace notes are always stem up, but in this case, the upper
-voice interferes. We set the stems down here.
+voice interferes, so we set the stems down here.
 
 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
@@ -1648,7 +2099,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
@@ -1663,8 +2114,8 @@ 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.
 
@@ -1682,10 +2133,10 @@ c4 g8. b,16
 @cindex cross staff voice, automatic
 @cindex @code{\autochange}
 
-Voices can switch between staffs. The easiest way to get this, is to use
+Voices can switch between staves. 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"}.
+staves must be called @code{"up"} and @code{"down"}.
 @separate
 @example
         \translator Staff = down
@@ -1759,7 +2210,7 @@ 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.
 
-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
@@ -1821,7 +2272,7 @@ 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
@@ -1892,13 +2343,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 @{
@@ -1944,7 +2390,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
@@ -1952,7 +2398,7 @@ 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
@@ -1966,8 +2412,8 @@ 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
+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
@@ -1980,11 +2426,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
@@ -2058,8 +2504,11 @@ when they're different.
           (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 (columns), 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
@@ -2069,7 +2518,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
@@ -2092,10 +2541,16 @@ 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@{
+      \HaraKiriStaffContext
+    @}
+@end example
+
 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
@@ -2143,7 +2598,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.
 
@@ -2179,8 +2634,8 @@ true.
 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}.
+Texinfo or \LaTeX input. For example, this manual was written using
+@code{lilypond-book}. It is discussed below and in @ref{lilypond-book}.
 
 
 Secondly, you can generate PostScript directly. This is useful if you
@@ -2190,13 +2645,14 @@ PostScript output, invoke LilyPond as follows:
 @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}.
+You have to set some environment variables to view or print this output. 
+More information can be found in @ref{Invoking LilyPond}. Since the
+direct Postscript generation has some problems, it is recommended
+to use @file{ly2dvi}.
 
 
 Thirdly, if you want to do special things with your output, you can run
-invoke lilypond directly:
+invoke LilyPond directly:
 @example
 lilypond test.ly
 @end example
@@ -2218,9 +2674,9 @@ songbook, or (like us) the LilyPond manual.  You can make such texts by
 hand, simply by importing a PostScript figure into your wordprocessor.
 However, there is a also an automated procedure:
 
-If you use La@TeX{} or texinfo, you can mix text and lilypond code. A
+If you use La@TeX{} or texinfo, you can mix text and LilyPond code. A
 script called @code{lilypond-book} will extract the music fragments, run
-lilypond on them, and put back the resulting notation.  lilypond-book is
+LilyPond on them, and put back the resulting notation.  lilypond-book is
 described fully in @ref{lilypond-book}, but here we show a small
 example. Since the example also contains explanatory text, we won't
 comment on the contents.
@@ -2256,7 +2712,7 @@ in brackets:
   c'4 f bes es
 \end@{lilypond@}
 
-\texttt@{verbatim@} also shows the lilypond code, \texttt@{11pt@} selects
+\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
@@ -2289,7 +2745,7 @@ $ xdvi lilbook
 @end example
 
 Notice the @code{outdir} option to lilypond-book. Running lilypond-book
-and running latex creates a lot of temporary files, and you wouldn't
+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.
 
@@ -2324,7 +2780,7 @@ in brackets:
   c'4 f bes es
 @end lilypond
 
-@code{verbatim} also shows the lilypond code, @code{11pt} selects
+@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
@@ -2336,8 +2792,8 @@ to put the example in a separate file:
 @lilypondfile[printfilename]{sammartini.ly}
 
 The @code{printfilename} option adds the file name to the output.
-@node  end of tutorial
-@section The end        
+@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