]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.4.2 release/1.4.2
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 28 May 2001 14:06:02 +0000 (16:06 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 28 May 2001 14:06:02 +0000 (16:06 +0200)
==========

* Glossary fixes (Thanks Jean-Pierre Coulon).

1.4.1.j

61 files changed:
AUTHORS.txt
CHANGES
Documentation/bibliography/engraving.bib
Documentation/footer.html.in
Documentation/header.html.in
Documentation/regression-test.tely
Documentation/topdocs/AUTHORS.texi
Documentation/topdocs/INSTALL.texi
Documentation/user/convert-ly.itexi
Documentation/user/converters.itely
Documentation/user/glossary.tely
Documentation/user/internals.itely
Documentation/user/latex-example.latex
Documentation/user/lilypond-book.itely
Documentation/user/ly2dvi.itexi
Documentation/user/macros.itexi
Documentation/user/refman.itely
Documentation/user/tutorial.itely
GNUmakefile.in
INSTALL.txt
README.txt
VERSION
buildscripts/mutopia-index.py
debian/GNUmakefile
debian/TODO [deleted file]
debian/changelog
debian/control
debian/control.foka
debian/copyright
debian/doc-base [deleted file]
debian/lilypond-doc.README.Debian [new file with mode: 0644]
debian/lilypond-doc.dirs [new file with mode: 0644]
debian/lilypond-doc.doc-base [new file with mode: 0644]
debian/lilypond.dirs [new file with mode: 0644]
debian/lilypond.doc-base [new file with mode: 0644]
debian/lilypond.links [new file with mode: 0644]
debian/rules
debian/watch
input/bugs/accid.ly [new file with mode: 0644]
input/regression/collision-dots.ly [new file with mode: 0644]
input/regression/dot-flag-collision.ly
lily/axis-group-interface.cc
lily/dot-column-engraver.cc
lily/dot-column.cc
lily/include/dot-column.hh
lily/side-position-interface.cc
lily/stem.cc
lily/tuplet-bracket.cc
make/ly-rules.make
make/out/lilypond.lsm
make/out/lilypond.redhat.spec
make/out/lilypond.suse.spec
midi2ly/lilypond-stream.cc
scm/grob-description.scm
scm/lily.scm
scm/pdf.scm [new file with mode: 0644]
scripts/lilypond-book.py
stepmake/bin/add-html-footer.py
stepmake/stepmake/package.make
tex/lily-pdf-defs.tex
tex/lilyponddefs.tex

index a6d2b4b04ed84da8c9cbc9850f16446bedc1574c..def7b3af774df798e26fdcaa2f3fa8293b1671f3 100644 (file)
@@ -20,12 +20,12 @@ list is alphabetically ordered.
    * Jan Arne Fagertun <Jan.A.Fagertun@energy.sintef.no>,     TeX
      titling and lytodvi.sh
 
-   * Anthony Fok <foka@debian.org>,     debian package: debian/*
+   * Anthony Fok <foka@debian.org>,     Debian package: debian/*
 
-   * James Hammons <jlhamm@pacificnet.net>,     american chord names,
+   * James Hammons <jlhamm@pacificnet.net>,     American chord names,
      gnu-windows testing
 
-   * Bjoern Jacke <bjoern.jacke@gmx.de>     german glossary stuff.
+   * Bjoern Jacke <bjoern.jacke@gmx.de>     German glossary stuff.
 
    * Neil Jerram <nj104@cus.cam.ac.uk>.      parts of
      Documentation/Vocab*
diff --git a/CHANGES b/CHANGES
index 6a684de42aad7daf864b94175e0f8fc11e1626ab..6eadd906641586113414255ab46e1fb177d633b2 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -8,18 +8,12 @@
 
 * Updated les-nereides.
 
-1.4.1.jcn2
-==========
-
 * Added \newpage command.
 
 * Doco fixes.
 
 * Debian make fix.
 
-1.4.1.jcn1
-==========
-
 * Fix for index, small doco fixes.
 
 * Bugfix: use roman font (instead of feta) for unacorda pedal.
 
 * Added extra header titling fields to ly2dvi too.
 
+1.4.1.mb2
+=========
+
+* documentation fixes
+
+* Add make rule to avoid problems building dvi documentation
+
+* Documentation fixes
+
+* Bugfix: tuplet-number-visibility
+
+1.4.1.hwn1
+==========
+
+* Do not lengthen the stem in case of a collision with the flag, but
+move dots to the right.
+
+* Debian patches (Thanks, Anthony!)
+
 1.4.1
 =====
 
index 4df039a22d9dc3a3f1388f30430dc10459bedf1d..1ac79d9da5f734609df0ec64b3728aff04dfe3fc 100644 (file)
@@ -237,7 +237,7 @@ year={1989}
 
 
 @Book {gerou96,
-  note = {A concise, alphabetically ordered list of typesetting and music (notation) issues with a rather simplistic attitude but in most  cases "good-enough" answers JCN},
+  note = {A cheap, concise, alphabetically ordered list of typesetting and music (notation) issues with a rather simplistic attitude but in most  cases "good-enough" answers JCN},
   year =  {1996},
   title = {Essential Dictionary of Music Notation},
   author = {Tom Gerou and Linda Lusk},
index 19ed96aed4e958cb3d1aafa38cfbb4d66ffca3b4..d71ff8d1ada87f87506d25fc8c7151fcf19e5539 100644 (file)
@@ -6,7 +6,7 @@ which substitutes some @AT_VARIABLES@ as well.
 
 !-->
 
-<! Layout shamelessly inspired by Franc,ois Pinard's TP pages >
+<!-- Layout shamelessly inspired by Franc,ois Pinard's TP pages -->
 
     </td>
   </tr>
@@ -33,7 +33,7 @@ Copyright (c) 1997--2001 Han-Wen Nienhuys and Jan Nieuwenhuizen.
 <p>
 
 Verbatim copying and distribution of this entire article is 
-permitted in any medium, provided this notice is preserved.<p>
+permitted in any medium, provided this notice is preserved.</p>
 
    </td>
   </tr>
index 2188e4e68bb6f061c96cac4d339c2b7b685ba1de..0771ca05f4ae92a4e1a7887dcf86e3a59636ca23 100644 (file)
@@ -4,27 +4,26 @@ If this file ./Documentation/header.html.in is present,
 it is included automatically by add-html-footer.py,
 which substitutes some @AT_VARIABLES@ as well.
 
-!-->
+-->
 
-<! Layout shamelessly inspired by Franc,ois Pinard's TP pages >
+<!-- Layout shamelessly inspired by François Pinard's TP pages -->
 
 <!--
-<table cellpadding=5 width="100%">
+<table cellpadding="5" width="100%">
   <tr align=left valign=bottom>
-   <td align=middle valign=middle colspan=3 width="100%" bgcolor="#e8ffe8">
+   <td align=center valign=middle colspan="3" width="100%" bgcolor="#e8ffe8">
     <h1>
     GNU LilyPond
     </h1>
     <h2>Welcome to the home of the GNU Music Typesetter</h2>
    </td>
   </tr>
-!-->
+-->
 
 <table cellpadding=5 width="100%">
   <tr align=left valign=bottom>
     <td align=center valign=middle width="15%" bgcolor="#e8ffe8">
-      <img align=center valign=middle
-        src="@TOP@Documentation/pictures/out-www/lelie-icon.png" alt="[icon]">
+      <img src="@TOP@Documentation/pictures/out-www/lelie-icon.png" alt="[icon]">
      </td>
     <td align=center valign=middle width="85%" bgcolor="#e8ffe8">
       <h1>GNU LilyPond</h1>
@@ -39,50 +38,48 @@ which substitutes some @AT_VARIABLES@ as well.
       <tr><td bgcolor="#e8e8ff">
       <b>Documentation</b>
       </td></tr>
-      <tr><td><font size=-1>
+      <tr><td><font size="-1">
        <a href="@TOP@Documentation/out-www/index.html#everyone">General information</a><br>
        <a href="@TOP@Documentation/out-www/index.html#newbies">For new users</a><br>
        <a href="@TOP@Documentation/out-www/index.html#users">For users</a><br>
        <a href="@TOP@Documentation/out-www/index.html#developers">For developers</a><br>
        <a href="@TOP@Documentation/out-www/index.html#background">Background information</a><br>
-      </td></tr>
+      </font></td></tr>
       <tr><td bgcolor="#e8e8ff">
        <b>Download </b>
       </td></tr>
-      <tr><td><font size=-1>
-<a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source</a><br>
-       <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Binary</a>  <br>
-      </td></tr>
+      <tr><td><font size="-1">
+       <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source</a><br>
+       <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Binary</a><br>
+      </font></td></tr>
       <tr><td bgcolor="#e8e8ff">
        <b>Music</b>
       </td></tr>
-      <tr><td><font size=-1>
+      <tr><td><font size="-1">
        <a href="@TOP@short-examples.html">Short examples</a><br>
        <a href="@TOP@long-examples.html">Longer examples</a><br>
        <a href="http://www.mutopiaproject.org/">Mutopia Project</a><br>
 
        <a href="http://www.lilypond.org/wiki?DownloadLilyPondScores">Other URLs</a><br>
        <br>
-      </td></tr>
+      </font></td></tr>
       <tr><td bgcolor="#e8e8ff">
        <b>Mailing Lists</b>
       </td></tr>
-      <tr><td><font size=-1>
+      <tr><td><font size="-1">
        <a href="@TOP@Documentation/out-www/index.html#mailing-lists">About the lists</a><br>
        <a href="http://mail.gnu.org/mailman/listinfo/gnu-music-discuss/">Discussion</a><br>
-        <a href="http://mail.gnu.org/mailman/listinfo/help-gnu-music">Help</a><br>
+        <a href="http://mail.gnu.org/mailman/listinfo/help-gnu-music/">Help</a><br>
         <a href="http://mail.gnu.org/mailman/listinfo/bug-gnu-music/">Bugs</a><br>
-        <a href="http://mail.gnu.org/mailman/listinfo/info-gnu-music">Announcements</a><br>
+        <a href="http://mail.gnu.org/mailman/listinfo/info-gnu-music/">Announcements</a><br>
        <br>
-      </td></tr>
+      </font></td></tr>
     <tr><td bgcolor="#e8e8ff"><b>Sites</b></td></tr>
-      <tr><td><font size=-1>
+      <tr><td><font size="-1">
         <a href="http://www.lilypond.org/">Website</a><br>
-        <a href="http://www.lilypond.org/wiki">WikiWiki</a><br>
+        <a href="http://www.lilypond.org/wiki/">WikiWiki</a><br>
         <a href="ftp://ftp.lilypond.org/pub">FTP site</a><br>
        <br>
-      </td></tr>
+      </font></td></tr>
     </table>
   <td align=left valign=top width="85%">
-
-
index 2bf6020b77714ad61cb60a2f625c0abc624709b6..54d58e9fe87423fa3fe4d14b6ab41d3486c30ba9 100644 (file)
@@ -179,6 +179,7 @@ and documenting bugfixes.
 @lilypondfile[printfilename]{rest-collision.ly}
 
 @lilypondfile[printfilename]{collisions.ly}
+@lilypondfile[printfilename]{collision-dots.ly}
 
 @lilypondfile[printfilename]{number-staff-lines.ly}
 
index 85276d489a90c70578baa5ff40cf92d713099c2a..269c1aeb01bcaa6a12a330182102ca203b27c88b 100644 (file)
@@ -26,13 +26,13 @@ list is alphabetically ordered.
 @item Laura Conrad (lconrad@@world.std.com)
     fixes to abc2ly
 @item @email{Jan.A.Fagertun@@energy.sintef.no, Jan Arne Fagertun},
-    TeX titling and lytodvi.sh
+    @TeX{} titling and lytodvi.sh
 @item @email{foka@@debian.org, Anthony Fok}, 
-    debian package: debian/*
+    Debian package: debian/*
 @item @email{jlhamm@@pacificnet.net, James Hammons},
-    american chord names, gnu-windows testing
+    American chord names, gnu-windows testing
 @item @email{bjoern.jacke@@gmx.de, Bjoern Jacke}
-    german glossary stuff.
+    German glossary stuff.
 @item @email{nj104@@cus.cam.ac.uk, Neil Jerram}. 
     parts of Documentation/Vocab*
 @item Donald Ervin Knuth,  @uref{http://www-cs-staff.stanford.edu/~knuth/}
@@ -63,7 +63,7 @@ list is alphabetically ordered.
     parts of Documentation/Vocab*, started internationalization stuff
 @c urg: @c,{} in @email{} barfs.
 @item @email{portnoy@@ai.mit.edu,Stephen Peters},
-    pdfTeX support
+    pdf@TeX{} support
 @item @email{glenprideaux@@iname.com, Glen Prideaux},
     minor bug fixes, lyric-phrasing.
 @item @email{Roy.Rankin@@alcatel.com.au, Roy R. Rankin},
index 186ae7507bd975aa3c574a061ba1b874fa2ce4e8..b50c5a14bb31fd971761adac139ec01dc3b60044 100644 (file)
@@ -52,24 +52,19 @@ If you want to compile LilyPond from source, download here:
 
 Binaries are available, but are not updated for every version released.
 @itemize @bullet
-@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/, RedHat i386}
-@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc, LinuxPPC}
-@item
-@uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond,
-Debian GNU/Linux Stable} 
-@item
-@uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond1.3,
-Debian GNU/Linux Unstable} 
+@item @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/, Red Hat i386}
+@item @uref{ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc/, LinuxPPC}
+@item @uref{ftp://ftp.debian.org/debian/pool/main/l/lilypond/, Debian GNU/Linux}
 @item @uref{http://home.austin.rr.com/jbr/jeff/lilypond/, Windows Stable}
 @c @item @uref{ftp://ftp.lilypond.org/pub/lilypond/gnu-windows, Windows
 @c Testing} 
-@uref{http://www.lilypond.org/gnu-windows, Windows Testing}
+@uref{http://www.lilypond.org/gnu-windows/, Windows Testing}
 
 @end itemize
 
 @subsection Upgrading
 
-There are two  options for upgrading sources.
+There are two options for upgrading sources.
 
 @itemize
 @item if you have an unpacked source tree of a previous version, you
@@ -83,11 +78,11 @@ use
 @uref{ftp://ftp.xcf.berkeley.edu/pub/xdelta/, xdelta}.
  This is much safer than using patches, and is the recommended way.
 
-The following command produces @file{lilypond-1.3.122.tar.gz} from
-@file{lilypond-1.3.121} identical (up to compression dates) to the .122
+The following command produces @file{lilypond-1.4.1.tar.gz} from
+@file{lilypond-1.4.0.tar.gz} identical (up to compression dates) to the .1
 on the FTP site.
 @example
-  xdelta patch lilypond-1.3.121-1.3.122.xd lilypond-1.3.121.tar.gz
+  xdelta patch lilypond-1.4.0-1.4.1.xd lilypond-1.4.0.tar.gz
 @end example
 @end itemize
 
@@ -123,7 +118,7 @@ Check out @uref{http://www.gnu.org/software/bison/,the bison  webpage}
 
 @TeX{} is used as an output backend.
 
-Also, @TeX{}'s libkpathsea is used to find the fonts (.mf, .afm, .tfm).
+Also, @TeX{}'s libkpathsea is used to find the fonts (@file{.mf}, @file{.afm}, @file{.tfm}).
 Make sure you have tetex 1.0 or newer (1.0.6 is known to work).  You may
 need to install a tetex-devel or tetex-dev package too.
 
@@ -145,8 +140,8 @@ files.
 If you don't have MetaPost and don't want to use PostScript output, then
 edit @file{mf/GNUmakefile}, removing the line saying @code{PFA_FILES=}.
 
-@item kpathsea, a library for searching (TeX) files.  @code{kpathsea} is
-usually included with your installation of TeX.  You may need to install
+@item kpathsea, a library for searching (@TeX{}) files.  @code{kpathsea} is
+usually included with your installation of @TeX{}.  You may need to install
 a tetex-devel or tetex-dev package too.
 
 In the very unlikely case that kpathsea is not available for your
@@ -167,13 +162,13 @@ GNU LilyPond does use a lot of resources. For operation you need the
 following software
 
 @itemize @bullet
-@item TeX.
-@item Xdvi and ghostscript
+@item @TeX{}.
+@item Xdvi and Ghostscript
 @item GUILE 1.3.4, or newer.  Check out
 @uref{http://www.gnu.org/software/guile.html,the GUILE webpage}
 @end itemize
 
-For running LilyPond successfully you have to help TeX and MetaFont find
+For running LilyPond successfully you have to help @TeX{} and MetaFont find
 various files.  The recommended way of doing so is adjusting the
 environment variables in the start-up scripts of your shell. Appropriate
 Csh and bourne sh scripts are left in
@@ -301,7 +296,7 @@ Add this to your @file{~/.emacs} or @file{~/.emacs.el}:
     (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
 @end example
 
-If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode is
+If you have the latest LilyPond-1.4.x Debian package, LilyPond-mode is
 automatically loaded, so you need not modify your @code{~/.emacs} file.
 
 @section Compiling for distributions 
@@ -333,8 +328,8 @@ libgr-progs.
 
 @b{Warning}
 
-There appears to be a problem with the Xdvi shipped with RedHat
-7.1. Symptoms: Xdvi responds very sluggishly or hangs while viewing
+There appears to be a problem with the Xdvi shipped with Red Hat 7.1.
+Symptoms: Xdvi responds very sluggishly or hangs while viewing
 lilypond output. The cause for this problem is unknown; you are advised
 to recompile Xdvi from source.
 
@@ -352,7 +347,7 @@ Some SUSE RPMS should available from
 @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/}.
 
 You can also compile a RPM for SUSE yourself.  A spec file is in
-@file{make/out/suse.spec}, see the instructions for building the RedHat
+@file{make/out/suse.spec}, see the instructions for building the Red Hat
 RPM.
 
 You must have the following packages: guile tcsh tetex te_latex te_kpath
@@ -375,15 +370,15 @@ Some binaries are available at rpmfind.net. Refer to
 
 @subsection Debian GNU/Linux
 
-A Debian package is also available.  You may install it easily by using
-apt-get as root:
+A Debian package is also available.  You may install it easily by running
+@command{apt-get} as root:
 
 @example
-       apt-get install lilypond1.3
+       apt-get install lilypond
 @end example
 
 
-Debian's tex installation is a bit short on memory, you may want to
+Debian's @TeX{} installation is a bit short on memory, you may want to
 increase it like this:
 @example
 --- /etc/texmf/texmf.cnf.dpkg  Sun Jan 28 14:12:14 2001
@@ -398,22 +393,26 @@ increase it like this:
 +extra_mem_bot = 100000    % extra low memory for boxes, glue, breakpoints, etc.
  
  obj_tab_size.context = 256000
 
 @end example
 
+You could also export @env{extra_mem_top} and @env{extra_mem_bot} as
+environment variables if you do not want to or cannot modify
+@file{/etc/texmf/texmf.cnf}.
+
 Alternatively, visit
 
 @itemize @bullet
 @item @uref{http://packages.debian.org/lilypond,http://packages.debian.org/lilypond}
-@item @uref{http://ftp.debian.org/debian/pool/main/l/lilypond1.3/,http://ftp.debian.org/debian/pool/main/l/lilypond1.3/}
-for latest package uploaded to Debian unstable;
 @item @uref{http://people.debian.org/~foka/lilypond/,http://people.debian.org/~foka/lilypond/}
-for latest semi-unofficial build of LilyPond 1.3.121 for Debian 2.2r2 (potato) users.
-The official stable Debian 2.2r2 is stuck with the old LilyPond-1.3.24.
+for latest semi-unofficial build of LilyPond 1.3.121 for Debian 2.2 (potato) users.
+The official stable Debian 2.2 is stuck with the old LilyPond-1.3.24.
+Since LilyPond-1.4 has been released, the older lilypond1.3 Debian
+package is now obsolete.
 @end itemize
 
-You may contact Anthony Fok @email{foka@@debian.org} for more information.
+Please contact Anthony Fok @email{lilypond@@packages.debian.org} for more
+information.
 
 The build scripts are in the subdirectory @file{debian/}; you can
 make the .deb by doing, for example:
@@ -422,12 +421,12 @@ make the .deb by doing, for example:
        $ su - root
        # dpkg --purge lilypond lilypond1.3
        # exit
-       $ tar xzf lilypond-1.3.122.tar.gz
-       $ cd lilypond-1.3.122
-       $ dch -p -v 1.3.122-0.local.1 "Local build."
+       $ tar xzf lilypond-1.4.1.tar.gz
+       $ cd lilypond-1.4.1
+       $ dch -p -v 1.4.1-0.local.1 "Local build."
        $ debuild
        $ su - root
-       # dpkg -i ../lilypond1.3_1.3.122*.deb
+       # dpkg -i ../lilypond_1.4.1*.deb
        # exit
        $
 @end example
@@ -436,22 +435,25 @@ For compilation on a Debian GNU/Linux system you need these packages,
 in addition to the those needed for running:
 
 @itemize @bullet
-@item g++, cpp, libc6-dev, libstdc++<your-libstdc++-version-here>-dev
-@item libguile<your-libguile-version-here>-dev
+@item g++, cpp, libc6-dev, libstdc++<@var{your-libstdc++-version-here}>-dev
+@item libguile<@var{your-libguile-version-here}>-dev
 @item make, m4, flex, bison
 @item gettext
-@item groff, texinfo, bibtex2html (not in 2.2r2)
+@item groff, texinfo
+@item bibtex2html (not in Debian 2.2)
 @item tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 @item dpkg-dev, debhelper, fakeroot
-@item gs, netpbm, pnmtopng
+@item gs, netpbm
+@item pnmtopng (only in Debian 2.2; pnmtopng has been merged with netpbm
+  in Debian testing/unstable.)
 @end itemize
 
-Most of these are listed on the Build-Depends line in the
-debian/control file.  To ensure the creation of the lilypond deb is
+Most of these are listed on the @samp{Build-Depends} line in the
+@file{debian/control} file.  To ensure the creation of the lilypond deb is
 trouble-free, we recommend that you first install the following packages
-before starting dpkg-buildpackage by running apt-get as root.
+by running \@command{apt-get} as root before building the package:
 
-For Debian 2.2 (or 2.2r2, 2.2r3):
+For Debian 2.2:
 
 @example
        apt-get install task-debian-devel task-c++-dev \
@@ -466,7 +468,7 @@ For Debian in development ("unstable", the future 2.3 or 3.0):
        apt-get install task-debian-devel task-c++-dev \
                python-base libguile9-dev tetex-bin libkpathsea-dev \
                tetex-extra flex bison texinfo bibtex2html groff gs \
-               netpbm pnmtopng m4 gettext
+               netpbm m4 gettext
 @end example
 
 And, just so that old fonts from previous versions of LilyPond won't
@@ -481,7 +483,7 @@ interfere with your build, you may want to do this before the build too:
 @section Problems
 
 For help and questions use @email{help-gnu-music@@gnu.org} and
-@email{gnu-music-discuss@@gnu.org}.  Please consult the faq before
+@email{gnu-music-discuss@@gnu.org}.  Please consult the FAQ before
 mailing your problems.  If you find bugs, please send bug reports to
 @email{bug-gnu-music@@gnu.org}.
 
index 255b30fbfd60154e5af7ca994d0dae28823dd88e..dc1590a6edda7cd0664cae7c7696ead0726614af 100644 (file)
@@ -19,21 +19,22 @@ detect the old version number.
 @item -a,--assume-old
     If version number cannot be determined, apply all conversions.
 @item -e,--edit
-    Do an inline edit of the input file. override @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
+    guess this, on the basis of @code{\version} strings in the file.
 @item -o,--output=@var{file}
     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.  
-
-@item --show-rules
-    Show all known conversions and exit
+    to the output. Specifying this option suppresses this.  
+@item -s, --show-rules
+    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.
+@item -h, --help
+    Print usage help
 @end table
 
 @unnumberedsubsec Example
index 60a8e0a66b0e2426e8419c9571c5988e19be0599..71f53b947d449becea93c0fe9627b753a58e9be4 100644 (file)
@@ -112,11 +112,9 @@ version information
 @refbugs
 
 Known: articulation scripts are buggy.  Empty measures confuse etf2ly.
-Report bugs to @email{bug-gnu-music@@gnu.org}.
 
 Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
 
-
 Report bugs to @email{bug-gnu-music@@gnu.org}.
 
 @node abc2ly
@@ -175,7 +173,7 @@ not.
 abc2ly ignores the ABC beaming.
 
 Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-
+@c How about Laura?   /MB
 
 Report bugs to @email{bug-gnu-music@@gnu.org}.
 
@@ -280,7 +278,7 @@ write output to @var{FILE}
 @item  -v,--version
 version information
 @item  -w,--warranty
-print warranty and copyright.  Mup2ly comes with absolutlely @strong{NO WARRANTY}.
+print warranty and copyright.  Mup2ly comes with absolutely @strong{NO WARRANTY}.
 @end table
 
 
index bae4fb573c5c4e65a6d9e31bf0e18763fdf8da8b..3abaec65949d2aaed4226014a97c493ae23c0609 100644 (file)
@@ -10,7 +10,7 @@
 @ignore
  glossary by Christian Mondrup
 
- spanish by David González <dgonzal@quanta.net.py> 
+ spanish by David Gonz@'alez <dgonzal@quanta.net.py> 
 
 @end ignore
 
@@ -54,8 +54,10 @@ ES: acento, I: accento, F: accent, D: Akzent, NL: accent, DK: accent, S: accent,
 
 The stress of one tone over others.
 
+@c F: how to distinguish between accidental and key-sig alteration?
+
 @item accidental
-ES: alteración, I: alterazione, accidente, F: alt@'eration, D: Vorzeichen,
+ES: alteraci@'on, I: alterazione, accidente, F: alt@'eration D: Vorzeichen,
 Versetzungszeichen, NL: voorteken, DK: l@o{}st fortegn, S: tillf@"alligt 
 f@"ortecken, N:
 
@@ -243,10 +245,10 @@ ES: , I: stanghetta, barra (di divisione), F: barre (de mesure), D: Taktstrich,
 maatstreep, DK: taktstreg, S: taktstreck, N:
 
 @item bar
-ES: compás, @w{@ar{}@strong{measure}}
+ES: comp@'as, @w{@ar{}@strong{measure}}
 
 @item baritone
-ES: barítono, I: baritono, F: bariton, D: Bariton, NL: bariton, DK: baryton, S: baryton, N:
+ES: bar@'{@dotless{i}}tono, I: baritono, F: bariton, D: Bariton, NL: bariton, DK: baryton, S: baryton, N:
 baryton.
 
 The male voice intermediate between the @w{@ar{}@strong{bass}} and the
@@ -450,7 +452,7 @@ chords are denoted open chords
 @end lilypond
 
 @item chromatic scale
-ES: escala cromática, I: scala cromatica, F: gamme chromatique, D: Chromatische Tonleiter, NL:
+ES: escala crom@'atica, I: scala cromatica, F: gamme chromatique, D: Chromatische Tonleiter, NL:
 chromatische toonladder, DK: kromatisk skala, S: kromatisk skala, N: .
 
 A scale consisting of all 11 @w{@ar{}@strong{semitone}}s.
@@ -468,7 +470,7 @@ kromatik, N:
 
 Use of tones extraneous to a @w{@ar{}@strong{diatonic scale}} (minor, major).
 
-@item church mode; ecclesiastical mode ES: modo eclesiástico, I: modo
+@item church mode; ecclesiastical mode ES: modo eclesi@'astico, I: modo
 ecclesiastico, F: mode eccl@'esiastique, D: Kirchentonart, NL:
 kerktoonladder, DK: kirketoneart, S: kyrkotonart, N:
 
@@ -660,7 +662,7 @@ fallande intervall, N:
 An distance between a starting higher note and a lower ending note.
 
 @item diatonic scale
-ES: escala diatónica, I: scala diatonica, F: gamme diatonique, D: diatonische Tonleiter, NL:
+ES: escala diat@'onica, I: scala diatonica, F: gamme diatonique, D: diatonische Tonleiter, NL:
 diatonische toonladder, DK: diatonisk skala, S: diatonisk skala, N:
 
 A scale consisting of 5 @w{@ar{}@strong{whole tones}} and 2
@@ -828,7 +830,7 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and
 @end lilypond
 
 @item diminished interval
-ES: intervalo disminuído, I: intervallo diminuito, F: intervalle diminu@'e, D: vermindertes Intervall,
+ES: intervalo disminu@'{@dotless{i}}do, I: intervallo diminuito, F: intervalle diminu@'e, D: vermindertes Intervall,
 NL: verminderd interval, DK: formindsket interval, S: f@"orminskat
 intervall, N: .
 
@@ -874,7 +876,7 @@ dominantnoneakkord, S: dominantnonackord, N: .
 @w{@ar{}@strong{chord}} @w{@ar{}@strong{functional harmony}}
 
 @item dominant seventh chord
-ES: acorde de séptima de dominante, I: accordo di settima di dominante, F: accord de septi@`eme dominante, D:
+ES: acorde de s@'eptima de dominante, I: accordo di settima di dominante, F: accord de septi@`eme dominante, D:
 Dominantseptakkord, NL: dominant septiem akkoord, DK: dominantseptimakkord, S:
 dominantseptimackord, N:
 
@@ -887,7 +889,7 @@ dominant, N: .
 The fifth @w{@ar{}@strong{scale degree}} @w{@ar{}@strong{functional harmony}}
 
 @item dorian mode
-ES: modo dórico, I: modo dorico, F: mode dorien, D: Dorischer Kirchenton, NL: dorische
+ES: modo d@'orico, I: modo dorico, F: mode dorien, D: Dorischer Kirchenton, NL: dorische
 toonladder, dorischer Kirchenton, DK: dorisk skala, S: dorisk tonart, N:
 
 @w{@ar{}@strong{diatonic scale}}
@@ -954,7 +956,7 @@ ES: dosillo, I: duina, F: duolet, D: Duole, NL: duool, DK: duol, S: duol, N: .
 @w{@ar{}@strong{note value}}
 
 @item duration
-ES: duración, I: durata, F: dur@'ee, D: Dauer, L@"ange, NL: duur, lengte, DK: varighed, S:
+ES: duraci@'on, I: durata, F: dur@'ee, D: Dauer, L@"ange, NL: duur, lengte, DK: varighed, S:
 tonl@"angd, N: .
 
 @w{@ar{}@strong{note value}}
@@ -989,7 +991,7 @@ 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.
 
 @item enharmonic
-ES: enharmónico, I: enarmonico, F: enharmonique, D: enharmonisch, NL: enharmonisch, DK:
+ES: enharm@'onico, I: enarmonico, F: enharmonique, D: enharmonisch, NL: enharmonisch, DK:
 enharmonisk, S: enharmonisk, N: .
 
 Two notes, intervals, or scales are enharmonic if they have different names
@@ -1066,7 +1068,8 @@ octave lower (for example on double bass @w{@ar{}@strong{strings}}).
 @c F:  'point d'orgue' on a note, 'point d'arret' on a rest.
 
 @item fermata
-ES: Calderón, I: corona, F: point d'orgue, point d'arr@^et, UK: pause, corona, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: .
+ES: Calder@'on, I: corona, F: F: point d'orgue, point d'arr@^et,
+D: Fermate, NL: fermate, DK: fermat, S: fermat, N: .
 
 Prolonged note or rest of indefinite duration.
 
@@ -1087,7 +1090,7 @@ kvint.
 ES: bajo cifrado, @w{@ar{}@strong{thorough bass}}
 
 @item fingering
-ES: digitación, I: diteggiatura, F: doigt@'e, D: Fingersatz, NL: vingerzetting, DK:
+ES: digitaci@'on, I: diteggiatura, F: doigt@'e, D: Fingersatz, NL: vingerzetting, DK:
 fingers@ae{}tning, S: fingers@"attning, N: .
 
 The methodical use of fingers in the playing of instruments.
@@ -1137,7 +1140,7 @@ ES: fuga, I: fuga, F: fugue, D: Fuge, NL: fuga, DK: fuga, S: fuga, N: .
 @w{@ar{}@strong{counterpoint}}
 
 @item functional harmony
-ES: armonía funcional, I: armonia funzionale, F: @'etude des functions, D: Funktionslehre, NL: , DK:
+ES: armon@'{@dotless{i}}a funcional, I: armonia funzionale, F: @'etude des functions, D: Funktionslehre, NL: , DK:
 funktionsanalyse, funktionsharmonik, S: funktionsl@"ara, N:
 
 A system of harmonic analysis. It is based on the idea that, in a given key,
@@ -1153,7 +1156,7 @@ of the base chords.
 \property Score.LyricText \set #'font-style = #'large
 \property Score.TextScript \set #'font-style = #'large
 \addlyrics
-\notes\relative c'' {
+\context Voice \notes\relative c'' {
   < g1 e c > < 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$" }
@@ -1237,7 +1240,7 @@ rust, DK: halvnodespause, S: halvpaus, N: .
 @w{@ar{}@strong{note value}}
 
 @item harmonic cadence
-ES: cadencia (armónica), I: cadenza (armonica), F: cadence harmonique, D: Schlusskadenz, NL:
+ES: cadencia (arm@'onica), I: cadenza (armonica), F: cadence harmonique, D: Schlusskadenz, NL:
 harmonische cadens, DK: harmonisk kadence, S: (harmonisk) kadens, N: .
 
 Sequence of chords that terminate a musical phrase or
@@ -1261,7 +1264,7 @@ section. @ar{}@w{}@strong{functional harmony}
 @end lilypond
 
 @item harmony
-ES: armonía    , I: armonia, F: harmonie, D: Harmonie, Zusammenklang, NL: harmonie, DK:
+ES: armon@'{@dotless{i}}a      , I: armonia, F: harmonie, D: Harmonie, Zusammenklang, NL: harmonie, DK:
 samklang, S: samklang, N:
 
 Tones sounding simultaneously. Two note harmonies fall into the cathegories
@@ -1274,7 +1277,7 @@ Consonances:
 @lilypond[13pt,eps] 
 \property Score.barNonAuto = ##t
 \property Score.TextScript \set #'font-style = #'large
-\notes\relative c'' {
+\context Voice \notes\relative c'' {
   <g1_"unisone" g> s
   <g1_"third" b> s
   <g1_"fourth" c> s
@@ -1292,7 +1295,7 @@ Dissonances:
 @lilypond[13pt,eps] 
 \property Score.barNonAuto = ##t
 \property Score.TextScript \set #'font-style = #'large
-\notes\relative c'' {
+\context Voice  \notes\relative c'' {
   <g1_"second" a> s
   <g1_"seventh" f'> s 
   <g1_"ninth" a'> s s
@@ -1302,7 +1305,7 @@ Dissonances:
 Three note harmony @w{@ar{}@strong{chord}}
 
 @item homophony
-ES: homofonía, I: omofonia, F: homophonie, D: Homophonie, NL: homofonie, DK: homofoni, S:
+ES: homofon@'{@dotless{i}}a, I: omofonia, F: homophonie, D: Homophonie, NL: homofonie, DK: homofoni, S:
 homofoni, N: .
 
 Music in which one voice leads melodically followed by the other voices more
@@ -1325,7 +1328,7 @@ forms an octave.
 \property Score.LyricText \set #'font-style = #'large
 \property Score.TextScript \set #'font-style = #'large
 \addlyrics
-\context Staff \notes\relative c'' {
+\context Voice \notes\relative c'' {
   < g1 g > s
   < g^"minor" as > s
   < g^"major" a! > s
@@ -1438,7 +1441,7 @@ upwards) to the tonic scale degree.
 
 @item ledger line; leger line
 
-ES: líneas adicionales, I: tagli addizionali, F: ligne suppl@'ementaire, D: Hilfslinie, NL:
+ES: l@'{@dotless{i}}neas adicionales, I: tagli addizionali, F: ligne suppl@'ementaire, D: Hilfslinie, NL:
 hulplijntje, DK: hj@ae{}lpelinie, S: hj@"alplinje, N: .
 
 A ledger line is an extension of the staff.
@@ -1485,7 +1488,7 @@ le@-lie@-vij@-ver, DK: liliedam, S: liljedamm, N: .
 A pond with  lilies floating in it, also the name of a music typesetter.
 
 @item line
-ES: línea, I: linea, F: ligne, D: Linie, Notenlinie, NL: lijn, DK: nodelinie, S:
+ES: l@'{@dotless{i}}nea, I: linea, F: ligne, D: Linie, Notenlinie, NL: lijn, DK: nodelinie, S:
 notlinje, N: .
 
 @w{@ar{}@strong{staff}}
@@ -1532,7 +1535,7 @@ by 16 @w{@ar{}@strong{cent}}s. Due to the non-circular character of this
 tuning keyboard instruments for performance of pre-1650 music.
 
 @item measure, bar
-ES: compás, I: misura, battuta, F: mesure, D: Takt, NL: maat, DK: takt, S: takt, N: takt.
+ES: comp@'as, I: misura, battuta, F: mesure, D: Takt, NL: maat, DK: takt, S: takt, N: takt.
 
 A group of @w{@ar{}@strong{beat}}s (units of musical time) the first of which
 bears an accent. Such groups in numbers of two or more recur consistently
@@ -1553,7 +1556,7 @@ harmony}} @w{@ar{}@strong{relative key}}.
 @w{@ar{}@strong{cadenza}}
 
 @item meter, time
-ES: compás, I: tempo, metro, F: indication de m@'esure, D: Taktart, Metrum, NL: maatsoort, DK: taktart,
+ES: comp@'as, I: tempo, metro, F: indication de m@'esure, D: Taktart, Metrum, NL: maatsoort, DK: taktart,
 S: taktart, N: .
 
 The basic scheme of @ar{}@w{}@strong{note value}s and @ar{}@w{}@strong{accent}s
@@ -1590,14 +1593,14 @@ one speaks of @emph{duple} (2/2, 2/4, 2/8), @emph{triple} (3/2, 3/4, 3/8) or
 @end lilypond
 
 @item metronome
-ES: metrónomo, I: metronomo, F: m@'etronome, D: Metronom, NL: metronoom, 
+ES: metr@'onomo, I: metronomo, F: m@'etronome, D: Metronom, NL: metronoom, 
 DK:@w{ }me@-tro@-nom, S:@w{ }me@-tro@-nom, N: metronom.
 
 Device indicating the exact tempo of a piece. @w{@ar{}@strong{metronomic
 indication}}
 
 @item metronomic indication
-ES: indicación metronómica, I: indicazione metronomica, F: indication m@'etronomique, D: Metronomangabe,
+ES: indicaci@'on metron@'omica, I: indicazione metronomica, F: indication m@'etronomique, D: Metronomangabe,
 NL: metronoom aanduiding, DK: metronomtal, S: metronomangivelse, N: .
 
 Exact tempo indication (in beats per minute).  Also denoted by
@@ -1645,7 +1648,7 @@ ES: modo, I: modo, F: mode, D: Modus, NL: modus, DK: skala, S: modus, skala, N:
 @w{@ar{}@strong{church mode}} @w{@ar{}@strong{diatonic scale}}
 
 @item modulation
-ES: modulación, I: modulazione, F: modulation, D: Modulation, NL: modulatie, DK: modulation,
+ES: modulaci@'on, I: modulazione, F: modulation, D: Modulation, NL: modulatie, DK: modulation,
 S: modulering, N: .
 
 Moving from one @w{@ar{}@strong{key}} to another. For example the second
@@ -1882,7 +1885,7 @@ or voice. 2. in contrapuntal music @w{@ar{}@strong{counterpoint}} the single
 melodic line of the contrapuntal web.
 
 @item percussion
-ES: percusión, I: percussioni, F: percussion, D: Schlagzeug, NL: slagwerk, DK: slagt@o{}j, S:
+ES: percusi@'on, I: percussioni, F: percussion, D: Schlagzeug, NL: slagwerk, DK: slagt@o{}j, S:
 slagverk, N: .
 
 A family of musical instruments which are played on by striking or
@@ -1927,7 +1930,7 @@ pizzicato, S: pizzicato.
 Play by plucking the strings.
 
 @item polyphony
-ES: polifonía, I: polifonia, F: polyphonie, D: Polyphonie, NL: polyfonie, DK: polyfoni, S:
+ES: polifon@'{@dotless{i}}a, I: polifonia, F: polyphonie, D: Polyphonie, NL: polyfonie, DK: polyfoni, S:
 polyfoni, N: .
 
 Music written in a combination of several simultaneous voices (parts) of a
@@ -1944,7 +1947,7 @@ Very quick, i.e. quicker than @w{@ar{}@strong{allegro}}. @emph{prestissimo}
 denotes the highest possible degree of speed.
 
 @item Pythagorean comma
-ES: coma pitagórico, 
+ES: coma pitag@'orico, 
 I: comma pitagorico, F: comma pythagoricien, D: Pythagor@"aisches Komma, NL:
 komma van Pythagoras, DK: pythagor@ae{}isk komma, S: pytagoreiskt komma, N: .
 
@@ -2005,7 +2008,7 @@ the same @w{@ar{}@strong{signature}}.
 @end lilypond
 
 @item repeat
-ES: barra de repetición, I: ritornello, F: barre de reprise, D: Wiederholung, NL: herhaling, DK:
+ES: barra de repetici@'on, I: ritornello, F: barre de reprise, D: Wiederholung, NL: herhaling, DK:
 gen@-ta@-gel@-se, S: repris, N: .
 
 @
@@ -2113,7 +2116,7 @@ semitones. @w{@ar{}@strong{interval}} @w{@ar{}@strong{chromatic scale}}
 @end lilypond
 
 @item seventh
-ES: séptima, I: settima, F: septi@`eme, D: Septime, NL: septiem, DK: septim, S: septim, N: .
+ES: s@'eptima, I: settima, F: septi@`eme, D: Septime, NL: septiem, DK: septim, S: septim, N: .
 
 @w{@ar{}@strong{interval}}
 
@@ -2304,13 +2307,13 @@ superdominant, S: superdominant, N: .
 The sixth @w{@ar{}@strong{scale degree}} 
 
 @item supertonic
-ES: supertónica, I: sopratonica, F: sus-tonique, D: Supertonika, NL: supertonica, DK:
+ES: supert@'onica, I: sopratonica, F: sus-tonique, D: Supertonika, NL: supertonica, DK:
 supertonika, S: supertonika, N: .
 
 The second @w{@ar{}@strong{scale degree}}.
 
 @item symphony
-ES: sinfonía, I: sinfonia, F: symphonie, D: Sinfonie, NL: symfonie, DK: symfoni, S: symfoni,
+ES: sinfon@'{@dotless{i}}a, I: sinfonia, F: symphonie, D: Sinfonie, NL: symfonie, DK: symfoni, S: symfoni,
 N: .
 
 A symphony may be defined as a @w{@ar{}@strong{sonata}} for orchestra.
@@ -2361,7 +2364,7 @@ intervals. @w{@ar{}@strong{meantone temperament}} @w{@ar{}@strong{equal
 temperament}}
 
 @item tempo indication
-ES: indicación de tempo, I: indicazione di tempo, F: indication de temps, D: Zeitma@ss{},
+ES: indicaci@'on de tempo, I: indicazione di tempo, F: indication de temps, D: Zeitma@ss{},
 Tempobezeichnung, NL: tempo aanduiding, DK: tempobetegelse, S:
 tempobeteckning, N: .
 
@@ -2376,7 +2379,7 @@ ES: tenor, I: tenore, F: t@'enor, D: Tenor, NL: tenor, DK: tenor, S: tenor, N: .
 The highest voice of men (apart from @w{@ar{}@strong{counter tenor}})
  
 @item tenth
-ES: décima, I: decima, F: dixi@`eme, D: Dezime, NL: deciem, DK: decim, S: decima, N: .
+ES: d@'ecima, I: decima, F: dixi@`eme, D: Dezime, NL: deciem, DK: decim, S: decima, N: .
 
 @w{@ar{}@strong{note value}}
 
@@ -2442,7 +2445,7 @@ with figures designating the chief @w{@ar{}@strong{interval}}s and
 @end lilypond
 
 @item tie; bind
-ES: ligadura de prolongación, 
+ES: ligadura de prolongaci@'on, 
 I: legatura (di valore), F: liaison, D: Haltebogen, NL: overbinding, DK:
 bindebue, S: bindeb@aa{}ge, @"overbindning, N: .
 
@@ -2459,7 +2462,7 @@ uniting them into a single sound equal to the combined durations.
 
 @item time signature
 
-ES: cifra indicadora de compás, 
+ES: cifra indicadora de comp@'as, 
 I: segni di tempo, F: chiffrage (chiffres indicateurs), signe de valeur,  D:
 Taktangabe, Angabe der Taktart, NL: maatsoort, DK: taktangivelse, S:
 taktartssignatur, N: .
@@ -2479,7 +2482,7 @@ ES: tonica, I: tonica, F: tonique, D: Tonika, NL: tonica, DK: tonika, S: tonika,
 The first @w{@ar{}@strong{scale degree}}@w{@ar{}@strong{functional harmony}}
 
 @item transposition
-ES: transposición, I: trasposizione, F: transposition, D: Transposition, NL: transpositie, DK:
+ES: transposici@'on, I: trasposizione, F: transposition, D: Transposition, NL: transpositie, DK:
 transposition, S: transponering, N: .
 
 Shifting a melody up or down in pitch, while keeping the same relative pitches.
@@ -2528,7 +2531,7 @@ a @w{@ar{}@strong{chord}}, usually in the distance of a third
 @end lilypond
 
 @item triad
-ES: tríada, I: triade, F: triade, accord parfait, accord de trois sons, D: Dreiklang, NL:
+ES: tr@'{@dotless{i}}ada, I: triade, F: triade, accord parfait, accord de trois sons, D: Dreiklang, NL:
 drieklank, DK: treklang, S: treklang, N:
 
 @w{@ar{}@strong{chord}}
@@ -2541,7 +2544,7 @@ triller, DK:@w{ }trille, S:@w{ }drill, N:@w{ }.
 @w{@ar{}@strong{ornament}}
 
 @item triple meter
-ES: compás compuesto , I: tempo ternario, F: mesure ternaire, D: dreiteiliger Takt, NL: driedelige
+ES: comp@'as compuesto , I: tempo ternario, F: mesure ternaire, D: dreiteiliger Takt, NL: driedelige
 maatsoort, DK: tredelt takt, S: tretakt, N: .
 
 @w{@ar{}@strong{meter}}
@@ -2552,13 +2555,13 @@ ES: tresillo, I: terzina, F: triolet,  D: Triole, NL: triool, DK: triol, S: trio
 @w{@ar{}@strong{note value}}
 
 @item tritone
-ES: trítono, I: tritono, F: triton, D: Tritonus, NL: tritoon, DK: tritonus, S: tritonus, N:
+ES: tr@'{@dotless{i}}tono, I: tritono, F: triton, D: Tritonus, NL: tritoon, DK: tritonus, S: tritonus, N:
 .
 
 @w{@ar{}@strong{interval}}
 
 @item tuning fork
-ES: diapasón, I: diapason, corista, F: diapason, D: Stimmgabel, NL: stemvork, DK:
+ES: diapas@'on, I: diapason, corista, F: diapason, D: Stimmgabel, NL: stemvork, DK:
 stemmegaffel, S: st@"amgaffel, N: .
 
 A two-pronged piece of steel used to indicate absolute pitch. Tuning forks
@@ -2570,7 +2573,7 @@ I: gruppetto, F: grupetto, D: Doppelschlag, NL: dubbelslag, DK: dobbeltslag,
 S: dubbelslag, N: .
 
 @item unison
-ES: unísono, I: unisono, F: unisson, D: Unison, unisono, NL: unisono, DK: unison, S:
+ES: un@'{@dotless{i}}sono, I: unisono, F: unisson, D: Unison, unisono, NL: unisono, DK: unison, S:
 unison, N: .
 
 Playing of the same notes or the same melody by various instruments (voices)
@@ -2578,7 +2581,7 @@ or by the whole orchestra (choir), either at exactly the same pitch or in a
 different octave.
 
 @item upbeat
-ES: entrada anacrúsica, I: anacrusi, F: anacrouse, lev@'ee, D: Auftakt, NL: opmaat, DK: optakt, S:
+ES: entrada anacr@'usica, I: anacrusi, F: anacrouse,  lev@'ee, D: Auftakt, NL: opmaat, DK: optakt, S:
 upptakt, N:
 
 Initial note(s) of a melody occurring before the first bar
@@ -2603,7 +2606,7 @@ ES: voz, I: voce, F: voix, D: Stimme, NL: stem, DK: stemme, S: st@"amma, N: ,
 of a polyphonic composition.
 
 @item weak beat
-ES: tiempo débil, I: tempo debole, arsi, F: temps faible, D: unbetonter Taktteil oder -schlag,
+ES: tiempo d@'ebil, I: tempo debole, arsi, F: temps faible, D: unbetonter Taktteil oder -schlag,
 NL: arsis, DK: ubetonet taktslag, S: obetonat taktslag, N: .
 
 @w{@ar{}@strong{beat}} @w{@ar{}@strong{measure}} @w{@ar{}@strong{rhythm}}
index 84b04293346f885bd7efe6bb20bb8adfadb53d53..053bd3e0487a55a5cd6b7506e246cfd7cfb442dd 100644 (file)
@@ -34,7 +34,7 @@ which use them to build @code{Grob}s (or MIDI objects, for MIDI output).
 
 In this stage @code{Music_iterators} do a traversal of the @code{Music}
 structure. The music events thus encountered are reported to
-@code{Translator}s, a set objects that collectively form interpretation
+@code{Translator}s, a set of objects that collectively form interpretation
 contexts.
 
 
@@ -59,10 +59,10 @@ The lines and horizontal positions of the columns are determined.
 @item Breaking
 
 Relations between all grobs are modified to reflect line breaks: When a
-spanner, eg. a slur, crosses a line-break, then the spanner is "broken
+spanner, e.g. a slur, crosses a line-break, then the spanner is "broken
 into pieces", for every line that the spanner is in, a copy of the grob
 is made. A substitution process redirects all grob-reference so that
-spanner grob will only reference other grobs in the same line.
+each spanner grob will only reference other grobs in the same line.
 
 @item Outputting:
 
@@ -89,17 +89,24 @@ section.
 * Miscellaneous Scheme functions::  
 @end menu
 
+@ignore
+  Why not use Scheme syntax for the functions below, such as
+  (ly-input-location? obj) and (ly-get-mus-property m sym) ?
+
+  /MB
+@end ignore
+
 @node Input location
-@section input location
+@section Input location
 
-The parser generates
+@c The parser generates
 
-Input location objects point to a lcoation in the input file. This
+Input location objects point to a location in the input file. This
 location is used to generate error messages and to enable the point and
 click output.
 
-@defun ly-input-location?
-Type predicate
+@defun ly-input-location? obj
+Type predicate, return true if @var{obj} is an input location.
 @end defun
 
 
@@ -111,7 +118,8 @@ Type predicate
 Moment is a rational number. Since GUILE doesn't support them natively,
 so we created our own rational data type.
 
-@defun moment?
+@defun moment? obj
+Type predicate, return true if @var{obj} is a moment.
 @end defun
 
 @defun make-moment num den
@@ -134,8 +142,8 @@ note, etc.  The number of dots after the note is given by
 @end defun
 
 
-@defun duration? d
-type predicate for Duration
+@defun duration? obj
+Type predicate, return true if @var{obj} is a duration.
 @end defun
 
 @node Pitch data type
@@ -193,7 +201,7 @@ interface will likely change in the near future.
 @end defun
 
 @defun music? obj
-A type predicate,  return true if @var{obj} is a music object.
+Type predicate,  return true if @var{obj} is a music object.
 @end defun
 
 @defun ly-music-name music
@@ -208,9 +216,10 @@ Music_iterator is an object type that traverses the Music structure and
 reports the events it finds to interpretation contexts. It is not yet
 user-serviceable.
 
-@defun c++-function?
-type predicate for c++-function.   Music_iterator are created from
-schemified C++ constructors. Such a constructor is a @code{c++-function}.
+@defun c++-function? obj
+Type predicate, return true if @var{obj} is a  c++-function.
+Music_iterator are created from schemified C++ constructors. Such a
+constructor is a @code{c++-function}.
 @end defun
 
 @node Translator
@@ -263,10 +272,9 @@ of the `Stem' grob with the setting @code{direction := 1}.
 
 In music notation, lots of symbols are related in some way.  You can
 think of music notation as a graph where nodes are formed by the
-symbols, and the arcs by their relations. A grob is node in that graph.
+symbols, and the arcs by their relations. A grob is node in that graph.
 The directed edges in the graph are formed by references to other grobs
 (i.e. pointers).
-
 This big graph of grobs specifies the notation problem. The solution of
 this problem is a description of the printout in closed form, i.e. a
 list of values.  These values are Molecules. (see @ref{Molecules})
@@ -284,7 +292,7 @@ automatically.
 
 If you keep following offset reference points, you will always end up at
 the root object. This root object is called @code{Line_of_score}, and it
-represents a system (ie. a line of music).
+represents a system (i.e. a line of music).
 
 All grobs carry a set of grob-properties.  In the Stem example above,
 the property @code{direction} is set to value @code{1}.  The function
@@ -296,7 +304,7 @@ properties.
 A grob is often associated with a symbol, but some grobs do not print
 any symbols. They take care of grouping objects. For example, there is a
 separate grob that stacks staffs vertically. The @code{NoteCollision}
-also is an abstract grob: it only moves around chords, but doesn't print
+is also an abstract grob: it only moves around chords, but doesn't print
 anything.
 
 A complete list of grob types is found in the generated documentation.
@@ -331,7 +339,7 @@ stem is translated by two staff spaces in its direction.
 
 
 
-Offset callbacks can be stacked, ie.
+Offset callbacks can be stacked, i.e.
 
 @example
         \property .... \override #'Y-offset-callbacks = #(list
@@ -358,9 +366,9 @@ extent in that coordinate.
 @subsection Setting grob properties
 
 Grob properties are stored as GUILE association lists, with symbols as
-keys.  In GUILE you can access these using functions described @ref{Grob
-Scheme functions}.  From C++, grob properties can be accessed using
-these functions:
+keys.  In GUILE you can access these using functions described in
+Section @ref{Grob Scheme functions}.  From C++, grob properties can be
+accessed using these functions:
 
 @example
   SCM  get_grob_property (SCM) const;
@@ -373,12 +381,12 @@ these functions:
 @end example
 
 All lookup functions identify undefined properties with end-of-list
-(ie. @code{'()} in Scheme or @code{SCM_EOL} in C)
+(i.e. @code{'()} in Scheme or @code{SCM_EOL} in C)
 
 Properties are stored in two ways:
 @itemize @bullet
 @item mutable properties.
-grob properties that change from object to object. The storage of
+Grob properties that change from object to object. The storage of
 these are private to a grob. For example pointers to other grobs are
 always stored in the mutable properties.
 
@@ -386,7 +394,7 @@ always stored in the mutable properties.
 Grob properties that are shared across different grobs of the same
 type. The storage is shared, and hence it is read-only. Typically, this
 is used to store function callbacks, and default settings. They are
-initially read from from @file{scm/grob-description.scm}.
+initially read from @file{scm/grob-description.scm}.
 @end itemize
 
 You can change immutable grob properties with the \override syntax:
@@ -403,8 +411,7 @@ property list for stems, in effect overriding the setting from
         \property Voice.stem \revert #'direction
 @end example
 
-If you use this a lot, this gets old quickly. So we also have a
-shorthand,
+There is also a shorthand,
 
 @example
         \property Context.GrobType \set #'prop = #VAL
@@ -420,7 +427,7 @@ looks like
 @end example
 
 In this case, in every grob that satisfies @var{pred}, the grob property
- @var{sym} is set to @var{val} is done.  For example
+ @var{sym} is set to @var{val}.  For example
 
 @example
         \outputproperty
@@ -437,7 +444,7 @@ you tweak any setting of any grob.
 @node Grob interfaces
 @unnumberedsubsec Grob interfaces
 
-Grob properties form a namespace where you can set variables per
+Grob properties form a name space where you can set variables per
 object.  Each object however, may have multiple functions. For example,
 consider a dynamic symbol, such @code{\ff} (fortissimo). It is printed
 above or below the staff, it is a dynamic sign, and it is a kind of
@@ -473,7 +480,7 @@ to stack text into lines, using kerning, etc.
 @unnumberedsubsec Items and Spanners
 
 Grobs can also be distinguished in their role in the horizontal spacing.
-A lot of grobs define constraints on the spacing by their sizes. For
+Many grobs define constraints on the spacing by their sizes. For
 example, note heads, clefs, stems, and all other symbols with a fixed
 shape.  These grobs form a subtype called @code{Item}.
 
@@ -484,7 +491,7 @@ example, slur, beam, tie, etc. These grobs form a subtype called
 also the X-reference point of the spanner.
 
 Some items need special treatment for line breaking. For example, a
-clef is normally only printed at the start of a line (ie. after a line
+clef is normally only printed at the start of a line (i.e. after a line
 break).  To model this, `breakable' items (clef, key signature, bar lines,
 etc.) are copied twice. Then we have three versions of each breakable
 item: one version if there is no line break, one version that is printed
@@ -565,7 +572,7 @@ If you are interested in seeing how this information is stored, you
 can run with the @code{-f scm} option. The scheme expressions are then
 dumped in the output file.
 
-All visible, i.e. non-transparant, grobs have a callback to create a
+All visible, i.e. non-transparent, grobs have a callback to create a
 Molecule. The name of the property is @code{molecule-callback}, and its
 value should be a Scheme function taking one argument (the grob) and
 returning a Molecule.  Most molecule callbacks are written in C++, but
@@ -608,7 +615,7 @@ LilyPond only needs to know the dimension of glyph to be able to process
 them. This information is stored in font metric files. LilyPond can read
 two types of font-metrics: @TeX{} Font Metric files (TFM files) and
 Adobe Font Metric files (AFM files).  LilyPond will always try to load
-AFM files first they files are more versatile.
+AFM files first since they are more versatile.
 
 @defun ly-get-default-font gr
 This returns the default font for grob @var{gr}.
@@ -641,7 +648,8 @@ file is looked up using the lilypond search path.
 @end defun
 
 @defun dir?
-type predicate. A direction is a -1, 0 or 1.
+type predicate. A direction is a -1, 0 or 1, where -1 represents left or
+down and 1 represents right or up.
 @end defun
 
 @defun ly-number->string num
index 022a4c8368759039dd24b1d310e87523fff1d920..68a861072a96014963980897cec15552226966cf 100644 (file)
@@ -26,16 +26,16 @@ c d e
 
 \begin{lilypond}
 \header {
-  title =      "Title";
-  subtitle =   "Subtitle";
-  subsubtitle =        "Subsubtitle";
-  opus =  "Opus 1";
-  piece = "Piece";
-  composer =    "Composer";
-  enteredby =   "JCN";
-  instrument = "instrument";
+  title =      "Title"
+  subtitle =   "Subtitle"
+  subsubtitle =        "Subsubtitle"
+  opus =  "Opus 1"
+  piece = "Piece"
+  composer =    "Composer"
+  enteredby =   "JCN"
+  instrument = "instrument"
 }
-\paper { linewidth = -1.; }
+\paper { linewidth = -1. }
 \score {
   \notes \relative c'' { a b c d }
 }
index 6bdddfb0c49ce463304dc62284fe7cefa7765a0e..bc6970952489d95c87cc287175da54155589ad9b 100644 (file)
@@ -1,3 +1,5 @@
+@c -*-texinfo-*-
+
 @node lilypond-book
 @chapter  lilypond-book
 
@@ -25,7 +27,7 @@ you get a document that mixes text and music.  lilypond-book will insert
 line width and font size definitions before @code{CONTENTS}, so the
 music samples will match the layout of your document.
 
-Very often, if you mix music and text, the music is often only a few
+Very often, if you mix music and text, the music is only a few
 notes or at most a few bars. This music should be as short as possible
 and not stretched to be aligned to the right margin. lilypond-book does
 this automatically if you don't use a @code{\score} block in
@@ -46,12 +48,12 @@ as follows:
 @end example
 
 In the texinfo version, bitmaps of the music are also generated, so you
-can also make a HTML document with embedded music.
+can make a HTML document with embedded music.
 
 
 @section TeXinfo reference
 
-Your markup the lilypond code like this:
+You specify the lilypond code like this:
 @example
 @@lilypond[options, go, here]
  YOUR LILYPOND CODE
@@ -61,8 +63,8 @@ Your markup the lilypond code like this:
 @end example
 
 
-@command{lilypond-book} knows the default margins, and a few papersizes.
-These commands should be in the beginning of the document:
+@command{lilypond-book} knows the default margins, and a few paper
+sizes. One of these commands should be in the beginning of the document:
 @itemize @bullet
 @item @code{@@afourpaper}
 @item @code{@@afourlatex}
@@ -97,15 +99,17 @@ and its music:
 
 @section La@TeX{} reference
 
-Your markup the lilypond code like this:
+You specify the lilypond code like this:
 @example
 \begin[option, go, here]@{lilypond@}
  YOUR LILYPOND CODE
 \end@{lilypond@}
 @end example
 
+@example
+\lilypondfile[options, go,here]@{@var{filename}@}
+@end example
 or 
-
 @example
 \lilypond@{ YOUR LILYPOND CODE @}
 @end example
@@ -148,12 +152,12 @@ and its music:
 @table @code
 @item eps
 This will create the music as eps graphics and include it into the
-document with the @code{\includegraphics} command.  It works in Latex
-only.
+document with the @code{\includegraphics} command. It works in
+La@TeX{} only.
 
 This enables you to place music examples in the running text (and not in
 a separate paragraph). To avoid that La@TeX{} places the music on a line
-of its one, there should be no empty lines between the normal text and
+of its own, there should be no empty lines between the normal text and
 the lilypond environment. For inline music, you probably also need a
 smaller music font size (eg. 11 pt or 13 pt) 
 
@@ -214,7 +218,7 @@ of the code is used.
   The opposite of @code{singleline}: justify and break lines.
 @item fragment
 @item nofragment
-    Override @command{lilypond-book} autodetection of what type of code is in the
+    Override @command{lilypond-book} auto detection of what type of code is in the
     lilypond block, voice contents or complete code.
 @item printfilename
     Prints the file name before the music example. Useful in conjunction
@@ -226,7 +230,7 @@ with @code{\lilypondfile}.
 When you run @command{lilypond-book} it will generate lots of small
 files that Lilypond will process. So to avoid all the garbage in
 your source directory, you should either change to a temporary
-directory, or use the @code{--outdir} commandline options:
+directory, or use the @code{--outdir} command line options:
 
 @code{cd out && lilypond-book ../yourfile.tex}
 
@@ -237,7 +241,7 @@ For latex input, the file to give to latex has extension @file{.latex}.
 TeXinfo input will be written to a file with extension @file{.texi}.
 
 If you use @code{--outdir}, you should also @code{cd} to that directory
-before running LaTeX or makeinfo. This may seem a little kludgy, but
+before running LaTeX or makeinfo. This may seem a little kludgey, but
 both Latex and makeinfo expect picture files (the music) to be in the
 current working directory. Moreover, if you do this, LaTeX will not
 clutter you normal working directory  with output files.
@@ -246,7 +250,7 @@ clutter you normal working directory  with output files.
 @cindex lilypond-book and titling
 @cindex \header in LaTeX documents
 
-If you want to combine music that has titling in @code{\header}
+If you want to add titling from the @code{\header} section of the
 files, you should add  the following to the top of your LaTeX
 @example
 \input titledefs.tex
@@ -261,7 +265,7 @@ files, you should add  the following to the top of your LaTeX
 
 @item @option{-f}, @option{--format=}
     Specify the document type to process, @code{latex} or @code{texi}.
-    @command{lilypond-book} usually figure out this automatically.
+    @command{lilypond-book} usually figure this out automatically.
 @item --default-music-fontsize=@var{sz}pt
     Set the fontsize to use for lilypond if no fontsize is given
     as option.
@@ -290,7 +294,7 @@ files, you should add  the following to the top of your LaTeX
 
 @item --outname=@var{FILE}
     The name of La@TeX{} file to output. If this option  is not given,
-    the output name derived from the input name.
+    the output name is derived from the input name.
 @item --outdir=@var{DIR}
          place generated files in @var{DIR}.
 @item --version
@@ -310,11 +314,11 @@ files, you should add  the following to the top of your LaTeX
   
 The La@TeX{} \includeonly@{...@} command is ignored.
 
-The TeXinfo command @code{pagesize} is on the TODO list for Lilypond 1.4.
-But changing the linewidth in other ways will not give you a straight
+The TeXinfo command @code{pagesize} is on the TODO list for Lilypond 1.4,
+but changing the linewidth in other ways will not give you a straight
 right margin.
 
-Ignores almost all La@TeX{} commands that changes margins and linewidths.
+Almost all La@TeX{} commands that change margins and line widths are ignored.
 
 Since there is no finder's fee which doubles every year, there is no
 need to wait for the prize money to grow. So send a bug report today if
index 0ca57e8064c3b7b8a22137507f732141dcf5f9c4..10753f365c262cc6271c7f9970a4a6c856134019 100644 (file)
@@ -3,7 +3,7 @@
 @node ly2dvi
 @chapter ly2dvi
 
-@file{ly2dvi} is a Python script that creates a nicely title output file
+@file{ly2dvi} is a Python script that creates a nicely titled output file
 from an input file for La@TeX{}. It can create a DVI or PS file. It
 works by running LilyPond on the input files, creating a La@TeX{}
 wrapper around the output, and running La@TeX{} (and optionally
@@ -25,7 +25,7 @@ files. The temporary directory is created in the current directory as @code{ly2d
 @item -d,--dependencies
     Write makefile dependencies for every input file.
 @item -h,--help
-    Print help.
+    Print usage help.
 @item -I,--include=@var{DIR}
     Add @var{DIR} to LilyPond's include path.
 @item -m,--no-paper
@@ -35,7 +35,7 @@ files. The temporary directory is created in the current directory as @code{ly2d
 @item -o,--output=@var{FILE}
     Generate output to @var{FILE}.  The extension of @var{FILE} is ignored.
 @item -P,--postscript
-    Also generate PostScript output.
+    Also generate PostScript output, using dvips.
 @item -s,--set=@var{KEY}=@var{VAL}
     Add @var{KEY}= @var{VAL} to the settings, overriding those specified
 in the files. Possible keys: @code{language}, @code{latexheaders},
@@ -62,13 +62,13 @@ generate titling:
 @item subtitle
     Subtitle, centered below the title.
 @item poet
-    Name of the poet, left flushed below the below subtitle.
+    Name of the poet, left flushed below the subtitle.
 @item composer
     Name of the composer, right flushed below the subtitle.
-@item metre
-    Meter string, left flushed below the below poet.
+@item meter
+    Meter string, left flushed below the poet.
 @item opus
-    Name of the opus, right flushed below the below composer.
+    Name of the opus, right flushed below the composer.
 @item arranger
     Name of the arranger, right flushed below the opus.
 @item instrument
@@ -95,9 +95,9 @@ was here, @var{version-number}''.
 
 @unnumberedsubsec Additional parameters
 
-Ly2dvi responds to several parameters specified in the LilyPond
-file. They can be overridden by supplying a @code{--set} command line
-option.
+Ly2dvi responds to several parameters specified in a @code{\paper}
+section of the LilyPond file. They can be overridden by supplying a
+@code{--set} command line option.
 
 @table @code
 @item language
@@ -111,7 +111,7 @@ included.  Default: unset.
 
         Normally read from the @code{\header} block. Default value: empty
 
-@item latexheaders
+@item latexpackages
     Specify additional La@TeX{} packages file. This works cumulative,
 so you can add multiple packages using multiple @code{-s=latexpackages} options.
        Normally read from the @code{\header} block. Default value:
@@ -124,6 +124,10 @@ so you can add multiple packages using multiple @code{-s=latexpackages} options.
     Set orientation. Choices are @code{portrait} or @code{landscape}. Is
 read from the @code{\paper} block, if set.
         
+@item textheight
+    The vertical extension of the music on the page. It is normally 
+    calculated automatically, based on the paper size.
+
 @item linewidth
         The music line width. It is normally read from the @code{\paper}
 block.
index 611537ed719338839203f2a3984b171f4dd81839..9343d80c3f392b70618bf95809414f98125b00fc 100644 (file)
@@ -105,14 +105,14 @@ $\\flat$
 @ifhtml
 @macro separate
 @html
-<p></p><center>*<font size=+1>*</font>*</center><br>
+<p></p><center>*<font size="+1">*</font>*</center><br>
 @end html
 @end macro
 @end ifhtml
 
 @c netscape 4.x doesn't handle html chars 4.0 :-(
 @c <p></p><center>&hearts;</center><br>
-@c <p></p><center><font size=-1>*</font><font size=0>*</font><font size=-1>*</font></center><br>
+@c <p></p><center><font size="-1">*</font><font size="0">*</font><font size="-1">*</font></center><br>
 
 @ignore
 
index 6bbaa275642af05de1f5b38fffddc28046703ba8..8c42c8b8e78af65666c424e0e19ce2eab47801fc 100644 (file)
 @chapter Reference Manual
 
 This document describes GNU LilyPond and its input format. The last
-revision of this document was made for LilyPond 1.3.145.  It supposes a
+revision of this document was made for LilyPond 1.4.1.  It supposes a
 passing familiarity with how LilyPond input works. New users are
 encouraged to study the tutorial first.
 
+The reference manual is ordered according to different tasks. 
+More details on the property setting mechanisms and context handling is
+provided in @ref{Tuning output} and @ref{Interpretation context}. The
+syntactical details are described at the end of the manual.
 
 @menu
 * Overview::                    
@@ -110,17 +114,44 @@ brevity we omit obligatory lint such as @code{\score} blocks and
 
 
 @menu
+* Notes::                       
 * Pitches::                     
-* Defining pitch names::        
+* Rests::                       
+* Skips::                       
 * Durations::                   
-* Notes::                       
-* Easy Notation note heads ::   
-* Tie::                         
+* Ties::                        
 * Tuplets::                     
-* Rests::                       
-* Skip::                        
+* Defining pitch names::        
+* Easy Notation note heads ::   
 @end menu
 
+@c . {Notes}
+@node Notes
+@subsection Notes
+
+A note specification has the form
+
+@example
+  @var{pitch}[!][?][@var{duration}]
+@end example
+
+The alteration refers to what note is heard, not to whether an
+accidental is printed. This is done depending on the key and context.
+A reminder accidental
+@cindex reminder accidental
+@cindex @code{?}
+can be forced by adding an exclamation mark @code{!} after the pitch.  A
+cautionary accidental,
+@cindex cautionary accidental
+@cindex parenthesized accidental
+i.e., an accidental within parentheses can be obtained by adding the
+question mark `@code{?}' after the pitch.
+
+@lilypond[fragment,verbatim,center]
+  cis' d' e' cis'  c'? d' e' c'!
+@end lilypond
+
+
 @c .  {Pitches}
 @node Pitches
 @subsection Pitches
@@ -148,7 +179,7 @@ middle C and the letters span the octave above that C.
 @cindex note names, Dutch
 
 In Dutch, a sharp is formed by adding @code{-is} to the end of a pitch
-name.  A flat is formed by adding @code{-es}. Double sharps and double
+name and a flat is formed by adding @code{-es}. Double sharps and double
 flats are obtained by adding @code{-isis} or @code{-eses}.  @code{aes}
 and @code{ees} are contracted to @code{as} and @code{es} in Dutch, but
 both forms are accepted.
@@ -183,27 +214,31 @@ octave; each @code{,} lowers the pitch by an octave.
   c' c'' es' g' as' gisis' ais'  
 @end lilypond
 
-@c .  {Defining pitch names}
-@node Defining pitch names
-@subsection Defining pitch names
+@c .  {Rests}
+@node  Rests
+@subsection Rests
+@cindex Rests
 
-@cindex defining pitch names
-@cindex pitch names, defining 
+Rests are entered like notes, with note name `@code{r}'. The grob is
+@code{Rest}. Whole bar rests centered in the bar are specified using
+@code{R}, see @ref{Multi measure rests}.
 
-Note names and chord modifiers can be customized for nationalities.  The
-syntax is as follows.
 
-@cindex @code{\pitchnames}
-@cindex @code{\chordmodifiers}
-@example
-   \pitchnames @var{scheme-alist}
-   \chordmodifiers @var{scheme-alist}
-@end example
+@c .  {Skips}
+@node Skips
+@subsection Skips
+@cindex Skip
 
-See @file{ly/nederlands.ly} and @file{ly/chord-modifiers.ly} for
-specific examples how to do this.
 
+@example
+  \skip @var{duration} 
+  s@var{duration}
+@end example
+@cindex @code{\skip}
 
+Skips the amount of time specified by @var{duration}.  If no other music
+is played, a gap will be left for the skipped time without any notes
+printed.  The shorthand is only available in Note and Chord mode.
 
 @c .  {Durations}
 @node Durations
@@ -255,7 +290,9 @@ r1 r2 r4 r8 r16 r32 r64 r64
 
  To get a longa note head, you have to use mensural note heads. This
 is accomplished by setting the @code{style} property of the
-NoteHead grob to @code{mensural}.
+NoteHead grob to @code{mensural}. There is also a note head style
+@code{baroque} which gives mensural note heads for @code{\longa} and
+@code{\breve} but standard note heads for shorter notes.
 
 @lilypond[fragment,singleline,verbatim]
  \property Voice.NoteHead \set #'style = #'mensural
@@ -278,66 +315,11 @@ You can alter the length of duration by a fraction @var{N/M} by
 appending `@code{*}@var{N/M}' (or `@code{*}@var{N}' if @var{M=1}). This
 will not affect the appearance of the notes or rests produced.
 
-@c . {Notes}
-@node Notes
-@subsection Notes
-
-A note specification has the form
-
-@example
-  @var{pitch}[!][?][@var{duration}]
-@end example
-
-The alteration refers to what note is heard, not to whether an
-accidental is printed. This is done depending on the key and context.
-A reminder accidental
-@cindex reminder accidental
-@cindex @code{?}
-can be forced by adding an exclamation mark @code{!} after the pitch.  A
-cautionary accidental,
-@cindex cautionary accidental
-@cindex parenthesized accidental
-i.e., an accidental within parentheses can be obtained by adding the
-question mark `@code{?}' after the pitch.
-
-@lilypond[fragment,verbatim,center]
-  cis' d' e' cis'  c'? d' e' c'!
-@end lilypond
-
-
-@node Easy Notation note heads 
-@subsection Easy Notation note heads
-
-@cindex easy notation
-@cindex Hal Leonard
-
-A entirely different type of note head is the "easyplay" note head: a
-note head that includes a note name.  It is used in some publications by
-Hal-Leonard Inc.  music publishers.
-
-@lilypond[singleline,verbatim]
-\include "paper23.ly"
-\score {
-        \notes { c'2 e'4 f' | g'1 }
-        \paper { \translator { \EasyNotation } } 
-}
-@end lilypond
-
-Note that @code{EasyNotation} overrides a @code{Score} context.  You
-probably will want to print it with magnification to make it better
-readable, see @ref{Output scaling}.
-
-
-@cindex Xdvi
-@cindex ghostscript
 
-If you view the result with Xdvi, then staff lines will show through the
-letters.  Printing the postscript file obtained either by using dvips or
-the @code{-f ps} option of lilypond produces the correct result.
 
 
-@node Tie
-@subsection Tie
+@node Ties
+@subsection Ties
 
 @cindex Tie
 @cindex ties
@@ -366,7 +348,7 @@ to the augmentation dot: the following example are two ways of notating
 exactly the same concept.
 @c
 @lilypond[fragment, singleline]
-c'2 c'4 ~ c'4
+\time 3/4 c'2. c'2 ~ c'4
 @end lilypond
 
 The name of the tie grob is  @code{Voice.Tie}.
@@ -389,7 +371,7 @@ context and turning on and off ties per Thread.
 @cindex triplets
 @cindex @code{\times}
 
-Tuplets are made out of a music expression by multiplying their duration
+Tuplets are made out of a music expression by multiplying all duration
 with a fraction.
 
 @cindex @code{\times}
@@ -419,39 +401,80 @@ should last.  With this, you can make lots of tuplets while typing
 The format of the number is determined by the property
 @code{tupletNumberFormatFunction}. The default prints only the
 denominator, but if you set it to the Scheme function
-@code{fraction-tuplet-formatter} will print @var{num}:@var{den} instead.
+@code{fraction-tuplet-formatter}, Lilypond will print @var{num}:@var{den}
+instead.
+
+The typesetting of brackets and numbers is controlled by the properties
+@code{tuplet-bracket-visibility} and @code{tuplet-number-visibility}. 
+
+@lilypond[fragment,  relative, singleline, verbatim]
+\property Voice.TupletBracket \set #'tuplet-bracket-visibility = ##t
+\times 2/3{c'8 d e} \times 2/3{d4 e8} 
+\property Voice.TupletBracket \set #'tuplet-bracket-visibility = #'if-no-beam
+\times 2/3{c d e} \times 2/3{d4 e8} 
+\property Voice.TupletBracket \set #'tuplet-bracket-visibility = ##f
+\times 2/3{c d e} \times 2/3{d4 e8}
+\property Voice.TupletBracket \set #'tuplet-number-visibility = ##f
+\times 2/3{c d e} \times 2/3{d4 e8}
+\property Voice.TupletBracket \set #'tuplet-number-visibility = #'if-no-beam
+\times 2/3{c d e} \times 2/3{d4 e8}
+@end lilypond
 
 @cindex @code{tupletNumberFormatFunction}
 @cindex tuplet formatting 
 
 Tuplet brackets are printed as @code{TupletBracket} grobs
 
+@c .  {Defining pitch names}
+@node Defining pitch names
+@subsection Defining pitch names
 
-@c .  {Rests}
-@node  Rests
-@subsection Rests
-@cindex Rests
+@cindex defining pitch names
+@cindex pitch names, defining 
 
-Rests are entered like notes, with note name `@code{r}'. The grob is
-@code{Rest}. Whole bar rests centered in the bar are specified using
-@code{R}, see @ref{Multi measure rests}.
+Note names and chord modifiers can be customized for nationalities.  The
+syntax is as follows.
 
+@cindex @code{\pitchnames}
+@cindex @code{\chordmodifiers}
+@example
+   \pitchnames @var{scheme-alist}
+   \chordmodifiers @var{scheme-alist}
+@end example
 
-@c .  {Skip}
-@node Skip
-@subsection Skip
-@cindex Skip
+See @file{ly/nederlands.ly} and @file{ly/chord-modifiers.ly} for
+specific examples on how to do this.
 
 
-@example
-  \skip @var{duration} 
-  s@var{duration}
-@end example
-@cindex @code{\skip}
+@node Easy Notation note heads 
+@subsection Easy Notation note heads
 
-Skips the amount of time specified by @var{duration}.  If no other music
-is played, a gap will be left for the skipped time without any notes
-printed.  The shorthand is only available in Note and Chord mode.
+@cindex easy notation
+@cindex Hal Leonard
+
+A entirely different type of note head is the "easyplay" note head: a
+note head that includes a note name.  It is used in some publications by
+Hal-Leonard Inc.  music publishers.
+
+@lilypond[singleline,verbatim]
+\include "paper23.ly"
+\score {
+        \notes { c'2 e'4 f' | g'1 }
+        \paper { \translator { \EasyNotation } } 
+}
+@end lilypond
+
+Note that @code{EasyNotation} overrides a @code{Score} context.  You
+probably will want to print it with magnification to make it more
+readable, see @ref{Output scaling}.
+
+
+@cindex Xdvi
+@cindex ghostscript
+
+If you view the result with Xdvi, then staff lines will show through the
+letters.  Printing the postscript file obtained either by using dvips or
+the @code{-f ps} option of lilypond produces the correct result.
 
 
 
@@ -528,25 +551,26 @@ Any change in these properties creates a clef (a @code{Clef} grob).
 
 Supported clef-names include 
 
+@c Moved standard clefs to the top /MB
 @table @code
 @item treble, violin, G, G2
 G clef on 2nd line
+@item alto, C
+ C clef on 3rd line
+@item tenor
+ C clef on 4th line
+@item bass, F
+ F clef on 4th line
 @item french
- G clef on 1st line
+ G clef on 1st line, so-called French violin clef
 @item soprano
  C clef on 1st line
 @item mezzosoprano
  C clef on 2nd line
-@item alto
- C clef on 3rd line
-@item tenor
- C clef on 4th line
 @item baritone
  C clef on 5th line
 @item varbaritone
  F clef on 3rd line
-@item bass, F
- F clef on 4th line
 @item subbass
  F clef on 5th line
 @item percussion
@@ -631,7 +655,7 @@ generated.
 Changing the value of @code{timeSignatureFraction} also causes a
 fraction to be printed. This grob is @code{TimeSignature}.
 
-The actual symbol that's printed can be customised with the style
+The actual symbol that's printed can be customized with the style
 property.
 @lilypond[fragment, verbatim, singleline]
 \time 3/4 s2
@@ -692,8 +716,8 @@ c2
 c4 c4 c4 
 @end lilypond
 
-The identifiers @code{\cadenzaOn} and @code{\cadenzaOff} can be used to
-achieve the same effect.
+The identifiers @code{\cadenzaOn} and @code{\cadenzaOff} can be used as
+shortcuts.
 
 
 
@@ -714,6 +738,20 @@ This is a shortcut for doing
 @example
   \property Score.whichBar = @var{bartype} 
 @end example
+The following bar types are available
+
+@lilypond[fragment,  relative, singleline, verbatim]
+c4
+\bar "|" c
+\bar "" c
+\bar "|:" c
+\bar "||" c
+\bar ":|" c
+\bar ".|" c
+\bar ".|." c
+\bar "|." 
+@end lilypond
+
 
 You are encouraged to use @code{\repeat} for repetitions.  See
 @ref{Repeats}.
@@ -733,7 +771,7 @@ a measure it is set to @code{defaultBarType}. The contents of
 @code{\bar  }.  These settings take precedence over the automatic
 @code{whichBar} settings. 
 
-@code{Bar_engraver} creates @code{BarLine} grobs.
+@code{BarLine} grobs are created by the @code{Bar_engraver}.
 
 @c .   {Polyphony}
 @node Polyphony
@@ -986,18 +1024,18 @@ horizontal, falls two staff spaces:
 @node Expressive marks
 @section Expressive marks
 
-@c .   {Slur}
+@c .   {Slurs}
 @menu
-* Slur ::                       
-* Phrasing slur::               
+* Slurs ::                      
+* Phrasing slurs::              
 * Breath marks::                
 * Tempo::                       
-* Text spanner::                
+* Text spanners::               
 @end menu
 
-@node Slur 
-@subsection Slur
-@cindex slur
+@node Slurs 
+@subsection Slurs
+@cindex slurs
 
 A slur indicates that notes are to be played bound or @emph{legato}.
 They are entered using parentheses:
@@ -1059,18 +1097,18 @@ Useful values can only be determined by trial and error.
 
 @cindex Adjusting slurs
 
-@node Phrasing slur
-@subsection Phrasing slur
+@node Phrasing slurs
+@subsection Phrasing slurs
 
-@cindex phrasing slur
-@cindex phrasing mark
+@cindex phrasing slurs
+@cindex phrasing marks
 
 A phrasing slur (or phrasing mark) connects chords and is used to
 indicate a musical sentence. It is started using @code{\(} and @code{\)}
 respectively.
 
 @lilypond[fragment,verbatim,center,relative]
-  \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 normal
@@ -1119,11 +1157,11 @@ though. Details are in @ref{Text markup}.
   
 
 
-@node Text spanner
-@subsection Text spanner
-@cindex Text spanner
+@node Text spanners
+@subsection Text spanners
+@cindex Text spanners
 
-Some textual indications, e.g. rallentando, accelerando, often extend
+Some textual indications, e.g. rallentando or accelerando, often extend
 over many measures. This is indicated by following the text with a
 dotted line.  You can create such texts using text spanners. The syntax
 is as follows:
@@ -1151,7 +1189,7 @@ An application---or rather, a hack---is to fake octavation indications.
 @section Ornaments
 @cindex Ornaments
 @menu
-* Articulation::                
+* Articulations::               
 * Text scripts::                
 * Grace notes::                 
 * Glissando ::                  
@@ -1159,9 +1197,9 @@ An application---or rather, a hack---is to fake octavation indications.
 @end menu
 
 @c .   {Articulation}
-@node Articulation
-@subsection Articulation
-@cindex Articulation
+@node Articulations
+@subsection Articulations
+@cindex Articulations
 
 @cindex articulations
 @cindex scripts
@@ -1483,7 +1521,7 @@ used to typeset two lines of lyrics in songs with repeats, see
 Make tremolo beams.
 
 @item percent
-Make  measure repeats. These look like percent signs.
+Make beat or measure repeats. These look like percent signs.
 
 @end table  
 
@@ -1491,7 +1529,7 @@ Make  measure repeats. These look like percent signs.
 * Repeat syntax::               
 * Manual repeat commands::      
 * Tremolo repeats::             
-* Tremolo subdivision::         
+* Tremolo subdivisions::        
 * Measure repeats::             
 @end menu
 
@@ -1571,6 +1609,7 @@ off explicitly, for example by doing
 @example
   \property Staff.VoltaBracket = \turnOff
 @end example
+in all but the top staff.
 
 @node Manual repeat commands
 @subsection Manual repeat commands
@@ -1629,8 +1668,8 @@ Tremolo beams are @code{Voice.Beam} grobs. Single stem tremolos are
 At present, the spacing between tremolo beams is not regular, since the
 spacing engine does not notice that not all notes are printed.
 
-@node Tremolo subdivision
-@subsection Tremolo subdivision
+@node Tremolo subdivisions
+@subsection Tremolo subdivisions
 @cindex tremolo marks
 @cindex @code{tremoloFlags}
 
@@ -1643,8 +1682,6 @@ length is omitted, then then the last value (stored in
 @lilypond[verbatim,fragment,center]
   c'2:8 c':32 | c': c': |
 @end lilypond
-Using this mechanism pays off when you enter many tremolos, since the
-default argument saves typing.
 
 @refbugs
 
@@ -1660,7 +1697,7 @@ Tremolos in this style do not carry over into the MIDI output.
 
 In the @code{percent} style, a note pattern can be repeated. It is
 printed once, and then the pattern is replaced with a special sign.
-Patterns of a one and two measures are replaced by percent signs,
+Patterns of a one and two measures are replaced by percent-like signs,
 patterns that divide the measure length are replaced by slashes.
 
 @lilypond[verbatim,singleline]
@@ -1716,7 +1753,7 @@ other pianistic peculiarities.
 * Manual staff switches::       
 * Pedals::                      
 * Arpeggio::                    
-* Voice follower line::         
+* Voice follower lines::        
 @end menu 
 
 
@@ -1845,8 +1882,8 @@ at the same time.
 
 
 
-@node  Voice follower line
-@subsection Voice follower line
+@node  Voice follower lines
+@subsection Voice follower lines
 
 @cindex follow voice
 @cindex staff switching
@@ -1911,7 +1948,7 @@ Spaces can be introduced into a lyric either by using quotes:
 @code{He_could4 not4}.  All unquoted underscores are converted to
 spaces.
 
-The precise definition of this mode is in @ref{Lyrics mode
+The precise definition of this mode can be found in @ref{Lyrics mode
 definition}. 
 
 @c .  {Printing lyrics}
@@ -1921,6 +1958,8 @@ definition}.
 
 Lyrics are printed by interpreting them in the @code{Lyrics}  context.
 
+@c Maybe more pedagogical to avoid \addlyrics in this first example? /MB
+
 @lilypond[verbatim,singleline]
 \addlyrics \notes \relative c' {
         \time 7/4
@@ -2243,8 +2282,8 @@ scheme = \notes {
 
 You can make the chord changes stand out by setting
 @code{ChordNames.chordChanges} to true.  This will only display chord
-names when there's a change in the chords scheme and at the start of the
-line.
+names when there's a change in the chords scheme and at the start of a
+new line.
 
 @lilypond[verbatim]
 scheme = \chords {
@@ -2451,7 +2490,8 @@ effect music that appears inside a @code{\transpose}.
 @node Sound output for transposing instruments
 @subsection Sound output transposing instruments
 
-When you want to play a score containing transposed and untransposed
+When you want to make a MIDI file from a score containing transposed and
+untransposed 
 instruments, you have to instruct LilyPond the pitch offset (in
 semitones) for the transposed instruments. This is done using the
 @code{transposing} property. It does not affect printed output.
@@ -2463,7 +2503,6 @@ semitones) for the transposed instruments. This is done using the
         \property Staff.transposing = #-2
 @end example
 
-
 @c .  {Multi measure rests}
 @node  Multi measure rests
 @subsection Multi measure rests
@@ -2490,8 +2529,8 @@ measure.
 
 @refbugs
 
-Currently, there is no way to condense multiple rests into a single
-multimeasure rest.
+Currently, there is no way to automatically condense multiple rests into
+a single multimeasure rest.
 
 @cindex condensing rests
 
@@ -2588,7 +2627,7 @@ measure.
 @node Hara kiri staffs
 @subsection Hara kiri staffs
 
-In orchestral scores, staffs that only have rests are usually removed.
+In orchestral scores, staff lines that only have rests are usually removed.
 This saves some space.  LilyPond also supports this through the hara
 kiri@footnote{Hara kiri, also called Seppuku, is the ritual suicide of
 the Japanese Samourai warriors.} staff. This staff commits suicide when
@@ -2642,7 +2681,7 @@ performance, thus enhancing readability of a score.
 }
 @end lilypond
 
-Custodes were frequently used in music notation until the 16th century.
+Custodes were frequently used in music notation until the 17th century.
 There were different appearances for different notation styles.
 Nowadays, they have survived only in special forms of musical notation
 such as via the @emph{editio vaticana} dating back to the beginning of
@@ -2721,7 +2760,7 @@ c'4 \property Voice.Stem  = #'((meta . ((interfaces . ())))) c'4
 @end lilypond
 
 The @code{\property} assignment effectively empties the definition of
-the Stem object. One of the effects is the recipe of how it should be
+the Stem object. One of the effects is that the recipe of how it should be
 printed is erased, with the effect of rendering it invisible.  The above
 assignment is available as a standard identifier, for the case that you
 find this useful:
@@ -2899,8 +2938,8 @@ the syntax and semantics are up for rewrite.
 @subsection What to tune?
 
 This all tells you how to tune grobs, but you don't know what variables
-to set? The question is not answered in this manual (although you may
-encounter some examples.).
+to set? The question is not answered in this part of the manual
+(although you may encounter some examples.).
 
 Grob properties are tied directly to the implementation of LilyPond, and
 they are thus a moving target. Documentation of such variables is in the
@@ -2949,13 +2988,14 @@ properties:
 signs) and @code{typewriter}
 
 @item font-shape
-  A symbol indicating the shape of the font, a finer gradation than
-  font-family. Choices are @code{italic}, @code{caps} and @code{upright}
+  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 font-series
-A  symbol indicating the series of the font.  @code{font-series} form a
-finer gradation
-  than @code{font-shape}. Choices are @code{medium} and @code{bold}.
+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}. 
 
 @item font-relative-size
   A number indicating the size relative the standard size.  For example,
@@ -3045,9 +3085,9 @@ text: string | (head? text+)
 head: markup | (markup+)
 markup-item: property | abbrev
 property: (@var{key} . @var{value})
-abbrev: @code{columns lines roman music bold italic named super sub
-overstrike text}
-        @code{finger volta timesig mmrest mark script large Large dynamic}
+abbrev: @code{columns lines roman music bold italic named super sub}
+        @code{overstrike text finger volta timesig mmrest mark script}
+        @code{large Large dynamic}
 @end example
 
 The markup is broken down and converted into a list of grob properties,
@@ -3166,12 +3206,27 @@ unblanknotes = {
     a b c b \blanknotes c \unblanknotes d
   }
 }
-@end lilypond                
+@end lilypond
+This method makes the grobs invisible but they still take the normal space. 
+To remove all traces of the grob, you can redefine the function
+typesetting them:
+@lilypond[verbatim]
+\score {
+  \notes\relative c'' {
+    \key c \minor
+    \time 6/4
+    as bes c bes c d \break
+    \property Staff.KeySignature \override #'molecule-callback = #'()
+    as bes c bes c d 
+  }
+  \paper{linewidth=5.0\cm indent=0}
+}
+@end lilypond
 
-A very rigorous way of removing grobs from the output is to remove the
-engraver that creates them. For example,
+A very rigorous way of removing grobs from the whole score is to remove
+the engraver that creates them. For example,
 
-@lilypond[verbatim]
+@lilypond[singleline,verbatim]
 \score {\notes { c'4 d'8 e'8 g2 }
   \paper { \translator {
      \VoiceContext
@@ -3180,13 +3235,12 @@ engraver that creates them. For example,
 }
 @end lilypond
 
-
 @node Dirty tricks
 @subsection Dirty tricks
 @cindex embedded tex
 
 It is possible to use @TeX{} commands in the strings, but this should be
-avoided because this makes it impossible for LilyPond to compute the
+avoided because it makes it impossible for LilyPond to compute the
 exact length of the string, which may lead to collisions.  Also, @TeX{}
 commands won't work with direct PostScript output (see @ref{PostScript
 output}).
@@ -3304,8 +3358,8 @@ produces a single line.
 @cindex @code{interscoreline}
 
   @item @code{interscoreline}  
-    Sets the spacing between systems.
-Not set by default.
+    Sets the spacing between systems. The default is 16pt.
+    
 @cindex @code{interscorelinefill}
 
   @item @code{interscorelinefill}  
@@ -3482,7 +3536,7 @@ used to generate the .dvi for you.
 
 @refbugs
 
-Titling is not generated.
+Titling is not generated unless you use @file{ly2dvi}. 
 
 
 @node PostScript output
@@ -3536,7 +3590,7 @@ In the typesetting stage, LilyPond builds a page description, which is
 then written to disk in postscript, @TeX{} or ASCII art. Before it is
 written, the page description is represented as Scheme expressions.  You
 can also dump these  Scheme expressions to a file, which may be
-convenient for debugging output routines.  This done with the Scheme
+convenient for debugging output routines.  This is done with the Scheme
 output format
 
 @example
@@ -3612,10 +3666,10 @@ The ASCII Art fonts are far from complete and not very well designed.
 It's easy to change the glyphs, though; if you think you can do better,
 have a look at @file{mf/*.af}.
 
-Lots of resizable symbols such as slurs, ties, tuplets are missing.
+Lots of resizable symbols such as slurs, ties and tuplets are missing.
 
 The poor looks of most ASCII Art output and its limited general
-usefulness make that ASCII Art output has a low priority; it may be
+usefulness gives ASCII Art output a low priority; it may be
 dropped in future versions.
 
 @c . {Sound}
@@ -3716,10 +3770,9 @@ number.
 * Point and click::             
 @end menu
 
-One of the applications of LilyPond is to enter music from existing
-written or printed material. When you're doing this kind of copying
-work, you can easily make mistakes.  This section deals with tricks and
-features that help you enter music, and find and correct mistakes.
+When entering music with LilyPond, it is easy to introduce errors. This
+section deals with tricks and features that help you enter music, and
+find and correct mistakes.
 
 @c .  {Relative}
 @node Relative
@@ -3763,7 +3816,7 @@ And octave changing marks are used for intervals greater than a fourth.
 @end lilypond
 
 If the preceding item is a chord, the first note of the chord is used
-to determine the first note of the next chord.  But other notes
+to determine the first note of the next chord. However, other notes
 within the second chord are determined by looking at the immediately
 preceding note.
 
@@ -3895,7 +3948,7 @@ When you convert the @TeX{} file to PostScript using @code{dvips}, it
 will complain about not finding @code{src:X:Y} files. Those complaints
 are harmless, and can be ignored.
 
-When using @code{line-colum-location}, the cursor will be one off; it
+When using @code{line-column-location}, the cursor will be one off; it
 will not jump to the exact note that you clicked, but to the next one.
 
 [FIXME]
@@ -3935,9 +3988,9 @@ Interpretation contexts are objects that only exist during a run of
 LilyPond.  During the interpretation phase of LilyPond (when it prints
 "interpreting music"), the music expression in a @code{\score} block is
 interpreted in time order. This is the same order that humans hear and
-play music.
+play the music.
 
-During this interpretation, the interpretation context is holds the
+During this interpretation, the interpretation context holds the
 state for the current point within the music. It contains information
 like
 
@@ -3955,7 +4008,9 @@ multiple voices at any point), a @code{Staff} context is contained in
 
 Contexts associated with sheet music output are called @emph{notation
 contexts}, those for sound output are called @emph{performance
-contexts}.
+contexts}. The default definitions of the standard notation and
+performance contexts can be found in @file{ly/engraver.ly} and
+@file{ly/performer.ly}, respectively.
 
 
 @node Creating contexts
@@ -3997,7 +4052,8 @@ third quarter, @code{another} is removed.
 @node Default contexts
 @subsection Default contexts
 
-Most music expressions don't need @code{\context}: they inherit the
+Most music expressions don't need an explicit @code{\context}
+declaration: they inherit the 
 notation context from their parent. Each note is a music expression, and
 as you can see in the following example, only the sequential music
 enclosing the three notes has an explicit context. 
@@ -4009,7 +4065,7 @@ enclosing the three notes has an explicit context.
 There are some quirks that you must keep in mind when dealing with
 defaults:
 
-First, every top-level music is interpreted by the Score context, in other
+First, every top level music is interpreted by the Score context, in other
 words, you may think of @code{\score} working like
 @example
         \score @{
@@ -4017,8 +4073,8 @@ words, you may think of @code{\score} working like
         @}
 @end example
 
-Second, sequential music follows the contexts of its
-``children''. Consider the following  example.
+Second, contexts are created automatically to be able to interpret the
+music expressions. Consider the following example.
 
 @lilypond[verbatim, singleline]
 \score { \context Score \notes { c'4 (  d' )e' } }
@@ -4149,7 +4205,7 @@ command will override any predefined settings.
 
  To simplify editing translators, all standard contexts have standard
 identifiers called @var{name}@code{Context}, e.g. @code{StaffContext},
-@code{VoiceContext}.
+@code{VoiceContext}, see @file{ly/engraver.ly}.
 
 @node Defining new contexts
 @subsection Defining new contexts
@@ -4215,17 +4271,18 @@ Other modifiers   are
 End-users generally don't need this command.
     
   @item  @code{\accepts} @var{contextname}
-    Add @var{contextname} to the list of  context this context can
-    contain.  The first listed context is the context to create by
-    default.
+    Add @var{contextname} to the list of contexts this context can
+    contain in the context hierarchy. The first listed context is the
+    context to create by default.
 
   @item @code{\denies}. The opposite of @code{\accepts}. Added for
 completeness, but is never used in practice.
  
   
   @item  @code{\name} @var{contextname} 
-    This sets name of the context, e.g. @code{Staff}, @code{Voice}.  If
-    the name is not specified, the translator won't do anything.
+    This sets the type name of the context, e.g. @code{Staff},
+    @code{Voice}.  If the name is not specified, the translator won't do
+    anything. 
 @end itemize
 
 In the @code{\paper} block, it is also possible to define translator
@@ -4305,7 +4362,7 @@ supplied, the default @code{\paper} block will be added.
 @subsubsection Default output
 
 Default values for the @code{\paper} and @code{\midi} block are set by
-entering such a block at top-level.
+entering such a block at the top level.
 
 @c .   {Header}
 @subsubsection Header
@@ -4317,7 +4374,7 @@ A header describes bibliographic information of the file's contents.  It
 can also appear in a @code{\score} block.  Tools like @code{ly2dvi} can
 use this information for generating titles.  Key values that are used by
 @code{ly2dvi} are: title, subtitle, composer, opus, poet, instrument,
-metre, arranger, piece and tagline.
+meter, arranger, piece and tagline.
 
 @cindex @code{ly2dvi}
 
@@ -4331,7 +4388,7 @@ It is customary to put the @code{\header} at the top of the file.
 
 @subsubsection Default output
 
-A @code{\midi} or @code{\paper} block at top-level sets the default
+A @code{\midi} or @code{\paper} block at top level sets the default
 paper block for all scores that lack an explicit paper block.
 
 @c .  {Identifiers}
@@ -4339,9 +4396,18 @@ paper block for all scores that lack an explicit paper block.
 @subsection Identifiers
 @cindex  Identifiers
 
-All of the information in a LilyPond input file, is represented as a
-Scheme value. In addition to normal Scheme data types (such as pair,
-number, boolean, etc.), LilyPond has a number of specialized data types,
+@ignore
+ What has this section got to do with identifiers?
+ It seems more appropriate in the introduction to Chapter 4,
+ "Internals".
+
+   /MB
+@end ignore
+
+All of the information in a LilyPond input file, is internally
+represented as a Scheme value. In addition to normal Scheme data types
+(such as pair, number, boolean, etc.), LilyPond has a number of
+specialized data types,
 
 @itemize @bullet
 @item Input
@@ -4589,13 +4655,13 @@ first item in a block.
 @cindex @code{\lyrics}
 
 To simplify entering notes, lyrics, and chords, LilyPond has three
-special input modes on top of the default mode: note, lyrics and chords
-mode.  These input modes change the way that normal, unquoted words are
-interpreted: for example, the word @code{cis} may be interpreted as a
-C-sharp, as a lyric syllable `cis' or as a C-sharp major triad
-respectively.
+special input modes in addition to the default mode: note, lyrics and
+chords mode.  These input modes change the way that normal, unquoted
+words are interpreted: for example, the word @code{cis} may be
+interpreted as a C-sharp, as a lyric syllable `cis' or as a C-sharp
+major triad respectively.
 
-A mode switch is entered as a compound music expressions
+A mode switch is entered as a compound music expression
 @example
 @code{\notes} @var{musicexpr}
 @code{\chords} @var{musicexpr}
@@ -4696,7 +4762,7 @@ They cannot be nested.
 
 
 LilyPond contains a Scheme interpreter (the GUILE library) for
-internal use. In some places Scheme expressions also form valid syntax:
+internal use. In some places, Scheme expressions also form valid syntax:
 wherever it is allowed,
 @example
   #@var{scheme}
@@ -4709,7 +4775,7 @@ evaluates the specified Scheme code.  Example:
 expressions. The first one is a symbol (@code{foobar}), the second one
 an integer (namely, 3).
 
-In-line scheme may be used at top level. In this case the result is
+In-line scheme may be used at the top level. In this case the result is
 discarded.
 
 Scheme is a full-blown programming language, and a full discussion is
index 241034151bb44072f95255c6ae65139b505f3825..bbc3d201337b4cfc49b111567a892e920ba616a3 100644 (file)
@@ -10,7 +10,7 @@
 * First steps::                 Music language of LilyPond
 * Simple legend::               Small table of music language symbols
 * Running LilyPond::            Printing music
-* The first tune::              The first tune
+* The first real tune::         The first real tune
 * Lyrics and chords::           Lyrics and chords
 * More movements ::             Joining separate pieces of music
 * A piano excerpt::             Piano music
@@ -34,7 +34,7 @@ language.  After this first contact, we will show you how to run
 LilyPond to produce printed output; you should then be able to create
 your first sheets of music.
 
-The tutorial continues with a bit more elaborate example of real music.
+The tutorial continues with a slightly more elaborate example of real music.
 This piece introduces and explains some finer details of LilyPond.
 Then, a number of more complex examples follow, that will help you to
 produce most complex music with LilyPond.
@@ -383,7 +383,7 @@ To use relative mode, add @code{\relative} before the piece of music.
 You must also give a note from which relative starts, in this case
 @code{c''}.
 
-@c In relative ocatave mode, quotes are used to mark large jumps in the
+@c In relative octave mode, quotes are used to mark large jumps in the
 @c melody.  Without any quotes or commas, the interval between a note and
 @c its predecessor is assumed to be a fourth or less.  Quotes and commas
 @c add octaves in up and down direction.
@@ -414,7 +414,7 @@ For example: @code{c f} goes up; @code{c g} goes down:
 @c grappig: Pa vond het heel logies, en slim toen-i eenmaal begreep.
 @c in eerste instantie drong het `relative' niet door zonder extra uitleg.
 You can make a large interval by adding octaviation quotes.  Note that
-quotes or commas do not determine the absolote height of a note;
+quotes or commas do not determine the absolute height of a note;
 the height of a note is relative to the previous one.
 @c don't use commas or quotes in this sentence
 For example: @code{c f,} goes down; @code{f, f} are both the same;
@@ -534,7 +534,7 @@ c-\ff c-\mf
 @separate
 
 Crescendi are started with the commands @code{\<}  and @code{\>}. The
-command @code{\!} finishes a crescendo on the following.
+command @code{\!} finishes a crescendo on the following note.
 @quotation
 @lilypond[verbatim,relative 1]
 c2\<  \!c2-\ff  \>c2  \!c2
@@ -643,7 +643,7 @@ fine tuning output, polyphonic music, and integrating text and music.
 @quotation
 @multitable @columnfractions .10 .20 .40
 
-@item @code{[]}
+@item @code{[ ]}
 @tab beam
 @tab
 @lilypond[fragment, relative 1]
@@ -665,7 +665,7 @@ fine tuning output, polyphonic music, and integrating text and music.
 d ~ d
 @end lilypond
 
-@item @code{()}
+@item @code{( )}
 @tab slur
 @tab
 @lilypond[fragment, relative 1]
@@ -697,7 +697,7 @@ a a'
 c c,
 @end lilypond
 
-@item @code{<>}
+@item @code{< >}
 @tab chord
 @tab
 @lilypond[fragment, relative 1]
@@ -839,14 +839,14 @@ You can also print from the command line by executing @code{gsview32 /s
 test.ps}
 
 
-@node The first tune
-@section The first tune
+@node The first real tune
+@section The first real tune
 
 
-This tutorial will demonstrate how to use Lilypond by presenting
-examples of input along with resulting output.  We will use English
-terms for notation.  In case you are not familiar with those, you may
-consult the glossary that is distributed with LilyPond.
+The rest of this tutorial will demonstrate how to use Lilypond by
+presenting examples of input along with resulting output.  We will use
+English terms for notation.  In case you are not familiar with those,
+you may consult the glossary that is distributed with LilyPond.
 
 The examples discussed are included in the distribution, in the
 subdirectory @file{input/tutorial/}@footnote{When we refer to filenames,
@@ -942,12 +942,15 @@ Prepare LilyPond for accepting notes.
  
 @end example
 @cindex relative
-As we will see, each note is described by its note name, duration,
-octave and possibly a chromatic alteration.  In this setup, the octave
-is indicated by using high quotes (@code{'}) and ``lowered quotes''
-(commas: @code{,}).  The central C is denoted by @code{c'}.  The C one
-octave higher is @code{c''}.  One and two octaves below the central C is
-denoted by @code{c} and @code{c,} respectively.
+@c removed duplicate introduction to octave marks /MB
+@c Shorten even more?
+
+@c As we will see, each note is described by its note name, duration,
+@c octave and possibly a chromatic alteration.  In this setup, the octave
+@c is indicated by using high quotes (@code{'}) and ``lowered quotes''
+@c (commas: @code{,}).  The central C is denoted by @code{c'}.  The C one
+@c octave higher is @code{c''}.  One and two octaves below the central C is
+@c denoted by @code{c} and @code{c,} respectively.
 
 Even though a piece of music often spans a range of several octaves, it
 mostly moves in small intervals.  LilyPond has a special entry mode to
@@ -1128,7 +1131,7 @@ staccato as shown above.
  
 @end example 
  
-Rests are denoted by the special notename @code{r}.  
+Rests are denoted by the special note name @code{r}.  
 @separate
 @example 
 
@@ -1147,8 +1150,8 @@ identifier.
         \bar "|."
         @}
 @end example 
-Here the music ends.  LilyPond does not automatically typeset and end
-bar, we must explicitely request one, using @code{"|."}.
+Here the music ends.  LilyPond does not automatically typeset an end
+bar, we must explicitly request one, using @code{"|."}.
 
 @separate
 @example 
@@ -1299,7 +1302,7 @@ information to print titles above the music.
 the @code{\header} block contains assignments.  In each assignment, a
 variable is set to a value. Lexically, both the variable name and the
 assigned value are strings. The values have to be quoted here, because
-they contain spaces, the variable names could also be put within quotes
+they contain spaces. The variable names could also be put within quotes
 but it is not necessary. 
 @separate
 @example 
@@ -1425,7 +1428,7 @@ separated by dots.
  
 @end example
 
-Some modifiers have predefined names, eg. @code{min} is  the same as
+Some modifiers have predefined names, e.g. @code{min} is  the same as
 @code{3-}, so @code{d-min} is a minor @code{d} chord.
 @separate
 @example 
@@ -1512,7 +1515,7 @@ silly.
  
 @end example
 
-The second argument of @code{\addlyrics} is the melody.  We instantiate
+The first argument of @code{\addlyrics} is the melody.  We instantiate
 a @code{Staff} context explicitly: should you choose to remove the
 comment before the ``note heads'' version of the accompaniment, the
 accompaniment will be on a nameless staff.  The melody has to be on
@@ -1528,7 +1531,7 @@ the melody and accompaniment staffs different names.
 @cindex context variables
 @cindex setting context variables
 An interpretation context has variables, called properties, that tune
-its behaviour.  One of the variables is @code{noAutoBeaming}.  Setting
+its behavior.  One of the variables is @code{noAutoBeaming}.  Setting
 this Staff's property to @code{##t}, which is the boolean value @var{true},
 turns the automatic beaming mechanism off for the current staff.
 @cindex GUILE
@@ -1591,7 +1594,7 @@ Lyrics.
 @end example 
 MIDI (Musical Instrument Digital Interface) is a standard for
 connecting and recording digital instruments. So a MIDI file is like a
-tape recording of an instrument. The @code{\midi} block causes makes the
+tape recording of an instrument. The @code{\midi} block makes the
 music go to a MIDI file, so you can listen to the music you entered.  It
 is great for checking the music.  Whenever you hear something weird, you
 probably hear a typing error.
@@ -1625,10 +1628,10 @@ The first thing it does, is running LilyPond on the input file. After
 some calculations, a @file{.tex} is produced. The contents
 of this file are very  low-level instructions.
 
-For example, the following file (@file{miniatures.ly}) 
+For example, consider the following file (@file{miniatures.ly}) 
 
 @example
-\version "1.3.124"
+\version "1.4.0"
 \header @{
   title = "Two miniatures"
   tagline = "small is beautiful"
@@ -1653,7 +1656,7 @@ For example, the following file (@file{miniatures.ly})
 @end example
 
 The titling in this manual was not generated by ly2dvi, so we can't
-exactly show it would look, but the result should resemble this:
+exactly show what it would look like, but the result should resemble this:
 
 @center @strong{Two miniatures}
 @flushright
@@ -1692,7 +1695,7 @@ Next, now we'll look at the example line by line to explain new things.
 
 @separate
 @example 
-\version "1.3.124"
+\version "1.4.0"
 @end example 
 Lilypond and its language are still under development, and occasionally,
 details of the syntax are changed. This fragment indicates for which
@@ -1701,7 +1704,7 @@ version number will be checked, and you will get a warning when the file
 is too old.
 
 This version number is also used by the @code{convert-ly} program (See
-@ref{convert-ly}), which uses it to update the file to the latest lily
+@ref{convert-ly}), which is used to update the file to the latest lily
 version.
 
 @separate
@@ -1743,7 +1746,7 @@ note was entered.  For more information, see @ref{Point and click}.
 
 The @code{\score} blocks that follow in the file don't have
 @code{\paper} sections, so the settings of this block are substituted: A
-paper block, at top-level, i.e. not in a @code{\score} block sets the
+paper block at top level, i.e. not in a @code{\score} block sets the
 default page layout.
 
 @separate
@@ -1766,7 +1769,7 @@ little space, a longer phrase more space.
 @end example
 
 In previous examples, notes were specified in relative octaves,
-i.e. each note was put in the octave that would put it closest to its
+i.e. each note was put in the octave that is closest to its
 predecessor. Besides relative, there is also absolute octave
 specification, which you get when you don't specify @code{\relative}. In
 this input mode, the central C is denoted by @code{c'}. Going down, you
@@ -1776,7 +1779,7 @@ get @code{c} @code{c,} @code{c,,} etc.  Going up, you get @code{c''}
 When you're copying music from existing sheet music, relative octaves
 are probably the easiest to use: it's less typing work and errors are
 easily spotted. However, if you write LilyPond input directly, either by
-hand (i.e. composing) or by computer, absolute octaves are easier to use.
+hand (i.e. composing) or by computer, absolute octaves may be easier to use.
 
 
 @separate
@@ -1892,7 +1895,7 @@ file @file{scm/grob-description.scm}.
   stemDown = \property Voice.Stem \override #'direction = #-1
 @end example
 
-Set a proprerty for all Stem grobs in the current Voice:
+Set a property for all Stem grobs in the current Voice:
 @code{direction} is set to @code{-1}, which encodes down.  The setting
 remains in effect until it is reverted.
 
@@ -1902,7 +1905,7 @@ remains in effect until it is reverted.
 @end example
 
 Revert the to the previous setting.  The effect of precisely one
-@code{\stemDown} or @code{\stemUp} is neutralised.
+@code{\stemDown} or @code{\stemUp} is neutralized.
 
 
 LilyPond includes the identifiers @code{\stemUp}, @code{\stemDown} along
@@ -1917,9 +1920,9 @@ viola = \notes \relative c'  \context Voice = viola @{
 @end example 
 In this example, you can see multiple parts on a staff.  Each part is
 associated with one notation context.  This notation context handles
-stems and dynamics (among others).  The name of this context is
+stems and dynamics (among others).  The type name of this context is
 @code{Voice}.  For each part we have to make sure that there is
-precisely one @code{Voice} context, so we give it an unique name
+precisely one @code{Voice} context, so we give it a unique name
 (`@code{viola}').
 
 @separate
@@ -2063,7 +2066,7 @@ etc. Here we fiddle with a property and make a beam.  The argument of
 @end example 
 
 Normally, grace notes are always stem up, but in this case, the upper
-voice interferes. We set the stems down here.
+voice interferes, so we set the stems down here.
 
 As far as relative mode is concerned, the previous note is the
 @code{c'''2} of the upper voice, so we have to go an octave down for
@@ -2102,8 +2105,8 @@ written out in full eight times.
 @cindex transposing
 @cindex relative mode and transposing
 
-Transposing can be done with @code{\transpose}.  It takes two arguments
-the first specifies what central C should be transposed to.  The second
+Transposing can be done with @code{\transpose}, which takes two arguments.
+The first specifies what central C should be transposed to.  The second
 is the to-be-transposed music.  As you can see, in this case, the
 transposition has no effect, as central C stays at central C.
 
@@ -2260,7 +2263,7 @@ to the end of the piece, and we can set the end bar.
 Key = \notes \key as \major
 @end example
 Declare the key signature of the piece and assign it to the identifier
-@var{Key}.  Lateron, we'll use @code{\Key} for all staffs except those
+@var{Key}.  Later on, we'll use @code{\Key} for all staffs except those
 for transposing instruments.
 
 @node The full score
@@ -2331,13 +2334,8 @@ conductor's score.
     indent = 15 * \staffspace
     linewidth = 60 * \staffspace
     textheight = 90 * \staffspace
-    \translator@{
-      \VoiceContext
-      \consists "Multi_measure_rest_engraver"
-    @}
     \translator@{
       \HaraKiriStaffContext
-      \remove "Multi_measure_rest_engraver"
     @}
   @}
   \midi @{
@@ -2383,7 +2381,7 @@ When naming the tuning of the french horn, we'll need a piece of text
 with a flat sign.  LilyPond has a mechanism for font selection and
 kerning called Scheme markup text (See @ref{Text markup}).  The flat
 sign is taken from the music font, and its name is @code{accidentals--1}
-(The sharp sign is called @code{accidentals-+1}).  The default font is
+(The sharp sign is called @code{accidentals-1}).  The default font is
 too big for text, so we select a relative size of @code{-2}.
 
 @separate
@@ -2405,8 +2403,8 @@ of the properties of a @var{side-position-interface} that can be tweaked
 is the @var{padding}: the amount of extra space that is put between this
 Grob and other Grobs.  We set the padding to three staff spaces.
 
-You can find all this kind of information in LilyPond's automatically
-generated documentation in
+You can find information on all these kind of properties in LilyPond's
+automatically generated documentation in
 @ifnottex
 @ref{ (lilypond-internals)lilypond-internals, LilyPond Internals}.
 @end ifnottex
@@ -2497,8 +2495,11 @@ when they're different.
           (columns "(E" ,text-flat ")"))
 @end example
 The french horn has the most complex scheme markup name, made up of two
-lines of text.  The second line has two elements (columns), the @code{E}
-and the flat sign @code{text-flat} that we defined before.
+lines of text.  The second line has three elements (columns), the @code{(E},
+the flat sign @code{text-flat} that we defined before and a final @code{")"}.
+Note that we use a backquote instead of an ordinary quote at the
+beginning of the Scheme expression to be able to access the
+@code{text-flat} identifier, `unquoting' it with a @code{,}.
 
 @separate
 @example
@@ -2508,7 +2509,7 @@ The french horn is to be tuned in E-flat, so we tell the MIDI backend to
 transpose this staff by three steps.
 
 Note how we can choose different tuning for entering, printing and
-playing, using @code{\transpose} and the MIDI Staff proprerty
+playing, using @code{\transpose} and the MIDI Staff property
 @var{transposing}.
 
 @separate
@@ -2531,6 +2532,12 @@ Usually, LilyPond's predefined setup of notation contexts (Thread,
 Voice, Staff, Staffgroup, Score) is just fine.  But in this case, we
 want a different type of Staff context.
 
+@example
+    \translator@{
+      \HaraKiriStaffContext
+    @}
+@end example
+
 In orchestral scores, it often happens that one instrument has only
 rests during one line of the score.  The @code{HaraKiriStaffContext} can
 be used as a regular @code{StaffContext} drop-in and will take care of
@@ -2582,7 +2589,7 @@ Opus 1.
 
 
 Because we separated the music definitions from the @code{\score}
-instantiations, we can easily define a second score from the music of
+instantiations, we can easily define a second score with the music of
 the second flute.  This then is the part for the second flute player.
 Of course, we make separate parts for all individual instruments.
 
@@ -2618,8 +2625,8 @@ true.
 Until now, you have been using @file{ly2dvi} to invoke LilyPond.
 There are three other routes.  Firstly, there is a script called
 @code{lilypond-book}, that allows you to freely mix LilyPond input with
-Texinfo or LaTeX input. For example, this manual was written using
-@code{lilypond-book}. It is discussed in @ref{lilypond-book}.
+Texinfo or \LaTeX input. For example, this manual was written using
+@code{lilypond-book}. It is discussed below and in @ref{lilypond-book}.
 
 
 Secondly, you can generate PostScript directly. This is useful if you
@@ -2629,9 +2636,10 @@ PostScript output, invoke LilyPond as follows:
 @example
 lilypond -f ps test.ly
 @end example
-You have to set some environment variables to view or print this
-output. More information can be found in @ref{Invoking
-LilyPond}.
+You have to set some environment variables to view or print this output. 
+More information can be found in @ref{Invoking LilyPond}. Since the
+direct Postscript generation has some problems, it is recommended
+to use @file{ly2dvi}.
 
 
 Thirdly, if you want to do special things with your output, you can run
@@ -2728,7 +2736,7 @@ $ xdvi lilbook
 @end example
 
 Notice the @code{outdir} option to lilypond-book. Running lilypond-book
-and running latex creates a lot of temporary files, and you wouldn't
+and running latex creates a lot of temporary files, and you wouldn't want
 those to clutter up your working directory. Hence, we have them created
 in a separate subdirectory.
 
index 55c729588c5ad37d599a473329542945455cdfe0..17208a76cabfc2013b5109c8a3efdfe0dba34e5a 100644 (file)
@@ -78,9 +78,18 @@ local-web: fonts lily $(TOP_HTMLS:%.html=%) footify do-top-doc top-web
 
 top-web:
        rm -f `find . -name \*.html~ -print`
-       find `find Documentation input mutopia *.png index.html -type d -name 'out-www'` -not -name '*dvi' -not -name '*ly' -not -name '*tex' -not -name '*.ps' -not -name 'out-www' > $(outdir)/weblist
+       find `find Documentation input mutopia *.png index.html -type d -name 'out-www'` \
+               -not -name '*.dvi' -not -name '*ly' -not -name '*.tex' \
+               -not -name '*.ps' -not -name '*.eps' -not -name '*pk' \
+               -not -name '*.aux' -not -name '*.cp' -not -name '*.fn' \
+               -not -name '*.vr' -not -name '*.yp' -not -name '*.ky' \
+               -not -name '*.pg' -not -name '*.tmp' -not -name '*.toc' \
+               -not -name '*.fns' -not -name '*.cps' -not -name '*.nexi' \
+               -not -name '*.texi' -not -name '*.texidoc' \
+               -not -name '*.log' -not -name 'out-www' -not -name '*.dep' \
+           > $(outdir)/weblist
        ls *.png *.html >> $(outdir)/weblist
-       cat $(outdir)/weblist | tar -czf $(outdir)/web.tar.gz  -T -
+       cat $(outdir)/weblist | GZIP=-9v tar -czf $(outdir)/web.tar.gz  -T -
 
 #WWW: local-WWW
 
@@ -94,7 +103,7 @@ WWW-clean:
        $(MAKE) -C mutopia WWW-clean
 
 top-WWW-clean:
-       rm -f $(TOP_HTMLS)
+       rm -f $(TOP_HTMLS) lily-[0-9]*.png
        $(SHELL) $(buildscript-dir)/clean-fonts.sh
 
 
index 81c41a799078d7a69e1bbdb78b93e7e6b9fae4d1..3366d09d1119698f53ef06c9050bc93fdb84e576 100644 (file)
@@ -66,25 +66,22 @@ Binaries
 
    Binaries are available, but are not updated for every version
 released.
-   * RedHat i386
+   * Red Hat i386
      (ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/RedHat/RPMS/)
 
-   * LinuxPPC (ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc)
+   * LinuxPPC (ftp://ftp.lilypond.org/pub/LilyPond/binaries/linuxppc/)
 
-   * Debian GNU/Linux Stable
-     (ftp://ftp.debian.org/debian/pool/main/l/lilypond)
-
-   * Debian GNU/Linux Unstable
-     (ftp://ftp.debian.org/debian/pool/main/l/lilypond1.3)
+   * Debian GNU/Linux
+     (ftp://ftp.debian.org/debian/pool/main/l/lilypond/)
 
    * Windows Stable (http://home.austin.rr.com/jbr/jeff/lilypond/)
-     Windows Testing (http://www.lilypond.org/gnu-windows)
+     Windows Testing (http://www.lilypond.org/gnu-windows/)
 
 
 Upgrading
 ---------
 
-   There are two  options for upgrading sources.
+   There are two options for upgrading sources.
 
    * if you have an unpacked source tree of a previous version, you may
      the patches.
@@ -96,10 +93,10 @@ Upgrading
      xdelta (ftp://ftp.xcf.berkeley.edu/pub/xdelta/).   This is much
      safer than using patches, and is the recommended way.
 
-     The following command produces `lilypond-1.3.122.tar.gz' from
-     `lilypond-1.3.121' identical (up to compression dates) to the .122
-     on the FTP site.
-            xdelta patch lilypond-1.3.121-1.3.122.xd lilypond-1.3.121.tar.gz
+     The following command produces `lilypond-1.4.1.tar.gz' from
+     `lilypond-1.4.0.tar.gz' identical (up to compression dates) to the
+     .1 on the FTP site.
+            xdelta patch lilypond-1.4.0-1.4.1.xd lilypond-1.4.0.tar.gz
 
 Requirements
 ============
@@ -131,8 +128,8 @@ Compilation
 
      TeX is used as an output backend.
 
-     Also, TeX's libkpathsea is used to find the fonts (.mf, .afm,
-     .tfm).  Make sure you have tetex 1.0 or newer (1.0.6 is known to
+     Also, TeX's libkpathsea is used to find the fonts (`.mf', `.afm',
+     `.tfm').  Make sure you have tetex 1.0 or newer (1.0.6 is known to
      work).  You may need to install a tetex-devel or tetex-dev package
      too.
 
@@ -175,7 +172,7 @@ following software
 
    * TeX.
 
-   * Xdvi and ghostscript
+   * Xdvi and Ghostscript
 
    * GUILE 1.3.4, or newer.  Check out the GUILE webpage
      (http://www.gnu.org/software/guile.html)
@@ -283,7 +280,7 @@ is in `/usr/share/doc/lilypond-X/'.  You have to install it yourself.
            (cons '("\\.ly$" . LilyPond-mode) auto-mode-alist))
          (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
 
-   If you have the latest LilyPond-1.3.x Debian package, LilyPond-mode
+   If you have the latest LilyPond-1.4.x Debian package, LilyPond-mode
 is automatically loaded, so you need not modify your `~/.emacs' file.
 
 Compiling for distributions
@@ -313,7 +310,7 @@ libgr-progs.
 
    Warning
 
-   There appears to be a problem with the Xdvi shipped with RedHat 7.1.
+   There appears to be a problem with the Xdvi shipped with Red Hat 7.1.
 Symptoms: Xdvi responds very sluggishly or hangs while viewing lilypond
 output. The cause for this problem is unknown; you are advised to
 recompile Xdvi from source.
@@ -333,7 +330,7 @@ SuSE
 `ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/binaries/'.
 
    You can also compile a RPM for SUSE yourself.  A spec file is in
-`make/out/suse.spec', see the instructions for building the RedHat RPM.
+`make/out/suse.spec', see the instructions for building the Red Hat RPM.
 
    You must have the following packages: guile tcsh tetex te_latex
 te_kpath te_mpost libpng python gpp libgpp gettext autoconf netpbm
@@ -358,11 +355,11 @@ Debian GNU/Linux
 ----------------
 
    A Debian package is also available.  You may install it easily by
-using apt-get as root:
+running `apt-get' as root:
 
-       apt-get install lilypond1.3
+       apt-get install lilypond
 
-   Debian's tex installation is a bit short on memory, you may want to
+   Debian's TeX installation is a bit short on memory, you may want to
 increase it like this:
      --- /etc/texmf/texmf.cnf.dpkg     Sun Jan 28 14:12:14 2001
      +++ /etc/texmf/texmf.cnf  Fri Apr 27 11:09:35 2001
@@ -377,22 +374,24 @@ increase it like this:
      
       obj_tab_size.context = 256000
 
+   You could also export `extra_mem_top' and `extra_mem_bot' as
+environment variables if you do not want to or cannot modify
+`/etc/texmf/texmf.cnf'.
+
    Alternatively, visit
 
    * http://packages.debian.org/lilypond
      (http://packages.debian.org/lilypond)
 
-   * http://ftp.debian.org/debian/pool/main/l/lilypond1.3/
-     (http://ftp.debian.org/debian/pool/main/l/lilypond1.3/) for latest
-     package uploaded to Debian unstable;
-
    * http://people.debian.org/~foka/lilypond/
      (http://people.debian.org/~foka/lilypond/) for latest
-     semi-unofficial build of LilyPond 1.3.121 for Debian 2.2r2
-     (potato) users.  The official stable Debian 2.2r2 is stuck with
-     the old LilyPond-1.3.24.
+     semi-unofficial build of LilyPond 1.3.121 for Debian 2.2 (potato)
+     users.  The official stable Debian 2.2 is stuck with the old
+     LilyPond-1.3.24.  Since LilyPond-1.4 has been released, the older
+     lilypond1.3 Debian package is now obsolete.
 
-   You may contact Anthony Fok <foka@debian.org> for more information.
+   Please contact Anthony Fok <lilypond@packages.debian.org> for more
+information.
 
    The build scripts are in the subdirectory `debian/'; you can make
 the .deb by doing, for example:
@@ -400,40 +399,45 @@ the .deb by doing, for example:
        $ su - root
        # dpkg --purge lilypond lilypond1.3
        # exit
-       $ tar xzf lilypond-1.3.122.tar.gz
-       $ cd lilypond-1.3.122
-       $ dch -p -v 1.3.122-0.local.1 "Local build."
+       $ tar xzf lilypond-1.4.1.tar.gz
+       $ cd lilypond-1.4.1
+       $ dch -p -v 1.4.1-0.local.1 "Local build."
        $ debuild
        $ su - root
-       # dpkg -i ../lilypond1.3_1.3.122*.deb
+       # dpkg -i ../lilypond_1.4.1*.deb
        # exit
        $
 
    For compilation on a Debian GNU/Linux system you need these packages,
 in addition to the those needed for running:
 
-   * g++, cpp, libc6-dev, libstdc++<your-libstdc++-version-here>-dev
+   * g++, cpp, libc6-dev, libstdc++<YOUR-LIBSTDC++-VERSION-HERE>-dev
 
-   * libguile<your-libguile-version-here>-dev
+   * libguile<YOUR-LIBGUILE-VERSION-HERE>-dev
 
    * make, m4, flex, bison
 
    * gettext
 
-   * groff, texinfo, bibtex2html (not in 2.2r2)
+   * groff, texinfo
+
+   * bibtex2html (not in Debian 2.2)
 
    * tetex-base, tetex-bin, tetex-extra, libkpathsea-dev or tetex-dev
 
    * dpkg-dev, debhelper, fakeroot
 
-   * gs, netpbm, pnmtopng
+   * gs, netpbm
+
+   * pnmtopng (only in Debian 2.2; pnmtopng has been merged with netpbm
+      in Debian testing/unstable.)
 
-   Most of these are listed on the Build-Depends line in the
-debian/control file.  To ensure the creation of the lilypond deb is
+   Most of these are listed on the `Build-Depends' line in the
+`debian/control' file.  To ensure the creation of the lilypond deb is
 trouble-free, we recommend that you first install the following packages
-before starting dpkg-buildpackage by running apt-get as root.
+by running \`apt-get' as root before building the package:
 
-   For Debian 2.2 (or 2.2r2, 2.2r3):
+   For Debian 2.2:
 
        apt-get install task-debian-devel task-c++-dev \
                python-base libguile6-dev tetex-bin tetex-dev \
@@ -445,7 +449,7 @@ before starting dpkg-buildpackage by running apt-get as root.
        apt-get install task-debian-devel task-c++-dev \
                python-base libguile9-dev tetex-bin libkpathsea-dev \
                tetex-extra flex bison texinfo bibtex2html groff gs \
-               netpbm pnmtopng m4 gettext
+               netpbm m4 gettext
 
    And, just so that old fonts from previous versions of LilyPond won't
 interfere with your build, you may want to do this before the build too:
@@ -456,7 +460,7 @@ Problems
 ========
 
    For help and questions use <help-gnu-music@gnu.org> and
-<gnu-music-discuss@gnu.org>.  Please consult the faq before mailing
+<gnu-music-discuss@gnu.org>.  Please consult the FAQ before mailing
 your problems.  If you find bugs, please send bug reports to
 <bug-gnu-music@gnu.org>.
 
index 23568d4d619449c3a8007f8ba733cad4d4d2e846..9d530f818c68a3e102ad49b7c361f6ba2e247aed 100644 (file)
@@ -46,9 +46,9 @@ binary.  The following formats are supported:
 Comments
 ========
 
-   LilyPond is a long way from finished and polished, so we please send
+   LilyPond is a long way from finished and polished, so please send
 your criticism, comments, bugreports, patches, etc., to the mailing
-list.  and _not_ to us personally.
+list, _not_ to us personally.
 
    We have the following mailing lists:
 
diff --git a/VERSION b/VERSION
index 970bb5b64479feaa73bf4f56425dca106049e812..601e00c0817e1cf7795d80e39a70b82f85c251c8 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=4
-PATCH_LEVEL=1
-MY_PATCH_LEVEL=jcn4
+PATCH_LEVEL=2
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index bfa093e46650d524a0f32481194587b98671de6a..794e59929ec1b6fac3589edf0c908ad8e277eb1d 100755 (executable)
@@ -52,21 +52,18 @@ def file_exist_b (fn):
                return 0
 
 
-headertext= r"""You're looking at a page with some LilyPond samples.
+headertext= r"""
+<p>You're looking at a page with some LilyPond samples.
 These files are also included in the distribution. The output is
 completely generated by LilyPond, without any touch up by humans.
 
-
-<p>
-
-The PostScript files were generated using TeX and dvips. The pictures
+<p>The PostScript files were generated using TeX and dvips. The pictures
 are 90dpi anti-aliased snapshots of the printed output.  The images
 are in PNG format, and should be viewable with any current browser.
 
-<p>
-
-If you want a better impression of the appearance, do print out one of
-the postscript files."""
+<p>If you want a better impression of the appearance, do print out one of
+the postscript files.
+"""
 
 
 #
@@ -118,8 +115,8 @@ def gen_list(inputs, filename):
                list = open(filename, 'w')
        else:
                list = sys.stdout
-       list.write ('<html><TITLE>Rendered Examples</TITLE>\n')
-       list.write ('<body bgcolor=white>')
+       list.write ('<html><title>Rendered Examples</title>\n')
+       list.write ('<body bgcolor=white>\n')
        
        if inputs:
                        list.write (headertext)
@@ -144,16 +141,16 @@ def gen_list(inputs, filename):
                head = read_dict('title', os.path.basename (base))
                composer = read_dict('composer', '')
                desc = read_dict('description', '')
-               list.write('<hr>')
-               list.write('<h1>example file: %s</h1>' % head);
+               list.write('<hr>\n')
+               list.write('<h1>example file: %s</h1>\n' % head);
                if composer <> '':
                        list.write('<h2>%s</h2>\n' % composer)
                if desc <> '':
                        list.write('%s<p>' % desc)
-               list.write ('<ul>')
+               list.write ('<ul>\n')
                def list_item(filename, desc, type, l = list):
                        if file_exist_b(filename):
-                               l.write ('<li><a href=%s>%s</a>' % (filename, desc))
+                               l.write ('<li><a href="%s">%s</a>' % (filename, desc))
                                size=os.stat(filename)[stat.ST_SIZE]
                                l.write (' (%s %dk)' % (type, (size + 512) / 1024))
                                pictures = ['jpeg', 'png', 'xpm']
@@ -167,9 +164,9 @@ def gen_list(inputs, filename):
                        list_item(f, 'See a picture of page %d' % pageno, 'png')
                list_item(base + '.ps.gz', 'Print ', 'gzipped PostScript')
                list_item(base + '.midi', 'Listen', 'MIDI')
-               list.write ("</ul>");
+               list.write ("</ul>\n");
 
-       list.write( "</BODY></HTML>");
+       list.write('</body></html>\n');
        list.close()
 
 import getopt
index 48136e47d26a79882156861183a1a0546f89ed4b..205ae80403da51096aa6b044d03541ce86f71cbe 100644 (file)
@@ -6,10 +6,12 @@ NAME = debian
 at-dir = $(outdir)/
 at-ext =
 
-CONF_FILES = changelog control copyright doc-base emacsen-startup \
+CONF_FILES = changelog control copyright emacsen-startup \
        preinst postinst postrm prerm rules watch
-EXTRA_DIST_FILES = README.Debian TODO $(CONF_FILES)  \
-       control.foka control.potato
+EXTRA_DIST_FILES = README.Debian $(CONF_FILES) \
+       control.foka control.potato \
+       lilypond.dirs lilypond.doc-base lilypond.links \
+       lilypond-doc.dirs lilypond-doc.doc-base lilypond-doc.README.Debian
 #OUTCONF_FILES = $(addprefix $(outdir)/, $(basename $(CONF_FILES))) $(OUTIN_FILES)
 OUTCONF_FILES = $(OUTIN_FILES)
 OUT_DIST_FILES = $(OUTIN_FILES)
diff --git a/debian/TODO b/debian/TODO
deleted file mode 100644 (file)
index 8a5f21b..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-Fri,  6 Feb 1998 17:24:49 -0700:
- * Compile mudela-mode.el into mudela-mode.elc
- * Install /etc/emacs/site-start.d/50lilypond.el
- * Figure out how to make mudela-mode work on my computer.  :-)
index 29c617fd430b9ca751333d61f77a20d1b016c763..fd0a0cb6f2c5f33c84d0d778a739353f1c203f19 100644 (file)
@@ -1,3 +1,13 @@
+lilypond (1.4.1-1) unstable; urgency=low
+
+  * New upstream release.  (Closes: Bug#97598)
+  * export extra_mem_top=100000 and extra_mem_bot=100000, otherwise
+    latex runs out of memory when processing standchen.dvi.latex.
+  * Split the documentation into the "lilypond-doc" package, which
+    provides the LilyPond website in /usr/share/doc/lilypond/html.
+
+ -- Anthony Fok <foka@debian.org>  Wed, 16 May 2001 16:03:40 -0600
+
 lilypond (1.3.150-1) unstable; urgency=low
 
   * New upstream version.
index 6b573472c9400764a12f6cafd05fa31b8af54dce..3d1ba98510a4cf04fbd88599ee2ddc2688c33ca8 100644 (file)
@@ -1,17 +1,16 @@
 Source: lilypond
-Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex, bison, texinfo (>= 4.0-1), bibtex2html, groff, gs, netpbm (>= 2:9.10-1), m4, gettext (>= 0.10.36-1)
-Build-Conflicts: lilypond, lilypond1.3
+Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex, bison, texinfo (>= 4.0-1), bibtex2html, groff, gs | gs-aladdin, netpbm (>= 2:9.10-1), m4, gettext (>= 0.10.36-1)
 Section: tex
 Priority: optional
 Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 3.5.2
+Standards-Version: 3.5.4
 
 Package: lilypond
 Architecture: any
 Replaces: lilypond1.3
 Provides: lilypond1.3
 Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1), python-base (>= 1.5.2-4), guile
-Recommends: tetex-extra (>= 1.0-1)
+Recommends: lilypond-doc, tetex-extra (>= 1.0-1)
 Conflicts: lilypond, lilypond1.3 (<= 1.3.132-1), musixtex-fonts
 Description: A program for printing sheet music.
  LilyPond is a music typesetter.  It produces beautiful sheet music
@@ -25,13 +24,21 @@ Description: A program for printing sheet music.
   Authors: Han-Wen Nienhuys <hanwen@cs.uu.nl>
            Jan Nieuwenhuizen <janneke@gnu.org>
 
+Package: lilypond-doc
+Section: doc
+Architecture: all
+Recommends: lilypond (= ${Source-Version})
+Suggests: postscript-viewer, www-browser
+Description: LilyPond Documentation in HTML, PS and DVI formats
+ This package contains the HTML, PostScript and DVI documentation for the
+ LilyPond music typestting software.
+
 Package: lilypond1.3
 Architecture: all
 Depends: lilypond (>= 1.3.150-1)
 Description: Dummy package for transition to new stable lilypond.
  This dummy package provides a transition from the previous lilypond1.3
- package back to a newer lilypond because the 1.3.x series will become
- 1.4 really soon now.
+ package back to a newer lilypond because the stable 1.4 series has arrived.
  .
  Please feel free to remove this dummy package after you have upgraded
  to the latest lilypond.
index 182166b1f1f8f1af3a446d1bdebdda7904bcff32..1388612c342ddf5e3e6b6b9b90243eab1a6fd650 100644 (file)
@@ -1,25 +1,21 @@
-Source: lilypond1.3
-Build-Depends: debhelper (>= 2.0.72), python-base (>= 1.5.2-4), libguile9-dev, tetex-bin, libkpathsea-dev, tetex-extra, flex, bison, texinfo (>= 4.0-1), bibtex2html, groff, gs, netpbm, pnmtopng, m4, gettext (>= 0.10.35-13)
+Source: lilypond
+Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex, bison, texinfo (>= 4.0-1), bibtex2html, groff, gs | gs-aladdin, netpbm (>= 2:9.10-1), m4, gettext (>= 0.10.36-1)
 Section: tex
 Priority: optional
 Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 3.2.1
+Standards-Version: 3.5.4
 
-Package: lilypond1.3
+Package: lilypond
 Architecture: any
-Replaces: lilypond
-Provides: lilypond
+Replaces: lilypond1.3
+Provides: lilypond1.3
 Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1), python-base (>= 1.5.2-4), guile
-Recommends: tetex-extra (>= 1.0-1)
-Conflicts: lilypond, musixtex-fonts
+Recommends: lilypond-doc, tetex-extra (>= 1.0-1)
+Conflicts: lilypond, lilypond1.3 (<= 1.3.132-1), musixtex-fonts
 Description: A program for printing sheet music.
  LilyPond is a music typesetter.  It produces beautiful sheet music
  using a high level description file as input.  LilyPond is part of 
  the GNU Project.
- .
- This is the developmental 1.3 branch of LilyPond.  It is not intended for
- use with stable projects, although 1.3.x is most likely to be less buggy
- and much more featureful than then the old "stable" 1.2.17.
  .
   URLs: http://www.cs.uu.nl/~hanwen/lilypond/
         http://www.xs4all.nl/~jantien/lilypond/
@@ -27,3 +23,22 @@ Description: A program for printing sheet music.
         http://www.lilypond.org/
   Authors: Han-Wen Nienhuys <hanwen@cs.uu.nl>
            Jan Nieuwenhuizen <janneke@gnu.org>
+
+Package: lilypond-doc
+Section: doc
+Architecture: all
+Recommends: lilypond (= ${Source-Version})
+Suggests: postscript-viewer, www-browser
+Description: LilyPond Documentation in HTML and PS formats
+ This package contains the HTML and PostScript documentation for the
+ LilyPond music typestting software.
+
+Package: lilypond1.3
+Architecture: all
+Depends: lilypond (>= 1.3.150-1)
+Description: Dummy package for transition to new stable lilypond.
+ This dummy package provides a transition from the previous lilypond1.3
+ package back to a newer lilypond because the stable 1.4 series has arrived.
+ .
+ Please feel free to remove this dummy package after you have upgraded
+ to the latest lilypond.
index 9e89926f1ec1939cbd33a598246be5f7fc4ff27d..d86145ba9349713d410c0b2b0a39382d6a8d682b 100644 (file)
@@ -7,10 +7,10 @@ but was merged back into the lilypond package
 as of Mon, 16 Apr 2001 21:58:42 -0600
 
 It was downloaded from
-      ftp://ftp.lilypond.org/pub/LilyPond/v1.3/
+      ftp://ftp.lilypond.org/pub/LilyPond/v1.4/
 
 It is also available at: 
-      ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.3/
+      ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.4/
 
 For more information about GNU LilyPond, please visit:
       http://www.cs.uu.nl/~hanwen/lilypond/
@@ -24,7 +24,7 @@ Authors:
  
 Copyright:
 
-  GNU LilyPond is Copyright (C) 1996-2000
+  GNU LilyPond is Copyright (C) 1996-2001
   Jan Nieuwenhuizen & Han-Wen Nienhuys
 
     This program is free software; you can redistribute it and/or modify
diff --git a/debian/doc-base b/debian/doc-base
deleted file mode 100644 (file)
index cb521ca..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-Document: lilypond
-Title: GNU LilyPond, the music typesetter
-Author: Various
-Abstract: This documentation describes LilyPond (the GNU Project music
- typesetter), its language Mudela, and the Mutopia project, a.k.a.
- "Music To the People."
-Section: Apps/Music
-
-Format: info
-Index: /usr/share/info/lilypond.info.gz
-Files: /usr/share/info/lilypond.info* /usr/share/info/lilypond-internals.info*
diff --git a/debian/lilypond-doc.README.Debian b/debian/lilypond-doc.README.Debian
new file mode 100644 (file)
index 0000000..cfa4cb5
--- /dev/null
@@ -0,0 +1,7 @@
+lilypond-doc for Debian
+-----------------------
+
+The HTML, PostScript and DVI documentation files are installed under
+`/usr/share/doc/lilypond', not `/usr/share/doc/lilypond-doc'.
+
+Anthony Fok <foka@debian.org>, Wed, 16 May 2001 01:37:00 -0600
diff --git a/debian/lilypond-doc.dirs b/debian/lilypond-doc.dirs
new file mode 100644 (file)
index 0000000..d3ff8f2
--- /dev/null
@@ -0,0 +1 @@
+usr/share/doc/lilypond/html
diff --git a/debian/lilypond-doc.doc-base b/debian/lilypond-doc.doc-base
new file mode 100644 (file)
index 0000000..11faa0f
--- /dev/null
@@ -0,0 +1,11 @@
+Document: lilypond-doc
+Title: GNU LilyPond, the music typesetter
+Author: Various
+Abstract: This documentation describes LilyPond (the GNU Project music
+ typesetter), its language Mudela, and the Mutopia project, a.k.a.
+ "Music To the People."
+Section: Apps/Music
+
+Format: HTML
+Index: /usr/share/doc/lilypond/html/index.html
+Files: /usr/share/doc/lilypond/html/*.html /usr/share/doc/lilypond/html/Documentation/out-www/*.html  /usr/share/doc/lilypond/html/Documentation/*/out-www/*.html
diff --git a/debian/lilypond.dirs b/debian/lilypond.dirs
new file mode 100644 (file)
index 0000000..188c688
--- /dev/null
@@ -0,0 +1,7 @@
+usr/share/doc/lilypond/examples
+usr/share/doc/texmf
+usr/share/emacs/site-lisp
+usr/share/texmf/tex
+usr/share/texmf/fonts/source/public
+usr/share/texmf/fonts/afm/public
+usr/share/texmf/fonts/tfm/public
diff --git a/debian/lilypond.doc-base b/debian/lilypond.doc-base
new file mode 100644 (file)
index 0000000..cb521ca
--- /dev/null
@@ -0,0 +1,11 @@
+Document: lilypond
+Title: GNU LilyPond, the music typesetter
+Author: Various
+Abstract: This documentation describes LilyPond (the GNU Project music
+ typesetter), its language Mudela, and the Mutopia project, a.k.a.
+ "Music To the People."
+Section: Apps/Music
+
+Format: info
+Index: /usr/share/info/lilypond.info.gz
+Files: /usr/share/info/lilypond.info* /usr/share/info/lilypond-internals.info*
diff --git a/debian/lilypond.links b/debian/lilypond.links
new file mode 100644 (file)
index 0000000..edd69e8
--- /dev/null
@@ -0,0 +1,4 @@
+usr/share/lilypond/tex usr/share/texmf/tex/lilypond
+usr/share/lilypond/mf  usr/share/texmf/fonts/source/public/lilypond
+usr/share/lilypond/afm usr/share/texmf/fonts/afm/public/lilypond
+usr/share/lilypond/tfm usr/share/texmf/fonts/tfm/public/lilypond
index d36c89e953788ed682d6ff944f036a54c02a6a35..7538d7bc3fad936a5220f1a8b58c040759f8d9a8 100755 (executable)
@@ -12,14 +12,20 @@ package = lilypond
 
 SHELL = /bin/sh
 r = debian/$(package)
-TMP = $(PWD)/$(r)
+r_doc = debian/$(package)-doc
 d = usr/share/doc/$(package)
 
-TELY_FILES := $(notdir $(wildcard Documentation/user/*.tely))
-DVI_FILES = $(addprefix Documentation/user/out/, $(TELY_FILES:.tely=.dvi))
-PS_FILES = $(DVI_FILES:.dvi=.ps)
+# TELY_FILES := $(notdir $(wildcard Documentation/user/*.tely))
+# DVI_FILES = $(addprefix Documentation/user/out/, $(TELY_FILES:.tely=.dvi))
+# PS_FILES = $(DVI_FILES:.dvi=.ps)
+
+# "main_memory = 263000" in /etc/texmf/texmf.cnf isn't large enough
+# for latex to process standchen.dvi.latex, so adding extra_mem_* ...
+export extra_mem_top=100000
+export extra_mem_bot=100000
 export MODE=ljfour
 export BDPI=600
+export MAILADDRESS=lilypond@packages.debian.org
 
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
@@ -35,48 +41,44 @@ build-stamp:
        dh_testdir
 
        ./configure --enable-checking --disable-debugging \
-               --enable-printing --prefix=/usr --enable-optimise \
-               --enable-shared \
+               --prefix=/usr --enable-optimise \
                --infodir='$${prefix}/share/info' \
                --mandir='$${prefix}/share/man'
        $(MAKE) USER_CFLAGS=-DDEBIAN all
-       $(MAKE) -C Documentation/user dvi ps
-       $(MAKE) -C Documentation/pictures pngs
 
        touch build-stamp
 
+build-doc: build build-doc-stamp
+build-doc-stamp:
+       dh_testdir
+
+       $(MAKE) -C Documentation
+       $(MAKE) web
+
+       touch build-doc-stamp
+
 clean:
        dh_testdir
        dh_testroot
-       rm -f build-stamp
+       rm -f build-stamp build-doc-stamp
+       -$(MAKE) WWW-clean top-WWW-clean
        -$(MAKE) distclean
-       dh_clean
 
-       # Correct the owner of the out/dummy.dep files when built with sudo.
-       if [ -n "$$SUDO_USER" -a -n "$$SUDO_GID" ]; then \
-               find . -user root | xargs -r chown --dereference $$SUDO_USER.$$SUDO_GID; \
-       fi
+       # Still not clean enough?  Let's use... BRUTE STRENGTH!  :-)
+       find . -type d -name 'out' -o -name 'out-www' | xargs rm -rf
+       rm -f debian/doc-base debian/TODO
+
+       dh_clean
 
 install: DH_OPTIONS=
 install: build
        dh_testdir
        dh_testroot
        dh_clean -k
-       dh_installdirs usr/share/doc/texmf \
-               $(d)/examples \
-               usr/share/emacs/site-lisp \
-               usr/share/texmf/tex \
-               usr/share/texmf/fonts/source/public \
-               usr/share/texmf/fonts/afm/public \
-               usr/share/texmf/fonts/tfm/public
-       ln -fs ../$(package) $(r)/usr/share/doc/texmf/lilypond
-
-       $(MAKE) prefix=$(TMP)/usr USER_CFLAGS=-DDEBIAN install
-
-       ln -s ../../lilypond/tex $(r)/usr/share/texmf/tex/lilypond
-       ln -s ../../../../lilypond/mf $(r)/usr/share/texmf/fonts/source/public/lilypond
-       ln -s ../../../../lilypond/afm $(r)/usr/share/texmf/fonts/afm/public/lilypond
-       ln -s ../../../../lilypond/tfm $(r)/usr/share/texmf/fonts/tfm/public/lilypond
+
+       # Add here commands to install the package into debian/tmp.
+       dh_installdirs
+       $(MAKE) prefix=$(PWD)/$(r)/usr USER_CFLAGS=-DDEBIAN install
 
        # Change from an absolute symlink to a relative symlink (Lintian)
        if [ -L $(r)/usr/share/lilypond/cmtfm ]; then \
@@ -86,9 +88,18 @@ install: build
 
 # Build architecture-independent files here.
 binary-indep: DH_OPTIONS=-i
-binary-indep: build install
+binary-indep: build-doc install
        dh_testdir
        dh_testroot
+       # Extract LilyPond website tarball ...
+       tar -C $(r_doc)/$(d)/html -xvzf out/web.tar.gz
+       # Add symlinks to the PostScript docs and LilyPond logo PNGs ...
+       cd $(r_doc)/$(d) \
+           && cp -s `find html/Documentation -name '*.ps.gz'` . \
+           && cp -s html/Documentation/pictures/out-www/*.png .
+       # Copy the DVI docs too ...
+       cp -a `find Documentation -name '*.dvi' ! -name 'lily-[0-9]*.dvi'` \
+               $(r_doc)/$(d)/
        dh_installdocs
        dh_installchangelogs
        dh_link
@@ -105,13 +116,16 @@ binary-arch: build install
        dh_testroot
        cp -av lilypond-mode.el lilypond-font-lock.el \
                $(r)/usr/share/emacs/site-lisp/
-       dh_installdocs DEDICATION NEWS ROADMAP *.txt \
-               Documentation/pictures/out/*.png \
-               Documentation/out/*.txt \
-               $(DVI_FILES) $(PS_FILES)
-       mkdir $(r)/$(d)/bibliography $(r)/$(d)/misc
-       cp -a Documentation/bibliography/*.bib $(r)/$(d)/bibliography/
-       cp -a Documentation/misc/[ACN]* $(r)/$(d)/misc/
+       dh_installdocs DEDICATION NEWS ROADMAP *.txt
+
+#      dh_installdocs DEDICATION NEWS ROADMAP *.txt \
+#              Documentation/pictures/out/*.png
+#              Documentation/out/*.txt
+#              $(DVI_FILES) $(PS_FILES)
+#      mkdir $(r)/$(d)/bibliography $(r)/$(d)/misc
+#      cp -a Documentation/bibliography/*.bib $(r)/$(d)/bibliography/
+#      cp -a Documentation/misc/[ACN]* $(r)/$(d)/misc/
+
 #      dh_installexamples input
        cp -aP `find input mutopia \( -name '*.*ly' -o -name '*.abc' -o -name '*.tex' -o -name 'TODO' \)` \
                $(r)/$(d)/examples
@@ -120,7 +134,7 @@ binary-arch: build install
 #      dh_installmenu
        dh_installemacsen
 #      dh_installcron
-#      dh_installmanpages
+#      dh_installman
 #      dh_undocumented
        dh_installchangelogs -k CHANGES
        dh_link
@@ -128,7 +142,10 @@ binary-arch: build install
        dh_compress
        dh_fixperms
        dh_installdeb
-       dh_shlibdeps
+#      dh_shlibdeps
+       # Ugh, ugly kludge to avoid the circular symlinks under html/
+       cd debian/lilypond && dpkg-shlibdeps -T../substvars -dDepends \
+               usr/bin/lilypond usr/bin/midi2ly
        dh_gencontrol
 #      dh_makeshlibs
        dh_md5sums
index 589895ff83e20033bca642282e56ac971516c83c..62a6d3d9f05100f85684a8d017515bfa49324d66 100644 (file)
@@ -2,4 +2,4 @@
 # Rename this file to "watch" and then you can run the "uscan" command
 # to check for upstream updates and more.
 # Site         Directory               Pattern                 Version Script
-ftp.cs.uu.nl   /pub/GNU/LilyPond/v1.3  lilypond-*.tar.gz       debian  uupdate
+ftp.cs.uu.nl   /pub/GNU/LilyPond/v1.4  lilypond-*.tar.gz       debian  uupdate
diff --git a/input/bugs/accid.ly b/input/bugs/accid.ly
new file mode 100644 (file)
index 0000000..4783c01
--- /dev/null
@@ -0,0 +1,10 @@
+%The sharp is printet too far to the left.
+
+
+\version "1.4.0"
+\score {
+\notes \context Staff <
+  \context Voice = up {\stemUp gis''4}
+  \context Voice = dwn {\stemDown <ces' d'>}
+>
+}
diff --git a/input/regression/collision-dots.ly b/input/regression/collision-dots.ly
new file mode 100644 (file)
index 0000000..23437b8
--- /dev/null
@@ -0,0 +1,23 @@
+
+
+\header { texidoc = "collision resolution tries to put notes with dots
+  on the right side."
+}
+
+\version "1.3.148"
+
+\score{
+        \context Staff \notes <
+                \clef "bass"
+                \context Voice = "Tenor" {
+                        \stemUp
+                       b8.  c'16  d'4 b8  c'8  d'4
+                }
+                \context Voice = "Bass" {
+                        \stemDown
+                       b2 b2 
+                }
+        >
+}
+
+
index ec6d6c8ec3ce528e3ba1c30fb2ea6d3bc9fe7594..267ffde42ac79d9945302bb5334f30ad363bebe5 100644 (file)
@@ -1,8 +1,7 @@
 
-\header {
-texidoc = "Stems are extended if flags and dots collide."
-}
-       
+\header { texidoc = "Dots are moved right if flags and dots
+collide. This doesn't happens when the dot fits beneath the flag " }
+
 \score{
   \notes\relative c'{ f8. g f16. g f32. g}
 }
index e133402284f201a9c0e7dcd224802ec2d04cc979..c974f3fa767b453ec10012c747befb6c6d4090a3 100644 (file)
@@ -72,8 +72,6 @@ Axis_group_interface::group_extent_callback (SCM element_smob, SCM scm_axis)
   return ly_interval2scm (r - my_coord);
 }
 
-
-
 void
 Axis_group_interface::set_axes (Grob*me,Axis a1, Axis a2)
 {
@@ -132,8 +130,6 @@ Axis_group_interface::has_interface (Grob*me)
   return me && me->has_interface (ly_symbol2scm ("axis-group-interface"));
 }
 
-
-
 void
 Axis_group_interface::set_interface (Grob*me)
 {
index e56d7f3f0821ed55e6927912d58883b9608d2f56..9dec1242c2d72a58a45375d5721ab87183885e66 100644 (file)
 #include "dot-column.hh"
 #include "side-position-interface.hh"
 #include "engraver.hh"
+#include "stem.hh"
 
 class Dot_column_engraver : public Engraver
 {
-  Grob *dotcol_p_ ;
+  Grob *dotcol_ ;
+  Grob * stem_;
   Link_array<Item> head_l_arr_;
 public:
   VIRTUAL_COPY_CONS (Translator);
@@ -29,18 +31,29 @@ protected:
 
 Dot_column_engraver::Dot_column_engraver ()
 {
-  dotcol_p_ =0;
+  dotcol_ =0;
+  stem_ = 0;
 }
 
 void
 Dot_column_engraver::stop_translation_timestep ()
 {
-  if (dotcol_p_)
+  if (dotcol_)
     {
-      typeset_grob (dotcol_p_);
-      dotcol_p_ =0;
+
+      /*
+       Add the stem to the support so dots stay clear of flags.
+
+       See [Ross, p 171]
+       */
+      if (stem_)
+       dotcol_->set_grob_property ("stem", stem_->self_scm ());
+      
+      typeset_grob (dotcol_);
+      dotcol_ =0;
     }
   head_l_arr_.clear ();
