lilypond-cvs@gnu.org
[Top] [All Lists]

CVSROOT: /cvsroot/lilypond

Subject: CVSROOT: /cvsroot/lilypond
From: Han-Wen Nienhuys
Date: Mon, 08 Nov 2004 15:04:09 -0500
Module name:    lilypond
Branch:         lilypond_2_4
Changes by:     Han-Wen Nienhuys <hanwen@xxxxxxxxx>     04/11/08 19:57:56

CVSROOT:        /cvsroot/lilypond
Module name:    lilypond
Branch:         lilypond_2_4
Changes by:     Han-Wen Nienhuys <hanwen@xxxxxxxxx>     04/11/08 19:57:56

Modified files:
        .              : ChangeLog GNUmakefile.in THANKS 
        Documentation  : index.html.in 
        Documentation/user: changing-defaults.itely cheatsheet.itely 
                            converters.itely examples.itely 
                            introduction.itely lilypond-book.itely 
                            lilypond.tely macros.itexi 
                            music-glossary.tely notation.itely 
                            point-and-click.itely 
                            programming-interface.itely 
                            scheme-tutorial.itely tutorial.itely 
        elisp          : lilypond-indent.el 
        lily           : lexer.ll quote-iterator.cc 
                         recording-group-engraver.cc 
        mf             : GNUmakefile 
        po             : lilypond.pot 
        python         : GNUmakefile 
        scm            : framework-tex.scm lily.scm output-gnome.scm 
                         paper.scm 
        tex            : lilyponddefs.tex 
Added files:
        scm            : lily-library.scm 
Removed files:
        lily/include   : translation-property.hh 

Log message:
        

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?only_with_tag=lilypond_2_4&tr1=1.2780.2.3&tr2=1.2780.2.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/GNUmakefile.in.diff?only_with_tag=lilypond_2_4&tr1=1.126.2.1&tr2=1.126.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/THANKS.diff?only_with_tag=lilypond_2_4&tr1=1.68.2.1&tr2=1.68.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/index.html.in.diff?only_with_tag=lilypond_2_4&tr1=1.17&tr2=1.17.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/changing-defaults.itely.diff?only_with_tag=lilypond_2_4&tr1=1.86.2.1&tr2=1.86.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/cheatsheet.itely.diff?only_with_tag=lilypond_2_4&tr1=1.35.2.1&tr2=1.35.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/converters.itely.diff?only_with_tag=lilypond_2_4&tr1=1.44.2.1&tr2=1.44.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/examples.itely.diff?only_with_tag=lilypond_2_4&tr1=1.22.2.1&tr2=1.22.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/introduction.itely.diff?only_with_tag=lilypond_2_4&tr1=1.116.2.1&tr2=1.116.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/lilypond-book.itely.diff?only_with_tag=lilypond_2_4&tr1=1.90.2.1&tr2=1.90.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/lilypond.tely.diff?only_with_tag=lilypond_2_4&tr1=1.110.2.1&tr2=1.110.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/macros.itexi.diff?only_with_tag=lilypond_2_4&tr1=1.53&tr2=1.53.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/music-glossary.tely.diff?only_with_tag=lilypond_2_4&tr1=1.90&tr2=1.90.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/notation.itely.diff?only_with_tag=lilypond_2_4&tr1=1.147.2.1&tr2=1.147.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/point-and-click.itely.diff?only_with_tag=lilypond_2_4&tr1=1.4.2.1&tr2=1.4.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/programming-interface.itely.diff?only_with_tag=lilypond_2_4&tr1=1.23.2.1&tr2=1.23.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/scheme-tutorial.itely.diff?only_with_tag=lilypond_2_4&tr1=1.3.2.1&tr2=1.3.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/Documentation/user/tutorial.itely.diff?only_with_tag=lilypond_2_4&tr1=1.243.2.1&tr2=1.243.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/elisp/lilypond-indent.el.diff?only_with_tag=lilypond_2_4&tr1=1.2&tr2=1.2.8.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/lexer.ll.diff?only_with_tag=lilypond_2_4&tr1=1.150.2.1&tr2=1.150.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/quote-iterator.cc.diff?only_with_tag=lilypond_2_4&tr1=1.21.2.1&tr2=1.21.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/recording-group-engraver.cc.diff?only_with_tag=lilypond_2_4&tr1=1.20&tr2=1.20.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/mf/GNUmakefile.diff?only_with_tag=lilypond_2_4&tr1=1.93&tr2=1.93.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/po/lilypond.pot.diff?only_with_tag=lilypond_2_4&tr1=1.57&tr2=1.57.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/python/GNUmakefile.diff?only_with_tag=lilypond_2_4&tr1=1.5&tr2=1.5.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/lily-library.scm?only_with_tag=lilypond_2_4&rev=1.1.2.1
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/framework-tex.scm.diff?only_with_tag=lilypond_2_4&tr1=1.44.2.1&tr2=1.44.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/lily.scm.diff?only_with_tag=lilypond_2_4&tr1=1.287.2.1&tr2=1.287.2.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/output-gnome.scm.diff?only_with_tag=lilypond_2_4&tr1=1.45&tr2=1.45.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/paper.scm.diff?only_with_tag=lilypond_2_4&tr1=1.47&tr2=1.47.2.1&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/tex/lilyponddefs.tex.diff?only_with_tag=lilypond_2_4&tr1=1.113&tr2=1.113.2.1&r1=text&r2=text

Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.2780.2.3 lilypond/ChangeLog:1.2780.2.4
--- lilypond/ChangeLog:1.2780.2.3       Sun Nov  7 23:16:06 2004
+++ lilypond/ChangeLog  Mon Nov  8 19:57:54 2004
@@ -1,3 +1,178 @@
+ ***************
+*** 1,7 ****
+  2004-11-04  Han-Wen Nienhuys  <hanwen@xxxxxxxxx>
+i  
+       * input/regression/new-slur.ly: mention forcing.
+  
+  2004-11-04  Heikki Junes <hjunes@xxxxxxxxx>
+  
+          * Documentation/user/lilypond.tely: changes 2.3.x to 2.5.x.
+--- 1,164 ----
++ 2004-11-08  Han-Wen Nienhuys  <hanwen@xxxxxxxxx>
++ 
++      * lily/grace-engraver.cc (start_translation_timestep): split
++      scm_cadddr
++      
++ 2004-11-07  Han-Wen Nienhuys  <hanwen@xxxxxxxxx>
++ 
++      * lily/quote-iterator.cc (Module): remove old quote-iterator
++ 
++      * scm/define-music-types.scm (music-descriptions): move
++      NewQuoteMusic over QuoteMusic
++ 
++      * Documentation/user/notation.itely (Formatting cue notes): use
++      \cueDuring.
++ 
++      * lily/new-quote-iterator.cc (quote_ok): new function.
++ 
++      * input/regression/quote-cue-during.ly: new file.
++ 
++      * input/regression/quote-grace.ly: new file.
++ 
++      * scm/define-context-properties.scm (Module): change definition of
++      graceSettings
++ 
++      * lily/context-property.cc (Module): rename from
++      translator-property.cc
++ 
++      * lily/context.cc (context_name_symbol): new function
++ 
++      * lily/grace-engraver.cc: new file. Set properties for grobs based
++      on the grace-ness of now_moment().
++ 
++      * scm/music-functions.scm (add-grace-property): use list
++      iso. vector for graceSettings
++      remove set-{start,stop}-grace-properties. 
++ 
++      * lily/new-quote-iterator.cc (construct_children): set
++      quote_outlet_ if no quoted-context-{id,type} specified.
++ 
++      * scripts/convert-ly.py (conv): \quote -> \quoteDuring.
++ 
++      * lily/parser.yy (command_element): remove \quote.
++ 
++      * ly/music-functions-init.ly (location): add quoteDuring music
++      function. 
++ 
++      * lily/lexer.ll: allow \encoding in lyrics as well.  Remove
++      optional semicolon. (backportme)
++ 
++ 2004-11-06  Jan Nieuwenhuizen  <janneke@xxxxxxx>
++ 
++      * python/GNUmakefile (STEPMAKE_TEMPLATES): Unset USER_LDFLAGS, no
++      need to link to GUILE et al.
++ 
++ 2004-11-06  Han-Wen Nienhuys  <hanwen@xxxxxxxxx>
++ 
++      * scm/define-music-properties.scm (all-music-properties): add
++      quoted-context-type, quoted-context-id.
++ 
++      * scm/lily.scm (type-check-list): new function.
++      
++      * scm/lily-library.scm: new file. Generic library routines.
++ 
++      * lily/parser.yy (Generic_prefix_music): move typechecking out of
++      parser.
++ 
++      * ly/music-functions-init.ly: add quoteDuring function.
++ 
++      * lily/include/music-iterator.hh (class Music_iterator): rename
++      set_translator -> set_context
++ 
++      * lily/parser.yy (Generic_prefix_music_scm): add
++      MUSIC_FUNCTION_SCM_SCM_MUSIC
++ 
++      * scm/lily.scm (sanitize-command-option): new function. (backportme)
++ 
++      * scm/framework-tex.scm (header): sanitize TeX paper size.
++      (backportme)
++ 
++ 2004-11-06  Jan Nieuwenhuizen  <janneke@xxxxxxx>
++ 
++      * elisp/lilypond-indent.el (LilyPond-indent-level): 2 is now standard.
++ 
++      * tex/lilyponddefs.tex: If no inputencoding use latin1.  (backportme)
++ 
++      * scm/framework-tex.scm (font-load-command): Use T1 if no
++      font-encoding set.  (backportme)
++ 
++      * scm/lily.scm (postscript->pdf): Remove .pdf file if it
++      exists before converting.  (backportme)
++ 
++      * scm/framework-tex.scm (convert-to-dvi): Remove .dvi file if it
++      exists before converting.  (backportme)
++      (convert-to-ps): Remove .ps file if it exists before
++      converting.  (backportme)
++ 
++      * lily/lexer.ll: Remove extra progress newline, use present tense.
++ 
++      * scm/paper.scm (paper-alist): public.
++      * scm/framework-tex.scm (convert-to-ps):
++      * scm/lily.scm (postscript->pdf): Do not leak papersizename into
++      command line.
++ 
++ 2004-11-06  Han-Wen Nienhuys  <hanwen@xxxxxxxxx>
++ 
++      * scm/lily.scm (ly:system): add > /dev/null 2>&1 . (backportme)
++ 
++      * lily/recording-group-engraver.cc (derived_mark): mark
++      now_events_. (backportme)
++ 
++ 2004-11-05  Han-Wen Nienhuys  <hanwen@xxxxxxxxx>
++ 
++      * mf/GNUmakefile: use Fedora-3 in download link. (backportme.)
++ 
++      * scm/framework-tex.scm (convert-to-dvi): use ly:system for
++      invoking latex. (backportme.)
++ 
++      * lily/stem.cc (off_callback): center stems for all rest stems.
++ 
++ 2004-11-05  Werner Lemberg  <wl@xxxxxxx>
++ 
++      * Documentation/user/lilypond.tely: Add more guidelines for writing
++      lilypond texinfo documents.
++ 
++ 2004-11-05  Heikki Junes  <hjunes@xxxxxxxxx>
++ 
++      * Documentation/index.html.in: remove <hr>.
++ 
++      * THANKS: change 2.3 to 2.4.
++ 
++ 2004-11-05  Jan Nieuwenhuizen  <jannneke@xxxxxxx>
++ 
++      * scm/output-gnome.scm: More fontconfig comment.
++ 
++ 2004-11-05  Pedro Kroger  <kroeger@xxxxxxxxxxxxxxxx>
++ 
++      * GNUmakefile.in ($(builddir)/share/lilypond-force): create the
++      <package> directory in $(builddir)/share according with
++      PACKAGE_NAME defined in the VERSION file.
++ 
+  2004-11-04  Han-Wen Nienhuys  <hanwen@xxxxxxxxx>
+  
++      * lily/beam.cc (rest_collision_callback): use local beam
++      multiplicity.
++ 
++      * input/regression/stem-stemlet.ly: new file.
++ 
++      * lily/stem.cc (add_head): store rests as well.
++ 
++      * scm/define-grob-properties.scm (all-user-grob-properties): add
++      stemlet-length
++ 
++      * lily/stem.cc: store rests as well.
++      
+       * input/regression/new-slur.ly: mention forcing.
+  
++ 2004-11-04  Werner Lemberg  <wl@xxxxxxx>
++ 
++      * Documentation/user/*: A new round of layout fixes and document
++      structure cleanup.
++ 
+  2004-11-04  Heikki Junes <hjunes@xxxxxxxxx>
+  
+          * Documentation/user/lilypond.tely: changes 2.3.x to 2.5.x.
+       
 2004-11-08  Han-Wen Nienhuys  <hanwen@xxxxxxxxx>
 
        * lily/quote-iterator.cc (process): add  comparison  for
Index: lilypond/Documentation/index.html.in
diff -u /dev/null lilypond/Documentation/index.html.in:1.17.2.1
--- /dev/null   Mon Nov  8 19:57:56 2004
+++ lilypond/Documentation/index.html.in        Mon Nov  8 19:57:55 2004
@@ -0,0 +1,134 @@
+<html>
+  <head>
+    <title>LilyPond @TOPLEVEL_VERSION@ Documentation</title>
+    <meta name="aesop" content="links">
+    <meta name="description"
+          content="Top-level index to the standard documentation for
+                   LilyPond @TOPLEVEL_VERSION@">
+    <style type="text/css">
+    .navigation         { background-color: #e8ffe8;
+                         padding: 2; border: #c0ffc0 1px solid;
+                         text-align: center;
+                          font-weight: bold;
+                          font-family: avantgarde, sans-serif;
+                          font-size: 110%; }
+      a.title { font-weight: bold; font-size: 110%; }
+      ul { margin-left: 1em; padding: 0pt; border: 0pt; }
+      ul li { margin-top: 0.2em; }
+      td.left-column { padding-right: 1em; }
+      td.right-column { padding-left: 1em; }
+      hr { border:0; height:1; color: #000000; background-color: #000000; }
+    </style>
+  </head>
+  <body>
+        
+       <div class="navigation">
+         <h1> LilyPond documentation</h1>
+       </div>
+    <div align="center" class="titlepage">
+
+      <p>
+       <strong>Version @TOPLEVEL_VERSION@</strong>
+       <br>
+       <strong>@DATE@</strong>
+      </p>
+    </div>
+
+    <table align="center">
+      <tbody>
+        <tr>
+          <td class="left-column">
+         <ul>
+           <li>
+           <a class="title" 
href="../user/out-www/lilypond/Tutorial.html">Tutorial</a>
+             <br>(start here)
+         </ul>
+         </td>
+         <td class="right-column">
+         <ul>
+         
+            <li>
+           <a class="title" href="../topdocs/out-www/NEWS.html">NEWS</a>
+           <br>(changes since the last major release)
+
+            <li>
+           <a class="title" href="../topdocs/out-www/INSTALL.html">INSTALL</a>
+           <br>(how to compile)
+         </ul>
+         </td>
+        </tr>
+        <tr>
+          <td valign="baseline" class="left-column">
+          &nbsp;
+         <ul>
+           <li>
+<a class="title" href="../user/out-www/lilypond/index.html">User manual</a>
+(in <a class="title" href="../user/out-www/lilypond.pdf">PDF</a>, in
+<a class="title" href="../user/out-www/lilypond/lilypond.html">one big 
page</a>)
+
+     <br>(everything about LilyPond)
+     
+<li><a class="title"href="../../examples.html">Examples</a>
+
+     <br>(see some examples)
+          
+<li><a class="title" href="../../input/test/out-www/collated-files.html">Tips 
and tricks</a>
+(in  <a class="title" 
href="../../input/test/out-www/collated-files.pdf">PDF</a>)
+
+     <br>(for advanced users)
+ <li><a class="title" href="../user/out-www/music-glossary.html">Glossary</a>
+
+     <br>(for non-English users)
+         </ul>
+         </td>
+         <td valign="baseline" class="right-column">
+          &nbsp;
+         <ul>
+           <li>
+ <a  class="title" 
href="../user/out-www/lilypond-internals/index.html">Program reference</a>
+
+     <br>(definitions for tweaking)
+
+           <li>
+     <a  class="title" 
href="../../input/regression/out-www/collated-files.html">Regression tests</a> 
(in <a  class="title" 
href="../../input/regression/out-www/collated-files.pdf">PDF</a>)
+
+     <br>(for developers)
+
+
+           <li><a  class="title" 
href="../bibliography/out-www/index.html">Bibliography</a>
+
+     <br>(background information)
+<li><a class="title"  href="THANKS.html">Thank yous</a>
+<br>(our contributors)
+
+<li><a class="title"  href="DEDICATION.html">Dedication</a>
+
+     <br>(by Jan and Han-Wen)
+
+         </ul>
+         </td>
+        </tr>
+        <tr>
+          <td valign="baseline" class="left-column">
+          &nbsp;
+          <ul>
+            <li> <a class="title"  href="http://lilypond.org/"; class="title"
+                >lilypond.org</a>
+              <br>(the website)
+          </ul>
+          </td>
+          <td valign="baseline" class="right-column">
+          &nbsp;
+          <ul>
+            <li>
+                                <a class="title" 
href="http://www.gnu.org/copyleft/gpl.html";>License</a>
+                                <br> (the GPL) 
+          </ul>
+          </td>
+        </tr>
+      </tbody>
+    </table>
+    <p>
+
+  </body>
+</html>
Index: lilypond/Documentation/user/changing-defaults.itely
diff -u lilypond/Documentation/user/changing-defaults.itely:1.86.2.1 
lilypond/Documentation/user/changing-defaults.itely:1.86.2.2
--- lilypond/Documentation/user/changing-defaults.itely:1.86.2.1        Sun Nov 
 7 23:16:07 2004
+++ lilypond/Documentation/user/changing-defaults.itely Mon Nov  8 19:57:55 2004
@@ -4,10 +4,10 @@
 
 
 The purpose of LilyPond's design is to provide the finest output
-quality as a default. Nevertheless, it may happen that you need to
+quality as a default.  Nevertheless, it may happen that you need to
 change this default layout.  The layout is controlled through a large
 number of proverbial ``knobs and switches.''  This chapter does not
-list each and every knob. Rather, it outlines what groups of controls
+list each and every knob.  Rather, it outlines what groups of controls
 are available and explains how to lookup which knob to use for a
 certain effect.
 
@@ -15,28 +15,31 @@
 @cindex Program reference
 
 The controls available for tuning are described in a separate
-document, the @internalsref{Program reference} manual. That manual
+document, the @internalsref{Program reference} manual.  That manual
 lists all different variables, functions and options available in
-LilyPond. It is written as a HTML document, which is available
+LilyPond.  It is written as a HTML document, which is available
 
@uref{http://@/lilypond@/.org/@/doc/@/Documentation/@/user/@/out@/-www/@/lilypond@/-internals/,on@/-line},
 but is also included with the LilyPond documentation package.
 
 There are three areas where the default settings may be changed:
 
 @itemize @bullet
-@item Output: changing the appearance of individual
-  objects. For example, changing stem directions, or the location of
-  subscripts.
+@item
+Output: changing the appearance of individual
+objects.  For example, changing stem directions, or the location of
+subscripts.
   
-@item Context: changing aspects of the translation from music events to
-  notation. For example, giving each staff a separate time signature. 
+@item
+Context: changing aspects of the translation from music events to
+notation.  For example, giving each staff a separate time signature. 
   
-@item Global layout: changing the appearance of the spacing, line
-  breaks and page dimensions.
+@item
+Global layout: changing the appearance of the spacing, line
+breaks and page dimensions.
 @end itemize
 
 Then, there are separate systems for typesetting text (like
-@emph{ritardando}) and selecting different fonts. This chapter also
+@emph{ritardando}) and selecting different fonts.  This chapter also
 discusses these.
 
 Internally, LilyPond uses Scheme (a LISP dialect) to provide
@@ -64,14 +67,14 @@
 input, which is often bare bones.  For example, compare the input and
 output of the following example:
 
-@lilypond[verbatim,relative=2,fragment]
-  cis4 cis2. g4
+@lilypond[quote,verbatim,relative=2,fragment]
+cis4 cis2. g4
 @end lilypond
 
 The input is rather sparse, but in the output, bar lines, accidentals,
-clef, and time signature are added. LilyPond @emph{interprets} the
-input. During this step, the musical information is inspected in time
-order, similar to reading a score from left to right. While reading,
+clef, and time signature are added.  LilyPond @emph{interprets} the
+input.  During this step, the musical information is inspected in time
+order, similar to reading a score from left to right.  While reading,
 the program remembers where measure boundaries are, and what pitches
 need explicit accidentals.  This information can be presented on
 several levels.  For example, the effect of an accidental is limited
@@ -79,7 +82,7 @@
 entire score.
 
 Within LilyPond, these rules and bits of information are grouped in
-so-called Contexts. Examples of context are @context{Voice},
+so-called Contexts.  Examples of context are @context{Voice},
 @context{Staff}, and @context{Score}.  They are hierarchical, for
 example, a @context{Staff} can contain many @context{Voice}s, and a
 @context{Score} can contain many @context{Staff} contexts.
@@ -92,7 +95,7 @@
 show or suppress the accidental for the remainder of the measure.
 
 For simple scores, contexts are created implicitly, and you need not
-be aware of them. For larger pieces, such as piano music, they must be
+be aware of them.  For larger pieces, such as piano music, they must be
 created explicitly to make sure that you get as many staves as you
 need, and that they are in the correct order.  For typesetting pieces
 with specialized notation, it can be useful to modify existing or
@@ -124,7 +127,7 @@
 @subsection Creating contexts
 
 For scores with only one voice and one staff, correct contexts are
-created automatically. For more complex scores, it is necessary to
+created automatically.  For more complex scores, it is necessary to
 create them by hand.  There are three commands which do this.
 
 The easiest command is @code{\new}, and it also the quickest to type.
@@ -135,7 +138,7 @@
 @cindex Context, creating
 
 @example
-  \new @var{type} @var{music expression}
+\new @var{type} @var{music expression}
 @end example
 
 @noindent
@@ -144,32 +147,32 @@
 interpreting @var{music expression} with that.
 
 A practical application of @code{\new} is a score with many
-staves. Each part that should be on its own staff, is preceded with 
+staves.  Each part that should be on its own staff, is preceded with 
 @code{\new Staff}.
 
-@lilypond[verbatim,relative=2,raggedright,fragment]
-  << \new Staff { c4 c }
-     \new Staff { d4 d }
-  >>
+@lilypond[quote,verbatim,relative=2,raggedright,fragment]
+<< \new Staff { c4 c }
+   \new Staff { d4 d }
+>>
 @end lilypond
 
 @cindex @code{\context}
 
 Like @code{\new}, the @code{\context} command also directs a music
-expression to a context object, but gives the context an extra name. The
+expression to a context object, but gives the context an extra name.  The
 syntax is
 
 @example
-  \context @var{type} = @var{id} @var{music}
+\context @var{type} = @var{id} @var{music}
 @end example
 
 This form will search for an existing context of type @var{type}
-called @var{id}. If that context does not exist yet, it is created.
-This is useful if the context is referred to later on. For example, when
+called @var{id}.  If that context does not exist yet, it is created.
+This is useful if the context is referred to later on.  For example, when
 setting lyrics the melody is in a named context
 
 @example
- \context Voice = "@b{tenor}" @var{music}
+\context Voice = "@b{tenor}" @var{music}
 @end example
 
 @noindent
@@ -182,27 +185,28 @@
 @noindent
 
 Another possibility is funneling two different music expressions into
-one context. In the following example, articulations and notes are
+one context.  In the following example, articulations and notes are
 entered separately,
 
-@verbatim
-music =  { c4 c4 }
-arts =  { s4-. s4-> }
-@end verbatim
+@example
+music = @{ c4 c4 @}
+arts = @{ s4-. s4-> @}
+@end example
 
 They are combined by sending both to the same @context{Voice} context,
 
-@verbatim
-  << \new Staff \context Voice = "A" \music
-     \context Voice = "A" \arts
-  >>
-@end verbatim
-@lilypond[raggedright]
-music =  { c4   c4 }
-arts =   { s4-. s4-> }
-   \relative c''  << \new Staff \context Voice = "A" \music
-     \context Voice = "A" \arts
-  >>
+@example
+<< \new Staff \context Voice = "A" \music
+   \context Voice = "A" \arts
+>>
+@end example
+@lilypond[quote,raggedright]
+music = { c4 c4 }
+arts = { s4-. s4-> }
+\relative c'' <<
+  \new Staff \context Voice = "A" \music
+  \context Voice = "A" \arts
+>>
 @end lilypond
 
 With this mechanism, it is possible to define an Urtext (original
@@ -214,7 +218,7 @@
 
 The third command for creating contexts is
 @example
-  \context @var{type} @var{music}
+\context @var{type} @var{music}
 @end example
 
 
@@ -223,20 +227,20 @@
 any context of type @var{type}, regardless of its given name.
 
 This variant is used with music expressions that can be interpreted at
-several levels. For example, the @code{\applyoutput} command (see
-@ref{Running a function on all layout objects}). Without an explicit
+several levels.  For example, the @code{\applyoutput} command (see
+@ref{Running a function on all layout objects}).  Without an explicit
 @code{\context}, it is usually is applied to @context{Voice}
 
 @example
-  \applyoutput #@var{function}   % apply to Voice
+\applyoutput #@var{function}   % apply to Voice
 @end example
 
 To have it interpreted at the @context{Score} or @context{Staff} level use
 these forms
 
 @example
-  \context Score \applyoutput #@var{function}
-  \context Staff \applyoutput #@var{function}
+\context Score \applyoutput #@var{function}
+\context Staff \applyoutput #@var{function}
 @end example
 
 
@@ -248,32 +252,32 @@
 @cindex changing properties
 
 Each context can have different @emph{properties}, variables contained
-in that context. They can be changed during the interpretation step.
+in that context.  They can be changed during the interpretation step.
 This is achieved by inserting the @code{\set} command in the music,
 
-@quotation
-  @code{\set } @var{context}@code{.}@var{prop}@code{ = #}@var{value} 
-@end quotation
+@example
+\set @var{context}.@var{prop} = #@var{value}
+@end example
 
 For example,
-@lilypond[verbatim,relative=2,fragment]
-  R1*2 
-  \set Score.skipBars = ##t
-  R1*2
+@lilypond[quote,verbatim,relative=2,fragment]
+R1*2 
+\set Score.skipBars = ##t
+R1*2
 @end lilypond
 
-This command skips measures that have no notes. The result is that
-multi rests are condensed.  The value assigned is a Scheme object. In
+This command skips measures that have no notes.  The result is that
+multi rests are condensed.  The value assigned is a Scheme object.  In
 this case, it is @code{#t}, the boolean True value.
 
 If the @var{context} argument is left out, then the current bottom-most
 context (typically @context{ChordNames}, @context{Voice}, or
 @context{Lyrics}) is used.  In this example,
 
-@lilypond[verbatim,relative=2,fragment]
-  c8 c c c
-  \set autoBeaming = ##f
-  c8 c c c
+@lilypond[quote,verbatim,relative=2,fragment]
+c8 c c c
+\set autoBeaming = ##f
+c8 c c c
 @end lilypond
 
 @noindent
@@ -282,48 +286,48 @@
 
 Contexts are hierarchical, so if a bigger context was specified, for
 example @context{Staff}, then the change would also apply to all
-@context{Voice}s in the current stave. The change is applied
+@context{Voice}s in the current stave.  The change is applied
 `on-the-fly', during the music, so that the setting only affects the
 second group of eighth notes.
 
 @cindex @code{\unset} 
 
 There is also an @code{\unset} command,
-@quotation
-  @code{\unset }@var{context}@code{.}@var{prop}
-@end quotation
+@example
+\unset @var{context}.@var{prop}
+@end example
 
 @noindent
-which removes the definition of @var{prop}. This command removes
+which removes the definition of @var{prop}.  This command removes
 the definition only if it is set in @var{context}, so
 
 @example
- \set Staff.autoBeaming = ##f
+\set Staff.autoBeaming = ##f
 @end example
 
 @noindent
-introduces a property setting at @code{Staff} level. The setting also
-applies to the current @code{Voice}. However,
+introduces a property setting at @code{Staff} level.  The setting also
+applies to the current @code{Voice}.  However,
 
 @example
- \unset Voice.autoBeaming
+\unset Voice.autoBeaming
 @end example
 
 @noindent
-does not have any effect. To cancel this setting, the @code{\unset}
-must be specified on the same level as the original @code{\set}. In
+does not have any effect.  To cancel this setting, the @code{\unset}
+must be specified on the same level as the original @code{\set}.  In
 other words, undoing the effect of @code{Staff.autoBeaming = ##f}
 requires
 @example
- \unset Staff.autoBeaming
+\unset Staff.autoBeaming
 @end example
 
 Like @code{\set}, the @var{context} argument does not have to be
 specified for a bottom context, so the two statements
 
 @example
-  \set Voice.autoBeaming = ##t 
-  \set autoBeaming = ##t 
+\set Voice.autoBeaming = ##t 
+\set autoBeaming = ##t 
 @end example 
 
 @noindent
@@ -334,11 +338,11 @@
 Settings that should only apply to a single time-step can be entered
 with @code{\once}, for example in
 
-@lilypond[verbatim,relative=2,fragment]
-  c4
-  \once \set fontSize = #4.7
-  c4
-  c4
+@lilypond[quote,verbatim,relative=2,fragment]
+c4
+\once \set fontSize = #4.7
+c4
+c4
 @end lilypond
 
 the property @code{fontSize} is unset automatically after the second
@@ -359,7 +363,7 @@
 
 Notation contexts (like Score and Staff) not only store properties,
 they also contain plug-ins, called ``engravers'' that create notation
-elements. For example, the Voice context contains a
+elements.  For example, the Voice context contains a
 @code{Note_head_engraver} and the Staff context contains a
 @code{Key_signature_engraver}.
 
@@ -380,26 +384,27 @@
 lists the engravers used for that context.
 
 
-It can be useful to shuffle around these plug-ins. This is done by
+It can be useful to shuffle around these plug-ins.  This is done by
 starting a new context, with @code{\new} or @code{\context}, and
 modifying it like this, 
 
 @example
- \new @var{context} \with @{
-   \consists @dots{}
-   \consists @dots{}
-   \remove  @dots{}
-   \remove @dots{}
-   @emph{etc.}
- @}
- @var{..music..}
+\new @var{context} \with @{
+  \consists @dots{}
+  \consists @dots{}
+  \remove @dots{}
+  \remove @dots{}
+  @emph{etc.}
+@}
+@emph{..music..}
 @end example
 
-where the @dots{} should be the name of an engraver. Here is a simple
+@noindent
+where the @dots{} should be the name of an engraver.  Here is a simple
 example which removes @code{Time_signature_engraver} and
 @code{Clef_engraver} from a @code{Staff} context,
 
-@lilypond[relative=1, verbatim,fragment]
+@lilypond[quote,relative=1,verbatim,fragment]
 << \new Staff {
     f2 g
   }
@@ -414,14 +419,14 @@
 
 In the second stave there are no time signature or clef symbols.  This
 is a rather crude method of making objects disappear since it will affect
-the entire staff. The spacing is adversely influenced too. A more
+the entire staff.  The spacing is adversely influenced too.  A more
 sophisticated methods of blanking objects is shown in @ref{Common
 tweaks}.
 
 The next example shows a practical application.  Bar lines and time
 signatures are normally synchronized across the score.  This is done
-by the @code{Timing_engraver}. This plug-in keeps an administration of
-time signature, location within the measure, etc. By moving the
+by the @code{Timing_engraver}.  This plug-in keeps an administration of
+time signature, location within the measure, etc.  By moving the
 @code{Timing_engraver} engraver from @code{Score} to @code{Staff}
 context, we can have a score where each staff has its own time
 signature.
@@ -429,7 +434,7 @@
 @cindex polymetric scores
 
 
-@lilypond[relative=1,raggedright,verbatim,fragment]
+@lilypond[quote,relative=1,raggedright,verbatim,fragment]
 \new Score \with {
   \remove "Timing_engraver"
 } <<
@@ -453,84 +458,84 @@
 @subsection Layout tunings within contexts
 
 Each context is responsible for creating certain types of graphical
-objects. The settings used for printing these objects are also stored by
-context. By changing these settings, the appearance of objects can be
+objects.  The settings used for printing these objects are also stored by
+context.  By changing these settings, the appearance of objects can be
 altered.
  
 The syntax for this is
 
 @example
-  \override @var{context}.@var{name}@code{ #'}@var{property} = #@var{value}
+\override @var{context}.@var{name} #'@var{property} = #@var{value}
 @end example
 
 Here @var{name} is the name of a graphical object, like @code{Stem} or
 @code{NoteHead}, and @var{property} is an internal variable of the
-formatting system (`grob property' or `layout property'). The latter is a
-symbol, so it must be quoted. The subsection @ref{Constructing a
+formatting system (`grob property' or `layout property').  The latter is a
+symbol, so it must be quoted.  The subsection @ref{Constructing a
 tweak} explains what to fill in for @var{name}, @var{property}, and
-@var{value}. Here we only discuss functionality of this command.
+@var{value}.  Here we only discuss functionality of this command.
 
 The command
 
 @verbatim
-  \override Staff.Stem #'thickness = #4.0 
+\override Staff.Stem #'thickness = #4.0 
 @end verbatim
 
 @noindent
 makes stems thicker (the default is 1.3, with staff line thickness as a
-unit). Since the command specifies @context{Staff} as context, it only
-applies to the current staff. Other staves will keep their normal
+unit).  Since the command specifies @context{Staff} as context, it only
+applies to the current staff.  Other staves will keep their normal
 appearance.  Here we see the command in action:
 
-@lilypond[verbatim,relative=2,fragment]
-  c4
-  \override Staff.Stem #'thickness = #4.0 
-  c4
-  c4
-  c4
+@lilypond[quote,verbatim,relative=2,fragment]
+c4
+\override Staff.Stem #'thickness = #4.0 
+c4
+c4
+c4
 @end lilypond
 
 The @code{\override} command changes the definition of the @code{Stem}
-within the current @context{Staff}. After the command is interpreted
+within the current @context{Staff}.  After the command is interpreted
 all stems are thickened.
 
 Analogous to @code{\set}, the @var{context} argument may be left out,
 causing it to default to @context{Voice}, and adding @code{\once} applies
 the change during one timestep only 
 
-@lilypond[fragment,verbatim,relative=2]
-  c4
-  \once \override Stem #'thickness = #4.0 
-  c4
-  c4 
+@lilypond[quote,fragment,verbatim,relative=2]
+c4
+\once \override Stem #'thickness = #4.0 
+c4
+c4 
 @end lilypond
 
 The @code{\override} must be done before the object is
-started. Therefore, when altering @emph{Spanner} objects, like slurs or
+started.  Therefore, when altering @emph{Spanner} objects, like slurs or
 beams, the @code{\override} command must be executed at the moment when
-the object is created. In this example,
+the object is created.  In this example,
 
 
-@lilypond[fragment,verbatim,relative=2]
-  \override Slur #'thickness = #3.0
-  c8[( c
-  \override Beam #'thickness = #0.6
-  c8 c]) 
+@lilypond[quote,fragment,verbatim,relative=2]
+\override Slur #'thickness = #3.0
+c8[( c
+\override Beam #'thickness = #0.6
+c8 c]) 
 @end lilypond
 
 @noindent
-the slur is fatter but the beam is not. This is because the command for
-@code{Beam} comes after the Beam is started. Therefore it has no effect.
+the slur is fatter but the beam is not.  This is because the command for
+@code{Beam} comes after the Beam is started.  Therefore it has no effect.
 
 Analogous to @code{\unset}, the @code{\revert} command for a context
 undoes a @code{\override} command; like with @code{\unset}, it only
-affects settings that were made in the same context. In other words, the
+affects settings that were made in the same context.  In other words, the
 @code{\revert} in the next example does not do anything.
 
-@verbatim
-  \override Voice.Stem #'thickness = #4.0
-  \revert Staff.Stem #'thickness
-@end verbatim
+@example
+\override Voice.Stem #'thickness = #4.0
+\revert Staff.Stem #'thickness
+@end example
 
 
 
@@ -572,7 +577,7 @@
 
 Here
 @example
-  \Staff
+\Staff
 @end example
 
 @noindent
@@ -581,9 +586,9 @@
 
 The statements
 @example
-    \set fontSize = #-2
-    \override Stem #'thickness = #4.0
-    \remove "Time_signature_engraver"
+\set fontSize = #-2
+\override Stem #'thickness = #4.0
+\remove "Time_signature_engraver"
 @end example
 
 @noindent
@@ -621,30 +626,29 @@
 
 The next example shows how to build a different type of
 @context{Voice} context from scratch.  It will be similar to
-@code{Voice}, but print centered slash noteheads only. It can be used
+@code{Voice}, but print centered slash noteheads only.  It can be used
 to indicate improvisation in Jazz pieces,
 
-@lilypond[raggedright]
-  \layout { \context {
-    \name ImproVoice
-    \type "Engraver_group_engraver"
-    \consists "Note_heads_engraver"
-    \consists "Text_engraver"
-    \consists Pitch_squash_engraver
-    squashedPosition = #0
-    \override NoteHead #'style = #'slash
-    \override Stem #'transparent = ##t
-    \alias Voice
-  }
-  \context { \Staff
-    \accepts "ImproVoice"
-  }}
-
+@lilypond[quote,raggedright]
+\layout { \context {
+  \name ImproVoice
+  \type "Engraver_group_engraver"
+  \consists "Note_heads_engraver"
+  \consists "Text_engraver"
+  \consists Pitch_squash_engraver
+  squashedPosition = #0
+  \override NoteHead #'style = #'slash
+  \override Stem #'transparent = ##t
+  \alias Voice
+}
+\context { \Staff
+  \accepts "ImproVoice"
+}}
 
 \relative c'' {
-    a4 d8 bes8 \new ImproVoice { c4^"ad lib" c 
-     c4 c^"undress" c_"while playing :)" c } 
-    a1 
+  a4 d8 bes8 \new ImproVoice { c4^"ad lib" c 
+   c4 c^"undress" c_"while playing :)" c } 
+  a1 
 }
 @end lilypond
 
@@ -653,56 +657,56 @@
 @code{\layout} block,
 
 @example
-  \layout @{
-    \context @{
-      @dots{}
-    @}
+\layout @{
+  \context @{
+    @dots{}
   @}
+@}
 @end example
 
 In the following discussion, the example input shown should go on the
 @dots{} in the previous fragment.
 
-First, name the context gets a name. Instead of @context{Voice} it
+First, name the context gets a name.  Instead of @context{Voice} it
 will be called @context{ImproVoice},
 
-@verbatim
-  \name ImproVoice
-@end verbatim
+@example
+\name ImproVoice
+@end example
 
 Since it is similar to the @context{Voice}, we want commands that work
-on (existing) @context{Voice}s to remain working. This is achieved by
+on (existing) @context{Voice}s to remain working.  This is achieved by
 giving the new context an alias @context{Voice},
 
-@verbatim
-  \alias Voice
-@end verbatim
+@example
+\alias Voice
+@end example
 
 The context will print notes, and instructive texts
 
-@verbatim
-  \consists Note_heads_engraver
-  \consists Text_engraver
-@end verbatim
+@example
+\consists Note_heads_engraver
+\consists Text_engraver
+@end example
 
 but only on the center line,
 
-@verbatim
-  \consists Pitch_squash_engraver
-  squashedPosition = #0
-@end verbatim
+@example
+\consists Pitch_squash_engraver
+squashedPosition = #0
+@end example
 
 The @internalsref{Pitch_squash_engraver} modifies note heads (created
 by @internalsref{Note_heads_engraver}) and sets their vertical
-position to the value of @code{squashedPosition}, in this case
-@code{0}, the center line.
+position to the value of @code{squashedPosition}, in this case@tie{}@code{0},
+the center line.
 
-The notes look like a  slash, without a stem,
+The notes look like a slash, without a stem,
 
-@verbatim
-    \override NoteHead #'style = #'slash
-    \override Stem #'transparent = ##t
-@end verbatim
+@example
+\override NoteHead #'style = #'slash
+\override Stem #'transparent = ##t
+@end example
 
 
 All these plug-ins have to cooperate, and this is achieved with a
@@ -710,48 +714,48 @@
 This should always be @internalsref{Engraver_group_engraver},
 
 @example
- \type "Engraver_group_engraver"
+\type "Engraver_group_engraver"
 @end example
 
 Putting together, we get
 
-@verbatim
-  \context {
-    \name ImproVoice
-    \type "Engraver_group_engraver"
-    \consists "Note_heads_engraver"
-    \consists "Text_engraver"
-    \consists Pitch_squash_engraver
-    squashedPosition = #0
-    \override NoteHead #'style = #'slash
-    \override Stem #'transparent = ##t
-    \alias Voice
-  }
-@end verbatim
+@example
+\context @{
+  \name ImproVoice
+  \type "Engraver_group_engraver"
+  \consists "Note_heads_engraver"
+  \consists "Text_engraver"
+  \consists Pitch_squash_engraver
+  squashedPosition = #0
+  \override NoteHead #'style = #'slash
+  \override Stem #'transparent = ##t
+  \alias Voice
+@}
+@end example
 
-Contexts form hierarchies. We want to hang the @context{ImproVoice}
-under @context{Staff}, just like normal @code{Voice}s. Therefore, we
+Contexts form hierarchies.  We want to hang the @context{ImproVoice}
+under @context{Staff}, just like normal @code{Voice}s.  Therefore, we
 modify the @code{Staff} definition with the @code{\accepts}
 command,@footnote{The opposite of @code{\accepts} is @code{\denies},
-which is sometimes when reusing existing context definitions. }
+which is sometimes needed when reusing existing context definitions.}
 
 
 
-@verbatim
-  \context {
-    \Staff
-    \accepts ImproVoice    
-  }
-@end verbatim 
+@example
+\context @{
+  \Staff
+  \accepts ImproVoice    
+@}
+@end example
 
 Putting both into a @code{\layout} block, like
 
 @example
-  \layout @{
-    \context @{
-      \name ImproVoice
-      @dots{}
-    @}
+\layout @{
+  \context @{
+    \name ImproVoice
+    @dots{}
+  @}
   \context @{
     \Staff
     \accepts "ImproVoice"
@@ -761,17 +765,17 @@
 
 Then the output at the start of this subsection can be entered as
 
-@verbatim
-\relative c'' {
-     a4 d8 bes8
-     \new ImproVoice {
-       c4^"ad lib" c 
-       c4 c^"undress"
-       c c_"while playing :)"
-     }
-     a1
-}
-@end verbatim
+@example
+\relative c'' @{
+  a4 d8 bes8
+  \new ImproVoice @{
+    c4^"ad lib" c 
+    c4 c^"undress"
+    c c_"while playing :)"
+  @}
+  a1
+@}
+@end example
   
 
     
@@ -780,10 +784,10 @@
 @section The \override command
 
 In the previous section, we have already touched on a command that
-changes layout details, the @code{\override} command. In this section,
+changes layout details, the @code{\override} command.  In this section,
 we will look at in more detail how to use the command in practice.
 First, we will give a a few versatile commands, which are sufficient
-for many situations. The next section will discuss general use of
+for many situations.  The next section will discuss general use of
 @code{\override}.
 
 
@@ -802,7 +806,7 @@
 @subsection Common tweaks
 
 Some overrides are so common that predefined commands are provided as
-a short-cut, for example, @code{\slurUp} and @code{\stemDown}. These
+a short-cut, for example, @code{\slurUp} and @code{\stemDown}.  These
 commands are described in
 @ifhtml
 the
@@ -812,7 +816,7 @@
 
 The exact tuning possibilities for each type of layout object are
 documented in the program reference of the respective
-object. However, many layout objects share properties, which can be
+object.  However, many layout objects share properties, which can be
 used to apply generic tweaks.  We mention a few of these:
 
 @itemize @bullet
@@ -831,7 +835,7 @@
 
 @cindex setting object properties
 
-@lilypond[fragment,relative=1,verbatim]
+@lilypond[quote,fragment,relative=1,verbatim]
 \stemUp
 f-5
 \once \override Fingering
@@ -842,7 +846,7 @@
 @item
 Setting the @code{transparent} property will cause an object to be printed
 in `invisible ink': the object is not printed, but all its other
-behavior is retained. The object still takes up space, it takes part in
+behavior is retained.  The object still takes up space, it takes part in
 collisions, and slurs, and ties and beams can be attached to it.
 
 @cindex transparent objects
@@ -850,42 +854,42 @@
 @cindex hiding objects
 @cindex invisible objects
 The following example demonstrates how to connect different voices
-using ties. Normally, ties only connect two notes in the same
-voice. By introducing a tie in a different voice,
+using ties.  Normally, ties only connect two notes in the same
+voice.  By introducing a tie in a different voice,
 
-@lilypond[fragment,relative=2]
-  << {
-      b8~ b8\noBeam
-  } \\ {
-       b[ g8]
-  } >>
+@lilypond[quote,fragment,relative=2]
+<< {
+  b8~ b8\noBeam
+} \\ {
+  b[ g8]
+} >>
 @end lilypond
 
 @noindent
 and blanking the first up-stem in that voice, the tie appears to cross
 voices:
 
-@lilypond[fragment,relative=2,verbatim]
-  << {
-      \once \override Stem #'transparent = ##t
-      b8~ b8\noBeam
-  } \\ {
-       b[ g8]
-  } >>
+@lilypond[quote,fragment,relative=2,verbatim]
+<< {
+  \once \override Stem #'transparent = ##t
+  b8~ b8\noBeam
+} \\ {
+  b[ g8]
+} >>
 @end lilypond
 
 @item
 The @code{padding} property for objects with
 @cindex @code{padding}
 @code{side-position-interface} can be set to increase distance between
-symbols that are printed above or below notes. We only give an
+symbols that are printed above or below notes.  We only give an
 example; a more elaborate explanation is in @ref{Constructing a
 tweak}:
 
-@lilypond[fragment,relative=1,verbatim]
-  c2\fermata
-  \override Script #'padding = #3
-  b2\fermata
+@lilypond[quote,fragment,relative=1,verbatim]
+c2\fermata
+\override Script #'padding = #3
+b2\fermata
 @end lilypond
 
 @end itemize
@@ -901,7 +905,7 @@
 a command like
 
 @example
-        \override Voice.Stem #'thickness = #3.0
+\override Voice.Stem #'thickness = #3.0
 @end example
 
 @noindent
@@ -932,7 +936,7 @@
 Suppose we want to move the fingering indication in the fragment
 below:
 
-@lilypond[fragment,relative=2,verbatim]
+@lilypond[quote,fragment,relative=2,verbatim]
 c-2
 \stemUp
 f
@@ -953,12 +957,12 @@
 This fragment points to two parts of the program reference: a page
 on @code{FingerEvent} and on @code{Fingering}.
 
-The page on  @code{FingerEvent} describes the properties of the  music
-expression for the input @code{-2}. The page contains many links
+The page on @code{FingerEvent} describes the properties of the music
+expression for the input @code{-2}.  The page contains many links
 forward.  For example, it says
 
 @quotation
-  Accepted by: @internalsref{Fingering_engraver},
+Accepted by: @internalsref{Fingering_engraver},
 @end quotation 
 
 @noindent
@@ -966,7 +970,7 @@
 plug-in, which says
 
 @quotation
-  This engraver creates the following layout objects: @internalsref{Fingering}.
+This engraver creates the following layout objects: @internalsref{Fingering}.
 @end quotation
 
 In other words, once the @code{FingerEvent}s are interpreted, the
@@ -975,20 +979,21 @@
 @internalsref{Fingering} objects,
 
 
-  Lo and behold, that is also the
+Lo and behold, that is also the
 second bit of information listed under @b{See also} in the Notation
-manual. By clicking around in the program reference, we can follow the
+manual.  By clicking around in the program reference, we can follow the
 flow of information within the program, either forward (like we did
 here), or backwards, following links like this:
 
 @itemize @bullet
 
 @item @internalsref{Fingering}:
-  @internalsref{Fingering} objects are created by:
-  @b{@internalsref{Fingering_engraver}}
+@internalsref{Fingering} objects are created by:
+@b{@internalsref{Fingering_engraver}}
 
 @item @internalsref{Fingering_engraver}:
 Music types accepted: @b{@internalsref{fingering-event}}
+
 @item @internalsref{fingering-event}:
 Music event type @code{fingering-event} is in Music expressions named
 @b{@internalsref{FingerEvent}}
@@ -1005,7 +1010,7 @@
 @ifnothtml
 @code{Music definitions}
 @end ifnothtml
-on @internalsref{Translation}, and the @internalsref{Backend}. Every
+on @internalsref{Translation}, and the @internalsref{Backend}.  Every
 chapter lists all the definitions used, and all properties that may be
 tuned.
 
@@ -1017,8 +1022,8 @@
 @cindex layout interface
 
 The HTML page which we found in the previous section, describes the
-layout object called @internalsref{Fingering}. Such an object is a
-symbol within the score. It has properties, which store numbers (like
+layout object called @internalsref{Fingering}.  Such an object is a
+symbol within the score.  It has properties, which store numbers (like
 thicknesses and directions), but also pointers to related objects.  A
 layout object is also called @emph{grob},
 @cindex grob
@@ -1026,34 +1031,42 @@
 
 
 The page for @code{Fingering} lists the definitions for the
-@code{Fingering} object. For example, the page says
+@code{Fingering} object.  For example, the page says
 
 @quotation
-  @code{padding} (dimension, in staff space):
+@code{padding} (dimension, in staff space):
   
-  @code{0.6}
+@code{0.6}
 @end quotation
 
+@noindent
 which means that the number will be kept at a distance of at least 0.6
 of the note head.
 
 
 Each layout object may have several functions as a notational or
-typographical element. For example, the Fingering object
+typographical element.  For example, the Fingering object
 has the following aspects
 
 @itemize @bullet
-@item Its size is independent of the horizontal spacing, unlike slurs or beams.
+@item
+Its size is independent of the horizontal spacing, unlike slurs or beams.
+
+@item
+It is a piece of text.  Granted, it is usually a very short text.
+
+@item
+That piece of text is typeset with a font, unlike slurs or beams.
 
-@item It is a piece of text. Granted, it is usually a very short text.
+@item
+Horizontally, the center of the symbol should be aligned to the
+center of the notehead.
 
-@item That piece of text is typeset with a font, unlike slurs or beams.
-@item Horizontally, the center of the symbol should be aligned to the
-center of the notehead
-@item Vertically, the symbol is placed next to the note and the staff.
+@item
+Vertically, the symbol is placed next to the note and the staff.
 
-@item The
- vertical position is also coordinated with other super and subscript
+@item
+The vertical position is also coordinated with other super and subscript
 symbols.
 @end itemize
 
@@ -1075,26 +1088,25 @@
 are.
 
 We have been talking of `the' @code{Fingering} object, but actually it
-does not amount to much. The initialization file
+does not amount to much.  The initialization file
 @file{scm/@/define@/-grobs@/.scm} shows the soul of the `object',
 
-@verbatim
-   (Fingering
-     . (
-       (print-function . ,Text_interface::print)
-       (padding . 0.6)
-       (staff-padding . 0.6)
-       (self-alignment-X . 0)
-       (self-alignment-Y . 0)
-       (script-priority . 100)
-       (font-encoding . number)
-       (font-size . -5)
-       (meta . ((interfaces . (finger-interface font-interface
-               text-script-interface text-interface
-               side-position-interface self-alignment-interface
-               item-interface))))
-  ))
-@end verbatim
+@example
+(Fingering
+  . ((print-function . ,Text_interface::print)
+     (padding . 0.6)
+     (staff-padding . 0.6)
+     (self-alignment-X . 0)
+     (self-alignment-Y . 0)
+     (script-priority . 100)
+     (font-encoding . number)
+     (font-size . -5)
+     (meta . ((interfaces . (finger-interface font-interface
+                             text-script-interface text-interface
+                             side-position-interface
+                             self-alignment-interface
+                             item-interface))))))
+@end example
 
 @noindent
 As you can see, the @code{Fingering} object is nothing more than a
@@ -1107,35 +1119,35 @@
 
 Recall that we wanted to change the position of the @b{2} in 
 
-@lilypond[fragment,relative=2,verbatim]
+@lilypond[quote,fragment,relative=2,verbatim]
 c-2
 \stemUp
 f
 @end lilypond
 
 Since the @b{2} is vertically positioned next to its note, we have to
-meddle with the interface associated with this positioning. This is
-done using @code{side-position-interface}. The page for this interface 
+meddle with the interface associated with this positioning.  This is
+done using @code{side-position-interface}.  The page for this interface 
 says
 
 @quotation
 @code{side-position-interface}
 
-  Position a victim object (this one) next to other objects (the
-  support).  The property @code{direction} signifies where to put the
-  victim object relative to the support (left or right, up or down?)
+Position a victim object (this one) next to other objects (the
+support).  The property @code{direction} signifies where to put the
+victim object relative to the support (left or right, up or down?)
 @end quotation
 
 @cindex padding
 @noindent
 below this description, the variable @code{padding} is described as
+
 @quotation
 @table @code
 @item padding
- (dimension, in staff space)
+(dimension, in staff space)
 
- Add this much extra space between objects that are next to each
-  other. 
+Add this much extra space between objects that are next to each other. 
 @end table
 @end quotation
 
@@ -1147,9 +1159,9 @@
 @end example
 
 Inserting this command before the Fingering object is created,
-i.e. before @code{c2}, yields the following result:
+i.e., before @code{c2}, yields the following result:
 
-@lilypond[relative=2,fragment,verbatim]
+@lilypond[quote,relative=2,fragment,verbatim]
 \once \override Voice.Fingering #'padding = #3
 c-2
 \stemUp
@@ -1162,15 +1174,15 @@
 the @internalsref{Fingering_engraver} plug-in says
 
 @quotation
-  Fingering_engraver is part of contexts: @dots{} @b{@internalsref{Voice}}
+Fingering_engraver is part of contexts: @dots{} @b{@internalsref{Voice}}
 @end quotation
 
 @node Difficult tweaks
 @subsection Difficult tweaks
 
-There are two classes of difficult adjustments. First, when there are
+There are two classes of difficult adjustments.  First, when there are
 several of the same objects at one point, and you want to adjust only
-one. For example, if you want to change only one note head in a chord.
+one.  For example, if you want to change only one note head in a chord.
 
 In this case, the @code{\applyoutput} function must be used.  The
 next example defines a Scheme function @code{set-position-font-size}
@@ -1178,13 +1190,12 @@
 on objects that have @internalsref{note-head-interface} and are at the
 right Y-position.
 
-@lilypond[verbatim]
+@lilypond[quote,verbatim]
 #(define ((set-position-font-size pos size) grob origin current)
   (let*
       ((interfaces (ly:grob-property grob 'interfaces))
        (position (ly:grob-property grob 'staff-position)))
-  (if (and
-  
+   (if (and
         ; is this a note head?
         (memq 'note-head-interface interfaces)
 
@@ -1195,33 +1206,33 @@
       (set! (ly:grob-property grob 'font-size) size))))
 
 \relative {
-    c
-    \applyoutput #(set-position-font-size -2 4)
-    <c e g>
+  c
+  \applyoutput #(set-position-font-size -2 4)
+  <c e g>
 }
 @end lilypond
 
 @noindent
-A similar technique can be used for accidentals. In that case, the
+A similar technique can be used for accidentals.  In that case, the
 function should check for @code{accidental-interface}.
 
 Another difficult adjustment is the appearance of spanner objects,
-such as slur and tie. Initially, only one of these objects is created,
-and they can be adjust with the normal mechanism. However, in some
-cases the spanners cross line breaks. If this happens, these objects
+such as slur and tie.  Initially, only one of these objects is created,
+and they can be adjust with the normal mechanism.  However, in some
+cases the spanners cross line breaks.  If this happens, these objects
 are cloned.  A separate object is created for every system that it is
-in. These are clones of the original object and inherit all
+in.  These are clones of the original object and inherit all
 properties, including @code{\override}s.
 
 In other words, an @code{\override} always affects all pieces of a
-broken spanner. To change only one part of a spanner at a line break,
-it is necessary to hook into the formatting process. The
+broken spanner.  To change only one part of a spanner at a line break,
+it is necessary to hook into the formatting process.  The
 @code{after-line-breaking-callback} property contains the Scheme procedure
 that is called after line breaks have been determined, and layout
 objects have been split over different systems.
 
 In the following example, we define a procedure
-@code{my-callback}. This procedure
+@code{my-callback}.  This procedure
  
 @itemize @bullet
 @item
@@ -1238,33 +1249,31 @@
 of broken tie is translated up.
 
 
-@lilypond[verbatim,raggedright]
+@lilypond[quote,verbatim,raggedright]
 #(define (my-callback grob)
   (let* (
+         ; have we been split? 
+         (orig (ly:grob-original grob))
 
-      ; have we been split? 
-      (orig (ly:grob-original grob))
+         ; if yes, get the split pieces (our siblings)
+         (siblings (if (ly:grob? orig)
+                     (ly:spanner-broken-into orig) '() )))
 
-      ; if yes, get the split pieces (our siblings)
-      (siblings (if (ly:grob? orig) (ly:spanner-broken-into orig) '() )))
-
-      
-    (if (and (>= (length siblings) 2)
+   (if (and (>= (length siblings) 2)
              (eq? (car (last-pair siblings)) grob))
-       (ly:grob-set-property! grob 'extra-offset '(-2 . 5))
-       )))
+     (ly:grob-set-property! grob 'extra-offset '(-2 . 5)))))
 
 \relative c'' { 
-    \override Tie  #'after-line-breaking-callback =
-    #my-callback
-    c1 ~ \break c2 ~ c
+  \override Tie #'after-line-breaking-callback =
+  #my-callback
+  c1 ~ \break c2 ~ c
 }
 @end lilypond
 
-
+@noindent
 When applying this trick, the new @code{after-line-breaking-callback}
 should also call the old @code{after-line-breaking-callback}, if there
-is one. For example, if using this with @code{Slur},
+is one.  For example, if using this with @code{Slur},
 @code{Slur::after_line_breaking} should also be called.
 
 @node Fonts
@@ -1284,14 +1293,15 @@
 The easiest method of setting the font size of any context, is by
 setting the @code{fontSize} property.
 
-@lilypond[fragment,relative=1,verbatim]
-  c8
-  \set fontSize = #-4
-  c f
-  \set fontSize = #3
-  g
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\set fontSize = #-4
+c f
+\set fontSize = #3
+g
 @end lilypond
 
+@noindent
 It does not change the size of variable symbols, such as beams or
 slurs.
 
@@ -1299,28 +1309,28 @@
 @code{font-size} property to be set in all layout objects.  The value
 of @code{font-size} is a number indicating the size relative to the
 standard size for the current staff height.  Each step up is an
-increase of approximately 12% of the font size. Six steps is exactly a
-factor two. The Scheme function @code{magstep} converts a
+increase of approximately 12% of the font size.  Six steps is exactly a
+factor two.  The Scheme function @code{magstep} converts a
 @code{font-size} number to a scaling factor.
 
-@lilypond[fragment,relative=1,verbatim]
-  c8
-  \override NoteHead #'font-size = #-4
-  c f
-  \override NoteHead #'font-size = #3
-  g
+@lilypond[quote,fragment,relative=1,verbatim]
+c8
+\override NoteHead #'font-size = #-4
+c f
+\override NoteHead #'font-size = #3
+g
 @end lilypond
 
-LilyPond has fonts in different design sizes. The music fonts for
+LilyPond has fonts in different design sizes.  The music fonts for
 smaller sizes are chubbier, while the text fonts are relatively wider.
 Font size changes are achieved by scaling the design size that is
-closest to the desired size. The standard font size (for
-@code{font-size} equals 0), depends on the standard staff height. For
+closest to the desired size.  The standard font size (for
+@code{font-size} equals 0), depends on the standard staff height.  For
 a 20 pt staff, a 10pt font is selected.
 
 The @code{font-size} mechanism does not work for fonts selected
-through @code{font-name}. These may be scaled with
-@code{font-magnification}. The @code{font-size} property can only be
+through @code{font-name}.  These may be scaled with
+@code{font-magnification}.  The @code{font-size} property can only be
 set on layout objects that use fonts; these are the ones supporting
 @internalsref{font-interface} layout interface.
 
@@ -1358,25 +1368,24 @@
 
 @itemize @bullet
 @item @code{font-encoding}
-is a symbol that sets layout of the glyphs. Choices include @code{ec}
+is a symbol that sets layout of the glyphs.  Choices include @code{ec}
 for @TeX{} EC font encoding, @code{fetaBraces} (for piano staff
 braces), @code{fetaMusic} (the standard music font, including ancient
 glyphs), @code{fetaDynamic} (for dynamic signs) and @code{fetaNumber}
 for the number font.
 
-
 @item @code{font-family}
- is a symbol indicating the general class of the typeface.  Supported are
+is a symbol indicating the general class of the typeface.  Supported are
 @code{roman} (Computer Modern), @code{sans}, and @code{typewriter}.
   
 @item @code{font-shape}
-  is a symbol indicating the shape of the font, there are typically
-several font shapes available for each font family. Choices are
+is a symbol indicating the shape of the font, there are typically
+several font shapes available for each font family.  Choices are
 @code{italic}, @code{caps}, and @code{upright}.
 
 @item @code{font-series}
-is a  symbol indicating the series of the font. There are typically several
-font series for each font family and shape. Choices are @code{medium}
+is a symbol indicating the series of the font.  There are typically several
+font series for each font family and shape.  Choices are @code{medium}
 and @code{bold}. 
 
 @end itemize
@@ -1387,12 +1396,12 @@
  The font used for printing a object can be selected by setting
 @code{font-name}, e.g.
 @example
-  \override Staff.TimeSignature
-      #'font-name = #"cmr17"
+\override Staff.TimeSignature
+    #'font-name = #"cmr17"
 @end example
 
 @noindent
-Any font can be used, as long as it is available to @TeX{}. Possible
+Any font can be used, as long as it is available to @TeX{}.  Possible
 fonts include foreign fonts or fonts that do not belong to the
 Computer Modern font family.  The size of fonts selected in this way
 can be changed with the @code{font-magnification} property.  For
@@ -1420,14 +1429,14 @@
 @cindex typeset text
 
 The internal mechanism to typeset texts is accessed with the keyword
-@code{\markup}. Within markup mode, you can enter texts similar to
-lyrics. They are simply entered, while commands use the backslash @code{\}.
+@code{\markup}.  Within markup mode, you can enter texts similar to
+lyrics.  They are simply entered, while commands use the backslash @code{\}.
 @cindex markup
 
-@lilypond[verbatim,fragment,relative=1]
- c1^\markup { hello }
- c1_\markup { hi there }
- c1^\markup { hi \bold there, is \italic anyone home? }
+@lilypond[quote,verbatim,fragment,relative=1]
+c1^\markup { hello }
+c1_\markup { hi there }
+c1^\markup { hi \bold there, is \italic anyone home? }
 @end lilypond
 
 @cindex font switching
@@ -1437,39 +1446,39 @@
 word only; enclose a set of texts with braces to apply a command
 to more words:
 @example
-  \markup @{ \bold @{ hi there @} @}
+\markup @{ \bold @{ hi there @} @}
 @end example
 
 @noindent
 For clarity, you can also do this for single arguments, e.g.
 
-@verbatim
-  \markup { is \italic { anyone } home }
-@end verbatim
+@example
+\markup @{ is \italic @{ anyone @} home @}
+@end example
 
 @cindex font size, texts
 
 
 In markup mode you can compose expressions, similar to mathematical
 expressions, XML documents, and music expressions.  The braces group
-notes into horizontal lines. Other types of lists also exist: you can
+notes into horizontal lines.  Other types of lists also exist: you can
 stack expressions grouped with @code{<} and @code{>} vertically with
-the command @code{\column}. Similarly, @code{\center-align} aligns
+the command @code{\column}.  Similarly, @code{\center-align} aligns
 texts by their center lines:
 
-@lilypond[verbatim,fragment,relative=1]
- c1^\markup { \column < a bbbb c > }
- c1^\markup { \center-align < a bbbb c > }
- c1^\markup { \line < a b c > }
+@lilypond[quote,verbatim,fragment,relative=1]
+c1^\markup { \column < a bbbb c > }
+c1^\markup { \center-align < a bbbb c > }
+c1^\markup { \line < a b c > }
 @end lilypond
 
 
 Markups can be stored in variables, and these variables
 may be attached to notes, like
-@verbatim
-allegro = \markup { \bold \large { Allegro } }
- { a^\allegro b c d }
-@end verbatim
+@example
+allegro = \markup @{ \bold \large @{ Allegro @} @}
+ @{ a^\allegro b c d @}
+@end example
 
 
 Some objects have alignment procedures of their own, which cancel out
@@ -1480,10 +1489,10 @@
 
 Similarly, for moving whole texts over notes with
 @code{\raise}, use the following trick:
-@lilypond[verbatim]
+@lilypond[quote,verbatim]
 {
   c'^\markup { \raise #0.5 not-raised }
-  c'^\markup {  "" \raise #0.5 raised }
+  c'^\markup { "" \raise #0.5 raised }
 }
 @end lilypond
 
@@ -1497,7 +1506,7 @@
 
 @seealso
 
-Init files:  @file{scm/@/new@/-markup@/.scm}.
+Init files: @file{scm/@/new@/-markup@/.scm}.
 
 
 @refbugs
@@ -1522,45 +1531,46 @@
 file can be set with @code{\encoding}.
 
 @example
-  \encoding "latin1"
+\encoding "latin1"
 @end example
 
-This command may be placed anywhere in the input file. The current
+This command may be placed anywhere in the input file.  The current
 encoding is passed as an extra argument to @code{\markup} commands,
 and is passed similarly to lyric syllables.
 
 If no @code{\encoding} has been specified, then the encoding is taken
 from the @code{\layout} block (or @code{\paper}, if @code{\layout}
-does not specify encoding). The variable @code{inputencoding} may be
-set to a string or symbol specifying  the encoding, e.g.
+does not specify encoding).  The variable @code{inputencoding} may be
+set to a string or symbol specifying the encoding, e.g.
 
-@verbatim
-  \layout {
-    inputencoding = "latin1"
-  } 
-@end verbatim
+@example
+\layout @{
+  inputencoding = "latin1"
+@} 
+@end example
 
-Normal strings, are unaffected by @code{\encoding}. This means that
-the following will usually not produce ba@ss{}tuba in the title.
+Normal strings, are unaffected by @code{\encoding}.  This means that
+the following will usually not produce `Baßtuba' in the title.
 
-@verbatim
-  \header {
-    title = "Grazing cow"
-    instrument = "Baßtuba"
-  }
-@end verbatim
+@example
+\header @{
+  title = "Grazing cow"
+  instrument = "Baßtuba"
+@}
+@end example
 
+@noindent
 Rather, you should say
-@verbatim
-    instrument = \markup { Baßtuba }
-@end verbatim
+@example
+instrument = \markup @{ Baßtuba @}
+@end example
 
 @noindent
 or set @code{inputencoding} in the @code{\paper} block. 
 
-There is a special encoding, called @code{TeX}. This encoding does not
-reencode text for the font used. Rather, it tries to guess the width
-of @TeX{} commands, such as @code{\"}. Strings encoded with @code{TeX}
+There is a special encoding, called @code{TeX}.  This encoding does not
+reencode text for the font used.  Rather, it tries to guess the width
+of @TeX{} commands, such as @code{\"}.  Strings encoded with @code{TeX}
 are passed to the output back-end verbatim.
 
 @cindex encoding
@@ -1573,12 +1583,12 @@
 @subsection Nested scores
 
 It is possible to nest music inside markups, by adding a @code{\score}
-block to markup expression. Such a score must contain a @code{\layout}
+block to markup expression.  Such a score must contain a @code{\layout}
 block.
 
-@lilypond[verbatim,raggedright]
+@lilypond[quote,verbatim,raggedright]
 \relative {
-  c4  d^\markup {
+  c4 d^\markup {
     \score {
       \relative { c4 d e f }
       \layout { }
@@ -1590,7 +1600,7 @@
  
 
 
-@node  Overview of text markup commands
+@node Overview of text markup commands
 @subsection Overview of text markup commands
 
 The following commands can all be used inside @code{\markup @{ @}}.
@@ -1602,13 +1612,13 @@
 @section Global layout
 
 The global layout determined by three factors: the page layout, the
-line breaks, and the spacing. These all influence each other. The
+line breaks, and the spacing.  These all influence each other.  The
 choice of spacing determines how densely each system of music is set,
 which influences where line breaks are chosen, and thus ultimately how
 many pages a piece of music takes.
 
 Globally spoken, this procedure happens in three steps: first,
-flexible distances (``springs'') are chosen, based on durations. All
+flexible distances (``springs'') are chosen, based on durations.  All
 possible line breaking combination are tried, and the one with the
 best results --- a layout that has uniform density and requires as
 little stretching or cramping as possible --- is chosen.
@@ -1641,12 +1651,13 @@
 @cindex staff size, setting
 @cindex @code{layout} file
 
-The Feta font provides musical symbols at eight  different
-sizes. Each font is tuned for a different staff size: at a smaller size
+The Feta font provides musical symbols at eight different
+sizes.  Each font is tuned for a different staff size: at a smaller size
 the font becomes heavier, to match the relatively heavier staff lines.
 The recommended font sizes are listed in the following table:
 
-@multitable @columnfractions  .25 .25 .25 .25
+@quotation
+@multitable @columnfractions .15 .2 .22 .2
 
 @item @b{font name}
 @tab @b{staff height (pt)}
@@ -1692,20 +1703,22 @@
 @tab 25.2 
 @tab 8.9
 @tab
-@c modern rental material  ?
+@c modern rental material?
 
 @end multitable
+@end quotation
 
-These fonts are available in any sizes. The context property
+These fonts are available in any sizes.  The context property
 @code{fontSize} and the layout property @code{staff-space} (in
 @internalsref{StaffSymbol}) can be used to tune size for individual
-staves. The size of individual staves are relative to the global size,
-which can be set   in the following manner:
+staves.  The size of individual staves are relative to the global size,
+which can be set in the following manner:
 
 @example
-  #(set-global-staff-size 14)
+#(set-global-staff-size 14)
 @end example
 
+@noindent
 This sets the global default size to 14pt staff height, and scales all
 fonts accordingly.
 
@@ -1720,7 +1733,7 @@
 @subsection Vertical spacing of piano staves
 
 The distance between staves of a @internalsref{PianoStaff} cannot be
-computed during formatting. Rather, to make cross-staff beaming work
+computed during formatting.  Rather, to make cross-staff beaming work
 correctly, that distance has to be fixed beforehand.
  
 The distance of staves in a @code{PianoStaff} is set with the
@@ -1729,18 +1742,20 @@
 @internalsref{PianoStaff}.
 
 It can be adjusted as follows
-@verbatim
-\new PianoStaff \with {
-   \override VerticalAlignment #'forced-distance = #7
-} {
+@example
+\new PianoStaff \with @{
+  \override VerticalAlignment #'forced-distance = #7
+@} @{
   ...
-}
-@end verbatim
+@}
+@end example
+
+@noindent
 This would bring the staves together at a distance of 7 staff spaces,
 measured from the center line of each staff.
 
 The difference is demonstrated in the following example,
-@lilypond[verbatim]
+@lilypond[quote,verbatim]
 \relative <<
   \new PianoStaff \with {
     \override VerticalAlignment #'forced-distance = #7
@@ -1771,18 +1786,21 @@
 @cindex staves per page
 @cindex space between staves
 
-The height of each system is determined automatically. To prevent
+The height of each system is determined automatically.  To prevent
 systems from bumping into each other, some minimum distances are set.
 By changing these, you can put staves closer together, and thus put
 more systems onto one page.
 
-Normally staves are stacked vertically. To make staves maintain a
-distance, their vertical size is padded. This is done with the
-property @code{minimumVerticalExtent}. It takes a pair of numbers, so
+Normally staves are stacked vertically.  To make staves maintain a
+distance, their vertical size is padded.  This is done with the
+property @code{minimumVerticalExtent}.  It takes a pair of numbers, so
 if you want to make it smaller from its default, then you could set
+
 @example
-  \set Staff.minimumVerticalExtent = #'(-4 . 4)
+\set Staff.minimumVerticalExtent = #'(-4 . 4)
 @end example
+
+@noindent
 This sets the vertical size of the current staff to 4 staff spaces on
 either side of the center staff line.  The argument of
 @code{minimumVerticalExtent} is interpreted as an interval, where the
@@ -1800,7 +1818,7 @@
 
 @code{minimumVerticalExtent} is syntactic sugar for setting
 @code{minimum-Y-extent} of the @internalsref{VerticalAxisGroup} of the
-current context. It can only be changed score wide.
+current context.  It can only be changed score wide.
 
 
 
@@ -1808,7 +1826,7 @@
 @subsection Horizontal Spacing
 
 The spacing engine translates differences in durations into
-stretchable distances (``springs'') of differring lengths. Longer
+stretchable distances (``springs'') of differring lengths.  Longer
 durations get more space, shorter durations get less.  The shortest
 durations get a fixed amount of space (which is controlled by
 @code{shortest-duration-space} in the @internalsref{SpacingSpanner} object). 
@@ -1819,7 +1837,8 @@
 For example, the following piece contains lots of half, quarter, and
 8th notes, the eighth note is followed by 1 note head width (NHW). 
 The quarter note is followed by 2 NHW, the half by 3 NHW, etc.
-@lilypond[fragment,verbatim,relative=1]
+
+@lilypond[quote,fragment,verbatim,relative=1]
 c2 c4. c8 c4. c8 c4. c8 c8
 c8 c4 c4 c4
 @end lilypond
@@ -1828,28 +1847,28 @@
 approximately the width of a note head, and
 @code{shortest-duration-space} is set to 2.0, meaning that the
 shortest note gets 2.4 staff space (2.0 times the
-@code{spacing-increment}) of horizontal space. This space is counted
+@code{spacing-increment}) of horizontal space.  This space is counted
 from the left edge of the symbol, so the shortest notes are generally
 followed by one NHW of space.
 
 If one would follow the above procedure exactly, then adding a single
 32th note to a score that uses 8th and 16th notes, would widen up the
-entire score a lot. The shortest note is no longer a 16th, but a 32nd,
-thus adding 1 NHW to every note. To prevent this, the shortest
+entire score a lot.  The shortest note is no longer a 16th, but a 32nd,
+thus adding 1 NHW to every note.  To prevent this, the shortest
 duration for spacing is not the shortest note in the score, but rather
 the one which occurs most frequently.
 
 
 The most common shortest duration is determined as follows: in every
-measure, the shortest duration is determined. The most common short
+measure, the shortest duration is determined.  The most common short
 duration, is taken as the basis for the spacing, with the stipulation
 that this shortest duration should always be equal to or shorter than
-1/8th note. The shortest duration is printed when you run
+1/8th note.  The shortest duration is printed when you run
 @code{lilypond} with the @code{--verbose} option.
 
-These durations may also be customized. If you set the
+These durations may also be customized.  If you set the
 @code{common-shortest-duration} in @internalsref{SpacingSpanner}, then
-this sets the base duration for spacing. The maximum duration for this
+this sets the base duration for spacing.  The maximum duration for this
 base (normally 1/8th), is set through @code{base-shortest-duration}.
 
 @cindex @code{common-shortest-duration}
@@ -1862,29 +1881,29 @@
 the common shortest note.  So if we were to add only a few 16th notes
 to the example above, they would be followed by half a NHW:
 
-@lilypond[fragment,verbatim,relative=2]
- c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
+@lilypond[quote,fragment,verbatim,relative=2]
+c2 c4. c8 c4. c16[ c] c4. c8 c8 c8 c4 c4 c4
 @end lilypond
 
 
 In the introduction (see @ref{Engraving}), it was explained that stem
-directions influence spacing. This is controlled with the
+directions influence spacing.  This is controlled with the
 @code{stem-spacing-correction} property in the
-@internalsref{NoteSpacing}, object. These are generated for every
-@internalsref{Voice} context. The @code{StaffSpacing} object
+@internalsref{NoteSpacing}, object.  These are generated for every
+@internalsref{Voice} context.  The @code{StaffSpacing} object
 (generated at @internalsref{Staff} context) contains the same property
-for controlling the stem/bar line spacing. The following example shows
+for controlling the stem/bar line spacing.  The following example shows
 these corrections, once with default settings, and once with
 exaggerated corrections:
 
-@lilypond[raggedright]
+@lilypond[quote,raggedright]
 {
-      c'4 e''4 e'4 b'4 |
-      b'4 e''4 b'4 e''4|
-      \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
-      \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
-      c'4 e''4 e'4 b'4 |
-      b'4 e''4 b'4 e''4|      
+  c'4 e''4 e'4 b'4 |
+  b'4 e''4 b'4 e''4|
+  \override Staff.NoteSpacing #'stem-spacing-correction = #1.5
+  \override Staff.StaffSpacing #'stem-spacing-correction = #1.5
+  c'4 e''4 e'4 b'4 |
+  b'4 e''4 b'4 e''4|      
 }
 @end lilypond
 
@@ -1897,7 +1916,7 @@
 
 @refbugs
 
-Spacing is determined on a score wide basis. If you have a score that
+Spacing is determined on a score wide basis.  If you have a score that
 changes its character (measured in durations) halfway during the
 score, the part containing the longer durations will be spaced too
 widely.
@@ -1951,31 +1970,31 @@
 @cindex line breaks
 @cindex breaking lines
 
-Line breaks are normally computed automatically. They are chosen such
+Line breaks are normally computed automatically.  They are chosen such
 that lines look neither cramped nor loose, and that consecutive lines
 have similar density.
 
 Occasionally you might want to override the automatic breaks; you can
-do this by  specifying @code{\break}. This will force a line break at
+do this by specifying @code{\break}.  This will force a line break at
 this point.  Line breaks can only occur at places where there are bar
 lines.  If you want to have a line break where there is no bar line,
 you can force an invisible bar line by entering @code{\bar
-""}. Similarly, @code{\noBreak} forbids a line break at a 
+""}.  Similarly, @code{\noBreak} forbids a line break at a 
 point.
 
 
 @cindex regular line breaks
 @cindex four bar music. 
 
-For line breaks at regular intervals  use @code{\break} separated by
+For line breaks at regular intervals use @code{\break} separated by
 skips and repeated with @code{\repeat}:
 @example
-<<  \repeat unfold 7 @{
+<< \repeat unfold 7 @{
          s1 \noBreak s1 \noBreak
-         s1 \noBreak s1 \break  @}
+         s1 \noBreak s1 \break @}
    @emph{the real music}
 >> 
-@end  example
+@end example
 
 @noindent
 This makes the following 28 measures (assuming 4/4 time) be broken every
@@ -2001,14 +2020,14 @@
 @cindex composer
 @cindex Engraved by LilyPond
 
-A document may contains multiple pieces of music. Examples of these
+A document may contains multiple pieces of music.  Examples of these
 are an etude book, or an orchestral part with multiple movements.
 Each movement is entered with a @code{\score} block,
 
 @example
-  \score @{
-     @var{..music..}
-  @}
+\score @{
+  @var{..music..}
+@}
 @end example
 
 The movements are combined together to  
@@ -2017,10 +2036,10 @@
 @example
 \book @{
   \score @{
-     @var{..}
+    @var{..}
   @}
   \score @{
-     @var{..}
+    @var{..}
   @}
 @}
 @end example
@@ -2062,32 +2081,42 @@
 The header block for a book supports the following 
 @table @code
 @item title
-    The title of the music. Centered on top of the first page.
+The title of the music.  Centered on top of the first page.
+
 @item subtitle
-    Subtitle, centered below the title.
+Subtitle, centered below the title.
+
 @item subsubtitle
-    Subsubtitle, centered below the subtitle.
+Subsubtitle, centered below the subtitle.
+
 @item poet
-    Name of the poet, left flushed below the subtitle.
+Name of the poet, left flushed below the subtitle.
+
 @item composer
-    Name of the composer, right flushed below the subtitle.
+Name of the composer, right flushed below the subtitle.
+
 @item meter
-    Meter string, left flushed below the poet.
+Meter string, left flushed below the poet.
+
 @item opus
-    Name of the opus, right flushed below the composer.
+Name of the opus, right flushed below the composer.
+
 @item arranger
-    Name of the arranger, right flushed below the opus.
+Name of the arranger, right flushed below the opus.
+
 @item instrument
-    Name of the instrument, centered below the arranger.
+Name of the instrument, centered below the arranger.
+
 @item dedication            
-    To whom the piece is dedicated.
+To whom the piece is dedicated.
+
 @item piece
-    Name of the piece, left flushed below the instrument.
+Name of the piece, left flushed below the instrument.
 @end table
 
 This is a demonstration of the fields available, 
 
-@lilypond[verbatim,linewidth=11.0\cm]
+@lilypond[quote,verbatim,linewidth=11.0\cm]
 \paper {
   linewidth = 11.0\cm
   vsize = 10.0\cm
@@ -2127,17 +2156,17 @@
 Different fonts may be selected for each element, by using a
 @code{\markup}, e.g.
 
-@verbatim
-  \header {
-    title = \markup { \italic { The italic title } }
-  }
-@end verbatim
+@example
+\header @{
+  title = \markup @{ \italic @{ The italic title @} @}
+@}
+@end example
 
 A more advanced option is to change the Scheme functions
 @code{make-book-title} and @code{make-score-title} functions, defined
-in the @code{\paper} of the @code{\book} block. These functions
+in the @code{\paper} of the @code{\book} block.  These functions
 create a block of titling, given the information in the
-@code{\header}. The init file @file{ly/@/titling@/.scm} shows how the
+@code{\header}.  The init file @file{ly/@/titling@/.scm} shows how the
 default format is created, and it may be used as a template for
 different styles.
 
@@ -2155,9 +2184,9 @@
 @subsection Page breaking
 
 The default page breaking may be overriden by inserting
-@code{\pageBreak} or @code{\noPageBreak} commands. These commands are
-analogous to @code{\break} and @code{\noBreak}. They should be
-inserted with a bar line. These commands force and forbid a page-break
+@code{\pageBreak} or @code{\noPageBreak} commands.  These commands are
+analogous to @code{\break} and @code{\noBreak}.  They should be
+inserted with a bar line.  These commands force and forbid a page-break
 from happening.  Of course, the @code{\pageBreak} command also forces
 a line break.
 
@@ -2168,7 +2197,7 @@
 
 @cindex @code{\pageBreak}
 @code{\pageBreak}
-@cindex  @code{\noPageBreak} 
+@cindex @code{\noPageBreak} 
 @code{\noPageBreak} 
 
 @node Paper size
@@ -2180,25 +2209,16 @@
 
 To change the paper size, there are two equal commands,
 @example
-  #(set-default-paper-size "a4")
-  \paper@{
-    #(set-paper-size "a4")
-  @}
+#(set-default-paper-size "a4")
+\paper @{
+  #(set-paper-size "a4")
+@}
 @end example
 
 The first command sets the size of all pages.  The second command sets the 
size of the pages that the @code{\paper} block applies to -- if the 
@code{\paper} block is at the top of the file, then it will apply to all pages. 
 If the @code{\paper} block is inside a @code{\score}, then the paper size will 
only apply to that score.
 
-The following paper sizes are supported.
-
-@table @code
-@item a6
-@item a5
-@item a4
-@item a3
-@item legal
-@item letter
-@item tabloid
-@end table 
+The following paper sizes are supported: @code{a6}, @code{a5}, @code{a4},
+@code{a3}, @code{legal}, @code{letter}, @code{tabloid}.
 
 @cindex orientation
 @cindex landscape
@@ -2223,46 +2243,57 @@
 footers to each page.
 
 The default layout responds to the following settings in the
-@code{\paper} block
+@code{\paper} block.
 
 @cindex \paper
 
+@quotation
 @table @code
 @item firstpagenumber
- The value of the page number of the first page. Default is 1.
+The value of the page number of the first page.  Default is@tie{}1.
+
 @item printfirstpagenumber
- If set to true will print the page number in the first page. Default is
- false.
+If set to true will print the page number in the first page.  Default is
+false.
+
 @item hsize
- The width of the page
+The width of the page.
+
 @item vsize
- The height of the page
+The height of the page.
+
 @item topmargin
- Margin between header and top of the page
+Margin between header and top of the page.
+
 @item bottommargin
- Margin between footer and bottom of the page
+Margin between footer and bottom of the page.
+
 @item leftmargin
- Margin between the left side of the page and the beginning  of the music
+Margin between the left side of the page and the beginning of the music.
+
 @item linewidth
- The length of the systems
+The length of the systems.
+
 @item headsep
- Distance between top-most music system and the page header
+Distance between top-most music system and the page header.
+
 @item footsep
- Distance between bottom-most music system and the page footer
+Distance between bottom-most music system and the page footer.
+
 @item raggedbottom
- If set to true, systems will not be spread across the page.
+If set to true, systems will not be spread across the page.
 
- This should be set false for pieces that have only two or three
+This should be set false for pieces that have only two or three
 systems per page, for example orchestral scores.
  
 @item raggedlastbottom
- If set to false, systems will be spread to fill the last page.
+If set to false, systems will be spread to fill the last page.
 
- Pieces that amply fill two pages or more should have this set to
+Pieces that amply fill two pages or more should have this set to
 true.
 
 @item betweensystemspace
-  This dimensions determines the distance between systems. It is the
+This dimensions determines the distance between systems.  It is the
 ideal distance between the center of the bottom staff of one system,
 and the center of the top staff of the next system.
 
@@ -2278,34 +2309,39 @@
 farther apart.
 
 @item aftertitlespace
-Amount of space between title and the first system
+Amount of space between title and the first system.
+
 @item beforetitlespace 
-Amount of space between last system of the previous piece and  the
-title of the next
+Amount of space between last system of the previous piece and the
+title of the next.
+
 @item betweentitlespace
-Amount of space between consecutive titles (eg. the title   of the
+Amount of space between consecutive titles (e.g., the title of the
 book and the title of piece).
 
 @end table
+@end quotation
+
+Example:
 
 @example
-        \paper@{
-           hsize = 2\cm
-           topmargin = 3\cm
-           bottommargin = 3\cm
-           raggedlastbottom = ##t
-        @}
+\paper@{
+  hsize = 2\cm
+  topmargin = 3\cm
+  bottommargin = 3\cm
+  raggedlastbottom = ##t
+@}
 @end example
 
-You can also define these values in scheme. In that case @code{mm},
+You can also define these values in scheme.  In that case @code{mm},
 @code{in}, @code{pt} and @code{cm} are variables defined in
-@file{paper-defaults.ly} with values in millimeters. That's why the
+@file{paper-defaults.ly} with values in millimeters.  That's why the
 value has to be multiplied in the example above.
 
 @example
-        \paper@{
-        #(define bottommargin (* 2 cm)) 
-        @}
+\paper @{
+  #(define bottommargin (* 2 cm)) 
+@}
 @end example
 
 @cindex copyright
@@ -2313,25 +2349,27 @@
 
 The default footer is empty, except for the first page, where it the
 @code{copyright} field from @code{\header} is inserted, and the last
-page, where @code{tagline} from @code{\header} is added. The default
+page, where @code{tagline} from @code{\header} is added.  The default
 tagline is ``Engraved by LilyPond (@var{version})''.@footnote{Nicely
 printed parts are good PR for us, so please leave the tagline if you
 can.}
 
 The header and footer are created by the functions @code{make-footer}
-and @code{make-header}, defined in @code{\paper}. The default
+and @code{make-header}, defined in @code{\paper}.  The default
 implementations are in @file{scm/@/page@/-layout@/.scm}.
 
 The following settings influence the header and footer layout.
 
+@quotation
 @table @code
 @item printpagenumber
   this boolean controls whether a pagenumber is printed. 
 @end table
+@end quotation
 
 The page layout itself is done by two functions in the
 @code{\paper}, @code{page-music-height} and
-@code{page-make-stencil}. The former tells the line-breaking algorithm
+@code{page-make-stencil}.  The former tells the line-breaking algorithm
 how much space can be spent on a page, the latter creates the actual
 page given the system to put on it.
 
@@ -2343,7 +2381,7 @@
 @refbugs
 
 The option rightmargin is defined but doesn't set the right margin
-yet. The value for the right margin has to be defined adjusting the
+yet.  The value for the right margin has to be defined adjusting the
 values of the leftmargin and linewidth.
 
 The default page header puts the page number and the @code{instrument}
@@ -2355,16 +2393,16 @@
 @section File structure
 
 The bigger part of this manual is concerned with entering various
-forms of music in LilyPond. However, many music expressions are not
+forms of music in LilyPond.  However, many music expressions are not
 valid input on their own, for example, a @code{.ly} file containing
 only a note
 @example
-  c'4
+c'4
 @end example
 
 @noindent
-will result in a parsing error. Instead, music should be inside other
-expressions, which may be put in a file by themselves. Such
+will result in a parsing error.  Instead, music should be inside other
+expressions, which may be put in a file by themselves.  Such
 expressions are called toplevel expressions.  This section enumerates
 them all.
 
@@ -2372,18 +2410,22 @@
 toplevel expressions is one of the following
 
 @itemize @bullet
-@item An output definition, such as @code{\paper}, @code{\midi}
-and @code{\layout}. Such a definition at toplevel changes the default
+@item
+An output definition, such as @code{\paper}, @code{\midi}
+and @code{\layout}.  Such a definition at toplevel changes the default
 settings for the block entered.
 
-@item An @code{\header} block. This sets the global header block. This
+@item
+A @code{\header} block.  This sets the global header block.  This
 is the block containing the definitions for book-wide settings, like
 composer, title, etc. 
 
-@item An @code{\addquote} statement. See @ref{Quoting other voices}
+@item
+An @code{\addquote} statement.  See @ref{Quoting other voices}
 for more information.
 
-@item A @code{\score} block. This score will be collected with other
+@item
+A @code{\score} block.  This score will be collected with other
 toplevel scores, and combined as a single @code{\book}.
 
 This behavior can be changed by setting the variable
@@ -2392,7 +2434,7 @@
 
 @item
 A @code{\book} block logically combines multiple movements
-(ie. multiple @code{\score} blocks) into one document. A number of
+(i.e., multiple @code{\score} blocks) into one document.  A number of
 @code{\scores} creates a single output file, where all movement are
 concatenated..
 
@@ -2400,10 +2442,9 @@
 @code{toplevel-book-handler} at toplevel.  The default handler is
 defined in the init file @file{scm/@/lily@/.scm}.
 
-
 @item A compound music expression, such as
 @example
-  @{ c'4 d' e'2 @}
+@{ c'4 d' e'2 @}
 @end example
 
 This will add the piece in a @code{\score}, and formats it into a
@@ -2411,25 +2452,26 @@
 expressions.
  
 This behavior can be changed by setting the variable
-@code{toplevel-music-handler} at toplevel. The default handler is
+@code{toplevel-music-handler} at toplevel.  The default handler is
 defined in the init file @file{scm/@/lily@/.scm}.
  
 @end itemize
 
 The following example shows three things which may be entered at
 toplevel
-@verbatim
-   \layout  {
-     % movements are non-justified by default    
-     raggedright = ##t
-   }
-
-   \header {
-      title = "Do-re-mi"
-   }
+
+@example
+\layout @{
+  % movements are non-justified by default    
+  raggedright = ##t
+@}
+
+\header @{
+   title = "Do-re-mi"
+@}
    
-   { c'4 d' e2 }
-@end verbatim
+@{ c'4 d' e2 @}
+@end example
 
 
 At any point in a file, any of the following lexical instructions can
Index: lilypond/Documentation/user/cheatsheet.itely
diff -u lilypond/Documentation/user/cheatsheet.itely:1.35.2.1 
lilypond/Documentation/user/cheatsheet.itely:1.35.2.2
--- lilypond/Documentation/user/cheatsheet.itely:1.35.2.1       Sun Nov  7 
23:16:07 2004
+++ lilypond/Documentation/user/cheatsheet.itely        Mon Nov  8 19:57:55 2004
@@ -6,7 +6,7 @@
 @appendix Cheat sheet
 
 
-@multitable @columnfractions  .35 .3 .35
+@multitable @columnfractions .35 .3 .35
 
 @item @b{Syntax}
 @tab @b{Description}
@@ -57,7 +57,7 @@
 @tab time signature
 @tab
 @lilypond[fragment]
-\override Staff.Clef   #'transparent = ##t 
+\override Staff.Clef #'transparent = ##t 
 \time 3/4
 s4_" "
 \time 4/4
@@ -128,7 +128,7 @@
 \set Score.timing = ##f
 \override Staff.TimeSignature #'break-visibility = #all-invisible
 \set Staff.autoBeaming = ##f
-c\(  c( d) e\)
+c\( c( d) e\)
 @end lilypond
 
 
Index: lilypond/Documentation/user/converters.itely
diff -u lilypond/Documentation/user/converters.itely:1.44.2.1 
lilypond/Documentation/user/converters.itely:1.44.2.2
--- lilypond/Documentation/user/converters.itely:1.44.2.1       Sun Nov  7 
23:16:07 2004
+++ lilypond/Documentation/user/converters.itely        Mon Nov  8 19:57:55 2004
@@ -6,7 +6,7 @@
 Music can be entered also by importing it from other formats.  This
 chapter documents the tools included in the distribution to do so.
 There are other tools that produce LilyPond input, for example GUI
-sequencers and XML converters. Refer to the
+sequencers and XML converters.  Refer to the
 @uref{http://@/lilypond@/.org,website} for more details.
 
 
@@ -22,12 +22,12 @@
 
 
 @node Invoking convert-ly
-@section Invoking convert-ly
+@section Invoking @command{convert-ly}
 
 The syntax is regularly changed to simplify it or improve it in
-different ways. A side effect of this, is that LilyPond often is not
-compatible with older files. To remedy this, the program convert-ly
-can be used to deal with most of the syntax changes.
+different ways.  A side effect of this, is that LilyPond often is not
+compatible with older files.  To remedy this, the program
+@command{convert-ly} can be used to deal with most of the syntax changes.
 
 It uses @code{\version} statements in the file to detect the old
 version number.  For example, to upgrade all LilyPond files in the
@@ -35,12 +35,13 @@
 command line.
 
 @example
-        convert-ly -e `find . -name '*.ly' -print`
+convert-ly -e `find . -name '*.ly' -print`
 @end example
 
-The program is invoked as follows:
+In general, the program is invoked as follows:
+
 @example
-        convert-ly [@var{option}]@dots{} @var{file}@dots{}
+convert-ly [@var{option}]@dots{} @var{file}@dots{}
 @end example
 
 
@@ -48,38 +49,46 @@
 
 @table @code
 @item -e,--edit
-    Do an inline edit of the input file. Overrides @code{--output}.
+Do an inline edit of the input file.  Overrides @code{--output}.
+
 @item -f,--from=@var{from-patchlevel}
-    Set the level to convert from. If this is not set, convert-ly will
-    guess this, on the basis of @code{\version} strings in the file.
+Set the level to convert from.  If this is not set, @command{convert-ly}
+will guess this, on the basis of @code{\version} strings in the file.
+
 @item -o,--output=@var{file}
-    Set the output file to write.  
+Set the output file to write.  
+
 @item -n,--no-version
-    Normally, convert-ly adds a @code{\version} indicator 
-    to the output. Specifying this option suppresses this.  
+Normally, @command{convert-ly} adds a @code{\version} indicator 
+to the output. Specifying this option suppresses this.  
+
 @item -s, --show-rules
-    Show all known conversions and exit.
+Show all known conversions and exit.
+
 @item --to=@var{to-patchlevel}
-    Set the goal version of the conversion. It defaults to the latest
-    available version.
+Set the goal version of the conversion.  It defaults to the latest
+available version.
+
 @item -h, --help
-    Print usage help.
+Print usage help.
 @end table
 
-convert-ly always converts up to the last syntax change handled by
-it. This means that the @code{\version} number left in the file is
-usually lower than the version of convert-ly itself.
+@command{convert-ly} always converts up to the last syntax change handled by
+it.  This means that the @code{\version} number left in the file is
+usually lower than the version of @command{convert-ly} itself.
 
 @refbugs
 
-Not all language changes are handled. Only one output option can be specified.
+Not all language changes are handled.  Only one output option can be
+specified.
 
 @node Invoking midi2ly
-@section Invoking midi2ly
+@section Invoking @command{midi2ly}
 
 @cindex MIDI
 
-Midi2ly translates a Type 1 MIDI file to a LilyPond source file.
+@command{midi2ly} translates a Type@tie{}1 MIDI file to a LilyPond source
+file.
 
 MIDI (Music Instrument Digital Interface) is a standard for digital
 instruments: it specifies cabling, a serial protocol and a file
@@ -88,17 +97,17 @@
 useful when importing files from a program that has convertor for a
 direct format.
 
-Midi2ly will convert tracks into @internalsref{Staff} and
+@command{midi2ly} converts tracks into @internalsref{Staff} and
 channels into @internalsref{Voice} contexts.  Relative mode is used
 for pitches, durations are only written when necessary.
 
 It is possible to record a MIDI file using a digital keyboard, and
-then convert it to @file{.ly}. However, human players are not
+then convert it to @file{.ly}.  However, human players are not
 rhythmically exact enough to make a MIDI to LY conversion trivial.
-When invoked with quantizing (@code{-s} and @code{-d} options) midi2ly
-tries to compensate for these timing errors, but is not very good at
-this. It is therefore not recommended to use midi2ly for
-human-generated midi files.
+When invoked with quantizing (@code{-s} and @code{-d} options)
+@command{midi2ly} tries to compensate for these timing errors, but is not
+very good at this.  It is therefore not recommended to use @command{midi2ly}
+for human-generated midi files.
 
 
 It is invoked from the command-line as follows,
@@ -107,46 +116,58 @@
 @end example
 
 
-The following options are supported by midi2ly.
+The following options are supported by @command{midi2ly}.
 
 @table @code
 @item -a, --absolute-pitches
-    Print absolute pitches.
+Print absolute pitches.
+
 @item -d, --duration-quant=@var{DUR}
-    Quantize note durations on @var{DUR}.
+Quantize note durations on @var{DUR}.
+
 @item -e, --explicit-durations
-    Print explicit durations.
+Print explicit durations.
+
 @item -h,--help
-    Show summary of usage.
+Show summary of usage.
+
 @item -k, --key=@var{acc}[:@var{minor}]
-    Set default key.  @var{acc} > 0 sets number of sharps; @var{acc} < 0
-    sets number of flats.  A minor key is indicated by ":1".
+Set default key.  @math{@var{acc} > 0} sets number of sharps;
+@math{@var{acc} < 0} sets number of flats.  A minor key is indicated by
+":1".
+
 @item -o, --output=@var{file}
-    Write output to @var{file}.
+Write output to @var{file}.
+
 @item -s, --start-quant=@var{DUR}
-    Quantize note starts on DUR.
+Quantize note starts on DUR.
+
 @item -t, --allow-tuplet=@var{DUR}*@var{NUM}/@var{DEN}
-    Allow tuplet durations @var{DUR}*@var{NUM}/@var{DEN}.
+Allow tuplet durations @var{DUR}*@var{NUM}/@var{DEN}.
+
 @item -V, --verbose
-    Be verbose.
+Be verbose.
+
 @item -v, --version
-    Print version number.
+Print version number.
+
 @item -w, --warranty
-    Show warranty and copyright.
+Show warranty and copyright.
+
 @item -x, --text-lyrics
-    Treat every text as a lyric.
+Treat every text as a lyric.
 @end table
 
 
 @refbugs
 
-Overlapping notes in an arpeggio will not be correctly rendered. The
+Overlapping notes in an arpeggio will not be correctly rendered.  The
 first note will be read and the others will be ignored.  Set them all
 to a single duration and add phrase markings or pedal indicators.
 
 
 @node Invoking etf2ly
-@section Invoking etf2ly
+@section Invoking @command{etf2ly}
 
 @cindex ETF
 @cindex enigma
@@ -154,21 +175,23 @@
 @cindex Coda Technology
 
 ETF (Enigma Transport Format) is a format used by Coda Music
-Technology's Finale product. etf2ly will convert part of an ETF
+Technology's Finale product.  @command{etf2ly} will convert part of an ETF
 file to a ready-to-use LilyPond file.
 
 It is invoked from the command-line as follows.
+
 @example
-        etf2ly [@var{option}]@dots{} @var{etf-file}
+etf2ly [@var{option}]@dots{} @var{etf-file}
 @end example
 
-The following options are supported by etf2ly:
+The following options are supported by @command{etf2ly}:
+
 @table @code
-@item   -h,--help
+@item -h,--help
 this help
-@item  -o,--output=FILE
+@item -o,--output=FILE
 set output filename to FILE
-@item  -v,--version
+@item -v,--version
 version information
 @end table
 
@@ -176,32 +199,34 @@
 @refbugs
 
 The list of articulation scripts is incomplete.  Empty measures
-confuse etf2ly. Sequences of grace notes are ended improperly.
+confuse @command{etf2ly}.  Sequences of grace notes are ended improperly.
 
 
 @node Invoking abc2ly
-@section Invoking abc2ly
+@section Invoking @code{abc2ly}
 
 @cindex ABC
 
 ABC is a fairly simple ASCII based format.  It is described at the ABC site:
+
 @quotation
 @uref{http://@/www@/.gre@/.ac@/.uk/@/~c.walshaw/@/abc2mtex/@/abc@/.txt}.
 @end quotation
-abc2ly translates from ABC to LilyPond. It is invoked as follows:
+
+@command{abc2ly} translates from ABC to LilyPond.  It is invoked as follows:
 
 @example
-        abc2ly [@var{option}]@dots{} @var{abc-file}
+abc2ly [@var{option}]@dots{} @var{abc-file}
 @end example
 
-The following options are supported by abc2ly:
+The following options are supported by @command{abc2ly}:
 
 @table @code
-@item   -h,--help
+@item -h,--help
 this help
-@item  -o,--output=@var{file}
+@item -o,--output=@var{file}
 set output filename to @var{file}.
-@item  -v,--version
+@item -v,--version
 print version information.
 @end table
 
@@ -209,7 +234,7 @@
 source file.  If you say:
 
 @example
-        %%LY voices \set autoBeaming = ##f
+%%LY voices \set autoBeaming = ##f
 @end example
 
 This will cause the text following the keyword ``voices'' to be inserted 
@@ -218,7 +243,7 @@
 Similarly,
 
 @example
-        %%LY slyrics more words
+%%LY slyrics more words
 @end example
 
 will cause the text following the ``slyrics'' keyword to be inserted
@@ -227,49 +252,50 @@
 
 @refbugs
 
-The ABC standard is not very ``standard''. For extended features
-(e.g. polyphonic music) different conventions exist. 
+The ABC standard is not very ``standard''.  For extended features
+(e.g., polyphonic music) different conventions exist. 
 
 Multiple tunes in one file cannot be converted.
 
-ABC synchronizes words and notes at the beginning of a line; abc2ly does 
-not.
+ABC synchronizes words and notes at the beginning of a line;
+@command{abc2ly} does not.
 
-abc2ly ignores the ABC beaming.
+@command{abc2ly} ignores the ABC beaming.
 
 
 @node Invoking mup2ly
-@section Invoking mup2ly
+@section Invoking @command{mup2ly}
 
 Mup (Music Publisher) is a shareware music notation program by Arkkra
-Enterprises.  Mup2ly will convert part of a Mup file to LilyPond
-format. It is invoked as follows:
+Enterprises.  @command{mup2ly} will convert part of a Mup file to LilyPond
+format.  It is invoked as follows:
 
 @cindex Music Publisher
 @cindex Mup
 @cindex Arkkra
 
 It is invoked from the command-line as follows.
+
 @example
-        mup2ly [@var{option}]@dots{} @var{mup-file}
+mup2ly [@var{option}]@dots{} @var{mup-file}
 @end example
 
-The following options are supported by mup2ly:
+The following options are supported by @command{mup2ly}:
 
 @table @code
-@item   -d,--debug
+@item -d,--debug
 show what constructs are not converted, but skipped.
 @item -D, --define=@var{name}[=@code{exp}]
 define macro @var{name} with opt expansion @code{exp}
-@item   -E,--pre-process
+@item -E,--pre-process
 only run the pre-processor
-@item   -h,--help
+@item -h,--help
 print help
-@item  -o,--output=@var{file}
+@item -o,--output=@var{file}
 write output to @var{file}
-@item  -v,--version
+@item -v,--version
 version information
-@item  -w,--warranty
+@item -w,--warranty
 print warranty and copyright. 
 @end table
 
@@ -284,17 +310,20 @@
 @section Other formats
 
 LilyPond itself does not come with support for other formats, but
-there are also external tools that generate LilyPond files.
+there are some external tools that generate LilyPond files also.
 
 These tools include
-@uref{http://@/denemo@/.sourceforge@/.net/,Denemo}.
 
 @itemize @bullet
-@item @uref{http://@/www@/.nongnu@/.org/@/xml2ly/, xml2ly}, that imports
+@item
+@uref{http://@/denemo@/.sourceforge@/.net/,Denemo}.
+@item
+@uref{http://@/www@/.nongnu@/.org/@/xml2ly/, xml2ly}, that imports
 @uref{http://@/www@/.musicxml@/.com/,MusicXML}
 @item
 
@uref{http://@/rnvs@/.informatik@/.tu@/-chemnitz@/.de/@/~jan/@/noteedit/@/noteedit@/.html,NoteEdit}
 which imports MusicXML
-@item 
@uref{http://@/www@/.all@/-day@/-breakfast@/.com/@/rosegarden/,Rosegarden},
+@item
+@uref{http://@/www@/.all@/-day@/-breakfast@/.com/@/rosegarden/,Rosegarden},
 which imports MIDI
 @end itemize
Index: lilypond/Documentation/user/examples.itely
diff -u lilypond/Documentation/user/examples.itely:1.22.2.1 
lilypond/Documentation/user/examples.itely:1.22.2.2
--- lilypond/Documentation/user/examples.itely:1.22.2.1 Sun Nov  7 23:16:07 2004
+++ lilypond/Documentation/user/examples.itely  Mon Nov  8 19:57:55 2004
@@ -6,7 +6,7 @@
 already set up for you.  Just add notes, run LilyPond, and enjoy
 beautiful printed scores!
 
-@c  bad node name for ancient notation to avoid confict
+@c bad node name for ancient notation to avoid confict
 @menu
 * Suggestions for writing LilyPond files::
 * Single staff::
@@ -47,7 +47,7 @@
 using a few years ago.  @code{convert-ly} requires you to declare
 which version of LilyPond you used.
 
-@item Include checks:  See @ref{Bar check} and @ref{Octave check}.  If you
+@item Include checks: See @ref{Bar check} and @ref{Octave check}.  If you
 include checks every so often, then if you make a mistake, you can pinpoint
 it quicker.  How often is ``every so often''?  It depends on the complexity
 of the music.  For very simple music, perhaps just once or twice.  For
@@ -133,7 +133,7 @@
 
 @lilypond[quote,verbatim,raggedright]
 \version "2.3.22"
-melody =  \relative c' {
+melody = \relative c' {
    \clef treble
    \key c \major
    \time 4/4
@@ -156,7 +156,7 @@
    >>
 
    \layout{ }
-   \midi  { \tempo 4=60}
+   \midi { \tempo 4=60}
 }
 @end lilypond
 
@@ -166,7 +166,7 @@
 
 @lilypond[quote,verbatim,raggedright]
 \version "2.3.22"
-melody =  \relative c' {
+melody = \relative c' {
    \clef treble
    \key c \major
    \time 4/4
@@ -241,7 +241,7 @@
 
 @lilypond[quote,verbatim,raggedright]
 \version "2.3.22"
-melody =  \relative c'' {
+melody = \relative c'' {
    \clef treble
    \key c \major
    \time 4/4
@@ -361,12 +361,12 @@
   a2 c
 }
 
-dynamics =  {
+dynamics = {
   s2\fff\> s4
   s\!\pp
 }
 
-pedal =  {
+pedal = {
   s2\sustainDown s2\sustainUp
 }
 
@@ -562,7 +562,7 @@
 @end lilypond
 
 
-@c  bad node name to avoid node name confict
+@c bad node name to avoid node name confict
 @node Ancient notation templates
 @section Ancient notation templates
 
@@ -614,7 +614,7 @@
 
   \skip 1*5
 
-  % last bar contains a brevis (i.e. spans 2 bars);
+  % last bar contains a brevis (i.e., spans 2 bars);
   % therefore do not draw this particular bar
   \cadenzaOn
   \skip 1*2
@@ -862,7 +862,7 @@
 % ############ Horns ############
 
 % ------ Trumpet ------
-trpt =  \transpose c d \relative c'' {
+trpt = \transpose c d \relative c'' {
   \Key
   c1 c c
 }
@@ -913,7 +913,7 @@
 }
 
 % ------ Trombone ------
-tbone =  \relative c {
+tbone = \relative c {
   \Key
   c1 c c
 }
@@ -932,7 +932,7 @@
 % ############ Rhythm Section #############
 
 % ------ Guitar ------
-gtr =  \relative c'' {
+gtr = \relative c'' {
   \Key
   c1 \sl b4 b b b \nsl c1
 }
@@ -1075,7 +1075,7 @@
 
 This template displays all available headers.  Some of them are only
 used in the Mutopia project; they don't affect the printed output at
-all.  They are used  if you want the piece to be listed with different
+all.  They are used if you want the piece to be listed with different
 information in the Mutopia database than you wish to have printed on the
 music.  For example, Mutopia lists the composer of the famous D major
 violin concerto as TchaikovskyPI, whereas perhaps you wish to print
@@ -1137,14 +1137,14 @@
 and a second one indicating a breath mark.
 
 @lilypond[quote,verbatim,raggedright]
-barOne = { \once \override Staff.BarLine  #'bar-size = #2
+barOne = { \once \override Staff.BarLine #'bar-size = #2
   \bar "|" }
-barTwo = { \once \override Staff.BarLine  #'extra-offset = #'(0 . 2)
-  \once \override Staff.BarLine  #'bar-size = #2
+barTwo = { \once \override Staff.BarLine #'extra-offset = #'(0 . 2)
+  \once \override Staff.BarLine #'bar-size = #2
   \bar "|" }
 chant = \relative c' {
   \set Score.timing = ##f
-  \override Staff.Stem  #'transparent = ##t
+  \override Staff.Stem #'transparent = ##t
 
   f4 a2 \barTwo
   g4 a2 f2 \barOne
@@ -1173,15 +1173,15 @@
 thrd = { \grace { g32[ d' c']   } }
 birl = { \grace { g32[ a g]     } }
 gstd = { \grace { g'32[ d' g]   } }
-fgg =  { \grace { f32[ g'32]    } }
+fgg  = { \grace { f32[ g'32]    } }
 dblb = { \grace { g'32[ b d']   } }
 dblc = { \grace { g'32[ c' d']  } }
 dble = { \grace { g'32[ e' f']  } }
 dblf = { \grace { g'32[ f' g']  } }
 dblg = { \grace { g'32[ f']     } }
 dbla = { \grace { a'32[ g']     } }
-lgg =  { \grace { g32  } }
-lag =  { \grace { a32  } }
+lgg  = { \grace { g32  } }
+lag  = { \grace { a32  } }
 cg   = { \grace { c'32 } }
 eg   = { \grace { e'32 } }
 gg   = { \grace { g'32 } }
@@ -1211,7 +1211,7 @@
   \dblg g'4 a'8 \gg a'4. |
   \thrd d'4.( d'4) \eg a8 |
   \time 9/8
-  \dble e'4 \lag e'8 \gg  e'16[ d'8. e'8] \gg f'4 g'8 |
+  \dble e'4 \lag e'8 \gg e'16[ d'8. e'8] \gg f'4 g'8 |
 
   \break
   \time 6/8
@@ -1221,7 +1221,7 @@
   \thrd d'4.( d'4) f'8 |
 
   \break
-  \dblg g'4 e'8( e'8) \dblf  f'8.[ e'16] |
+  \dblg g'4 e'8( e'8) \dblf f'8.[ e'16] |
   \thrd d'4.( d'4) \cg d'8 |
   \gg c'4 e'8 \thrd d'4.( |
   d'4.) \gdcg d'4.
Index: lilypond/Documentation/user/introduction.itely
diff -u lilypond/Documentation/user/introduction.itely:1.116.2.1 
lilypond/Documentation/user/introduction.itely:1.116.2.2
--- lilypond/Documentation/user/introduction.itely:1.116.2.1    Sun Nov  7 
23:16:07 2004
+++ lilypond/Documentation/user/introduction.itely      Mon Nov  8 19:57:55 2004
@@ -53,7 +53,7 @@
 one.  It is rounded, and its weight harmonizes with the thickness of
 our staff lines, which are also much thicker than Henle's lines.
 
-@multitable @columnfractions  .05 .3 .3 .3 .05
+@multitable @columnfractions .05 .3 .3 .3 .05
 @item @tab
 @ifnotinfo
 @iftex
@@ -268,27 +268,27 @@
 head objects use to produce their symbol is changed during the music
 fragment.
 
-@c  FIXME: this example has errors:
+@c FIXME: this example has errors:
 @c    programming error: Grob `NoteHead' has no interface for property `text'
 @c    Continuing; crossing fingers
 @lilypond[quote,raggedright]
 #(define (mc-squared grob orig current)
   (let ((interfaces (ly:grob-property grob 'interfaces))
-       (pos (ly:grob-property grob 'staff-position)))
+        (pos (ly:grob-property grob 'staff-position)))
     (if (and (memq 'note-head-interface interfaces)
-            (memq pos '(-2 -3 -5)))
-       (begin
-         (ly:grob-set-property! grob 'print-function brew-new-markup-stencil)
-         (ly:grob-set-property! grob 'font-family 'roman)
-         (ly:grob-set-property!
-          grob 'text
-          (make-raise-markup
-           -0.5
-           (case pos
-             ((-5) (make-simple-markup "m"))
-             ((-3) (make-simple-markup "c "))
-             ((-2) (make-smaller-markup (make-bold-markup "2")))
-             (else (make-simple-markup "bla")))))))))
+             (memq pos '(-2 -3 -5)))
+        (begin
+          (ly:grob-set-property! grob 'print-function brew-new-markup-stencil)
+          (ly:grob-set-property! grob 'font-family 'roman)
+          (ly:grob-set-property!
+           grob 'text
+           (make-raise-markup
+            -0.5
+            (case pos
+              ((-5) (make-simple-markup "m"))
+              ((-3) (make-simple-markup "c "))
+              ((-2) (make-smaller-markup (make-bold-markup "2")))
+              (else (make-simple-markup "bla")))))))))
 
 \new Voice \relative c' {
    \stemUp
@@ -484,7 +484,7 @@
 bar, etc., go into a group called `Staff context.'  In the case of
 polyphony, a single Staff context contains more than one Voice context.
 Similarly, more Staff contexts can be put into a single Score
-context. The Score context is the top level notation context.
+context.  The Score context is the top level notation context.
 
 @seealso
 
@@ -556,7 +556,7 @@
 @code{@{@tie{}@dots{}@tie{}@}}
 
 @example
-@{ f4 <<c4 d4 e4>>  @}
+@{ f4 <<c4 d4 e4>> @}
 @end example
 
 @lilypond[quote,relative=1,fragment]
@@ -575,7 +575,7 @@
 @lilypond[quote,fragment,relative=2]
 \new Voice { << g2 \\ { f4 <<c d e>> } >> }
 @end lilypond
-       
+
 Such recursive structures can be specified neatly and formally in a
 context-free grammar.  The parsing code is also generated from this
 grammar.  In other words, the syntax of LilyPond is clearly and
@@ -608,9 +608,9 @@
 
 @lilypond[quote,raggedright]
 <<
-   \chords  { c2 c f2 c }
+   \chords { c2 c f2 c }
    \new Staff \relative c' { \time 2/4 c4 c g'4 g a4 a g2 }
-   \new Lyrics \lyricmode  { twin4 kle twin kle lit tle star2 }
+   \new Lyrics \lyricmode { twin4 kle twin kle lit tle star2 }
 >>
 @end lilypond
 
Index: lilypond/Documentation/user/lilypond-book.itely
diff -u lilypond/Documentation/user/lilypond-book.itely:1.90.2.1 
lilypond/Documentation/user/lilypond-book.itely:1.90.2.2
--- lilypond/Documentation/user/lilypond-book.itely:1.90.2.1    Sun Nov  7 
23:16:07 2004
+++ lilypond/Documentation/user/lilypond-book.itely     Mon Nov  8 19:57:55 2004
@@ -13,30 +13,27 @@
 @end ignore
 
 
-@node  Integrating text and music
+
+@node Integrating text and music
 @chapter Integrating text and music
 
 If you want to add pictures of music to a document, you can simply do
 it the way you would do with other types of pictures.  The pictures
-are created separately, yielding PostScript pictures or PNG images,
+are created separately, yielding PostScript output or PNG images,
 and those are included into a La@TeX{} or HTML document.
 
-@command{lilypond-book} provides a way to automate this process: this
-program extracts snippets of music from your document, runs LilyPond
-on them, and outputs the document with pictures substituted for the
-music.  The line width and font size definitions for the music are
-adjusted to match the layout of your document.
-
-This procedure may be applied to La@TeX{}, @code{html} or Texinfo
-documents.
-
-
+@command{lilypond-book} provides a way to automate this process: This
+program extracts snippets of music from your document, runs
+@command{lilypond} on them, and outputs the document with pictures
+substituted for the music.  The line width and font size definitions for
+the music are adjusted to match the layout of your document.
 
+This procedure may be applied to La@TeX{}, HTML or Texinfo documents.
 
 @menu
 * An example of a musicological document::  
-* Integrating Texinfo and music::  
 * Integrating LaTeX and music::  
+* Integrating Texinfo and music::  
 * Integrating HTML and music::  
 * Music fragment options::      
 * Invoking lilypond-book::
@@ -44,10 +41,8 @@
 @end menu
 
 
-
-
 @node An example of a musicological document
-@section  An example of a musicological document
+@section An example of a musicological document
 
 @cindex musicology
 @cindex La@TeX{}, music in
@@ -57,22 +52,23 @@
 treatises, songbooks or manuals like this.  Such texts can be made by
 hand, simply by importing a PostScript figure into the word processor.
 However, there is an automated procedure to reduce the amount of work
-involved HTML, La@TeX{}, and Texinfo documents.
+involved in HTML, La@TeX{}, and Texinfo documents.
 
 A script called @code{lilypond-book} will extract the music fragments,
 format them, and put back the resulting notation.  Here we show a
-small example for use with La@TeX{}.  The example also contains explanatory 
text, so we will
-not comment on it further
+small example for use with La@TeX{}.  The example also contains
+explanatory text, so we will not comment on it further.
 
+@quotation
 @verbatim
 \documentclass[a4paper]{article}
 \begin{document}
 
-Documents for lilypond-book may freely mix music and text.  For
-example,
+Documents for @command{lilypond-book} may freely mix music and text.
+For example,
 
 \begin{lilypond}
-\relative {
+\relative c' {
   c2 g'2 \times 2/3 { f8 e d } c'2 g4
 }
 \end{lilypond}
@@ -83,24 +79,25 @@
   c'4 f16
 \end{lilypond}
 
-Larger examples can be put in a separate file, and introduced with
+Larger examples can be put into a separate file, and introduced with
 \verb+\lilypondfile+.
 
 \lilypondfile[quote,noindent]{screech-boink.ly}
 
 \end{document}
 @end verbatim
+@end quotation
 
 Under Unix, you can view the results as follows
 
 @example
 cd input/tutorial
 mkdir -p out/
-lilypond-book --output=out/ lilybook.tex
-@emph{lilypond-book (GNU LilyPond) 2.3.11}
-@emph{Reading `input/tutorial/lilybook.tex'}
+lilypond-book --output=out lilybook.tex
+@emph{lilypond-book (GNU LilyPond) 2.5.0}
+@emph{Reading lilybook.tex...}
 @emph{..lots of stuff deleted..}
-@emph{Compiling `out//lilybook.tex'}
+@emph{Compiling out/lilybook.tex...}
 cd out
 latex lilybook
 @emph{lots of stuff deleted}
@@ -115,20 +112,19 @@
 ps2pdf lilybook.ps
 @end example
 
-Running lilypond-book and running latex creates a lot of temporary
-files, which would clutter up the working directory.  To remedy this,
-use the @code{--output=@var{dir}} option.  It will create the files in
-a separate subdirectory @file{dir}.
-
-Finally the result of the La@TeX{} example shown above.@footnote{ This
-tutorial is processed with Texinfo, so the example is as well.  This
-gives slightly different results in layout.}  This finishes the
-tutorial section.
+Running @command{lilypond-book} and @command{latex} creates a lot of
+temporary files, which would clutter up the working directory.  To remedy
+this, use the @code{--output=@var{dir}} option.  It will create the files
+in a separate subdirectory @file{dir}.
+
+Finally the result of the La@TeX{} example shown above.@footnote{This
+tutorial is processed with Texinfo, so the example gives slightly
+different results in layout.}  This finishes the tutorial section.
 
 @page
 
-Documents for lilypond-book may freely mix music and text.  For
-example,
+Documents for @command{lilypond-book} may freely mix music and text.
+For example,
 
 @lilypond
 \relative c' {
@@ -142,11 +138,12 @@
 c'4 f16
 @end lilypond
 
-Larger examples can be put in a separate file, and introduced with
+Larger examples can be put into a separate file, and introduced with
 @code{\lilypondfile}.
 
 @lilypondfile[quote,noindent]{screech-boink.ly}
 
+@page
 
 @cindex texinfo
 @cindex latex
@@ -156,20 +153,18 @@
 @cindex documents, adding music to
 
 
-@c @TeX{} in node name seems to barf
 @node Integrating LaTeX and music
-@section Integrating LaTeX and music
+@section Integrating La@TeX{} and music
 
-La@TeX{} is the de facto standard for publishing layouts in the exact
-sciences. It is built on top of the @TeX{} typesetting engine, so it
-provides the best typography available anywhere.
+La@TeX{} is the de-facto standard for publishing layouts in the exact
+sciences.  It is built on top of the @TeX{} typesetting engine, providing
+the best typography available anywhere.
  
-For more information about La@TeX{}
-@uref{http://www.ctan.org/tex-archive/info/lshort/english/,The not so
-Short Introduction to La@TeX{}} provides a introduction to using
+See @uref{http://@/www@/.ctan@/.org/@/tex@/-archive/@/info/@/lshort/@/english/,
+The not so Short Introduction to La@TeX{}} for an overview on how to use
 La@TeX{}.
 
-For La@TeX{}, music is entered using
+Music is entered using
 
 @example
 \begin[options,go,here]@{lilypond@}
@@ -177,6 +172,9 @@
 \end@{lilypond@}
 @end example
 
+@noindent
+or
+
 @example
 \lilypondfile[options,go,here]@{@var{filename}@}
 @end example
@@ -188,14 +186,13 @@
 \lilypond@{ YOUR LILYPOND CODE @}
 @end example
 
-Running lilypond-book yields a file that can be processed with
-La@TeX{}.
-
+Running @command{lilypond-book} yields a file that can be further processed
+with La@TeX{}.
 
-We show some examples here:
+We show some examples here.  The lilypond environment
 
 @example
-\begin[staffsize=26]@{lilypond@}
+\begin[quote,fragment,staffsize=26]@{lilypond@}
   c' d' e' f' g'2 g'2
 \end@{lilypond@}
 @end example
@@ -203,84 +200,77 @@
 @noindent
 produces
 
-@lilypond[fragment,staffsize=26]
+@lilypond[quote,fragment,staffsize=26]
   c' d' e' f' g'2 g'2
 @end lilypond
 
-Then the short version:
+The short version
 
 @example
-\lilypond[staffsize=11]@{<c' e' g'>@}
+\lilypond[quote,fragment,staffsize=11]@{<c' e' g'>@}
 @end example
 
 @noindent
 produces
 
-@lilypond[fragment,staffsize=11]{<c' e' g'>}
+@lilypond[quote,fragment,staffsize=11]{<c' e' g'>}
 
-The linewidth of the music will be adjust by examining the commands in
-the document preamble, the part of the document before
-@code{\begin@{document@}}. The @command{lilypond-book} command sends
-these to La@TeX{} to find out how wide the text is. The line width
-for the music fragments is then adjusted to the text width.
-
-After @code{\begin@{document@}}, the column changing commands
-@code{\onecolumn}, @code{\twocolumn} commands
-@ignore 
-and the
-@code{multicols} environment from the multicol package
-@end ignore
-are also interpreted.
+The default linewidth of the music will be adjusted by examining the
+commands in the document preamble, the part of the document before
+@code{\begin@{document@}}.  The @command{lilypond-book} command sends
+these to La@TeX{} to find out how wide the text is.  The line width
+for the music fragments is then adjusted to the text width.  Note that
+this heuristic algorithm can fail easily; in such cases it is necessary
+to use the @code{linewidth} music fragment option.
 
 @cindex titling and lilypond-book
 @cindex @code{\header} in La@TeX{} documents
 
-
-The music will be surrounded by @code{\preLilyPondExample} and
-@code{\postLilyPondExample}, which are defined to be empty by default.
+Each snippet calls @code{\preLilyPondExample} before and
+@code{\postLilyPondExample} after the music if those macros have been
+defined by the user.
 
 @cindex outline fonts
 @cindex type1 fonts
 @cindex dvips
 @cindex invoking dvips
 
-For printing the La@TeX{} document, you will need to use dvips. For
-producing PostScript with scalable fonts, add the following options to
-the dvips command line:
+For printing the La@TeX{} document you need a DVI to PostScript translator
+like @command{dvips}.  For producing PostScript with scalable fonts, add
+the following options to the @command{dvips} command line:
+
 @example
- -Ppdf -u+lilypond.map -u+ec-mftrace.map
+-Ppdf -u+lilypond.map -u+ec-mftrace.map
 @end example 
 
 @noindent
-PDF can then be produced with @code{ps2pdf}.
+PDF can then be produced with a PostScript to PDF translator like
+@code{ps2pdf} (which is part of GhostScript).
 
 @cindex international characters
 @cindex latin1
 
 LilyPond does not use the La@TeX{} font handling scheme for lyrics and text
-markups, so if you use characters in your lilypond-book
+markups; it uses the EC font family and 
+
+
+ so if you use characters in your @command{lilypond-book}
 documents that are not included in the standard US-ASCII character set,
 include @code{\usepackage[latin1]@{inputenc@}} in the file 
-header but do not include @code{\usepackage[T1]@{fontenc@}}. Character
+header but do not include @code{\usepackage[T1]@{fontenc@}}.  Character
 sets other than latin1 are not supported directly but may be handled by
 explicitly specifying the @code{font-name} property in LilyPond and
-using the corresponding La@TeX{} packages. Please consult the mailing list
+using the corresponding La@TeX{} packages.  Please consult the mailing list
 for more details.
 
 
-
-
 @node Integrating Texinfo and music
 @section Integrating Texinfo and music
 
 Texinfo is the standard format for documentation at the GNU
-project. An example of a texinfo document is this manual. The HTML,
+project.  An example of a texinfo document is this manual.  The HTML,
 PDF and Info versions of the manual are made from the document.
 
-When run on a lilypond-book, produces a @file{.texi} file containing
-@code{@@image} tags for HTML and info. For the printed edition, the
-raw @TeX{} output of LilyPond is included into the main document.
-
 In the input file, music is specified like
 
 @example
@@ -291,11 +281,15 @@
 @@lilypondfile[options,go,here]@{@var{filename}@}
 @end example
 
-When lilypond-book is run on it, this results in a texinfo file. We
-show two simple examples here.  First a complete block:
+When @command{lilypond-book} is run on it, this results in a texinfo file
+(with extension @file{.texi}) containing @code{@@image} tags for HTML and
+info.  For the printed edition, the raw @TeX{} output of LilyPond is
+included into the main document.
+
+We show two simple examples here.  A lilypond environment
 
 @example
-@@lilypond[staffsize=26]
+@@lilypond[fragment]
   c' d' e' f' g'2 g'
 @@end lilypond
 @end example
@@ -307,22 +301,20 @@
   c' d' e' f' g'2 g'
 @end lilypond
 
-Then the short version:
+The short version
 
 @example
-@@lilypond[staffsize=11]@{<c' e' g'>@}
+@@lilypond[fragment,staffsize=11]@{<c' e' g'>@}
 @end example
 
 @noindent
 produces
 
-@lilypond[fragment,staffsize=11]{ <c' e' g'> }
-
-When producing texinfo, lilypond-book also generates bitmaps of the
-music, so you can make a HTML document with embedded music.
-
-
+@lilypond[fragment,staffsize=11]{<c' e' g'>}
 
+When producing texinfo, @command{lilypond-book} also generates bitmaps of
+the music (in PNG format), so you can make an HTML document with embedded
+music.
 
 
 @node Integrating HTML and music
@@ -331,32 +323,27 @@
 Music is entered using
 
 @example
-<lilypond relative=2 verbatim>
-  \key c \minor r8 c16 b c8 g as c16 b c8 d | g,4
+<lilypond fragment relative=2>
+  \key c \minor c4 es g2
 </lilypond>
 @end example
 
 @noindent
-of which lilypond-book will produce a HTML with appropriate image tags for the
-music fragments:
-
-@c  why the second example?  -gp
-@example
-<lilypond relative=2 verbatim>
-  \key c \minor r8 c16 b c8 g as c16 b c8 d | g,4
-</lilypond>
-@end example
+of which @command{lilypond-book} will produce a HTML with appropriate image
+tags for the music fragments:
 
 @lilypond[fragment,relative=2]
-  \key c \minor r8 c16 b c8 g as c16 b c8 d | g,4
+  \key c \minor c4 es g2
 @end lilypond
 
-For inline pictures, use @code{<lilypond ... />} syntax, e.g.
+For inline pictures, use @code{<lilypond ... />} syntax, where the options
+are separated by a colon from the music, for example
+
 @example
-Some music in <lilypond a b c/> a line of text.
+Some music in <lilypond relative=2: a b c/> a line of text.
 @end example
 
-@c  FIXME: check if this feature is coming soon; if not, @ignore this stuff.
+@c FIXME: check if this feature is coming soon; if not, @ignore this stuff.
 A special feature not (yet) available in other output formats, is the
 @code{<lilypondfile>} tag, for example,
 @example
@@ -364,18 +351,19 @@
 @end example
 This runs @file{trip.ly} through @code{lilypond} (see also
 @ref{Invoking lilypond}), and substitutes a preview image in the
-output. The image links to a separate HTML file, so clicking it will
+output.  The image links to a separate HTML file, so clicking it will
 take the viewer to a menu, with links to images, midi and printouts.
 
 @cindex titling in THML
 @cindex preview image
 @cindex thumbnail
 
+
 @node Music fragment options
 @section Music fragment options
 
-The commands for lilypond-book have room to specify one or more of the
-following options:
+The commands for @command{lilypond-book} have room to specify one or more
+of the following options:
 
 @table @code
 @item verbatim
@@ -427,7 +415,6 @@
   \end@{lilypond@}
 @end example
 
-
 @item noindent
 sets indentation of the first music system to zero.  This option
 affects LilyPond, not the text layout.
@@ -459,8 +446,7 @@
 
 
 @node Invoking lilypond-book
-@section Invoking lilypond-book
-
+@section Invoking @command{lilypond-book}
 
 Running @command{lilypond-book} generates lots of small files that
 LilyPond will process.  To avoid all that garbage in the source
@@ -472,8 +458,8 @@
 cd out
 @end example
 
-This will produce a .tex or .texi file.  To produce a pdf from the
-.tex file, you should do
+This will produce a @file{.tex} or @file{.texi} file.  To produce pdf
+output from the @file{.tex} file, you should do
 
 @example
 latex yourfile.tex
@@ -489,12 +475,12 @@
 @table @code
 @item @option{-f @var{format}}, @option{--format=@var{format}}
 Specify the document type to process: @code{html}, @code{latex} or
-@code{texi} (the default).  @command{lilypond-book}  figures this
+@code{texi} (the default).  @command{lilypond-book} figures this
 out automatically.
 
 The @code{texi} document type produces a texinfo file with music
 fragments in the DVI output only. For getting images in the HTML
-version,  the format 
+version, the format 
 @code{texi-html} must be used.
 
 @item @option{-F @var{filter}}, @option{--filter=@var{filter}}
@@ -529,8 +515,6 @@
 @file{.latex}.  Texinfo input will be written to a file with extension
 @file{.texi}.
 
-
-
 @refbugs
 
 The Texinfo command @code{pagesize} is not interpreted. Almost all
@@ -551,12 +535,8 @@
 recommended extension, you may need to manually specify what output
 format you want.  See @ref{Invoking lilypond-book} for details.
 
-@code{lilypond-book} automatically selects the output format based
-on the filename.  For example, running @code{lilypond-book myfile.lytex}
-will make @code{lilypond-book} produce latex output.  If the file
-was merely @code{myfile}, then @code{lilypond-book} would not know
-which output format to produce (unless you specified it with
-@code{-f=latex}.
+@code{Lilypond-book} automatically selects the output format based
+on the filename.
 
 @table @code
 
Index: lilypond/Documentation/user/lilypond.tely
diff -u lilypond/Documentation/user/lilypond.tely:1.110.2.1 
lilypond/Documentation/user/lilypond.tely:1.110.2.2
--- lilypond/Documentation/user/lilypond.tely:1.110.2.1 Sun Nov  7 23:16:07 2004
+++ lilypond/Documentation/user/lilypond.tely   Mon Nov  8 19:57:55 2004
@@ -31,7 +31,7 @@
 
 @ignore
 @omfcreator Han-Wen Nienhuys and Jan Nieuwenhuizen
-@omfdescription User manual  of the LilyPond music engraving system
+@omfdescription User manual of the LilyPond music engraving system
 @omftype user manual
 @omfcategory Applications|Publishing
 @omflanguage English
@@ -45,28 +45,36 @@
 
 * Do not forget to create @cindex entries for new sections of text.
 
-* Try not to use punctuation between introductocing sentence and
-display material (verbatim, music, example code).
+* Try not to use punctuation between an introductory sentence and
+  display material (music, example code).
 
 * Do not refer to LilyPond in the text.  The reader knows what the
-manual is about.
+  manual is about.  If you do, capitalization is LilyPond.
 
-* If you do, capitalization is LilyPond.
+* If you explicitly refer to `lilypond', the program (or any other
+  command to be executed), say `@command{lilypond}'.
 
 * Do not explicitly refer to the reader/user.  There is no one else
-besides the reader and the writer.
+  besides the reader and the writer.
 
-* Do not use abbreviations (don't, won't, etc.).
+* Do not use abbreviations (don't, won't, etc.).  If you do, use a
+  comma after it:
 
-* Avoid fluff (``Notice that,'' ``as you can see,'' ``Currently,'') 
+    blabla blabla, i.e., blabla blabla
+
+* Avoid fluff (``Notice that,'' ``as you can see,'' ``Currently,'').
+
+* The use of the word `illegal' is inappropriate in most cases.  Say
+  `invalid' instead.
 
 * Avoid long stretches of input code.  Noone is going to read them in
-print.  Instead refer to an example input file (@inputfileref), these
-are clickable in HTML.
+  print.  Instead refer to an example input file (@inputfileref), these
+  are clickable in HTML.
 
-* Abbrevs in caps, e.g. HTML, DVI, MIDI, etc.
+* Abbrevs in caps, e.g., HTML, DVI, MIDI, etc.
 
 * Colon usage
+
   0. Do not use a colon to introduce examples, sentences just continue
 
       in the display material.
@@ -76,6 +84,69 @@
      This usage is rarer.  Americans often just use a comma.
   3. When adding a defining example at the end of a sentence.
 
+* To produce good looking texinfo output (for both TTY and DVI) some
+  additional formatting rules should be followed.
+
+  . Do not use tabs.  They expand to nothing in DVI output.
+
+  . Do not use spaces at the beginning of a line (except in @example
+    or @verbatim environments), and do not use more than a single space
+    between words.  `makeinfo' copies the input lines verbatim without
+    removing those spaces.
+
+  . Variables or numbers which consist of a single character (probably
+    followed by a punctuation mark) should be tied properly, either to
+    the previous or the next word.  Example:
+
+      The variable@tie{}@var{a} ...
+
+  . To get consistent indentation in the DVI output it is better to avoid
+    the @verbatim environment.  Use the @example environment instead if
+    possible, but without extraneous indentation.  For example, this
+
+      @example
+        foo {
+          bar
+        }
+      @end example
+
+    should be replaced with
+
+      @example
+      foo {
+        bar
+      }
+      @end example
+
+    where `@example' starts the line (without leading spaces).
+
+  . Use the `quote' option in @lilypond commands if possible.
+
+  . Do not compress the input vertically; this is, do not use
+
+      Beginning of logical unit
+      @example
+      ...
+      @end example
+      continuation of logical unit
+
+    but
+
+      Beginning of logical unit
+
+      @example
+      ...
+      @end example
+
+      @noindent
+      continuation of logical unit
+
+    This makes it easier to not forget `@noindent'.
+
+  . Non-ASCII characters which are in latin-1 should be directly used;
+    this is, don't say `Ba@ss{}tuba' but `Baßtuba'.  This ensures that
+    all such characters appear in all output formats.
+
 @end ignore
 
 @ifhtml
@@ -119,8 +190,8 @@
 @lilypond[raggedright]
 \score {
     \context Lyrics {
-        \override Score.RehearsalMark   #'self-alignment-X = #LEFT
-        \override Score.RehearsalMark   #'font-size = #-2 
+        \override Score.RehearsalMark #'self-alignment-X = #LEFT
+        \override Score.RehearsalMark #'font-size = #-2 
         \mark #(ly:export (string-append
              "(For LilyPond version " (lilypond-version) ")"))
         s2
@@ -178,7 +249,7 @@
 * Sound::                          Producing MIDI output
 * Changing defaults::              Tuning output.
 * Interfaces for programmers::
-* Running LilyPond::              Operation.
+* Running LilyPond::               Operation.
 * Converting from other formats::  Converting to lilypond source format.
 * Integrating text and music::     Integrating text and music with 
lilypond-book.
 * Literature list::
Index: lilypond/Documentation/user/macros.itexi
diff -u /dev/null lilypond/Documentation/user/macros.itexi:1.53.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/Documentation/user/macros.itexi    Mon Nov  8 19:57:55 2004
@@ -0,0 +1,195 @@
+@c -*- coding: latin-1; mode: texinfo; -*-
+
+@tex
+\input feta20.tex
+\global\font\fetasixteen=feta16
+\gdef\fetafont{\fetasixteen}
+\gdef\fetachar#1{\hbox{\fetasixteen#1}}
+@end tex
+
+@c Reference GLOSsary
+@macro rglos {NAME}
+@ifhtml
+@c ugh: @ref assumes that external refs are split documents too
+@html
+<a style="text-decoration: none; color: inherit;" 
href="../music-glossary.html#\NAME\">\NAME\</a>@c
+@end html
+@end ifhtml
+@ifnothtml
+\NAME\@c
+@end ifnothtml
+@end macro
+
+
+@ifnottex
+  @macro texisharp {word}
+  #
+  @end macro
+  @macro texiflat {word}
+  b
+  @end macro
+@end ifnottex
+
+@iftex
+ @macro texiflat {word}
+ @tex
+ \\kern0.15em\\fetachar\\fetaflat
+ @end tex
+ @end macro
+ @macro texisharp {word}
+  @tex
+  \\raise0.5ex\\fetachar\\fetasharp
+  @end tex
+  @end macro
+@end iftex
+
+
+@macro arrow{}
+@iftex
+@tex $\\Rightarrow$ @end tex@c
+@end iftex
+@ifhtml
+@html
+&rarr;
+@end html
+@end ifhtml
+@ifinfo
+-->
+@end ifinfo
+@end macro
+
+
+
+@c dup?
+@ifhtml
+
+ @c ***** HTML *****
+
+@macro internalsref{NAME}@c
+@c makeinfo-4.7 encodes html names, which means that nodes that
+@c contain nonalphanum characters will be broken links on the website.
+@c @uref{../lilypond-internals/\NAME\.html,\NAME\}@c
+@c @inforef{} adds ``See'' to the sentence, which is annoying, but
+@c better than a broken link.
+@c @inforef{\NAME\,,lilypond-internals}@c
+@c using @ref without punctuation is OK without for formats other than info
+@ref{\NAME\,,,lilypond-internals}@c
+@c should we do this? 
+@findex \NAME\
+@end macro
+
+
+ @macro inputfileref{DIR,NAME}
+ 
@uref{../../../../\DIR\/out-www/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
+ @end macro
+
+@end ifhtml
+
+@c dup?
+@ifdocbook
+
+ @c ***** DOCBOOK-XML *****
+
+ @macro internalsref{NAME}
+ @c makeinfo-4.7 encodes html names
+ @c @uref{../lilypond-internals/\NAME\.html,\NAME\}@c
+ @inforef{\NAME\,,lilypond-internals}@c
+ @c should we do this? 
+ @findex @code{\NAME\}
+ @end macro
+
+
+ @macro inputfileref{DIR,NAME}
+ 
@uref{../../../../\DIR\/out-www/collated-files.html#\NAME\,@file{\DIR\/\NAME\}}@c
+ @end macro
+
+@end ifdocbook
+
+@ifinfo
+
+@c **** INFO ****
+@macro internalsref{NAME}
+@inforef{\NAME\,,lilypond/lilypond-internals}@c
+@findex \NAME\@c
+@end macro
+
+
+@macro inputfileref{DIR,NAME}
+@file{\DIR\/\NAME\}
+@end macro
+
+
+@macro usermanref{NAME}
+@ref{\NAME\,,,lilypond/lilypond}@c
+@end macro
+
+@end ifinfo
+
+@iftex
+@c **** TEX ****
+
+@macro internalsref{NAME}@c
+@findex \NAME\ @c
+@code{\NAME\}@c
+@end macro
+
+@macro inputfileref{DIR,NAME}@c
+@file{\DIR\/@/\NAME\}@c
+@end macro
+
+
+@macro seeinternals{NAME}
+internals document, @internalsref{\NAME\}
+@end macro
+@end iftex
+
+@c **** not TEX ****
+
+@ifnottex
+ @macro seeinternals{NAME}
+ @internalsref{\NAME\}
+ @end macro
+@end ifnottex
+
+@ifnotinfo
+ @macro usermanref{NAME}
+ @ref{\NAME\}@c
+ @end macro
+@end ifnotinfo
+
+@macro refbugs
+@noindent
+@subsubheading Bugs
+
+@end macro
+
+@macro seealso
+@noindent
+@subsubheading See also
+
+@end macro
+
+@macro refcommands
+@noindent
+@subsubheading Predefined commands
+
+@end macro
+
+@macro context{NAME}@c
+@code{\NAME\}@c should use internalsref
+@findex \NAME\@c
+@end macro
+
+
+
+
+@c
+@c ARGGGHHHHH! I want
+@c @cindex @code{@backslash\WHAT\}
+@c how do I do that?
+@c   --hwn
+
+@macro refcommand{WHAT}
+@findex \WHAT\
+@code{\WHAT\} 
+@end macro
Index: lilypond/Documentation/user/music-glossary.tely
diff -u /dev/null lilypond/Documentation/user/music-glossary.tely:1.90.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/Documentation/user/music-glossary.tely     Mon Nov  8 19:57:55 2004
@@ -0,0 +1,4452 @@
+\input texinfo @c -*- coding: latin-1; mode: texinfo; -*-
+
+@settitle Music Glossary
+@setfilename music-glosssary.info
+
+@dircategory GNU music project
+@direntry
+* Glossary: (lilypond/music-glossary).                  Glossary of music 
terms.
+@end direntry
+
+@ifhtml
+This document is also available in @uref{music-glossary.ps.gz,gzipped
+PostScript} and @uref{music-glossary.pdf,PDF}.
+@end ifhtml
+
+@titlepage
+@title Music Glossary
+@author Christian Mondrup   @c Original author of LilyPond glossary
+@c                             Danish glossary
+@author Fran@,{c}ois Pinard @c Original glossary of GNU music project,
+@c                             French glossary
+@author Han-Wen Nienhuys    @c Dutch glossary
+@author Jan Nieuwenhuizen   @c Dutch glossary
+@author Dadiv Gonzalez      @c Spanish glossary
+@author Bjoern Jacke        @c German glossary
+@author Neil Jerram         @c English glossary translations
+@author Mats Bengtsson      @c Swedish glossary
+@author Adrian Mariano      @c Italian glossary
+@author Heikki Junes        @c Finnish glossary
+
+@c Fixes by Jean-Pierre Coulon and `Dirk'
+
+
+Copyright @copyright{} 1999--2004 by the authors
+
+
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.1
+  or any later version published by the Free Software Foundation,
+  without Invariant Sections.
+  
+@end titlepage
+
+
+@c FIXME: multiple omfcreators?
+@ignore
+@omfcreator Christian Mondrup
+@omfdescription Glossary of musical terms with translations
+@omftype user's guide
+@omfcategory Applications|Publishing
+@omflanguage English
+@end ignore
+
+@ifnottex
+@node Top
+@top Music Glossary
+@c HJJ: Info needs `@top', which is a synonym for `@unnumbered' in TeX.
+@menu
+@end menu
+@end ifnottex
+
+@ifnottex
+@table @code
+@item Adrian Mariano
+Italian glossary,
+@item Bjoern Jacke
+German glossary,
+@item Christian Mondrup
+Original author of LilyPond glossary, Danish glossary,
+@item Dadiv Gonzalez
+Spanish glossary,
+@item Fran@,{c}ois Pinard
+Original glossary of GNU music project, French glossary,
+@item Han-Wen Nienhuys
+Dutch glossary,
+@item Jan Nieuwenhuizen
+Dutch glossary,
+@item Mats Bengtsson
+Swedish glossary,
+@item Neil Jerram
+English glossary translations,
+@item Heikki Junes
+Finnish glossary translations.
+@end table
+@*
+Copyright 1999--2004 by the authors
+
+
+  Permission is granted to copy, distribute and/or modify this document
+  under the terms of the GNU Free Documentation License, Version 1.1
+  or any later version published by the Free Software Foundation,
+  without Invariant Sections.
+  
+
+@*
+
+@*
+
+@end ifnottex
+
+@c @pagesizes 10.3in
+@c @everyheading @| @thispage @|
+@c @evenheading @thispage @| @|
+@c @oddheading @| @| @thispage @|
+
+@include macros.itexi
+
+
+@ignore
+We do not use refs for Info:
+
+   @w{@arrow{}\word\}@c vs:
+   @w{@arrow{}@pxref{\word\}}@c
+
+they look too intrusive (says Han-Wen).
+@end ignore
+
+
+@c arrowref
+@macro aref{word}
+@iftex
+@w{@arrow{}@strong{\word\}}@c
+@end iftex
+@ifhtml
+@arrow{}@ref{\word\, @strong{\word\}}@c
+@end ifhtml 
+@ifinfo
+@w{@arrow{}\word\}@c
+@end ifinfo
+@end macro
+
+
+@c If we want hyperlinks, we must add anchors.
+@c We need the @anchor command in the item description itself
+@c (not before or after) to get mozilla jump to the right place.
+@c
+@c Note that the @aitem macro and friends should always be finished
+@c with `@c' to avoid spurious spaces:
+@c
+@c  @aitem{foo}@c
+@c  blablabla
+@c
+@macro aitem{word}
+@item \word\@anchor{\word\}
+@end macro
+@macro aitemii{one,two}
+@item \one\; \two\@anchor{\one\; \two\}@anchor{\one\}
+@end macro
+@macro aitemiii{one,two,three}
+@item \one\; \two\; \three\@anchor{\one\; \two\; \three\}@anchor{\one\}
+@end macro
+
+
+@itemize
+@item ES - Spanish
+@item I - Italian
+@item F - French
+@item D - German
+@item NL - Dutch
+@item UK - British English
+@item DK - Danish
+@item S - Swedish
+@item FI - Finnish
+@end itemize
+
+This is an example reference, that points you to the @aref{accent}
+entry.
+
+@c All `@table @strong' replaced by `@table @code'
+@c @strong{note xxx} breaks for info with makeinfo CVS <= 2004-04-26
+
+@table @code
+
+@aitem{A}@c
+ES: la,
+I: la,
+F: la,
+D: A, a,
+NL: a,
+DK: a,
+S: a,
+FI: A, a.
+
+@aitem{accent}@c
+ES: acento,
+I: accento,
+F: accent,
+D: Akzent,
+NL: accent,
+DK: accent,
+S: accent,
+FI: aksentti, korostus.
+
+The stress of one tone over others.
+
+@c F: how to distinguish between accidental and key-sig alteration?
+
+@aitem{accidental}@c
+ES: alteración,
+I: alterazione, accidente,
+F: altération
+D: Vorzeichen, Versetzungszeichen,
+NL: voorteken,
+DK: løst fortegn,
+S: tillfälligt förtecken,
+FI: tilapäinen etumerkki.
+
+@c F: altération accidentelle, D: Vorzeichen, Versetzungszeichen,
+@c Akzidenz, NL: toevallig teken, I: accidento.
+
+A sharp raises a tone by a @aref{semitone}, a double sharp raises it
+by a @aref{whole tone}, a flat lowers it by a semitone and a double
+flat lowers it by a whole tone.  A natural cancels the effect of a previous
+accidental.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override TextScript #'font-style = #'large
+\oldaddlyrics
+\context Staff \relative c'' {
+  gis1 gisis ges geses g!
+}
+\context Lyrics \lyrics {
+  \override Lyrics .LyricText #'self-alignment-X = #-1
+  sharp "db. sharp" flat "db. flat" natural
+}
+@end lilypond
+
+@aitem{accelerando}@c
+ES: acelerando,
+I: accelerando,
+F: accelerando, en accélérant,
+D: accelerando, schneller werden,
+NL: accelerando,
+DK: accelerando,
+S: accelerando,
+FI: accelerando, kiihdyttäen.
+
+Increase tempo.
+
+@aitem{adagio}@c
+ES: adagio,
+I: adagio,
+F: adagio, lent,
+D: Adagio, Langsam,
+NL: adagio,
+DK: adagio,
+S: adagio,
+FI: adagio, hitaasti.
+
+It.@: comfortable, easy.
+1.@tie{}Slow tempo, slower -- especially in even meter -- than
+@aref{andante} and faster than @aref{largo}.
+2.@tie{}A movement in slow tempo, especially the second (slow) movement of
+@aref{sonata}s, symphonies, etc.
+
+@aitem{allegro}@c
+ES: allegro,
+I: allegro,
+F: allegro,
+D: Allegro, Schnell, Fröhlich, Lustig,
+NL: allegro,
+DK: allegro,
+S: allegro,
+FI: allegro, nopeasti.
+
+It.@: cheerful.  Quick tempo.  Also used as a title for pieces in a quick
+tempo, especially the first and last movements of a @aref{sonata}.
+
+@aitem{alto}@c
+ES: alto,
+I: contralto,
+F: alto,
+D: Alt,
+NL: alt,
+DK: alt,
+S: alt,
+FI: altto, matala naisääni.
+
+A female voice of low range (@emph{contralto}).  Originally the alto was a
+high male voice (hence the name) which by the use of falsetto reached the
+height of the female voice.  This type of voice is also known as
+@aref{counter tenor}.
+
+@aitem{alto clef}@c
+ES: clave de do en tercera,
+I: chiave di contralto,
+F: clef d'ut troisième ligne,
+D: Altschlüssel, Bratschenschlüssel,
+NL: alt sleutel,
+DK: altnøgle,
+S: altklav,
+FI: alttoavain.
+
+C clef setting middle C on the middle line of the staff
+@aref{C clef}.
+
+@aitem{ambit}@c
+ES: ambitus,
+I: ambitus,
+F: ambitus,
+D: ambitus,
+NL: ambitus,
+DK: ambitus,
+S: ambitus,
+FI: ambitus, ääniala, soitinala.
+
+The term ambit (from latin: ambitus, plural: ambitus) denotes a range
+of pitches for a given voice in a part of music.  It may also denote
+the pitch range that a musical instrument is capable of playing.
+
+@aitem{ancient minor scale}@c
+I: scala minore naturale,
+F: forme du mode mineur ancien, troisème mode, mode hellénique
+D: reines Moll,
+NL: authentieke mineurtoonladder,
+DK: ren mol,
+S: ren mollskala,
+FI: luonnollinen molliasteikko.
+
+@aref{diatonic scale} (ancient minor).
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+\relative c'' {
+a1 b c d e f g a }
+@end lilypond
+
+@aitem{andante}@c
+ES: andante,
+I: andante,
+F: andante,
+D: Andante, Gehend,
+NL: andante,
+DK: andante,
+S: andante,
+FI: andante, käyden.
+
+Walking tempo/character.
+
+@aitem{appoggiatura}@c
+ES: apoyatura,
+I: appoggiatura,
+F: appogiature, (port de voix),
+D: Vorschlag,
+NL: voorslag,
+DK: forslag,
+S: förslag,
+FI: appoggiatura, etuhele.
+
+Ornamental note, usually a second, that is melodically connected with the
+main note following it.  In music before the 19th century a.@: were usually
+performed on the beat, after that mostly before the beat.  While the short
+a.@: is performed as a short note regardless of the duration of the main note
+the duration of the long a.@: is proportional to that of the main note.
+
+@lilypond[linewidth=13.0\cm]
+\context Voice \relative c'' {
+  \key d \major
+  \time 4/4
+
+%\override Score.TextScript #'font-style = #'large
+  <d a fis>4_"notation" r
+  { \override Stem #'flag-style = #'()
+    \grace g16
+    \revert Stem #'flag-style
+  }
+  fis8 e16 fis
+  { \override Stem #'flag-style = #'()
+    \grace a16
+    \revert Stem #'flag-style
+  }
+  g8 fis16 g |
+  \cadenzaOn a4 \bar "||" \cadenzaOff
+
+  <d, a fis>4_"performance" r g16 ( fis) e fis a ( g) fis g |
+  \cadenzaOn a4 \bar "||" \cadenzaOff
+}
+@end lilypond
+
+An appoggiatura may have more notes preceding the main note.
+
+@lilypond[linewidth=13.0\cm]
+\relative c'' {
+  \key as \major
+  \time 2/4
+%  \override Score.TextScript #'font-style = #'large
+  \grace { bes16 } as8_"notation" as16 bes as8 g |
+  \grace { as16[( bes] } < c as >4-)
+  \grace { as16[( bes] } < c as >4-) \bar "||"
+  \grace { bes16 } as8_"performance" as16 bes as8 g |
+  << \context Voice = va { \stemUp\tieUp as32 bes c8. as32 bes c8. }
+    \context Voice = vb { \stemDown\tieDown as16 ~ as8. as16 ~ as8. } >>
+  \bar "||"
+}
+@end lilypond
+
+@aitem{arpeggio}@c
+ES: arpegio,
+I: arpeggio,
+F: arpège,
+D: Arpeggio, Akkordbrechungen, gebro@-chener Akkord,
+NL: gebroken akoord,
+DK: arpeggio, akkordbrydning,
+S: arpeggio,
+FI: arpeggio, murtosointu.
+
+@lilypond[fragment,linewidth=13.0\cm]
+ \context PianoStaff <<
+  \context Staff = SA \relative c'' {
+    \time 4/4
+    \clef treble
+    r8 g16 c e g, c e r8 g,16 c e g, c e |
+    r8 a,16 d f a, d f r8 a,16 d f a, d f \bar "||" }
+  \context Staff = SB \relative c' {
+    \clef bass
+    << \context Voice = va {
+        \stemUp
+        r16 e8. ( e4) r16 e8. ( e4) |
+        r16 d8. ( d4) r16 d8. ( d4) }
+      \context Voice = vb {
+        \stemDown
+        c2 c | c c } >>
+  }
+>>
+@end lilypond
+
+@aitem{ascending interval}@c
+ES: Intervalo ascendente,
+I: intervallo ascendente,
+F: intervalle ascendant,
+D: steigendes Intervall,
+NL: stijgend interval,
+DK:@w{ }stigende interval,
+S: stigande intervall,
+FI: nouseva intervalli.
+
+A distance between a starting lower note and a higher ending note.
+
+@aitem{augmented interval}@c
+ES: intervalo aumentado,
+I: intervallo aumentato,
+F: intervalle augmenté,
+D: übermäßiges Intervall,
+NL: overmatig interval,
+DK: forstørret interval,
+S: överstigande intervall,
+FI: ylinouseva intervalli.
+
+@aref{interval}.
+
+@aitem{autograph}@c
+I: autografo,
+F: manuscrit,
+D: Autograph, Handschrift,
+NL: manuscript,
+DK: håndskrift, autograf,
+S: handskrift,
+FI: käsinkirjoitettu nuotti.
+
+1.@tie{}A manuscript in the composer's own hand.
+2.@tie{}Music prepared for photoreproduction by freehand drawing,
+with the aid of a straightedge ruler and T-square only,
+which attempts to emulate engraving.
+This required more skill than did engraving.
+
+@aitem{B}@c
+ES: si,
+I: si,
+F: si,
+D: H, h,
+NL: b,
+DK: h,
+S: h,
+FI: H, h.
+
+@aitemii{backfall,forefall}@c
+@aref{appoggiatura}.
+
+@aitem{bar line}@c
+ES: ?,
+I: stanghetta, barra (di divisione),
+F: barre (de mesure),
+D: Taktstrich,
+NL: maatstreep,
+DK: taktstreg,
+S: taktstreck,
+FI: tahtiviiva.
+
+@aitem{bar}@c
+ES: compás, @aref{measure}.
+
+@aitem{baritone}@c
+ES: barítono,
+I: baritono,
+F: bariton,
+D: Bariton,
+NL: bariton,
+DK: baryton,
+S: baryton,
+FI: baritoni, keskikorkuinen miesääni.
+
+The male voice intermediate between the @aref{bass} and the
+@aref{tenor}.
+
+@c F: clef de troisième ligne dropped
+
+@aitem{baritone clef}@c
+ES: clave de fa en tercera,
+I: chiave di baritono,
+F: clef d' Ut cinquième ligne, clef de Fa troisième,
+D: Baritonschlüssel,
+NL: baritonsleutel,
+DK: barytonnøgle,
+S: barytonklav,
+FI: baritoniavain.
+
+C or F clef setting middle C on the upper staff line.
+@aref{C clef}, @aref{F clef}.
+
+@aitem{bass clef}@c
+ES: clave de fa en cuarta,
+I: chiave di basso,
+F: clé de fa quatrième ligne,
+D: Bassschlüssel,
+NL: bassleutel,
+DK: basnøgle,
+S: basklav,
+FI: bassoavain.
+
+A clef setting with middle C on the first top ledger line.
+@aref{F clef}.
+
+@aitem{bass}@c
+I: basso,
+F: basse,
+D: Bass,
+NL: bas,
+DK: bas,
+S: bas,
+FI: basso, matala miesääni.
+
+1.@tie{}The lowest of men's voices.
+2.@tie{}Sometimes, especially in jazz music, used as
+an abbreviation for double bass.
+@aref{strings}.
+
+@aitem{beam}@c
+I: coda,
+F: barre,
+D: Balken,
+NL: waardestreep,
+DK: bjælke,
+S: balk,
+FI: palkki.
+
+Line connecting a series of notes (shorter than a quarter note).
+The number of beams determine the note value of the connected notes.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override TextScript #'font-style = #'large
+\relative c'' {
+  g8_"1/8"[ g g g] s16
+  g16_"1/16"[ g g g] s16
+  g32_"1/32"[ s32 g32 s32 g32 s32 g32] s16
+  g64_"1/64"[ s32 g64 s32 g64 s32 g64] s32 }
+@end lilypond
+
+@aitem{beat}@c
+ES: tiempo,
+I: tempi,
+F: temps,
+D: Takt, Taktschlag, Zeit (im Takt),
+NL: tel,
+DK: (takt)slag,
+S: taktslag,
+FI: aika-arvo.
+
+Note value used for counting, most often half-, fourth-, and eighth notes.
+The base counting value and the number of them per measure is indicated at
+the start of the music.
+
+@lilypond[fragment,linewidth=13.0\cm]
+\key g \major
+\time 4/4
+\relative c'' { g4 c b a | g1 \bar "||"}
+\time 3/8
+\relative c'' { g8 d' c | b c a | g4. \bar "||"}
+@end lilypond
+
+@aitem{bind}@c
+@aref{tie}.
+
+@aitem{brace}@c
+ES: llave, corchete,
+I: graffa,
+F: accolade,
+D: Klammer, Akkolade,
+NL: accolade, teksthaak,
+DK: klamme,
+S: klammer,
+FI: yhdistävä sulkumerkki.
+
+Symbol at the start of a system connecting staves.  Curly braces are used
+for connecting piano staves, angular brackets for connecting parts in an
+orchestral or choral score.
+
+@lilypond[fragment,raggedright]
+\context GrandStaff <<
+  \relative c''\context Staff = SA { \clef treble g4 e c2 }
+  \relative c \context Staff = SB { \clef bass c1 \bar "|." } >>
+@end lilypond
+
+@lilypond[fragment,raggedright]
+\context StaffGroup <<
+%  \set StaffGroup.minVerticalAlign = #12
+  \relative c'' \context Staff = SA { \clef treble g4 e c2 }
+  \relative c \context Staff = SB { \clef bass c1 \bar "|." } >>
+@end lilypond
+
+@aitem{brass}@c
+ES: metales,
+I: ottoni,
+D: Blechbläser,
+NL: koper (blazers),
+F: cuivres,
+DK: messingblæsere,
+S: brassinstrument, mässingsinstrument,
+FI: vaskisoitin.
+
+A family of blown musical instruments made of brass all using a cup formed
+mouth piece.  The brass instruments commonly used in a symphony orchestra are
+trumpet, trombone, french horn, and tube.
+
+@aitem{breath mark}@c
+I: respiro,
+F: respiration,
+D: Atemzeichen, Trennungszeichen,
+NL: repercussieteken,
+DK: vejrtrækningstegn,
+S: andningstecken,
+FI: hengitysmerkki.
+
+Indication of where to breathe in vocal and wind instrument parts.
+
+@aitem{breve}@c
+ES: breve,
+I: breve,
+F: brève,
+D: Brevis,
+NL: brevis,
+DK: brevis,
+S: brevis,
+FI: brevis.
+
+@aref{note value} twice as long as a whole note.  Mainly used
+in pre-1650 music.
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+\relative c'' { g\breve }
+@end lilypond
+
+@aitem{C}@c
+ES: do,
+I: do,
+F: ut,
+D: C, c,
+NL: c,
+DK: c,
+S: c,
+FI: C, c.
+
+@aitem{C clef}@c
+ES: Clave de do,
+I: chiave di do,
+F: clé d'ut,
+D: C-Schlüssel,
+NL: C-sleutel,
+DK: c-nøgle,
+S: c-klav,
+FI: C-avain.
+
+Clef symbol indicating the position of the middle C.  Used on all note
+lines.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+\override Score.Clef #'full-size-change = ##t
+%\override Score.LyricText #'font-style = #'large
+\oldaddlyrics
+\context Staff \relative c' {
+  \clef soprano c1 s s
+  \clef mezzosoprano c s s
+  \clef alto c s s
+  \clef tenor c s s
+  \clef baritone c s s
+}
+\context Lyrics \lyrics {
+  \override Lyrics .LyricText #'self-alignment-X = #-1
+  "Soprano  " "Mezzosoprano  " "Alto  " "Tenor  " Baritone
+}
+@end lilypond
+
+@aitem{cadence}@c
+ES: cadencia,
+I: cadenza,
+F: cadence,
+D: Kadenz,
+NL: cadens,
+DK: kadence,
+S: kadens,
+FI: kadenssi, lopuke.
+
+@aref{harmonic cadence}, @aref{functional harmony}.
+
+@aitem{cadenza}@c
+ES: cadenza,
+I: cadenza,
+F: cadence,
+D: Kadenz,
+NL: cadens,
+DK: kadence,
+S: kadens,
+FI: kadenssi, lopuke.
+
+An extended, improvisatory style section inserted near the end of
+movement.  The purpose of a cadenza is to give singers or players a chance
+to exhibit their technical skill and not the least their ability to
+improvise.  Since the middle of the 19th century, however, most cadences have
+been written down by the composer.
+
+@aitem{canon}@c
+ES: canon,
+I: canone,
+F: canon,
+D: Kanon,
+NL: canon,
+DK: kanon,
+S: kanon,
+FI: kaanon, tarkka jäljittely.
+
+@aref{counterpoint}.
+
+@aitem{cent}@c
+ES: cent,
+I: cent,
+F: cent,
+D: Cent,
+NL: cent,
+DK: cent,
+S: cent,
+FI: sentti, puolisävelaskeleen sadasosa tasavireisessä viritysjärjestelmässä.
+
+Logarithmic unit of measurement.  1@tie{}cent is 1/1200 of an octave (1/100
+of an equally tempered @aref{semitone}).
+@aref{equal temperament}.
+
+@aitem{central C}@c
+@aref{middle C}.
+
+@aitem{chord}@c
+ES: acorde,
+I: accordo,
+F: accord,
+D: Akkord,
+NL: akkoord,
+DK: akkord,
+S: ackord,
+FI: sointu.
+
+Three or more tones sounding simultaneously.  In traditional European music the
+base chord is a @emph{triad} consisting of 2@w{ }thirds.  @emph{Major} (major +
+minor @aref{third}) as well as @emph{minor} (minor + major third)
+chords may be extended with more thirds.  Four-tone @emph{seventh chords}
+and five-tone @emph{ninth} major chords are most often used as dominants
+(@aref{functional harmony}).  A special case is chords having no
+third above the lower notes to define their quality as major or minor.  Such
+chords are denoted open chords
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override TextScript #'font-style = #'large
+\oldaddlyrics
+\context Staff \relative c'' {
+  <g b d>1 s s
+  <g bes d> s s
+  <g bes des> s s
+  <g b dis> s s
+  <g b d f> s s
+  <g b d f a> s s
+}
+\context Lyrics \lyrics{
+  "major  "
+  "minor  "
+  "diminished  "
+  "augmented  "
+  "seventh-chord  "
+  ninth-chord
+}
+@end lilypond
+
+@aitem{chromatic scale}@c
+ES: escala cromática,
+I: scala cromatica,
+F: gamme chromatique,
+D: chro@-ma@-ti@-sche Tonleiter,
+NL: chromatische toonladder,
+DK: kromatisk skala,
+S: kromatisk skala,
+FI: kromaattinen asteikko.
+
+A scale consisting of all 12 @aref{semitone}s.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+\relative c' { c1 cis d dis e f fis g gis a ais b c }
+@end lilypond
+
+@aitem{chromaticism}@c
+ES: cromatismo,
+I: cromatismo,
+F: chromatisme,
+D: Chromatik,
+NL: chromatiek,
+DK: kromatik,
+S: kromatik,
+FI: kromatiikka.
+
+Use of tones extraneous to a @aref{diatonic scale} (minor, major).
+
+@aitemii{church mode,ecclesiastical mode}@c
+ES: modo eclesiástico,
+I: modo ecclesiastico,
+F: mode ecclésiastique,
+D: Kirchentonart,
+NL: kerktoonladder,
+DK: kirketoneart,
+S: kyrkotonart,
+FI: moodi, kirkkosävellaji.
+
+@aref{diatonic scale}.
+
+@aitem{clef}@c
+ES: clave,
+I: chiave,
+F: clé, clef,
+D: Schlüssel, Notenschlüssel,
+NL: sleutel,
+DK: nøgle,
+S: klav,
+FI: avain, nuottiavain.
+
+@aref{C clef}, @aref{F clef}, @aref{G clef}.
+
+@aitem{cluster}@c
+A @emph{cluster} is a range of simultaneously sounding pitches that
+may change over time.  The set of available pitches to apply usually
+depends on the acoustic source.  Thus, in piano music, a cluster
+typically consists of a continuous range of the semitones as provided
+by the piano's fixed set of a chromatic scale.  In choral music, each
+singer of the choir typically may sing an arbitrary pitch within the
+cluster's range that is not bound to any diatonic, chromatic or other
+scale.  In electronic music, a cluster (theoretically) may even cover
+a continuous range of pitches, thus resulting in colored noise, such
+as pink noise.
+
+Clusters can be denoted in the context of ordinary staff notation by
+engraving simple geometrical shapes that replace ordinary notation of
+notes.  Ordinary notes as musical events specify starting time and
+duration of pitches; however, the duration of a note is expressed by
+the shape of the note head rather than by the horizontal graphical
+extent of the note symbol.  In contrast, the shape of a cluster
+geometrically describes the development of a range of pitches
+(vertical extent) over time (horizontal extent).  Still, the
+geometrical shape of a cluster covers the area in which any single
+pitch contained in the cluster would be notated as an ordinary note.
+
+@lilypond[fragment,relative=2,verbatim,raggedright]
+\makeClusters { <c e > <b f'> <b g'> <c g> <f e> }
+@end lilypond
+
+@aitem{comma}@c
+I: comma,
+F: comma,
+D: Komma,
+NL: komma,
+DK: komma,
+S: komma,
+FI: komma, korvinkuultava ero äänenkorkeudessa.
+
+Difference in pitch between a note derived from pure tuning and the same note
+derived from some other tuning method.  @aref{temperament}.
+
+@aitem{common meter}@c
+@aref{meter}.
+
+@aitem{compound interval}@c
+ES: intervalo compuesto,
+I: intervallo composto,
+F: intervalle composé,
+D: weites Intervall,
+NL: samengesteld interval,
+DK: sammensat interval,
+S: sammansatt intervall,
+FI: oktaavia laajempi intervalli.
+
+Intervals larger than an octave.
+
+@aref{interval}.
+
+@aitem{complement}@c
+I: rivolto,
+F: intervalle complémentaire,
+D: Komplementärintervall,
+NL: complementair interval,
+DK: komplementærinterval,
+S: komplementärintervall (?),
+FI: täydentävä intervalli.
+
+@aref{inverted interval}.
+
+@aitem{conjunct movement}@c
+ES: movimiento conjunto,
+I: moto congiunto,
+F: mouvement conjoint,
+D: schritt@-weise, stufenweise Bewegung,
+NL: stapsgewijze, trapsgewijze beweging,
+DK: trinvis bevægelse,
+S: stegvis rörelse,
+FI: asteittainen liike.
+
+Progressing melodically by intervals of a second.  The opposite of a
+@aref{disjunct movement}.
+
+@lilypond[fragment,linewidth=13.0\cm]
+\key g \major \time 4/4
+\relative c'' { g4 g g a | b2 a | g4 b a a | g1 \bar "||" }
+@end lilypond
+
+@aitem{consonance}@c
+ES: consonancia,
+I: consonanza,
+F: consonance,
+D: Konsonanz,
+NL: consonant,
+DK: konsonans,
+S: konsonans,
+FI: konsonanssi, sopusointi.
+
+@aref{harmony}.
+
+@aitem{contralto}@c
+ES: contralto,
+I: contralto,
+F: contralto,
+D: Alt,
+NL: contralto,
+DK: alt,
+S: alt,
+FI: kontra-altto.
+
+@aref{alto}.
+
+@aitem{counterpoint}@c
+ES: contrapunto,
+I: contrappunto,
+F: contrepoint,
+D: Kontrapunkt,
+NL: contrapunt,
+DK: kontrapunkt,
+S: kontrapunkt,
+FI: kontrapunkti, ääni ääntä vastaan.
+
+From latin @emph{punctus contra punctum}, note against note.  The combination
+into a single musical fabric of lines or parts which have distinct melodic
+significance.  A frequently used polyphonic technique is imitation, in its
+strictest form found in the canon needing only one part to be written down
+while the other parts are performed with a given displacement.  Imitation is
+also the contrapunctal technique used in the @emph{fugue} which, since the
+music of the baroque era, has been one of the most popular polyphonic
+composition methods.
+
+@lilypond[fragment,staffsize=12,linewidth=13.0\cm]
+\override Score.TimeSignature #'break-visibility = #all-invisible
+\context PianoStaff <<
+  \context Staff = SA \relative c' {
+    \key bes \major
+    \time 4/4
+    \clef treble
+    << \context Voice = rha {
+        \stemUp
+        r1 | r2 r8 g'8 bes d, |
+        cis4 d r8 e!16 f g8 f16 e |
+        f8 g16 a bes8 a16 g a8
+      }
+      \context Voice = rhb {
+        \stemDown
+        r1 | r | r | r2 s8
+      }
+    >>
+  }
+  \context Staff = SB \relative c' {
+    \clef bass
+    \key bes \major
+    << \context Voice = lha {
+        \stemUp
+        r8 d es g, fis4 g | r8 a16 bes c8 bes16 a bes4 g |
+        r8 a16 g f8 g16 a bes8 g e! cis' |
+        d4. e!8 f
+      }
+      \context Voice = lhb {
+        \stemDown
+        r1 | r | r | r2 s8
+      } >>
+  }
+>>
+@end lilypond
+
+@aitem{counter tenor}@c
+ES: contratenor,
+I: controtenore,
+F: contre-tenor,
+D: Countertenor,
+NL: contratenor,
+DK: kontratenor,
+S: kontratenor, counter tenor,
+FI: kontratenori.
+
+@aref{contralto}.
+
+@aitem{copying, music}@c
+A music copyist did fast freehand scores and parts on preprinted staff lines
+for performance.  Some of their conventions (e.g., the placement of note heads
+on stems) varied slightly from those of engravers.  Some of their working
+methods were superior and could well be adopted by music typesetters.  This
+required more skill than engraving.
+
+@aitem{crescendo}@c
+ES: crescendo,
+I: crescendo,
+F: crescendo,
+D: Crescendo, lauter werden,
+NL: crescendo,
+DK: crescendo,
+S: crescendo,
+FI: cresendo, voimistuen.
+
+Increasing volume.  Indicated by a rightwards opening horizontal wedge or the
+abbreviation ``cresc.''.
+
+@lilypond[fragment,raggedright]
+\key g \major \time 4/4
+\relative c'' { g4 \< a b c | d1\! \bar "|." }
+@end lilypond
+
+@aitem{cue-notes}@c
+ES: notas guia,
+I: notine,
+F: petites notes précédent l'entrée d'in instrument, réplique,
+D: Stichnoten,
+NL: stichnoten,
+DK: stiknoder,
+S: inprickningar,
+FI: vihjenuotit.
+
+In a separate part notes belonging to another part with the purpose of hinting
+when to start playing.  Usually printed in a smaller type.
+
+@aitem{custos}@c
+A custos is a staff symbol that appears at the end of a staff line
+with monophonic musical contents (i.e., with a single voice).  It
+anticipates the pitch of the first note of the following line and thus
+helps the player or singer to manage line breaks during performance,
+thus enhancing readability of a score.
+
+Custodes were frequently used in music notation until the 16th
+century.  There were different appearences for different notation
+styles.  Nowadays, they have survived only in special forms of musical
+notation such as via the editio vaticana dating back to the beginning
+of the 20th century
+
+@lilypond
+\score {
+  {
+%   \override Staff.Custos #'neutral-position = #4
+    \override Staff.Custos #'neutral-direction = #-1
+    \override Staff.Custos #'style = #'hufnagel
+    c'1 \break
+    <d' a' f''>1
+  }
+
+  \layout {
+    \context {
+      \Staff
+      \consists Custos_engraver
+    }
+    raggedright = ##t
+  }
+}
+@end lilypond
+  
+@aitem{D}@c
+ES: Re,
+I: re,
+F: ré,
+D: D, d,
+NL: d,
+DK: d,
+S: d,
+FI: D, d.
+
+@aitem{da capo}@c
+ES: da capo,
+I: da capo,
+F: da capo, depuis le commencement,
+D: da capo, von Anfang,
+NL: da capo,
+DK: da capo,
+S: da capo,
+FI: da capo, alusta.
+
+The term indicates repetition of the piece from the beginning to the end or
+to a certain place marked @emph{fine}.  Mostly abbreviated as ``D.C.''.
+
+@aitem{dal segno}@c
+ES: dal segno,
+I: dal segno,
+F: dal segno, depuis le signe,
+D: dal segno,
+NL: dal segno,
+DK: dal segno,
+S: dal segno,
+FI: dal segno, lähtien merkistä.
+
+Abbreviated ``d.s.''.  Repetition, not from the beginning, but from
+another place frequently near the beginning marked by a sign:
+
+@lilypond[fragment,raggedright]
+%\override TextScript #'font-style = #'large
+\override TextScript #'font-shape = #'italic
+\key g \major \time 4/4
+\relative c'' {
+  d1 |
+  g,4^\segno a b c |
+  b a g2_\markup{
+    \line < "d.s. " \tiny \raise #1 \musicglyph #"scripts-segno" > }
+  \bar "|."
+}
+@end lilypond
+
+@aitem{decrescendo}@c
+ES: decrescendo,
+I: decrescendo,
+D: Decrescendo, leiser werden,
+NL: decrescendo,
+DK: decrescendo,
+S: decrescendo,
+FI: decresendo, hiljentyen.
+
+Decreasing tone volume.  Indicated by a leftwards opening horizontal wedge
+or the abbreviation ``decresc.''.
+
+@lilypond[fragment,raggedright]
+\relative c'' {
+  \key g \major \time 4/4
+  d4 \> c b a | g1 \! \bar "|."
+}
+@end lilypond
+
+@aitem{descending interval}@c
+ES: intervalo descendente,
+I: intervallo discendente,
+F: intervalle descendant,
+D: fallendes Intervall, absteigendes Intervall,
+NL: dalend interval,
+DK: faldende interval,
+S: fallande intervall,
+FI: laskeva intervalli.
+
+A distance between a starting higher note and a lower ending note.
+
+@aitem{diatonic scale}@c
+ES: escala diatónica,
+I: scala diatonica,
+F: gamme diatonique,
+D: diatonische Tonleiter,
+NL: diatonische toonladder,
+DK: diatonisk skala,
+S: diatonisk skala,
+FI: diatoninen asteikko.
+
+A scale consisting of 5@w{ }@aref{whole tone}s and
+2@w{ }@aref{semitone}s (S).  Scales played on the white keys
+of a piano keybord are diatonic.
+
+The church modes are used in gregorial chant and in pre baroque early
+music but also to some extent in newer jazz music.
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \context Staff \relative c' {
+    c1 d
+    \override TextScript #'padding = #-4
+    e^"~~ S" f g a b^"~~ S" c
+  }
+  \context Lyrics \lyrics {
+    Ionian
+  }
+@end lilypond
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \context Staff \relative c' {
+    d1
+    \override TextScript #'padding = #-4
+    e^"~~ S" f g a b^"~~ S" c d
+  }
+  \context Lyrics \lyrics {
+    Dorian
+  }
+@end lilypond
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \relative c' {
+    \override TextScript #'padding = #-4
+    e1^"~~ S" f g a b^"~~ S" c d e
+  }
+  \context Lyrics \lyrics {
+    Phrygian
+  }
+@end lilypond
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \relative c' {
+    f1 g a
+    \override TextScript #'padding = #-4
+    b^"~~ S" c d e^"~~ S" f
+  }
+  \context Lyrics \lyrics {
+    Lydian
+  }
+@end lilypond
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \relative c'' {
+    g1 a
+    \override TextScript #'padding = #-4
+    b^"~~ S" c d e^"~~ S" f g }
+  \context Lyrics \lyrics {
+    Mixolydian
+  }
+@end lilypond
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \relative c'' {
+    a1
+    \override TextScript #'padding = #-4
+    b^"~~ S" c d e^"~~ S" f g a
+  }
+  \context Lyrics \lyrics {
+    Aeolian
+  }
+@end lilypond
+
+From the beginning of the 17th century the scales used in European
+compositional music are primarily the major and the minor scales.  In the
+harmonic minor scale type an augmented second (A) occurs between the 6th and
+7th tone.
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \relative c' {
+    c1 d
+    \override TextScript #'padding = #-4
+    e^"~~ S" f g a b^"~~ S" c
+  }
+  \context Lyrics \lyrics {
+    Major
+  }
+@end lilypond
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \relative c'' {
+    a1
+    \override TextScript #'padding = #-4
+    b^"~~ S" c d e^"~~ S" f g a
+  }
+  \context Lyrics \lyrics {
+    "ancient minor"
+  }
+@end lilypond
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \relative c'' {
+    a1
+    \override TextScript #'padding = #-4
+    b^"~~ S" c d e^"~~ S" f!^"~~ A" gis^"~~ S" a
+  }
+  \context Lyrics \lyrics {
+    "Harmonic minor"
+  }
+@end lilypond
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+  \relative c'' {
+    a1
+    \override TextScript #'padding = #-4
+    b^"~~ S" c d e fis gis^"~~ S"
+    a g! f!^"~~ S" e d c^"~~ S" b a
+  }
+  \context Lyrics \lyrics {
+    "Melodic minor"
+  }
+@end lilypond
+
+@aitem{diminished interval}@c
+ES: intervalo disminuído,
+I: intervallo diminuito,
+F: intervalle diminué,
+D: vermindertes Intervall,
+NL: verminderd interval,
+DK: formindsket interval,
+S: förminskat intervall,
+FI: vähennetty intervalli.
+
+@aref{interval}.
+
+@aitem{diminuendo}@c
+ES: diminuendo,
+I: diminuendo,
+F: diminuendo,
+D: Diminuendo,
+NL: diminuendo,
+DK: diminuendo,
+S: diminuendo,
+FI: diminuendo, hiljentyen.
+
+@aref{decrescendo}.
+
+@aitem{disjunct movement}@c
+ES: movimiendo disjunto,
+I: moto disgiunto,
+F: mouvement disjoint,
+D: sprunghafte Bewegung,
+NL: sprongsgewijze beweging,
+DK: springende bevægelse,
+S: hoppande rörelse,
+FI: melodian hyppivä liike.
+
+Progressing melodically by intervals larger than a major second.  
+Opposite of @aref{conjunct movement}.
+
+@lilypond[fragment,raggedright]
+\key a \major
+\time 4/4
+\relative c' {
+  \partial 8 e8 |
+  a4. gis8 b a e cis |
+  fis2 d4. \bar "||" }
+@end lilypond
+
+@aitemii{dissonant interval,dissonance}@c
+ES: intervalo disonante, disonancias,
+I: intervallo dissonante, dissonanza,
+F: dissonance,
+D: Dissonanz,
+NL: dissonant interval; dissonant,
+DK: dissonerende interval, dissonans,
+S: dissonans,
+FI: dissonanssi, dissonoiva intervalli, riitasointi.
+
+@aref{harmony}.
+
+@aitem{dominant ninth chord}@c
+I: accordo di nona di dominante,
+F: accord de neuvième dominante,
+D: Domi@-nant@-nonen@-akkord,
+NL: dominant noon akkoord,
+DK: dominantnoneakkord,
+S: dominantnonackord,
+FI: dominanttinoonisointu.
+
+@aref{chord}, @aref{functional harmony}.
+
+@aitem{dominant seventh chord}@c
+ES: acorde de séptima de dominante,
+I: accordo di settima di dominante,
+F: accord de septième dominante,
+D: Dominantseptakkord,
+NL: dominant septiem akkoord,
+DK: dominantseptimakkord,
+S: dominantseptimackord,
+FI: dominanttiseptimisointu.
+
+@aref{chord}, @aref{functional harmony}.
+
+@aitem{dominant}@c
+ES: dominante,
+I: dominante,
+F: dominante,
+D: Dominante,
+NL: dominant,
+DK: dominant,
+S: dominant,
+FI: dominantti, huippusointu.
+
+The fifth @aref{scale degree},
+@aref{functional harmony}.
+
+@aitem{dorian mode}@c
+ES: modo dórico,
+I: modo dorico,
+F: mode dorien,
+D: dorisch, dorischer Kirchenton,
+NL: dorische toonladder,
+DK: dorisk skala,
+S: dorisk tonart,
+FI: doorinen moodi.
+
+@aref{diatonic scale}.
+
+@aitem{dot (augmentation dot)}@c
+ES: puntillo,
+I: punto (di valore),
+F: point,
+D: Punkt (Verlängerungspunkt),
+NL: punt,
+DK: punkt,
+S: punkt,
+FI: piste.
+
+@aref{dotted note}.
+
+@aitem{dotted note}@c
+ES: nota con puntillo,
+I: nota puntata,
+F: note pointée,
+D: punktierte Note,
+NL: gepuncteerde noot,
+DK: punkteret node,
+S: punkterad not,
+FI: pisteellinen nuotti.
+
+@aref{note value}.
+
+@aitem{double appoggiatura}@c
+ES: apoyatura doble,
+I: appoggiatura doppia,
+F: appoggiature double,
+D: doppelter Vorschlag,
+NL: dubbele voorslag,
+DK: dobbelt forslag,
+S: dubbelslag,
+FI: kaksoisappogiatura, kaksoisetuhele.
+
+@aref{appoggiatura}.
+
+@aitem{double bar line}@c
+I: doppia barra,
+F: double barre,
+D: Doppelstrich,
+NL: dubbele maatstreep,
+DK: dobbeltstreg,
+S: dubbelstreck,
+FI: kaksoistahtiviiva.
+
+Indicates the end of a section within a movement.
+
+@aitem{double dotted note}@c
+ES: nota con dos puntillos,
+I: nota doppiamente puntata,
+F: note doublement pointée,
+D: doppelt punktierte Note,
+NL: dubbelgepuncteerde noot,
+DK: dob@-belt@-punk@-te@-ret node,
+S: dub@-bel@-punk@-te@-rad not,
+FI: kaksoispisteellinen nuotti.
+
+@aref{note value}.
+
+@aitem{double flat}@c
+ES: doble bemol,
+I: doppio bemolle,
+F: double bémol,
+D: Doppel-B,
+NL: dubbelmol,
+DK: dob@-belt-b,
+S: dubbelbe,
+FI: kaksoisalennusmerkki.
+
+@aref{accidental}.
+
+@aitem{double sharp}@c
+ES: doble sostenido,
+I: doppio diesis,
+F: double dièse,
+D: Doppelkreuz,
+NL: dubbelkruis,
+DK: dob@-belt@-kryds,
+S: dubbelkors,
+FI: kaksoisylennysmerkki.
+
+@aref{accidental}.
+
+@aitem{double trill}@c
+ES: trino doble,
+I: doppio trillo,
+F: trille double,
+D: Doppeltriller,
+NL: dubbele triller,
+DK: dobbelttrille,
+S: dubbeldrill,
+FI: kaksoistrilli.
+
+A simultaneous trill on two notes, usually in the distance of a third.
+
+@aitem{duple meter}@c
+ES: tiempo binario,
+I: tempo binario,
+F: temps binaire,
+D: in zwei,
+NL: tweedelige maatsoort,
+DK: todelt takt,
+S: tvåtakt,
+FI: kaksoistempo.
+
+@aref{meter}.
+
+@aitem{duplet}@c
+ES: dosillo,
+I: duina,
+F: duolet,
+D: Duole,
+NL: duool,
+DK: duol,
+S: duol,
+FI: duoli.
+
+@aref{note value}.
+
+@aitem{duration}@c
+ES: duración,
+I: durata,
+F: durée,
+D: Dauer, Länge,
+NL: duur, lengte,
+DK: varighed,
+S: tonlängd,
+FI: kesto, aika-arvo.
+
+@aref{note value}.
+
+@aitem{dydimic comma}@c
+@aref{syntonic comma}.
+
+@aitem{E}@c
+ES: mi,
+I: mi,
+F: mi,
+D: E, e,
+NL: e,
+DK: e,
+S: e,
+FI: E, e.
+
+@aitem{eighth note}@c
+ES: corchea,
+I: croma,
+F: croche,
+UK: quaver,
+D: Achtel, Achtelnote,
+NL: achtste noot,
+DK: ottendedelsnode,
+S: åttondelsnot,
+FI: kahdeksasosanuotti.
+
+@aref{note value}.
+
+@aitem{eighth rest}@c
+ES: silencio de corchea,
+I: pausa di croma,
+F: demi-soupir,
+UK: quaver rest,
+D: Achtelpause,
+NL: achtste rust,
+DK: ottendedelspause,
+S: åttonddelspaus,
+FI: kahdeksasosatauko.
+
+@aref{note value}.
+
+@aitem{engraving}@c
+ES: Grabar
+I: incisione,
+F: gravure,
+D: Notenstechen, Notendruck
+NL: steken,
+DK: nodestik,
+S: nottryck,
+FI: painatus.
+
+Engraving means incising or etching a metal plate for
+printing.  Photoengraving means drawing music with ink in a manner
+similar to drafting or engineering drawing, using similar tools.
+
+The traditional process of music printing is done through cutting in a
+plate of metal.  Now also the term for the art of music typesetting.
+
+@aitem{enharmonic}@c
+ES: enharmónico,
+I: enarmonico,
+F: enharmonique,
+D: enharmonisch,
+NL: enharmonisch,
+DK: enharmonisk,
+S: enharmonisk,
+FI: enharmoninen.
+
+Two notes, intervals, or scales are enharmonic if they have different names
+but equal pitch.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+\context Staff \relative c'' {
+  gis1 s s as s s <des g,!> s s <cis g!> s s
+}
+\context Lyrics \lyrics {
+  \override Lyrics .LyricText #'self-alignment-X = #-1
+  "g sharp  " "a flat  " "dim fifth  " "augm fourth"
+}
+@end lilypond
+
+@aitem{equal temperament}@c
+ES: ?,
+I: temperamento equabile,
+F: tempérament égal,
+D: gleichschwebende Stimmung,
+NL: ge@-lijk@-zwe@-ven@-de temperatuur,
+DK: ligesvævende temperatur,
+S: liksvävande temperatur,
+FI: tasavireinen.
+
+Tuning system dividing the octave into 12 equal @aref{semitone}s
+(precisely 100 @aref{cent}s).  @aref{temperament}.
+
+@aitem{expression mark}@c
+ES: ?,
+I: segno d'espressione,
+F: signe d'expression, indication de nuance,
+D: Vortragszeichen,
+NL: voordrachtsteken,
+DK: foredragsbetegnelse,
+S: föredragsbeteckning,
+FI: nyanssiosoitus, esitysmerkki.
+
+Performance indications concerning 1. volume, dynamics (for example
+@aref{forte}, @aref{crescendo}), 2. tempo (for example
+@aref{andante}, @aref{allegro}).
+
+@aitem{F}@c
+ES: fa,
+I: fa,
+F: fa,
+D: F, f,
+NL: f,
+DK: f,
+S: f,
+FI: F, f.
+
+@aitem{F clef}@c
+ES: Clave de Fa,
+I: chiave di fa,
+F: clé de fa,
+D: F-Schlüssel,
+NL: F-sleutel,
+DK: F-nøgle,
+S: f-klav,
+FI: F-avain.
+
+The position between the dots of the key symbol is the line of the F below
+central@w{ }C.  Used on the third, fourth and fifth note line.  A
+digit@w{ }8 above the clef symbol indicates that the notes must be played
+an octave higher (for example bass recorder) while 8@w{ }below the clef
+symbol indicates playing an octave lower (for example on double bass
+@aref{strings}).
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+\override Staff.Clef #'full-size-change = ##t
+%\override Score.LyricText #'font-style = #'large
+\oldaddlyrics
+\relative c {
+  \clef varbaritone
+  f1
+  \clef bass
+  f1
+  \clef subbass
+  f1
+  \clef "F^8"
+  f1
+  \clef "F_8"
+  f1
+}
+\context Lyrics \lyrics {
+%  \override Lyrics .LyricText #'self-alignment-X = #-1
+  "baritone  "
+  "bass  "
+  "sub-bass  "
+  "octaved up  "
+  "octaved down"
+}
+@end lilypond
+
+@c F:  'point d'orgue' on a note, 'point d'arret' on a rest.
+
+@aitem{fermata}@c
+ES: Calderón,
+I: corona,
+F: point d'orgue, point d'arr@^et,
+D: Fermate,
+NL: fermate,
+DK: fermat,
+S: fermat,
+FI: fermaatti, pidäke.
+
+Prolonged note or rest of indefinite duration.
+
+@lilypond[fragment,raggedright]
+\time 4/4
+\relative c'' {
+  a4 b c2^\fermata \bar "|."
+}
+@end lilypond
+
+@aitem{fifth}@c
+ES: quinta,
+I: quinta,
+F: quinte,
+D: Quinte,
+NL: kwint,
+DK: kvint,
+S: kvint,
+FI: kvintti.
+
+@aref{interval}.
+
+@aitem{figured bass}@c
+ES: bajo cifrado, @aref{thorough bass}.
+
+@aitem{fingering}@c
+ES: digitación,
+I: diteggiatura,
+F: doigté,
+D: Fingersatz,
+NL: vingerzetting,
+DK: fingersætning,
+S: fingersättning,
+FI: sormitus.
+
+The methodical use of fingers in the playing of instruments.
+
+@aitemii{flag,pennant}@c
+ES: corchete,
+I: coda (uncinata), bandiera,
+F: crochet,
+D: Fahne, Fähnchen,
+NL: vlaggetje,
+DK: fane,
+S: flagga,
+FI: lippu, viiri.
+
+Ornament at the end of the stem of a note used for notes with values
+less than a quarter note.  The number of flags determines the
+@aref{note value}.
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.TextScript #'font-style = #'large
+\relative c'' {
+  g8_"1/8" s8
+  g16_"1/16" s8
+  g32_"1/32" s8
+  g64_"1/64" s8
+}
+@end lilypond
+
+@aitem{flat}@c
+ES: bemol,
+I: bemolle,
+F: bémol,
+D: B, b,
+NL: mol,
+DK: b,
+S: beförtecken,
+FI: alennusmerkki.
+
+@aref{accidental}.
+
+@aitemii{forefall,backfall}@c
+@aref{appoggiatura}.
+
+@aitem{forte}@c
+ES: forte,
+I: forte,
+F: forte,
+D: forte, laut,
+NL: forte,
+DK: forte,
+S: forte,
+FI: forte, voimakkaasti.
+
+Loud, abbreviated @b{f}, @emph{fortissimo} (@b{ff}) very loud,
+@emph{mezzoforte} (@b{mf}) medium loud.
+
+@aitem{fourth}@c
+ES: cuarta,
+I: quarta,
+F: quarte,
+D: Quarte,
+NL: kwart,
+DK: kvart,
+S: kvart,
+FI: kvartti.
+
+@aref{interval}.
+
+@aitem{fugue}@c
+ES: fuga,
+I: fuga,
+F: fugue,
+D: Fuge,
+NL: fuga,
+DK: fuga,
+S: fuga,
+FI: fuuga.
+
+@aref{counterpoint}.
+
+@aitem{functional harmony}@c
+ES: armonía funcional,
+I: armonia funzionale,
+F: étude des functions,
+D: Funktionslehre,
+NL: functionele harmonie,
+DK: funktionsanalyse, funktionsharmonik,
+S: funktionslära,
+FI: harmoniajärjestelmä.
+
+A system of harmonic analysis.  It is based on the idea that, in a given key,
+there are only three functionally different chords: tonic (T, the chord on the
+first note of the scale), subdominant (S, the chord on the fourth note), and
+dominant (D, the chord on the fifth note).  Other are considered to be
+variants of the base chords.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+\encoding "TeX"
+\context Voice \relative c'' {
+  <g e c >1 < a f d > < b g e >
+  <c a f > < d b g > < e c a > < f d b > }
+\context Lyrics \lyrics { T Sp Dp S D Tp "\ \ D{\\kern-5pt}$\\mid$" }
+@end lilypond
+
+@aitem{G}@c
+ES: sol,
+I: sol,
+F: sol,
+D: G, g,
+NL: g,
+DK: g,
+S: g,
+FI: G, g.
+
+@aitem{G clef}@c
+ES: Clave de sol,
+I: chiave di sol,
+F: clé de sol,
+D: G-Schlüssel, Violinschlüssel,
+NL: G-sleutel,
+DK: g-nøgle,
+S: g-klav,
+FI: G-avain.
+
+A clef symbol indicating the G above central@w{ }C.  Used on the first
+and second note lines.  A digit 8 above the clef symbol indicates that
+the notes must be played an octave higher while 8 below the clef symbol
+indicates playing or singing an octave lower (most tenor parts in choral
+scores are notated like that).
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+\override Staff.Clef #'full-size-change = ##t
+%\override Score.LyricText #'font-style = #'large
+\oldaddlyrics
+\relative c'' {
+  \clef french
+  g1 s s
+  \clef treble
+  g s s
+  \clef "G^8"
+  g s s
+  \clef "G_8"
+  g s s
+}
+\context Lyrics \lyrics {
+  \override Lyrics .LyricText #'self-alignment-X = #-1
+  "french violin clef  "
+  "violin clef  "
+  "octaved up  "
+  "octaved down"
+}
+@end lilypond
+
+@aitem{glissando}@c
+ES: glissando,
+I: glissando,
+F: glissando,
+D: Glissando,
+NL: glissando,
+DK: glissando,
+S: glissando,
+FI: glissando, liukuen.
+
+Letting the pitch slide fluently from one note to the other.
+
+@aitem{grace notes}@c
+ES: ?,
+I: abbellimenti,
+F: fioriture,
+D: Verzierungen, Vorschläge, Vor@-schlags@-noten,
+NL: versieringen,
+DK: forsiringer,
+S: ornament,
+FI: korunuotit.
+
+Notes printed in small types to indicate that their time values are not
+counted in the rhythm of the bar.  @aref{appoggiatura}.
+
+@aitem{grand staff}@c
+I: accolatura,
+F: accolade,
+D: Akkolade,
+NL: piano systeem,
+DK: klaversystem,
+S: ackolad, böjd klammer,
+FI: kaksoisnuottiviivasto.
+
+@aref{brace}.
+
+A combination of two staves with a brace.  Usually used for piano music.
+
+@aitem{grave}@c
+ES: grave,
+I: grave,
+F: grave,
+D: grave, langsam,
+NL: grave, ernstig,
+DK: grave,
+S: grave,
+FI: grave, raskaasti.
+
+Slow, solemn.
+
+@aitem{half note}@c
+ES: blanca,
+I: minima,
+F: blanche,
+UK: minim,
+D: Halbe, halbe Note,
+NL: halve noot,
+DK: halvnode,
+S: halvnot,
+FI: puolinuotti.
+
+@aref{note value}.
+
+@aitem{half rest}@c
+ES: ?,
+I: pausa di minima,
+F: demi-pause,
+UK: minim rest,
+D: halbe Pause,
+NL: halve, rust,
+DK: halvnodespause,
+S: halvpaus,
+FI: puolitauko.
+
+@aref{note value}.
+
+@aitem{harmonic cadence}@c
+ES: cadencia (armónica),
+I: cadenza (armonica),
+F: cadence harmonique,
+D: Schlusskadenz,
+NL: harmonische cadens,
+DK: harmonisk kadence,
+S: (harmonisk) kadens,
+FI: harmoninen kadenssi.
+
+A sequence of chords that terminates a musical phrase or
+section.  @aref{functional harmony}.
+
+@lilypond[fragment,raggedright]
+\context PianoStaff <<
+  \context Staff = SA \relative c'' {
+    \time 4/4
+    \clef treble
+    \context Voice
+    \partial 4 < c g e >4 |
+    < c a f > < b g d > < c g e >2
+  }
+%  %\override Score.LyricText #'font-style = #'large
+  \oldaddlyrics
+  \context Staff = SB \relative c {
+    \clef bass
+    \partial 4 c4 | f, g c2
+    \bar "|."
+  }
+  \context Lyrics \lyrics {
+    T S D T
+  }
+>>
+@end lilypond
+
+@aitem{harmony}@c
+ES: armonía,
+I: armonia,
+F: harmonie,
+D: Harmonie, Zusammenklang,
+NL: harmonie,
+DK: samklang,
+S: samklang,
+FI: harmonia, yhteissointi.
+
+Tones sounding simultaneously.  Two note harmonies fall into the categories
+@emph{consonances} and @emph{dissonances}.
+
+Consonances:
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.TextScript #'font-style = #'large
+\context Voice \relative c'' {
+  <g g>1_"unisone  " s
+  <g b>_"third  " s
+  <g c>_"fourth  " s
+  <g d'>_"fifth  " s
+  <g e'>_"sixth  " s
+  <g g'>_"octave  " s
+  <g b'>_"decime" s s
+}
+@end lilypond
+
+Dissonances:
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.TextScript #'font-style = #'large
+\context Voice \relative c'' {
+  <g a>1_"second  " s s
+  <g f'>_"seventh  " s s
+  <g a'>_"ninth" s s
+}
+@end lilypond
+
+Three note harmony @aref{chord}.
+
+@aitem{homophony}@c
+ES: homofonía,
+I: omofonia,
+F: homophonie,
+D: Homophonie,
+NL: homofonie,
+DK: homofoni,
+S: homofoni,
+FI: homofonia, yksiäänisyys.
+
+Music in which one voice leads melodically followed by the other voices more
+or less in the same rhythm.  In contrast to @aref{polyphony}.
+
+@aitem{interval}@c
+ES: intervalo,
+I: intervallo,
+F: intervalle,
+D: Intervall,
+NL: interval,
+DK: interval,
+S: intervall,
+FI: intervalli, kahden sävelen korkeusero.
+
+Difference in pitch between two notes.  Intervals may be perfect, minor, major,
+diminished, or augmented.  The augmented fourth and the diminished fifth are
+identical (@aref{enharmonic}) and are called @emph{tritonus}
+because they consist of three @aref{whole tone}s.  The addition
+of such two forms an octave.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+\context Voice \relative c'' {
+  < g g >1 s
+  < g as >^"minor" s
+  < g a! > s
+  < g ais >^"augm" s
+  < gis bes >^"dimin" s
+  < g! bes >^"minor" s
+  < g b! >^"major" s
+  < g bis >^"augm" s
+}
+\context Lyrics \lyrics {
+  "unisone " "second " "second " "second "
+  "third  " "third " "third " "third"
+}
+@end lilypond
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+\context Staff \relative c'' {
+  < g c >1^"perfect" s
+  < g cis >^"augm" s
+  < g d' >^"perfect" s
+  < g des' > ^"dimin" s
+  < gis es' >^"dimin" s
+  < g! es' >^"minor" s
+  < g e'! >^"major" s
+  < g eis' >^"augm" s
+}
+\context Lyrics \lyrics {
+  "fourth  " "fourth  " "fifth  " "fifth  "
+  "sixth  " "sixth  " "sixth  " "sixth"
+}
+@end lilypond
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\override Score.TextScript #'font-style = #'large
+\oldaddlyrics
+\context Staff \relative c'' {
+  < gis f'! >1^"dimin" s
+  < g! f'! >^"minor" s
+  < g fis' >^"major" s
+  < g g' > s
+  < g as' >^"minor" s
+  < g a'! >^"major" s
+  < g bes' >^"minor" s
+  < g b'! >^"major" s
+}
+\context Lyrics \lyrics {
+  "seventh " "seventh " "seventh " "octave "
+  "none " "none " "decime " "decime"
+}
+@end lilypond
+
+@aitem{inverted interval}@c
+ES: intervalo invertido,
+I: intervallo rivolto,
+F: intervalle reversé,
+D: umgekehrtes Intervall,
+NL: interval inversie,
+DK: omvendingsinterval,
+S: intervallets omvändning,
+FI: käänteisintervalli.
+
+The difference between an interval and an octave.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.TextScript #'font-style = #'large
+\context Staff \relative c'' {
+  < g a >1_"second " s s < g' a, >_"seventh " s s \bar "||"
+  < g, b >_"third  " s s < g' b, >_"sixth  " s s \bar "||"
+  < g, c >_"fourth  " s s < g' c, >_"fifth  " s s \bar "||"
+}
+@end lilypond
+
+@aitem{just intonation}@c
+I: intonazione giusta,
+F: intonation juste,
+D: reine Stimmung,
+NL: reine stemming,
+DK: ren stemning,
+S: ren stämning,
+FI: puhdas viritys.
+
+Tuning system in which the notes are obtained by adding and subtracting
+natural fifths and thirds.  @aref{temperament}.
+
+@aitem{key}@c
+ES: tonalidad,
+I: tonalità,
+F: tonalité,
+D: Tonart,
+NL: toonsoort,
+DK: toneart,
+S: tonart,
+FI: tonaliteetti.
+
+According to the 12@w{ }tones of the @aref{chromatic scale}
+there are 12@w{ }keys, one on@w{ }c, one on c-sharp, etc.
+@aref{key signature}.
+
+@aitem{key signature}@c
+ES: armadura de clave,
+I: armatura di chiave,
+F: armure, armature [de la clé],
+D: Vorzeichen, Tonart,
+NL: toon@-soort (voortekens),
+DK: faste fortegn,
+S: tonartssignatur,
+FI: sävellajiosoitus.
+
+The sharps or flats appearing at the beginning of each staff indicating the
+key of the music.  @aref{accidental}.
+
+@aitem{largo}@c
+ES: largo,
+I: largo,
+F: largo,
+D: Largo, Langsam, Breit,
+NL: largo,
+DK: largo,
+S: largo,
+FI: largo, hitaasti, leveästi.
+
+Very slow in tempo, usually combined with great
+expressiveness.  @emph{Larghetto} is less slow than largo.
+
+@aitem{leading note}@c
+ES: sensible,
+I: sensibile,
+F: note sensible,
+D: Leitton,
+NL: leidtoon,
+DK: ledetone,
+S: ledton,
+FI: johtosävel.
+
+The seventh @aref{scale degree}, a @aref{semitone} below
+the tonic; so called because of its strong tendency to ``lead up'' (resolve
+upwards) to the tonic scale degree.
+
+@aitemii{ledger line,leger line}@c
+ES: líneas adicionales,
+I: tagli addizionali,
+F: ligne supplémentaire,
+D: Hilfslinie,
+NL: hulplijntje,
+DK: hjælpelinie,
+S: hjälplinje,
+FI: apuviiva.
+
+A ledger line is an extension of the staff.
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+\relative c'' { a,1 s c'' }
+@end lilypond
+
+@aitem{legato}@c
+ES: ligado,
+I: legato,
+F: legato, lié,
+D: legato,
+NL: legato,
+DK: legato,
+S: legato,
+FI: legato, sitoen.
+
+To be performed (a) without any perceptible interruption between the notes, 
+unlike (b) @emph{leggiero} or @emph{non-legato}, (c) @emph{portato}, and
+(d) @aref{staccato}.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+\oldaddlyrics
+\context Staff \relative c'' {
+  c4-( d e-) \bar "||"
+  c4-- d-- e-- \bar "||"
+  c4-.-( d-. e-.-) \bar "||"
+  c4-. d-. e-. \bar "||"
+}
+\context Lyrics \lyrics {
+%  \override Lyrics .LyricText #'font-style = #'large
+  a
+  b "" ""
+  c
+  d
+}
+@end lilypond
+
+@aitem{legato curve}@c
+@aref{slur}, @aref{legato}.
+
+@aitem{lilypond}@c
+ES: estanque de lilas,
+I: stagno del giglio,
+F: étang de lis,
+UK: lily pond,
+D: Seerosenteich,
+NL: le@-lie@-vij@-ver,
+DK: liliedam,
+S: liljedamm,
+FI: liljalampi.
+
+A pond with lilies floating in it, also the name of a music typesetter.
+
+@aitem{ligature}@c
+A ligature is a coherent graphical symbol that represents at least two
+distinct notes.  Ligatures originally appeared in the manuscripts of
+Gregorian chant notation roughly since the 9th century to denote
+ascending or descending sequences of notes.  In early notation,
+ligatures were used for monophonic tunes (Gregorian chant) and very
+soon denoted also the way of performance in the sense of articulation.
+With the invention of the metric system of the white mensural
+notation, the need for ligatures to denote such patterns disappeared.
+
+@aitem{line}@c
+ES: línea,
+I: linea,
+F: ligne,
+D: Linie, Notenlinie,
+NL: lijn,
+DK: nodelinie,
+S: notlinje,
+FI: viiva, nuottiviiva.
+
+@aref{staff}.
+
+@aitem{long appoggiatura}@c
+ES: apoyatura larga,
+I: appoggiatura lunga,
+F: appoggiature longue,
+D: langer Vorschlag,
+NL: Lange voorslag,
+DK: langt forslag,
+S: långt förslag,
+FI: pitkä appoggiatura, pitkä etuhele.
+
+@aref{appoggiatura}.
+
+@aitem{longa}@c
+ES: longa,
+I: longa,
+F: longa,
+D: Longa,
+NL: longa,
+DK: longa,
+S: longa,
+FI: longa.
+
+Note value: double length of @aref{breve}.
+@aref{note value}.
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+\relative c'' {
+  \override NoteHead #'style = #'mensural
+  g\longa
+}
+@end lilypond
+
+@aitemii{lyrics,song texts}@c
+ES: .,
+I: .,
+F: .,
+D: .,
+NL: liedtekst,
+DK: .,
+S: .,
+FI, sanoitus.
+
+@aitem{major interval}@c
+ES: intervalo mayor,
+I: intervallo maggiore,
+F: intervalle majeur,
+D: großes Intervall,
+NL: groot interval,
+DK: stort interval,
+S: stort intervall,
+FI: suuri intervalli.
+
+@aref{interval}.
+
+@aitem{major}@c
+ES: mayor,
+I: maggiore,
+F: [mode] majeur,
+D: Dur,
+NL: majeur,
+DK: dur,
+S: dur,
+FI: duuri.
+
+@aref{diatonic scale}.
+
+@aitem{meantone temperament}@c
+I: accordatura mesotonica,
+F: tempérament mésotonique,
+D: mitteltönige Stimmung,
+NL: middenstemming, middentoonstemming,
+DK: middeltonetemperatur,
+S: medeltonstemperatur,
+FI: keskisävelviritys.
+
+Temperament yielding acoustically pure thirds by decreasing the natural fifth
+by 16@w{ }@aref{cent}s.  Due to the non-circular character of this
+@aref{temperament} only a limited set of keys are playable.
+Used for tuning keyboard instruments for performance of pre-1650 music.
+
+@aitemii{measure,bar}@c
+ES: compás,
+I: misura, battuta,
+F: mesure,
+D: Takt,
+NL: maat,
+DK: takt,
+S: takt,
+FI: tahti.
+
+A group of @aref{beat}s (units of musical time) the first of which
+bears an accent.  Such groups in numbers of two or more recur consistently
+throughout the composition and are marked from each other by
+bar-lines.  @aref{meter}.
+
+@aitem{mediant}@c
+ES: mediante,
+I: mediante, modale,
+F: médiante,
+NL: mediant,
+D: Mediante,
+DK: mediant,
+S: mediant,
+FI: keskisävel.
+
+1.@tie{}The third @b{scale degree}.
+2.@tie{}A @aref{chord} having its base tone
+a third from that of another chord.  For example, the tonic chord may be
+replaced by its lower mediant (variant tonic).  @aref{functional
+harmony}, @aref{relative key}.
+
+@aitem{melisma}@c
+NL: melisma, 
+FI: melisma, laulettavan tavun sävelkuvio.
+
+A melisma (plural: melismata) is a group of notes or tones sung on one
+syllable in plainsong
+
+@aitem{melodic cadence}@c
+@aref{cadenza}.
+
+@aitemii{meter,time}@c
+ES: compás,
+I: tempo, metro,
+F: indication de mésure,
+D: Taktart, Metrum,
+NL: maatsoort,
+DK: taktart,
+S: taktart,
+FI: aika-arvo.
+
+The basic scheme of @aref{note value}s and
+@aref{accent}s which remains unaltered throughout a composition
+or a section of it.  For instance, 3/4 meter means that the basic
+@aref{note value}s are quarter notes and that a
+@aref{measure} consists of three of those.  According to
+whether there are two, three or four units to the measure,
+one speaks of @emph{duple} (2/2, 2/4, 2/8), @emph{triple} (3/2, 3/4, 3/8), or
+@emph{quadruple} (4/2, 4/4, 4/8) meter.  4/4 is also called common meter.
+
+@lilypond[fragment,linewidth=13.0\cm]
+\relative c'' {
+  \time 3/4
+  \key f \major
+  c es d | c bes8 a bes4 | c es d | c2 \bar "||"}
+@end lilypond
+
+@lilypond[fragment,linewidth=13.0\cm]
+\relative c' {
+  \time 6/8
+  \key f \major
+  f8 f f f a16 g a f |
+  c'8 c c c e16 d e c \bar "||"}
+@end lilypond
+
+@lilypond[fragment,linewidth=13.0\cm]
+\relative c'' {
+  \time 5/4
+  \key g \major
+  d4 b8 g b d d c a4 |
+  g8 g16 g g8 g16 g g8 fis16 g a8 fis16 e d4 \bar "||"}
+@end lilypond
+
+@aitem{metronome}@c
+ES: metrónomo,
+I: metronomo,
+F: métronome,
+D: Metronom,
+NL: metronoom,
+DK: me@-tro@-nom,
+S: me@-tro@-nom,
+FI: metronomi.
+
+Device indicating the exact tempo of a piece.  @aref{metronomic
+indication}.
+
+@aitem{metronomic indication}@c
+ES: indicación metronómica,
+I: indicazione metronomica,
+F: indication métronomique,
+D: Metronomangabe,
+NL: metronoom aanduiding,
+DK: metronomtal,
+S: metronomangivelse,
+FI: metronomiosoitus.
+
+Exact tempo indication (in beats per minute).  Also denoted by
+M.M.@: (Mälzels Metronom).
+
+@aitem{mezzo-soprano}@c
+ES: mezzo soprano,
+I: mezzo-soprano,
+F: mezzo-soprano,
+D: Mezzosopran,
+NL: mezzosopraan,
+DK: mezzosopran,
+S: mezzosopran,
+FI: mezzosopraano.
+
+The female voice between @aref{soprano} and
+@aref{contralto}.
+
+@aitem{middle C}@c
+ES: do central,
+I: do centrale,
+F: do central,
+D: eingestrichenes@w{ }c,
+NL: centrale@w{ }c,
+DK: enstreget@w{ }c,
+S: ettstruket@w{ }c,
+FI: keski-C.
+
+First C below the 440 Hz A.
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+\override Staff.Clef #'full-size-change = ##t
+\relative c' {
+  \clef bass c1 s
+  \clef alto c s
+  \clef treble c s
+}
+@end lilypond
+
+@aitem{minor}@c
+ES: menor,
+I: minore,
+F: mode mineur,
+D: Moll,
+NL: mineur,
+DK: mol,
+S: moll,
+FI: molli.
+
+@aref{diatonic scale}.
+
+@aitem{minor interval}@c
+ES: intervalo mayor,
+I: intervallo minore,
+F: intervalle mineur,
+D: kleines Intervall,
+NL: klein interval,
+DK: lille interval,
+S: litet intervall,
+FI: pieni intervalli.
+
+@aref{interval}.
+
+@aitem{mode}@c
+ES: modo,
+I: modo,
+F: mode,
+D: Modus,
+NL: modus,
+DK: skala,
+S: modus, skala,
+FI: moodi, kirkkosävelasteikko.
+
+@aref{church mode}, @aref{diatonic scale}.
+
+@aitem{modulation}@c
+ES: modulación,
+I: modulazione,
+F: modulation,
+D: Modulation,
+NL: modulatie,
+DK: modulation,
+S: modulering,
+FI: modulaatio, sävellajin vaihdos.
+
+Moving from one @aref{key} to another.  For example, the second
+subject of a @aref{sonata form} movement modulates to the dominant
+key if the key is major and to the @aref{relative key} if the key
+is minor.
+
+@aitem{mordent}@c
+I: mordente,
+F: mordant,
+D: Mordent,
+NL: mordent,
+DK: mordent,
+S: mordent,
+FI: mordent, korukuvio.
+
+@aref{ornament}.
+
+@aitemii{motive,motif}@c
+ES: tema,
+I: inciso,
+F: incise,
+D: Motiv,
+NL: motief,
+DK: motiv,
+S: motiv,
+FI: teema, sävelaihe.
+
+The briefest intelligible and self-contained fragment of a musical theme or
+subject.
+
+@lilypond[fragment,linewidth=13.0\cm]
+\override Score.TimeSignature #'break-visibility = #all-invisible
+%\override Score.TextScript #'font-style = #'large
+\relative c'' {
+  \time 4/4
+  \key g \major
+  \partial 8 g16_"------" fis |
+  g8 d16_"------" c d8 g16 fis g8 b,16 a b8 g'16 fis |
+  g8 g,16 a b8 cis d16 s
+}
+@end lilypond
+
+@aitem{movement}@c
+ES: movimiento,
+I: movimento,
+F: mouvement,
+D: Satz,
+NL: deel,
+DK: sats,
+S: sats,
+FI: osa.
+
+Greater musical works like @aref{symphony} and
+@aref{sonata} most often consist of several -- more or less --
+independant pieces called movements.
+
+@aitem{multibar rest}@c
+ES: compases de espera,
+I: pausa multipla,
+F: pause multiple,
+NL: meermaats rust,
+D: mehrtaktige Pause,
+DK: flertaktspause,
+S: flertaktspaus,
+FI: usean tahdin mittainen tauko.
+
+@lilypond[fragment,raggedright]
+\relative c'' {
+  a1
+  \set Score.skipBars = ##t R1*3
+  a1
+}
+@end lilypond
+
+@aitem{mixolydian mode}@c
+@aref{diatonic scale}.
+
+@aitem{natural sign}@c
+ES: becuadro,
+I: bequadro,
+F: bécarre,
+D: Auflösungszeichen,
+NL: herstellingsteken,
+DK: op@-løsningstegn,
+S: återställningstecken,
+FI: palautusmerkki.
+
+@aref{accidental}.
+
+@aitem{neighbour tones}@c
+@aref{appoggiatura}.
+
+@aitem{ninth}@c
+ES: novena,
+I: nona,
+F: neuvième,
+D: None,
+NL: noon,
+DK: none,
+S: nona,
+FI: nooni.
+
+@aref{interval}.
+
+@aitem{non-legato}@c
+@aref{legato}.
+
+@aitem{note}@c
+ES: nota,
+I: nota,
+F: note,
+D: Note,
+NL: noot,
+DK: node,
+S: not,
+FI: nuotti.
+
+Notes are signs by means of which music is fixed in writing.  The term is also
+used for the sound indicated by a note, and even for the key of the piano
+which produces the sound.  However, a clear distinction between the terms tone
+and @aref{note} is strongly recommended.  Briefly, one sees a note,
+and hears a tone.
+
+@aitem{note head}@c
+ES: oval,
+I: testa, testina, capocchia,
+F: t@^ete de la note,
+D: Notenkopf,
+NL: nootballetje,
+DK: nodehovede,
+S: nothuvud,
+FI: nuotin pää.
+
+A head like sign which indicates pitch by its position on a
+@aref{staff} provided with a @aref{clef}, and duration
+by a variety of shapes such as hollow or black heads with or without
+@aref{stem}s, @aref{flag}s, etc.  For percussion
+instruments (often having no defined pitch) the note head may indicate the
+instrument.
+
+@aitem{note value}@c
+ES: valor,
+I: valore, durata,
+F: durée, valeur (d'une note),
+D: Notenwert,
+NL: nootwaarde,
+DK nodeværdi,
+S: notvärde,
+FI: nuotin aika-arvo.
+
+Note values (durations) are measured as fractions, normally 1/2, of the next
+higher note value.  The longest duration normally used is called @emph{brevis},
+but sometimes (mostly in pre baroque music) the double length note value
+@emph{longa} is used.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+%\override Score.TextScript #'font-style = #'large
+\set Score.automaticBars = ##f
+\relative c'' {
+  \override NoteHead #'style = #'mensural
+  a\longa_"longa" a\breve_"breve"
+  \revert NoteHead #'style
+  a1_"1/1" a2_"1/2" a4_"1/4" s16 a8_"1/8" s16
+  a16_"1/16" s16 a32_"1/32" s16 a64_"1/64" s32 }
+@end lilypond
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+%\override Score.TextScript #'font-style = #'large
+\set Score.automaticBars = ##f
+\relative c'' {
+  r\longa_"longa" r\breve_"breve"
+  r1_"1/1" r2_"1/2" r4_"1/4" s16 r8_"1/8" s16
+  r16_"1/16" s16 r32_"1/32" s16 r64_"1/64" s32 }
+@end lilypond
+
+An augmentation dot after a note multiplies the duration by one and a
+half.  Another dot adds yet a fourth of the duration.
+
+@lilypond[fragment,linewidth=13.0\cm]
+%\override Score.TextScript #'font-style = #'large
+\relative c'' {
+  \time 4/4
+  g4._"pointed" g8 g2 | g4 ~ g8 g g2 \bar "||"
+  g4.._"double pointed" g16 g2 | g4 ~ g8 ~ g16 g g2 \bar "||" }
+@end lilypond
+
+Alternatively note values may be subdivided by other ratios.  Most common is
+subdivision by@w{ }3 (@emph{triplets}) and@w{ }5 (@emph{quintuplets}).
+Subdivisions by@w{ }2 (@emph{tuplets}) or@w{ }4 (@emph{quadruplets}) of
+dotted notes are also frequently used.
+
+@lilypond[fragment,linewidth=13.0\cm]
+%\override Score.TextScript #'font-style = #'large
+\relative c'' {
+  \time 4/4
+  \times 2/3 {g8_"triplets" g g} g4 g8 g g4 \bar "||"
+  \times 2/5 {g8_"quintuplets" g g g g} g4 g8 g g4 \bar "||"
+}
+@end lilypond
+
+@lilypond[fragment,linewidth=13.0\cm]
+\relative c'' {
+  \time 3/4
+  \times 3/2 {g4_"duplets" g} |
+  g4 g g \bar "||"
+  \times 6/4 {g8_"quadruplets" g g g} |
+  g8 g g g g4 \bar "||"
+}
+@end lilypond
+
+@aitem{octave sign}@c
+@aref{G clef}, @aref{F clef}.
+
+@aitem{octave}@c
+ES: octava,
+I: ottava,
+F: octave,
+D: Oktave,
+NL: octaaf,
+DK: oktav,
+S: oktav,
+FI: oktaavi.
+
+@aref{interval}.
+
+@aitemiii{ornament,embellishment,accessory}@c
+ES: adorno,
+I: abbellimento, fioriture,
+F: agrément, ornement,
+D: Verzierung, Ornament,
+NL: versiering,
+DK: forsiring,
+S: ornament,
+FI: koru, hele.
+
+Most commonly used is the @emph{trill}, the rapid alternation of a given note
+with the diatonic @aref{second} above it.  In the music from the
+middle of the 19th century and onwards the trill is performed with the main
+note first while in the music from the preceding baroque and classic periods
+the upper note is played first.
+
+@lilypond[fragment,linewidth=13.0\cm]
+<<
+  \context Staff = sa {
+% \override Score.TextScript #'font-style = #'large
+    \relative c'' {
+      c2._"pre-1850" b4\trill | c1 \bar "||"
+      c2._"post-1850" b4\trill | c1 \bar "||"
+    }
+  }
+  \relative c'' {
+    c2. c32 b c b c b c b | c1
+    c2. b32 c b c \times 4/5 { b c b c b } | c1
+  }
+>>
+@end lilypond
+
+Other frequently used ornaments are the @emph{turn}, the @emph{mordent}, and 
the
+@emph{prall} (inverted mordent).
+
+@lilypond[fragment,linewidth=13.0\cm]
+<<
+  \context Staff = sa {
+% \override Score.TextScript #'font-style = #'large
+    \relative c'' {
+      a4_"turn" b\turn c2 \bar "||"
+      g4_"mordent" a b\mordent a \bar "||"
+      e'4_"prall" d\prall c2 \bar "||"
+    }
+  }
+  \relative c'' {
+    a4 c16[ b a b] c2
+    g4 a b16-[ a b8] a4
+    e'4 e32[ d e d ~ d8] c2
+  }
+>>
+@end lilypond
+
+@aref{appoggiatura}.
+
+@aitem{ossia}@c
+ES: ossia,
+I: ossia,
+F: ossia,
+D: Ossia,
+NL: alternatief,
+DK: ossia,
+S: ossia,
+FI: ossia, vaihtoehtoinen esitystapa.
+
+Ossia (otherwise) marks an alternative.  It is an added staff or piano
+score, usually only a few measures long, which presents another version
+of the music, for example for small hands.
+
+@aitem{part}@c
+ES: parte,
+I: voce, parte,
+F: partie,
+D: Stimme,
+NL: partij,
+DK: stemme,
+S: stämma,
+FI: stemma, instrumenttiosuus.
+
+1.@tie{}In instrumental or choral music the music for the single instrument
+or voice.  2.@tie{}in contrapuntal music @aref{counterpoint} the single
+melodic line of the contrapunctal web.
+
+@aitem{percussion}@c
+ES: percusión,
+I: percussioni,
+F: percussion,
+D: Schlagzeug, Schlagwerk,
+NL: slagwerk,
+DK: slagtøj,
+S: slagverk,
+FI: lyömäsoittimet.
+
+A family of musical instruments which are played on by striking or
+shaking.  Percussion instruments commonly used in a symphony orchestra are
+kettledrums (I: @emph{timpani}, D: @emph{Pauken}), snare drum, bass drum,
+tambourine, cymbals, chinese gong (tam-tam), triangle, celesta, glockenspiel,
+and xylophone.
+
+@aitem{perfect interval}@c
+ES: intervalo justo,
+I: intervallo giusto,
+F: intervalle juste,
+D: reines Intervall,
+NL: rein interval,
+DK: rent interval,
+S: rent intervall,
+FI: puhdas intervalli.
+
+@aref{interval}.
+
+@aitem{phrase}@c
+ES: frase,
+I: frase,
+F: phrase,
+D: Phrase,
+NL: frase, zin,
+DK: frase,
+S: fras,
+FI: fraasi, lause.
+
+A natural division of the melodic line, comparable to a sentence of speech.
+
+@aitem{phrasing}@c
+ES: fraseo,
+I: fraseggio,
+F: phrasé,
+D: Phrasierung,
+NL: frasering,
+DK: frasering,
+S: fra@-se@-ring,
+FI: fraseeraus, jäsentäminen.
+
+The clear rendering in musical performance of the @aref{phrase}s of
+the melody.  Phrasing may be indicated by a @aref{slur}.
+
+@aitem{piano}@c
+ES: piano,
+I: piano,
+F: piano,
+D: piano, leise,
+NL: piano,
+DK: piano,
+S: piano,
+FI, piano, hiljaa.
+
+@emph{piano} (@b{p}) soft, @emph{pianissimo} (@b{pp}) very soft,
+@emph{mezzopiano} (@b{mp}) medium soft.
+
+@aitem{pitch}@c
+ES: altura,
+I: altezza,
+F: hauteur,
+D: Tonhöhe,
+NL: toonhoogte,
+DK: tonehøjde,
+S: tonhöjd,
+FI: sävelkorkeus.
+
+@aitem{pizzicato}@c
+ES: pizzicato,
+I: pizzicato,
+F: pizzicato,
+D: pizzicato,
+NL: pizzicato, getokkeld,
+DK: pizzicato,
+S: pizzicato,
+FI: pizzicato, näppäillen.
+
+Play by plucking the strings.
+
+@aitem{polyphony}@c
+ES: polifonía,
+I: polifonia,
+F: polyphonie,
+D: Polyphonie,
+NL: polyfonie,
+DK: polyfoni,
+S: polyfoni,
+FI: polyfonia, moniäänisyys.
+
+Music written in a combination of several simultaneous voices (parts) of a
+more or less pronounced individuality.  @aref{counterpoint}.
+
+@aitem{portato}@c
+@aref{legato}.
+
+@aitem{presto}@c
+ES: presto,
+I: presto,
+F: presto,
+D: Presto, Sehr schnell,
+NL: presto, Sehr schnell,
+DK: presto,
+S: presto,
+FI: presto, hyvin nopeasti.
+
+Very quick, i.e., quicker than @aref{allegro}; @emph{prestissimo}
+denotes the highest possible degree of speed.
+
+@aitem{Pythagorean comma}@c
+ES: coma pitagórico,
+I: comma pitagorico,
+F: comma pythagoricien,
+D: Pythagoräisches Komma,
+NL: komma van Pythagoras,
+DK: pythagoræisk komma,
+S: pytagoreiskt komma,
+FI: pytagorinen komma.
+
+A sequence of fifths starting on@w{ }C eventually circles back to@w{ }C,
+but this@w{ }C, obtained by adding 12@w{ }fifths, is
+24 @aref{cent}s higher than the@w{ }C obtained by adding
+7@w{ }octaves.  The difference between those two pitches is called the
+Pythagorean comma.
+
+@aitem{quadruplet}@c
+ES: cuatrillo,
+I: quartina,
+F: quartolet,
+D: Quartole,
+NL: kwartool,
+DK: kvartol,
+S: kvartol,
+FI: kvartoli.
+
+@aref{note value}.
+
+@aitem{quarter note}@c
+ES: negra,
+I: semiminima, nera,
+F: noire,
+UK: crotchet,
+D: Viertel, Viertelnote,
+NL: kwartnoot,
+DK: fjerdedelsnode,
+S: fjärdedelsnot,
+FI: neljännesosanuotti.
+
+@aref{note value}.
+
+@aitem{quarter rest}@c
+ES: silencio de negra,
+I: pausa di semiminima,
+F: soupir,
+UK: crotchet rest,
+D: Viertelpause,
+NL: kwart rust,
+DK:@w{ }fjerdedelspause,
+S: fjärdedelspaus,
+FI: neljännesosatauko.
+
+@aref{note value}.
+
+@aitem{quintuplet}@c
+ES: quintillo,
+I: quintina,
+F: quintolet,
+D: Quintole,
+NL: kwintool,
+DK: kvintol,
+S: kvintol,
+FI: kvintoli.
+
+@aref{note value}.
+
+@aitem{rallentando}@c
+ES: rallentando,
+I: rallentando,
+F: rallentando,
+D: rallentando, langsamer werden,
+NL: rallentando,
+DK: rallentando,
+S: rallentando,
+FI: rallerdando, hidastuen.
+
+Abbreviation "rall.".  @aref{ritardando}.
+
+@aitem{relative key}@c
+ES: relativa,
+I: tonalità relativa,
+F: tonalité relative,
+D: Paralleltonart,
+NL: paralleltoonsoort,
+DK: paralleltoneart,
+S: parallelltonart,
+FI: rinnakkaissävellaji.
+
+@aref{major} and @aref{minor} @aref{key}
+with the same @aref{key signature}.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.TextScript #'font-style = #'large
+\relative c' {
+  \key es \major
+  es1_"e flat major" f g as bes c d es
+  \bar "||"
+}
+@end lilypond
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.TextScript #'font-style = #'large
+\relative c' {
+  \key es \major
+  c1_"c minor" d es f g a! b! c \bar "||"
+}
+@end lilypond
+
+@aitem{repeat}@c
+ES: barra de repetición,
+I: ritornello,
+F: barre de reprise,
+D: Wiederholung,
+NL: herhaling,
+DK: gen@-ta@-gel@-se,
+S: repris,
+FI: toisto.
+
+@lilypond[fragment,linewidth=13.0\cm]
+\key g \major
+\time 4/4
+\relative c'' {
+  \repeat volta 2 {g4 g d' d | e e d2 | c4 c b b | a a g2 }
+}
+@end lilypond
+
+@c F: 'pause' if you mean a whole rest, 'silence' if you do not want to
+@c     specify the rest's value.
+
+@aitem{rest}@c
+ES: silencio,
+I: pausa,
+F: silence,
+D: Pause,
+NL: rust,
+DK: pause,
+S: paus,
+FI: tauko.
+
+@aref{note value}.
+
+@aitem{rhythm}@c
+ES: ritmo,
+I: ritmo,
+F: rythme,
+D: Rhythmus,
+NL: ritme,
+DK: rytme,
+S: rytm,
+FI: rytmi.
+
+(a) Metrical rhythm in which every time value is a multiple or fraction of a
+fixed unit of time, called @aref{beat}, and in which the normal
+@aref{accent} recurs in regular intervals, called
+@aref{measure}.  The basic scheme scheme of time values is called
+@aref{meter}.  (b) Measured rhythm which lacks regularly recurrent
+accent.  In modern notation such music appears as a free alternation of
+different measures.  (c) Free rhythm, i.e., the use of temporal values having
+no common metrical unit (beat).
+
+@aitem{ritardando}@c
+ES: retardando,
+I: ritardando,
+F: ritardando,
+D: Ritardando, langsamer werden,
+NL: ritardando,
+DK: ritardando,
+S: ritardando,
+FI: ritardando, hidastuen,
+
+Gradually slackening in speed.  Mostly abbreviated to rit.@: or ritard.
+
+@aitem{ritenuto}@c
+ES: ritenuto,
+I: ritenuto,
+F: ritenuto,
+D: Ritenuto,
+NL: ritenuto,
+DK: ritenuto,
+S: ritenuto,
+FI: ritenuto, hidastaen.
+
+Immediate reduction of speed.
+
+@aitem{scale}@c
+ES: escala,
+I: scala,
+F: gamme,
+D: Tonleiter,
+NL: toonladder,
+DK: Skala,
+S: skala,
+FI: asteikko, sävelasteikko.
+
+@aref{diatonic scale}.
+
+@aitem{scale degree}@c
+ES: grados de la escala,
+I: grado della scala,
+F: degré [de la gamme],
+D: Tonleiterstufe,
+NL: trap [van de toonladder],
+DK: skalatrin,
+S: skalsteg (?),
+FI: sävelaste, asteikon sävel.
+
+Names and symbols used in harmonic analysis to denote tones of the scale as
+roots of chords.  The most important are degrees I = tonic (T), IV =
+sub@-do@-mi@-nant (S) and V = dominant (D).
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+%\override Score.LyricText #'font-style = #'large
+%\set minVerticalAlign = #8
+\oldaddlyrics
+\context Staff \relative c' {
+  c1 d e f g a b c
+}
+\context Lyrics \lyrics {
+  << { I II III IV V VI VII I }
+    { T "" "" S D } >>
+}
+@end lilypond
+
+@aref{functional harmony}.
+
+@aitem{score}@c
+ES: partitura,
+I: partitura,
+F: partition,
+D: Partitur (full score), Klavierauszug (vocal score)
+NL: partituur,
+DK: partitur,
+S: partitur,
+FI: partituuri.
+
+A copy of orchestral, choral, or chamber music showing what each instrument is
+to play, each voice to sing, having each part arranged one underneath the
+other on different staves @aref{staff}.
+
+@aitem{second}@c
+ES: segunda,
+I: secunda,
+F: seconde,
+D: Sekund,
+NL: secunde,
+DK: sekund,
+S: sekund,
+FI: sekunti.
+
+The @aref{interval} between two neigbouring tones of a scale.  A
+@aref{diatonic scale} consists of alternating
+@aref{semitone}s and @aref{whole tone}s, hence the size
+of a se@-cond depends on the scale degrees in question.
+
+@aitem{semitone}@c
+ES: semitono,
+I: semitono,
+F: demi-ton,
+D: Halbton,
+NL: halve toon,
+DK: halvtone,
+S: halvton,
+FI: puolisävel.
+
+The @aref{interval} of a minor second.  The (usually) smallest
+interval in European composed music.  The interval between two neighbouring
+tones on the piano keyboard -- including black and white keys -- is a
+semitone.  An octave may be divided into 12@w{ }semitones.
+@aref{interval}, @aref{chromatic scale}.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.automaticBars = ##f
+\relative c'' { g1 gis s a bes s b! c }
+@end lilypond
+
+@aitem{seventh}@c
+ES: séptima,
+I: settima,
+F: septième,
+D: Septime,
+NL: septiem,
+DK: septim,
+S: septim,
+FI: septimi.
+
+@aref{interval}.
+
+@aitem{sextuplet, sextolet}@c
+I: sestina,
+F: sextolet,
+D: Sextole,
+NL: sextool,
+DK: sekstol,
+S: sextol,
+FI: sekstoli.
+
+@aref{note value}.
+
+@aitem{sharp}@c
+ES: sostenido,
+I: diesis,
+F: dièse,
+D: Kreuz,
+NL: kruis,
+DK: kryds,
+S: kors@-förtecken,
+FI: korotusmerkki.
+
+@aref{accidental}.
+
+@aitem{short appoggiatura}@c
+@aref{appoggiatura}.
+
+@aitem{sixteenth note}@c
+ES: semicorchea,
+I: semicroma,
+F: double croche,
+UK: semiquaver,
+D: Sechzehntel, Sechzehntelnote,
+NL: zes@-ti@-ende noot,
+DK: sekstendedelsnode,
+S: sextondelsnot,
+FI: kuudestoistaosanuotti.
+
+@aref{note value}.
+
+@aitem{sixteenth rest}@c
+ES: silencia de semicorchea,
+I: pausa di semicroma,
+F: quart de soupir,
+UK: semiquaver rest,
+D: Sechzehntelpause,
+NL: zestiende rust,
+DK: sekstendedelspause,
+S: sextondelspaus,
+FI: kuudesosatauko.
+
+@aref{note value}.
+
+@aitem{sixth}@c
+ES: sexta,
+I: sesta,
+F: sixte,
+D: Sexte,
+NL: sext,
+DK: sekst,
+S: sext,
+FI: seksti.
+
+@aref{interval}.
+
+@aitem{sixty-fourth note}@c
+ES: semifusa,
+I: semibiscroma,
+F: quadruple croche,
+UK: hemidemisemiquaver,
+D: Vierundsechzigstel, Vierundsechzigstelnote,
+NL: vierenzestigste noot,
+DK: fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-no@-de,
+S: sextiofjärdedelsnot,
+FI: kuudeskymmenesneljäsosanuotti.
+
+@aref{note value}.
+
+@aitem{sixty-fourth rest}@c
+ES: silencia de semifusa,
+I: pausa di semibiscroma,
+F: seizième de soupir,
+UK: hemidemisemiquaver rest,
+D: Vierundsechzigstelpause,
+NL: vierenzestigste rust,
+DK: fi@-re@-og@-tred@-sinds@-ty@-ven@-de@-dels@-pau@-se,
+S: sextiofjärdedelspaus,
+FI: kuudeskymmenesneljäsosatauko.
+
+@aref{note value}.
+
+@aitem{slur}@c
+ES: ligadura,
+I: legatura (di portamento or espressiva),
+F: liaison, coulé,
+D: Bogen, Legatobogen, Phrasierungsbogen,
+NL: fraseringsboog, legatoboog, streekboog,
+DK: legatobue, fraseringsbue,
+S: båge,
+FI: kaari.
+
+A slur above or below a group of notes indicates that they are to be played
+@aref{legato}, e.g., with one stroke of the violin bow or with one
+breath in singing.
+
+@aitem{solmization}@c
+I: solmisazione,
+F: solmisation,
+D: Solmisation,
+NL: solmizatie,
+DK: solmisation,
+S: solmisation,
+FI: suhteelliset laulunimet.
+
+General term for systems of designating the degrees of the
+@aref{scale}, not by letters, but by syllables (@emph{do}
+(@emph{ut}), @emph{re}, @emph{mi}, @emph{fa}, @emph{sol}, @emph{la}, @emph{si}
+(@emph{ti})).  @aref{scale degree}.
+
+@aitem{sonata}@c
+ES: sonata,
+I: sonata,
+F: sonate,
+D: Sonate,
+NL: sonate,
+DK: sonate,
+S: sonat,
+FI: sonaatti.
+
+In its present-day meaning a sonata denotes an instrumental composition for
+piano or for some other instrument with piano accompaniment, which consists of
+three or four independant pieces, called movements.
+
+@aitem{sonata form}@c
+ES: forma sonata,
+I: forma sonata,
+F: [en] forme de sonate,
+D: Sonatenform,
+NL: hoofdvorm, sonatevorm,
+DK: sonateform,
+S: sonatform,
+FI: sonaattimuoto.
+
+A form used frequently for single movements of the @aref{sonata},
+@aref{symphony}, quartet, etc.  A movement written in sonata form
+falls into three sections called @emph{exposition}, @emph{development} and
+@emph{recapitulation}.  In the exposition the composer introduces some musical
+ideas, consisting of a number of themes; in the development section the 
composer
+"develops" this material, and in the recapitulation the composer repeats the 
exposition,
+with certain modificationsr.  The exposition contains a number of themes
+which fall into two groups, often called first and second subject.  Other
+melodies occurring in each group are considered as continuations of these
+two.  The second theme is in another key, normally in the key of the
+@aref{dominant} if the @aref{tonic} is
+@aref{major}, and in the @aref{relative key} if the
+tonic is @aref{minor}.
+
+@aitem{soprano}@c
+ES: soprano,
+I: soprano,
+F: soprano,
+D: Sopran,
+NL: sopraan,
+DK: sopran,
+S: sopran,
+FI: sopraano, korkea naisääni.
+
+The highest female voice.
+
+@aitem{staccato}@c
+ES: staccato,
+I: staccato,
+F: staccato, piqué, détaché,
+D: staccato,
+NL: staccato,
+DK: staccato,
+S: staccato,
+FI: staccato, lyhyesti, terävästi.
+
+Playing the note(s) short.  Staccato is indicated by a dot above or below the
+note head.
+
+@lilypond[fragment,raggedright]
+\key d \major
+\time 4/4
+\relative c'' {
+  \partial 8 a8 |
+  d4-\staccato cis-\staccato b-\staccato cis-\staccato |
+  d2. \bar "||"
+}
+@end lilypond
+
+@aitemii{staff, pl. staves}@c
+ES: pentagrama,
+I: pentagramma, rigo (musicale),
+F: portée,
+D: Notenzeile,
+NL: (noten)balk, partij,
+DK: nodesystem,
+S: notsystem,
+FI: nuottiviivasto.
+
+A series of (normally@w{ }5) horizontal lines upon and between
+which the musical notes are written, thus indicating (in connection
+with a @aref{clef}) their pitch.  Staves for
+@aref{percussion} instruments may have fewer lines.
+
+@aitem{stem}@c
+ES: plica,
+I: gamba,
+F: queue,
+D: Hals, Notenhals, Stiel,
+NL: stok,
+DK: hals,
+S: skaft,
+FI: nuottipalkki.
+
+Vertical line above or below a @aref{note head} shorter than a
+whole note.  @aref{beam}.
+
+@lilypond[fragment,notime,linewidth=13.0\cm]
+\set Score.autoBeaming = ##f
+\set Score.automaticBars = ##f
+%\override Score.TextScript #'font-style = #'large
+\relative c'' {
+  g2_"1/2" g' s16
+  g,4_"1/4" g' s16
+  g,8_"1/8" g' s16
+  g,16_"1/16" g' s16
+}
+@end lilypond
+
+@aitem{strings}@c
+ES: arcos, cuerdas,
+I: archi,
+F: cordes,
+D: Streicher,
+NL: strijkers,
+DK: strygere,
+S: stråkar,
+FI: jouset.
+
+A family of stringed musical instruments played with a bow.  Strings commonly
+used in a symphony orchestra are violin, viola, violoncello, and double bass.
+
+@aitem{strong beat}@c
+ES: tiempo fuerte,
+I: tempo forte,
+F: temps fort,
+D: betonter Taktteil oder Taktschlag,
+NL: thesis,
+D: betonet taktslag,
+S: betonat taktslag,
+FI: tahdin vahva isku.
+
+@aref{beat}, @aref{accent}, @aref{measure},
+@aref{rhythm}.
+
+@aitem{subdominant}@c
+ES: subdominante,
+I: sottodominante,
+F: sous-dominante,
+D: Subdominante,
+NL: subdominant,
+DK: subdominant,
+S: subdominant,
+FI: subdominantti, alidominantti.
+
+The fourth @aref{scale degree}.  @aref{functional
+harmony}.
+
+@aitem{submediant}@c
+ES: superdominante,
+I: sopratonica,
+F: sous-médiante,
+D: Submediante,
+NL: submediant,
+DK: Submediant,
+S: submediant,
+FI: alikeskisävel.
+
+The sixth @aref{scale degree}.
+
+@aitem{subtonic}@c
+ES: sensible,
+I: sottotonica,
+F: sous-tonique,
+D: Subtonika,
+NL: subtonica,
+DK: Subtonika,
+S: subtonika,
+FI: subtoonika, alitoonika.
+
+The seventh @aref{scale degree}.
+
+@aitem{superdominant}@c
+ES: superdominante,
+I: sopradominante,
+F: sus-dominante,
+D: Superdominante,
+NL: superdominant,
+DK: superdominant,
+S: superdominant,
+FI: ylidominantti.
+
+The sixth @aref{scale degree}.
+
+@aitem{supertonic}@c
+ES: supertónica,
+I: sopratonica,
+F: sus-tonique,
+D: Supertonika,
+NL: supertonica,
+DK: supertonika,
+S: supertonika,
+FI: ylitoonika.
+
+The second @aref{scale degree}.
+
+@aitem{symphony}@c
+ES: sinfonía,
+I: sinfonia,
+F: symphonie,
+D: Sinfonie, Symphonie,
+NL: symfonie,
+DK: symfoni,
+S: symfoni,
+FI: sinfonia.
+
+A symphony may be defined as a @aref{sonata} for orchestra.
+
+@aitem{syncopation}@c
+ES: sincopado,
+I: sincope,
+F: syncope,
+D: Synkope,
+NL: syncope,
+DK: synkope,
+S: synkop,
+FI: synkooppi.
+
+Any deliberate upsetting of the normal pulse of @aref{meter},
+@aref{accent} and @aref{rhythm}.  Our system of musical
+rhythm rests upon the grouping of equal beats into groups of two or three,
+with a regularly recurrent accent on the first beat of each group.  Any
+deviation from this scheme is felt as a disturbance or contradiction between
+the underlaying (normal) pulse and the actual (abnormal) rhythm.
+
+@lilypond[fragment,raggedright]
+\time 4/4
+\relative c' {
+  \partial 4
+  d8 dis |
+  e c'4 e,8 c'4 e,8 c' ( | c2)
+}
+@end lilypond
+
+@aitemii{syntonic comma,dydimic comma}@c
+I: comma sintonico (o didimico),
+F: comma syntonique,
+D: syntonisches Komma,
+NL: syntonische komma,
+DK: syntonisk komma,
+S: syntoniskt komma,
+FI: syntoninen komma, terssien taajuusero luonnollisessa ja Pytagorisessa 
viritysjärjestelmässä.
+
+Difference between the natural third and the third obtained by Pythagorean
+tuning (@aref{Pythagorean comma}), equal to 22@w{ }cents.
+
+@aitem{system}@c
+I: accollatura,
+F: système,
+D: Notensystem,
+NL: systeem,
+DK: system,
+S: system,
+FI: nuottijärjestelmä.
+
+The collection of staves @aref{staff}, two or more, as used for
+writing down of keyboard, chamber, choral, or orchestral music.
+
+@aitem{temperament}@c
+ES: temperamento,
+I: temperamento,
+F: tempérament,
+D: Stimmung, Tem@-pe@-ra@-tur,
+NL: stemming, temperatuur,
+DK: temperatur,
+S: temperatur,
+FI: viritysjärjestelmä.
+
+Systems of tuning in which the intervals deviate from the acoustically pure
+intervals.  @aref{meantone temperament}, @aref{equal
+temperament}.
+
+@aitem{tempo indication}@c
+ES: indicación de tempo,
+I: indicazione di tempo,
+F: indication de temps,
+D: Zeitmaß, Tempobezeichnung,
+NL: tempo aanduiding,
+DK: tempobetegelse,
+S: tempobeteckning,
+FI: tempomerkintä.
+
+The rate of speed of a composition or a section thereof, ranging from the
+slowest to the quickest, as is indicated by tempo marks as
+@aref{largo}, @aref{adagio}, @aref{andante},
+@aref{allegro}, and @aref{presto}.
+
+@aitem{tenor}@c
+ES: tenor,
+I: tenore,
+F: ténor,
+D: Tenor,
+NL: tenor,
+DK: tenor,
+S: tenor,
+FI: tenori, korkea miesääni.
+
+The highest voice of men (apart from @aref{counter tenor}).
+
+@aitem{tenth}@c
+ES: décima,
+I: decima,
+F: dixième,
+D: Dezime,
+NL: deciem,
+DK: decim,
+S: decima,
+FI: desimi.
+
+@aref{note value}.
+
+@aitem{third}@c
+ES: tercera,
+I: terza,
+F: tierce,
+D: Terz,
+NL: terts,
+DK: terts,
+S: ters,
+FI: terssi.
+
+@aref{interval}.
+
+@aitem{thirty-second note}@c
+ES: fusa,
+I: biscroma,
+F: triple croche,
+UK: demisemiquaver,
+D: Zweiunddreissigstel, Zweiunddreissigstelnote,
+NL: twee-endertig@-ste noot,
+DK: toogtredivtedelsnode,
+S: trettiotvåondelsnot,
+FI: kolmanneskymmeneskahdesosanuotti.
+
+@aref{note value}.
+
+@aitem{thirty-second rest}@c
+ES: silencio de fusa,
+I: pausa di biscroma,
+F: huitième de soupir,
+UK: demisemiquaver rest,
+D: Zweiunddreissigstel@-pause,
+NL: 32e rust,
+DK: toogtredivtedelspause,
+S: trettiotvåondelspaus,
+FI: kolmanneskymmeneskahdesosatauko.
+
+@aref{note value}.
+
+@aitemii{thorough bass,figured bass}@c
+ES: bajo cifrado,
+I: basso continuo, basso numerato,
+F: basse chiffrée,
+D: Generalbass, bezifferter Bass,
+NL: basso continuo, becijferde bas
+DK: generalbas,
+S: generalbas,
+FI: kenraalibasso, numeroitu basso.
+
+A method of indicating an accompaniment part by the bass notes only, together
+with figures designating the chief @aref{interval}s and
+@aref{chord}s to be played above the bass notes.
+
+@lilypond[fragment,linewidth=13.0\cm]
+\context GrandStaff <<
+  \context Staff = lh \relative c'' {
+    \time 4/4
+    \key es \major
+    \clef treble
+    << \context Voice = rha {
+        \stemUp
+        es4 d c bes | bes }
+      \context Voice = rhb {
+        \stemDown
+        < bes g >8 as < as f > g < g es > f < d f > es | < g es >4 }
+    >>
+  }
+  \oldaddlyrics
+    \context Staff = rh \relative c' {
+    \clef bass
+    \key es \major
+    es8 c d bes c as bes16 as g f | es4
+  }
+  \context Lyrics \lyrics {
+    \override Lyrics .VerticalAlign #'threshold = #'(6 . 12)
+    << { "" "6" "" "4" "" "6" "" "" "6" "4" }
+      { "" "" "" "2" "" "" "" "" "" "2" } >>
+  }
+>>
+@end lilypond
+
+@aitemii{tie,bind}@c
+ES: ligadura de prolongación,
+I: legatura (di valore),
+F: liaison,
+D: Haltebogen,
+NL: overbinding, bindingsboog,
+DK: bindebue,
+S: bindebåge, överbindning,
+FI: sitominen.
+
+A curved line, identical in appearance with the @aref{slur}, which
+connects two succesive notes of the same pitch, and which has the function of
+uniting them into a single sound equal to the combined durations.
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+\relative c'' { g2 ~ g4. }
+@end lilypond
+
+@aitem{time signature}@c
+ES: cifra indicadora de compás,
+I: segni di tempo,
+F: chiffrage (chiffres indicateurs), signe de valeur,
+D: Taktangabe, Angabe der Taktart,
+NL: maatsoort,
+DK: taktangivelse,
+S: taktartssignatur,
+FI: tahtiosoitus.
+
+@aref{meter}.
+
+@aitem{tone}@c
+ES: sonido,
+I: suono,
+F: ton,
+D: Ton,
+NL: toon,
+DK: tone,
+S: ton,
+FI: ääni.
+
+A sound of definite pitch and duration, as distinct from @emph{noise}.
+Tone is a primary building material of music.
+Music from the 20th century may be based on non tone related sounds.
+
+@aitem{tonic}@c
+ES: tonica,
+I: tonica,
+F: tonique,
+D: Tonika,
+NL: tonica,
+DK: tonika,
+S: tonika,
+FI: toonika.
+
+The first @aref{scale degree}.
+@aref{functional harmony}.
+
+@aitem{transposition}@c
+ES: transposición,
+I: trasposizione,
+F: transposition,
+D: Transposition,
+NL: transpositie,
+DK: transposition,
+S: transponering,
+FI: transponointi.
+
+Shifting a melody up or down in pitch, while keeping the same
+relative pitches.
+
+@lilypond[fragment,linewidth=13.0\cm]
+\context Staff {
+  \time 3/4
+  \relative c'' {
+    \key g \major
+    d4 g,8 a b c | d4 g, g | e' c8 d e fis | g4 g, g \bar "|."
+  }
+}
+@end lilypond
+
+@lilypond[fragment,linewidth=13.0\cm]
+\context Staff {
+  \time 3/4
+  \transpose c bes \relative c'' {
+    \key g \major
+    d4 g,8 a b c | d4 g, g | e' c8 d e fis | g4 g, g \bar "|."
+  }
+}
+@end lilypond
+
+@aitem{treble clef}@c
+ES: clave de sol,
+I: chiave di violino,
+F: clé de sol,
+D: Violinschlüssel, Sopranschlüssel,
+NL: viool sleutel,
+DK:@w{ }diskantnøgle,
+S: diskantklav,
+FI: diskanttiavain.
+
+@aref{G clef}.
+
+@aitem{tremolo}@c
+ES: tremolo,
+I: tremolo,
+F: trémolo,
+D: Tremolo,
+NL: tremolo,
+DK: tremolo,
+S: tremolo,
+FI: tremolo.
+
+On stringed instruments (@aref{strings}) the quick reiteration of
+the same tone, produced by a rapid up-and-down movement movement of the bow
+(a).  The term is also used for the rapid alternation (b) between two notes of
+a @aref{chord}, usually in the distance of a third
+(@aref{interval}).
+
+@lilypond[fragment,notime,raggedright]
+\set Score.automaticBars = ##f
+%\override Score.TextScript #'font-style = #'large
+\relative c' {
+  e2:32_"a"
+  f:32 [ e8:16 f:16 g:16 a:16 ] s4
+  \repeat "tremolo" 8 { e32_"b" g }
+}
+@end lilypond
+
+@aitem{triad}@c
+ES: tríada,
+I: triade,
+F: triade, accord parfait, accord de trois sons,
+D: Drei@-klang,
+NL: drieklank,
+DK: treklang,
+S: treklang,
+FI: kolmisointu.
+
+@aref{chord}.
+
+@aitemii{trill,shake}@c
+ES: trino,
+I: trillo,
+F: trille, tremblement, battement (cadence),
+D: Triller,
+NL: triller,
+DK: trille,
+S: drill,
+FI: trilli.
+
+@aref{ornament}.
+
+@aitem{triple meter}@c
+ES: compás compuesto,
+I: tempo ternario,
+F: mesure ternaire,
+D: in drei,
+NL: driedelige maatsoort,
+DK: tredelt takt,
+S: tretakt,
+FI: kolmijakoinen.
+
+@aref{meter}.
+
+@aitem{triplet}@c
+ES: tresillo,
+I: terzina,
+F: triolet,
+D: Triole,
+NL: triool,
+DK: triol,
+S: triol,
+FI: trioli.
+
+@aref{note value}.
+
+@aitem{tritone}@c
+ES: trítono,
+I: tritono,
+F: triton,
+D: Tritonus,
+NL: tritoon,
+DK: tritonus,
+S: tritonus,
+FI: tritonus.
+
+@aref{interval}.
+
+@aitem{tuning fork}@c
+ES: diapasón,
+I: diapason, corista,
+F: diapason,
+D: Stimmgabel,
+NL: stemvork,
+DK: stemmegaffel,
+S: stämgaffel,
+FI: viritysavain.
+
+A two-pronged piece of steel used to indicate absolute pitch.  Tuning forks
+give the international pitch for the tone @emph{a} (440 vibrations per second.)
+
+@aitemii{turn,gruppetto}@c
+ES: grupo,
+I: gruppetto,
+F: grupetto,
+D: Doppelschlag,
+NL: dubbelslag,
+DK: dobbeltslag,
+S: dubbelslag,
+FI: korukuvio.
+
+@aref{ornament}.
+
+@aitem{unison}@c
+ES: unísono,
+I: unisono,
+F: unisson,
+D: unisono,
+NL: unisono,
+DK: unison,
+S: unison,
+FI: unisono, yksiäänisesti.
+
+Playing of the same notes or the same melody by various instruments (voices)
+or by the whole orchestra (choir), either at exactly the same pitch or in a
+different octave.
+
+@aitem{upbeat}@c
+ES: entrada anacrúsica,
+I: anacrusi,
+F: anacrouse, levée,
+D: Auftakt,
+NL: opmaat,
+DK: optakt,
+S: upptakt,
+FI: kohotahti.
+
+Initial note(s) of a melody occurring before the first bar
+line.  @aref{measure}, @aref{meter}.
+
+@lilypond[fragment,linewidth=13.0\cm]
+\key f \major
+\time 4/4
+\relative c' {
+  \partial 4 f4 | bes4. a8 bes4 c |
+  bes( a) g f | bes4. a8 bes4 c | f,2. \bar "||" }
+@end lilypond
+
+@aitem{voice}@c
+ES: voz,
+I: voce,
+F: voix,
+D: Stimme,
+NL: stem,
+DK: stemme,
+S: stämma,
+FI: ääni, lauluääni.
+
+1.@tie{}Human voices: @aref{soprano}, @aref{mezzo-soprano},
+@aref{contralto}, @aref{tenor},
+@aref{baritone}, @aref{bass}.
+2.@tie{}A melodic layer or part of a polyphonic composition.
+
+@aitem{weak beat}@c
+ES: tiempo débil,
+I: tempo debole, arsi,
+F: temps faible,
+D: unbetonter Taktteil oder Taktschlag,
+NL: arsis,
+DK: ubetonet taktslag,
+S: obetonat taktslag,
+FI: tahdin heikko isku.
+
+@aref{beat}, @aref{measure}, @aref{rhythm}.
+
+@aitem{whole note}@c
+ES: redonda,
+I: semibreve,
+F: ronde,
+UK: semibreve,
+D: Ganze, ganze Note,
+NL: hele noot,
+DK: helnode,
+S: helnot,
+FI: kokonuotti.
+
+@aref{note value}.
+
+@aitem{whole rest}@c
+ES: silencio de redonda,
+I: pausa di semibreve,
+F: pause,
+UK: semibreve rest,
+D: ganze Pause, ganztaktige Pause,
+NL: hele rust,
+DK: helnodespause,
+S: helpaus,
+FI: kokotauko.
+
+@aref{note value}.
+
+@aitem{whole tone}@c
+ES: tono,
+I: tono intero,
+F: ton entier,
+D: Ganzton,
+NL: hele toon,
+DK: heltone,
+S: helton,
+FI: kokoaskel.
+
+The @aref{interval} of a major second.  The interval between two
+tones on the piano keyboard with exactly one key between them -- including
+black and white keys -- is a whole tone.
+
+@aitem{woodwind}@c
+ES: maderas,
+I: legni,
+F: les bois,
+D: Holzbläser,
+NL: houtblazers,
+DK træblæsere,
+S: träblåsare,
+FI: puupuhaltimet.
+
+A family of blown wooden musical instruments.  Today some of these instruments
+are actually made from metal.  The woodwind instruments commonly used in a
+symphony orchestra are flute, oboe, clarinet, saxophone, and bassoon.
+
+@end table
+
+@page
+
+@table @code
+@item DURATION NAMES, NOTES AND RESTS
+@end table
+
+@multitable @columnfractions .15 .26 .33 .26
+
+@item
+  @tab @strong{UK}
+  @tab @strong{I}
+  @tab @strong{F}
+@item
+  @tab @strong{D}
+  @tab @strong{NL}
+  @tab @strong{DK}
+@item
+  @tab @strong{S}
+  @tab @strong{FI}
+  @tab
+
+@item
+
+@item @strong{longa}
+  @tab longa
+  @tab longa
+  @tab longa
+@item
+  @tab Longa
+  @tab longa
+  @tab longa
+@item
+  @tab longa
+  @tab longa
+  @tab
+
+@item
+
+@item @strong{breve}
+  @tab breve
+  @tab breve
+  @tab brève
+@item
+  @tab Brevis
+  @tab brevis
+  @tab brevis
+@item
+  @tab brevis
+  @tab brevis
+  @tab
+
+@item
+
+@item @strong{whole}
+  @tab semi@-breve
+  @tab semi@-breve
+  @tab ronde
+@item
+  @tab Ganze
+  @tab hele
+  @tab hel
+@item
+  @tab hel
+  @tab koko@-nuotti/@w{-tauko}
+  @tab
+
+@item
+
+@item @strong{half}
+  @tab minim
+  @tab minima
+  @tab blanche
+@item
+  @tab Halbe
+  @tab halve
+  @tab halv
+@item
+  @tab halv
+  @tab puoli@-nuotti/@w{-tauko}
+  @tab
+
+@item
+
+@item @strong{quarter}
+  @tab crotchet
+  @tab semiminima
+  @tab noire
+@item
+  @tab Viertel
+  @tab kwart
+  @tab fjerdedel
+@item
+  @tab fjärdedel
+  @tab neljännesosa@-nuotti/@w{-tauko}
+  @tab
+
+@item
+
+@item @strong{eighth}
+  @tab quaver
+  @tab croma
+  @tab croche
+@item
+  @tab Achtel
+  @tab achtste
+  @tab ottendedel
+@item
+  @tab åttondel
+  @tab kahdeksasosa@-nuotti/@w{-tauko}
+  @tab
+
+@item
+
+@item @strong{sixteenth}
+  @tab semiquaver
+  @tab semicroma
+  @tab double croche
+@item
+  @tab Sechzehntel
+  @tab zestiende
+  @tab sekstendedel
+@item
+  @tab sextondel
+  @tab kuudestoistaosa@-nuotti/@w{-tauko}
+  @tab
+
+@item
+
+@item @strong{thirty-second}
+  @tab demisemiquaver
+  @tab biscroma
+  @tab triple croche
+@item
+  @tab Zweiunddreissigstel
+  @tab tweeendertigste
+  @tab toogtredivtedel
+@item
+  @tab trettiotvåondel
+  @tab kolmaskymme@-neskahdesosa@-nuotti/@w{-tauko}
+  @tab
+
+@item
+
+@item @strong{sixty-fourth}
+  @tab hemidemisemiquaver
+  @tab semibiscroma
+  @tab quadruple croche
+@item
+  @tab Vierundsechzigstel
+  @tab vierenzestigste
+  @tab fireogtred@-sindstyvendedel
+@item
+  @tab sextiofjärdedel
+  @tab kuudeskymme@-nesneljäsosa@-nuotti/@w{-tauko}
+  @tab
+
+@end multitable
+@c @item @tab @tab @tab @tab @tab @tab @tab @tab @tab
+
+@page
+
+@table @code
+@item PITCH NAMES
+@end table
+
+@multitable @columnfractions .105 .145 .125 .125 .125 .125 .125 .125
+
+@item @tab @strong{I} @tab @strong{F} @tab @strong{D} @tab
+@strong{NL} @tab @strong{DK} @tab @strong{S} @tab @strong{FI} 
+
+@item
+
+@item @strong{c} @tab do @tab ut @tab C @tab c @tab c @tab c @tab c
+
+@item
+
+@item @strong{c-sharp} @tab do diesis @tab ut dièse @tab Cis @tab cis @tab
+cis @tab cis @tab cis
+
+@item
+
+@item @strong{d-flat} @tab re bemolle @tab ré bémol @tab Des @tab des @tab
+des @tab des @tab des
+
+@item
+
+@item @strong{d} @tab re @tab ré @tab D @tab d @tab d @tab d @tab d
+
+@item
+
+@item @strong{e} @tab mi @tab mi @tab E @tab e @tab e @tab e @tab e
+
+@item
+
+@item @strong{f} @tab fa @tab fa @tab F @tab f @tab f @tab f @tab f
+
+@item
+
+@item @strong{g} @tab sol @tab sol @tab G @tab g @tab g @tab g @tab g
+
+@item
+
+@item @strong{a-flat} @tab la bemolle @tab la bémol @tab As @tab as @tab as
+@tab as @tab as
+
+@item
+
+@item @strong{a} @tab la @tab la @tab A @tab a @tab a @tab a @tab a
+
+@item
+
+@item @strong{a-sharp} @tab la diesis @tab la dièse @tab Ais @tab ais @tab
+ais @tab ais @tab ais
+
+@item
+
+@item @strong{b-flat} @tab si bemolle @tab si bémol @tab B @tab bes @tab b
+@tab b @tab b
+
+@item
+
+@item @strong{b} @tab si @tab si @tab H @tab b @tab h @tab h @tab h
+
+@end multitable
+
+
+@unnumbered Literature used
+
+@itemize
+@item The Harvard Dictionary of Music, London 1944.  Many more or less
+literal quotes from its articles have been included into the item
+explanation texts.
+
+@item Hugo Riemanns Musiklexicon, Berlin 1929.
+
+@item Polyglottes Wörterbuch der musikalischen Terminologie, Kassel 1980.
+
+@item Oxford Advanced Learner's Dictionary of Current English, Third Edition
+1974.
+
+@item Webster's Revised Unabridged Dictionary, Springfield 1913.
+@end itemize
+
+@bye
Index: lilypond/Documentation/user/notation.itely
diff -u lilypond/Documentation/user/notation.itely:1.147.2.1 
lilypond/Documentation/user/notation.itely:1.147.2.2
--- lilypond/Documentation/user/notation.itely:1.147.2.1        Sun Nov  7 
23:16:07 2004
+++ lilypond/Documentation/user/notation.itely  Mon Nov  8 19:57:55 2004
@@ -108,7 +108,7 @@
 @end lilypond
 
 There are predefined sets of note names for various other languages.
-To use them,  include the language specific init file.  For
+To use them, include the language specific init file.  For
 example: @code{\include "english.ly"}.  The available language files
 and the note names they define are
 
@@ -168,7 +168,7 @@
 after the pitch.  A cautionary accidental
 @cindex cautionary accidental
 @cindex parenthesized accidental
-(i.e. an accidental within parentheses) can be obtained by adding the
+(i.e., an accidental within parentheses) can be obtained by adding the
 question mark `@code{?}' after the pitch.
 
 @lilypond[quote,raggedright,fragment,verbatim]
@@ -322,11 +322,11 @@
 @lilypond[quote]
 \score {
  \relative c'' {
-    a\breve*1/2  \autoBeamOff
+    a\breve*1/2 \autoBeamOff
     a1 a2 a4 a8 a16 a32 a64 a64
    \bar "empty"
    \break
-    r\longa*1/4 r\breve  *1/2
+    r\longa*1/4 r\breve *1/2
     r1 r2 r4 r8 r16 r32 r64 r64
   }
   \layout {
@@ -402,7 +402,7 @@
 This manual: @ref{Tuplets}
 
 
-@c  TODO: I'm not certain that Stems belong here in the manual.  -gp
+@c TODO: I'm not certain that Stems belong here in the manual.  -gp
 @node Stems
 @subsection Stems
 
@@ -666,7 +666,7 @@
 @subsection Octave check
 
 
-Octave checks make octave errors easier to correct:  a note may be
+Octave checks make octave errors easier to correct: a note may be
 followed by @code{=}@var{quotes} which indicates what its absolute
 octave should be.  In the following example,
 @example
@@ -856,7 +856,7 @@
 
 @cindex adjusting staff symbol
 
-Notes, dynamic signs, etc. are grouped
+Notes, dynamic signs, etc., are grouped
 with a set of horizontal lines, into a staff (plural `staves').  In our
 system, these lines are drawn using a separate layout object called
 staff symbol.
@@ -1050,7 +1050,7 @@
 
 The @code{set-octavation} function also takes -1 (for 8va bassa) and 2
 (for 15ma) as arguments.  Internally the function sets the properties
-@code{ottavation} (e.g. to @code{"8va"}) and
+@code{ottavation} (e.g., to @code{"8va"}) and
 @code{centralCPosition}.  For overriding the text of the bracket, set
 @code{ottavation} after invoking @code{set-octavation}, i.e.,
 
@@ -1167,7 +1167,7 @@
 Partial measures, for example in upsteps, are entered using the
 @code{\partial} command
 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
-\partial 16*5  c16 cis d dis e | a2. c,4 | b2
+\partial 16*5 c16 cis d dis e | a2. c,4 | b2
 @end lilypond
 
 The syntax for this command is
@@ -1204,7 +1204,7 @@
 @cindex @code{\bar}
 
 Bar lines and bar numbers are calculated automatically.  For unmetered
-music (e.g. cadenzas), this is not desirable.  By setting
+music (cadenzas, for example), this is not desirable.  By setting
 @code{Score.timing} to false, this automatic timing can be switched
 off.  Empty bar lines,
 
@@ -1353,7 +1353,7 @@
 @node Controlling formatting of prefatory matter
 @subsection Controlling formatting of prefatory matter
 
-TODO  Somebody needs to explain this example, but I don't know what
+TODO: Somebody needs to explain this example, but I don't know what
 they're trying to do, so it won't be me.  -gp
 
 @lilypond[quote,verbatim]
@@ -1409,8 +1409,8 @@
 
 @lilypond[quote,raggedright,verbatim,fragment]
 \context Staff \relative c'' {
-  c4 << { f d e  } \\ { b c2 } >>
-  c4 << g' \\ b, \\  f' \\ d >>
+  c4 << { f d e } \\ { b c2 } >>
+  c4 << g' \\ b, \\ f' \\ d >>
 }
 @end lilypond
 
@@ -1418,7 +1418,7 @@
 voices are sometimes called ``layers'' in other notation packages}
 @cindex layers
 to be instantiated.  They bear the names @code{"1"}, @code{"2"}, etc.  In
-each of these contexts, vertical direction of slurs, stems, etc. is set
+each of these contexts, vertical direction of slurs, stems, etc., is set
 appropriately.
 
 @cindex @code{\voiceOne}
@@ -1432,9 +1432,9 @@
 @lilypond[quote,raggedright,verbatim]
 \relative c''
 \context Staff <<
-  \new Voice { \voiceOne cis2 b  }
+  \new Voice { \voiceOne cis2 b }
   \new Voice { \voiceThree b4 ais ~ ais4 gis4 }
-  \new Voice { \voiceTwo fis4~  fis4 f ~ f  } >>
+  \new Voice { \voiceTwo fis4~ fis4 f ~ f } >>
 @end lilypond
 
 @noindent
@@ -1468,7 +1468,7 @@
 for example
 
 @lilypond[quote,raggedright,fragment,verbatim]
-\context Voice << c''4 \\  r4 >>
+\context Voice << c''4 \\ r4 >>
 @end lilypond
 
 
@@ -1514,7 +1514,7 @@
   <d g>
 } \\ {
   <b f'>
-  \once \override NoteColumn  #'force-hshift = #1.7
+  \once \override NoteColumn #'force-hshift = #1.7
   <b f'>
 } >>
 @end lilypond
@@ -1568,7 +1568,7 @@
 LilyPond inserts beams automatically
 
 @lilypond[quote,raggedright,fragment,verbatim,relative=2]
-\time 2/4 c8 c c c \time 6/8 c c c c8. c16  c8
+\time 2/4 c8 c c c \time 6/8 c c c c8. c16 c8
 @end lilypond
 
 When these automatic decisions are not good enough, beaming can be
@@ -1794,9 +1794,9 @@
 @lilypond[quote,raggedright,relative=2,fragment,verbatim]
 {
   b8[ b]
-  \override Beam  #'neutral-direction = #-1
+  \override Beam #'neutral-direction = #-1
   b[ b]
-  \override Beam  #'neutral-direction = #1
+  \override Beam #'neutral-direction = #1
   b[ b]
 }
 @end lilypond
@@ -1858,7 +1858,7 @@
 
 The @code{voice} option should be used if the voices
 are to be read solely by individual musicians.  If the staff is to be
-used by one musician (e.g. a conductor) then
+used by one musician (e.g., a conductor) then
 @code{modern} or @code{modern-cautionary}
 should be used instead.
 
@@ -1949,7 +1949,7 @@
 
 This is a problem when accidentals in a chord depend on each other,
 which does not happen for the default accidental style.  The problem
-can be solved by manually inserting @code{!} and @code{?}  for the
+can be solved by manually inserting @code{!} and @code{?} for the
 problematic notes.
 
 
@@ -2006,7 +2006,7 @@
 parentheses, the direction is also set.  For example,
 
 @lilypond[relative=2,raggedright,quote,verbatim,fragment]
-c4_( c)   c^( c)
+c4_( c) c^( c)
 @end lilypond
 
 Some composers write two slurs when they want legato chords.  This can
@@ -2048,7 +2048,7 @@
 respectively
 
 @lilypond[quote,raggedright,fragment,verbatim,relative=1]
-\time 6/4 c'\( d( e) f( e)  d\)
+\time 6/4 c'\( d( e) f( e) d\)
 @end lilypond
 
 Typographically, the phrasing slur behaves almost exactly like a
@@ -2176,7 +2176,7 @@
 @subsection Text spanners
 @cindex Text spanners
 
-Some performance indications, e.g. @i{rallentando} or @i{accelerando},
+Some performance indications, e.g., @i{rallentando} or @i{accelerando},
 are written as text and are extended over many measures with dotted
 lines.  Such texts are created using text spanners; attach
 @code{\startTextSpan} and @code{\stopTextSpan} to the first and last
@@ -2323,7 +2323,7 @@
 \once \override TextScript #'script-priority = #-100
 a4^\prall^\markup { \sharp }
 
-\once \override Script  #'script-priority = #-100
+\once \override Script #'script-priority = #-100
 a4^\prall^\markup { \sharp }
 @end lilypond
 
@@ -2341,7 +2341,7 @@
 
 
 
-@node  Running trills
+@node Running trills
 @subsection Running trills
 
 Long running trills are made with @code{\startTrillSpan} and
@@ -2389,7 +2389,7 @@
 @cindex subscript
 
 You can use the thumb-script to indicate that a note should be
-played with the thumb (e.g. in cello music)
+played with the thumb (e.g., in cello music)
 
 @lilypond[quote,verbatim,raggedright,fragment,relative=2]
 <a_\thumb a'-3>8 <b_\thumb b'-3>
@@ -2478,7 +2478,7 @@
 @lilypond[quote,raggedright]
 <<
   \relative c''{
-    c4 \grace c16  c4  \grace {
+    c4 \grace c16 c4 \grace {
     c16[ d16] } c2 c4
   }
   \new Lyrics \lyricmode {
@@ -2486,7 +2486,7 @@
 
     \markup { (0,0) } 4
     \grace { \markup {
-      ( \fraction 1 4 ,  \fraction -1 16 ) } 16 }
+      ( \fraction 1 4 , \fraction -1 16 ) } 16 }
     \markup { (\fraction 1 4 , 0 ) } 4
     \grace {
       \markup { (\fraction 2 4 , \fraction "-1" 8 ) } 16
@@ -2574,19 +2574,19 @@
 note end up on different staves.
 
 Grace note synchronization can also lead to surprises.  Staff notation,
-such as key signatures, bar lines, etc. are also synchronized.  Take
+such as key signatures, bar lines, etc., are also synchronized.  Take
 care when you mix staves with grace notes and staves without, for example,
 
 @lilypond[quote,raggedright,relative=2,verbatim,fragment]
 << \new Staff { e4 \bar "|:" \grace c16 d4 }
-   \new Staff { c4  \bar "|:"  d4 } >>
+   \new Staff { c4 \bar "|:" d4 } >>
 @end lilypond
 
 @noindent
 This can be remedied by inserting grace skips, for the above example
 
 @example
-\new Staff @{ c4  \bar "|:"  \grace s16 d4 @}
+\new Staff @{ c4 \bar "|:" \grace s16 d4 @}
 @end example
 
 Grace sections should only be used within sequential music
@@ -2832,7 +2832,7 @@
   \time 3/4
   c c c
   \set Staff.voltaSpannerDuration = #(ly:make-moment 3 4)
-  \repeat "volta" 5 { d d d  }
+  \repeat "volta" 5 { d d d }
   \alternative { { e e e f f f }
   { g g g } }
 }
@@ -3034,7 +3034,7 @@
 
 @lilypond[quote,verbatim,raggedright]
 \new Voice \relative c' {
-  \repeat "percent" 4  { c4 }
+  \repeat "percent" 4 { c4 }
   \repeat "percent" 2 { c2 es2 f4 fis4 g4 c4 }
 }
 @end lilypond
@@ -3136,8 +3136,8 @@
 
 @lilypond[quote,raggedright,fragment,verbatim]
 \new DrumStaff <<
-  \context DrumVoice = "1" {  s1 *2 }
-  \context DrumVoice = "2" {  s1 *2 }
+  \context DrumVoice = "1" { s1 *2 }
+  \context DrumVoice = "2" { s1 *2 }
   \drummode {
     bd4 sn4 bd4 sn4
     <<
@@ -3186,7 +3186,7 @@
 @end lilypond
 
 The drum scheme supports six different toms.  When there fewer toms, simply
-select the toms that produce the desired result, i.e. to get toms on
+select the toms that produce the desired result, i.e., to get toms on
 the three middle lines you use @code{tommh}, @code{tomml} and
 @code{tomfh}.
 
@@ -3444,10 +3444,10 @@
 @example
 <<
   \context Staff = up @{
-    \skip 1 * 10  %@emph{ keep staff alive}
+    \skip 1 * 10  % @emph{keep staff alive}
     @}
   \context Staff = down @{
-    \skip 1 * 10  %@emph{idem}
+    \skip 1 * 10  % @emph{idem}
     @}
 >>
 @end example
@@ -3855,7 +3855,7 @@
 
 
 @node The Lyrics context
-@subsection  The Lyrics context
+@subsection The Lyrics context
 
 
 Lyrics are printed by interpreting them in a @internalsref{Lyrics} context
@@ -3904,7 +3904,7 @@
 The final input would resemble
 
 @example
-<<\context ChoirStaff  << @emph{setup the music}  >>
+<<\context ChoirStaff << @emph{setup the music} >>
   \lyricsto "soprano" @emph{etc}
   \lyricsto "alto" @emph{etc}
   @emph{etc}
@@ -4102,7 +4102,7 @@
     % one syllable too soon!
     \set associatedVoice = alternative % applies to "ran"
     Ty --
-    ran  --
+    ran --
     no --
     \set associatedVoice = lahlah % applies to "rus"
     sau -- rus Rex
@@ -4284,7 +4284,7 @@
 @internalsref{AmbitusLine}, @internalsref{AmbitusNoteHead},
 @internalsref{AmbitusAccidental}.
 
-Examples:  @inputfileref{input/@/regression,ambitus@/.ly}.
+Examples: @inputfileref{input/@/regression,ambitus@/.ly}.
 
 @refbugs
 
@@ -4301,7 +4301,7 @@
 * Harmonic notes::
 @end menu
 
-@node Harmonic notes,  , Other instrument specific notation, Other instrument 
specific notation
+@node Harmonic notes, , Other instrument specific notation, Other instrument 
specific notation
 @subsection Harmonic notes
 
 @cindex artificial harmonics
@@ -4337,7 +4337,7 @@
 @cindex Tablatures basic
 
 The string number associated to a note is given as a backslash
-followed by a number, e.g. @code{c4\3} for a C quarter on the third
+followed by a number, e.g., @code{c4\3} for a C quarter on the third
 string.  By default, string 1 is the highest one, and the tuning
 defaults to the standard guitar tuning (with 6 strings).  The notes
 are printed as tablature, by using @internalsref{TabStaff} and
@@ -4364,7 +4364,7 @@
 e16 fis gis a b4
 @end example
 @lilypond[quote,raggedright]
-frag =  {
+frag = {
   \key e \major
   e16 fis gis a b4
   \set TabStaff.minimumFret = #8
@@ -4388,7 +4388,7 @@
 chord.
 
 
-@node Non-guitar tablatures,  , Tablatures basic, Tablatures
+@node Non-guitar tablatures, , Tablatures basic, Tablatures
 @subsection Non-guitar tablatures
 @cindex Non-guitar tablatures
 
@@ -4439,7 +4439,7 @@
 @cindex Chords
 
 LilyPond has support for printing chord names.  Chords may be entered
-in musical chord notation, i.e. @code{< .. >}, but they can also be
+in musical chord notation, i.e., @code{< .. >}, but they can also be
 entered by name.  Internally, the chords are represented as a set of
 pitches, so they can be transposed
 
@@ -4492,7 +4492,7 @@
 modifier (which may include a number if desired)
 @c
 @lilypond[quote,fragment,verbatim]
-\chordmode { e1:m e1:7 e1:m7  }
+\chordmode { e1:m e1:7 e1:m7 }
 @end lilypond
 The first number following the root is taken to be the `type' of the
 chord, thirds are added to the root until it reaches the specified
@@ -4515,7 +4515,7 @@
 Chord steps can be altered by suffixing a @code{-} or @code{+} sign
 to the number
 @lilypond[quote,verbatim,fragment]
-\chordmode { c:7+ c:5+.3-  c:3-.5-.7- }
+\chordmode { c:7+ c:5+.3- c:3-.5-.7- }
 @end lilypond
 Removals are specified similarly, and are introduced by a caret.  They
 must come after the additions
@@ -4577,7 +4577,7 @@
 @cindex @code{/+}
 
 A bass note can be added instead of transposed out of the chord,
-by using  @code{/+}@var{pitch}.
+by using @code{/+}@var{pitch}.
 
 @lilypond[quote,raggedright,fragment,verbatim]
 \chordmode { c1 c/+g c/+f }
@@ -4614,7 +4614,7 @@
 
 @lilypond[quote,verbatim,raggedright]
 harmonies = {
-  \chordmode {a1 b c} <d' f' a'>  <e' g' b'>
+  \chordmode {a1 b c} <d' f' a'> <e' g' b'>
 }
 <<
   \context ChordNames \harmonies
@@ -4675,7 +4675,7 @@
 @end example
 
 To get this information into @code{chordNameExceptions} takes a little
-manoeuvring. The following code transforms @code{chExceptionMusic}
+manoeuvring.  The following code transforms @code{chExceptionMusic}
 (which is a sequential music) into a list of exceptions.
 @example
 (sequential-music-to-chord-exceptions chExceptionMusic #t)
@@ -4724,7 +4724,7 @@
 
 @cindex @code{chordNoteNamer}
 @item chordNoteNamer
-The default is to print single pitch, e.g. the bass note, using the
+The default is to print single pitch, e.g., the bass note, using the
 @code{chordRootNamer}.  The @code{chordNoteNamer} property can be set
 to a specialized function to change this behavior.  For example, the
 base can be printed in lower case.
@@ -4783,7 +4783,7 @@
 @cindex fret diagrams
 @cindex chord diagrams
 
-Fret diagrams can be added to music as a markup to the desired note. The
+Fret diagrams can be added to music as a markup to the desired note.  The
 markup contains information about the desired fret diagram, as shown in the
 following example
 
@@ -4800,7 +4800,7 @@
     }
   }
   fis' fis' fis'
-  c' ^\markup  \override #'(dot-radius . 0.35) {
+  c' ^\markup \override #'(dot-radius . 0.35) {
     \override #'(finger-code . in-dot) {
       \override #'(dot-color . white) {
         \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);"
@@ -4837,7 +4837,7 @@
 
 @example
 \set squashedPosition = #0
-\override NoteHead  #'style = #'slash
+\override NoteHead #'style = #'slash
 @end example
 
 @noindent
@@ -4863,7 +4863,7 @@
 @node Orchestral music
 @section Orchestral music
 
-@cindex  Writing parts
+@cindex Writing parts
 
 Orchestral music involves some special notation, both in the full
 score and the individual parts.  This section explains how to tackle
@@ -4888,7 +4888,7 @@
 @end menu
 
 @node System start delimiters
-@subsection  System start delimiters
+@subsection System start delimiters
 
 Polyphonic scores consist of many staves.  These staves can be
 constructed in three different ways
@@ -4960,7 +4960,7 @@
 in the following example.
 
 @lilypond[verbatim,raggedright,quote]
-cadenza =  \relative c' {
+cadenza = \relative c' {
   c4 d8 << { e f g } \\ { d4. } >>
   g4 f2 g4 g
 }
@@ -4995,8 +4995,8 @@
 @end lilypond
 
 @noindent
-(The letter I is skipped in accordance with engraving traditions.)
-@c  umm, is the manual the right place for feature requests?  :)  -gp
+(The letter@tie{}`I' is skipped in accordance with engraving traditions.)
+@c umm, is the manual the right place for feature requests?  :)  -gp
 @c FIXME - should make that tunable.
 
 The mark is incremented automatically if you use @code{\mark
@@ -5174,7 +5174,7 @@
 is changed to @code{to}.
 
 
-For example, consider a piece written in the key of  D major.  If
+For example, consider a piece written in the key of D@tie{}major.  If
 this piece is a little too low for its performer, it can be
 transposed up to E major with
 @example
@@ -5227,7 +5227,7 @@
 The transposition is entered after the keyword @code{\transposition}
 
 @example
-\transposition bes   %%  B-flat clarinet
+\transposition bes   %% B-flat clarinet
 @end example
 
 @noindent
@@ -5236,7 +5236,7 @@
 affect how notes are printed in the current staff.
 
 The pitch to use for @code{\transposition} should correspond to the
-transposition of the notes. For example, when entering a score in
+transposition of the notes.  For example, when entering a score in
 concert pitch, typically all voices are entered in C, so
 they should be entered as
 
@@ -5245,7 +5245,7 @@
   \transposition c'
   ...
 @}
-saxophone  = @{
+saxophone = @{
   \transposition c'
   ...
 @}
@@ -5254,7 +5254,7 @@
 The command @code{\transposition} should be used when the music is
 entered from a (transposed) orchestral part.  For example, in
 classical horn parts, the tuning of the instrument is often changed
-during a piece. When copying the notes from the part, use
+during a piece.  When copying the notes from the part, use
 @code{\transposition}, e.g.
 
 @example
@@ -5288,7 +5288,7 @@
 
 @lilypond[quote,raggedright,fragment,verbatim]
 \time 4/4 r1 | R1 | R1*2
-\set Score.skipBars = ##t R1*17  R1*4
+\set Score.skipBars = ##t R1*17 R1*4
 @end lilypond
 
 The @code{1} in @code{R1} is similar to the duration notation used for
@@ -5361,7 +5361,7 @@
 
 @refbugs
 
-It is not possible to use fingerings (e.g. @code{R1-4}) to put numbers
+It is not possible to use fingerings (e.g., @code{R1-4}) to put numbers
 over multi-measure rests.
 
 @cindex condensing rests
@@ -5503,7 +5503,7 @@
 removed from the first system too, set @code{remove-first} to false in
 @internalsref{RemoveEmptyVerticalGroup}.
 
-Another application is making ossia sections, i.e. alternative
+Another application is making ossia sections, i.e., alternative
 melodies on a separate piece of staff, with help of a Frenched
 staff.  See @inputfileref{input/@/test,ossia@/.ly} for an example.
 
@@ -5601,21 +5601,22 @@
 blocks.
 
 After calling @code{\addquote}, the quotation may then be done with
-@code{\quote},
+@code{\quoteDuring} or @code{\cueDuring},
 
 @example
-\quote @var{name} @var{duration}
+\quoteDuring #@var{name} @var{music}
 @end example
 
-During a part, a piece of music can be quoted with the @code{\quote}
+During a part, a piece of music can be quoted with the @code{\quoteDuring}
 command.
 
 @example
-\quote clarinet 2.
+\quoteDuring #"clarinet" @{ s2. @}
 @end example
 
-This would cite three quarter notes (@code{2.} is a dotted half note)
-of the previously added @code{clarinet} voice.
+This would cite three quarter notes (the duration of @code{s2.})  of
+the previously added @code{clarinet} voice.
+
 
 More precisely, it takes the current time-step of the part being
 printed, and extracts the notes at the corresponding point of the
@@ -5633,14 +5634,14 @@
 }
 
 {
-  e'8 f'8 \quote clarinet 2
+  e'8 f'8 \quoteDuring #"clarinet" { s2 }
 }
 @end lilypond
 
 The type of events that are present in cue notes can be trimmed with
-the @code{quotedEventTypes} property. The default value is
+the @code{quotedEventTypes} property.  The default value is
 @code{(note-event rest-event)}, which means that only notes of and
-rests of the cued voice end up in the @code{\quote}.
+rests of the cued voice end up in the @code{\quoteDuring}.
 Setting
 
 @example
@@ -5672,65 +5673,87 @@
 @node Formatting cue notes
 @subsection Formatting cue notes
 
+The previous section deals with inserting notes from another voice.
+There is a more advanced music function called @code{\cueDuring},
+which makes formatting cue notes easier.
+
+The syntax is
+
+@example
+  \cueDuring #@var{name} #@var{updown} @var{music}
+@end example
 
-The previous section deals with inserting notes from another
-voice.  When making a part, these notes need to be specially formatted.
-Here is an example of formatted cue notes
+This will insert notes from the part @var{name} into a
+@internalsref{Voice} called @code{cue}. This happens simultaneously
+with @var{music}, which usually is a rest.  When the cue notes start,
+the staff in effect becomes polyphonic for a moment. The argument
+@var{updown} determines whether the cue notes should be notated as a
+first or second voice.
 
-@c TODO: This should be done with \quote stuff, not manually.
 
-@lilypond[raggedright,verbatim]
+@lilypond[verbatim,raggedright]
 smaller = {
   \set fontSize = #-2
-  \override Stem  #'length = #5.5
-  \override Beam  #'thickness = #0.384
-  \override Beam  #'space-function =
+  \override Stem #'length = #5.5
+  \override Beam #'thickness = #0.384
+  \override Beam #'space-function =
     #(lambda (beam mult) (* 0.8 (Beam::space_function beam mult)))
 }
 
-{
-  \set Staff.instrument = #"Horn in F"
+\addquote clarinet \relative {
+  R1*20
+  r2 r8 c f f
+} 
+
+\new Staff \relative  <<
+
+  % setup a context for  cue  notes.
+  \context Voice = cue { \smaller \skip 1*21 }
+  
   \set Score.skipBars = ##t
-  R1*21
-  << {
-    \once \override Staff.MultiMeasureRest  #'staff-position = #-6
-    R1
-  }
+  
   \new Voice {
-    s2
-    \clef tenor
-    \smaller
-    r8^"Bsn." c'8  f'8[ f'8]
-    \clef treble
+    R1*20
+    \cueDuring #"clarinet" #1 {
+      R1
+    }
+    g4 g2. 
   }
-  >>
-  c'8^"Horn" cis'
-  eis'4 fis'4
-}
-@end lilypond
+>>
+@end lilypond 
 
 
-There are a couple of points to take care of:
+Here are a couple of hints for successful cue notes
 
 @itemize @bullet
 @item
-The multi rest of the original part should be moved up or down during
-the cue.
-@item
 Cue notes have smaller font sizes.
 @item
-When cued notes have a clef change relative to the original part, the
-clef should be restored after the cue section.  This minimizes
-confusion for the reader,
-@item
-When the original part starts, this should be marked with the name of
-the instrument, in this case ``Horn.''   Of course, the cue part is
-marked with the instrument playing the cue.
+ the cued part is marked with the instrument playing the cue.
+@item
+ when the original part takes over again, this should be marked with
+ the name of the original instrument.
+
+ @c really?  Are you sure about that last point?  I'll check after 3.0 -gp
+
+@c Yes, this is good practice. Otherwise, the start of the original
+@c part can only be seen from the font size. This is not good enough
+@c for sight-reading. It is possilbe to use other
+@c markers (eg. a big close-bracket over the staff) to indicate the cue notes 
are
+@c finished.
+@c -hwn
+
+
+ any other changes introduced by the cued part should also be
+undone. For example, if the cued instrument plays in a different clef,
+the original clef should be stated once again.
+
 @end itemize
 
-@c  really?  Are you sure about that last point?  I'll check after 3.0 -gp
 
 
+ 
+
 @node Ancient notation
 @section Ancient notation
 
@@ -5843,7 +5866,7 @@
 @code{baroque} style in that it uses rhomboidal heads for whole notes
 and all smaller durations.  Stems are centered on the note heads.
 This style is in particular useful when transcribing mensural music,
-e.g. for the incipit.  The @code{mensural} style finally produces note
+e.g., for the incipit.  The @code{mensural} style finally produces note
 heads that mimic the look of note heads in historic printings of the
 16th century.
 
@@ -5950,7 +5973,7 @@
 @code{neomensural} and @code{mensural}.  @code{classical} differs
 from the @code{default} style only in that the quarter rest looks like
 a horizontally mirrored 8th rest.  The @code{neomensural} style suits
-well for e.g. the incipit of a transcribed mensural piece of music.
+well for e.g., the incipit of a transcribed mensural piece of music.
 The @code{mensural} style finally mimics the appearance of rests as
 in historic prints of the 16th century.
 
@@ -6075,7 +6098,7 @@
 @code{vaticana-do3}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \override Staff.StaffSymbol   #'line-count = #4
+  \override Staff.StaffSymbol #'line-count = #4
   \clef "vaticana-do2" c
 @end lilypond
 
@@ -6085,7 +6108,7 @@
 @code{vaticana-fa1}, @code{vaticana-fa2}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \override Staff.StaffSymbol   #'line-count = #4
+  \override Staff.StaffSymbol #'line-count = #4
   \clef "vaticana-fa2" c
 @end lilypond
 
@@ -6096,7 +6119,7 @@
 @code{medicaea-do3}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \override Staff.StaffSymbol   #'line-count = #4
+  \override Staff.StaffSymbol #'line-count = #4
   \clef "medicaea-do2" c
 @end lilypond
 
@@ -6106,7 +6129,7 @@
 @code{medicaea-fa1}, @code{medicaea-fa2}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \override Staff.StaffSymbol   #'line-count = #4
+  \override Staff.StaffSymbol #'line-count = #4
   \clef "medicaea-fa2" c
 @end lilypond
 
@@ -6117,7 +6140,7 @@
 @code{hufnagel-do3}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \override Staff.StaffSymbol   #'line-count = #4
+  \override Staff.StaffSymbol #'line-count = #4
   \clef "hufnagel-do2" c
 @end lilypond
 
@@ -6127,7 +6150,7 @@
 @code{hufnagel-fa1}, @code{hufnagel-fa2}
 @tab
 @lilypond[fragment,relative=1,notime]
-  \override Staff.StaffSymbol   #'line-count = #4
+  \override Staff.StaffSymbol #'line-count = #4
   \clef "hufnagel-fa2" c
 @end lilypond
 
@@ -6563,7 +6586,7 @@
 \set Score.timing = ##f
 \set Score.defaultBarType = "empty"
 \override NoteHead #'style = #'neomensural
-\override Staff.TimeSignature   #'style = #'neomensural
+\override Staff.TimeSignature #'style = #'neomensural
 \clef "petrucci-g"
 \[ g\longa c\breve a\breve f\breve d'\longa \]
 s4
@@ -6575,7 +6598,7 @@
     \set Score.timing = ##f
     \set Score.defaultBarType = "empty"
     \override NoteHead #'style = #'neomensural
-    \override Staff.TimeSignature   #'style = #'neomensural
+    \override Staff.TimeSignature #'style = #'neomensural
     \clef "petrucci-g"
     \[ g\longa c\breve a\breve f\breve d'\longa \]
     s4
@@ -6600,7 +6623,7 @@
   \set Score.timing = ##f
   \set Score.defaultBarType = "empty"
   \override NoteHead #'style = #'neomensural
-  \override Staff.TimeSignature   #'style = #'neomensural
+  \override Staff.TimeSignature #'style = #'neomensural
   \clef "petrucci-g"
   \[ g\longa c\breve a\breve f\breve d'\longa \]
   s4
@@ -7601,7 +7624,7 @@
 
 @lilypond[quote,raggedright,verbatim,fragment]
 <<
-  \context Voice  { \clef bass dis4  c d ais }
+  \context Voice { \clef bass dis4 c d ais }
   \context FiguredBass \figuremode {
     < 6 >4 < 7 >8 < 6+ [_!] >
     < 6 >4 <6 5 [3+] >
@@ -7624,7 +7647,7 @@
 \figuremode { <4 6> }
 @end lilypond
 
-Accidentals are added when you append @code{-}, @code{!}  and @code{+}
+Accidentals are added when you append @code{-}, @code{!} and @code{+}
 to the numbers
 
 @example
@@ -7695,7 +7718,7 @@
 
 @lilypond[verbatim,raggedright]
 % create 2/4 + 5/8
-tsMarkup =\markup  {
+tsMarkup =\markup {
   \number {
     \column < "2" "4" >
     \musicglyph #"scripts-stopped"
@@ -7747,7 +7770,7 @@
   \context{ \Staff \consists "Timing_engraver" }
 }
 
-\relative c'  <<
+\relative c' <<
   \new Staff {
     \time 3/4
     c4 c c | c c c |
@@ -7797,7 +7820,7 @@
     \set Staff.timeSignatureFraction = #'(10 . 8)
     \compressmusic #'(3 . 5) {
       \repeat unfold 2 { c8[ c c] }
-      \repeat unfold 2 { c8[  c] }
+      \repeat unfold 2 { c8[ c] }
       | c4. c4. \times 2/3 { c8 c c } c4
     }
   }
@@ -7864,7 +7887,7 @@
 
 @lilypond[quote,raggedright]
 <<
-  \oldaddlyrics  {
+  \oldaddlyrics {
     b'2
     ^\shortfermata
     _\shortfermata
@@ -7887,7 +7910,7 @@
   }
   \context Lyrics \lyricmode {
     \override LyricText #'font-family = #'typewriter
-    "shortfermata" "fermata"  "longfermata" "verylongfermata"
+    "shortfermata" "fermata" "longfermata" "verylongfermata"
   }
 >>
 @end lilypond
@@ -7901,7 +7924,7 @@
 Feathered beams are not supported natively, but they can be faked by
 forcing two beams to overlap.  Here is an example,
 
-@c don't change  relative setting witout changing positions!
+@c don't change relative setting witout changing positions!
 @lilypond[raggedright,relative=1,fragment,verbatim]
 \new Staff <<
   \new Voice
@@ -7976,7 +7999,7 @@
 
 
 @lilypond[quote,verbatim]
-emptymusic =  {
+emptymusic = {
   \repeat unfold 2 % Change this for more lines.
   { s1\break }
   \bar "|."
Index: lilypond/Documentation/user/point-and-click.itely
diff -u lilypond/Documentation/user/point-and-click.itely:1.4.2.1 
lilypond/Documentation/user/point-and-click.itely:1.4.2.2
--- lilypond/Documentation/user/point-and-click.itely:1.4.2.1   Sun Nov  7 
23:16:07 2004
+++ lilypond/Documentation/user/point-and-click.itely   Mon Nov  8 19:57:55 2004
@@ -6,10 +6,11 @@
 @cindex specials, source
 
 Point and click lets you find notes in the input by clicking on them in
-the Xdvi window. This makes it easier to find input that causes some
+the Xdvi window.  This makes it easier to find input that causes some
 error in the sheet music.
 
 To use it, you need the following software:
+
 @itemize @bullet
 @item a dvi viewer that supports src specials.
 
@@ -23,8 +24,8 @@
 
@uref{ftp://@/ftp@/.math@/.berkeley@/.edu/@/pub/@/Software/@/TeX/@/xdvi@/.tar@/.gz,
 ftp@/.math@/.berkeley@/.edu}.
 
-   Most @TeX{} distributions ship with xdvik, which is always a few
-versions behind the official Xdvi. To find out which Xdvi you are
+Most @TeX{} distributions ship with @command{xdvik}, which is always a few
+versions behind the official Xdvi.  To find out which Xdvi you are
 running, try @code{xdvi -version} or @code{xdvi.bin -version}.
 
 @item an editor with a client/@/server interface (or a lightweight GUI
@@ -33,8 +34,9 @@
 
 @cindex editor
 
-@itemize @bullet
-@item Emacs. Emacs is an extensible text-editor.  It is available from
+@itemize @minus
+@item
+Emacs.  Emacs is an extensible text editor.  It is available from
 @uref{http://@/www@/.gnu@/.org/@/software/@/emacs/}.  You need version 21
 to use column location.
 
@@ -46,24 +48,28 @@
 @cindex lilypond-mode for Emacs
 @cindex syntax coloring
 
-@item XEmacs. XEmacs is very similar to Emacs.
+@item
+XEmacs.  XEmacs is very similar to Emacs.
 
 @cindex XEmacs
 
-@item NEdit.  NEdit runs under Windows, and Unix.
+@item
+NEdit.  NEdit runs under Windows and Unix.
 It is available from @uref{http://@/www@/.nedit@/.org}.
 
 @cindex NEdit
 
-@item GVim.  GVim is a GUI variant of VIM, the popular VI
+@item
+GVim.  GVim is a GUI variant of VIM, the popular VI
 clone.  It is available from @uref{http://@/www@/.vim@/.org}.
 
 @cindex GVim
 @cindex Vim
 
 
-@item jEdit. jEdit is an editor written in Java with extensive plug-in
-support. The LilyPond plugin for jEdit comes with an  DVI 
+@item
+jEdit.  jEdit is an editor written in Java with extensive plug-in
+support.  The LilyPond plugin for jEdit comes with an DVI 
 viewer, which is preconfigured for point-and-click. 
 
 @cindex jEdit
@@ -73,25 +79,26 @@
 
 
 Xdvi must be configured to find the @TeX{} fonts and music
-fonts. Refer to the Xdvi documentation for more information.
+fonts.  Refer to the Xdvi documentation for more information.
 
-To use point-and-click, add one of these lines to the top of your .ly
+To use point-and-click, add one of these lines to the top of your @file{.ly}
 file:
+
 @example
 #(ly:set-point-and-click 'line)
 @end example
 @cindex line-location
 
-When viewing, Control-Mousebutton 1 will take you to the originating
-spot in the @file{.ly} file.  Control-Mousebutton 2 will show all
+When viewing, Control-Mousebutton@tie{}1 will take you to the originating
+spot in the @file{.ly} file.  Control-Mousebutton@tie{}2 will show all
 clickable boxes.
 
 If you correct large files with point-and-click, be sure to start
-correcting at the end of the file. When you start at the top, and
+correcting at the end of the file.  When you start at the top, and
 insert one line, all following locations will be off by a line.
 
 @cindex Emacs
-For using point-and-click with Emacs,  add the following
+For using point-and-click with Emacs, add the following
 In your Emacs startup file (usually @file{~/@/.emacs}):
 @example
 (server-start)
@@ -102,8 +109,9 @@
 emacsclient --no-wait +%l %f
 @end example
 @cindex @var{XEDITOR}
-If you use XEmacs instead of Emacs, you use @code{(gnuserve-start)} in
-your @file{.emacs}, and set @code{XEDITOR} to @code{gnuclient -q +%l %f}.
+If you use XEmacs instead of Emacs, insert @code{(gnuserve-start)} in
+your @file{.emacs} file, and set @code{XEDITOR} to
+@code{gnuclient -q +%l %f}.
 
 For using Vim, set @code{XEDITOR} to @code{gvim --remote +%l %f}, or
 use this argument with Xdvi's @code{-editor} option.
@@ -113,14 +121,14 @@
 use this argument with Xdvi's @code{-editor} option.
 
 If can also make your editor jump to the exact location of the note
-you clicked. This is only supported on Emacs and VIM. Users of Emacs version
-20 must apply the patch @file{emacsclient.patch}. Users of version 21
+you clicked.  This is only supported on Emacs and VIM.  Users of Emacs version
+20 must apply the patch @file{emacsclient.patch}.  Users of version 21
 must apply @file{server.el.patch} (version 21.2 and earlier).  At the
-top of the @code{ly} file, replace the @code{set-point-and-click} line
+top of the @code{.ly} file, replace the @code{set-point-and-click} line
 with the following line:
 @example
 #(ly:set-point-and-click 'line-column)
 @end example
 @cindex line-column-location
 and set @code{XEDITOR} to @code{emacsclient --no-wait +%l:%c %f}.  Vim
-users can set @var{XEDITOR} to @code{gvim --remote +:%l:norm%c| %f}.
+users can set @code{XEDITOR} to @code{gvim --remote +:%l:norm%c| %f}.
Index: lilypond/Documentation/user/programming-interface.itely
diff -u lilypond/Documentation/user/programming-interface.itely:1.23.2.1 
lilypond/Documentation/user/programming-interface.itely:1.23.2.2
--- lilypond/Documentation/user/programming-interface.itely:1.23.2.1    Sun Nov 
 7 23:16:07 2004
+++ lilypond/Documentation/user/programming-interface.itely     Mon Nov  8 
19:57:55 2004
@@ -29,7 +29,7 @@
 example, a music expression is assigned to a variable with the name
 @code{traLaLa}.
 @example
-  traLaLa = @{ c'4 d'4 @}
+traLaLa = @{ c'4 d'4 @}
 @end example
 
 @noindent
@@ -38,8 +38,8 @@
 @code{\layout} block also contains a @code{traLaLa} variable, which is
 independent of the outer @code{\traLaLa}.
 @example
-  traLaLa = @{ c'4 d'4 @}
-  \layout @{ traLaLa = 1.0 @}
+traLaLa = @{ c'4 d'4 @}
+\layout @{ traLaLa = 1.0 @}
 @end example
 @c
 In effect, each input file is a scope, and all @code{\header},
@@ -47,43 +47,43 @@
 toplevel scope.
 
 Both variables and scoping are implemented in the GUILE module system.
-An anonymous Scheme module is attached to each scope. An assignment of
+An anonymous Scheme module is attached to each scope.  An assignment of
 the form
 @example
- traLaLa = @{ c'4 d'4 @}
+traLaLa = @{ c'4 d'4 @}
 @end example
 
 @noindent
 is internally converted to a Scheme definition
 @example
- (define traLaLa @var{Scheme value of ``@code{... }''})
+(define traLaLa @var{Scheme value of ``@code{... }''})
 @end example
 
 This means that input variables and Scheme variables may be freely
 mixed.  In the following example, a music fragment is stored in the
-variable @code{traLaLa}, and duplicated using Scheme. The result is
+variable @code{traLaLa}, and duplicated using Scheme.  The result is
 imported in a @code{\score} by means of a second variable
 @code{twice}:
 @example
-  traLaLa = @{ c'4 d'4 @}
+traLaLa = @{ c'4 d'4 @}
 
-  #(define newLa (map ly:music-deep-copy
-    (list traLaLa traLaLa)))
-  #(define twice
-    (make-sequential-music newLa))
+#(define newLa (map ly:music-deep-copy
+  (list traLaLa traLaLa)))
+#(define twice
+  (make-sequential-music newLa))
 
-  @{ \twice @}
+@{ \twice @}
 @end example
 
 In the above example, music expressions can be `exported' from the
-input to the Scheme interpreter. The opposite is also possible. By
+input to the Scheme interpreter.  The opposite is also possible.  By
 wrapping a Scheme value in the function @code{ly:export}, a Scheme
 value is interpreted as if it were entered in LilyPond syntax.  Instead
 of defining @code{\twice}, the example above could also have been
 written as
 @example
-  @dots{}
-  @{ #(ly:export (make-sequential-music newLa)) @}
+@dots{}
+@{ #(ly:export (make-sequential-music newLa)) @}
 @end example
 
 @refbugs
@@ -95,31 +95,31 @@
 @subsection Internal music representation
 
 When a music expression is parsed, it is converted into a set of
-Scheme music objects. The defining property of a music object is that
-it takes up time. Time is a rational number that measures the length
+Scheme music objects.  The defining property of a music object is that
+it takes up time.  Time is a rational number that measures the length
 of a piece of music, in whole notes.
 
 A music object has three kinds of types:
 @itemize @bullet
 @item
-  music name: Each music expression has a name, for example, a note
+music name: Each music expression has a name, for example, a note
 leads to a @internalsref{NoteEvent}, and @code{\simultaneous} leads to
-a @internalsref{SimultaneousMusic}. A list of all expressions
+a @internalsref{SimultaneousMusic}.  A list of all expressions
 available is in the internals manual, under
 @internalsref{Music expressions}.
 
 @item
-  `type' or interface: Each music name has several `types' or
+`type' or interface: Each music name has several `types' or
 interfaces, for example, a note is an @code{event}, but it is also a
 @code{note-event}, a @code{rhythmic-event} and a @code{melodic-event}.
 
-  All classes of music are listed in the internals manual, under
-  @internalsref{Music classes}.
+All classes of music are listed in the internals manual, under
+@internalsref{Music classes}.
 
-  @item
-C++ object: Each music object is represented by a C++ object. For
+@item
+C++ object: Each music object is represented by a C++ object.  For
 technical reasons, different music objects may be represented by
-different C++ object types. For example, a note is @code{Event}
+different C++ object types.  For example, a note is @code{Event}
 object, while @code{\grace} creates a @code{Grace_music} object.
 
 We expect that distinctions between different C++ types will disappear
@@ -133,12 +133,12 @@
 under @internalsref{Music properties}.
 
 A compound music expression is a music object that contains other
-music objects in its properties. A list of objects can be stored in
+music objects in its properties.  A list of objects can be stored in
 the @code{elements} property of a music object, or a single `child'
-music object in the @code{element} object. For example,
+music object in the @code{element} object.  For example,
 @internalsref{SequentialMusic} has its children in @code{elements},
 and @internalsref{GraceMusic} has its single argument in
-@code{element}. The body of a repeat is stored in the @code{element}
+@code{element}.  The body of a repeat is stored in the @code{element}
 property of @internalsref{RepeatedMusic}, and the alternatives in
 @code{elements}.
 
@@ -153,12 +153,12 @@
 follows the general form of
 
 @example
-  \@code{keyword} @var{non-music-arguments} @var{music-arguments}
+\@code{keyword} @var{non-music-arguments} @var{music-arguments}
 @end example
 
-Such syntax can also be defined as user code. To do this, it is
-necessary to create a @emph{music function}. This is a specially marked
-Scheme function. For example, the music function @code{\applymusic} applies
+Such syntax can also be defined as user code.  To do this, it is
+necessary to create a @emph{music function}.  This is a specially marked
+Scheme function.  For example, the music function @code{\applymusic} applies
 a user-defined function to a music expression.  Its syntax is
 
 @example
@@ -168,35 +168,35 @@
 A music function is created with @code{ly:make-music-function},
 
 @example
-  (ly:make-music-function
+(ly:make-music-function
 @end example
 
 @code{\applymusic} takes a Scheme function and a Music expression as
-argument. This is encoded in its first argument,
+argument.  This is encoded in its first argument,
 
 @example
-   (list procedure? ly:music?)
+(list procedure? ly:music?)
 @end example
 
 The function itself takes another argument, an Input location
-object. That object is used to provide error messages with file names
+object.  That object is used to provide error messages with file names
 and line numbers.  The definition is the second argument of
-@code{ly:make-music-function}. The body is function simply calls the
+@code{ly:make-music-function}.  The body is function simply calls the
 function
 
 @example
-  (lambda (where func music)
-   (func music))
+(lambda (where func music)
+ (func music))
 @end example
 
-The above Scheme code only defines the functionality. The tag
+The above Scheme code only defines the functionality.  The tag
 @code{\applymusic} is selected by defining
 
 @example
-  applymusic = #(ly:make-music-function
-                  (list procedure? ly:music?)
-                  (lambda (location func music)
-                    (func music)))
+applymusic = #(ly:make-music-function
+                (list procedure? ly:music?)
+                (lambda (location func music)
+                  (func music)))
 @end example
 
 A @code{def-music-function} macro is introduced on top of
@@ -204,9 +204,9 @@
 functions:
 
 @example
-  applymusic = #(def-music-function (location func music)
-                  (procedure? ly:music?)
-                  (func music))
+applymusic = #(def-music-function (location func music)
+                (procedure? ly:music?)
+                (func music))
 @end example
 
 Examples of the use of @code{\applymusic} are in the next section.
@@ -233,31 +233,32 @@
 
 An example is a function that reverses the order of elements in
 its argument,
-@lilypond[verbatim,raggedright]
-  #(define (rev-music-1 m)
-     (ly:music-set-property! m 'elements (reverse
-       (ly:music-property m 'elements)))
-     m)
-  \applymusic #rev-music-1 { c4 d4 } 
+@lilypond[quote,verbatim,raggedright]
+#(define (rev-music-1 m)
+  (ly:music-set-property! m 'elements 
+    (reverse (ly:music-property m 'elements)))
+  m)
+
+\applymusic #rev-music-1 { c'4 d'4 } 
 @end lilypond
 
-The use of such a function is very limited. The effect of this
+The use of such a function is very limited.  The effect of this
 function is void when applied to an argument which is does not have
 multiple children.  The following function application has no effect
 
 @example
-  \applymusic #rev-music-1 \grace @{ c4 d4 @}
+\applymusic #rev-music-1 \grace @{ c4 d4 @}
 @end example
 
 @noindent
-In this case, @code{\grace} is stored as @internalsref{GraceMusic}, which has 
no
-@code{elements}, only a single @code{element}. Every generally
+In this case, @code{\grace} is stored as @internalsref{GraceMusic}, which
+has no @code{elements}, only a single @code{element}.  Every generally
 applicable function for @code{\applymusic} must---like music expressions
 themselves -- be recursive.
 
 The following example is such a recursive function: It first extracts
 the @code{elements} of an expression, reverses them and puts them
-back. Then it recurses, both on @code{elements} and @code{element}
+back.  Then it recurses, both on @code{elements} and @code{element}
 children.
 @example
 #(define (reverse-music music)
@@ -279,17 +280,17 @@
 @inputfileref{input/@/test,reverse@/-music@/.ly}.
 
 Some of the input syntax is also implemented as recursive music
-functions. For example, the syntax for polyphony
+functions.  For example, the syntax for polyphony
 @example
-  <<a \\ b>>
+<<a \\ b>>
 @end example
 
 @noindent
-is actually  implemented as a recursive function that replaces the
+is actually implemented as a recursive function that replaces the
 above by the internal equivalent of
 @example
-  << \context Voice = "1" @{ \voiceOne a @}
-    \context Voice = "2" @{ \voiceTwo b @} >>
+<< \context Voice = "1" @{ \voiceOne a @}
+   \context Voice = "2" @{ \voiceTwo b @} >>
 @end example
 
 Other applications of @code{\applymusic} are writing out repeats
@@ -301,8 +302,8 @@
 @cindex internal storage
 @cindex @code{\displayMusic}
 When writing a music function, it is often instructive to inspect how
-a music expression is stored internally. This can be done with the
-music function @code{\displayMusic}
+a music expression is stored internally.  This can be done with the
+music function @code{\displayMusic}.
 
 @seealso
 
@@ -316,105 +317,103 @@
 @subsection Using LilyPond syntax inside Scheme
 
 Creating music expressions in Scheme can be tedious, as they are
-heavily nested and the resulting Scheme code is large. For some
+heavily nested and the resulting Scheme code is large.  For some
 simple tasks, this can be avoided, using LilyPond usual syntax inside
 Scheme, with the dedicated @code{#@{ ... #@}} syntax.
 
 The following two expressions give equivalent music expressions:
 @example
-  mynotes = @{ \override Stem #'thickness = #4
-              @{ c'8 d' @} @}
+mynotes = @{ \override Stem #'thickness = #4
+            @{ c'8 d' @} @}
   
-  #(define mynotes #@{ \override Stem #'thickness = #4
-                      @{ c'8 d' @} #@})
+#(define mynotes #@{ \override Stem #'thickness = #4
+                    @{ c'8 d' @} #@})
 @end example
 
 The content of @code{#@{ ... #@}} is enclosed in an implicit @code{@{
-... @}} block, which is parsed. The resulting music expression, a
+... @}} block, which is parsed.  The resulting music expression, a
 @code{SequentialMusic} music object, is then returned and usable in Scheme.
 
 Arbitrary Scheme forms, including variables, can be used in @code{#@{ ... #@}}
 expressions with the @code{$} character (@code{$$} can be used to
-produce a single $ character). This makes the creation of simple
-functions straightforward. In the following example, a function
+produce a single $ character).  This makes the creation of simple
+functions straightforward.  In the following example, a function
 setting the TextScript's padding is defined:
 
-@lilypond[verbatim,raggedright]
-  #(use-modules (ice-9 optargs))
-  #(define* (textpad padding #:optional once?)
-    (ly:export   ; this is necessary for using the expression
-                 ; directly inside a block
-      (if once?
-          #{ \once \override TextScript #'padding = #$padding #}
-          #{ \override TextScript #'padding = #$padding #})))
-  
-      {
-          c'^"1"
-          #(textpad 3.0 #t) % only once
-          c'^"2"
-          c'^"3"
-          #(textpad 5.0)
-          c'^"4"
-          c'^"5"
-          
-      }
+@lilypond[quote,verbatim,raggedright]
+#(use-modules (ice-9 optargs))
+#(define* (textpad padding #:optional once?)
+  (ly:export   ; this is necessary for using the expression
+               ; directly inside a block
+    (if once?
+        #{ \once \override TextScript #'padding = #$padding #}
+        #{ \override TextScript #'padding = #$padding #})))
+
+ {
+   c'^"1"
+   #(textpad 3.0 #t) % only once
+   c'^"2"
+   c'^"3"
+   #(textpad 5.0)
+   c'^"4"
+   c'^"5"
+ }
 @end lilypond
 
 Here, the variable @code{padding} is a number; music expression
 variables may also be used in a similar fashion, as in the following
 example:
 
-@lilypond[verbatim,raggedright]
-  #(define (with-padding padding)
-     (lambda (music)
-       #{ \override TextScript #'padding = #$padding
-          $music
-          \revert TextScript #'padding #}))
-  
-      {
-          c'^"1"
-          \applymusic #(with-padding 3)
-            { c'^"2" c'^"3"}
-          c'^"4"
-      }
+@lilypond[quote,verbatim,raggedright]
+#(define (with-padding padding)
+  (lambda (music)
+   #{ \override TextScript #'padding = #$padding
+      $music
+      \revert TextScript #'padding #}))
+
+{
+  c'^"1"
+  \applymusic #(with-padding 3) { c'^"2" c'^"3" }
+  c'^"4"
+}
 @end lilypond
 
 The function created by @code{(with-padding 3)} adds @code{\override} and
 @code{\revert} statements around the music given as an argument, and returns
-this new expression. Thus, this example is equivalent to:
+this new expression.  Thus, this example is equivalent to:
 
 @example
-      @{
-          c'^"1"
-          @{ \override TextScript #'padding = #3
-            @{ c'^"2" c'^"3"@}
-            \revert TextScript #'padding
-          @}
-          c'^"4"
-      @}
+@{
+  c'^"1"
+  @{ \override TextScript #'padding = #3
+    @{ c'^"2" c'^"3"@}
+    \revert TextScript #'padding
+  @}
+  c'^"4"
+@}
 @end example
 
 This function may also be defined as a music function:
 
-@lilypond[verbatim,raggedright]
-  withPadding = #(def-music-function (location padding music) (number? 
ly:music?)
-                   #{ \override TextScript #'padding = #$padding
-                      $music 
-                      \revert TextScript #'padding #})
-  
-      {
-          c'^"1"
-          \withPadding #3
-            { c'^"2" c'^"3"}
-          c'^"4"
-      }
+@lilypond[quote,verbatim,raggedright]
+withPadding =
+  #(def-music-function (location padding music) (number? ly:music?)
+    #{ \override TextScript #'padding = #$padding
+       $music 
+       \revert TextScript #'padding #})
+
+{
+  c'^"1"
+  \withPadding #3 { c'^"2" c'^"3"}
+  c'^"4"
+}
 @end lilypond
 
 
 @node Markup programmer interface
 @section Markup programmer interface
 
-Markups implemented as special Scheme functions. When applied with as
+Markups implemented as special Scheme functions.  When applied with as
 arguments an output definition (@code{\layout} or @code{\paper}),
 and a list of properties and other arguments, produce a Stencil
 object.
@@ -431,7 +430,7 @@
 @cindex defining markup commands 
 
 The @code{markup} macro builds markup expressions in Scheme while
-providing a LilyPond-like syntax. For example,
+providing a LilyPond-like syntax.  For example,
 @example
 (markup #:column (#:line (#:bold #:italic "hello" #:raise 0.4 "world")
                   #:bigger #:line ("foo" "bar" "baz")))
@@ -448,7 +447,9 @@
 This example exposes the main translation rules between regular
 LilyPond markup syntax and Scheme markup syntax, which are summed up
 is this table:
-@multitable @columnfractions .5 .5
+
+@quotation
+@multitable @columnfractions .3 .3
 @item @b{LilyPond} @tab @b{Scheme}
 @item @code{\command} @tab @code{#:command}
 @item @code{\variable} @tab @code{variable}
@@ -457,22 +458,26 @@
 @item @code{string} @tab @code{"string"}
 @item @code{#scheme-arg} @tab @code{scheme-arg}
 @end multitable
+@end quotation
 
 Besides, the whole scheme language is accessible inside the
 @code{markup} macro: thus, one may use function calls inside
 @code{markup} in order to manipulate character strings for
-instance. This proves useful when defining new markup commands (see
+instance.  This proves useful when defining new markup commands (see
 @ref{Markup command definition}).
 
 @refbugs
 
 One can not feed the @code{#:line} (resp @code{#:center},
 @code{#:column}) command with a variable or the result of a function
-call. E.g.:
+call.  Example:
+
 @lisp
 (markup #:line (fun-that-returns-markups))
 @end lisp
-is illegal. One should use the @code{make-line-markup} (resp
+
+@noindent
+is invalid.  One should use the @code{make-line-markup} (resp
 @code{make-center-markup}, @code{make-column-markup}) function
 instead,
 @lisp
@@ -485,15 +490,15 @@
 In a markup like
 
 @example
-  \raise #0.5 "foo"
+\raise #0.5 "foo"
 @end example
 
 @noindent
 @code{\raise} is actually represented by the @code{raise-markup}
-function. The markup expression is stored as
+function.  The markup expression is stored as
 
 @example
-  (list raise-markup 0.5 (list simple-markup 'latin1 "foo"))
+(list raise-markup 0.5 (list simple-markup 'latin1 "foo"))
 @end example
 
 @noindent
@@ -504,15 +509,15 @@
 raise markup is called as
 
 @example
-  (apply raise-markup
-         @var{\layout object}
-         @var{list of property alists}
-         0.5
-         @var{the "foo" markup})
+(apply raise-markup
+       @var{\layout object}
+       @var{list of property alists}
+       0.5
+       @var{the "foo" markup})
 @end example
 
 The @code{raise-markup} first creates the stencil for the @code{foo}
-string, and then it raises that Stencil by 0.5 staff space. This is a
+string, and then it raises that Stencil by 0.5 staff space.  This is a
 rather simple example; more complex examples are in the rest of this
 section, and in @file{scm/@/define@/-markup@/-commands@/.scm}.
 
@@ -520,7 +525,7 @@
 @subsection Markup command definition
 
 New markup commands can be defined
-with  the @code{def-markup-command} scheme macro.
+with the @code{def-markup-command} scheme macro.
 @lisp
 (def-markup-command (@var{command-name} @var{layout} @var{props} @var{arg1} 
@var{arg2} ...)
             (@var{arg1-type?} @var{arg2-type?} ...)
@@ -544,19 +549,19 @@
 which selects @TeX{}'s small caps font.  Normally, we could select the
 small caps font as follows:
 
-@verbatim
-  \markup { \override #'(font-shape . caps)  Text-in-caps }
-@end verbatim
+@example
+\markup @{ \override #'(font-shape . caps) Text-in-caps @}
+@end example
 
 This selects the caps font by setting the @code{font-shape} property to
 @code{#'caps} for interpreting @code{Text-in-caps}.
 
 To make the above available as @code{\smallcaps} command, we have to
-define a function using @code{def-markup-command}. The command should
-take a single argument, of markup type. Therefore, the start of the
+define a function using @code{def-markup-command}.  The command should
+take a single argument, of markup type.  Therefore, the start of the
 definition should read
 @example
-  (def-markup-command (smallcaps layout props argument) (markup?)
+(def-markup-command (smallcaps layout props argument) (markup?)
 @end example
 
 @noindent
@@ -565,16 +570,16 @@
 the @code{argument} as a markup, i.e.
 
 @example
-    (interpret-markup layout  @dots{} argument)
+(interpret-markup layout @dots{} argument)
 @end example
 
 @noindent
 This interpretation should add @code{'(font-shape . caps)} to the active
-properties, so we substitute the  following for the @dots{} in the
+properties, so we substitute the following for the @dots{} in the
 above example:
 
 @example
- (cons (list '(font-shape . caps) ) props)
+(cons (list '(font-shape . caps) ) props)
 @end example
 
 @noindent
@@ -584,78 +589,78 @@
 
 Suppose that we are typesetting a recitative in an opera, and
 we would like to define a command that will show character names in a
-custom manner. Names should be printed with small caps and translated a
+custom manner.  Names should be printed with small caps and translated a
 bit to the left and top.  We will define a @code{\character} command
 that takes into account the needed translation, and uses the newly
 defined @code{\smallcaps} command:
 
-@verbatim
+@example
 #(def-markup-command (character layout props name) (string?)
-   "Print the character name in small caps, translated to the left and
-   top. Syntax: \\character #\"name\""
-   (interpret-markup layout props 
-    (markup "" #:translate (cons -4 2) #:smallcaps name)))
-@end verbatim
+  "Print the character name in small caps, translated to the left and
+  top.  Syntax: \\character #\"name\""
+  (interpret-markup layout props 
+   (markup "" #:translate (cons -3 1) #:smallcaps name)))
+@end example
 
 There is one complication that needs explanation: texts above and below
 the staff are moved vertically to be at a certain distance (the
-@code{padding} property) from the staff and the notes. To make sure
+@code{padding} property) from the staff and the notes.  To make sure
 that this mechanism does not annihilate the vertical effect of our
 @code{#:translate}, we add an empty string (@code{""}) before the
 translated text.  Now the @code{""} will be put above the notes, and the
-@code{name} is moved in relation to that empty string. The net effect is
+@code{name} is moved in relation to that empty string.  The net effect is
 that the text is moved to the upper left.
 
 The final result is as follows:
-@verbatim
-    { \fatText
-        c''^\markup \character #"Cleopatra"
-        e'^\markup \character #"Giulio Cesare"
-    }
-@end verbatim
+@example
+@{
+  c''^\markup \character #"Cleopatra"
+  e'^\markup \character #"Giulio Cesare"
+@}
+@end example
 
-@lilypond[raggedright]
+@lilypond[quote,raggedright]
 #(def-markup-command (smallcaps layout props str) (string?)
-   "Print the string argument in small caps. Syntax: \\smallcaps #\"string\""
-   (interpret-markup layout props
-    (make-line-markup
-     (map (lambda (s)
-            (if (= (string-length s) 0)
-                s
-                (markup #:large (string-upcase (substring s 0 1))
-                        #:translate (cons -0.6 0)
-                        #:tiny (string-upcase (substring s 1)))))
-          (string-split str #\Space)))))
+  "Print the string argument in small caps.  Syntax: \\smallcaps #\"string\""
+  (interpret-markup layout props
+   (make-line-markup
+    (map (lambda (s)
+          (if (= (string-length s) 0)
+              s
+              (markup #:large (string-upcase (substring s 0 1))
+                      #:translate (cons -0.6 0)
+                      #:tiny (string-upcase (substring s 1)))))
+         (string-split str #\Space)))))
 
 #(def-markup-command (character layout props name) (string?)
-   "Print the character name in small caps, translated to the left and
-   top. Syntax: \\character #\"name\""
-   (interpret-markup layout props 
-    (markup "" #:translate (cons -4 0) #:smallcaps name)))
-
-    { \fatText
-        c''^\markup \character #"Cleopatra"
-        e'^\markup \character #"Giulio Cesare"
-    }
+  "Print the character name in small caps, translated to the left and
+  top.  Syntax: \\character #\"name\""
+  (interpret-markup layout props 
+   (markup "" #:translate (cons -3 1) #:smallcaps name)))
+
+{
+  c''^\markup \character #"Cleopatra" c'' c'' c''
+  e'^\markup \character #"Giulio Cesare" e' e' e'
+}
 @end lilypond
 
 We have used the @code{caps} font shape, but suppose that our font
-that does not have a small-caps variant. In that case, we have to fake
+that does not have a small-caps variant.  In that case, we have to fake
 the small caps font, by setting a string in upcase, with the first
 letter a little larger:
 
 @example
 #(def-markup-command (smallcaps layout props str) (string?)
-   "Print the string argument in small caps."
-   (interpret-markup layout props
-    (make-line-markup
-     (map (lambda (s)
-            (if (= (string-length s) 0)
-                s
-                (markup #:large (string-upcase (substring s 0 1))
-                        #:translate (cons -0.6 0)
-                        #:tiny (string-upcase (substring s 1)))))
-          (string-split str #\Space)))))
+  "Print the string argument in small caps."
+  (interpret-markup layout props
+   (make-line-markup
+    (map (lambda (s)
+          (if (= (string-length s) 0)
+              s
+              (markup #:large (string-upcase (substring s 0 1))
+                      #:translate (cons -0.6 0)
+                      #:tiny (string-upcase (substring s 1)))))
+         (string-split str #\Space)))))
 @end example
 
 The @code{smallcaps} command first splits its string argument into
@@ -663,11 +668,11 @@
 each token, a markup is built with the first letter made large and
 upcased (@code{#:large (string-upcase (substring s 0 1))}), and a
 second markup built with the following letters made tiny and upcased
-(@code{#:tiny (string-upcase (substring s 1))}). As LilyPond
+(@code{#:tiny (string-upcase (substring s 1))}).  As LilyPond
 introduces a space between markups on a line, the second markup is
-translated to the left (@code{#:translate (cons -0.6 0) ...}). Then,
+translated to the left (@code{#:translate (cons -0.6 0) ...}).  Then,
 the markups built for each token are put in a line by
-@code{(make-line-markup ...)}. Finally, the resulting markup is passed
+@code{(make-line-markup ...)}.  Finally, the resulting markup is passed
 to the @code{interpret-markup} function, with the @code{layout} and
 @code{props} arguments.
 
@@ -688,21 +693,21 @@
 @cindex calling code during interpreting
 @cindex @code{\applycontext}
 
-Contexts can be modified during interpretation with Scheme code. The
+Contexts can be modified during interpretation with Scheme code.  The
 syntax for this is
 @example
-  \applycontext @var{function}
+\applycontext @var{function}
 @end example
 
 @var{function} should be a Scheme function taking a single argument,
-being the context to apply it to. The following code will print the
+being the context to apply it to.  The following code will print the
 current bar number on the standard output during the compile:
 
 @example
-    \applycontext
-      #(lambda (x)
-         (format #t "\nWe were called in barnumber ~a.\n"
-          (ly:context-property x 'currentBarNumber)))
+\applycontext
+  #(lambda (x)
+    (format #t "\nWe were called in barnumber ~a.\n"
+     (ly:context-property x 'currentBarNumber)))
 @end example
 
 
@@ -715,7 +720,7 @@
 @cindex @code{\applyoutput}
 
 
-The most versatile way of tuning an object is @code{\applyoutput}. Its
+The most versatile way of tuning an object is @code{\applyoutput}.  Its
 syntax is
 @example
 \applyoutput @var{proc}
@@ -744,10 +749,9 @@
 
 @example
 (define (blanker grob grob-origin context)
-  (if (and (memq (ly:grob-property grob 'interfaces)
-                 note-head-interface)
-           (eq? (ly:grob-property grob 'staff-position) 0))
-
-           (set! (ly:grob-property grob 'transparent) #t)))
+ (if (and (memq (ly:grob-property grob 'interfaces)
+                note-head-interface)
+          (eq? (ly:grob-property grob 'staff-position) 0))
+     (set! (ly:grob-property grob 'transparent) #t)))
 @end example
 
Index: lilypond/Documentation/user/scheme-tutorial.itely
diff -u lilypond/Documentation/user/scheme-tutorial.itely:1.3.2.1 
lilypond/Documentation/user/scheme-tutorial.itely:1.3.2.2
--- lilypond/Documentation/user/scheme-tutorial.itely:1.3.2.1   Sun Nov  7 
23:16:07 2004
+++ lilypond/Documentation/user/scheme-tutorial.itely   Mon Nov  8 19:57:55 2004
@@ -13,95 +13,100 @@
 
 LilyPond uses the Scheme programming language, both as part of the
 input syntax, and as internal mechanism to glue together modules of
-the program. This section is a very brief overview of entering data in
+the program.  This section is a very brief overview of entering data in
 Scheme.@footnote{If you want to know more about Scheme, see
 @uref{http://@/www@/.schemers@/.org}.}
 
 The most basic thing of a language is data: numbers, character
-strings, lists, etc. Here is a list of data types that are relevant to
+strings, lists, etc.  Here is a list of data types that are relevant to
 LilyPond input.
 
 @table @asis
 @item Booleans
-  Boolean values are True or False. The Scheme for True is @code{#t}
-  and False is @code{#f}.
+Boolean values are True or False.  The Scheme for True is @code{#t}
+and False is @code{#f}.
 @cindex @code{##t}
 @cindex @code{##f}
+
 @item Numbers
-  Numbers are entered in the standard fashion,
-  @code{1} is the (integer) number one, while @code{-1.5} is a
-  floating point number (a non-integer number). 
+Numbers are entered in the standard fashion,
+@code{1} is the (integer) number one, while @code{-1.5} is a
+floating point number (a non-integer number). 
+
 @item Strings
-  Strings are enclosed in double quotes,
-  @example
-    "this is a string"
-  @end example
-
-  Strings may span several lines
-  @example
-    "this
-    is
-    a string"
-  @end example
-
-  Quotation marks and newlines can also be added with so-called escape
-  sequences. The string @code{a said "b"} is entered as
-  @example
-    "a said \"b\""
-  @end example
+Strings are enclosed in double quotes,
+
+@example
+"this is a string"
+@end example
+
+Strings may span several lines
 
-  Newlines and backslashes are escaped with @code{\n} and @code{\\}
+@example
+"this
+is
+a string"
+@end example
+
+Quotation marks and newlines can also be added with so-called escape
+sequences.  The string @code{a said "b"} is entered as
+
+@example
+"a said \"b\""
+@end example
+
+Newlines and backslashes are escaped with @code{\n} and @code{\\}
 respectively.
 @end table
 
 
 In a music file, snippets of Scheme code are introduced with the hash
-mark @code{#}. So, the previous examples translated in LilyPond are
+mark @code{#}.  So, the previous examples translated in LilyPond are
 
 @example
-  ##t ##f 
-  #1 #-1.5
-  #"this is a string"
-  #"this
-  is
-  a string"
+##t ##f 
+#1 #-1.5
+#"this is a string"
+#"this
+is
+a string"
 @end example
 
 For the rest of this section, we will assume that the data is entered
 in a music file, so we add @code{#}s everywhere.
 
-Scheme can be used to do calculations. It uses @emph{prefix}
-syntax. Adding 1 and 2 is written as @code{(+ 1 2)} rather than the
-traditional 1+2.
+Scheme can be used to do calculations.  It uses @emph{prefix}
+syntax.  Adding 1 and@tie{}2 is written as @code{(+ 1 2)} rather than the
+traditional @math{1+2}.
 
 @lisp
-  #(+ 1 2)
-   @result{} #3 
+#(+ 1 2)
+  @result{} #3 
 @end lisp
 
 The arrow @result{} shows that the result of evaluating @code{(+ 1 2)}
-is @code{3}.  Calculations may be nested; the result of a function may
+is@tie{}@code{3}.  Calculations may be nested; the result of a function may
 be used for another calculation.
 
 @lisp
-  #(+ 1 (* 3 4))
-   @result{} #(+ 1 12) 
-   @result{} #13
+#(+ 1 (* 3 4))
+  @result{} #(+ 1 12) 
+  @result{} #13
 @end lisp
 
 These calculations are examples of evaluations; an expression like
-@code{(* 3 4)} is replaced by its value @code{12}. A similar thing
-happens with variables. After defining a variable  
+@code{(* 3 4)} is replaced by its value @code{12}.  A similar thing
+happens with variables.  After defining a variable  
 
 @example
-  twelve = #12 
+twelve = #12 
 @end example
 
 @noindent
 variables can also be used in expressions, here
 
 @example
-  twentyFour = #(* 2 twelve) 
+twentyFour = #(* 2 twelve) 
 @end example 
 
 @noindent
@@ -109,21 +114,21 @@
 The same assignment can be done in completely in Scheme as well,
 
 @example
-  #(define twentyFour (* twelve))
+#(define twentyFour (* twelve))
 @end example
 
 The @emph{name} of a variable is also an expression, similar to a
-number or a string. It is entered as
+number or a string.  It is entered as
 
 @example
-  #'twentyFour
+#'twentyFour
 @end example
 
 @cindex @code{#'symbol}
 @cindex quoting in Scheme
 
 The quote mark @code{'} prevents Scheme interpreter from substituting
-@code{24} for the @code{twentyFour}. Instead, we get the name
+@code{24} for the @code{twentyFour}.  Instead, we get the name
 @code{twentyFour}.
 
 This syntax will be used very frequently, since many of the layout
@@ -131,55 +136,56 @@
 example
 
 @example
-  \override Stem #'thickness = #2.6
+\override Stem #'thickness = #2.6
 @end example
 
-This instruction adjusts the appearance of stems. The value @code{2.6}
+This instruction adjusts the appearance of stems.  The value @code{2.6}
 is put into a the @code{thickness} variable of a @code{Stem}
-object. This makes stems almost twice as thick as their normal size.
+object.  This makes stems almost twice as thick as their normal size.
 To distinguish between variables defined in input files (like
 @code{twentyFour} in the example above) and variables of internal
 objects, we will call the latter ``properties'' and the former
-``identifiers.'' So, the stem object has a @code{thickness} property,
+``identifiers.''  So, the stem object has a @code{thickness} property,
 while @code{twentyFour} is an identifier.
 
 @cindex properties vs. identifiers
 @cindex identifiers vs. properties 
 
 Two-dimensional offsets (X and Y coordinates) as well as object sizes
-(intervals with a left and right point) are entered as @code{pairs}. A
+(intervals with a left and right point) are entered as @code{pairs}.  A
 pair@footnote{In Scheme terminology, the pair is called @code{cons},
-and its two elements are called @code{car} and @code{cdr} respectively.}  is 
entered
-as @code{(first . second)} and, like symbols, they must be quoted,
+and its two elements are called @code{car} and @code{cdr} respectively.}
+is entered as @code{(first . second)} and, like symbols, they must be quoted,
 
 @example
-  \override TextScript #'extra-offset = #'(1 . 2)  
+\override TextScript #'extra-offset = #'(1 . 2)  
 @end example 
 
 This assigns the pair (1, 2) to the @code{extra-offset} property of the
-TextScript object. This moves the object 1 staff space to the right,
+TextScript object.  This moves the object 1 staff space to the right,
 and 2 spaces up.
 
 The two elements of a pair may be arbitrary values, for example
 
 @example
-  #'(1 . 2)
-  #'(#t . #f)
-  #'("blah-blah" . 3.14159265)
+#'(1 . 2)
+#'(#t . #f)
+#'("blah-blah" . 3.14159265)
 @end example
 
 A list is entered by enclosing its elements in parentheses, and adding
-a quote. For example,
+a quote.  For example,
+
 @example
-  #'(1 2 3)
-  #'(1 2 "string" #f)
+#'(1 2 3)
+#'(1 2 "string" #f)
 @end example
 
 We have been using lists all along.  A calculation, like @code{(+ 1
 2)} is also a list (containing the symbol @code{+} and the numbers 1
-and 2). Normally lists are interpreted as calculations, and the Scheme
-interpreter substitutes the outcome of the calculation. To enter a
-list, we stop evaluation. This is done by quoting the list with a
+and@tie{}2).  Normally lists are interpreted as calculations, and the
+Scheme interpreter substitutes the outcome of the calculation.  To enter a
+list, we stop evaluation.  This is done by quoting the list with a
 quote @code{'} symbol.  So, for calculations do not use a quote.
 
 Inside a quoted list or pair, there is no need to quote anymore.  The
@@ -187,8 +193,7 @@
 respectively,
 
 @example
-  #'(stem . head)
-  #'(staff clef key-signature)
-  #'((1) (2))
+#'(stem . head)
+#'(staff clef key-signature)
+#'((1) (2))
 @end example
-
Index: lilypond/Documentation/user/tutorial.itely
diff -u lilypond/Documentation/user/tutorial.itely:1.243.2.1 
lilypond/Documentation/user/tutorial.itely:1.243.2.2
--- lilypond/Documentation/user/tutorial.itely:1.243.2.1        Sun Nov  7 
23:16:07 2004
+++ lilypond/Documentation/user/tutorial.itely  Mon Nov  8 19:57:55 2004
@@ -484,7 +484,7 @@
 To use relative mode, add @code{\relative} before the piece of
 music.  The first note is taken relative to the middle C
 @c no , for this sentence
-(i.e. @code{c'})
+(i.e., @code{c'})
 
 
 
@@ -885,7 +885,7 @@
 A comment is a remark for the human reader of the music input; it is
 ignored while parsing, so it has no effect on the printed output.
 There are two types of comments.  The percent symbol @samp{%}
-introduces a line comment; after  @code{%} the rest of the line   is
+introduces a line comment; after @code{%} the rest of the line is
 ignored.  A block comments marks a whole section of music
 input.  Anything that is enclosed in @code{%@{} and @code{%@}} is
 ignored.  The following fragment shows possible uses for comments
@@ -1031,7 +1031,7 @@
 
 For lead sheets, chords are not printed on staves, but as names on a
 line of themselves.  This is achieved by using @code{\chords} instead
-of @code{\chordmode}. This uses the same syntax as @code{\chordmode},
+of @code{\chordmode}.  This uses the same syntax as @code{\chordmode},
 but renders the notes in a @code{ChordNames} context, with the
 following result.
  
@@ -1247,7 +1247,7 @@
 of a horn/@/bassoon duo
 
 @example
-hornNotes =  \relative c @{
+hornNotes = \relative c @{
   \time 2/4
   r4 f8 a cis4 f e d
 @}
Index: lilypond/GNUmakefile.in
diff -u lilypond/GNUmakefile.in:1.126.2.1 lilypond/GNUmakefile.in:1.126.2.2
--- lilypond/GNUmakefile.in:1.126.2.1   Sun Nov  7 23:16:07 2004
+++ lilypond/GNUmakefile.in     Mon Nov  8 19:57:55 2004
@@ -18,6 +18,9 @@
        vim 
 #
 
+include VERSION
+package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
+
 SCRIPTS = configure aclocal.m4 autogen.sh lexer-gcc-3.1.sh
 README_FILES = ChangeLog  COPYING DEDICATION ROADMAP THANKS 
 README_TXT_FILES = AUTHORS.txt README.txt INSTALL.txt NEWS.txt
@@ -96,14 +99,14 @@
 $(builddir)/share/lilypond-force:
 # Preparing LilyPond tree for builddir exec
        cd $(builddir) && rm -rf lib share
-       mkdir -p $(builddir)/lib/lilypond
-       mkdir -p $(builddir)/share/lilypond
-       mkdir -p $(builddir)/share/lilypond/elisp
-       mkdir -p $(builddir)/share/lilypond/fonts
-       mkdir -p $(builddir)/share/lilypond/tex
-       cd $(builddir)/lib/lilypond && \
+       mkdir -p $(builddir)/lib/$(package)
+       mkdir -p $(builddir)/share/$(package)
+       mkdir -p $(builddir)/share/$(package)/elisp
+       mkdir -p $(builddir)/share/$(package)/fonts
+       mkdir -p $(builddir)/share/$(package)/tex
+       cd $(builddir)/lib/$(package) && \
                ln -s  ../../python/$(outconfbase) python
-       cd $(builddir)/share/lilypond && \
+       cd $(builddir)/share/$(package) && \
                ln -s $(abs-srcdir)/ly ly && \
                ln -s ../../mf/$(outconfbase) dvips && \
                ln -s ../../mf/$(outconfbase) afm && \
@@ -112,16 +115,16 @@
                ln -s $(abs-srcdir)/ps && \
                ln -s ../../python/$(outconfbase) python && \
                ln -s $(abs-srcdir)/scm
-       cd $(builddir)/share/lilypond/tex && \
+       cd $(builddir)/share/$(package)/tex && \
                ln -s $(abs-srcdir)/tex source && \
                ln -s ../../../tex/$(outconfbase) tex-out && \
                ln -s ../../../mf/$(outconfbase) mf-out
-       cd $(builddir)/share/lilypond/fonts && \
+       cd $(builddir)/share/$(package)/fonts && \
                ln -s $(abs-srcdir)/mf source && \
                ln -s ../../../mf/$(outconfbase) afm && \
                ln -s ../../../mf/$(outconfbase) tfm && \
                ln -s ../../../mf/$(outconfbase) type1
-       cd $(builddir)/share/lilypond/elisp && \
+       cd $(builddir)/share/$(package)/elisp && \
                ln -sf ../../../elisp/$(outconfbase)/lilypond-words.el . && \
                ln -s $(abs-srcdir)/elisp/*.el .
        $(foreach i,$(CATALOGS), \
Index: lilypond/THANKS
diff -u lilypond/THANKS:1.68.2.1 lilypond/THANKS:1.68.2.2
--- lilypond/THANKS:1.68.2.1    Sun Nov  7 23:16:07 2004
+++ lilypond/THANKS     Mon Nov  8 19:57:55 2004
@@ -1,5 +1,27 @@
 
-Release 2.3
+Release 2.5
+***********
+
+
+DEVELOPMENT TEAM
+
+Han-Wen Nienhuys  - Core development
+Jan Nieuwenhuizen - Core development
+Erik Sandberg     - Bug Meister
+Pedro Kroger      - Build Meister
+Graham Percival   - Documentation Editor
+
+CONTRIBUTORS
+
+Werner Lemberg
+Heikki Junes
+
+BUG HUNTERS/SUGGESTIONS
+
+Fernando Pablo Lopez-Lezcano
+Jack O'Quin
+
+Release 2.4
 ***********
 
 DEVELOPMENT TEAM
Index: lilypond/elisp/lilypond-indent.el
diff -u /dev/null lilypond/elisp/lilypond-indent.el:1.2.8.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/elisp/lilypond-indent.el   Mon Nov  8 19:57:55 2004
@@ -0,0 +1,588 @@
+;;; lilypond-indent.el --- Auto-indentation for lilypond code
+;;;
+;;; Heikki Junes <hjunes@xxxxxxxxx>
+;;; * ond-char paren matching is handled by context dependent syntax tables
+;;; * match two-char slurs '\( ... \)' and '\[ ... \]' separately.
+;;; * adopt Emacs' f90-comment-region
+
+;;; Chris Jackson <chris@xxxxxxxxxxxxxxxxx>
+;;; some code is taken from ESS (Emacs Speaks Statistics) S-mode by 
A.J.Rossini <rossini@xxxxxxxxxxxxxxxxxxxxxx>
+
+;;; Variables for customising indentation style
+
+;;; TODO:
+;;;    * currently, in bracket matching one may need a non-bracket
+;;;      chararacter between the bracket characters, like ( ( ) )
+
+(defcustom LilyPond-indent-level 2
+  "*Indentation of lilypond statements with respect to containing block."
+  :group 'LilyPond
+  :type 'integer)
+
+(defcustom LilyPond-brace-offset 0
+  "*Extra indentation for open braces.
+Compares with other text in same context."
+  :group 'LilyPond
+  :type 'integer)
+
+(defcustom LilyPond-angle-offset 0
+  "*Extra indentation for open angled brackets.
+Compares with other text in same context."
+  :group 'LilyPond
+  :type 'integer)
+
+(defcustom LilyPond-square-offset 0
+  "*Extra indentation for open square brackets.
+Compares with other text in same context."
+  :group 'LilyPond
+  :type 'integer)
+
+(defcustom LilyPond-scheme-paren-offset 0
+  "*Extra indentation for open scheme parens.
+Compares with other text in same context."
+  :group 'LilyPond
+  :type 'integer)
+
+(defcustom LilyPond-close-brace-offset 0
+  "*Extra indentation for closing braces."
+  :group 'LilyPond
+  :type 'integer)
+
+(defcustom LilyPond-close-angle-offset 0
+  "*Extra indentation for closing angle brackets."
+  :group 'LilyPond
+  :type 'integer)
+
+(defcustom LilyPond-close-square-offset 0
+  "*Extra indentation for closing square brackets."
+  :group 'LilyPond
+  :type 'integer)
+
+(defcustom LilyPond-close-scheme-paren-offset 0
+  "*Extra indentation for closing scheme parens."
+  :group 'LilyPond
+  :type 'integer)
+
+(defcustom LilyPond-fancy-comments t
+  "*Non-nil means distiguish between %, %%, and %%% for indentation."
+  :group 'LilyPond
+  :type 'boolean)
+
+(defcustom LilyPond-comment-region "%%$"
+  "*String inserted by \\[LilyPond-comment-region]\
+ at start of each line in region."
+  :group 'LilyPond
+  :type 'string)
+
+(defun LilyPond-comment-region (beg-region end-region)
+  "Comment/uncomment every line in the region.
+Insert LilyPond-comment-region at the beginning of every line in the region
+or, if already present, remove it."
+  (interactive "*r")
+  (let ((end (make-marker)))
+    (set-marker end end-region)
+    (goto-char beg-region)
+    (beginning-of-line)
+    (if (looking-at (regexp-quote LilyPond-comment-region))
+       (delete-region (point) (match-end 0))
+      (insert LilyPond-comment-region))
+    (while (and  (zerop (forward-line 1))
+                (< (point) (marker-position end)))
+      (if (looking-at (regexp-quote LilyPond-comment-region))
+         (delete-region (point) (match-end 0))
+       (insert LilyPond-comment-region)))
+    (set-marker end nil)))
+
+(defun LilyPond-calculate-indent ()
+  "Return appropriate indentation for current line as lilypond code.
+In usual case returns an integer: the column to indent to.
+Returns nil if line starts inside a string"
+  (save-excursion
+    (beginning-of-line)
+    (let ((indent-point (point))
+         (case-fold-search nil)
+         state)
+      (setq containing-sexp (save-excursion (LilyPond-scan-containing-sexp)))
+      (beginning-of-defun)
+      (while (< (point) indent-point)
+       (setq state (parse-partial-sexp (point) indent-point 0)))
+      ;; (setq containing-sexp (car (cdr state))) is the traditional way for 
languages
+      ;; with simpler parenthesis delimiters
+      (cond ((nth 3 state) 
+            ;; point is in the middle of a string 
+            nil)
+           ((nth 4 state)
+            ;; point is in the middle of a block comment
+            (LilyPond-calculate-indent-within-blockcomment))
+           ((null containing-sexp)
+            ;; Line is at top level - no indent
+            (beginning-of-line)
+            0)
+           (t
+            ;; Find previous non-comment character.
+            (goto-char indent-point)
+            (LilyPond-backward-to-noncomment containing-sexp)
+            ;; Now we get the answer.
+            ;; Position following last unclosed open.
+            (goto-char containing-sexp)
+            (or
+             ;; Is line first statement after an open brace or bracket?
+             ;; If no, find that first statement and indent like it.
+             (save-excursion
+               (forward-char 1)
+               ;; Skip over comments following open brace.
+               (skip-chars-forward " \t\n")
+               (cond ((looking-at "%{")
+                      (while  (progn 
+                                (and (not (looking-at "%}"))
+                                     (< (point) (point-max))))
+                        (forward-line 1)
+                        (skip-chars-forward " \t\n"))
+                      (forward-line 1)
+                      (skip-chars-forward " \t\n"))
+                     ((looking-at "%")
+                      (while (progn (skip-chars-forward " \t\n")
+                                    (looking-at "%"))
+                        (forward-line 1))))
+               ;; The first following code counts
+               ;; if it is before the line we want to indent.
+               (and (< (point) indent-point)
+                    (current-column)))
+             ;; If no previous statement,
+             ;; indent it relative to line brace is on.
+             ;; For open brace in column zero, don't let statement
+             ;; start there too.  If LilyPond-indent-level is zero, use
+             ;; LilyPond-brace-offset instead
+             (+ (if (and (bolp) (zerop LilyPond-indent-level))
+                    (cond ((= (following-char) ?{) 
+                           LilyPond-brace-offset)
+                          ((= (following-char) ?<) 
+                           LilyPond-angle-offset)
+                          ((= (following-char) ?[) 
+                           LilyPond-square-offset)
+                          ((= (following-char) ?\))
+                           LilyPond-scheme-paren-offset)
+                          (t
+                           0))
+                  LilyPond-indent-level)
+                (progn
+                  (skip-chars-backward " \t")
+                  (current-indentation)))))))))
+
+
+(defun LilyPond-indent-line ()
+  "Indent current line as lilypond code.
+Return the amount the indentation changed by."
+  (let ((indent (LilyPond-calculate-indent))
+       beg shift-amt
+       (case-fold-search nil)
+       (pos (- (point-max) (point))))
+    (beginning-of-line)
+    (setq beg (point))
+    (cond ((eq indent nil)
+          (setq indent (current-indentation)))
+         (t
+          (skip-chars-forward " \t")
+          (if (and LilyPond-fancy-comments (looking-at "%%%\\|%{\\|%}"))
+              (setq indent 0))
+          (if (and LilyPond-fancy-comments
+                   (looking-at "%")
+                   (not (looking-at "%%\\|%{\\|%}")))
+              (setq indent comment-column)
+            (if (eq indent t) (setq indent 0))
+            (if (listp indent) (setq indent (car indent)))
+            (cond
+             ((= (following-char) ?})
+              (setq indent  (+ indent (- LilyPond-close-brace-offset 
LilyPond-indent-level))))
+             ((= (following-char) ?>)
+              (setq indent  (+ indent (- LilyPond-close-angle-offset 
LilyPond-indent-level))))
+             ((= (following-char) ?])
+              (setq indent  (+ indent (- LilyPond-close-square-offset 
LilyPond-indent-level))))
+             ((and (= (following-char) ?\)) (LilyPond-inside-scheme-p))
+              (setq indent  (+ indent (- LilyPond-close-scheme-paren-offset 
LilyPond-indent-level))))
+             ((= (following-char) ?{)
+              (setq indent  (+ indent LilyPond-brace-offset)))
+             ((= (following-char) ?<)
+              (setq indent  (+ indent LilyPond-angle-offset)))
+             ((= (following-char) ?[)
+              (setq indent  (+ indent LilyPond-square-offset)))
+             ((and (= (following-char) ?\() (LilyPond-inside-scheme-p))
+              (setq indent  (+ indent LilyPond-scheme-paren-offset)))
+             ))))
+    (skip-chars-forward " \t")
+    (setq shift-amt (- indent (current-column)))
+    (if (zerop shift-amt)
+       (if (> (- (point-max) pos) (point))
+           (goto-char (- (point-max) pos)))
+      (delete-region beg (point))
+      (indent-to indent)
+      ;; If initial point was within line's indentation,
+      ;; position after the indentation.
+      ;; Else stay at same point in text.
+      (if (> (- (point-max) pos) (point))
+         (goto-char (- (point-max) pos))))
+    shift-amt))
+
+
+(defun LilyPond-inside-comment-p ()
+  "Return non-nil if point is inside a line or block comment"
+  (setq this-point (point))
+  (or (save-excursion (beginning-of-line)
+                     (skip-chars-forward " \t")
+                     (looking-at "%"))
+      (save-excursion 
+       ;; point is in the middle of a block comment
+       (setq lastopen  (save-excursion (re-search-backward "%{[ \\t]*" 
(point-min) t)))
+       (setq lastclose (save-excursion (re-search-backward "%}[ \\t]*" 
(point-min) t)))
+       (if (or (and (= (char-before) ?%) (= (char-after) ?{))
+               (and (= (char-after)  ?%) (= (char-after (1+ (point))) ?{)))
+           (setq lastopen (save-excursion (backward-char) (point))))
+       (and 
+        lastopen
+        (or (not lastclose)
+            (<= lastclose lastopen))))
+      ))
+
+
+(defun LilyPond-inside-string-or-comment-p ()
+  "Test if point is inside a string or a comment"
+  (setq this-point (point))
+  (or (save-excursion (beginning-of-line)
+                     (skip-chars-forward " \t")
+                     (looking-at "%"))
+      (save-excursion 
+       (beginning-of-defun)
+       (while (< (point) this-point)
+         (setq state (parse-partial-sexp (point) this-point 0)))
+       (cond ((nth 3 state) 
+              ;; point is in the middle of a string 
+              t )
+             ((nth 4 state)
+              ;; point is in the middle of a block comment
+              t ) 
+             (t
+              nil)))))
+
+
+(defun LilyPond-backward-over-blockcomments (lim)
+  "Move point back to closest non-whitespace character not part of a block 
comment"
+  (setq lastopen  (save-excursion (re-search-backward "%{[ \\t]*" lim t)))
+  (setq lastclose (save-excursion (re-search-backward "%}[ \\t]*" lim t)))
+  (if lastopen
+      (if lastclose
+         (if (<= lastclose lastopen)
+             (goto-char lastopen))
+       (goto-char lastopen)))
+  (skip-chars-backward " %\t\n\f"))
+
+
+(defun LilyPond-backward-over-linecomments (lim)
+  "Move point back to the closest non-whitespace character not part of a line 
comment.
+Argument LIM limit."
+  (let (opoint stop)
+    (while (not stop)
+      (skip-chars-backward " \t\n\f" lim)
+      (setq opoint (point))
+      (beginning-of-line)
+      (search-forward "%" opoint 'move)
+      (skip-chars-backward " \t%")
+      (setq stop (or (/= (preceding-char) ?\n) (<= (point) lim)))
+      (if stop (point)
+       (beginning-of-line)))))
+
+
+(defun LilyPond-backward-to-noncomment (lim)
+  "Move point back to closest non-whitespace character not part of a comment"
+  (LilyPond-backward-over-linecomments lim)
+  (LilyPond-backward-over-blockcomments lim))
+
+
+(defun LilyPond-calculate-indent-within-blockcomment ()
+  "Return the indentation amount for line inside a block comment."
+  (let (end percent-start)
+    (save-excursion
+      (beginning-of-line)
+      (skip-chars-forward " \t")
+      (skip-chars-backward " \t\n")
+      (setq end (point))
+      (beginning-of-line)
+      (skip-chars-forward " \t")
+      (and (re-search-forward "%{[ \t]*" end t)
+          (goto-char (1+ (match-beginning 0))))
+      (if (and (looking-at "[ \t]*$") (= (preceding-char) ?\%))
+         (1+ (current-column))
+       (current-column)))))
+
+
+;; Key:   Type of bracket (character). 
+;; Value: Pair of regexps representing the corresponding open and close bracket
+;; () are treated specially (need to indent in Scheme but not in music)
+
+(defconst LilyPond-parens-regexp-alist
+  `( ( ?>  .  ("\\([^\\]\\|^\\)<" . "\\([^ 
\\n\\t_^-]\\|[_^-][-^]\\|\\s-\\)\\s-*>"))
+     ;; a b c->, a b c^> and a b c_> are not close-angle-brackets, they're 
accents
+     ;; but a b c^-> and a b c^^> are close brackets with tenuto/marcato 
before them
+     ;; also \> and \< are hairpins
+     ;; duh .. a single '>', as in chords '<< ... >>', was not matched here
+     ( ?}  .  ("{" . "}"))
+     ;; ligatures  '\[ ... \]' are skipped in the following expression
+     ( ?]  .  ("\\([^\\]\\([\\][\\]\\)*\\|^\\)[[]" . 
"\\([^\\]\\([\\][\\]\\)*\\|^\\)[]]"))
+     ( "\\]" . ("\\([^\\]\\|^\\)\\([\\][\\]\\)*[\\][[]" . 
"\\([^\\]\\|^\\)\\([\\][\\]\\)*[\\][]]"))
+     ( "\\)" . ("\\([^\\]\\|^\\)\\([\\][\\]\\)*[\\][(]" . 
"\\([^\\]\\|^\\)\\([\\][\\]\\)*[\\][)]"))
+     ))
+
+
+(defconst LilyPond-parens-alist
+  `( ( ?<  .  ?> )    
+     ( ?{  .  ?} )    
+     ( ?[  .  ?] )
+     ( "\\["  .  "\\]" )
+     ( ?\(  .  ?\) )
+     ( "\\("  .  "\\)" )
+     ))
+
+
+(defun LilyPond-matching-paren (bracket-type)
+  "Returns the open corresponding to the close specified by bracket-type, or 
vice versa"
+  (cond ( (member bracket-type (mapcar 'car LilyPond-parens-alist))
+         (cdr (assoc bracket-type LilyPond-parens-alist)) )
+       ( (member bracket-type (mapcar 'cdr LilyPond-parens-alist))
+         (car (rassoc bracket-type LilyPond-parens-alist)) )
+       nil))
+
+
+(defun LilyPond-scan-containing-sexp (&optional bracket-type slur-paren-p dir)
+  "Move point to the beginning of the deepest parenthesis pair enclosing 
point. 
+
+If the optional argument bracket-type, a character representing a
+close bracket such as ) or }, is specified, then the parenthesis pairs
+searched are limited to this type.
+
+If the optional argument slur-paren-p is non-nil, then slur
+parentheses () are considered as matching pairs. Otherwise Scheme
+parentheses are considered to be matching pairs, but slurs are not.
+slur-paren-p defaults to nil.
+"
+;;; An user does not call this function directly, or by a key sequence.
+  ;;  (interactive)
+  (let ( (level (if (not (eq dir 1)) 1 -1))
+        (regexp-alist LilyPond-parens-regexp-alist) 
+        (oldpos (point))
+        (assoc-bracket-type (if (not (eq dir 1)) bracket-type 
(LilyPond-matching-paren bracket-type))))
+    
+    (if (LilyPond-inside-scheme-p)
+       (setq paren-regexp "(\\|)")
+      (if slur-paren-p
+         ;; expressional slurs  '\( ... \)' are not taken into account
+         (setq regexp-alist (cons '( ?\) . ("\\([^\\]\\([\\][\\]\\)*\\|^\\)(" 
. "\\([^\\]\\([\\][\\]\\)*\\|^\\))")) regexp-alist)))
+      (if (member assoc-bracket-type (mapcar 'car regexp-alist))
+         (progn (setq paren-regexp (cdr (assoc assoc-bracket-type 
regexp-alist)))
+                (setq paren-regexp (concat (car paren-regexp) "\\|" (cdr 
paren-regexp))))
+       (setq paren-regexp (concat (mapconcat 'car (mapcar 'cdr regexp-alist) 
"\\|") "\\|"
+                                  (mapconcat 'cdr (mapcar 'cdr regexp-alist) 
"\\|")))))
+    ;; match concurrent one-char opening and closing slurs
+    (if (and (eq dir 1)
+            (not (sequencep bracket-type))
+            (eq (char-syntax (char-after oldpos)) ?\()
+            (not (eq (char-after oldpos) ?<)))
+       ;; anyway do not count open slur, since already level = -1
+        (progn (forward-char 1)
+              (if (eq (following-char) 
+                      (LilyPond-matching-paren (char-after oldpos)))
+                  ;; matching char found, go after it and set level = 0
+                  (progn (forward-char 1)
+                         (setq level 0)))))
+    ;; browse the code until matching slur is found, or report mismatch
+    (while (and (if (not (eq dir 1)) 
+                   (> level 0) 
+                 (< level 0))
+               ;; dir tells whether to search backward or forward
+               (if (not (eq dir 1))
+                   (re-search-backward paren-regexp nil t)
+                 (re-search-forward paren-regexp nil t))
+               ;; note: in case of two-char bracket only latter is compared
+               (setq match (char-before (match-end 0))))
+;;;      (message "%d" level) (sit-for 0 300)
+      (if (not (save-excursion (goto-char (match-end 0))
+                              ;; skip over strings and comments
+                              (LilyPond-inside-string-or-comment-p)))
+         (if (memq match '(?} ?> ?] ?\)))
+             ;; count closing brackets
+             (progn (setq level (1+ level))
+                    ;; slurs may be close to each other, e.g.,
+                    ;; a single '>' was not matched .. need to be corrected
+                    (if (and (eq dir 1) (eq (char-after (match-end 0)) match))
+                        (if (/= level 0)
+                            (progn
+                              (setq level (1+ level))
+                              (forward-char 1))))
+;;;                 (message "%d %c" level match) (sit-for 0 300)
+                    ;; hmm..
+                    (if (and (= match ?>) 
+                             (looking-at 
".\\s-+>\\|\\({\\|}\\|<\\|>\\|(\\|)\\|[][]\\)>"))
+                        (forward-char 1)))
+           ;; count opening brackets
+           (progn (setq level (1- level))
+;;;               (message "%d %c" level match) (sit-for 0 300)
+                  ;; hmm..
+                  (if (and (= match ?<)
+                           (looking-at 
".\\s-+<\\|\\({\\|}\\|<\\|>\\|(\\|)\\|[][]\\)<"))
+                      (forward-char 1))))))
+    ;; jump to the matching slur
+    (if (not (eq dir 1))
+       (progn
+         (if (sequencep bracket-type)
+             ;; match the latter char in two-char brackets
+             (if (looking-at "..[][)(]") (forward-char 1)))
+         ;; if the following char is not already a slur
+         (if (and (not (looking-at "[)(]"))
+                  ;; match the slur which follows
+                  (looking-at ".[][><)(]")) (forward-char 1)))
+      (backward-char 1))
+    (if (= level 0) 
+       (point)
+      (progn (goto-char oldpos)
+            nil))))
+
+
+(defun LilyPond-inside-scheme-p ()
+  "Tests if point is inside embedded Scheme code"
+;;; An user does not call this function directly, or by a key sequence.
+  ;;  (interactive)
+  (let ( (test-point (point))
+        (level 0) )
+    (save-excursion 
+      (if (or (and (/= (point) (point-max))
+                  (= (char-after (point)) ?\()
+                  (or (= (char-after (- (point) 1)) ?#)
+                      (and (= (char-after (- (point) 2)) ?#)
+                           (= (char-after (- (point) 1)) ?`))))
+             (and (re-search-backward "#(\\|#`(" nil t)
+                  (progn 
+                    (search-forward "(")
+                    (setq level 1)
+                    (while (and (> level 0)
+                                (re-search-forward "(\\|)" test-point t)
+                                (setq match (char-after (match-beginning 0)))
+                                (<= (point) test-point))
+                      (if (= match ?\()
+                          (setq level (1+ level))
+                        (setq level (1- level))))
+                    (> level 0))))
+         t
+       nil))))
+
+
+;;; Largely taken from the 'blink-matching-open' in lisp/simple.el in
+;;; the Emacs distribution.
+
+(defun LilyPond-blink-matching-paren (&optional dir)
+  "Move cursor momentarily to the beginning of the sexp before
+point. In lilypond files this is used for closing ), ], } and >, whereas the
+builtin 'blink-matching-open' is not used. In syntax table, see
+`lilypond-font-lock.el', all brackets are punctuation characters."
+;;; An user does not call this function directly, or by a key sequence.
+  ;;  (interactive)
+  (let ( (oldpos (point))
+        (level 0) 
+        (mismatch) )
+    (if (not (or (equal this-command 'LilyPond-electric-close-paren)
+                (eq dir 1)))
+       (goto-char (setq oldpos (- oldpos 1))))
+    ;; Test if a ligature \] or expressional slur \) was encountered
+    (setq bracket-type (char-after (point)))
+    (setq char-before-bracket-type nil)
+    (if (memq bracket-type '(?] ?\) ?[ ?\())
+      (progn 
+       (setq np -1)
+       (while (eq (char-before (- (point) (setq np (+ np 1)))) ?\\)
+         (setq char-before-bracket-type (if char-before-bracket-type nil ?\\)))
+        (if (eq char-before-bracket-type ?\\)
+           (setq bracket-type (string char-before-bracket-type 
bracket-type)))))
+    (when blink-matching-paren-distance
+      (narrow-to-region
+       (max (point-min) (- (point) blink-matching-paren-distance))
+       (min (point-max) (+ (point) blink-matching-paren-distance))))
+    (if (and (equal this-command 'LilyPond-electric-close-paren)
+            (memq bracket-type '(?> ?} ?< ?{)))
+       ;; < { need to be mutually balanced and nested, so search backwards for 
both of these bracket types 
+       (LilyPond-scan-containing-sexp nil nil dir)  
+      ;; whereas ( ) slurs within music don't, so only need to search for ( )
+      ;; use same mechanism for [ ] slurs
+      (LilyPond-scan-containing-sexp bracket-type t dir))
+    (setq blinkpos (point))
+    (setq mismatch
+         (or (null (LilyPond-matching-paren (char-after blinkpos)))
+             (/= (char-after oldpos)
+                 (LilyPond-matching-paren (char-after blinkpos)))))
+    (if mismatch (progn (setq blinkpos nil)
+                       (message "Mismatched parentheses")))
+    (if (and blinkpos
+            (equal this-command 'LilyPond-electric-close-paren))
+       (if (pos-visible-in-window-p)
+           (and blink-matching-paren-on-screen
+                (sit-for blink-matching-delay))
+         (message
+          "Matches %s"
+          ;; Show what precedes the open in its line, if anything.
+          (if (save-excursion
+                (skip-chars-backward " \t")
+                (not (bolp)))
+              (buffer-substring (progn (beginning-of-line) (point))
+                                (1+ blinkpos))
+            ;; Show what follows the open in its line, if anything.
+            (if (save-excursion
+                  (forward-char 1)
+                  (skip-chars-forward " \t")
+                  (not (eolp)))
+                (buffer-substring blinkpos
+                                  (progn (end-of-line) (point)))
+              ;; Otherwise show the previous nonblank line,
+              ;; if there is one.
+              (if (save-excursion
+                    (skip-chars-backward "\n \t")
+                    (not (bobp)))
+                  (concat
+                   (buffer-substring (progn
+                                       (skip-chars-backward "\n \t")
+                                       (beginning-of-line)
+                                       (point))
+                                     (progn (end-of-line)
+                                            (skip-chars-backward " \t")
+                                            (point)))
+                   ;; Replace the newline and other whitespace with `...'.
+                   "..."
+                   (buffer-substring blinkpos (1+ blinkpos)))
+                ;; There is nothing to show except the char itself.
+                (buffer-substring blinkpos (1+ blinkpos))))))))
+    (if (not (equal this-command 'LilyPond-electric-close-paren))
+       (goto-char (setq oldpos (+ oldpos 1)))
+      (goto-char oldpos))
+    (if (not (eq dir 1))
+       blinkpos
+      (+ blinkpos 1))))
+
+
+(defun LilyPond-electric-close-paren ()
+  "Blink on the matching open paren when a >, ), } or ] is inserted"
+  (interactive)
+  (let ((oldpos (point)))
+    (self-insert-command 1)
+    ;; Refontify buffer if a block-comment-ender '%}' is inserted
+    (if (and (eq (char-before (point)) ?})
+            (eq (char-before (- (point) 1)) ?%))
+       (font-lock-fontify-buffer)
+      ;; Match paren if the cursor is not inside string or comment.
+      (if (and blink-matching-paren
+              (not (LilyPond-inside-string-or-comment-p))
+              (save-excursion (re-search-backward 
+                               (concat (mapconcat 'cdr (mapcar 'cdr 
LilyPond-parens-regexp-alist) "\\|") "\\|)") nil t)
+                              (eq oldpos (1- (match-end 0)))))
+         (progn (backward-char 1)
+                (LilyPond-blink-matching-paren)
+                (forward-char 1))))))
+
+(defun LilyPond-scan-sexps (pos dir) 
+  "This function is redefined to be used in Emacs' show-paren-function and
+in XEmacs' paren-highlight."
+  (LilyPond-blink-matching-paren dir))
Index: lilypond/lily/lexer.ll
diff -u lilypond/lily/lexer.ll:1.150.2.1 lilypond/lily/lexer.ll:1.150.2.2
--- lilypond/lily/lexer.ll:1.150.2.1    Sun Nov  7 23:16:07 2004
+++ lilypond/lily/lexer.ll      Mon Nov  8 19:57:55 2004
@@ -164,7 +164,7 @@
   }
 }
 
-<INITIAL,notes>\\encoding{WHITE}* {
+<INITIAL,lyrics,figures,notes>\\encoding{WHITE}* {
        yy_push_state (encoding);
 }
 <INITIAL,chords,lyrics,notes,figures>\\version{WHITE}* {
@@ -188,17 +188,16 @@
                return INVALID;
 }
 <renameinput>\"[^"]*\"     {
-       String s (YYText ()+1);
+       String s (YYText () + 1);
        s = s.left_string (s.index_last ('\"'));
 
        yy_pop_state();
        this->here_input().source_file_->name_ = s;
-       progress_indication ("\n");
-       progress_indication (_f ("input renamed to: `%s'", s.to_str0 ()));
+       progress_indication (_f ("Renaming input to: `%s'", s.to_str0 ()));
        progress_indication ("\n");
        scm_module_define (scm_car (scopes_),
                     ly_symbol2scm ("input-file-name"),
-                    scm_makfrom0str (s.to_str0()));
+                    scm_makfrom0str (s.to_str0 ()));
 
 }
 <encoding>.    {
@@ -244,16 +243,14 @@
 <INITIAL,chords,lyrics,figures,notes>\\include           {
        yy_push_state (incl);
 }
-<incl>\"[^"]*\";?   { /* got the include file name */
-/* FIXME: semicolon? */
+<incl>\"[^"]*\"   { /* got the include file name */
        String s (YYText ()+1);
        s = s.left_string (s.index_last ('"'));
 
        new_input (s, sources_);
        yy_pop_state ();
 }
-<incl>\\{BLACK}*;?{WHITE} { /* got the include identifier */
-/* FIXME: semicolon? */
+<incl>\\{BLACK}*{WHITE} { /* got the include identifier */
        String s = YYText () + 1;
        strip_trailing_white (s);
        if (s.length () && (s[s.length () - 1] == ';'))
@@ -357,7 +354,6 @@
                yylval.i = String_convert::dec2int (String (YYText () +1));
                return E_UNSIGNED;
        }
-
        \" {
                start_quote ();
        }
Index: lilypond/lily/quote-iterator.cc
diff -u lilypond/lily/quote-iterator.cc:1.21.2.1 
lilypond/lily/quote-iterator.cc:1.21.2.2
--- lilypond/lily/quote-iterator.cc:1.21.2.1    Sun Nov  7 23:16:07 2004
+++ lilypond/lily/quote-iterator.cc     Mon Nov  8 19:57:55 2004
@@ -170,7 +170,7 @@
     }
 
   if (event_idx_ <= end_idx_
-      && vector_moment (event_idx_).main_part_ < stop_moment_.main_part_;
+      && vector_moment (event_idx_).main_part_ < stop_moment_.main_part_
       )
     {
       SCM entry = SCM_VECTOR_REF (event_vector_, event_idx_);
Index: lilypond/lily/recording-group-engraver.cc
diff -u /dev/null lilypond/lily/recording-group-engraver.cc:1.20.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/lily/recording-group-engraver.cc   Mon Nov  8 19:57:55 2004
@@ -0,0 +1,95 @@
+/*   
+  recording-group-engraver.cc -- implement Recording_group_engraver
+
+  source file of the GNU LilyPond music typesetter
+
+  (c) 2003--2004 Han-Wen Nienhuys <hanwen@xxxxxxxxx>
+
+ */
+
+#include "context.hh"
+#include "engraver-group-engraver.hh"
+#include "protected-scm.hh"
+
+class Recording_group_engraver : public Engraver_group_engraver
+{
+public:
+  TRANSLATOR_DECLARATIONS (Recording_group_engraver);
+  virtual bool try_music (Music *m);
+  void add_music (SCM, SCM);
+  virtual void stop_translation_timestep ();
+  virtual void finalize ();
+  virtual void initialize ();
+  virtual void derived_mark () const;
+  SCM now_events_;
+  SCM accumulator_;
+};
+
+void
+Recording_group_engraver::derived_mark () const
+{
+  Engraver_group_engraver::derived_mark();
+  scm_gc_mark (now_events_);
+  scm_gc_mark (accumulator_);
+}
+
+void
+Recording_group_engraver::initialize ()
+{
+  Engraver_group_engraver::initialize ();
+}
+
+Recording_group_engraver::Recording_group_engraver ()
+{
+  accumulator_ = SCM_EOL;
+  now_events_ = SCM_EOL;
+}
+
+void
+Recording_group_engraver::add_music (SCM music, SCM success)
+{
+  now_events_ = scm_cons (scm_cons (music, success), now_events_);
+}
+
+
+void
+Recording_group_engraver::stop_translation_timestep ()
+{
+  Engraver_group_engraver::stop_translation_timestep ();
+
+  accumulator_ = scm_acons (scm_cons (now_mom ().smobbed_copy (),
+                                    get_property ("instrumentTransposition")),
+                           now_events_,
+                           accumulator_);
+  now_events_ = SCM_EOL;
+}
+
+void
+Recording_group_engraver::finalize ()
+{
+  Engraver_group_engraver::finalize ();
+  SCM proc = get_property ("recordEventSequence");
+
+  if (ly_c_procedure_p (proc))
+    scm_call_2  (proc, context ()->self_scm (), scm_cdr (accumulator_));
+}
+
+bool
+Recording_group_engraver::try_music (Music  *m)
+{
+  bool retval = Translator_group::try_music (m);
+
+  add_music (m->self_scm (), ly_bool2scm (retval));
+  return retval;
+}
+
+
+ENTER_DESCRIPTION (Recording_group_engraver,
+                 "Engraver_group_engraver that records all music events "
+                 "for this context. Calls the procedure "
+                 "in @code{recordEventSequence} when finished.",
+                 "",
+                 "",
+                 "",
+                 "recordEventSequence",
+                 "");
Index: lilypond/mf/GNUmakefile
diff -u /dev/null lilypond/mf/GNUmakefile:1.93.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/mf/GNUmakefile     Mon Nov  8 19:57:56 2004
@@ -0,0 +1,214 @@
+depth = ..
+
+STEPMAKE_TEMPLATES=metafont install install-out
+
+include $(depth)/make/stepmake.make 
+
+AF_FILES = $(wildcard *.af) 
+
+EXTRA_DIST_FILES += README feta.tex 
+
+# We don't use $(MF_FILES), because there's more .mf cruft here
+FETA_MF_FILES = $(wildcard feta[0-9]*.mf)\
+       $(wildcard feta-braces-[a-z].mf)\
+       $(wildcard feta-din*[0-9].mf)\
+       $(wildcard feta-nummer*[0-9].mf)\
+       $(wildcard parmesan[0-9]*.mf)
+
+FETA_FONTS = $(FETA_MF_FILES:.mf=)
+
+XPM_FONTS = feta20 feta-din10 feta-nummer10 feta-braces20 parmesan20
+
+LOG_FILES = $(FETA_MF_FILES:%.mf=$(outdir)/%.log)
+TEXTABLES = $(FETA_MF_FILES:%.mf=$(outdir)/%.tex)
+AFM_FILES = $(FETA_MF_FILES:%.mf=$(outdir)/%.afm) \
+       $(AF_FILES:%.af=$(outdir)/%.afm)
+ENC_FILES = $(TEXTABLES:.tex=.enc) $(outdir)/cmr.enc
+TFM_FILES = $(FETA_MF_FILES:%.mf=$(outdir)/%.tfm) $(addprefix 
$(outdir)/,$(addsuffix .tfm,$(SAUTER_FONTS)))
+FETA_LIST_FILES = $(FETA_MF_FILES:%.mf=$(outdir)/%list.ly)
+
+
+ENCODING_FILE=$(findstring $(<:.mf=.enc), $(FETA_MF_FILES:.mf=.enc))
+MFTRACE_FLAGS=$(if $(ENCODING_FILE),--encoding $(ENCODING_FILE),)
+bla:
+       echo $(TFM_FILES) 
+
+# only for fonts which
+#
+# 1. are mentioned in font.scm
+#
+# 2. are not included with teTeX
+#
+
+foe:
+       echo $(MFINPUTS)
+       echo $(TEXMF)
+       kpsewhich exbase.mf
+
+
+## use separate package sauter-fonts-mftraced.
+SAUTER_FONTS = 
+
+#cmbxti8 ecbm14 ecrm12
+MORE_SAUTER_FONTS = cmbx14 cmbx17 \
+        cmbxti12 cmbxti14 \
+        cmbxti6 cmbxti7 cmbxti8 \
+        cmcsc12 cmcsc7 cmcsc8 \
+        cmss5 cmss6 cmss7 \
+        cmti5 cmti6 \
+        cmtt17 cmtt5 cmtt6 cmtt7
+
+ALL_FONTS = $(FETA_FONTS) $(SAUTER_FONTS)
+PFA_FILES = $(ALL_FONTS:%=$(outdir)/%.pfa)
+PFB_FILES = $(PFA_FILES:%.pfa=%.pfb)
+
+# Make tfm files first, log files last, 
+# so that normally log files aren't made twice
+ALL_GEN_FILES= $(TFM_FILES) $(TEXTABLES) $(AFM_FILES) $(TFM_FILES) 
$(LOG_FILES) $(ENC_FILES) $(FETA_LIST_FILES) $(PFA_FILES) 
$(outdir)/lilypond.map $(outdir)/fonts.scale $(outdir)/Fontmap.lily
+
+#PRE_INSTALL=$(MAKE) "$(ALL_GEN_FILES)"
+INSTALLATION_DIR=$(local_lilypond_datadir)/fonts/source
+INSTALLATION_FILES=$(MF_FILES) $(AF_FILES)
+
+INSTALLATION_OUT_SUFFIXES=1 2 3 4 5 6 7
+
+INSTALLATION_OUT_DIR1=$(local_lilypond_datadir)/tex
+INSTALLATION_OUT_FILES1=$(TEXTABLES)
+
+INSTALLATION_OUT_DIR2=$(local_lilypond_datadir)/fonts/afm
+INSTALLATION_OUT_FILES2=$(AFM_FILES)
+
+INSTALLATION_OUT_DIR3=$(local_lilypond_datadir)/fonts/tfm
+INSTALLATION_OUT_FILES3=$(TFM_FILES)
+
+INSTALLATION_OUT_DIR4=$(local_lilypond_datadir)/ly
+INSTALLATION_OUT_FILES4=$(FETA_LIST_FILES)
+
+INSTALLATION_OUT_DIR5=$(local_lilypond_datadir)/fonts/type1
+INSTALLATION_OUT_FILES5=$(PFA_FILES) $(outdir)/fonts.scale $(outdir)/Fontmap 
$(outdir)/Fontmap.lily
+
+INSTALLATION_OUT_DIR6=$(local_lilypond_datadir)/dvips/
+INSTALLATION_OUT_FILES6=$(outdir)/lilypond.map
+
+INSTALLATION_OUT_DIR7=$(local_lilypond_datadir)/ps/
+INSTALLATION_OUT_FILES7=$(ENC_FILES)
+
+export MFINPUTS:=.:$(MFINPUTS)
+
+default: pfa_warning $(ALL_GEN_FILES)
+
+
+pfa_warning:
+ifneq ($(notdir $(MFTRACE)),mftrace)
+       @echo ""
+       @echo "ERROR: mftrace not found"
+       @echo ""
+       @echo "For obtaining PFA fonts, either install mftrace "
+       @echo "(see http://www.xs4all.nl/~hanwen/mftrace/ ),"
+       @echo "or try one of the following commands in this directory: "
+       @echo ""
+       @echo " make get-pfa "
+       @echo " make get-rpm-pfa "
+       @echo " make get-deb-pfa "
+       @echo ""
+       @echo "These commands will try to download the files from the internet."
+       @false
+endif
+
+
+debian-mirror=http://ftp.us.debian.org
+debian-package =lilypond_$(TOPLEVEL_VERSION)-1_i386.deb
+$(outdir)/$(debian-package):
+       wget --passive-ftp -P $(outdir) 
$(debian-mirror)/debian/pool/main/l/lilypond/$(debian-package)
+
+get-deb-pfa: $(outdir)/$(debian-package)
+       rm -rf $(outdir)/./usr
+       ar p $< data.tar.gz | \
+               tar -C $(outdir) -zvxf - '*.pfa'
+       cp `find $(outdir)/usr/ -name '*.pfa'` $(outdir)/
+
+
+redhat-package=lilypond-$(TOPLEVEL_VERSION)-1.i386.rpm
+$(outdir)/$(redhat-package):
+       wget  --passive-ftp -P $(outdir) 
http://lilypond.org/download/binaries/Fedora-3/$(redhat-package)
+
+get-rpm-pfa: $(outdir)/$(redhat-package)
+       cd $(outdir) ; rm -rf usr/ # (root alert!) 
+       cd $(outdir) ; rpm2cpio $(redhat-package) | cpio -uid '*.pfa'
+       cp `find $(outdir)/usr/ -name '*.pfa'` $(outdir)/
+
+# change this dependency 
+get-pfa: get-rpm-pfa
+
+
+##
+## todo: this also depends on .tfm, FIXME.
+$(outdir)/%.afm  $(outdir)/%.enc  $(outdir)/%.tex $(outdir)/%list.ly 
$(outdir)/%.dep: $(outdir)/%.log $(outdir)/%.tfm
+       $(PYTHON) $(buildscript-dir)/mf-to-table.py --package=$(topdir) 
--outdir=$(outdir) --dep $(outdir)/$(<F:.log=.dep)  --afm 
$(outdir)/$(<F:.log=.afm)  --enc $(outdir)/$(<F:.log=.enc) --tex 
$(outdir)/$(<F:.log=.tex) --ly $(outdir)/$(<F:.log=list.ly) $<
+
+fontdir: $(addprefix $(outdir)/, lilypond.map lilypond.sfd private-fonts 
fonts.scale fonts.dir Fontmap.lily)
+
+## Urg
+mapentry=$(1) $(shell fgrep FontName $(outdir)/$(1).afm | sed -e 's/FontName 
*//') <$(1).pfaX
+
+map = $(foreach a,$(2),$(call $(1),$(a)))
+$(outdir)/lilypond.xmap: $(AFM_FILES)
+       echo '$(call map,mapentry,$(ALL_FONTS))' | \
+               tr 'X' '\n' | sed -e 's/^ *//'> $@
+
+# using shell for loop seems most robust
+$(outdir)/lilypond.map: $(AFM_FILES)
+       for i in $(FETA_FONTS); do echo $$i $$(fgrep FontName $(outdir)/$$i.afm 
| sed -e 's/FontName *//') '<'$$i.pfa; done > $@
+       for i in $(SAUTER_FONTS); do echo "$$i $$i <$$i.pfa"; done >> $@
+
+$(outdir)/Fontmap:
+       echo '%!' > $@
+       echo '% Override default GS Fontmap' >> $@
+       echo '% To let gs load fonts from builddir, do:' >> $@
+       echo '% export GS_LIB=$$(pwd)/mf/out:' >> $@
+       echo '% See Fontmap.GS for the syntax of real Fontmap files.' >> $@
+       echo '(Fontmap.GS) .runlibfile' >> $@
+       echo '(Fontmap.lily) .runlibfile' >> $@
+
+$(outdir)/Fontmap.lily: $(AFM_FILES) $(outdir)/Fontmap
+       echo '%!' > $@
+       for i in $(FETA_FONTS); do echo "/$$(fgrep FontName $(outdir)/$$i.afm | 
sed -e 's/FontName *//') ($$i.pfa);"; done >> $@
+       for i in $(SAUTER_FONTS); do echo "$$i ($$i.pfa);"; done >> $@
+
+
+$(outdir)/fonts.scale: $(PFA_FILES)
+#      cd $(outdir) && echo $(FETA_MF_FILES:.mf=.pfa) 
$(FETA_MF_FILES:.mf=.pfb) | $(PYTHON) $(topdir)/buildscripts/make-font-dir.py  
> $(@F)
+       cd $(outdir) && echo *.pfa *.pfb | $(PYTHON) 
$(topdir)/buildscripts/make-font-dir.py  > $(@F)
+
+$(outdir)/fonts.dir: $(outdir)/fonts.scale
+       cd $(outdir) && mkfontdir
+
+# Sketch map file
+$(outdir)/lilypond.sfd:
+#      cd $(outdir) && echo sketch $(FETA_MF_FILES:.mf=.pfa) | $(PYTHON) 
$(topdir)/buildscripts/make-font-dir.py  > $(@F)
+       cd $(outdir) && echo sketch *.pfa | $(PYTHON) 
$(topdir)/buildscripts/make-font-dir.py  > $(@F)
+
+# Sodipodi map file
+SODIPODI_FONTS = parmesan20 feta-braces0 feta-nummer10 feta20
+$(outdir)/private-fonts:
+       cd $(outdir) && echo sodipodi $(SODIPODI_FONTS:%=%.pfa) | $(PYTHON) 
$(topdir)/buildscripts/make-font-dir.py  > $(@F)
+
+local-clean:
+       rm -f mfplain.mem mfplain.log 
+       rm -f *.tfm *.log
+
+afm: $(AFM_FILES)
+pfa: afm $(PFA_FILES) fontdir
+pfb: afm $(PFB_FILES) fontdir
+
+
+# stupid trick to have separate rules for each PFA font ;
+# otherwise building PFAs is all-or-nothing.
+$(SAUTER_FONTS:%=$(outdir)/%.bla):
+       $(foreach i, $@, touch $i && ) true
+
+$(outdir)/%.pfa: $(outdir)/%.bla
+       $(MFTRACE) -I $(outdir)/ --pfa --simplify --keep-trying $(notdir 
$(basename $@))  && mv $(notdir $@) $(outdir)/
+
+$(outdir)/%.enc.in: %.enc
+       cp $< $@
Index: lilypond/po/lilypond.pot
diff -u /dev/null lilypond/po/lilypond.pot:1.57.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/po/lilypond.pot    Mon Nov  8 19:57:56 2004
@@ -0,0 +1,2006 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-11-05 15:16+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@xxxxxx>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lilylib.py:62
+msgid "lilylib module"
+msgstr ""
+
+#: lilylib.py:65 lilypond-book.py:91 lilypond-latex.py:109 midi2ly.py:100
+#: mup2ly.py:75 ps2png.py:40 main.cc:131 lily/main.cc:131 lily/main.cc:132
+msgid "print this help"
+msgstr ""
+
+#: lilylib.py:112 midi2ly.py:136 mup2ly.py:130
+#, python-format
+msgid "Copyright (c) %s by"
+msgstr ""
+
+#: lilylib.py:116 midi2ly.py:141 mup2ly.py:135
+msgid "Distributed under terms of the GNU General Public License."
+msgstr ""
+
+#: lilylib.py:118 midi2ly.py:142 mup2ly.py:136
+msgid "It comes with NO WARRANTY."
+msgstr ""
+
+#: lilylib.py:125 warn.cc:24
+#, c-format, python-format
+msgid "warning: %s"
+msgstr ""
+
+#: lilylib.py:128 warn.cc:30
+#, c-format, python-format
+msgid "error: %s"
+msgstr ""
+
+#: lilylib.py:132
+#, python-format
+msgid "Exiting (%d)..."
+msgstr ""
+
+#: lilylib.py:192 midi2ly.py:223 mup2ly.py:219
+#, python-format
+msgid "Usage: %s [OPTIONS]... FILE"
+msgstr ""
+
+#: lilylib.py:196 midi2ly.py:227 mup2ly.py:223 main.cc:200 lily/main.cc:200
+#: lily/main.cc:202
+#, c-format
+msgid "Options:"
+msgstr ""
+
+#: lilylib.py:200 midi2ly.py:231 mup2ly.py:227 main.cc:204 lily/main.cc:204
+#: lily/main.cc:206
+#, c-format, python-format
+msgid "Report bugs to %s."
+msgstr ""
+
+#: lilylib.py:220
+#, python-format
+msgid "Binary %s has version %s, looking for version %s"
+msgstr ""
+
+#: lilylib.py:254
+#, python-format
+msgid "Opening pipe `%s'"
+msgstr ""
+
+#: lilylib.py:269 lilypond-book.py:812
+#, python-format
+msgid "`%s' failed (%d)"
+msgstr ""
+
+#: lilylib.py:274 lilylib.py:333 lilypond-book.py:813 lilypond-latex.py:466
+msgid "The error log is as follows:"
+msgstr ""
+
+#: lilylib.py:305 midi2ly.py:259 mup2ly.py:255
+#, python-format
+msgid "Invoking `%s'"
+msgstr ""
+
+#: lilylib.py:307
+#, python-format
+msgid "Running %s..."
+msgstr ""
+
+#: lilylib.py:326
+#, python-format
+msgid "`%s' failed (%s)"
+msgstr ""
+
+#: lilylib.py:329 midi2ly.py:265 mup2ly.py:263
+msgid "(ignored)"
+msgstr ""
+
+#: lilylib.py:347 midi2ly.py:275 mup2ly.py:273
+#, python-format
+msgid "Cleaning %s..."
+msgstr ""
+
+#: lilylib.py:518
+msgid "Removing output file"
+msgstr ""
+
+#: lilypond-book.py:76
+msgid ""
+"Process LilyPond snippets in hybrid HTML, LaTeX or texinfo document.\n"
+"Example usage:\n"
+"\n"
+"   lilypond-book --filter=\"tr '[a-z]' '[A-Z]'\" BOOK\n"
+"   lilypond-book --filter=\"convert-ly --no-version --from=2.0.0 -\" BOOK\n"
+"   lilypond-book --process='lilypond -I include' BOOK\n"
+"\n"
+msgstr ""
+
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#. Bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format.
+#: lilypond-book.py:89 main.cc:130 lily/main.cc:130 lily/main.cc:131
+msgid "EXT"
+msgstr ""
+
+#: lilypond-book.py:89
+msgid "use output format EXT (texi [default], texi-html, latex, html)"
+msgstr ""
+
+#: lilypond-book.py:90
+msgid "FILTER"
+msgstr ""
+
+#: lilypond-book.py:90
+msgid "pipe snippets through FILTER [convert-ly -n -]"
+msgstr ""
+
+#: lilypond-book.py:92 lilypond-book.py:94 lilypond-latex.py:114 main.cc:133
+#: lily/main.cc:133 lily/main.cc:134
+msgid "DIR"
+msgstr ""
+
+#: lilypond-book.py:92
+msgid "add DIR to include path"
+msgstr ""
+
+#: lilypond-book.py:93
+msgid "COMMAND"
+msgstr ""
+
+#: lilypond-book.py:93
+msgid "process ly_files using COMMAND FILE..."
+msgstr ""
+
+#: lilypond-book.py:94
+msgid "write output to DIR"
+msgstr ""
+
+#: lilypond-book.py:95 lilypond-latex.py:133 midi2ly.py:105 mup2ly.py:78
+#: ps2png.py:41 main.cc:145 lily/main.cc:145 lily/main.cc:147
+msgid "be verbose"
+msgstr ""
+
+#: lilypond-book.py:96
+msgid "print version information"
+msgstr ""
+
+#: lilypond-book.py:97 lilypond-latex.py:135 midi2ly.py:107 mup2ly.py:80
+#: main.cc:146 lily/main.cc:146 lily/main.cc:148
+msgid "show warranty and copyright"
+msgstr ""
+
+#: lilypond-book.py:400
+#, python-format
+msgid "deprecated ly-option used: %s"
+msgstr ""
+
+#: lilypond-book.py:401
+#, python-format
+msgid "compatibility mode translation: %s"
+msgstr ""
+
+#: lilypond-book.py:423
+#, python-format
+msgid "ignoring unknown ly option: %s"
+msgstr ""
+
+#: lilypond-book.py:480
+#, python-format
+msgid "file not found: %s"
+msgstr ""
+
+#: lilypond-book.py:795
+#, python-format
+msgid "Opening filter `%s'"
+msgstr ""
+
+#: lilypond-book.py:913
+#, python-format
+msgid "cannot determine format for: %s"
+msgstr ""
+
+#: lilypond-book.py:954
+msgid "Output would overwrite input file; use --output."
+msgstr ""
+
+#: lilypond-book.py:961
+#, python-format
+msgid "Reading %s..."
+msgstr ""
+
+#: lilypond-book.py:975
+msgid "Dissecting..."
+msgstr ""
+
+#: lilypond-book.py:1006
+msgid "Writing snippets..."
+msgstr ""
+
+#: lilypond-book.py:1011
+msgid "Processing..."
+msgstr ""
+
+#: lilypond-book.py:1014
+msgid "All snippets are up to date..."
+msgstr ""
+
+#: lilypond-book.py:1017
+#, python-format
+msgid "Compiling %s..."
+msgstr ""
+
+#: lilypond-book.py:1025
+#, python-format
+msgid "Processing include: %s"
+msgstr ""
+
+#: lilypond-book.py:1041 lilypond-latex.py:576 midi2ly.py:1017 ps2png.py:51
+#, python-format
+msgid "getopt says: `%s'"
+msgstr ""
+
+#. # FIXME
+#. # do -P or -p by default?
+#. #help_summary = _ ("Run LilyPond using LaTeX for titling")
+#: lilypond-latex.py:104
+msgid "Run LilyPond, generate printable document."
+msgstr ""
+
+#: lilypond-latex.py:110
+msgid "use LaTeX for formatting"
+msgstr ""
+
+#: lilypond-latex.py:111
+msgid "print even more output"
+msgstr ""
+
+#: lilypond-latex.py:112 lilypond-latex.py:123 midi2ly.py:102 main.cc:134
+#: main.cc:136 lily/main.cc:134 lily/main.cc:136 lily/main.cc:135
+#: lily/main.cc:137
+msgid "FILE"
+msgstr ""
+
+#: lilypond-latex.py:112
+msgid "find pfa fonts used in FILE"
+msgstr ""
+
+#: lilypond-latex.py:114
+msgid "add DIR to LilyPond's search path"
+msgstr ""
+
+#: lilypond-latex.py:116
+#, python-format
+msgid "keep all output, output to directory %s.dir"
+msgstr ""
+
+#. junkme?
+#: lilypond-latex.py:119
+msgid "don't run LilyPond"
+msgstr ""
+
+#. junkme?
+#: lilypond-latex.py:121 main.cc:135 lily/main.cc:135 lily/main.cc:136
+msgid "produce MIDI output only"
+msgstr ""
+
+#: lilypond-latex.py:123 midi2ly.py:102 mup2ly.py:76 main.cc:136
+#: lily/main.cc:136 lily/main.cc:137
+msgid "write output to FILE"
+msgstr ""
+
+#: lilypond-latex.py:124 ps2png.py:42
+msgid "RES"
+msgstr ""
+
+#: lilypond-latex.py:125 ps2png.py:43
+msgid "set the resolution of the preview to RES"
+msgstr ""
+
+#: lilypond-latex.py:126
+msgid "generate PDF output"
+msgstr ""
+
+#: lilypond-latex.py:127
+msgid "generate PostScript output"
+msgstr ""
+
+#: lilypond-latex.py:128
+msgid "generate PNG page images"
+msgstr ""
+
+#: lilypond-latex.py:129
+msgid "make a picture of the first system"
+msgstr ""
+
+#: lilypond-latex.py:130
+msgid "generate PS.GZ"
+msgstr ""
+
+#: lilypond-latex.py:131
+msgid "run in safe-mode"
+msgstr ""
+
+#: lilypond-latex.py:132
+msgid "KEY=VAL"
+msgstr ""
+
+#: lilypond-latex.py:132
+msgid "change global setting KEY to VAL"
+msgstr ""
+
+#: lilypond-latex.py:134 midi2ly.py:106 mup2ly.py:79 main.cc:144
+#: lily/main.cc:144 lily/main.cc:146
+msgid "print version number"
+msgstr ""
+
+#: lilypond-latex.py:203
+#, python-format
+msgid "no such setting: `%s'"
+msgstr ""
+
+#: lilypond-latex.py:247
+#, python-format
+msgid "LilyPond crashed (signal %d)."
+msgstr ""
+
+#: lilypond-latex.py:248
+msgid "Please submit a bug report to bug-lilypond@xxxxxxx"
+msgstr ""
+
+#: lilypond-latex.py:255
+#, python-format
+msgid "LilyPond failed on input file %s (exit status %d)"
+msgstr ""
+
+#: lilypond-latex.py:259
+#, python-format
+msgid "LilyPond failed on an input file (exit status %d)"
+msgstr ""
+
+#: lilypond-latex.py:260
+msgid "Continuing..."
+msgstr ""
+
+#: lilypond-latex.py:270
+#, python-format
+msgid "Analyzing %s..."
+msgstr ""
+
+#: lilypond-latex.py:324
+#, python-format
+msgid "no LilyPond output found for `%s'"
+msgstr ""
+
+#: lilypond-latex.py:465
+msgid "LaTeX failed on the output file."
+msgstr ""
+
+#: lilypond-latex.py:513
+msgid ""
+"Trying create PDF, but no PFA fonts found.\n"
+"Using bitmap fonts instead. This will look bad."
+msgstr ""
+
+#. no ps header?
+#: lilypond-latex.py:556
+#, python-format
+msgid "not a PostScript file: `%s'"
+msgstr ""
+
+#: lilypond-latex.py:666
+msgid "pseudo filter"
+msgstr ""
+
+#: lilypond-latex.py:669
+msgid "pseudo filter only for single input file"
+msgstr ""
+
+#: lilypond-latex.py:674
+msgid "no files specified on command line"
+msgstr ""
+
+#: lilypond-latex.py:706
+#, python-format
+msgid "filename should not contain spaces: `%s'"
+msgstr ""
+
+#: lilypond-latex.py:744
+msgid "Running LilyPond failed. Rerun with --verbose for a trace."
+msgstr ""
+
+#: lilypond-latex.py:786
+msgid "Failed to make PS file. Rerun with --verbose for a trace."
+msgstr ""
+
+#: lilypond-latex.py:815
+#, python-format
+msgid "%s output to <stdout>..."
+msgstr ""
+
+#: lilypond-latex.py:820 includable-lexer.cc:57 kpath.cc:134 lily-guile.cc:89
+#: lily-parser.cc:275 lily/includable-lexer.cc:57 lily/kpath.cc:134
+#: lily/lily-guile.cc:89 lily/lily-parser.cc:275
+#, c-format, python-format
+msgid "can't find file: `%s'"
+msgstr ""
+
+#: lilypond-latex.py:843
+#, python-format
+msgid "%s output to %s..."
+msgstr ""
+
+#: lilypond-latex.py:846
+#, python-format
+msgid "can't find file: `%s.%s'"
+msgstr ""
+
+#. temp_dir = os.path.join (original_dir,  '%s.dir' % program_name)
+#. original_dir = os.getcwd ()
+#. keep_temp_dir_p = 0
+#: midi2ly.py:94
+msgid "Convert MIDI to LilyPond source."
+msgstr ""
+
+#: midi2ly.py:97
+msgid "print absolute pitches"
+msgstr ""
+
+#: midi2ly.py:98 midi2ly.py:103
+msgid "DUR"
+msgstr ""
+
+#: midi2ly.py:98
+msgid "quantise note durations on DUR"
+msgstr ""
+
+#: midi2ly.py:99
+msgid "print explicit durations"
+msgstr ""
+
+#: midi2ly.py:101
+msgid "ALT[:MINOR]"
+msgstr ""
+
+#: midi2ly.py:101
+msgid "set key: ALT=+sharps|-flats; MINOR=1"
+msgstr ""
+
+#: midi2ly.py:103
+msgid "quantise note starts on DUR"
+msgstr ""
+
+#: midi2ly.py:104
+msgid "DUR*NUM/DEN"
+msgstr ""
+
+#: midi2ly.py:104
+msgid "allow tuplet durations DUR*NUM/DEN"
+msgstr ""
+
+#: midi2ly.py:108
+msgid "treat every text as a lyric"
+msgstr ""
+
+#: midi2ly.py:149 mup2ly.py:143 input.cc:88 lily/input.cc:88
+msgid "warning: "
+msgstr ""
+
+#: midi2ly.py:164 midi2ly.py:1017 midi2ly.py:1082 mup2ly.py:146 mup2ly.py:160
+#: input.cc:93 lily/input.cc:93
+msgid "error: "
+msgstr ""
+
+#: midi2ly.py:165 mup2ly.py:161
+msgid "Exiting ... "
+msgstr ""
+
+#: midi2ly.py:263 mup2ly.py:260
+#, python-format
+msgid "command exited with value %d"
+msgstr ""
+
+#: midi2ly.py:1001
+#, python-format
+msgid "%s output to `%s'..."
+msgstr ""
+
+#: midi2ly.py:1032
+msgid "Example:"
+msgstr ""
+
+#: midi2ly.py:1082
+msgid "no files specified on command line."
+msgstr ""
+
+#: mup2ly.py:70
+msgid "Convert mup to LilyPond source."
+msgstr ""
+
+#: mup2ly.py:73
+msgid "debug"
+msgstr ""
+
+#: mup2ly.py:74
+msgid "define macro NAME [optional expansion EXP]"
+msgstr ""
+
+#: mup2ly.py:77
+msgid "only pre-process"
+msgstr ""
+
+#: mup2ly.py:1075
+#, python-format
+msgid "no such context: %s"
+msgstr ""
+
+#: mup2ly.py:1299
+#, python-format
+msgid "Processing `%s'..."
+msgstr ""
+
+#: mup2ly.py:1318
+#, python-format
+msgid "Writing `%s'..."
+msgstr ""
+
+#. ugr.
+#: ps2png.py:35
+msgid "Convert PostScript to PNG image."
+msgstr ""
+
+#. # FIXME: silly message containing %d
+#: ps2png.py:71
+#, python-format
+msgid "Wrote `%s'"
+msgstr ""
+
+#: getopt-long.cc:146
+#, c-format
+msgid "option `%s' requires an argument"
+msgstr ""
+
+#: getopt-long.cc:150
+#, c-format
+msgid "option `%s' doesn't allow an argument"
+msgstr ""
+
+#: getopt-long.cc:154
+#, c-format
+msgid "unrecognized option: `%s'"
+msgstr ""
+
+#: getopt-long.cc:161
+#, c-format
+msgid "invalid argument `%s' to option `%s'"
+msgstr ""
+
+#: warn.cc:43
+#, c-format
+msgid "programming error: %s"
+msgstr ""
+
+#: warn.cc:44
+msgid "Continuing; crossing fingers"
+msgstr ""
+
+#: accidental-engraver.cc:194 lily/accidental-engraver.cc:201
+#: lily/accidental-engraver.cc:243
+#, c-format
+msgid "Accidental typesetting list must begin with context-name: %s"
+msgstr ""
+
+#: accidental-engraver.cc:222 lily/accidental-engraver.cc:229
+#: lily/accidental-engraver.cc:271
+#, c-format
+msgid "ignoring unknown accidental: %s"
+msgstr ""
+
+#: accidental-engraver.cc:239 lily/accidental-engraver.cc:246
+#: lily/accidental-engraver.cc:288
+#, c-format
+msgid "Accidental rule must be pair or context-name; Found %s"
+msgstr ""
+
+#: accidental.cc:221 key-signature-interface.cc:137 lily/accidental.cc:221
+#: lily/key-signature-interface.cc:137 lily/accidental.cc:222
+#, c-format
+msgid "accidental `%s' not found"
+msgstr ""
+
+#: afm.cc:143 lily/afm.cc:143
+#, c-format
+msgid "Error parsing AFM file: `%s'"
+msgstr ""
+
+#. FIXME: broken sentence
+#. FIXME: broken sentence
+#. FIXME: broken sentence
+#. FIXME: broken sentence
+#. FIXME: broken sentence
+#. FIXME: broken sentence
+#. FIXME: broken sentence
+#. FIXME: broken sentence
+#. FIXME: broken sentence
+#. FIXME: broken sentence
+#: all-font-metrics.cc:95 lily/all-font-metrics.cc:95
+#, c-format
+msgid "checksum mismatch for font file: `%s'"
+msgstr ""
+
+#: all-font-metrics.cc:97 lily/all-font-metrics.cc:97
+#, c-format
+msgid "does not match: `%s'"
+msgstr ""
+
+#: all-font-metrics.cc:103 lily/all-font-metrics.cc:103
+msgid "Rebuild all .afm files, and remove all .pk and .tfm files."
+msgstr ""
+
+#: all-font-metrics.cc:105 lily/all-font-metrics.cc:105
+msgid "Rerun with -V to show font paths."
+msgstr ""
+
+#: all-font-metrics.cc:107 lily/all-font-metrics.cc:107
+msgid "A script for removing font-files is delivered with the source-code:"
+msgstr ""
+
+#: all-font-metrics.cc:184 lily/all-font-metrics.cc:184
+#, c-format
+msgid "can't find font: `%s'"
+msgstr ""
+
+#: all-font-metrics.cc:185 lily/all-font-metrics.cc:185
+msgid "Loading default font"
+msgstr ""
+
+#: all-font-metrics.cc:200 lily/all-font-metrics.cc:200
+#, c-format
+msgid "can't find default font: `%s'"
+msgstr ""
+
+#: all-font-metrics.cc:201 includable-lexer.cc:59 lily-parser.cc:268
+#: lily/all-font-metrics.cc:201 lily/includable-lexer.cc:59
+#: lily/lily-parser.cc:268
+#, c-format
+msgid "(search path: `%s')"
+msgstr ""
+
+#: all-font-metrics.cc:202 lily/all-font-metrics.cc:202
+msgid "Giving up"
+msgstr ""
+
+#: apply-context-iterator.cc:35 lily/apply-context-iterator.cc:35
+msgid "\\applycontext argument is not a procedure"
+msgstr ""
+
+#: auto-change-iterator.cc:67 change-iterator.cc:61
+#: lily/auto-change-iterator.cc:67 lily/change-iterator.cc:61
+msgid "Can't switch translators, I'm there already"
+msgstr ""
+
+#: axis-group-engraver.cc:117 lily/axis-group-engraver.cc:117
+msgid ""
+"Axis_group_engraver: vertical group already has a parent.\n"
+"Do you have two Axis_group_engravers?\n"
+"Killing this vertical group."
+msgstr ""
+
+#: bar-check-iterator.cc:68 lily/bar-check-iterator.cc:68
+#, c-format
+msgid "barcheck failed at: %s"
+msgstr ""
+
+#: beam-engraver.cc:139 lily/beam-engraver.cc:139
+msgid "already have a beam"
+msgstr ""
+
+#: beam-engraver.cc:211 lily/beam-engraver.cc:211 lily/beam-engraver.cc:210
+msgid "unterminated beam"
+msgstr ""
+
+#: beam-engraver.cc:244 chord-tremolo-engraver.cc:174
+#: lily/beam-engraver.cc:244 lily/chord-tremolo-engraver.cc:174
+#: lily/beam-engraver.cc:243 lily/chord-tremolo-engraver.cc:171
+msgid "stem must have Rhythmic structure"
+msgstr ""
+
+#: beam-engraver.cc:258 lily/beam-engraver.cc:258 lily/beam-engraver.cc:257
+msgid "stem doesn't fit in beam"
+msgstr ""
+
+#: beam-engraver.cc:259 lily/beam-engraver.cc:259 lily/beam-engraver.cc:258
+msgid "beam was started here"
+msgstr ""
+
+#: beam.cc:149 lily/beam.cc:149 lily/beam.cc:150
+msgid "beam has less than two visible stems"
+msgstr ""
+
+#: beam.cc:154 lily/beam.cc:154 lily/beam.cc:155
+msgid "removing beam with less than two stems"
+msgstr ""
+
+#: beam.cc:1038 lily/beam.cc:1038 lily/beam.cc:1063 lily/beam.cc:1065
+#: lily/beam.cc:1007
+msgid "no viable initial configuration found: may not find good beam slope"
+msgstr ""
+
+#: break-align-interface.cc:214 lily/break-align-interface.cc:214
+#, c-format
+msgid "No spacing entry from %s to `%s'"
+msgstr ""
+
+#: change-iterator.cc:22 lily/change-iterator.cc:22
+#, c-format
+msgid "can't change `%s' to `%s'"
+msgstr ""
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_string ()  = get_change ()->change_to_id_string ();
+#.
+#: change-iterator.cc:93 lily/change-iterator.cc:93
+msgid "I'm one myself"
+msgstr ""
+
+#: change-iterator.cc:96 lily/change-iterator.cc:96
+msgid "none of these in my family"
+msgstr ""
+
+#: chord-tremolo-engraver.cc:100 lily/chord-tremolo-engraver.cc:100
+#, c-format
+msgid "Chord tremolo with %d elements. Must have two elements."
+msgstr ""
+
+#: chord-tremolo-engraver.cc:140 lily/chord-tremolo-engraver.cc:140
+#: lily/chord-tremolo-engraver.cc:137
+msgid "unterminated chord tremolo"
+msgstr ""
+
+#: chord-tremolo-iterator.cc:64 lily/chord-tremolo-iterator.cc:64
+msgid "no one to print a tremolos"
+msgstr ""
+
+#: clef.cc:64 lily/clef.cc:64
+#, c-format
+msgid "clef `%s' not found"
+msgstr ""
+
+#: cluster.cc:123 lily/cluster.cc:123
+#, c-format
+msgid "unknown cluster style `%s'"
+msgstr ""
+
+#: coherent-ligature-engraver.cc:84 lily/coherent-ligature-engraver.cc:84
+#, c-format
+msgid "gotcha: ptr=%ul"
+msgstr ""
+
+#: coherent-ligature-engraver.cc:96 lily/coherent-ligature-engraver.cc:96
+#, c-format
+msgid "distance=%f"
+msgstr ""
+
+#: coherent-ligature-engraver.cc:139 lily/coherent-ligature-engraver.cc:139
+#, c-format
+msgid "Coherent_ligature_engraver: setting `spacing-increment = 0.01': ptr=%ul"
+msgstr ""
+
+#: context-def.cc:111 lily/context-def.cc:111
+#, c-format
+msgid "Program has no such type: `%s'"
+msgstr ""
+
+#: context-def.cc:285 lily/context-def.cc:286
+#, c-format
+msgid "can't find: `%s'"
+msgstr ""
+
+#: context.cc:164 lily/context.cc:164 lily/context.cc:163
+#, c-format
+msgid "Cannot find or create `%s' called `%s'"
+msgstr ""
+
+#: context.cc:201 lily/context.cc:201 lily/context.cc:200
+#, c-format
+msgid "can't find or create: `%s'"
+msgstr ""
+
+#: custos.cc:85 lily/custos.cc:85
+#, c-format
+msgid "custos `%s' not found"
+msgstr ""
+
+#: dimensions.cc:13 lily/dimensions.cc:13
+msgid "NaN"
+msgstr ""
+
+#: dynamic-engraver.cc:186 span-dynamic-performer.cc:86
+#: lily/dynamic-engraver.cc:186 lily/span-dynamic-performer.cc:86
+#: lily/dynamic-engraver.cc:185 lily/dynamic-engraver.cc:182
+msgid "can't find start of (de)crescendo"
+msgstr ""
+
+#: dynamic-engraver.cc:196 lily/dynamic-engraver.cc:196
+#: lily/dynamic-engraver.cc:195 lily/dynamic-engraver.cc:192
+msgid "already have a decrescendo"
+msgstr ""
+
+#: dynamic-engraver.cc:198 lily/dynamic-engraver.cc:198
+#: lily/dynamic-engraver.cc:197 lily/dynamic-engraver.cc:194
+msgid "already have a crescendo"
+msgstr ""
+
+#: dynamic-engraver.cc:201 lily/dynamic-engraver.cc:201
+#: lily/dynamic-engraver.cc:200 lily/dynamic-engraver.cc:197
+msgid "Cresc started here"
+msgstr ""
+
+#: dynamic-engraver.cc:307 lily/dynamic-engraver.cc:317
+#: lily/dynamic-engraver.cc:321 lily/dynamic-engraver.cc:318
+msgid "unterminated (de)crescendo"
+msgstr ""
+
+#: event-chord-iterator.cc:56 output-property-music-iterator.cc:29
+#: lily/event-chord-iterator.cc:56 lily/output-property-music-iterator.cc:29
+#, c-format
+msgid "Junking event: `%s'"
+msgstr ""
+
+#: event.cc:49 lily/event.cc:49 lily/music.cc:184
+#, c-format
+msgid "Transposition by %s makes alteration larger than two"
+msgstr ""
+
+#: event.cc:72 lily/event.cc:72 lily/event.cc:50
+#, c-format
+msgid "octave check failed; expected %s, found: %s"
+msgstr ""
+
+#: extender-engraver.cc:141 extender-engraver.cc:150
+#: lily/extender-engraver.cc:141 lily/extender-engraver.cc:150
+#: lily/extender-engraver.cc:140 lily/extender-engraver.cc:149
+msgid "unterminated extender"
+msgstr ""
+
+#: folded-repeat-iterator.cc:65 lily/folded-repeat-iterator.cc:65
+msgid "no one to print a repeat brace"
+msgstr ""
+
+#: glissando-engraver.cc:100 lily/glissando-engraver.cc:100
+msgid "Unterminated glissando."
+msgstr ""
+
+#: global-context.cc:150 lily/global-context.cc:150 lily/global-context.cc:157
+#, c-format
+msgid "can't find `%s' context"
+msgstr ""
+
+#: gourlay-breaking.cc:199 lily/gourlay-breaking.cc:199
+#, c-format
+msgid "Optimal demerits: %f"
+msgstr ""
+
+#: gourlay-breaking.cc:204 lily/gourlay-breaking.cc:204
+msgid "No feasible line breaking found"
+msgstr ""
+
+#: gregorian-ligature-engraver.cc:59 lily/gregorian-ligature-engraver.cc:59
+#, c-format
+msgid "\\%s ignored"
+msgstr ""
+
+#: gregorian-ligature-engraver.cc:64 lily/gregorian-ligature-engraver.cc:64
+#, c-format
+msgid "implied \\%s added"
+msgstr ""
+
+#: grob-interface.cc:73 lily/grob-interface.cc:73
+#, c-format
+msgid "Unknown interface `%s'"
+msgstr ""
+
+#: grob-interface.cc:84 lily/grob-interface.cc:84
+#, c-format
+msgid "Grob `%s' has no interface for property `%s'"
+msgstr ""
+
+#: hairpin.cc:92 lily/hairpin.cc:107 lily/hairpin.cc:106
+msgid "decrescendo too small"
+msgstr ""
+
+#: hairpin.cc:93 lily/hairpin.cc:108 lily/hairpin.cc:107
+msgid "crescendo too small"
+msgstr ""
+
+#: horizontal-bracket-engraver.cc:57 lily/horizontal-bracket-engraver.cc:57
+msgid "Don't have that many brackets."
+msgstr ""
+
+#: horizontal-bracket-engraver.cc:66 lily/horizontal-bracket-engraver.cc:66
+msgid "Conflicting note group events."
+msgstr ""
+
+#: hyphen-engraver.cc:96 lily/hyphen-engraver.cc:96
+msgid "removing unterminated hyphen"
+msgstr ""
+
+#: hyphen-engraver.cc:109 lily/hyphen-engraver.cc:109
+msgid "unterminated hyphen; removing"
+msgstr ""
+
+#: includable-lexer.cc:50 lily/includable-lexer.cc:50
+msgid "include files are not allowed"
+msgstr ""
+
+#: input.cc:99 lily/input.cc:99
+msgid "non fatal error: "
+msgstr ""
+
+#: input.cc:107 source-file.cc:135 source-file.cc:228 lily/input.cc:107
+#: lily/source-file.cc:135 lily/source-file.cc:228
+msgid "position unknown"
+msgstr ""
+
+#: key-performer.cc:90 lily/key-performer.cc:90
+msgid "FIXME: key change merge"
+msgstr ""
+
+#: kpath.cc:83 lily/kpath.cc:83
+#, c-format
+msgid "kpathsea can not find TFM file: `%s'"
+msgstr ""
+
+#: kpath.cc:129 lily/kpath.cc:129
+#, c-format
+msgid "kpathsea can not find file: `%s'"
+msgstr ""
+
+#: ligature-engraver.cc:152 lily/ligature-engraver.cc:152
+msgid "can't find start of ligature"
+msgstr ""
+
+#: ligature-engraver.cc:158 lily/ligature-engraver.cc:158
+msgid "no right bound"
+msgstr ""
+
+#: ligature-engraver.cc:184 lily/ligature-engraver.cc:184
+msgid "already have a ligature"
+msgstr ""
+
+#: ligature-engraver.cc:200 lily/ligature-engraver.cc:200
+msgid "no left bound"
+msgstr ""
+
+#: ligature-engraver.cc:256 lily/ligature-engraver.cc:256
+msgid "unterminated ligature"
+msgstr ""
+
+#: ligature-engraver.cc:280 lily/ligature-engraver.cc:280
+msgid "ignoring rest: ligature may not contain rest"
+msgstr ""
+
+#: ligature-engraver.cc:281 lily/ligature-engraver.cc:281
+msgid "ligature was started here"
+msgstr ""
+
+#: lily-guile.cc:91 lily/lily-guile.cc:91
+#, c-format
+msgid "(load path: `%s')"
+msgstr ""
+
+#: lily-guile.cc:559 lily/lily-guile.cc:559 lily/lily-guile.cc:575
+#, c-format
+msgid "Can't find property type-check for `%s' (%s)."
+msgstr ""
+
+#: lily-guile.cc:562 lily/lily-guile.cc:562 lily/lily-guile.cc:578
+msgid "Perhaps you made a typing error?"
+msgstr ""
+
+#: lily-guile.cc:568 lily/lily-guile.cc:568 lily/lily-guile.cc:584
+msgid "Doing assignment anyway."
+msgstr ""
+
+#: lily-guile.cc:582 lily/lily-guile.cc:582 lily/lily-guile.cc:598
+#, c-format
+msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
+msgstr ""
+
+#: lily-lexer.cc:220 lily/lily-lexer.cc:220 lily/lily-lexer.cc:224
+#, c-format
+msgid "Identifier name is a keyword: `%s'"
+msgstr ""
+
+#: lily-lexer.cc:237 lily/lily-lexer.cc:237 lily/lily-lexer.cc:241
+#, c-format
+msgid "error at EOF: %s"
+msgstr ""
+
+#: lily-parser.cc:97 lily/lily-parser.cc:97
+msgid "Parsing..."
+msgstr ""
+
+#: lily-parser.cc:110 lily-parser.cc:143 lily/lily-parser.cc:110
+#: lily/lily-parser.cc:143
+msgid "Braces don't match"
+msgstr ""
+
+#: lily-parser.cc:267 lily/lily-parser.cc:267
+#, c-format
+msgid "can't find init file: `%s'"
+msgstr ""
+
+#: lily-parser.cc:284 lily/lily-parser.cc:284
+#, c-format
+msgid "Now processing `%s'"
+msgstr ""
+
+#: main.cc:91 lily/main.cc:91 lily/main.cc:92
+msgid ""
+"This program is free software.  It is covered by the GNU General Public\n"
+"License and you are welcome to change it and/or distribute copies of it\n"
+"under certain conditions.  Invoke as `lilypond --warranty' for more\n"
+"information.\n"
+msgstr ""
+
+#: main.cc:97 lily/main.cc:97 lily/main.cc:98
+msgid ""
+"    This program is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License version 2\n"
+"as published by the Free Software Foundation.\n"
+"\n"
+"    This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n"
+"General Public License for more details.\n"
+"\n"
+"    You should have received a copy (refer to the file COPYING) of the\n"
+"GNU General Public License along with this program; if not, write to\n"
+"the Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+"Boston, MA 02111-1307, USA.\n"
+msgstr ""
+
+#: main.cc:126 lily/main.cc:126 lily/main.cc:127
+msgid "EXPR"
+msgstr ""
+
+#: main.cc:127 lily/main.cc:127
+msgid "set options, use -e '(ly:option-usage)' for help"
+msgstr ""
+
+#: main.cc:130 lily/main.cc:130 lily/main.cc:131
+msgid "select back-end to use"
+msgstr ""
+
+#: main.cc:132 lily/main.cc:132 lily/main.cc:133
+msgid "FIELD"
+msgstr ""
+
+#: main.cc:132 lily/main.cc:132 lily/main.cc:133
+msgid "write header field to BASENAME.FIELD"
+msgstr ""
+
+#: main.cc:133 lily/main.cc:133 lily/main.cc:134
+msgid "add DIR to search path"
+msgstr ""
+
+#: main.cc:134 lily/main.cc:134 lily/main.cc:135
+msgid "use FILE as init file"
+msgstr ""
+
+#: main.cc:137 lily/main.cc:137 lily/main.cc:138
+msgid "generate a preview"
+msgstr ""
+
+#: main.cc:138 lily/main.cc:138 lily/main.cc:140
+msgid "generate PNG"
+msgstr ""
+
+#: main.cc:139 lily/main.cc:139 lily/main.cc:141
+msgid "generate PostScript"
+msgstr ""
+
+#: main.cc:140 lily/main.cc:140 lily/main.cc:142
+msgid "generate DVI"
+msgstr ""
+
+#: main.cc:141 lily/main.cc:141 lily/main.cc:143
+msgid "generate PDF (default)"
+msgstr ""
+
+#: main.cc:142 lily/main.cc:142 lily/main.cc:144
+msgid "generate TeX"
+msgstr ""
+
+#: main.cc:143 lily/main.cc:143 lily/main.cc:145
+msgid "run in safe mode"
+msgstr ""
+
+#: main.cc:166 lily/main.cc:166 lily/main.cc:168
+#, c-format
+msgid ""
+"Copyright (c) %s by\n"
+"%s  and others."
+msgstr ""
+
+#. No version number or newline here.  It confuses help2man.
+#. No version number or newline here.  It confuses help2man.
+#. No version number or newline here.  It confuses help2man.
+#. No version number or newline here.  It confuses help2man.
+#. No version number or newline here.  It confuses help2man.
+#. No version number or newline here.  It confuses help2man.
+#. No version number or newline here.  It confuses help2man.
+#. No version number or newline here.  It confuses help2man.
+#. No version number or newline here.  It confuses help2man.
+#: main.cc:192 lily/main.cc:192
+#, c-format
+msgid "Usage: %s [OPTIONS]... FILE..."
+msgstr ""
+
+#: main.cc:194 lily/main.cc:194 lily/main.cc:196
+#, c-format
+msgid "Typeset music and/or produce MIDI from FILE."
+msgstr ""
+
+#: main.cc:196 lily/main.cc:196 lily/main.cc:198
+#, c-format
+msgid "LilyPond produces beautiful music notation."
+msgstr ""
+
+#: main.cc:198 lily/main.cc:198 lily/main.cc:200
+#, c-format
+msgid "For more information, see %s"
+msgstr ""
+
+#: main.cc:410 lily/main.cc:410 lily/main.cc:412 lily/main.cc:415
+#, c-format
+msgid "This option is for developers only."
+msgstr ""
+
+#: main.cc:411 lily/main.cc:411 lily/main.cc:413 lily/main.cc:416
+#, c-format
+msgid "Read the sources for more information."
+msgstr ""
+
+#: mensural-ligature-engraver.cc:248 mensural-ligature-engraver.cc:383
+#: lily/mensural-ligature-engraver.cc:248
+#: lily/mensural-ligature-engraver.cc:383
+msgid "unexpected case fall-through"
+msgstr ""
+
+#: mensural-ligature-engraver.cc:259 lily/mensural-ligature-engraver.cc:259
+msgid "ligature with less than 2 heads -> skipping"
+msgstr ""
+
+#: mensural-ligature-engraver.cc:279 lily/mensural-ligature-engraver.cc:279
+msgid "can not determine pitch of ligature primitive -> skipping"
+msgstr ""
+
+#: mensural-ligature-engraver.cc:302 lily/mensural-ligature-engraver.cc:302
+msgid "prime interval within ligature -> skipping"
+msgstr ""
+
+#: mensural-ligature-engraver.cc:312 lily/mensural-ligature-engraver.cc:312
+msgid "mensural ligature: duration none of L, B, S -> skipping"
+msgstr ""
+
+#: mensural-ligature.cc:161 lily/mensural-ligature.cc:161
+msgid "Mensural_ligature:unexpected case fall-through"
+msgstr ""
+
+#: mensural-ligature.cc:171 lily/mensural-ligature.cc:171
+msgid "Mensural_ligature: (join_left == 0)"
+msgstr ""
+
+#: midi-item.cc:153 lily/midi-item.cc:153
+#, c-format
+msgid "no such MIDI instrument: `%s'"
+msgstr ""
+
+#: midi-item.cc:257 lily/midi-item.cc:257
+msgid "silly pitch"
+msgstr ""
+
+#: midi-item.cc:273 lily/midi-item.cc:273
+#, c-format
+msgid "Experimental: temporarily fine tuning (of %d cents) a channel."
+msgstr ""
+
+#: midi-stream.cc:40 lily/midi-stream.cc:40
+#, c-format
+msgid "could not write file: `%s'"
+msgstr ""
+
+#.
+#. music for the softenon children?
+#.
+#.
+#. music for the softenon children?
+#.
+#.
+#. music for the softenon children?
+#.
+#.
+#. music for the softenon children?
+#.
+#.
+#. music for the softenon children?
+#.
+#.
+#. music for the softenon children?
+#.
+#.
+#. music for the softenon children?
+#.
+#.
+#. music for the softenon children?
+#.
+#.
+#. music for the softenon children?
+#.
+#.
+#. music for the softenon children?
+#.
+#: new-fingering-engraver.cc:155 lily/new-fingering-engraver.cc:155
+msgid "music for the martians."
+msgstr ""
+
+#: new-fingering-engraver.cc:235 lily/new-fingering-engraver.cc:235
+msgid "Fingerings are also not down?! Putting them down anyway."
+msgstr ""
+
+#: new-lyric-combine-music-iterator.cc:245
+#: lily/new-lyric-combine-music-iterator.cc:245
+#, c-format
+msgid "cannot find Voice `%s'"
+msgstr ""
+
+#: note-collision.cc:413 lily/note-collision.cc:413
+msgid "Too many clashing notecolumns.  Ignoring them."
+msgstr ""
+
+#: note-head.cc:45 lily/note-head.cc:45
+#, c-format
+msgid "note head `%s' not found"
+msgstr ""
+
+#: paper-outputter.cc:116 lily/paper-outputter.cc:116
+#, c-format
+msgid "Paper output to `%s'..."
+msgstr ""
+
+#: paper-score.cc:68 lily/paper-score.cc:68
+#, c-format
+msgid "Element count %d (spanners %d) "
+msgstr ""
+
+#: paper-score.cc:72 lily/paper-score.cc:72
+msgid "Preprocessing graphical objects..."
+msgstr ""
+
+#: parse-scm.cc:77 lily/parse-scm.cc:77 lily/parse-scm.cc:84
+msgid "GUILE signaled an error for the expression beginning here"
+msgstr ""
+
+#: percent-repeat-engraver.cc:110 lily/percent-repeat-engraver.cc:110
+#: lily/percent-repeat-engraver.cc:106
+msgid "Don't know how to handle a percent repeat of this length."
+msgstr ""
+
+#: percent-repeat-engraver.cc:170 lily/percent-repeat-engraver.cc:170
+#: lily/percent-repeat-engraver.cc:166
+msgid "unterminated percent repeat"
+msgstr ""
+
+#: percent-repeat-iterator.cc:53 lily/percent-repeat-iterator.cc:53
+msgid "no one to print a percent"
+msgstr ""
+
+#: performance.cc:50 lily/performance.cc:50
+msgid "Track ... "
+msgstr ""
+
+#: performance.cc:93 lily/performance.cc:93
+msgid "Creator: "
+msgstr ""
+
+#: performance.cc:113 lily/performance.cc:113
+msgid "at "
+msgstr ""
+
+#: performance.cc:167 lily/performance.cc:167
+#, c-format
+msgid "MIDI output to `%s'..."
+msgstr ""
+
+#: phrasing-slur-engraver.cc:99 slur-engraver.cc:114
+#: lily/phrasing-slur-engraver.cc:99 lily/slur-engraver.cc:114
+msgid "unterminated slur"
+msgstr ""
+
+#: piano-pedal-engraver.cc:237 lily/piano-pedal-engraver.cc:237
+msgid "Need 3 strings for piano pedals. No pedal made. "
+msgstr ""
+
+#: piano-pedal-engraver.cc:252 piano-pedal-engraver.cc:267
+#: piano-pedal-performer.cc:82 lily/piano-pedal-engraver.cc:252
+#: lily/piano-pedal-engraver.cc:267 lily/piano-pedal-performer.cc:82
+#, c-format
+msgid "can't find start of piano pedal: `%s'"
+msgstr ""
+
+#: piano-pedal-engraver.cc:318 lily/piano-pedal-engraver.cc:318
+#, c-format
+msgid "can't find start of piano pedal bracket: `%s'"
+msgstr ""
+
+#: property-iterator.cc:94 lily/property-iterator.cc:94
+#, c-format
+msgid "Not a grob name, `%s'."
+msgstr ""
+
+#: quote-iterator.cc:108 lily/quote-iterator.cc:124 lily/quote-iterator.cc:125
+#: lily/quote-iterator.cc:126
+msgid "No events found for \\quote"
+msgstr ""
+
+#: quote-iterator.cc:183 lily/quote-iterator.cc:199 lily/quote-iterator.cc:204
+#: lily/quote-iterator.cc:208
+#, c-format
+msgid "In quotation: junking event %s"
+msgstr ""
+
+#: relative-octave-check.cc:25 lily/relative-octave-check.cc:25
+msgid "Failed octave check, got: "
+msgstr ""
+
+#: rest-collision.cc:132 lily/rest-collision.cc:132
+msgid "rest direction not set.  Cannot resolve collision."
+msgstr ""
+
+#: rest-collision.cc:144 rest-collision.cc:187 lily/rest-collision.cc:144
+#: lily/rest-collision.cc:187
+msgid "too many colliding rests"
+msgstr ""
+
+#: rest.cc:136 lily/rest.cc:136
+#, c-format
+msgid "rest `%s' not found"
+msgstr ""
+
+#: scm-option.cc:56 lily/scm-option.cc:56 lily/scm-option.cc:59
+#, c-format
+msgid "lilypond -e EXPR means:"
+msgstr ""
+
+#: scm-option.cc:58 lily/scm-option.cc:58 lily/scm-option.cc:61
+#, c-format
+msgid "  Evalute the Scheme EXPR before parsing any .ly files."
+msgstr ""
+
+#: scm-option.cc:60 lily/scm-option.cc:60 lily/scm-option.cc:63
+#, c-format
+msgid ""
+"  Multiple -e options may be given, they will be evaluated sequentially."
+msgstr ""
+
+#: scm-option.cc:62 lily/scm-option.cc:62 lily/scm-option.cc:65
+#, c-format
+msgid ""
+"  The function ly:set-option allows for access to some internal variables."
+msgstr ""
+
+#: scm-option.cc:64 lily/scm-option.cc:64 lily/scm-option.cc:67
+#, c-format
+msgid "Usage: lilypond -e \"(ly:set-option SYMBOL VAL)\""
+msgstr ""
+
+#: scm-option.cc:66 lily/scm-option.cc:66 lily/scm-option.cc:69
+#, c-format
+msgid "Use help as  SYMBOL to get online help."
+msgstr ""
+
+#: scm-option.cc:132 scm-option.cc:160 lily/scm-option.cc:132
+#: lily/scm-option.cc:160 lily/scm-option.cc:137 lily/scm-option.cc:175
+#, c-format
+msgid "No such internal option: %s"
+msgstr ""
+
+#: score-engraver.cc:103 score-engraver.cc:108 lily/score-engraver.cc:103
+#: lily/score-engraver.cc:108
+#, c-format
+msgid "can't find `%s'"
+msgstr ""
+
+#: score-engraver.cc:104 lily/score-engraver.cc:104
+msgid "Music font has not been installed properly.  Aborting"
+msgstr ""
+
+#: score-engraver.cc:109 lily/score-engraver.cc:109
+#, c-format
+msgid "Install the ec-mftraced package from %s. Aborting"
+msgstr ""
+
+#: score.cc:100 score.cc:126 lily/score.cc:100 lily/score.cc:126
+#: lily/score.cc:102 lily/score.cc:128
+msgid "Need music in a score"
+msgstr ""
+
+#: score.cc:116 lily/score.cc:116 lily/score.cc:118
+msgid "Interpreting music... "
+msgstr ""
+
+#: score.cc:137 lily/score.cc:137 lily/score.cc:139
+#, c-format
+msgid "elapsed time: %.2f seconds"
+msgstr ""
+
+#: score.cc:312 lily/score.cc:312 lily/score.cc:322
+msgid "Already have music in score"
+msgstr ""
+
+#: score.cc:313 lily/score.cc:313 lily/score.cc:323
+msgid "This is the previous music"
+msgstr ""
+
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#: script-engraver.cc:102 lily/script-engraver.cc:102
+msgid "Do not know how to interpret articulation: "
+msgstr ""
+
+#: script-engraver.cc:103 lily/script-engraver.cc:103
+msgid "Scheme encoding: "
+msgstr ""
+
+#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
+#. this shouldn't happen, but let's continue anyway.
+#: separation-item.cc:53 separation-item.cc:97 lily/separation-item.cc:53
+#: lily/separation-item.cc:97
+msgid "Separation_item:  I've been drinking too much"
+msgstr ""
+
+#: simple-spacer.cc:489 lily/simple-spacer.cc:489 lily/simple-spacer.cc:484
+#: lily/simple-spacer.cc:499
+#, c-format
+msgid "No spring between column %d and next one"
+msgstr ""
+
+#: slur-engraver.cc:124 lily/slur-engraver.cc:124
+msgid "No slur to end"
+msgstr ""
+
+#: source-file.cc:50 lily/source-file.cc:50
+#, c-format
+msgid "can't open file: `%s'"
+msgstr ""
+
+#: source-file.cc:63 lily/source-file.cc:63
+#, c-format
+msgid "Huh?  Got %d, expected %d characters"
+msgstr ""
+
+#: spacing-spanner.cc:388 lily/spacing-spanner.cc:388
+#, c-format
+msgid "Global shortest duration is %s"
+msgstr ""
+
+#: stem-engraver.cc:88 lily/stem-engraver.cc:88
+msgid "tremolo duration is too long"
+msgstr ""
+
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#. FIXME:
+#: stem-engraver.cc:125 lily/stem-engraver.cc:125
+#, c-format
+msgid "Adding note head to incompatible stem (type = %d)"
+msgstr ""
+
+#: stem-engraver.cc:127 lily/stem-engraver.cc:127
+msgid "Don't you want polyphonic voices instead?"
+msgstr ""
+
+#: stem.cc:126 lily/stem.cc:126
+msgid "Weird stem size; check for narrow beams"
+msgstr ""
+
+#: stem.cc:575 lily/stem.cc:575 lily/stem.cc:574 lily/stem.cc:576
+#, c-format
+msgid "flag `%s' not found"
+msgstr ""
+
+#: stem.cc:586 lily/stem.cc:586 lily/stem.cc:585 lily/stem.cc:587
+#, c-format
+msgid "flag stroke `%s' not found"
+msgstr ""
+
+#: system.cc:134 lily/system.cc:134
+#, c-format
+msgid "Element count %d."
+msgstr ""
+
+#: system.cc:272 lily/system.cc:272
+#, c-format
+msgid "Grob count %d"
+msgstr ""
+
+#: system.cc:286 lily/system.cc:286
+msgid "Calculating line breaks..."
+msgstr ""
+
+#: text-spanner-engraver.cc:63 lily/text-spanner-engraver.cc:63
+msgid "can't find start of text spanner"
+msgstr ""
+
+#: text-spanner-engraver.cc:77 lily/text-spanner-engraver.cc:77
+msgid "already have a text spanner"
+msgstr ""
+
+#: text-spanner-engraver.cc:139 lily/text-spanner-engraver.cc:139
+msgid "unterminated text spanner"
+msgstr ""
+
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#. Not using ngettext's plural feature here, as this message is
+#. more of a programming error.
+#: tfm-reader.cc:108 lily/tfm-reader.cc:108
+#, c-format
+msgid "TFM header of `%s' has only %u word (s)"
+msgstr ""
+
+#: tfm-reader.cc:142 lily/tfm-reader.cc:142
+#, c-format
+msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
+msgstr ""
+
+#: tfm.cc:73 lily/tfm.cc:73
+#, c-format
+msgid "can't find ascii character: %d"
+msgstr ""
+
+#: tie-engraver.cc:165 lily/tie-engraver.cc:173
+msgid "lonely tie"
+msgstr ""
+
+#: time-scaled-music-iterator.cc:24 lily/time-scaled-music-iterator.cc:24
+msgid "no one to print a tuplet start bracket"
+msgstr ""
+
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#.
+#. Todo: should make typecheck?
+#.
+#. OTOH, Tristan Keuris writes 8/20 in his Intermezzi.
+#.
+#: time-signature-engraver.cc:57 lily/time-signature-engraver.cc:57
+#, c-format
+msgid "Found strange time signature %d/%d."
+msgstr ""
+
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#. If there is no such symbol, we default to the numbered style.
+#. (Here really with a warning!)
+#: time-signature.cc:91 lily/time-signature.cc:91
+#, c-format
+msgid "time signature symbol `%s' not found; reverting to numbered style"
+msgstr ""
+
+#: translator-ctors.cc:53 lily/translator-ctors.cc:53
+#, c-format
+msgid "unknown translator: `%s'"
+msgstr ""
+
+#: trill-spanner-engraver.cc:71 lily/trill-spanner-engraver.cc:71
+msgid "can't find start of trill spanner"
+msgstr ""
+
+#: trill-spanner-engraver.cc:85 lily/trill-spanner-engraver.cc:85
+msgid "already have a trill spanner"
+msgstr ""
+
+#: trill-spanner-engraver.cc:145 lily/trill-spanner-engraver.cc:145
+msgid "unterminated trill spanner"
+msgstr ""
+
+#: tuplet-bracket.cc:448 lily/tuplet-bracket.cc:447
+msgid "Killing tuplet bracket across linebreak."
+msgstr ""
+
+#: vaticana-ligature-engraver.cc:342 lily/vaticana-ligature-engraver.cc:342
+#, c-format
+msgid ""
+"ignored prefix (es) `%s' of this head according to restrictions of the "
+"selected ligature style"
+msgstr ""
+
+#: vaticana-ligature-engraver.cc:572 lily/vaticana-ligature-engraver.cc:572
+#, c-format
+msgid "Vaticana_ligature_engraver: setting `spacing-increment = %f': ptr=%ul"
+msgstr ""
+
+#: vaticana-ligature.cc:92 lily/vaticana-ligature.cc:92
+msgid "ascending vaticana style flexa"
+msgstr ""
+
+#: vaticana-ligature.cc:181 lily/vaticana-ligature.cc:181
+msgid "Vaticana_ligature: zero join (delta_pitch == 0)"
+msgstr ""
+
+#: volta-engraver.cc:141 lily/volta-engraver.cc:141
+msgid "No volta spanner to end"
+msgstr ""
+
+#: volta-engraver.cc:152 lily/volta-engraver.cc:152
+msgid "Already have a volta spanner.  Stopping that one prematurely."
+msgstr ""
+
+#: volta-engraver.cc:156 lily/volta-engraver.cc:156
+msgid "Also have a stopped spanner.  Giving up."
+msgstr ""
+
+#: parser.yy:79
+msgid "Tag must be symbol or list of symbols."
+msgstr ""
+
+#: parser.yy:534
+msgid "Identifier should have alphabetic characters only"
+msgstr ""
+
+#: parser.yy:707
+msgid "Need \\bookpaper for bookpaper block."
+msgstr ""
+
+#: parser.yy:844
+msgid "More alternatives than repeats.  Junking excess alternatives."
+msgstr ""
+
+#: parser.yy:1016
+#, c-format
+msgid "Argument %d failed typecheck"
+msgstr ""
+
+#: parser.yy:1032
+msgid "Music head function should return Music object."
+msgstr ""
+
+#: parser.yy:1278
+msgid "Grob name should be alphanumeric"
+msgstr ""
+
+#: parser.yy:1639
+msgid "Second argument must be pitch list."
+msgstr ""
+
+#: parser.yy:1676 parser.yy:1681 parser.yy:2210
+msgid "Have to be in Lyric mode for lyrics"
+msgstr ""
+
+#: parser.yy:1766
+msgid "Expecting string as script definition"
+msgstr ""
+
+#: parser.yy:1975 parser.yy:2025
+#, c-format
+msgid "not a duration: %d"
+msgstr ""
+
+#: parser.yy:2120
+msgid "Have to be in Note mode for notes"
+msgstr ""
+
+#: parser.yy:2225
+msgid "Have to be in Chord mode for chords"
+msgstr ""
+
+#: parser.yy:2377
+msgid "need integer number arg"
+msgstr ""
+
+#: parser.yy:2520
+msgid "Suspect duration found following this beam"
+msgstr ""
+
+#: lexer.ll:194
+#, c-format
+msgid "input renamed to: `%s'"
+msgstr ""
+
+#: lexer.ll:202
+msgid "No quoted string found after \\encoding"
+msgstr ""
+
+#: lexer.ll:206
+msgid "No quoted string found after \\version"
+msgstr ""
+
+#: lexer.ll:210
+msgid "No quoted string found after \\renameinput"
+msgstr ""
+
+#: lexer.ll:223
+msgid "EOF found inside a comment"
+msgstr ""
+
+#: lexer.ll:238
+msgid "\\maininput not allowed outside init files"
+msgstr ""
+
+#: lexer.ll:264
+#, c-format
+msgid "wrong or undefined identifier: `%s'"
+msgstr ""
+
+#. backup rule
+#: lexer.ll:273
+msgid "Missing end quote"
+msgstr ""
+
+#: lexer.ll:436
+msgid "Brace found at end of lyric.  Did you forget a space?"
+msgstr ""
+
+#: lexer.ll:541
+msgid "Brace found at end of markup.  Did you forget a space?"
+msgstr ""
+
+#: lexer.ll:630
+#, c-format
+msgid "invalid character: `%c'"
+msgstr ""
+
+#: lexer.ll:716 lexer.ll:717
+#, c-format
+msgid "unknown escaped string: `\\%s'"
+msgstr ""
+
+#: lexer.ll:814 lexer.ll:815
+#, c-format
+msgid "Incorrect lilypond version: %s (%s, %s)"
+msgstr ""
+
+#: lexer.ll:815 lexer.ll:816
+msgid "Consider updating the input with the convert-ly script"
+msgstr ""
+
+#: lily.scm:574
+#, lisp-format
+msgid "Converting to `~a'..."
+msgstr ""
+
+#: lily.scm:596
+#, lisp-format
+msgid "Invoking `~a'..."
+msgstr ""
+
+#: lily.scm:614
+msgid "error: failed files: "
+msgstr ""
+
+#: lily/includable-lexer.cc:50
+msgid "include files are not allowed in safe mode"
+msgstr ""
+
+#: lily/phrasing-slur-engraver.cc:116 lily/phrasing-slur-engraver.cc:117
+msgid "unterminated phrasing slur"
+msgstr ""
+
+#: lily/score.cc:328
+msgid "Error found in this music expression. Ignoring it"
+msgstr ""
+
+#: lily/lily-parser.cc:284
+#, c-format
+msgid "Processing `%s'"
+msgstr ""
+
+#: lily/main.cc:128
+msgid "set option, use -e '(ly:option-usage)' for help"
+msgstr ""
+
+#: lily/main.cc:139
+msgid "don't generate full pages"
+msgstr ""
+
+#. No version number or newline here.  It confuses help2man.
+#: lily/main.cc:194
+#, c-format
+msgid "Usage: %s [OPTION]... FILE..."
+msgstr ""
+
+#: lily/paper-outputter.cc:116
+#, c-format
+msgid "Layout output to `%s'..."
+msgstr ""
+
+#: lily/performance.cc:50
+msgid "Track..."
+msgstr ""
Index: lilypond/python/GNUmakefile
diff -u /dev/null lilypond/python/GNUmakefile:1.5.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/python/GNUmakefile Mon Nov  8 19:57:56 2004
@@ -0,0 +1,19 @@
+depth = ..
+
+STEPMAKE_TEMPLATES=c python-module install-out po
+
+include $(depth)/make/stepmake.make
+
+# unset al guile stuff from configure
+USER_LDFLAGS=
+
+INSTALLATION_OUT_SUFFIXES=1
+
+INSTALLATION_OUT_FILES=$(OUT_SO_MODULES)
+INSTALLATION_OUT_DIR=$(local_lilypond_libdir)/python
+
+INSTALLATION_OUT_DIR1=$(local_lilypond_datadir)/python
+INSTALLATION_OUT_FILES1=$(OUT_PY_MODULES) $(OUT_PYC_MODULES)
+
+
+$(outdir)/midi.lo: $(outdir)/config.hh
Index: lilypond/scm/framework-tex.scm
diff -u lilypond/scm/framework-tex.scm:1.44.2.1 
lilypond/scm/framework-tex.scm:1.44.2.2
--- lilypond/scm/framework-tex.scm:1.44.2.1     Sun Nov  7 23:16:07 2004
+++ lilypond/scm/framework-tex.scm      Mon Nov  8 19:57:56 2004
@@ -25,7 +25,7 @@
   (if (ly:get-option 'safe)
       (regexp-substitute/global
        #f "\\\\"
-       (regexp-substitute/global #f "([{}])" "bla{}" 'pre  "\\" 1 'post )
+       (regexp-substitute/global #f "([{}])" s 'pre  "\\" 1 'post )
        'pre "$\\backslash$" 'post)
       s))
 
@@ -60,7 +60,8 @@
      "\n"
      "\\def\\" (tex-font-command font) "{%\n"
      ;; UGH.  Should be handled via alist.
-     (if (equal? "Extended-TeX-Font-Encoding---Latin" font-encoding)
+     (if (or (equal? "Extended-TeX-Font-Encoding---Latin" font-encoding)
+            (not font-encoding))
         "  \\lilypondfontencoding{T1}"
         "  ")
      "\\lilypond" (tex-font-command font)
@@ -139,7 +140,7 @@
       "lilypondpaper" 'linewidth
       (ly:number->string (* scale (ly:output-def-lookup paper 'linewidth))))
      "\\def\\lilyponddocumentclassoptions{"
-     texpaper
+     (sanitize-tex-string texpaper)
      (if landscape? ",landscape" "")
      "}%\n"
      (tex-string-def
@@ -270,6 +271,13 @@
         (ly:get-option 'resolution))
      (string-append (basename name ".tex") ".ps"))))
 
+
+;;
+;; ugh  -   double check this. We are leaking
+;; untrusted (user-settable) info to a command-line 
+;;
+
+
 (define-public (convert-to-ps book name)
   (let* ((paper (ly:paper-book-paper book))
         (preview? (string-contains name ".preview"))
@@ -279,26 +287,24 @@
         (cmd (string-append "dvips "
                             (if preview?
                                 " -E "
-                                (string-append " -t " papersizename))
+                                (string-append
+                                 " -t "
+                                 (sanitize-command-option papersizename)))
+                                
                             (if landscape?
                                 " -t landscape "
                                 " ")
                             "  -u+ec-mftrace.map -u+lilypond.map -Ppdf "
-                            base
-
-                            (if (ly:get-option 'verbose)
-                                " "
-                                " 2>&1 1>& /dev/null "))))
-
-    (if (ly:get-option 'verbose)
-       (begin 
-         (newline (current-error-port))
-         (format (current-error-port) (_ "Invoking ~S") cmd)
-         (newline (current-error-port)))
+                            base)))
+    
+    (let ((ps-name (string-append base ".ps")))
+      (if (access? ps-name W_OK)
+         (delete-file ps-name)))
+    (if (not (ly:get-option 'verbose))
        (begin
          (format (current-error-port) (_ "Converting to `~a.ps'...") base)
          (newline (current-error-port))))
-    (system cmd)))
+    (ly:system cmd)))
 
 (define-public (convert-to-dvi book name)
   (let* ((curr-extra-mem
@@ -309,16 +315,12 @@
            'pre "" 'post)))
         (base (basename name ".tex"))
         (cmd (string-append
-              "latex \\\\nonstopmode \\\\input " name
-              (if (ly:get-option 'verbose)
-                  " "
-                  " 2>&1 1>& /dev/null "))))
+              "latex \\\\nonstopmode \\\\input " name)))
     (setenv "extra_mem_top" (number->string (max curr-extra-mem 1024000)))
-    (if (ly:get-option 'verbose)
-       (begin 
-         (newline (current-error-port))
-         (format (current-error-port) (_ "Invoking ~S") cmd)
-         (newline (current-error-port)))
+    (let ((dvi-name (string-append base ".dvi")))
+      (if (access? dvi-name W_OK)
+         (delete-file dvi-name)))
+    (if (not (ly:get-option 'verbose))
        (begin
          (format (current-error-port) (_ "Converting to `~a.dvi'...") base)
          (newline (current-error-port))))
@@ -327,7 +329,7 @@
     (if (ly:get-option 'safe)
        (set! cmd (string-append "openout_any=p " cmd)))
 
-    (system cmd)))
+    (ly:system cmd)))
 
 (define-public (convert-to-tex book name)
   #t)
Index: lilypond/scm/lily-library.scm
diff -u /dev/null lilypond/scm/lily-library.scm:1.1.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/scm/lily-library.scm       Mon Nov  8 19:57:56 2004
@@ -0,0 +1,310 @@
+
+
+(define-public X 0)
+(define-public Y 1)
+(define-public START -1)
+(define-public STOP 1)
+(define-public LEFT -1)
+(define-public RIGHT 1)
+(define-public UP 1)
+(define-public DOWN -1)
+(define-public CENTER 0)
+
+(define-public DOUBLE-FLAT -4)
+(define-public THREE-Q-FLAT -3)
+(define-public FLAT -2)
+(define-public SEMI-FLAT -1)
+(define-public NATURAL 0)
+(define-public SEMI-SHARP 1)
+(define-public SHARP 2)
+(define-public THREE-Q-SHARP 3)
+(define-public DOUBLE-SHARP 4)
+(define-public SEMI-TONE 2)
+
+(define-public ZERO-MOMENT (ly:make-moment 0 1)) 
+
+(define-public (moment-min a b)
+  (if (ly:moment<? a b) a b))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; lily specific variables.
+
+(define-public default-script-alist '())
+
+
+;; parser stuff.
+(define-public (print-music-as-book parser music)
+  (let* ((head  (ly:parser-lookup parser '$globalheader))
+        (book (ly:make-book (ly:parser-lookup parser $defaultpaper)
+                            head score)))
+    (ly:parser-print-book parser book)))
+
+(define-public (print-score-as-book parser score)
+  (let*
+      ((head  (ly:parser-lookup parser '$globalheader))
+       (book (ly:make-book (ly:parser-lookup parser $defaultpaper)
+                          head score)))
+    (ly:parser-print-book parser book)))
+
+(define-public (print-score parser score)
+  (let* ((head  (ly:parser-lookup parser '$globalheader))
+        (book (ly:make-book (ly:parser-lookup parser $defaultpaper)
+                            head score)))
+    (ly:parser-print-score parser book)))
+               
+(define-public (collect-scores-for-book  parser score)
+  (let*
+      ((oldval (ly:parser-lookup parser 'toplevel-scores)))
+    (ly:parser-define parser 'toplevel-scores (cons score oldval))
+    ))
+
+(define-public (collect-music-for-book parser music)
+  (collect-scores-for-book parser (ly:music-scorify music parser)))
+
+
+  
+;;;;;;;;;;;;;;;;
+; alist
+(define-public assoc-get ly:assoc-get)
+
+(define-public (uniqued-alist alist acc)
+  (if (null? alist) acc
+      (if (assoc (caar alist) acc)
+         (uniqued-alist (cdr alist) acc)
+         (uniqued-alist (cdr alist) (cons (car alist) acc)))))
+
+(define-public (alist<? x y)
+  (string<? (symbol->string (car x))
+           (symbol->string (car y))))
+
+(define-public (chain-assoc x alist-list)
+  (if (null? alist-list)
+      #f
+      (let* ((handle (assoc x (car alist-list))))
+       (if (pair? handle)
+           handle
+           (chain-assoc x (cdr alist-list))))))
+
+(define-public (chain-assoc-get x alist-list . default)
+  "Return ALIST entry for X. Return DEFAULT (optional, else #f) if not
+found."
+
+  (define (helper x alist-list default)
+    (if (null? alist-list)
+       default
+       (let* ((handle (assoc x (car alist-list))))
+         (if (pair? handle)
+             (cdr handle)
+             (helper x (cdr alist-list) default)))))
+
+  (helper x alist-list
+         (if (pair? default) (car default) #f)))
+
+(define (map-alist-vals func list)
+  "map FUNC over the vals of  LIST, leaving the keys."
+  (if (null?  list)
+      '()
+      (cons (cons  (caar list) (func (cdar list)))
+           (map-alist-vals func (cdr list)))
+      ))
+
+(define (map-alist-keys func list)
+  "map FUNC over the keys of an alist LIST, leaving the vals. "
+  (if (null?  list)
+      '()
+      (cons (cons (func (caar list)) (cdar list))
+           (map-alist-keys func (cdr list)))
+      ))
+ 
+;;;;;;;;;;;;;;;;
+;; hash
+
+
+
+(if (not (defined? 'hash-table?))      ; guile 1.6 compat
+    (begin
+      (define hash-table? vector?)
+
+      (define-public (hash-table->alist t)
+       "Convert table t to list"
+       (apply append
+              (vector->list t)
+              )))
+
+    ;; native hashtabs.
+    (begin
+      (define-public (hash-table->alist t)
+
+       (hash-fold (lambda (k v acc) (acons  k v  acc))
+                  '() t)
+       )
+      ))
+
+;; todo: code dup with C++. 
+(define-public (alist->hash-table l)
+  "Convert alist to table"
+  (let
+      ((m (make-hash-table (length l))))
+
+    (map (lambda (k-v)
+          (hashq-set! m (car k-v) (cdr k-v)))
+        l)
+
+    m))
+       
+
+
+
+;;;;;;;;;;;;;;;;
+; list
+
+(define (flatten-list lst)
+  "Unnest LST" 
+  (if (null? lst)
+      '()
+      (if (pair? (car lst))
+         (append (flatten-list (car lst)) (flatten-list  (cdr lst)))
+         (cons (car lst) (flatten-list (cdr lst))))
+  ))
+
+(define (list-minus a b)
+  "Return list of elements in A that are not in B."
+  (lset-difference eq? a b))
+
+
+;; TODO: use the srfi-1 partition function.
+(define-public (uniq-list l)
+  
+  "Uniq LIST, assuming that it is sorted"
+  (define (helper acc l) 
+    (if (null? l)
+       acc
+       (if (null? (cdr l))
+           (cons (car l) acc)
+           (if (equal? (car l) (cadr l))
+               (helper acc (cdr l))
+               (helper (cons (car l) acc)  (cdr l)))
+           )))
+  (reverse! (helper '() l) '()))
+
+
+(define (split-at-predicate predicate l)
+ "Split L = (a_1 a_2 ... a_k b_1 ... b_k)
+into L1 = (a_1 ... a_k ) and L2 =(b_1 .. b_k) 
+Such that (PREDICATE a_i a_{i+1}) and not (PREDICATE a_k b_1).
+L1 is copied, L2 not.
+
+(split-at-predicate (lambda (x y) (= (- y x) 2))  '(1 3 5 9 11) (cons '() 
'()))"
+;; "
+
+;; KUT EMACS MODE.
+
+  (define (inner-split predicate l acc)
+  (cond
+   ((null? l) acc)
+   ((null? (cdr l))
+    (set-car! acc (cons (car l) (car acc)))
+    acc)
+   ((predicate (car l) (cadr l))
+    (set-car! acc (cons (car l) (car acc)))
+    (inner-split predicate (cdr l) acc))
+   (else
+    (set-car! acc (cons (car l) (car acc)))
+    (set-cdr! acc (cdr l))
+    acc)
+
+  ))
+ (let*
+    ((c (cons '() '()))
+     )
+  (inner-split predicate l  c)
+  (set-car! c (reverse! (car c))) 
+  c)
+)
+
+
+(define-public (split-list l sep?)
+"
+(display (split-list '(a b c / d e f / g) (lambda (x) (equal? x '/))) )
+=>
+((a b c) (d e f) (g))
+
+"
+;; " KUT EMACS.
+
+(define (split-one sep?  l acc)
+  "Split off the first parts before separator and return both parts."
+  (if (null? l)
+      (cons acc '())
+      (if (sep? (car l))
+         (cons acc (cdr l))
+         (split-one sep? (cdr l) (cons (car l) acc))
+         )
+      ))
+
+(if (null? l)
+    '()
+    (let* ((c (split-one sep? l '())))
+      (cons (reverse! (car c) '()) (split-list (cdr c) sep?))
+      )))
+
+
+(define-public (interval-length x)
+  "Length of the number-pair X, when an interval"
+  (max 0 (- (cdr x) (car x)))
+  )
+(define-public interval-start car)
+(define-public interval-end cdr)
+
+(define (other-axis a)
+  (remainder (+ a 1) 2))
+  
+
+(define-public (interval-widen iv amount)
+   (cons (- (car iv) amount)
+         (+ (cdr iv) amount)))
+
+(define-public (interval-union i1 i2)
+   (cons (min (car i1) (car i2))
+        (max (cdr i1) (cdr i2))))
+
+
+(define-public (write-me message x)
+  "Return X.  Display MESSAGE and write X.  Handy for debugging,
+possibly turned off."
+  (display message) (write x) (newline) x)
+;;  x)
+
+(define (index-cell cell dir)
+  (if (equal? dir 1)
+      (cdr cell)
+      (car cell)))
+
+(define (cons-map f x)
+  "map F to contents of X"
+  (cons (f (car x)) (f (cdr x))))
+
+
+(define-public (list-insert-separator lst between)
+  "Create new list, inserting BETWEEN between elements of LIST"
+  (define (conc x y )
+    (if (eq? y #f)
+       (list x)
+       (cons x  (cons between y))
+       ))
+  (fold-right conc #f lst))
+
+;;;;;;;;;;;;;;;;
+; other
+(define (sign x)
+  (if (= x 0)
+      0
+      (if (< x 0) -1 1)))
+
+(define-public (symbol<? l r)
+  (string<? (symbol->string l) (symbol->string r)))
+
+(define-public (!= l r)
+  (not (= l r)))
+
+
Index: lilypond/scm/lily.scm
diff -u lilypond/scm/lily.scm:1.287.2.1 lilypond/scm/lily.scm:1.287.2.2
--- lilypond/scm/lily.scm:1.287.2.1     Sun Nov  7 23:16:07 2004
+++ lilypond/scm/lily.scm       Mon Nov  8 19:57:56 2004
@@ -70,321 +70,36 @@
     (define-public _ gettext)
     (define-public _ ly:gettext))
 
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define-public X 0)
-(define-public Y 1)
-(define-public START -1)
-(define-public STOP 1)
-(define-public LEFT -1)
-(define-public RIGHT 1)
-(define-public UP 1)
-(define-public DOWN -1)
-(define-public CENTER 0)
-
-(define-public DOUBLE-FLAT -4)
-(define-public THREE-Q-FLAT -3)
-(define-public FLAT -2)
-(define-public SEMI-FLAT -1)
-(define-public NATURAL 0)
-(define-public SEMI-SHARP 1)
-(define-public SHARP 2)
-(define-public THREE-Q-SHARP 3)
-(define-public DOUBLE-SHARP 4)
-(define-public SEMI-TONE 2)
-
-(define-public ZERO-MOMENT (ly:make-moment 0 1)) 
-
-(define-public (moment-min a b)
-  (if (ly:moment<? a b) a b))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; lily specific variables.
-
-(define-public default-script-alist '())
-
-
-;; parser stuff.
-(define-public (print-music-as-book parser music)
-  (let* ((head  (ly:parser-lookup parser '$globalheader))
-        (book (ly:make-book (ly:parser-lookup parser $defaultpaper)
-                            head score)))
-    (ly:parser-print-book parser book)))
-
-(define-public (print-score-as-book parser score)
-  (let*
-      ((head  (ly:parser-lookup parser '$globalheader))
-       (book (ly:make-book (ly:parser-lookup parser $defaultpaper)
-                          head score)))
-    (ly:parser-print-book parser book)))
-
-(define-public (print-score parser score)
-  (let* ((head  (ly:parser-lookup parser '$globalheader))
-        (book (ly:make-book (ly:parser-lookup parser $defaultpaper)
-                            head score)))
-    (ly:parser-print-score parser book)))
-               
-(define-public (collect-scores-for-book  parser score)
-  (let*
-      ((oldval (ly:parser-lookup parser 'toplevel-scores)))
-    (ly:parser-define parser 'toplevel-scores (cons score oldval))
-    ))
-
-(define-public (collect-music-for-book parser music)
-  (collect-scores-for-book parser (ly:music-scorify music parser)))
-
-
-  
-;;;;;;;;;;;;;;;;
-; alist
-(define-public assoc-get ly:assoc-get)
-
-(define-public (uniqued-alist alist acc)
-  (if (null? alist) acc
-      (if (assoc (caar alist) acc)
-         (uniqued-alist (cdr alist) acc)
-         (uniqued-alist (cdr alist) (cons (car alist) acc)))))
-
-(define-public (alist<? x y)
-  (string<? (symbol->string (car x))
-           (symbol->string (car y))))
-
-(define-public (chain-assoc x alist-list)
-  (if (null? alist-list)
-      #f
-      (let* ((handle (assoc x (car alist-list))))
-       (if (pair? handle)
-           handle
-           (chain-assoc x (cdr alist-list))))))
-
-(define-public (chain-assoc-get x alist-list . default)
-  "Return ALIST entry for X. Return DEFAULT (optional, else #f) if not
-found."
-
-  (define (helper x alist-list default)
-    (if (null? alist-list)
-       default
-       (let* ((handle (assoc x (car alist-list))))
-         (if (pair? handle)
-             (cdr handle)
-             (helper x (cdr alist-list) default)))))
-
-  (helper x alist-list
-         (if (pair? default) (car default) #f)))
-
-(define (map-alist-vals func list)
-  "map FUNC over the vals of  LIST, leaving the keys."
-  (if (null?  list)
-      '()
-      (cons (cons  (caar list) (func (cdar list)))
-           (map-alist-vals func (cdr list)))
-      ))
-
-(define (map-alist-keys func list)
-  "map FUNC over the keys of an alist LIST, leaving the vals. "
-  (if (null?  list)
-      '()
-      (cons (cons (func (caar list)) (cdar list))
-           (map-alist-keys func (cdr list)))
-      ))
- 
-;;;;;;;;;;;;;;;;
-;; hash
-
-
-
-(if (not (defined? 'hash-table?))      ; guile 1.6 compat
-    (begin
-      (define hash-table? vector?)
-
-      (define-public (hash-table->alist t)
-       "Convert table t to list"
-       (apply append
-              (vector->list t)
-              )))
-
-    ;; native hashtabs.
-    (begin
-      (define-public (hash-table->alist t)
-
-       (hash-fold (lambda (k v acc) (acons  k v  acc))
-                  '() t)
-       )
-      ))
-
-;; todo: code dup with C++. 
-(define-public (alist->hash-table l)
-  "Convert alist to table"
-  (let
-      ((m (make-hash-table (length l))))
-
-    (map (lambda (k-v)
-          (hashq-set! m (car k-v) (cdr k-v)))
-        l)
-
-    m))
-       
-
-
-;;;;;;;;;;;;;;;;
-; list
-
-(define (flatten-list lst)
-  "Unnest LST" 
-  (if (null? lst)
-      '()
-      (if (pair? (car lst))
-         (append (flatten-list (car lst)) (flatten-list  (cdr lst)))
-         (cons (car lst) (flatten-list (cdr lst))))
-  ))
-
-(define (list-minus a b)
-  "Return list of elements in A that are not in B."
-  (lset-difference eq? a b))
-
-
-;; TODO: use the srfi-1 partition function.
-(define-public (uniq-list l)
-  
-  "Uniq LIST, assuming that it is sorted"
-  (define (helper acc l) 
-    (if (null? l)
-       acc
-       (if (null? (cdr l))
-           (cons (car l) acc)
-           (if (equal? (car l) (cadr l))
-               (helper acc (cdr l))
-               (helper (cons (car l) acc)  (cdr l)))
-           )))
-  (reverse! (helper '() l) '()))
-
-
-(define (split-at-predicate predicate l)
- "Split L = (a_1 a_2 ... a_k b_1 ... b_k)
-into L1 = (a_1 ... a_k ) and L2 =(b_1 .. b_k) 
-Such that (PREDICATE a_i a_{i+1}) and not (PREDICATE a_k b_1).
-L1 is copied, L2 not.
-
-(split-at-predicate (lambda (x y) (= (- y x) 2))  '(1 3 5 9 11) (cons '() 
'()))"
-;; "
-
-;; KUT EMACS MODE.
-
-  (define (inner-split predicate l acc)
-  (cond
-   ((null? l) acc)
-   ((null? (cdr l))
-    (set-car! acc (cons (car l) (car acc)))
-    acc)
-   ((predicate (car l) (cadr l))
-    (set-car! acc (cons (car l) (car acc)))
-    (inner-split predicate (cdr l) acc))
-   (else
-    (set-car! acc (cons (car l) (car acc)))
-    (set-cdr! acc (cdr l))
-    acc)
-
-  ))
- (let*
-    ((c (cons '() '()))
-     )
-  (inner-split predicate l  c)
-  (set-car! c (reverse! (car c))) 
-  c)
-)
-
-
-(define-public (split-list l sep?)
-"
-(display (split-list '(a b c / d e f / g) (lambda (x) (equal? x '/))) )
-=>
-((a b c) (d e f) (g))
-
-"
-;; " KUT EMACS.
-
-(define (split-one sep?  l acc)
-  "Split off the first parts before separator and return both parts."
-  (if (null? l)
-      (cons acc '())
-      (if (sep? (car l))
-         (cons acc (cdr l))
-         (split-one sep? (cdr l) (cons (car l) acc))
-         )
-      ))
-
-(if (null? l)
-    '()
-    (let* ((c (split-one sep? l '())))
-      (cons (reverse! (car c) '()) (split-list (cdr c) sep?))
-      )))
-
-
-(define-public (interval-length x)
-  "Length of the number-pair X, when an interval"
-  (max 0 (- (cdr x) (car x)))
-  )
-(define-public interval-start car)
-(define-public interval-end cdr)
-
-(define (other-axis a)
-  (remainder (+ a 1) 2))
-  
-
-(define-public (interval-widen iv amount)
-   (cons (- (car iv) amount)
-         (+ (cdr iv) amount)))
-
-(define-public (interval-union i1 i2)
-   (cons (min (car i1) (car i2))
-        (max (cdr i1) (cdr i2))))
-
-
-(define-public (write-me message x)
-  "Return X.  Display MESSAGE and write X.  Handy for debugging,
-possibly turned off."
-  (display message) (write x) (newline) x)
-;;  x)
-
-(define (index-cell cell dir)
-  (if (equal? dir 1)
-      (cdr cell)
-      (car cell)))
-
-(define (cons-map f x)
-  "map F to contents of X"
-  (cons (f (car x)) (f (cdr x))))
-
-
-(define-public (list-insert-separator lst between)
-  "Create new list, inserting BETWEEN between elements of LIST"
-  (define (conc x y )
-    (if (eq? y #f)
-       (list x)
-       (cons x  (cons between y))
-       ))
-  (fold-right conc #f lst))
-
-;;;;;;;;;;;;;;;;
-; other
-(define (sign x)
-  (if (= x 0)
-      0
-      (if (< x 0) -1 1)))
-
-(define-public (symbol<? l r)
-  (string<? (symbol->string l) (symbol->string r)))
-
-(define-public (!= l r)
-  (not (= l r)))
-
 (define-public (ly:load x)
   (let* ((fn (%search-load-path x)))
     (if (ly:get-option 'verbose)
        (format (current-error-port) "[~A]" fn))
     (primitive-load fn)))
 
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
+(define (type-check-list location signature arguments)
+  "Typecheck a list of arguments against a list of type
+predicates. Print a message at LOCATION if any predicate failed."
+  (define (recursion-helper signature arguments count) 
+    (define (helper pred? arg count) 
+      (if (not (pred? arg))
+
+         (begin
+           (ly:input-message location
+                             (format #f
+                                     (_ "wrong type for argument ~a. Expecting 
~a, found ~s")
+                                     count (type-name pred?) arg))
+           #f)
+         #t))
+
+    (if (null? signature)
+       #t
+       (and (helper (car signature) (car arguments) count)
+            (recursion-helper (cdr signature) (cdr arguments) (1+ count)))
+       ))
+  (recursion-helper signature arguments 1))
+        
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;  output
 
@@ -446,7 +161,8 @@
 
 (for-each ly:load
      ;; load-from-path
-     '("define-music-types.scm"
+     '("lily-library.scm"
+       "define-music-types.scm"
        "output-lib.scm"
        "c++.scm"
        "chord-ignatzek-names.scm"
@@ -563,19 +279,44 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
 
 (define-public (ly:system command)
-  (let* ((status 0))
+  (let*
+      ((status 0)
+
+       (silenced
+       (string-append command (if (ly:get-option 'verbose)
+                                ""
+                                " > /dev/null 2>&1 "))))
+    
     (if (ly:get-option 'verbose)
        (format  (current-error-port) (_ "Invoking `~a'...\n") command))
-    (set! status (system command))
+    
+    (set! status (system silenced))
     (if (> status 0)
-       (format (current-error-port) (_ "Error invoking `~a'. Return value ~a")
-                        command status))))
+       (begin
+         (format (current-error-port)
+                 (_ "Error invoking `~a'. Return value ~a") silenced status)
+         (newline (current-error-port))))))
+
+(define-public (sanitize-command-option str)
+  (string-append
+   "\""
+   (regexp-substitute/global #f "[^- 0-9,.a-zA-Z'\"\\]" str 'pre 'post)
+  "\""))
 
 (define-public (postscript->pdf papersizename name)
-  (let* ((cmd (string-append "ps2pdf -sPAPERSIZE=" papersizename " " name))
-        (output-name
-         (regexp-substitute/global #f "\\.ps" name 'pre ".pdf" 'post)))
-    (format (current-error-port) (_ "Converting to `~a'...") output-name)
+  (let* ((cmd (string-append "ps2pdf "
+
+                            (string-append
+                             " -sPAPERSIZE="
+                             (sanitize-command-option papersizename)
+                             " "
+                            name)))
+        (pdf-name (string-append (basename name ".ps") ".pdf" )))
+
+    (if (access? pdf-name W_OK)
+       (delete-file pdf-name))
+
+    (format (current-error-port) (_ "Converting to `~a'...") pdf-name)
     (ly:system cmd)))
 
 (define-public (postscript->png resolution name)
@@ -612,3 +353,4 @@
          (exit 1))
        (exit 0))))
 
+
Index: lilypond/scm/output-gnome.scm
diff -u /dev/null lilypond/scm/output-gnome.scm:1.45.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/scm/output-gnome.scm       Mon Nov  8 19:57:56 2004
@@ -0,0 +1,256 @@
+;;;; output-gnome.scm -- implement GNOME canvas output
+;;;;
+;;;;  source file of the GNU LilyPond music typesetter
+;;;; 
+;;;; (c)  2004 Jan Nieuwenhuizen <janneke@xxxxxxx>
+
+;;; TODO:
+;;;
+;;;  * Figure out and fix font scaling and character placement
+;;;  * EC font package: add missing X font directories and AFMs
+;;;  * User-interface, keybindings
+;;;  * Implement missing stencil functions
+;;;  * Implement missing commands
+;;;  * More information in stencils, e.g., location and grob tag.
+;;;  * Embedded Lily:
+;;;    - allow GnomeCanvas or `toplevel' GtkWindow to be created
+;;;      outside of LilyPond
+;;;    - lilylib.
+;;;  * Release schedule and packaging of dependencies.  This hack
+;;;    depends on several CVS and TLA development sources.
+
+;;; You need:
+;;;
+;;;   * Rotty's g-wrap >= 1.9.1 (or TLA)
+;;;   * guile-gnome-platform >= 2.5.992 (or TLA)
+;;;   * pango >= 1.5.2 (or CVS)
+;;;
+;;; See also: guile-gtk-general@xxxxxxx
+
+;;; Try it
+;;;
+;;;   [* Get cvs and tla]
+;;;
+;;;   * Install gnome/gtk and libffi development stuff
+;;;
+;;;   * Install pango, g-wrap and guile-gnome from CVS or arch: 
+;;;     see buildscripts/guile-gnome.sh
+;;;  
+;;;   * Build LilyPond with gui support: configure --enable-gui
+;;;
+;;;   * Supposing that LilyPond was built in ~/cvs/savannah/lilypond,
+;;;     tell fontconfig about the feta fonts dir:
+"
+cat > ~/.fonts.conf << EOF
+<fontconfig>
+<dir>~/cvs/savannah/lilypond/mf/out</dir>
+</fontconfig>
+EOF
+"
+;;;     or copy all your .pfa/.pfb's to ~/.fonts if your fontconfig
+;;;     already looks there for fonts.  Check if it works by doing:
+"
+fc-list | grep -i lily
+"
+;;;
+;;;   * Setup environment
+"
+export 
GUILE_LOAD_PATH=$HOME/usr/pkg/g-wrap/share/guile/site:$HOME/usr/pkg/g-wrap/share/guile/site/g-wrap:$HOME/usr/pkg/guile-gnome/share/guile:$GUILE_LOAD_PATH
+export 
LD_LIBRARY_PATH=$HOME/usr/pkg/pango/lib:$HOME/usr/pkg/g-wrap/lib:$HOME/usr/pkg/guile-gnome/lib:$LD_LIBRARY_PATH
+export XEDITOR='/usr/bin/emacsclient --no-wait +%l:%c %f'
+"
+;;;  * Also for GNOME point-and-click, you need to set XEDITOR and add
+"
+#(ly:set-point-and-click 'line-column)
+"
+;;;    to your .ly.
+;;;
+;;;  * Run lily:
+"
+lilypond -fgnome input/simple-song.ly
+"
+;;; point-and-click: (mouse-1) click on a graphical object;
+;;; grob-property-list: (mouse-3) click on a graphical object.
+
+(debug-enable 'backtrace)
+
+(define-module (scm output-gnome))
+(define this-module (current-module))
+
+(use-modules
+ (guile)
+ (srfi srfi-13)
+ (lily)
+ (gnome gtk))
+
+
+;; The name of the module will change to `canvas' rsn
+(if (resolve-module '(gnome gw canvas))
+    (use-modules (gnome gw canvas))
+    (use-modules (gnome gw libgnomecanvas)))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; globals
+
+;; junkme
+(define system-origin '(0 . 0))
+
+;;; set by framework-gnome.scm
+(define canvas-root #f)
+(define output-scale #f)
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; helper functions
+
+(define (stderr string . rest)
+  ;; debugging
+  (if #f
+      (begin
+       (apply format (cons (current-error-port) (cons string rest)))
+       (force-output (current-error-port)))))
+
+(define (utf8 i)
+  (cond
+   ((< i #x80) (make-string 1 (integer->char i)))
+   ((< i #x800) (list->string
+                (map integer->char
+                     (list (+ #xc0 (quotient i #x40))
+                           (+ #x80 (modulo i #x40))))))
+   ((< i #x10000)
+    (let ((x (quotient i #x1000))
+         (y (modulo i #x1000)))
+      (list->string
+       (map integer->char
+           (list (+ #xe0 x)
+                 (+ #x80 (quotient y #x40))
+                 (+ #x80 (modulo y #x40)))))))
+   (else FIXME)))
+  
+(define (custom-utf8 i)
+  (if (< i 80)
+      (utf8 i)
+      (utf8 (+ #xee00 i))))
+
+(define (draw-rectangle x1 y1 x2 y2 color width-units)
+  (make <gnome-canvas-rect>
+    #:parent (canvas-root) #:x1 x1 #:y1 y1 #:x2 x2 #:y2 y2
+    #:fill-color color #:width-units width-units))
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; stencil outputters
+;;;
+
+;;; catch-all for missing stuff
+;;; comment this out to see find out what functions you miss :-)
+(define (dummy . foo) #f)
+(map (lambda (x) (module-define! this-module x dummy))
+     (append
+      (ly:all-stencil-expressions)
+      (ly:all-output-backend-commands)))
+
+
+
+(define (char font i)
+  (text font (utf8 i)))
+
+(define (placebox x y expr)
+  (stderr "item: ~S\n" expr)
+  (let ((item expr))
+    ;;(if item
+    ;; FIXME ugly hack to skip #unspecified ...
+    (if (and item (not (eq? item (if #f #f))))
+       (begin
+         (move item
+               (* output-scale (+ (car system-origin) x))
+               (* output-scale (- (car system-origin) y)))
+         (affine-relative item output-scale 0 0 output-scale 0 0)
+         item)
+       #f)))
+
+(define (round-filled-box breapth width depth height blot-diameter)
+  ;; FIXME: no rounded corners on rectangle...
+  ;; FIXME: blot?
+  (draw-rectangle (- breapth) depth width (- height) "black" blot-diameter))
+
+(define (pango-font-name font)
+  (cond
+   ((equal? (ly:font-name font) "GNU-LilyPond-feta-20")
+    "lilypond-feta, regular 32")
+   (else
+    ;; FIXME
+    "ecrm12")))
+    ;;(ly:font-name font))))
+    ;;(ly:font-filename font))))
+
+(define (pango-font-size font)
+  (let* ((designsize (ly:font-design-size font))
+        (magnification (* (ly:font-magnification font)))
+        
+        ;; experimental sizing:
+        ;; where does factor come from?
+        ;;
+        ;; 0.435 * (12 / 20) = 0.261
+        ;; 2.8346456692913/ 0.261 = 10.86071137659501915708
+        ;;(ops (* 0.435 (/ 12 20) (* output-scale pixels-per-unit)))
+        ;; for size-points
+        (ops 2.61)
+        
+        (scaling (* ops magnification designsize)))
+    (stderr "OPS:~S\n" ops)
+    (stderr "scaling:~S\n" scaling)
+    (stderr "magnification:~S\n" magnification)
+    (stderr "design:~S\n" designsize)
+    
+    scaling))
+
+;;font-name: "GNU-LilyPond-feta-20"
+;;font-filename: "feta20"
+;;pango-font-name: "lilypond-feta, regular 32"
+;;OPS:2.61
+;;scaling:29.7046771653543
+;;magnification:0.569055118110236
+;;design:20.0
+
+(define (text font string)
+  (stderr "font-name: ~S\n" (ly:font-name font))
+  ;; TODO s/filename/file-name/
+  (stderr "font-filename: ~S\n" (ly:font-filename font))
+  
+  (stderr "pango-font-name: ~S\n" (pango-font-name font))
+  (stderr "pango-font-size: ~S\n" (pango-font-size font))
+  
+  (make <gnome-canvas-text>
+    #:parent (canvas-root)
+
+    #:anchor 'west
+    #:x 0.0 #:y 0.0
+    
+    #:font (pango-font-name font)
+    
+    #:size-points (pango-font-size font)
+    ;;#:size ...
+    #:size-set #t
+    
+    ;;apparently no effect :-(
+    ;;#:scale 1.0
+    ;;#:scale-set #t
+    
+    #:fill-color "black"
+    #:text string))
+
+(define (filledbox a b c d)
+  (round-filled-box a b c d 0.001))
+
+;; WTF is this in every backend?
+(define (horizontal-line x1 x2 thickness)
+  (filledbox (- x1) (- x2 x1) (* .5 thickness) (* .5 thickness)))
+
+;;(define (define-origin file line col)
+;;  (if (procedure? point-and-click)
+;;      (list 'location line col file)))
+
+(define (grob-cause grob)
+  grob)
Index: lilypond/scm/paper.scm
diff -u /dev/null lilypond/scm/paper.scm:1.47.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/scm/paper.scm      Mon Nov  8 19:57:56 2004
@@ -0,0 +1,159 @@
+;;;; paper.scm -- manipulate the paper and layout block.
+;;;;
+;;;;  source file of the GNU LilyPond music typesetter
+;;;; 
+;;;; (c)  2004 Han-Wen Nienhuys <hanwen@xxxxxxxx>
+
+(define-public (set-paper-dimension-variables mod)
+  (module-define! mod 'dimension-variables
+                 '(pt mm cm in staffheight staff-space
+                      betweensystemspace betweensystempadding
+                      linewidth indent hsize vsize
+                      staffspace linethickness ledgerlinethickness
+                      blotdiameter interscoreline leftmargin rightmargin)))
+
+(define-public (layout-set-staff-size sz)
+  "Function to be called inside a \\layout{} block to set the staff size."
+  (let* ((m (current-module))
+        (ss (/ sz 4))
+        (pt (eval 'pt m))
+
+        
+        ;; linear interpolation.
+        (x1 (* 4.125 pt))
+        (x0 (* 5 pt))
+        (f1 (* 0.47 pt))
+        (f0 (* 0.50 pt))
+        (lt (/
+             (+
+              (* f1 (- ss x0))
+              (* f0 (- x1 ss)))
+             (- x1 x0)))
+        
+        (mm (eval 'mm m)))
+
+    (module-define! m 'outputscale ss)
+    (module-define! m 'fonts (make-cmr-tree (/  sz (* 20 pt))))
+    (module-define! m 'staffheight sz)
+    (module-define! m 'staff-space ss)
+    (module-define! m 'staffspace ss)
+
+    ;; !! synchronize with feta-params.mf
+    (module-define! m 'linethickness lt)
+    (module-define! m 'ledgerlinethickness (+ (* 0.5 pt) (/ ss 10)))
+    (module-define! m 'blotdiameter (* 0.35 pt))
+    (module-define! m 'interscoreline (* 4 mm))))
+
+(define-public (set-global-staff-size sz)
+  "Set the default staff size, where SZ is thought to be in PT."
+  (let* ((old-mod (current-module))
+        (pap (eval '$defaultpaper old-mod))
+        (in-layout? (or (module-defined? old-mod 'is-paper)
+                        (module-defined? old-mod 'is-layout)))
+
+        ; maybe not necessary.
+        ; but let's be paranoid. Maybe someone still refers to the
+        ; old one. 
+        (new-paper (ly:output-def-clone pap))
+        
+        (new-scope (ly:output-def-scope new-paper)))
+    
+    (if in-layout?
+       (ly:warn "Not in toplevel scope"))
+    (set-current-module new-scope)
+    (layout-set-staff-size (* sz (eval 'pt new-scope)))
+    (set-current-module old-mod)
+    (module-define! old-mod '$defaultpaper new-paper)))
+
+(define-public paper-alist
+  '(("a6" . (cons (* 105 mm) (* 148.95 mm)))
+    ("a5" . (cons (* 148.95 mm) (* 210 mm)))
+    ("a4" . (cons (* 210 mm) (* 297.9 mm)))
+    ("a3" . (cons (* 297.9 mm) (* 420 mm)))
+    ("legal" . (cons (* 8.5 in) (* 14.0 in)))
+    ("letter" . (cons (* 8.5 in) (* 11.0 in)))
+    ("tabloid" . (cons (* 11.0 in) (* 17.0 in)))))
+
+;; todo: take dimension arguments.
+
+(define (set-paper-dimensions m w h)
+  "M is a module (i.e. layout->scope_ )"
+  (let* ((mm (eval 'mm m)))
+    (module-define! m 'hsize w)
+    (module-define! m 'vsize h)
+    (module-define! m 'linewidth (- w (* 20 mm)))
+    (module-define! m 'indent (/ w 14))
+
+    ;; page layout - what to do with (printer specific!) margin settings?
+    (module-define! m 'topmargin (* 5 mm))
+    (module-define! m 'bottommargin (* 6 mm))
+    (module-define! m 'headsep (* 4 mm))
+    (module-define! m 'footsep (* 4 mm))
+    (module-define! m 'leftmargin #f)
+    (module-define! m 'firstpagenumber 1)
+    (module-define! m 'printfirstpagenumber #f)
+    (module-define! m 'rightmargin (* 10 mm))))
+
+(define (internal-set-paper-size module name landscape?)
+  (define (swap x)
+    (cons (cdr x) (car x)))
+  
+  (let* ((entry (assoc name paper-alist))
+        (is-paper? (module-defined? module 'is-paper))
+        (mm (eval 'mm module)))
+    
+    (cond
+     ((not is-paper?)
+      (ly:warning "This is not a \\layout {} object, ~S"
+                  module))
+     ((pair? entry)
+
+      (set! entry (eval (cdr entry) module))
+      (if landscape?
+         (set! entry (swap entry)))
+      (set-paper-dimensions module (car entry) (cdr entry))
+
+      (module-define! module 'papersizename name)
+
+      (if landscape?
+         (module-define! module 'landscape #t)))
+     (else
+      (ly:warn (string-append "Unknown papersize: " name))))))
+
+(define-public (set-default-paper-size name . rest)
+  (internal-set-paper-size
+   (ly:output-def-scope (eval '$defaultpaper (current-module)))
+   name
+   (memq 'landscape rest)))
+
+(define-public (set-paper-size name . rest)
+  (if (module-defined? (current-module) 'is-paper)
+      (internal-set-paper-size (current-module) name
+                              (memq 'landscape rest))
+
+      ;;; TODO: should raise (generic) exception with throw, and catch
+      ;;; that in parse-scm.cc
+      (ly:warn "Must use #(set-paper-size .. ) within \\paper { ... }")))
+
+(define-public (scale-layout pap scale)
+  (let* ((new-pap (ly:output-def-clone pap))
+        (dim-vars (ly:output-def-lookup pap 'dimension-variables))
+        (old-scope (ly:output-def-scope pap))
+        (scope (ly:output-def-scope new-pap)))
+
+    (for-each
+     (lambda (v)
+       (let* ((var (module-variable old-scope v))
+             (val (if (variable? var) (variable-ref var) #f)))
+
+        (if (number? val)
+            (module-define! scope v
+                            (/ val scale))
+
+            ;; spurious warnings, eg. for hsize, vsize. 
+            ;; (ly:warn "not a number, ~S = ~S " v  val)
+            )))
+     
+     dim-vars)
+    
+    new-pap))
Index: lilypond/tex/lilyponddefs.tex
diff -u /dev/null lilypond/tex/lilyponddefs.tex:1.113.2.1
--- /dev/null   Mon Nov  8 19:57:57 2004
+++ lilypond/tex/lilyponddefs.tex       Mon Nov  8 19:57:56 2004
@@ -0,0 +1,330 @@
+%%% lilyponddefs.tex -- TeX macros for LilyPond output.
+%%%
+%%%  source file of the GNU LilyPond music typesetter
+%%% 
+%%% (c)  1998--2004 Jan Nieuwenhuizen <janneke@xxxxxxx>
+%%%                 Han-Wen Nienhuys <hanwen@xxxxxxxx>
+%%%                 Mats Bengtsson <mats.bengtsson@xxxxxxxxx>
+%%%
+%%
+%% Avoid \par while reading this file.
+%%
+\edef\lilyponddefsELC{\the\endlinechar}%
+\endlinechar -1\relax
+
+%% This runs with plain TeX, LaTeX, pdftex, and texinfo.
+%%
+%% To avoid interferences, lilyponddefs.tex must be loaded within a group.
+%% It is loaded only once, so the definitions must be global.
+%%
+%% The overall structure of a file created by LilyPond is as follows:
+%%
+%%   <lilypond parameter definitions>
+%%   <font setup>
+%%   \ifx\lilypondstart \undefined
+%%     \input lilyponddefs
+%%   \fi
+%%   \lilypondstart
+%%   <note output>
+%%   \lilypondend
+
+%% A temporary variable.
+%%
+\newdimen\lytempdim
+
+%% The scaling factor for all dimensions.
+%%
+\newdimen\outputscale
+
+\long\gdef\lilypondfirst#1#2{#1}
+\long\gdef\lilypondsecond#1#2{#2}
+
+%% \lilypondundefined{xxx}{foo}{bar}
+%%
+%%   If `xxx' (without the leading backslash) is an undefined macro,
+%%   execute block `foo'.  Otherwise, execute block `bar'.  Based on
+%%   a similar macro from the LaTeX kernel.
+%%
+\gdef\lilypondifundefined#1{
+  \expandafter\ifx\csname#1\endcsname\relax
+    \expandafter\lilypondfirst
+  \else
+    \expandafter\lilypondsecond
+  \fi
+}
+
+%% Urgh.  LilyPond uses EC fonts, but texinfo is based on CM.  We thus
+%% have to handle T1 font encoding by ourselves; all manipulations are
+%% collected in the macro \lilypondECencoding.  Note that the following
+%% code only provides the texinfo interface, not complete access to all
+%% EC glyphs.
+%%
+%% All definitions are taken from texinfo or LaTeX (with modifications
+%% if necessary).
+%%
+\begingroup
+\catcode `\@=11\relax
+\gdef\lilypondECencoding{
+  \def\"##1{
+    {\accent4 ##1}}
+  \def\'##1{
+    {\accent1 ##1}}
+  \def\,##1{
+    {\leavevmode
+     \setbox\z@\hbox{##1}
+     \ifdim\ht\z@=1ex
+       \accent11 ##1
+     \else
+       {\ooalign{
+          \unhbox\z@
+          \crcr
+          \hidewidth
+          \char11
+          \hidewidth}}
+     \fi}}
+  \def\=##1{
+    {\accent9 ##1}}
+  \def\^##1{
+    {\accent2 ##1}}
+  \def\`##1{
+    {\accent0 ##1}}
+  \def\~##1{
+    {\accent3 ##1}}
+  \def\dotaccent##1{
+    {\accent10 ##1}}
+  \def\H##1{
+    {\accent5 ##1}}
+  \def\ringaccent##1{
+    {\accent6 ##1}}
+% \def\tieaccent##1{}        % unsupported: this is TS1
+  \def\u##1{
+    {\accent8 ##1}}
+  \def\ubaraccent##1{
+    {\o@lign{
+       \relax
+       ##1
+       \crcr
+       \hidewidth
+       \sh@ft{29}\vbox to.2ex{
+         \hbox{\char9}
+         \vss}
+       \hidewidth}}}
+  \def\udotaccent##1{
+    {\o@lign{
+       \relax
+       ##1
+       \crcr
+       \hidewidth
+       \sh@ft{10}.
+       \hidewidth}}}
+  \def\v##1{
+    {\accent7 ##1}}
+
+  \chardef\exclamdown=189
+  \chardef\questiondown=190
+
+  \def\aa{
+    \ringaccent{a}}
+  \def\AA{
+    \ringaccent{A}}
+  \chardef\AE=198
+  \chardef\ae=230
+  \chardef\ptexi=25
+  \chardef\j=26
+  \chardef\L=138
+  \chardef\l=170
+  \chardef\O=216
+  \chardef\o=248
+  \chardef\OE=215
+  \chardef\oe=247
+  \chardef\ss=255
+}
+\endgroup
+
+%% This macro provides the necessary setup to make the lilypond data
+%% work with plain TeX, LaTeX, and texinfo.
+%%
+%% The reason of using \begingroup and \endgroup is to make the macro \x
+%% immediately disappear after it has been executed.  Since we have \def
+%% within \def within \gdef, four hash signs (`#') are needed for
+%% parameters.
+%%
+%% \lilypondfontencoding is emitted by LilyPond to set the encoding of
+%% text strings.
+%%
+\gdef\lilypondstart{
+  \frenchspacing
+  \outputscale \lilypondpaperoutputscale\lilypondpaperunit
+
+  \begingroup
+  \catcode `\@=11\relax
+
+  %% \@nodocument is defined as \relax after `\begin{document}'
+  \lilypondifundefined{@nodocument}
+    {%% Either plain TeX or texinfo or not at the beginning of LaTeX input.
+     \def\x{
+       \endgroup
+
+       \def\lilypondfontencoding####1{
+         \lilypondECencoding}
+       \def\lilypondpagebreak{
+         \eject}
+       \def\lilypondnopagebreak{
+         \ifvmode
+           \penalty 10000\relax
+         \fi}}}
+
+    {%% LaTeX mode: Provide a complete preamble.
+     \def\x{
+       \endgroup
+
+       %% Indicate that we shall emit `\end{document}' while executing
+       %% \lilypondend.
+       \def\lilyponddocument{}
+
+       \def\lilypondfontencoding####1{
+         \fontencoding{####1}
+         \selectfont}
+       \def\lilypondpagebreak{
+         \newpage}
+       \def\lilypondnopagebreak{
+         \nopagebreak}
+
+       \documentclass[\lilyponddocumentclassoptions]{article}
+
+       %% As a safety guard, don't produce auxiliary files.
+       \nofiles
+
+       %% FIXME: workaround non-existent TeX.def.
+       \def\TeXdef{TeX}\ifx\TeXdef\lilypondpaperinputencoding
+         \usepackage[latin1]{inputenc}
+       \else
+         \usepackage[\lilypondpaperinputencoding]{inputenc}
+       \fi
+       \pagestyle{empty}
+
+       \lilypondifundefined{lilypondclassic}
+         {%% If not in `classic' mode, undo LaTeX's page layout settings
+          %% since LilyPond does the layout by itself.
+          \topmargin-1in
+          \headheight0pt\headsep0pt
+          \oddsidemargin-1in
+          \evensidemargin\oddsidemargin}
+
+         {%% Otherwise center output horizontally, without changing the
+          %% vertical positioning.
+          \hsize\lilypondpaperlinewidth\lilypondpaperunit
+          \lytempdim \paperwidth
+          \advance\lytempdim -\the\hsize
+          \lytempdim 0.5\lytempdim
+          \advance\lytempdim -1in
+          \oddsidemargin \lytempdim
+          \evensidemargin \lytempdim}
+
+       \parindent 0pt
+
+       %% We can't directly say `\begin{document}' in this macro since
+       %% older versions of texinfo.tex define \begin as \outer; this
+       %% means that it causes an error if \begin is found within another
+       %% macro (even if the corresponding code will never be executed).
+       %% As a workaround we use \csname to call \begin.
+       \csname begin\endcsname{document}}}
+  \x}
+
+%% The opposite of \lilypondstart.
+%%
+\gdef\lilypondend{
+  %% Handle the `lastpagefill' parameter from the \layout block.
+  %% Ignore it if \lilypondbook is defined.
+  \lilypondifundefined{lilypondbook}
+    {\lilypondifundefined{lilypondpaperlastpagefill}
+       {\vskip 0pt plus\lilypondpaperinterscorelinefill00 fill}
+       {}}
+    {}
+
+  \begingroup
+  \lilypondifundefined{lilyponddocument}
+    {\def\x{
+       \endgroup}}
+    {\def\x{
+       \endgroup
+       \csname end\endcsname{document}}}
+  \x}
+
+%% Load the PostScript drawing routines.  This is done using \special.
+%% To avoid multiple inclusions, redefine \lilypondspecial to a no-op
+%% afterwards.
+%%
+\gdef\lilypondspecial{
+  \special{header=music-drawing-routines.ps}
+  \gdef\lilypondspecial{}}
+
+%% The most used macro in LilyPond output.  Put #3 into a zero-width box
+%% which is moved to the right by #1 (scaled by \outputscale) and moved
+%% up by #2 (also scaled by \outputscale).
+%%
+\gdef\lyitem#1#2#3{
+  \raise #2\outputscale \hbox to 0pt {
+    \kern #1\outputscale
+    #3
+    \hss}}
+
+%% All LilyPond music data is enclosed in this macro (as third argument).
+%% The data (which consists of boxes with zero width) gets an artificial
+%% width of #1 and a height of #2.  The resulting box is then centered
+%% vertically along the x-height of the current font.
+%%
+%% Parameters #1 and #2 are scaled by \outputscale.
+%%
+\gdef\lybox#1#2#3{
+  \lytempdim #2\outputscale
+  \lytempdim -0.5\lytempdim
+  \advance\lytempdim 1ex
+  \leavevmode
+  \raise \lytempdim \hbox to #1\outputscale {
+    %% Convert depth of #3 into height only.
+    \vbox to #2\outputscale {\hbox{#3}\vss}
+    \hss}}
+
+%% Produce a black bar (width #2, depth #3, height #4) with a vertical
+%% offset #1.  Everything is scaled by \outputscale.
+%%
+\gdef\lyvrule#1#2#3#4{
+  \kern#1\outputscale
+  \vrule width #2\outputscale depth #3\outputscale height #4\outputscale}
+
+%% FIXME: 'interscoreline' and 'lilypondPAPERinterscoreline
+%%
+\lilypondifundefined{lilypondpaperinterscorelinefill}
+  {\gdef\lilypondpaperinterscorelinefill{0}}
+  {\gdef\lilypondpaperinterscorelinefill{1}}
+
+%% Allow overriding of interscoreline, e.g., for LilyPond's --preview
+%%
+\lilypondifundefined{interscoreline}
+  {\lilypondifundefined{lilypondclassic}
+     {\gdef\interscoreline{}}
+     {\gdef\interscoreline{
+        \vskip\lilypondpaperinterscoreline\lilypondpaperunit
+        plus \lilypondpaperinterscorelinefill fill}}}
+  {}
+
+%% Include PostScript definitions (which are differently defined for
+%% TeX and pdfTeX).  This is loaded once only because the inputted files
+%% define \lilypondpostscript.
+%%
+%% (Don't remove the spaces after the arguments to \input!)
+%%
+\lilypondifundefined{lilypondpostscript}
+  {\lilypondifundefined{pdfoutput}
+     {\input lily-ps-defs }
+     {\pdfoutput = 1
+      \input lily-pdf-defs }}
+  {}
+
+%% Restore newline functionality (disabled to avoid \par).
+%%
+\endlinechar \lilyponddefsELC
+\endinput
+
+%% end lilyponddefs.tex


_______________________________________________
Lilypond-cvs mailing list
Lilypond-cvs@xxxxxxx
http://lists.gnu.org/mailman/listinfo/lilypond-cvs

<Prev in Thread] Current Thread [Next in Thread>