+  stem_ =0;
 }
 
 void
@@ -49,17 +62,19 @@ Dot_column_engraver::acknowledge_grob (Grob_info info)
   Grob *d = unsmob_grob (info.elem_l_->get_grob_property ("dot"));
   if (d)
     {
-      if (!dotcol_p_)
+      if (!dotcol_)
        {
-         dotcol_p_ = new Item (get_property ("DotColumn"));
+         dotcol_ = new Item (get_property ("DotColumn"));
 
-         Dot_column::set_interface (dotcol_p_);
-         Side_position_interface::set_axis (dotcol_p_, X_AXIS);
-         Side_position_interface::set_direction (dotcol_p_, RIGHT);      
-         announce_grob (dotcol_p_, 0);
+         Dot_column::set_interface (dotcol_);
+         announce_grob (dotcol_, 0);
        }
 
-      Dot_column::add_head (dotcol_p_, info.elem_l_);
+      Dot_column::add_head (dotcol_, info.elem_l_);
+    }
+  else if (Stem::has_interface (info.elem_l_))
+    {
+      stem_ = info.elem_l_;
     }
 }
 
index a3c30cc4440b9cdd435b0d89ed4ae926e3a7ffb9..4ae84934f63b51338980c4c3ce73846d1151fd66 100644 (file)
 #include "directional-element-interface.hh"
 #include "side-position-interface.hh"
 #include "axis-group-interface.hh"
-
-
-
-
+#include "stem.hh"
 
 void
 Dot_column::set_interface (Grob* me)
 {
+}
+MAKE_SCHEME_CALLBACK (Dot_column,force_shift_callback,2);
+SCM
+Dot_column::force_shift_callback (SCM element_smob, SCM axis)
+{
+  Grob *me = unsmob_grob (element_smob);
+  Axis a = (Axis) gh_scm2int (axis);
+  assert (a == Y_AXIS);
+  me = me->parent_l (X_AXIS);
+  SCM l = me->get_grob_property ("dots");
+  do_shifts (l);
+  return gh_double2scm (0.0);
+}
 
-  Directional_element_interface::set (me, RIGHT);
-  
-  Axis_group_interface::set_interface (me);
-  Axis_group_interface::set_axes (me, X_AXIS,X_AXIS);
+MAKE_SCHEME_CALLBACK(Dot_column,side_position, 2);
+SCM
+Dot_column::side_position (SCM element_smob, SCM axis)
+{
+  Grob *me = unsmob_grob (element_smob);
+  Axis a = (Axis) gh_scm2int (axis);
+  assert (a == X_AXIS);
+
+  Grob * stem = unsmob_grob (me->get_grob_property ("stem"));
+  if (stem
+      && !Stem::beam_l (stem)
+      && Stem::flag_i (stem))
+    {
+      /*
+       trigger stem end & direction calculation.
+
+       This will add the stem to the support if a flag collision happens.
+       */
+      Stem::stem_end_position (stem); 
+    }
+  return Side_position_interface::aligned_side (element_smob, axis);
 }
 
+
 /*
   Will fuck up in this case.
 
@@ -44,21 +72,6 @@ Dot_column::set_interface (Grob* me)
 
    Should be smarter.
  */
-
-
-MAKE_SCHEME_CALLBACK (Dot_column,force_shift_callback,2);
-SCM
-Dot_column::force_shift_callback (SCM element_smob, SCM axis)
-{
-  Grob *me = unsmob_grob (element_smob);
-  Axis a = (Axis) gh_scm2int (axis);
-  assert (a == Y_AXIS);
- me = me->parent_l (X_AXIS);
-  SCM dots = me->get_grob_property ("dots");
-  do_shifts (dots);
-  return gh_double2scm (0.0);
-}
-
 SCM
 Dot_column::do_shifts (SCM l)
 {
index 8cf53ae02a485eb3185c5a559660231abd510971..6bd445c4d443cbfda0e566c30b9f72f1b4c0a5a4 100644 (file)
@@ -23,6 +23,7 @@ public:
   static void set_interface (Grob*);
   static bool has_interface (Grob*);
   DECLARE_SCHEME_CALLBACK (force_shift_callback, (SCM ,SCM));
+  DECLARE_SCHEME_CALLBACK (side_position, (SCM ,SCM));  
   static SCM do_shifts (SCM dotlist);
 };
 #endif // DOT_COLUMN_HH
index 5c947d8b20e90ab2f3ce3e4ecef7d8d03a1b2210..2bef230ec64880f6e5fcab7426807ed1f1a32c4f 100644 (file)
@@ -68,7 +68,18 @@ SCM
 Side_position_interface::general_side_position (Grob * me, Axis a, bool use_extents)
 {
   Grob *common = me->parent_l (a);
+
+  /*
+    As this is only used as a callback, this is called only once. We
+    could wipe SIDE-SUPPORT-ELEMENTS after we retrieve it to conserve
+    memory; however -- we should look more into benefits of such actions?
+
+    The benefit is small, it seems: total GC times taken don't
+    differ. Would this also hamper Generational GC ?
+    
+  */
   SCM support = me->get_grob_property ("side-support-elements");
+    // me->remove_grob_property ("side-support-elements");
   for (SCM s = support; s != SCM_EOL; s = gh_cdr (s))
     {
       Grob * e  = unsmob_grob (gh_car (s));
index 3dbc09ac45b1668901b8b7e7b4f6f61c0cdfcd8a..7eac4dfe63b9a5912f059ab9ed0ce7c9505e1a5f 100644 (file)
@@ -26,7 +26,7 @@
 #include "group-interface.hh"
 #include "staff-symbol-referencer.hh"
 #include "spanner.hh"
-
+#include "side-position-interface.hh"
 
 void
 Stem::set_beaming (Grob*me ,int i,  Direction d)
@@ -293,7 +293,10 @@ Stem::get_default_stem_end_position (Grob*me)
 
   Interval hp = head_positions (me);  
   Real st = hp[dir] + dir * length_f;
+
+
   
+
   /*
     Make a little room if we have a flag and there is a dot.
 
@@ -301,7 +304,6 @@ Stem::get_default_stem_end_position (Grob*me)
 
     maybe  we should consider moving the dot to the right?
   */
-
   if (!beam_l (me)
       && flag_i (me))
     {
@@ -313,13 +315,22 @@ Stem::get_default_stem_end_position (Grob*me)
        {
          Real dp = Staff_symbol_referencer::position_f  (dots);
          Real flagy =  flag (me).extent (Y_AXIS)[-dir] * 2; // should divide by staffspace
-         
-         if (dir * (st + flagy -  dp) < 0) 
-           st += (fabs (st + flagy -  dp) + 1.0) *dir;
+
+         /*
+           Very gory: add myself to the X-support of the parent,
+           which should be a dot-column.
+          */
+         if (dir * (st + flagy -  dp) < 0.5)
+           Side_position_interface::add_support (dots->parent_l (X_AXIS), me);
+
+         /*
+           previous approach was to lengthen the stem. This is not
+           good typesetting practice.  */
        }
     }
-  
-   bool no_extend_b = to_boolean (me->get_grob_property ("no-stem-extend"));
+
+
+  bool no_extend_b = to_boolean (me->get_grob_property ("no-stem-extend"));
    if (!grace_b && !no_extend_b && dir * st < 0) // junkme?
       st = 0.0;
 
index a21a2a4959e49e99644ef5956be601910685bdf5..e6e07253cad45b9debd721732e5c11d51a54d990 100644 (file)
@@ -83,7 +83,7 @@ Tuplet_bracket::brew_molecule (SCM smob)
     {
       number_visibility = gh_scm2bool (numb);
     }
-  else if (bracket == ly_symbol2scm ("if-no-beam"))
+  else if (numb == ly_symbol2scm ("if-no-beam"))
     number_visibility = !par_beam;
   
        
index 8c6dc1e97e57273286e854ce6dfb3564f77bfdd3..4c238e1fb6e75e0387676010adbed166cec9c49b 100644 (file)
@@ -1,6 +1,6 @@
 # Mudela_rules.make
 
-.SUFFIXES: .doc .dvi .mudtex .tely .texi
+.SUFFIXES: .doc .dvi .mudtex .tely .texi .ly
 
 
 $(outdir)/%.latex: %.doc
@@ -34,6 +34,8 @@ $(outdir)/%.info: $(outdir)/%.nexi
 #$(outdir)/%.nfo: $(outdir)/%.nexi
 #      $(MAKEINFO) --output=$(outdir)/$(*F).info $<
 
+$(outdir)/%.tex: $(outdir)/%.ly
+       $(LILYPOND) $(LILYPOND_BOOK_INCLUDES) -o $@ $< 
 
 #
 # Timothy's booklet
index 2e2b9c9a3d9943f37caf44463cbf12b2cac004cc..e3b47930d0381d7d51c28cb18b2f6d13be9b0262 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.4.1
-Entered-date: 15MAY01
+Version: 1.4.2
+Entered-date: 28MAY01
 Description: @BLURB@
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.4.1.tar.gz 
+       1000k lilypond-1.4.2.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.4.1.tar.gz 
+       1000k lilypond-1.4.2.tar.gz 
 Copying-policy: GPL
 End
index 7a4cec8be8a1d3db85da6eb65bd3806d6feb5051..f257358cb292cb7b777fff6b21fed2eb641f99ba 100644 (file)
@@ -1,11 +1,11 @@
 %define info yes
 
 Name: lilypond
-Version: 1.4.1
+Version: 1.4.2
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.1.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.2.tar.gz
 Summary: Create and print music notation 
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 BuildRoot: /tmp/lilypond-install
index da4af336bec1459ee6fbc927e4266e0c26ac73e8..f2d26441cfe9691a359b42424ab6a3d8f0a950cb 100644 (file)
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
-Version: 1.4.1
+Version: 1.4.2
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.1.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.2.tar.gz
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
index f7ee15839bb118e1dd8614f51c3205b02d5f8f84..aee29cef2b8d6cf4710b8750d77fcc8680e6b515 100644 (file)
@@ -100,7 +100,7 @@ Lilypond_stream::header()
   *os_p_ << filename_str_g;
   *os_p_ << "\n\n";
   // ugh
-  *os_p_ << "\\version \"1.3.76\";\n";
+  *os_p_ << "\\version \"1.4.0\";\n";
 }
 
 void
index 291566e75b0bde4590fb62619c4ee42133bb0c1c..78e498658ded2795436dc88ea54c88c43d51cbca 100644 (file)
        
 
        (DotColumn . (
-               (axes 0 )
+               (axes 0)
+               (direction . 1)
+               (X-extent-callback . ,Axis_group_interface::group_extent_callback)
+               
+               (X-offset-callbacks . (,Dot_column::side_position))
                (meta . ,(grob-description "DotColumn" dot-column-interface  axis-group-interface))
        ))
 
index ecf2171ffc5e3fe50551dded44885cdf459e7986..2b9d42b5cb4356064617e365d1c546d53699a495 100644 (file)
      '("output-lib.scm"
        "tex.scm"
        "ps.scm"
+       "pdf.scm"
+       "pdftex.scm"
        "ascii-script.scm"
        ))
 
diff --git a/scm/pdf.scm b/scm/pdf.scm
new file mode 100644 (file)
index 0000000..b5a3cb6
--- /dev/null
@@ -0,0 +1,288 @@
+;;; pdf.scm -- implement Scheme output routines for PDF.
+;;;
+;;;  source file of the GNU LilyPond music typesetter
+;;; 
+;;; (c) 2001 Stephen Peters <portnoy@portnoy.org>
+
+; currently no font commands; this is a helper for pdftex.scm.
+
+(define (pdf-scm action-name)
+  ; simple commands to store and update currentpoint.  This makes the
+  ; other procedures simple rewrites of the PostScript code.
+  (define currentpoint (cons 0 0))
+  (define (showcp) 
+    (string-append (ly-number->string (car currentpoint)) " " 
+                  (ly-number->string (cdr currentpoint)) " "))
+  (define (moveto x y)
+    (set! currentpoint (cons x y))
+    (string-append (showcp) "m "))
+  (define (moveto-pair pair)
+    (moveto (car pair) (cdr pair)))
+  (define (rmoveto x y)
+    (moveto (+ x (car currentpoint)) (+ y (cdr currentpoint))))
+  (define (lineto x y)
+    (set! currentpoint (cons x y))
+    (string-append (showcp) "l "))
+  (define (lineto-pair pair)
+    (lineto (car pair) (cdr pair)))
+  (define (rlineto x y)
+    (lineto (+ x (car currentpoint)) (+ y (cdr currentpoint))))
+  (define (curveto x1 y1 x2 y2 x y)
+    (set! currentpoint (cons x y))
+    (string-append (ly-number->string x1) (ly-number->string y1)
+                  (ly-number->string x2) (ly-number->string y2)
+                  (ly-number->string x) (ly-number->string y) "c "))
+  (define (curveto-pairs pt1 pt2 pt)
+    (curveto (car pt1) (cdr pt1) (car pt2) (cdr pt2) (car pt) (cdr pt)))
+  (define (closefill) "h f ")
+  (define (closestroke) "S ")
+  (define (setlinewidth w) (string-append (ly-number->string w) "w "))
+  (define (setgray g) (string-append (ly-number->string g) "g "))
+  (define (setlineparams) "1 j 1 J ")
+  
+  (define (beam width slope thick)
+    (let ((ht (* slope width)))
+      (string-append (moveto 0 (- (/ thick 2)))
+                    (rlineto width ht)
+                    (rlineto 0 thick)
+                    (lineto 0 (/ thick 2))
+                    (closefill))))
+
+  (define (comment s) 
+    (string-append "% " s "\n"))
+
+  (define (brack-traject pair ds alpha)
+    (let ((alpha-rad (* alpha (/ 3.141592654 180))))
+      (cons (+ (car pair) (* (cos alpha-rad) ds))
+           (+ (cdr pair) (* (sin alpha-rad) ds)))))
+    
+  (define (bracket arch_angle arch_width arch_height height arch_thick thick)
+    (let* ((halfht (+ (/ height 2) thick))
+          (farpt (cons (+ thick arch_height) 
+                       (+ (- halfht arch_thick) arch_width)))
+          (halfbrack 
+           (string-append (moveto 0 0)
+                          (lineto thick 0)
+                          (lineto thick (- halfht arch_thick))
+                          (curveto-pairs
+                           (brack-traject (cons thick 
+                                                (- halfht arch_thick))
+                                          (* 0.4 arch_height) 0)
+                           (brack-traject farpt 
+                                          (* -0.25 arch_height) 
+                                          arch_angle)
+                           farpt)
+                          (curveto-pairs 
+                           (brack-traject farpt
+                                          (* -0.15 arch_height)
+                                          arch_angle)
+                           (brack-traject (cons (/ thick 2) halfht)
+                                          (/ arch_height 2) 0)
+                           (cons 0 halfht))
+                          (lineto 0 0)
+                          (closefill))))
+      (string-append (setlinewidth (/ thick 2))
+                    (setlineparams)
+                    "q 1 0 0 -1 0 0 cm " ; flip coords
+                    halfbrack
+                    "Q " ; grestore
+                    halfbrack)))
+  
+  (define (char i)
+    (invoke-char " show" i))
+
+  (define (hairpin thick width starth endh )
+    (string-append (setlinewidth thick)
+                  (moveto 0 starth)
+                  (lineto width endh)
+                  (moveto 0 (- starth))
+                  (lineto width (- endh))
+                  (closestroke)))
+
+  (define (dashed-slur thick dash l)
+    (string-append (setlineparams)
+                  "[ " (ly-number->string dash) " "
+                  (ly-number->string (* 10 thick)) " ] 0 d "
+                  (setlinewidth thick)
+                  (moveto-pair (car l))
+                  (apply curveto (cdr l))
+                  (closestroke)))
+                  
+  (define (dashed-line thick on off dx dy)
+    (string-append (setlineparams)
+                  "[ " (ly-number->string on) " "
+                  (ly-number->string off) " ] 0 d "
+                  (setlinewidth thick)
+                  (moveto 0 0)
+                  (lineto dx dy)
+                  (closestroke)))
+
+  (define (repeat-slash width slope beamthick)
+    (let* ((height (/ beamthick slope))
+          (xwid (sqrt (+ (* beamthick beamthick) (* height height)))))
+      (string-append (moveto 0 0)
+                    (rlineto xwid 0)
+                    (rlineto width (* slope width))
+                    (rlineto (- xwid) 0)
+                    (closefill))))
+
+  (define (end-output) "")
+  
+  (define (experimental-on) "")
+  
+  (define (filledbox breadth width depth height) 
+    (string-append (ly-number->string (- breadth))
+                  (ly-number->string (- depth))
+                  (ly-number->string (+ breadth width))
+                  (ly-number->string (+ depth height))
+                  " re f "))
+
+  (define (font-def i s) "")
+
+  (define (font-switch i) "")
+
+  (define (header-end) "")
+  
+  (define (lily-def key val) "")
+
+  (define (header creator generate) "")
+  
+  (define (invoke-char s i)
+    (string-append 
+     "(\\" (inexact->string i 8) ") " s " " ))
+  
+  (define (invoke-dim1 s d) 
+    (string-append
+     (ly-number->string (* d  (/ 72.27 72))) " " s ))
+
+  (define (placebox x y s) "")
+
+  (define (bezier-sandwich l thick)
+    (string-append (setlinewidth thick)
+                  (moveto-pair (list-ref l 7))
+                  (curveto-pairs (list-ref l 4)
+                                 (list-ref l 5)
+                                 (list-ref l 6))
+                  (lineto-pair (list-ref l 3))
+                  (curveto-pairs (list-ref l 0)
+                                 (list-ref l 1)
+                                 (list-ref l 2))
+                  "B "))
+
+  (define (start-line height) "")
+  
+  (define (stem breadth width depth height) 
+    (filledbox breadth width depth height))
+
+  (define (stop-line) "")
+
+  (define (text s) "")
+
+  (define (volta h w thick vert_start vert_end)
+    (string-append (setlinewidth thick)
+                  (setlineparams)
+                  (if (= vert_start 0) 
+                      (string-append (moveto 0 0)
+                                     (lineto 0 h))
+                      (moveto 0 h))
+                  (lineto w h)
+                  (if (= vert_end 0) (lineto w 0) "")
+                  (closestroke)))
+
+  (define (tuplet ht gap dx dy thick dir)
+    (let ((gapy (* (/ dy dx) gap)))
+      (string-append (setlinewidth thick)
+                    (setlineparams)
+                    (moveto 0 (- (* ht dir)))
+                    (lineto 0 0)
+                    (lineto (/ (- dx gap) 2)
+                            (/ (- dy gapy) 2))
+                    (moveto (/ (+ dx gap) 2)
+                            (/ (+ dy gapy) 2))
+                    (lineto dx dy)
+                    (lineto dx (- dy (* ht dir)))
+                    (closestroke))))
+
+  (define (unknown) "\n unknown\n")
+
+  ; Problem here -- we're using /F18 for the font, but we don't know
+  ; for sure that that will exist.
+  (define (ez-ball ch letter-col ball-col)
+    (let ((origin (cons 0.45 0)))
+      (string-append (setgray 0)
+                    (setlinewidth 1.1)
+                    (moveto-pair origin) (lineto-pair origin)
+                    (closestroke)
+                    (setgray ball-col)
+                    (setlinewidth 0.9)
+                    (moveto-pair origin) (lineto-pair origin)
+                    (closestroke)
+                    (setgray letter-col)
+                    (moveto-pair origin)
+                    "BT "
+                    "/F18 0.85 Tf "
+                    "-0.28 -0.30 Td " ; move for text block
+                    "[(" ch ")] TJ ET ")))
+
+  (define (define-origin a b c ) "")
+  (define (no-origin) "")
+  
+  ;; PS
+  (cond ((eq? action-name 'all-definitions)
+        `(begin
+           (define beam ,beam)
+           (define tuplet ,tuplet)
+           (define bracket ,bracket)
+           (define char ,char)
+           (define volta ,volta)
+           (define bezier-sandwich ,bezier-sandwich)
+           (define dashed-line ,dashed-line) 
+           (define dashed-slur ,dashed-slur) 
+           (define hairpin ,hairpin) 
+           (define end-output ,end-output)
+           (define experimental-on ,experimental-on)
+           (define filledbox ,filledbox)
+           (define font-def ,font-def)
+           (define font-switch ,font-switch)
+           (define header-end ,header-end)
+           (define lily-def ,lily-def)
+           (define font-load-command ,font-load-command)
+           (define header ,header) 
+           (define invoke-char ,invoke-char) 
+           (define invoke-dim1 ,invoke-dim1)
+           (define placebox ,placebox)
+           (define repeat-slash ,repeat-slash) 
+           (define select-font ,select-font)
+           (define start-line ,start-line)
+           (define stem ,stem)
+           (define stop-line ,stop-line)
+           (define stop-last-line ,stop-line)
+           (define text ,text)
+           (define no-origin ,no-origin)
+           (define define-origin ,define-origin)
+           (define ez-ball ,ez-ball)
+           ))
+       ((eq? action-name 'tuplet) tuplet)
+       ((eq? action-name 'beam) beam)
+       ((eq? action-name 'bezier-sandwich) bezier-sandwich)
+       ((eq? action-name 'bracket) bracket)
+       ((eq? action-name 'char) char)
+       ((eq? action-name 'dashed-line) dashed-line) 
+       ((eq? action-name 'dashed-slur) dashed-slur) 
+       ((eq? action-name 'hairpin) hairpin)
+       ((eq? action-name 'experimental-on) experimental-on)
+       ((eq? action-name 'ez-ball) ez-ball)    
+       ((eq? action-name 'filledbox) filledbox)
+       ((eq? action-name 'repeat-slash) repeat-slash)
+       ((eq? action-name 'select-font) select-font)
+       ((eq? action-name 'volta) volta)
+       (else (error "unknown tag -- PDF-SCM " action-name))
+       )
+  )
+
+(define (scm-pdf-output)
+  (ly-eval (pdf-scm 'all-definitions)))
+
+; Local Variables:
+; scheme-program-name: "guile"
+; End:
\ No newline at end of file
index 5b5da019255ed818cdfcd190d91573df25966227..8b560e8959eb26ad81dc7f3c8c87c0996023752b 100644 (file)
@@ -401,7 +401,7 @@ output_dict= {
 @end tex
 @html
 <p>
-<img src=%(fn)s.png>
+<img src="%(fn)s.png" alt="">
 @end html
 """,
                }
index a3aa23133abc566734081d90aada71c361e642f5..6a08f29e0a4c69c865aba175ae9f2e4b27e0d5aa 100644 (file)
@@ -38,10 +38,12 @@ default_footer = r"""<hr>Please take me <a href=@INDEX@>back to the index</a>
 of @PACKAGE_NAME@
 """
 
-built = r"""<hr><font size=-1>
-This page was built from @PACKAGE_NAME@-@PACKAGE_VERSION@ by 
-<address><br>@GCOS@ &lt<a href="mailto:%s">@MAIL_ADDRESS@</a>&gt,
-@LOCALTIME@.</address><p></font>"""
+built = r"""<hr>
+<p><font size="-1">
+This page was built from @PACKAGE_NAME@-@PACKAGE_VERSION@ by<br>
+</font>
+<address><font size="-1">@GCOS@ &lt;<a href="mailto:%s">@MAIL_ADDRESS@</a>&gt;,
+@LOCALTIME@.</font></address>"""
 
 
 def gulp_file (f):
@@ -108,7 +110,10 @@ def set_gcos ():
                pw = ntpwd.getpwname(os.environ['USERNAME'])
        else:
                import pwd
-               pw = pwd.getpwuid (os.getuid());
+               if os.environ.has_key('FAKEROOTKEY'):
+                       pw = pwd.getpwnam (os.environ['LOGNAME'])
+               else:
+                       pw = pwd.getpwuid (os.getuid())
 
        f = pw[4]
        f = string.split (f, ',')[0]
@@ -129,8 +134,8 @@ top_url = os.path.dirname (index_url) + "/"
 
 header = compose (default_header, header_file)
 footer = compose (default_footer, footer_file) + built
-header_tag = '<! header_tag >'
-footer_tag = '<! footer_tag >'
+header_tag = '<!-- header_tag -->'
+footer_tag = '<!-- footer_tag -->'
 
 def do_file (f):
        s = gulp_file (f)
@@ -142,10 +147,10 @@ def do_file (f):
                m = re.search (r'\*\*\*', changes)
                if m:
                        changes = changes[:m.start (0)]
-               s = re.sub ('top_of_ChangeLog', '<XMP>\n'+ changes  + '\n</XMP>\n', s)
+               s = re.sub ('top_of_ChangeLog', '<pre>\n'+ changes  + '\n</pre>\n', s)
 
        if re.search (header_tag, s) == None:
-               body = '<BODY BGCOLOR=WHITE><FONT COLOR=BLACK>'
+               body = '<BODY BGCOLOR=WHITE TEXT=BLACK>'
                s = re.sub ('(?i)<body>', body, s)
                if re.search ('(?i)<BODY', s):
                        s = re.sub ('(?i)<body[^>]*>', body + header, s, 1)
@@ -154,10 +159,14 @@ def do_file (f):
                else:
                        s = header + s
 
-               s = header_tag + s
+               s = header_tag + '\n' + s
+
+               if re.search ('(?i)<!DOCTYPE', s) == None:
+                       doctype = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">\n'
+                       s = doctype + s
 
        if re.search (footer_tag, s) == None:
-               s = s + footer_tag
+               s = s + footer_tag + '\n'
 
                if re.search ('(?i)</body', s):
                        s = re.sub ('(?i)</body>', footer + '</BODY>', s, 1)
index caf13194e93befd535cd4affe394bd29e0edeeae..025ef15d211ff3d7e49b34ee375cc8b85afa5267 100644 (file)
@@ -1,19 +1,25 @@
 # stepmake/Package.make
 
 deb:
-       $(MAKE) -C $(depth)/debian
+#      $(MAKE) -C $(depth)/debian
+       @echo The \"deb\" target is deprecated.
+       @echo Please install the appropriate Debian packages:
+       @echo
+       @echo "  apt-get install task-debian-devel"
+       @echo 
+       @echo and then run \"debuild\" in the lilypond directory.
 
 # urg
 #(cd $(depth)/../debian/$(distname); \
 #  ln -sf debian DEBIAN; )
 # su -c 'dpkg-deb -b $(depth)/../debian/$(distname)'
 # urg, why aren't there any decent manual pages for dpkg or rpm?
-       (cd $(depth)/../debian; \
-         rm -rf $(distname) $(distname).deb;\
-         tar xz -C $(depth)/../debian -f $(release-dir)/$(distname).tar.gz; \
-         cd $(distname);\
-         dpkg-buildpackage -b -rfakeroot; \
-       )
+#      (cd $(depth)/../debian; \
+#        rm -rf $(distname) $(distname).deb;\
+#        tar xz -C $(depth)/../debian -f $(release-dir)/$(distname).tar.gz; \
+#        cd $(distname);\
+#        dpkg-buildpackage -b -rfakeroot; \
+#      )
 
 makeflags=$(patsubst %==, %, $(patsubst ---%,,$(patsubst ----%,,$(MAKEFLAGS:%=--%))))
 
index 5e91c0da9247007b70d9919d300e581005425991..67c8a88f1d0d8961bda1185f0fee82570503f0bf 100644 (file)
-% A Native PDF version of lily-ps-defs.tex, in which the language
-% features of the PS code are handled by TeX.  This takes the place of
-% lilyponddefs.ps, lily.ps, and lily-ps-defs.tex for PDFTeX.
-%
-% Note that this file will probably require changes if the lily.ps
-% file changes, which is annoying in the long run.  It might be best
-% if sometime the intelligence embodied in lily.ps could be moved up
-% to the GUILE level, so that the \embeddedps commands could consist
-% simply of moveto, lineto, curveto, fill, and stroke commands, with
-% numeric arguments.  Such a setup would allow this file to be simpler
-% and probably cause the resulting PostScript code to be faster as
-% well.
+% Defines an embeddedpdf command so that we can do the right thing.
 
-% Redefine @ and _ so we can use them in definition names here.
-\catcode`\@=11
-\catcode`\_=11
-
-% Define a helper procedure for PDF coding.  This file really
-% shouldn't be read if \pdfliteral is undefined, but the alternate
-% definition is nice for testing.
-
-\ifx\pdfliteral\undefined
-  \def\LYPDF#1{\message{[ignored pdfliteral: #1]}}
-\else
-  \let\LYPDF=\pdfliteral
-\fi
-
-% Strip 'pt' off of dimensions.  Borrowed from latex.
-\begingroup
-  \catcode`P=12
-  \catcode`T=12
-  \lowercase{
-     \def\x{\def\lypdf@rempt##1.##2PT{##1\ifnum##2>\z@.##2\fi}}}
-  \expandafter\endgroup\x
-\def\lypdf@strippt{\expandafter\lypdf@rempt\the}
-
-\def\LYDIM#1{\expandafter\lypdf@strippt\dimen#1\space}
-
-\def\lypdf@correctfactor{65536}
-\def\lypdf@divcorrect#1{\multiply\dimen#1 \lypdf@correctfactor\relax}
-
-%% Stack handling.  The design for this is borrowed from supp-pdf.tex
-
-\newcount\nofLYPDFargs
-\def\@@LYPDF{@@LYPDF}
-
-% Add an argument to the `stack'
-\def\setLYPDFarg#1{
-  \advance\nofLYPDFargs by 1
-  \expandafter\def
-    \csname\@@LYPDF\the\nofLYPDFargs\endcsname
-    {#1}
-}
-
-% Get the values for stack variables.  The a form includes a closing
-% \space and is thus useful for embedding in \LYPDF macros.
-\def\gLYPDFa#1
-  {\csname\@@LYPDF#1\endcsname\space}
-\def\gLYPDFan#1
-  {\csname\@@LYPDF#1\endcsname}
-
-% Reset the stack back to normal.
-\def\resetLYPDFstack{\nofLYPDFargs=0}
-
-% A translator for \embeddedps commands.  This simply stacks up the
-% arguments and then passes the last arg to the appropriate lypdf@name
-% macro.
-
-\def\embeddedps#1{  
-  \lypdf@handleArgs#1 \\}
-
-%% Handle the argument list.  Note: when working with arrays, just
-%% keep tacking things onto a string until we get a close bracket.
-%% The various LYPDFarray... variables are used for that.
-\newif\ifLYPDFarray
-\def\LYPDFarraystart{[}
-\def\LYPDFarrayend{]}
-\def\LYPDFarraystring{}
-
-\def\lypdf@{lypdf@}
-\def\lypdf@handleArgs#1 #2\\{
-  \ifx\\#2\\% 
-    \csname\lypdf@#1\endcsname
-    \resetLYPDFstack
-  \else
-    \edef\argstring{#1}
-    \ifLYPDFarray%
-      \edef\LYPDFarraystring{\LYPDFarraystring\space\argstring}
-      \ifx\argstring\LYPDFarrayend%
-        \LYPDFarrayfalse
-        \setLYPDFarg{\LYPDFarraystring}
-      \fi
-    \else
-      \ifx\argstring\LYPDFarraystart%
-       \LYPDFarraytrue
-       \edef\LYPDFarraystring{[}
-      \else
-        \setLYPDFarg{#1}
-      \fi
-    \fi
-    \lypdf@handleArgs#2\\
-  \fi}
-
-% Here turning on PostScript sets up the bracket stuff.  This should
-% probably be called by a more generic header macro.
-\def\turnOnPostScript{\lypdf@load_bracket_dimens}%
-\def\turnOnExperimentalFeatures{}%
-
-%% TODO: lily-ps-defs sets a linecap of 1.  I'm not yet sure how to do that 
-%% for the Page Description level in PDFTeX.
-
-%% What follows are the definitions for the embeddedps commands.
-%% Notes that in general, \dimen0 and \dimen1 are the x and y
-%% positions of the cursor (used for rlineto handling), and dimen2-9
-%% are used for local dimension handling in the various commands.
-
-\def\lypdf@resetstring{\edef\lypdf@curstring{}}
-
-\def\lypdf@moveto#1#2{
-  \dimen0=#1pt
-  \dimen1=#2pt
-  \edef\lypdf@curstring{\lypdf@curstring\space\LYDIM0 \LYDIM1 m}
-}
-
-\def\lypdf@rmoveto#1#2{
-  \advance\dimen0 by #1 pt
-  \advance\dimen1 by #2 pt
-  \edef\lypdf@curstring{\lypdf@curstring\space\LYDIM0 \LYDIM1 m}
-}
-
-\def\lypdf@rlineto#1#2{
-  \advance\dimen0 by #1 pt
-  \advance\dimen1 by #2 pt
-  \edef\lypdf@curstring{\lypdf@curstring\space\LYDIM0 \LYDIM1 l}
+\def\lilySpace{ }
+\def\turnOnPostScript{%
+        % This sets CTM so that you get to the currentpoint
+        % by executing a 0 0 moveto
+        \def\embeddedpdf##1{%
+                \pdfliteral{q \lilypondpaperoutputscale\lilySpace 0 0 %
+                        \lilypondpaperoutputscale\lilySpace 0 0 cm%
+                        ##1 Q}%
+        }
 }
 
-\def\lypdf@draw_beam{% takes width, slope, thick
-  \dimen2=\gLYPDFa3 pt\divide\dimen2 by 2
-  \dimen3=\gLYPDFa1 pt\dimen3=\gLYPDFa2 \dimen3
-  \lypdf@resetstring
-  \lypdf@moveto{0}{-\LYDIM2}
-  \lypdf@rlineto{\gLYPDFa1}{\LYDIM3}
-  \lypdf@rlineto{0}{\gLYPDFa3}
-  \LYPDF{\lypdf@curstring\space 0 \LYDIM2 l b}
-}
-       
-\def\lypdf@draw_decrescendo{% takes width, ht, cont, thick
-  \LYPDF{\gLYPDFa4 w
-        \gLYPDFa1 \gLYPDFa3 m 0 \gLYPDFa2 l S 
-        \gLYPDFa1 -\gLYPDFa3 m 0 -\gLYPDFa2 l S}
-}
-\def\lypdf@draw_crescendo{% takes width, ht, cont, thick
-  \LYPDF{\gLYPDFa4 w
-        0 \gLYPDFa3 m \gLYPDFa1 \gLYPDFa2 l S -\gLYPDFa3 m 
-        \gLYPDFa1 -\gLYPDFa2 l S}
-}
-
-\def\lypdf@draw_tuplet{% takes height, gap, dx, dy, thickness, dir
-  \dimen2=\gLYPDFa1 pt\multiply\dimen2 by \gLYPDFa6 \relax   
-                                       % height*dir
-  \dimen3=\gLYPDFa2 pt                 % tuplet_gapx
-  \dimen0=\gLYPDFa3 pt
-  \dimen4=\gLYPDFa4 \dimen3 \divide\dimen4 by \dimen0
-      \lypdf@divcorrect4               % tuplet_gapy
-  \dimen5=\gLYPDFa3 pt \advance\dimen5 by-\dimen3
-      \divide\dimen5 by 2              % (dx-gx)/2
-  \dimen6=\gLYPDFa4 pt \advance\dimen6 by-\dimen4
-      \divide\dimen6 by 2              % (dx-gx)/2
-
-  \lypdf@resetstring
-  \lypdf@moveto{0}{0}
-  \lypdf@rlineto{0}{\LYDIM2}
-  \lypdf@rlineto{\LYDIM5}{\LYDIM6}
-  \lypdf@rmoveto{\LYDIM3}{\LYDIM4}
-  \lypdf@rlineto{\LYDIM5}{\LYDIM6}
-  \lypdf@rlineto{0}{-\LYDIM2}
-  \LYPDF{\gLYPDFa5 w 1 j 1 J \lypdf@curstring}
-}
-
-\def\lypdf@draw_volta{% takes height, width, thickness, v_start, v_end
-  \dimen2=\gLYPDFa1 pt                 % volta height
-  \ifnum\gLYPDFa4 =0
-    \edef\vstartstr{0 0 m 0 \LYDIM2 l\space}
-  \else
-    \edef\vstartstr{0 \LYDIM2 m\space}
-  \fi
-  \ifnum\gLYPDFa5 =0
-    \edef\vendstr{\gLYPDFa2 0 l\space}
-  \else
-    \edef\vendstr{}
-  \fi
-  \LYPDF{\gLYPDFa3 w 1 J 1 j \vstartstr \gLYPDFa2 \LYDIM2 l \vendstr S}
-}
-
-\def\lypdf@draw_bezier_sandwich{% sixteen coords, thickness
-  \LYPDF{\gLYPDFa17 w
-        \gLYPDFa15 \gLYPDFa16 m
-        \gLYPDFa9 \gLYPDFa10 \gLYPDFa11 \gLYPDFa12 \gLYPDFa13 \gLYPDFa14 c
-        \gLYPDFa7 \gLYPDFa8 l
-        \gLYPDFa1 \gLYPDFa2 \gLYPDFa3 \gLYPDFa4 \gLYPDFa5 \gLYPDFa6 c
-        b}}
-
-\def\lypdf@draw_dashed_slur{%
-  \LYPDF{1 J 1 j \gLYPDFa10 \gLYPDFa11 d \gLYPDFa9 w
-        \gLYPDFa1 \gLYPDFa2 m
-        \gLYPDFa3 \gLYPDFa4 \gLYPDFa5 \gLYPDFa6 \gLYPDFa7 \gLYPDFa8 c
-        S}}
-
-%% Definitions for the various dimensions used by the brackets.
-\newdimen\lypdf@interline     
-\newdimen\lypdf@bracket_b     
-\newdimen\lypdf@bracket_w     
-\newdimen\lypdf@bracket_v     
-\newdimen\lypdf@bracket_u     
-\newdimen\lypdf@bracket_t     
-
-\def\lypdf@load_bracket_dimens{
-  \lypdf@interline=\lilypondpaperinterline pt
-  \lypdf@bracket_b=0.3333\lypdf@interline
-  \lypdf@bracket_w=2\lypdf@interline
-  \lypdf@bracket_v=1.5\lypdf@interline
-  \lypdf@bracket_u=\lypdf@bracket_v
-  \lypdf@bracket_t=\lilypondpaperstaffline pt
-  \lypdf@bracket_t=2\lypdf@bracket_t
-  \relax
-}
-
-%alpha=50.  We calculate the sin and cos directly because TeX can't.
-\def\lypdf@bracket_sin{0.76604}%
-\def\lypdf@bracket_cos{0.64279}%
-
-\def\lypdf@draw_half_bracket{% dimen2 is the bracket height
-  \dimen3=\dimen2\advance\dimen3 by -\lypdf@bracket_t  % h - t
-
-  % Here, dimen0 and dimen1 are the end points of the bracket
-  \dimen0=\lypdf@bracket_b\relax\advance\dimen0 by \lypdf@bracket_v
-  \dimen1=\dimen3\advance\dimen1 by \lypdf@bracket_u
-
-  % bottom of half bracket and inner side
-  \edef\lypdf@halfbrack{0 0 m \lypdf@strippt\lypdf@bracket_b\space 0 l 
-       \lypdf@strippt\lypdf@bracket_b\space \LYDIM3 l}
-
-  % inner curve -- first control point is just 0.4*v to the right
-  \dimen4=\lypdf@bracket_b\advance\dimen4 by 0.4\lypdf@bracket_v
-  %  ... second point is calc'd using alpha
-  \dimen5=-0.25\lypdf@bracket_v\relax
-  \dimen6=\dimen0\advance\dimen6 by \lypdf@bracket_cos\dimen5\relax
-  \dimen7=\dimen1\advance\dimen7 by \lypdf@bracket_sin\dimen5\relax
-  % draw the curve
-  \edef\lypdf@halfbrack
-    {\lypdf@halfbrack\space\LYDIM4 \LYDIM3 \LYDIM6 \LYDIM7 \LYDIM0 \LYDIM1 c}
-
-  % outer curve -- second control point is just .5*v to the right
-  % (plus 1 pt)
-  \dimen4=0.5\lypdf@bracket_v\advance\dimen4 by 1pt
-  % ... first point is calc'd using alpha  
-  \dimen5=-0.15\lypdf@bracket_v\relax
-  \dimen6=\dimen0\advance\dimen6 by \lypdf@bracket_cos\dimen5\relax
-  \dimen7=\dimen1\advance\dimen7 by \lypdf@bracket_sin\dimen5\relax
-  % draw the curve, close, stroke, fill
-  \edef\lypdf@halfbrack
-    {\lypdf@halfbrack\space\LYDIM6 \LYDIM7 \LYDIM4 \LYDIM2 0 \LYDIM2 c b} 
-}
-
-\def\lypdf@draw_bracket{% height
-  \dimen2=\gLYPDFa1 pt \divide\dimen2 by 2
-                \advance\dimen2 by \lypdf@bracket_b\relax
-  % calculate the half bracket
-  \lypdf@draw_half_bracket
-  % set up graphics state, gsave, and flip the coord system 
-  % then draw both half brackets.
-  \LYPDF{\lypdf@strippt\lypdf@bracket_t\space w 
-       1 J 1 j q 1 0 0 -1 0 0 cm
-       \lypdf@halfbrack\space Q \lypdf@halfbrack}
-  }
-
-
-%% Clean up after ourselves.
-
-\catcode`\@=12
-\catcode`\_=8
+\def\turnOnExperimentalFeatures{}
 
-\endinput
index aaeab27d9c16a2e00271ebff8a4ca9f66bed1c03..de417a1ddd91afb2254da47b6a659338f40eca19 100644 (file)
@@ -51,8 +51,7 @@
 \def\placebox#1#2#3{%
         \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}%
 
-% Are we using PDFTeX?  If so, use pdf definitions to translate
-% \embeddedps commands to embedded PDF.
+% Are we using PDFTeX?  If so, use pdf definitions.
 \ifx\pdfoutput\undefined  
   \input lily-ps-defs
 \else