Generated by hanwen@cs.uu.nl using package-diff 0.62,
From = lilypond-1.2.0, To = lilypond-1.2.1

usage 

    cd lilypond-source-dir; patch -E -p1 < lilypond-1.2.1.diff

Patches do not contain automatically generated files 
or (urg) empty directories, 
i.e., you should rerun autoconf, configure --state
1.2.0
1.2.1
++state
diff -urN ../lilypond-1.2.0/ANNOUNCE-1.2 ./ANNOUNCE-1.2
--- ../lilypond-1.2.0/ANNOUNCE-1.2	Wed Jul 28 13:14:47 1999
+++ ./ANNOUNCE-1.2	Wed Jul 28 18:08:00 1999
@@ -1,6 +1,5 @@
 -*- text -*-
 
-[DRAFT]
 
 Keywords: midi notation music typesetting gnu font engraving 
 Subject: GNU LilyPond 1.2 released - The Music Typesetter
@@ -27,8 +26,8 @@
 
 Sources for this project are on
 
-	ftp://ftp.cs.uu.nl/~hanwen/lilypond/ (Europe)
-	ftp://ftp.gnu.org/
+	ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.2/ (Europe)
+	ftp://ftp.gnu.org/pub/lilypond/
 
 Prepackaged i386 and PPC packages for both Debian and RedHat GNU are
 also available.
@@ -48,8 +47,7 @@
   signature, more note heads.
 
 * Enhanced input: semi-automatic beaming, (nested) tuplets, (nested)
-  repeats, chordnames, automatic Lyrics
-  durations.
+  repeats, chordnames, automatic Lyrics durations.
   
 * Grace notes, volta brackets, multiple styles for note heads and 
   time signatures, breathing signs, lyric extenders, cross staff 
diff -urN ../lilypond-1.2.0/BUGS ./BUGS
--- ../lilypond-1.2.0/BUGS	Wed Jul 14 17:04:26 1999
+++ ./BUGS	Mon Aug 16 09:37:51 1999
@@ -1,6 +1,10 @@
 
 This documents serious bugs 
 
+Send bug reports to bug-gnu-music@gnu.org.  For help and questions use
+help-gnu-music@gnu.org and gnu-music-discuss@gnu.org.  Please consult
+the faq before mailing your problems.
+
 ********
 
 [LinuxPPC-R5, egcs-1.1.2-12c]
@@ -9,7 +13,7 @@
 
 	*dest++ = *src++;
 
-Bug report filed, fixed in egcs-1.1.2-12f.
+Bug report filed, fixed in egcs-1.1.2-12f or gcc-2.95-0a.
 Although we've currently got a workaround in place, the compiler
 is buggy; you should upgrade:
 
diff -urN ../lilypond-1.2.0/ChangeLog ./ChangeLog
--- ../lilypond-1.2.0/ChangeLog	Thu Jan  1 01:00:00 1970
+++ ./ChangeLog	Mon Aug 16 11:42:58 1999
@@ -0,0 +1,26 @@
+pl 0.uu1
+	- refman updates by Werner & Mats
+	- now use ChangeLog for changes.
+	
+pl 0.jcn2
+	- po fixes
+
+pl 0.jcn1
+	- gcc-2.95 nitpicks
+	- added pointers to mailing lists in toplevel docs
+
+0.mb2
+	- configure: more robust detection of Guile
+	- Midi_note_off: revert to fixed note-off velocity. Fixes
+	  problem with notes that never stop.
+	- Decreased breakable_column_space_strength
+	- Added a few TODO
+	- bf: "harmonic" and "cross" note heads also for half and 
+	  whole notes.
+	- linewidth and textheight set independent of the font size.
+	- bf, titledefs.tex: opus and piece are not repeated for 
+	  every piece unless they are explicitly set again.
+
+0.mb1
+  	- Changed dynamicDir to dynamicDirection.
+  	- refman and tutorial corrections.
diff -urN ../lilypond-1.2.0/Documentation/faq.yo ./Documentation/faq.yo
--- ../lilypond-1.2.0/Documentation/faq.yo	Mon Jul 26 02:23:17 1999
+++ ./Documentation/faq.yo	Mon Aug 16 10:29:27 1999
@@ -510,6 +510,12 @@
 
 question(What is Urtext?  Critical Edition?)
 
+Werner Lemberg:
+
+It may be translated best as `that what the composer intended to tell
+the reader'
+
+
 Peter Chubb <peterc@aurema.com> writes:
 
 An Urtext is a reconstruction of the earliest form of a text,
@@ -539,6 +545,7 @@
 signature changes, time compression (original in 4/1, playing edition
 in 4/4, for example, with all semibreves replaced with crotchets)
 Copyright is in the arranger/editor.
+
 
 question(How does copyright for sheet music work? Can I enter and spread my newly bought Bach urtext?) 
 
diff -urN ../lilypond-1.2.0/Documentation/man/ly2dvi.yo ./Documentation/man/ly2dvi.yo
--- ../lilypond-1.2.0/Documentation/man/ly2dvi.yo	Mon Jul 26 15:22:21 1999
+++ ./Documentation/man/ly2dvi.yo	Mon Aug 16 09:44:12 1999
@@ -39,9 +39,6 @@
 dit(-H,--Heigth=)
     Set paper heigth (points). Used together with width and LaTeX name of
     papersize in case of papersize unknown to ly2dvi.
-dit(-F,--headers=)
-    Name of additional LaTeX headers file. This is included in the
-    tex file at the end of the headers, last line before code(\begin{document})
 dit(-K,--keeplilypond)
     Keep LilyPond output after the run.
 dit(-L,--landscape)
diff -urN ../lilypond-1.2.0/Documentation/metadoc/GNUmakefile ./Documentation/metadoc/GNUmakefile
--- ../lilypond-1.2.0/Documentation/metadoc/GNUmakefile	Fri Jul  9 14:29:19 1999
+++ ./Documentation/metadoc/GNUmakefile	Wed Jul 28 18:18:03 1999
@@ -31,7 +31,7 @@
 
 
 
-dvi: $(OUT_BIB_FILES) $(DVI_FILES)
+dvi: $(DVI_FILES)
 
 ps: $(PS_FILES)
 
@@ -52,7 +52,7 @@
 
 
 
-local-WWW: $(HTML_FILES) $(OUTTEX_FILES:.tex=.ps.gz) $(OUTYO_FILES:.yo=.latex) $(OUTYO_FILES:.yo=.ps.gz) $(addprefix $(outdir)/, $(BIB_FILES:.bib=.html)) $(datafiles)
+local-WWW: $(HTML_FILES) $(OUTTEX_FILES:.doc=.ps.gz) $(OUTYO_FILES:.yo=.latex) $(OUTYO_FILES:.yo=.ps.gz) $(addprefix $(outdir)/, $(BIB_FILES:.bib=.html)) $(datafiles) ps
 	$(PYTHON) $(step-bindir)/ls-latex.py --package=$(topdir) --title 'LaTeX documents about design and implementation of LilyPond' \
 	  $(YO_FILES) $(OUTYO_FILES:.yo=.latex) $(BIB_FILES) $(DOC_FILES) $(TEX_FILES)\
 	  | sed "s!$(outdir)/!!g" > $(outdir)/index.html
diff -urN ../lilypond-1.2.0/Documentation/metadoc/feta20.sty ./Documentation/metadoc/feta20.sty
--- ../lilypond-1.2.0/Documentation/metadoc/feta20.sty	Thu Jan  1 01:00:00 1970
+++ ./Documentation/metadoc/feta20.sty	Wed Jul 28 18:17:46 1999
@@ -0,0 +1,146 @@
+% Creator: mf-to-table.py version 0.7
+% Automatically generated on
+% Do not edit
+% input from out/feta20.log
+% name
+% rests
+\fetdef\wholerest{0}
+\fetdef\halfrest{1}
+\fetdef\outsidewholerest{2}
+\fetdef\outsidehalfrest{3}
+\fetdef\breverest{4}
+\fetdef\longarest{5}
+\fetdef\multirest{6}
+\fetdef\quartrest{7}
+\fetdef\eighthrest{8}
+\fetdef\sixteenthrest{9}
+\fetdef\thirtysecondrest{10}
+\fetdef\sixtyfourthrest{11}
+\fetdef\hundredtwentyeighthrest{12}
+
+% accidentals
+\fetdef\sharp{13}
+\fetdef\natural{14}
+\fetdef\flat{15}
+\fetdef\flatflat{16}
+\fetdef\sharpsharp{17}
+\fetdef\rightparen{18}
+\fetdef\leftparen{19}
+
+% dots
+\fetdef\dot{20}
+\fetdef\repeatcolon{21}
+
+% balls
+\fetdef\brevisball{22}
+\fetdef\brevisledger{23}
+\fetdef\longaball{24}
+\fetdef\longaledger{25}
+\fetdef\wholeball{26}
+\fetdef\wholeledger{27}
+\fetdef\halfball{28}
+\fetdef\halfledger{29}
+\fetdef\quartball{30}
+\fetdef\quartledger{31}
+
+% scripts
+\fetdef\ufermata{32}
+\fetdef\dfermata{33}
+\fetdef\thumb{34}
+\fetdef\sforzatoaccent{35}
+\fetdef\staccato{36}
+\fetdef\ustaccatissimo{37}
+\fetdef\dstaccatissimo{38}
+\fetdef\tenuto{39}
+\fetdef\umarcato{40}
+\fetdef\dmarcato{41}
+\fetdef\ouvert{42}
+\fetdef\plusstop{43}
+\fetdef\upbow{44}
+\fetdef\downbow{45}
+\fetdef\reverseturn{46}
+\fetdef\turn{47}
+\fetdef\trill{48}
+\fetdef\upedalheel{49}
+\fetdef\dpedalheel{50}
+\fetdef\upedaltoe{51}
+\fetdef\dpedaltoe{52}
+\fetdef\flageolet{53}
+\fetdef\trilelement{54}
+\fetdef\prall{55}
+\fetdef\mordent{56}
+\fetdef\prallprall{57}
+\fetdef\prallmordent{58}
+\fetdef\upprall{59}
+\fetdef\downprall{60}
+\fetdef\accDiscant{61}
+\fetdef\accDiscantF{62}
+\fetdef\accDiscantEh{63}
+\fetdef\accDiscantE{64}
+\fetdef\accDiscantFE{65}
+\fetdef\accDiscantFEh{66}
+\fetdef\accDiscantEE{67}
+\fetdef\accDiscantFEE{68}
+\fetdef\accDiscantEEE{69}
+\fetdef\accDiscantFEEE{70}
+\fetdef\accDiscantS{71}
+\fetdef\accDiscantFS{72}
+\fetdef\accDiscantES{73}
+\fetdef\accDiscantEhS{74}
+\fetdef\accDiscantFES{75}
+\fetdef\accDiscantFEhS{76}
+\fetdef\accDiscantEES{77}
+\fetdef\accDiscantFEES{78}
+\fetdef\accDiscantEEES{79}
+\fetdef\accDiscantFEEES{80}
+\fetdef\accDiscantSS{81}
+\fetdef\accDiscantESS{82}
+\fetdef\accDiscantEESS{83}
+\fetdef\accDiscantEEESS{84}
+\fetdef\accFreebass{85}
+\fetdef\accFreebassF{86}
+\fetdef\accFreebassE{87}
+\fetdef\accFreebassFE{88}
+\fetdef\accStdbass{89}
+\fetdef\accStdbassM{90}
+\fetdef\accStdbassBp{91}
+\fetdef\accStdbassT{92}
+\fetdef\accStdbassTp{93}
+\fetdef\accBayanbass{94}
+\fetdef\accBayanbassT{95}
+\fetdef\accBayanbassE{96}
+\fetdef\accBayanbassTE{97}
+\fetdef\accBayanbassEE{98}
+\fetdef\accBayanbassTEE{99}
+\fetdef\accSB{100}
+\fetdef\accBB{101}
+\fetdef\accOldEE{102}
+\fetdef\accOldEES{103}
+
+% flags
+\fetdef\eighthflag{104}
+\fetdef\sixteenthflag{105}
+\fetdef\thirtysecondflag{106}
+\fetdef\sixtyfourthflag{107}
+\fetdef\deighthflag{108}
+\fetdef\dsixteenthflag{109}
+\fetdef\dthirtysecondflag{110}
+\fetdef\dsixtyfourthflag{111}
+
+% clefs
+\fetdef\altoclef{112}
+\fetdef\caltoclef{113}
+\fetdef\bassclef{114}
+\fetdef\cbassclef{115}
+\fetdef\trebleclef{116}
+\fetdef\ctrebleclef{117}
+
+% timesig
+\fetdef\fourfourmeter{118}
+\fetdef\allabreve{119}
+\fetdef\oldfourfourmeter{120}
+\fetdef\oldallabreve{121}
+\fetdef\oldthreetwometer{122}
+\fetdef\oldsixfourmeter{123}
+\fetdef\oldninefourmeter{124}
+
diff -urN ../lilypond-1.2.0/Documentation/ntweb/index.yo ./Documentation/ntweb/index.yo
--- ../lilypond-1.2.0/Documentation/ntweb/index.yo	Thu Jul 15 11:25:44 1999
+++ ./Documentation/ntweb/index.yo	Mon Aug 16 09:44:12 1999
@@ -21,23 +21,23 @@
 description(
  dit(BUG FIXES)
   itemize(
-   it() Error: Python path: Python installation is required nl()
-	Users reported problems with the installer finding the python
-	path for some versions of Python namely 1.5.  I am using a
-	slightly different approach so that problem should be solved.
-	Thanks to Mats Bengtsson and Wolfgang Fischler reporting and
-	helping with this issue.
-   it() Unable to find lilyponddefs.tex nl()
-	This was due to using version version 1.07 of MiKTeX.  I have
-	add known working versions for all of the required software
-	packages, per Mats suggestion. See link(Required
-	Packages)(packages). 
+   it() os.rename(this.__base + '.' + str(os.getpid()) + '.dvi', outfile) nl()
+        os.error: (2, 'No such file or directory') nl()
+        This problem was reported by many and thoroughly debugged by
+	Wolf Lother.  We have abandoned the use of os.getpid(), which
+	for one reason or another resulted in negative numbers on
+	windows 95, in favor of the tempfile module.  We have also
+        attempted to use only one '.' in naming temporary files.
   )
 )
 
 description(
  dit(NOTES)
   itemize(  
+   it() We have had preliminary reports that the Windows 95
+        installation works on Windows 98.  Many thanks to Christian
+        Mondrup. 
+
    it() Please use the Add/Remove program control panel entry to
         unistall your current version of Lilypond before you attempt to
 	install this one.
@@ -48,44 +48,11 @@
 	file(D:\localtexmf\fonts\pk\ljfour\public\ehrhardt) in the Recyle
 	Bin. Your local font directory may be different, please refer to your
 	local installation of code(TeX).
- )
-)
-
 
-The FAT16, FAT32, and NTFS file system problems have been corrected.
-I have tested various installations that are known to be operational.
-The following configurations that have been tested. 
-
-description(
- dit(Windows NT)
- description(
-  dit(Installed on NTFS)
-  itemize(
-    it()Runs from NTFS partion
-    it()Runs from FAT16 partion
-  )
-  dit(Installed on FAT16)
-  itemize(
-    it()Runs from NTFS partion
-    it()Runs from FAT16 partion
-  )
- )
-)
-
-description(
- dit(Windows 95)
- description(
-  dit(Installed on FAT16)
-  itemize(
-    it()Runs from FAT16 partion
-    it()Runs from FAT32 partion
-  )
-  dit(Installed on FAT32)
-  itemize(
-    it()Runs from FAT16 partion
-    it()Runs from FAT32 partion
-  )
- )
+   it() The FAT16, FAT32, and NTFS file system problems have been
+	corrected.  I have tested various installations that are known
+	to be operational.  
+  ) 
 )
   
 The installer was created with
@@ -122,12 +89,10 @@
     it()midi2ly
 )
 
-
-I have also converted the Manual Pages for the above tools to HTML for
-easy browsing.  This release has been tested on Windows NT 4.0sp3 and
-Windows 95 and found to be operational.  If you have any troubles and
-or comments please do not hesitate to drop me a line
-url(Jeffrey B. Reed)(mailto:daboys@austin.rr.com). 
+This release has been tested on Windows NT 4.0sp3 and Windows 95 and
+found to be operational.  If you have any troubles and or comments
+please do not hesitate to drop me a line 
+url(Jeffrey B. Reed)(mailto:daboys@austin.rr.com).
 
 This is what the version @TOPLEVEL_VERSION@ brings:
 
@@ -138,6 +103,18 @@
 link(Back to top)(contents)
 clearpage()
 
+subsect(BUGS) label(news)
+itemize(
+
+  it() Using any text that contains '{}' for the value of the any
+       valid mudela bf(header) construct will cause bf(ly2dvi) to
+       fail.  A work around for the bf(latexheaders) construct is to
+       create a bf(TeX) file and set bf(latexheaders) to "\input
+       foo.tex". 
+)
+
+link(Back to top)(contents)
+clearpage()
 
 subsect(Required Packages) label(packages)
 
diff -urN ../lilypond-1.2.0/Documentation/tex/reference-manual.yo ./Documentation/tex/reference-manual.yo
--- ../lilypond-1.2.0/Documentation/tex/reference-manual.yo	Wed Jul 28 16:02:26 1999
+++ ./Documentation/tex/reference-manual.yo	Mon Aug 16 11:31:57 1999
@@ -1,9 +1,10 @@
 mailto(gnu-music-discuss@gnu.org)
 COMMENT(-*-text-*-)
 
-redef(var)(1)(whenlatex(latexcommand({\normalfont\scshape )ARG1+latexcommand(}))\
-    whenhtml(sc(ARG1)))
-
+redef(var)(1)(\
+  whenlatex(latexcommand({\normalfont\scshape )ARG1+latexcommand(}))\
+  whenhtml(sc(ARG1))\
+)
 
 def(indexcode)(1)(cindex(ARG1@code(ARG1)))
 def(indexandcode)(1)(code(ARG1)indexcode(ARG1))
@@ -11,49 +12,53 @@
 
 redef(code)(1)(tt(ARG1))
 redef(cindex)(1)(\
-    whenlatex(latexcommand(\index{)ARG1+latexcommand(}))\
-    whentexinfo(XXnl()texinfocommand(@cindex )ARG1XXnl())\
+  whenlatex(latexcommand(\index{)ARG1+latexcommand(}))\
+  whentexinfo(XXnl()texinfocommand(@cindex )ARG1XXnl())\
 )
 
 
 COMMENT(
-
   BUGS:
 
-   restStyle=mensural doesn't seem to work (lots of characters not found
-     for rests.fly)
+    restStyle=mensural doesn't seem to work (lots of characters not found
+    for rests.fly)
 
-TODO:
+  TODO:
   
-   accordion symbols
-   Music expression / music expression
+    accordeon symbols
+    Music expression / music expression
 )
 
 
 COMMENT( 
-This document contains Mudela fragments.  You need at least
-Yodl-1.30.18 to convert this to tex or html.
+  This document contains Mudela fragments.  You need at least
+  Yodl-1.30.18 to convert this to tex or html.
 )
 
 htmlbodyopt(bgcolor)(white)
 htmlcommand(<font color=black>)
 
 latexlayoutcmds(
-\setlength{\topmargin}{-0.25in}
-\setlength{\textheight}{9in}
-\setlength{\textwidth}{5.875in} 
-\setlength{\oddsidemargin}{0.25in}   
-\setlength{\evensidemargin}{0.25in}
-\input mudela-book
-\usepackage{makeidx}
-\makeindex
+  \setlength{\topmargin}{-0.25in}
+  \setlength{\textheight}{9in}
+  \setlength{\textwidth}{5.875in} 
+  \setlength{\oddsidemargin}{0.25in}   
+  \setlength{\evensidemargin}{0.25in}
+  \input mudela-book
+  \usepackage{makeidx}
+  \makeindex
 )
 
 whentexinfo(notableofcontents())
 
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
 article(LilyPond 1.2.0 Reference Manual)
-      (Adrian Mariano, Han-Wen Nienhuys and Jan Nieuwenhuizen)
-      (nop()PIPETHROUGH(date "+%B %d, %Y")()()nop())
+       (Adrian Mariano, Han-Wen Nienhuys and Jan Nieuwenhuizen)
+       (nop()PIPETHROUGH(date "+%B %d, %Y")()()nop())
 
 
 latexcommand(\def\interexample{})
@@ -61,92 +66,135 @@
 latexcommand(\def\postexample{\par\medskip})
 latexcommand(\def\file#1{{code(#1)}})
 COMMENT(
-latexcommand(\def\texttt#1{\tt #1})
-latexcommand(\def\textbf#1{\bf #1})
+  latexcommand(\def\texttt#1{\tt #1})
+  latexcommand(\def\textbf#1{\bf #1})
 )
 
 COMMENT(urg, texinfo include breaks)
-whenhtml(
-includefile(html-disclaimer.yo-urg)
-)
+whenhtml(includefile(html-disclaimer.yo-urg))
 
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 sect(Overview)
 
+This nop(document)footnote(This document has been revised for
+LilyPond 1.2.) describes the the GNU LilyPond input format, which is
+a language for defining music.  We call this language em(Music
+Definition Language) or em(Mudela), for short.footnote(If anybody
+comes up with a better name, we'd gladly take this.  Gourlay already
+uses a ``Musical Description Language,'' ISO standard 10743 defines a
+``Standard Music Description Language.''  We're not being original
+here.)
 
-This nop(document)footnote(This document was revised for LilyPond
-1.2.)  describes the the GNU LilyPond input format, which is a
-language for defining music.  We call this language Music Definition
-Language or Mudela, for short.footnote(If anybody comes up with a
-better name, we'd gladly take this. Gourlay already uses Musical
-Description Language,  ISO standard
-10743 defines a Standard Music Description Language.  We're not being
-original here.)
+em(Mudela) is a language that allows you to
 
-Mudela is a language that allows you  to
 itemize(
-it() create musical expressions by combining pitches, durations 
-it() output those musical expressions to various formats
-it() give those musical expressions and output definitions names, so
-you can enter them in manageable chunks.
+  it() create musical expressions by combining pitches, durations 
+  it() output those musical expressions to various formats
+  it() give those musical expressions and output definitions names, so
+       you can enter them in manageable chunks.
 )
 
-Mudela aims to define a piece of music completely, both from
+em(Mudela) aims to define a piece of music completely, both from
 typesetting and from a performance point of view.
 
-sect(Top level)cindex(top level)
 
-This section describes what you may  enter at top level.
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+sect(Top level)
+cindex(top level)
+
+This section describes what you may enter at top level.
 
-subsect(Score definitions)cindex(score definition)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Score definitions)
+cindex(score definition)
 
 The output is generated combining a music expression with an output
-definition.  A score block has the following syntax code(\score {)
-var(musicexpr) var(outputdefs) code(}).  var(outputdefs) are zero or
-more output definitons.  If no output definiton is supplied, the
-default code(\paper) block will be added.
+definition.  A score block has the following syntax:
+
+quote(
+  code(\score {) var(musicexpr) var(outputdefs) code(})
+)
+
+var(outputdefs) are zero or more output definitions.  If no output
+definition is supplied, the default code(\paper) block will be added.
 
-subsect(Information header)cindex(header)keyindex(header)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-The syntax is code(\header) code({) var(key1) = var(val1); var(key2) = var(val2); ... code(})
+subsect(Information header)
+cindex(header)
+keyindex(header)
+
+The syntax is
+
+quote(
+  code(\header) code({) var(key1) = var(val1);
+                        var(key2) = var(val2); ellipsis() code(})
+)
 
 A header describes the file's contents.  It can also appear in a
 code(\score) block.  Tools like indexandcode(ly2dvi) can use this
-information for generating titles.  Key values that are used by ly2dvi
-are: title, subtitle, composer, opus, poet, instrument, metre,
-arranger, piece and tagline.
+information for generating titles.  Key values that are used by
+code(ly2dvi) are: title, subtitle, composer, opus, poet, instrument,
+metre, arranger, piece and tagline.
 
 It is customary to put the code(\header) at the top of the file.
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
 subsect(Setting notenames and chordnames)
 label(notenames)
 
-Note name tables can be specified using code(\notenames)keyindex(notenames) code({)
-var(assignmentlist) code(}).  var(assignmentlist) is a list of definitions of
-the form var(name) = var(pitch).
+Note name tables can be specified using
+
+quote(
+  code(\notenames)keyindex(notenames)
+    code({) var(assignmentlist) code(})
+)
+
+var(assignmentlist) is a list of definitions of the form
+
+quote(
+  var(name) = var(pitch)
+)
 
 Chord modifiers can be set analogously, with
 code(\chordmodifiers)keyindex(chordmodifiers).
 
-
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 subsect(Output definitions)
 
 A code(\paper) block at top level sets the default paper block.  A
 code(\midi) block at top level works similarly.
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 subsect(GUILE and Scheme)
 
 LilyPond contains a Scheme interpreter (the GUILE library) for
-internal use.  The following commands access the interpreter directly.
+internal use.  The following commands access the interpreter
+directly.
 
-code(\scm)keyindex(scm) var(scheme)code(;) evaluates the specified Scheme
-code.  The result is discarded. keyindex(scm)
+quote(
+  code(\scm)keyindex(scm) var(scheme) code(;)
+)
 
-code(\scmfile)keyindex(scmfile) var(filename)code(;) reads Scheme code from the
-specified file.  The result is discarded. keyindex(scmfile)
+Evaluates the specified Scheme code.  The result is discarded.
+
+quote(
+  code(\scmfile)keyindex(scmfile) var(filename) code(;)
+)
+
+Reads Scheme code from the specified file.  The result is discarded.
+
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 subsect(Identifiers)
 
@@ -154,96 +202,175 @@
 forbidden after top level assignments.
 
 
-sect(Lexical conventions)cindex(Lexical conventions)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-subsect(Comments)cindex(Comments)
-cindex(%)
+sect(Lexical conventions)
+cindex(lexical conventions)
 
-A one line comment is introduced by a indexandcode(%)
-character.  Block comments are started by code(%{) and ended by
-code(%}).  They cannot be nested.
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
+subsect(Comments)
+cindex(comment)
+indexcode(%)
+whenlatex(cindex(%A@latexcommand(\texttt{\%\textbraceleft})))
+whenlatex(cindex(%B@latexcommand(\texttt{\%\textbraceright})))
+
+A one line comment is introduced by a `code(%)' character. 
+Block comments are started by `code(%{)' and ended by `code(%})'. 
+They cannot be nested.
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 subsect(Keywords)
 cindex(keyword)
 
 Keywords start with a backslash, followed by a number of lower case
-alphabetic characters.  This are all the keywords.
+alphabetic characters.  These are all the keywords.
 
-verb(\accepts \addlyrics \alternative \bar \breathe \cadenza
-\chordmodifiers \chords \clef \cm \consists \consistsend \context
-\duration \font \grace \header \in \key \keysignature \lyrics \mark
-\midi \mm \musicalpitch \name \notenames \notes \paper \partial
-\penalty \property \pt \relative \remove \repeat \repetitions \scm
-\scmfile \score \script \sequential \shape \simultaneous \skip
-\spanrequest \tempo \textscript \time \times \translator \transpose
-\type)
+latexcommand(\begin{raggedright})
+quote(
+  code(\accepts)
+  code(\addlyrics)
+  code(\alternative)
+  code(\bar)
+  code(\breathe)
+  code(\cadenza)
+  code(\chordmodifiers)
+  code(\chords)
+  code(\clef)
+  code(\cm)
+  code(\consists)
+  code(\consistsend)
+  code(\context)
+  code(\duration)
+  code(\font)
+  code(\grace)
+  code(\header)
+  code(\in)
+  code(\key)
+  code(\keysignature)
+  code(\lyrics)
+  code(\mark)
+  code(\midi)
+  code(\mm)
+  code(\musicalpitch)
+  code(\name)
+  code(\notenames)
+  code(\notes)
+  code(\paper)
+  code(\partial)
+  code(\penalty)
+  code(\property)
+  code(\pt)
+  code(\relative)
+  code(\remove)
+  code(\repeat)
+  code(\repetitions)
+  code(\scm)
+  code(\scmfile)
+  code(\score)
+  code(\script)
+  code(\sequential)
+  code(\shape)
+  code(\simultaneous)
+  code(\skip)
+  code(\spanrequest)
+  code(\tempo)
+  code(\textscript)
+  code(\time)
+  code(\times)
+  code(\translator)
+  code(\transpose)
+  code(\type)
+)
+latexcommand(\end{raggedright})
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-subsect(Integers)cindex(Integers)
+subsect(Integers)
+cindex(integer)
 
 Formed from an optional minus sign followed by digits.  Arithmetic
 operations cannot be done with integers, and integers cannot be mixed
 with reals.
 
-subsect(Reals)cindex(Reals) 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Reals)
+cindex(real) 
+
 Formed from an optional minus sign and a sequence of digits followed
 by a em(required) decimal point and an optional exponent such as
 code(-1.2e3).  Reals can be built up using the usual operations:
-indexandcode(+), indexandcode(-), indexandcode(*), and indexandcode(/), with parentheses for grouping.
+`indexandcode(+)', `indexandcode(-)', `indexandcode(*)', and
+`indexandcode(/)', with parentheses for grouping.
 
-A real constant can be followed by one of the dimension keywords:
-cindex(dimension) code(\mm)keyindex(mm), code(\pt)keyindex(pt),
-code(\in)keyindex(in), or code(\cm)keyindex(cm), for millimeters,
-points, inches and centimeters.  This converts the number a real that
+A real constant can be followed by one of the dimension
+keywords:cindex(dimensions) code(\mm)keyindex(mm),
+code(\pt)keyindex(pt), code(\in)keyindex(in), or
+code(\cm)keyindex(cm), for millimeters, points, inches and
+centimeters, respectively.  This converts the number to a real that
 is the internal representation of dimensions.
 
-subsect(String)cindex(String) 
-
-Begins and ends with the code(") character.  To include a code(")
-character in a string write code(\").  Various other backslash
-sequences have special interpretations as in the C language.  A string
-that contains no spaces can be written without the quotes.  See
-Section ref(modes) for details on unquoted strings; their
-interpretation varies depending on the situation.  Strings can be
-concatenated with the code(+) operator.
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
+subsect(String)
+cindex(string) 
 
+Begins and ends with the `code(")' character.  To include a `code(")'
+character in a string write `code(\")'.  Various other backslash
+sequences have special interpretations as in the C language.  A
+string that contains no spaces can be written without the quotes. 
+See bind(section)ref(modes) for details on unquoted strings; their
+interpretation varies depending on the situation.  Strings can be
+concatenated with the `code(+)' operator.
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 subsect(Tokenizer commands)
 
 The tokenizer accepts the following commands.  They can appear
 anywhere.
 
-description(
+quote(
+  code(\maininput)keyindex(maininput)
+)
 
-dit(code(\maininput)) keyindex(maininput) This command is used in init
-files to signal that the user file must be read.  This command cannot
-be used in a user file.
-
-dit(code(\include) var(file))keyindex(include) Include var(file).  The
-argument var(file) may be a quoted string, (An unquoted string will
-not work here.)  or a string identifier.  The full filename including
-the file(.ly) extension must be given,
-
-dit(code(\version) var(string)code(;))
-keyindex(version)
-Specify the version of LilyPond that a
-file was written for.  The argument is a  version string in quotes, for example
-code("1.2.0").  This is used to detect invalid input, and to aid
-code(convert-mudela), a tool that automatically upgrades input files.
+This command is used in init files to signal that the user file must
+be read. This command cannot be used in a user file.
+
+quote(
+  code(\include)keyindex(include) var(file)
+)
+
+Include var(file).  The argument var(file) may be a quoted string (an
+unquoted string will not work here!) or a string identifier.  The full
+filename including the file(.ly) extension must be given,
+
+quote(
+  code(\version)keyindex(version) var(string) code(;)
 )
 
-subsect(Pitch Names in Other Languages)cindex(other languages)
+Specify the version of LilyPond that a file was written for.  The
+argument is a version string in quotes, for example code("1.2.0"). 
+This is used to detect invalid input, and to aid
+code(convert-mudela), a tool that automatically upgrades input files.
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Pitch Names in Other Languages)
+cindex(other languages)
 label(notelang)
 
-Note name definitions have been provided in various languages.  
+Note name definitions have been provided in various languages. 
 Simply include the language specific init file.  For example:
-code(\include "english.ly").  The available language files and the names
-they define are:
+`code(\include "english.ly")'.  The available language files and the
+names they define are:
 
+quote(
 verb(                        Note Names               sharp       flat
+
 nederlands.ly  c   d   e   f   g   a   bes b   -is         -es
 english.ly     c   d   e   f   g   a   bf  b   -s/-sharp   -f/-flat
 deutsch.ly     c   d   e   f   g   a   b   h   -is         -es
@@ -251,544 +378,672 @@
 svenska.ly     c   d   e   f   g   a   b   h   -iss        -ess
 italiano.ly    do  re  mi  fa  sol la  sid si  -d          -b
 catalan.ly     do  re  mi  fa  sol la  sid si  -d/-s       -b)
+)
 
- Pitch names can be redefined using the
-code(\notenames)keyindex(notenames) command, see Subsection
-ref(notenames).
-
-subsect(Lexical modes)cindex(Lexical modes)cindex(modes)
+Pitch names can be redefined using the
+code(\notenames)keyindex(notenames) command, see
+bind(subsection)ref(notenames).
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Lexical modes)
+cindex(lexical modes)
+cindex(modes)
 label(modes)
 
-To simplify entering notes, lyrics and chords Mudela has three special
-input modes on top of the default mode.  In each mode, words are
-identified on the input.  If code("word") is encountered, it is
-treated as a string.  If code(\word) is encountered it is treated as a
-keyword or as an identifier.  The behavior of the modes differs in two
-ways: different modes treat unquoted words differently, and different
-modes have different rules for deciding what is a word.
+To simplify entering notes, lyrics, and chords, em(Mudela) has three
+special input modes on top of the default mode.  In each mode, words
+are identified on the input.  If code("word") is encountered, it is
+treated as a string.  If code(\word) is encountered, it is treated as
+a keyword or as an identifier.  The behavior of the modes differs in
+two ways: Different modes treat unquoted words differently, and
+different modes have different rules for deciding what is a word.
 
 description(
-dit(Normal mode)cindex(mode!normal) 
-At the start of parsing, Mudela is in normal mode.
-In normal mode, a word is an alphabetic character followed by
-alphanumeric characters.  If code(word) is encountered on the input it
-is treated as a string. 
-
-dit(Note mode) cindex(mode!note) Note mode is introduced by the keyword
-code(\notes)keyindex(notes).  In Note mode, words can only contain alphabetic
-characters.  If code(word) is encountered, LilyPond first checks for a
-notename of code(word).  If no notename is found, then code(word) is
-treated as a string.
-
-Since combinations of numbers and dots are used for indicating
-durations, it is not possible to enter real numbers in this mode.
-
-dit(Chord mode)cindex(mode!chord) Chord mode is introduced by the keyword
-code(\chords)keyindex(chords).  It is similar to note mode, but words are also looked
-up in a chord modifier table (containg code(maj), code(dim) etc.)
-
-Since combinations of numbers and dots are used for indicating
-durations, you can not enter real numbers in this mode.  Dashes and
-carets are used to indicate chord additions and subtractions, so
-scripts can not be entered in chord mode.
-
-dit(Lyric mode) cindex(mode!lyric) Lyrics mode is introduced by the keyword
-code(\lyrics)keyindex(lyrics).  This mode is has rules that make it easy to include
-punctuation and diacritical marks in words.  A word in Lyrics mode
-begins with: an alphabetic character, code(_), code(?), code(!),
-code(:), code('), the control characters code(^A) through code(^F),
-code(^Q) through code(^W), code(^Y), code(^^), any 8-bit character
-with ASCII code over 127, or a two character combination of a
-backslash followed by one of code(`), code('), code(") or
-code(^).footnote(The purpose of lyrics mode is that you can enter lyrics in
-TeX() format or a standard encoding without needing quotes.  The
-precise definition of this mode indeed is ludicrous.  This will remain
-so until the authors of LilyPond acquire a deeper understanding of
-character encoding, or someone else steps up to fix this.)
-
-Subsequent characters of a word can be any character that is not a
-digit and not white space.  One important consequence of this is that
-a word can end with code(}), which may be confusing if you thought the
-code(}) was going to terminate lyrics mode.footnote(LilyPond will
-issue a warning, though).  Any code(_) characters
-which appear in an unquoted word are converted to spaces.  This
-provides  a
-mechanism for introducing spaces into words without using quotes.  
-Quoted words can also be used in lyrics mode to specify words that
-cannot be specified with the above rules.  Here are some examples.
-Not all of these words are printable by TeX().
+  dit(Normal mode.)cindex(mode!normal) 
+    At the start of parsing, em(Mudela) is in Normal mode.  In Normal
+    mode, a word is an alphabetic character followed by alphanumeric
+    characters.  If code(word) is encountered on the input it is
+    treated as a string.
+
+  dit(Note mode.)cindex(mode!note)
+
+    Note mode is introduced by the keyword
+    code(\notes)keyindex(notes).  In Note mode, words can only
+    contain alphabetic characters.  If code(word) is encountered,
+    LilyPond first checks for a notename of code(word).  If no
+    notename is found, then code(word) is treated as a string.
+
+    Since combinations of numbers and dots are used for indicating
+    durations, it is not possible to enter real numbers in this mode.
+
+  dit(Chord mode.)cindex(mode!chord)
+    Chord mode is introduced by the keyword
+    code(\chords)keyindex(chords).  It is similar to Note mode, but
+    words are also looked up in a chord modifier table (containing
+    code(maj), code(dim), etc).
+
+    Since combinations of numbers and dots are used for indicating
+    durations, you can not enter real numbers in this mode.  Dashes
+    and carets are used to indicate chord additions and subtractions,
+    so scripts can not be entered in Chord mode.
+
+  dit(Lyrics mode.) cindex(mode!lyric)
+
+    Lyrics mode is introduced by the keyword
+    code(\lyrics)keyindex(lyrics).  This mode has rules that make it
+    easy to include punctuation and diacritical marks in words.  A
+    word in Lyrics mode begins with: an alphabetic character,
+    `code(_)', `code(?)', `code(!)', `code(:)', `code(')', the
+    control characters code(^A) through code(^F), code(^Q) through
+    code(^W), code(^Y), code(^^), any 8-bit character with ASCII code
+    over 127, or a two-character combination of a backslash followed
+    by one of `code(`)', `code(')', `code(")', or
+    `code(^)'.footnote(The purpose of Lyrics mode is that you can
+    enter lyrics in TeX() format or a standard encoding without
+    needing quotes.  The precise definition of this mode indeed is
+    ludicrous.  This will remain so until the authors of LilyPond
+    acquire a deeper understanding of character encoding, or someone
+    else steps up to fix this.)
+
+    Subsequent characters of a word can be any character that is not
+    a digit and not white space.  One important consequence of this
+    is that a word can end with `code(})', which may be confusing if
+    you thought the closing brace was going to terminate Lyrics
+    mode.footnote(LilyPond will issue a warning, though.)  Any
+    `code(_)' characters which appear in an unquoted word are
+    converted to spaces.  This provides a mechanism for introducing
+    spaces into words without using quotes.  Quoted words can also be
+    used in Lyrics mode to specify words that cannot be written with
+    the above rules.  Here are some examples.  Not all of these words
+    are printable by TeX().
+
 COMMENT(
 DOEXPAND(muckslash)^etre          % a word
-)verb(Ah!       % a word
-2B_||_!2B       % not a word because it starts with a digit
-``Hello''       % not a word because it starts with `
-_ _ _ _         % 4 words, each one a space
 )
 
+    quote(
+verb(Ah!             % a word
+2B_||_!2B       % not a word because it starts with a digit
+``Hello''       % not a word because it starts with `
+_ _ _ _         % 4 words, each one a space)
+    )
 
-Since combinations of numbers and dots are used for indicating
-durations, you can not enter real numbers in this mode.
-
+    Since combinations of numbers and dots are used for indicating
+    durations, you can not enter real numbers in this mode.
 )
 
 It is possible to create words that break the rules by prefixing them
-with the dollar sign indexandcode($).  Regardless of the context, a word
-beginning with code($) extends until the next white space character.
-Such words can contain numbers (even in Note mode), or other forbidden
-characters.  The dollar sign can be used to create and access
-identifiers that could not otherwise be used.footnote(Use of $ hampers
-readability and portability to future LilyPond versions.  Use of $ is
-discouraged.)
+with the dollar sign `indexandcode($)'.  Regardless of the context, a
+word beginning with `code($)' extends until the next white space
+character.  Such words can contain numbers (even in Note mode), or
+other forbidden characters.  The dollar sign can be used to create
+and access identifiers that could not otherwise be used.footnote(Use
+of `code($)' hampers readability and portability to future LilyPond
+versions, thus the use of the dollar sign is discouraged.)
 
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
+sect(Types)
+cindex(types and identifiers)
 
-sect(Types)cindex(Types and identifiers)
+em(Mudela) has a limited set of types:
 
-Mudela has a limited set of types:
 itemize(
-it() integers,
-it() reals,
-it() strings,
-it() music expressions,
-it() durations of notes and rests (specified with code(\notenames)keyindex(notenames)),
-it() note name tables,
-it() context definitions,  Part of output definitions.  See Section ref(contextdefs) for more
-information,
-it() output definitions (like code(\paper)keyindex(paper) blocks and
-code(\midi)keyindex(midi) blocks),
-it() score definitions. (code(\score)keyindex(score) blocks)
-)
-
-
-Type is a syntactical property: Mudela has no real type system, so
-there is no support for generic expressions, functions or user defined
-types.  For the same reason, it is not possible to mix reals and
-integers in arithmetic expressions, and ``type errors'' cindex(type error) (eg. using a
-string identifier to initialize a code(\paper)keyindex(paper) block)
-will yield ``parse error''.
+  it() integers
+  it() reals
+  it() strings
+  it() music expressions
+  it() durations of notes and rests (specified with
+       code(\notenames)keyindex(notenames))
+  it() note name tables
+  it() context definitions, part of output definitions.  See
+       bind(section)ref(contextdefs) for more information
+  it() output definitions (like code(\paper)keyindex(paper) blocks
+       and code(\midi)keyindex(midi) blocks)
+  it() score definitions (code(\score)keyindex(score) blocks)
+)
+
+Type is a syntactical property: em(Mudela) has no real type system,
+so there is no support for generic expressions, functions, or user
+defined types.  For the same reason, it is not possible to mix reals
+and integers in arithmetic expressions, and ``type
+errors''cindex(type error) (e.g., using a string identifier to
+initialize a code(\paper)keyindex(paper) block) will yield a ``parse
+error''.
 
 Identifiers allow objects to be assigned to names.  To assign an
-identifier you use var(name)=var(value) and to refer to an identifier,
-you preceed its name with a backslash: code(\)var(name).  Identifier
-assignments must appear at top level in the Mudela file.
-Semicolons are forbidden after assignments appearing at top level
-but they are obligatory after assignments appearing elsewhere.
+identifier, you use `var(name)=var(value)' and to refer to an
+identifier, you preceed its name with a backslash:
+`code(\)var(name)'.  Identifier assignments must appear at top level
+in the em(Mudela) file.  Semicolons are forbidden after assignments
+appearing at top level but they are obligatory after assignments
+appearing in the code(\paper) block, see bind(Section)ref(paper).
 
 var(value) is any of the types listed above.
 
 An identifier can be created with any string for its name, but you
 will only be able to refer to identifiers whose names begin with a
-letter and are entirely alphanumeric.  It is impossible to refer to an
+letter, being entirely alphanumeric.  It is impossible to refer to an
 identifier whose name is the same as the name of a keyword.
 
 The right hand side of an identifier assignment is parsed completely
 before the assignment is done, so it is allowed to redefine an
-identifier in terms of its old value: code(foo = \foo * 2.0).
+identifier in terms of its old value, e.g.
 
+quote(
+  code(foo = \foo * 2.0)
+)
 
-When an identifier is referenced, the information that it points to is
+When an identifier is referenced, the information it points to is
 copied.  Therefore it only makes sense to put identifiers for
-translators, output definitions and code(\score)keyindex(score) blocks as the first
-item in a block.  For this reason, if you reference to a code(\foo)
-variable in a code(\foo) block, it must be the first item in the list
-following code(\foo).footnote(code(\paper{\one \two}) does not make
-sense, because the information of code(\two) would overwrite the
-information of code(\one), thereby making the reference to the first
-identifier useless.)
-
+translators, output definitions, and code(\score)keyindex(score)
+blocks as the first item in a block.  For this reason, if you
+reference a code(\foo) variable in a code(\foo) block, it must be the
+first item in the list following code(\foo).footnote(code(\paper{\one
+\two}) does not make sense, because the information of code(\two)
+would overwrite the information of code(\one), thereby making the
+reference to the first identifier useless.)
+
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+sect(Music expressions)
+cindex(music expressions)
+
+Music in em(Mudela) is entered as a music expression.  Notes, rests,
+lyric syllables are music expressions (the atomic
+expressions)cindex(atomic music expressions), and you can combine
+music expressions to form new ones.  This example forms a compound
+expressions out of the quarter code(c) note and a code(d)
+note:
+
+quote(
+  verb(\sequential { c4 d4 })
+)
+
+The meaning of this compound expression is to play the `code(c)'
+first, and then the `code(d)' (as opposed to playing them
+simultaneously, for instance).
 
+Atomic music expression are discussed in
+bind(subsection)ref(atomicmusic).  Compound music expressions are
+discussed in bind(subsection)ref(compoundmusic).
 
-sect(Music expressions)cindex(Music expressions)
-
-Music in mudela is entered as a music expression.  Notes, rests, lyric
-syllables are music expressions (the atomic expressions),
-cindex(atomic music expressions) and you can
-combine music expressions to form new ones.  This example
-forms a compound expressions out of the quarter code(c)   note and a
-code(d) note:COMMENT(
-
-)verb(\sequential { c4 d4 })COMMENT(
-
-)The meaning of this compound expression is to play the code(c) first,
-and then the code(d) (as opposed to playing them simultaneously, for
-instance).
 
-Atomic music expression are discussed in
-bind(Subsection)ref(atomicmusic).  Compound music expressions are
-discussed in bind(Subsection)ref(compoundmusic).
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 sect(Atomic music expressions)
 label(atomicmusic)
 
-subsect(Pitch and duration)cindex(pitch)cindex(duration) 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-The syntax for pitch specification is
-code(\musicalpitch)keyindex(musicalpitch) code({) var(octave)
-var(note) var(shift) code(}) The octave is specified by an integer,
-zero for the octave containing middle C.  The note is a number from 0
-to 7, with 0 corresponding to C and 7 corresponding to B.  The shift
-is zero for a natural, negative to add flats, or positive to add
-sharps.
+subsect(Pitch and duration)
+cindex(pitch)
+cindex(duration) 
 
-In note and chord mode,  pitches may be designated by names. 
-See Section ref(notelang) for pitch names in different languages.
+The syntax for pitch specification is
 
-The syntax for duration specification is
-code(\duration)keyindex(duration) code({) var(length) var(dotcount)
-code(}) var(length) is the negative logarithm (base 2) of duration: 1
-is a half note, 2 is a quarter note, 3 is an eighth note, etc.  The
-number of dots after the note is given by var(dotcount).
+quote(
+  code(\musicalpitch)keyindex(musicalpitch)
+    code({) var(octave) var(note) var(shift) code(})
+)
 
-In note, chord and lyric mode, durations may be designated by numbers
-and dots. See Section ref(notelang) for details.
+var(octave) is specified by an integer, zero for the octave
+containing middle C.  var(note) is a number from 0 to 7, with 0
+corresponding to C and 7 corresponding to B.  The shift is zero for a
+natural, negative to add flats, or positive to add sharps.
 
+In Note and Chord mode, pitches may be designated by names.  See
+bind(section)ref(notelang) for pitch names in different languages.
 
+The syntax for duration specification is
 
+quote(
+  code(\duration)keyindex(duration)
+    code({) var(length) var(dotcount) code(})
+)
+
+var(length) is the negative logarithm (base 2) of the duration:
+bind(1)is a half note, bind(2)is a quarter note, bind(3)is an eighth
+note, etc.  The number of dots after the note is given by
+var(dotcount).
+
+In Note, Chord, and Lyrics mode, durations may be designated by
+numbers and dots.  See bind(Section)ref(notelang) for details.
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Note specification)
+label(notedesc)
+cindex(note specification)
+cindex(pitches)
+cindex(entering notes)
 
-subsect(Note specification)label(notedesc)
+A note specification has the form
 
-cindex(Note Specification)
-cindex(pitches)cindex(entering notes)
+quote(
+  var(pitch)[var(octavespec)][code(!)][code(?)][var(duration)]
+)
 
-A note specification has the form
-var(pitch)[var(octavespec)][code(!)][code(?)][var(duration)].  The
-pitch of the note is specified by the note's name.
+The pitch of the note is specified by the note's name.
 
 subsubsect(Pitches)
 
 The default names are the Dutch note names.  The notes are specified
-by the letters code(c) through code(b), where code(c) is an octave
-below middle C and the letters span the octave above that C.  In
-Dutch,cindex(notenames!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 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 will be accepted.q
-
+by the letters `code(c)' through `code(b)', where `code(c)' is an
+octave below middle C and the letters span the octave above that C. 
+In Dutchcindex(notenames!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 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 will
+be accepted.
 
-LilyPond has predefined sets of notenames for various
-languages.  See Section ref(notelang) for details.
+LilyPond has predefined sets of notenames for various languages.  See
+bind(section)ref(notelang) for details.
 
 subsubsect(Octaves)
 
-The optional octave specification takes the form of a series of single
-quote indexandcode(') characters or a series of comma indexandcode(,)
-characters.  Each code(') raises the pitch by one octave; each code(,)
-lowers the pitch by an octave.
+The optional octave specification takes the form of a series of
+single quote (`indexandcode(')') characters or a series of comma
+(`indexandcode(,)') characters.  Each code(') raises the pitch by one
+octave; each code(,) lowers the pitch by an octave.
 
-mudela(fragment,verbatim,center)(
-c' d' e' f' g' a' b' c''
-)
+mudela(fragment,verbatim,center)(  c' d' e' f' g' a' b' c'')
 
-mudela(fragment,verbatim,center)(
-cis' dis' eis' fis' gis' ais' bis'
-)
+mudela(fragment,verbatim,center)(  cis' dis' eis' fis' gis' ais' bis')
 
-mudela(fragment,verbatim,center)(
-ces' des' es' fes' ges' as' bes'
-)
+mudela(fragment,verbatim,center)(  ces' des' es' fes' ges' as' bes')
 
-mudela(fragment,verbatim,center)(
-cisis' eisis' gisis' aisis' beses'
-)
+mudela(fragment,verbatim,center)(  cisis' eisis' gisis' aisis' beses')
 
-mudela(fragment,verbatim,center)(
-ceses' eses' geses' ases' beses'
-)
+mudela(fragment,verbatim,center)(  ceses' eses' geses' ases' beses')
 
 Whenever a C-sharp is desired,  you must specify a C-sharp.  LilyPond
-will determine what accidentals to  typeset  depending on the  key and
-context.   
-A reminder accidental cindex(reminder accidental) can be forced by
-adding an exclamation mark `code(!)'
-after the pitch.
-A cautionary accidental, cindex(cautionary accidental) i.e., an accidental within parentheses
-can be obtained by adding the question mark `indexandcode(?)' after
-the pitch.COMMENT(
+will determine what accidentals to typeset depending on the key and
+context.  A reminder accidental cindex(reminder accidental) can be
+forced by adding an exclamation mark `code(!)' after the pitch.  A
+cautionary accidental, cindex(cautionary accidental) i.e., an
+accidental within parentheses can be obtained by adding the question
+mark `indexandcode(?)' after the pitch.
 
-)mudela(fragment,verbatim,center)(
-cis' d' e' cis'  c'? d' e' c'!  
-)
+mudela(fragment,verbatim,center)(  cis' d' e' cis'  c'? d' e' c'!)
 
 subsubsect(Duration)
 cindex(duration)
 
-Durations are entered as their reciprocal values. For notes longer
+Durations are entered as their reciprocal values.  For notes longer
 than a whole note, use identifiers.
-verb(
-  c'\longa c'\breve  
-  c'1 c'2 c'4 c'8 c'16 c'32 c'64 c'64 
+
+quote(
+verb(c'\longa c'\breve  
+c'1 c'2 c'4 c'8 c'16 c'32 c'64 c'64)
+)
+
+quote(
+mudela()(\score {
+  \notes \relative c'' {
+    a\longa a\breve  
+    a1 a2 a4 a8 a16 a32 a64 a64 
+  }
+  \paper {
+    loose_column_distance = 2.5 * \interline;
+    linewidth = -1.0;
+    \translator {
+      \type "Score_engraver";
+      \name "Score";
+      \consists "Note_heads_engraver";
+      \consists "Stem_engraver";
+      \consists "Rhythmic_column_engraver";
+    }
+  }
+})
+)
+
+quote(
+verb(r\longa r\breve  
+r1 r2 r4 r8 r16 r32 r64 r64)
+)
+
+quote(
+mudela()(\score {
+  \notes \relative c'' {
+    r\longa r\breve  
+    r1 r2 r4 r8 r16 r32 r64 r64 
+  }
+  \paper {
+    loose_column_distance = 2.5 * \interline;
+    linewidth = -1.0;
+    \translator {
+      \type "Score_engraver";
+      \name "Score";
+      \consists "Rest_engraver";
+      \consists "Stem_engraver";
+      \consists "Rhythmic_column_engraver";
+    }
+  }
+})
 )
-mudela()(
-\score {
-       \notes \relative c'' {
-         a\longa a\breve  
-         a1 a2 a4 a8 a16 a32 a64 a64 
-         }
-         \paper {
-		loose_column_distance = 2.5 * \interline;
-        	linewidth = -1.0;
-        	\translator { \type "Score_engraver";
-        		    \name "Score";
-        		    \consists "Note_heads_engraver";
-        		    \consists "Stem_engraver";
-        		    \consists "Rhythmic_column_engraver";
-         }}})
-verb(
-  r\longa r\breve  
-  r1 r2 r4 r8 r16 r32 r64 r64 
-)mudela()(\score {
-       \notes \relative c'' {
-         r\longa r\breve  
-         r1 r2 r4 r8 r16 r32 r64 r64 
-         }
-         \paper {
-		loose_column_distance = 2.5 * \interline;
-        	linewidth = -1.0;
-        	\translator { \type "Score_engraver";
-        		    \name "Score";
-        		    \consists "Rest_engraver";
-        		    \consists "Stem_engraver";
-        		    \consists "Rhythmic_column_engraver";
-         } }})
 
 If the duration is omitted then it is set equal to the previous
 duration.  If there is no previous duration, a quarter note is
-assumed.  The duration can be followed by a dot indexandcode(.) to
-obtain dotted note lengths.  COMMENT(
+assumed.  The duration can be followed by a dot (`indexandcode(.)')
+to obtain dotted note lengths.
 
-)mudela(fragment,verbatim,center)(
-a'4. b'4.
-)
+mudela(fragment,verbatim,center)(  a'4. b'4.)
 
-You can alter the length of duration by writing code(*)var(fraction)
-after a it.  This will not affect the appearance of note heads or
-rests.
+You can alter the length of duration by writing
+`code(*)var(fraction)' after it.  This will not affect the
+appearance of note heads or rests.
 
 subsubsect(Rests)
 
-Rests are entered like notes, with note name indexandcode(r),
-indexandcode(s) or indexandcode(R).  There is also a note name which
-produces a nonprinting note of the specified duration. code(R) is
-specifically  meant for entering parts: the code(R) rest can expand to
-fill a score with rests, or it can be printed as a single multimeasure rest.
-
-subsubsect(Lyrics syllables)cindex(Lyric expressions)
-
-Syllables are entered like notes, with pitches replaced
-by text.  For example code(Twin-4 kle4 twin-4 kle4) enters four
-syllables, each with quarter note duration.  Note that the hyphen has
-no special meaning for lyrics, and does not introduce special symbols.
-See Section ref(modes) for a description of what is interpreted as a lyric.
-
-Spaces can be introduced into a lyric either by using quotes (code("))
-or by using an underscore without quotes: code(He_could4 not4).  All
-unquoted underscores are converted to spaces.  Printing lyrics is
-discussed in Section ref(lyricprint).
-
-subsect(Properties)cindex(Properties)
-
-code(\property)keyindex(property) var(contextname)code(.)var(propname) code(=) var(value)
-Sets the var(propname) property of the context var(contextname) to the
-specified var(value).  All three arguments are strings.  Depending on
-the context it may be necessary to quote the strings or to leave space
-on both sides of the dot. 
-
-subsect(Translator switches)cindex(Translator switches)
-
-code(\translator)keyindex(translator) var(contexttype) = var(name)
-A music expression that the context which is a direct child of the 
-a  context of type var(contexttype) should be shifted to a context of
-type var(contexttype) and  the specified name.  
+Rests are entered like notes, with note name `indexandcode(r)',
+or `indexandcode(R)'.  There is also a note name `indexandcode(s)',
+which produces a space of the specified duration. 
+`code(R)' is specifically meant for entering parts: the code(R) rest
+can expand to fill a score with rests, or it can be printed as a
+single multimeasure rest.
+
+subsubsect(Lyrics syllables)
+cindex(lyrics expressions)
+
+Syllables are entered like notes, with pitches replaced by text.  For
+example, `code(Twin-4 kle4 twin-4 kle4)' enters four syllables, each
+with quarter note duration.  Note that the hyphen has no special
+meaning for lyrics, and does not introduce special symbols.  See
+bind(section)ref(modes) for a description of what is interpreted as
+lyrics.
+
+Spaces can be introduced into a lyric either by using quotes
+(`code(")') or by using an underscore without quotes: `code(He_could4
+not4)'.  All unquoted underscores are converted to spaces.  Printing
+lyrics is discussed in bind(section)ref(lyricprint).
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Properties)
+cindex(properties)
+
+quote(
+  code(\property)keyindex(property)
+    var(contextname)code(.)var(propname) code(=) var(value)
+)
+
+Sets the var(propname) property of the context var(contextname) to
+the specified var(value).  All three arguments are strings. 
+Depending on the context, it may be necessary to quote the strings or
+to leave space on both sides of the dot.
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Translator switches)
+cindex(translator switches)
+
+quote(
+  code(\translator)keyindex(translator)
+    var(contexttype) = var(name)
+)
+
+A music expression indicating that the context which is a direct
+child of the a context of type var(contexttype) should be shifted to
+a context of type var(contexttype) and the specified name.
+
+Usually this is used to switch staffs in Piano music, e.g.
+
+quote(
+  code(\translator Staff = top) var(Music)
+)
 
-Usually this is used to switch staffs in Piano music,
-eg. code(\translator Staff = top )var(Music)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-subsect(Commands)cindex(Commands)
+subsect(Commands)
+cindex(commands)
 
 Commands are music expressions that have no duration.   
 
 subsubsect(Key signatures)
 
-code(\key)keyindex(key) var(pitch) var(type) code(;) Change the key
-signature.  var(type) should be code(\major)keyindex(major) or code(\minor)keyindex(minor)
-to get var(pitch)-major or var(pitch)-minor, respectively. The second
-argument is optional, the default is major keys.  The var(\context)
+quote(
+  code(\key)keyindex(key) var(pitch) var(type) code(;)
+)
+
+Change the key signature.  var(type) should be
+code(\major)keyindex(major) or code(\minor)keyindex(minor) to get
+var(pitch)-major or var(pitch)-minor, respectively.  The second
+argument is optional; the default is major keys.  The var(\context)
 argument can also be given as an integer, which tells the number of
 semitones that should be added to the pitch given in the subsequent
 code(\key)keyindex(key) commands to get the corresponding major key,
-e.g. code(\minor)keyindex(minor) is defined as 3.  The standard mode names
-code(\ionian)keyindex(ionian), code(\locrian)keyindex(locrian), code(\aeolian)keyindex(aeolian),
-code(\mixolydian)keyindex(mixolydian), code(\lydian)keyindex(lydian), code(\phrygian)keyindex(phrygian), and
-code(\dorian)keyindex(dorian) are also defined.
+e.g., code(\minor)keyindex(minor) is defined bind(as)3.  The standard
+mode names code(\ionian)keyindex(ionian),
+code(\locrian)keyindex(locrian), code(\aeolian)keyindex(aeolian),
+code(\mixolydian)keyindex(mixolydian), code(\lydian)keyindex(lydian),
+code(\phrygian)keyindex(phrygian), and code(\dorian)keyindex(dorian)
+are also defined.
 
+quote(
+  code(\keysignature)keyindex(keysignature) var(pitchseq) code(;)
+)
 
-code(\keysignature)keyindex(keysignature) var(pitchseq)code(;)
 Specify an arbitrary key signature.  The pitches from var(pitch) will
-be printed in the key signature in the order that they appear on the list.
-
+be printed in the key signature in the order that they appear on the
+list.
 
 subsubsect(Rehearsal marks)
         
-code(\mark)keyindex(mark) var(unsigned)code(;) or code(\mark)
-var(string)code(;) A music expression.  Prints a mark over or under
-(depending on the indexandcode(markDirection) property) the staff.  You must
-add indexandcode(Mark_engraver) to the either Score or Staff context for this
-to work.
+quote(
+  code(\mark)keyindex(mark) var(unsigned) code(;) nl()
+  code(\mark) var(string) code(;)
+)
 
+Prints a mark over or under (depending on the
+indexandcode(markDirection) property) the staff.  You must add
+indexandcode(Mark_engraver) to either the Score or Staff context for
+this to work.
 
 subsubsect(Bar lines)
+label(barlines)
+
+quote(
+  code(\bar)keyindex(bar) var(bartype) code(;)
+)
 
-code(\bar)keyindex(bar) var(bartype)code(;) This is a request to print
-a special bar symbol, or at measure boundaries.  It replaces the
-regular bar symbol with a special symbol.  The argument var(bartype)
-is a string which specifies the kind of bar to print.  Options are
-indexandcode(":|"), indexandcode("|:"), indexandcode(":|:"),
-indexandcode("||"), indexandcode("|."), indexandcode(".|"), or
-indexandcode(".|.").  These produce respectively a right repeat, a
-left repeat, a double repeat, a double bar, a start bar, an end bar,
-or a thick double bar.  If var(bartype) is set to code("empty") then
-nothing is printed, but a line break is allowed at that spot.
+This is a request to print a special bar symbol. It replaces the 
+regular bar symbol with a special
+symbol.  The argument var(bartype) is a string which specifies the
+kind of bar to print.  Options are code(":|")cindex("|A@code(:|)),
+code("|:")cindex("|B@code(|:)), code(":|:")cindex("|C@code(:|:)),
+code("||")cindex("|D@code(||)), code("|.")cindex("|E@code(|.)),
+code(".|")cindex("|F@code(.|)), and code(".|.")cindex("|G@code(.|.)). 
+These produce, respectively, a right repeat, a left repeat, a double
+repeat, a double bar, a start bar, an end bar, and a thick double
+bar.  If var(bartype) is set to code("empty") then nothing is
+printed, but a line break is allowed at that spot.
 
-You are encouraged to use code(\repeat) for repetitions. See Section ref(sec:repeats)
+You are encouraged to use code(\repeat) for repetitions.
+See bind(section)ref(sec:repeats).
 
 subsubsect(Timing commands) 
 
-code(\cadenza)keyindex(cadenza) var(togglevalue)code(;) Music expression that
-toggles the automatic generation of bar lines.  If var(togglevalue) is
-0, bar line generation is turned off.  If var(togglevalue) is 1,
-a bar is immediately printed and bar generation is turned on.
+quote(
+  code(\cadenza)keyindex(cadenza) var(togglevalue) code(;)
+)
+
+Music expression that toggles the automatic generation of bar lines. 
+If var(togglevalue) bind(is)1, bar line generation is turned off.  If
+var(togglevalue) bind(is)0, a bar line is immediately printed and 
+automatic bar generation is turned on.
+
+quote(
+  code(\time)keyindex(time) var(numerator)code(/)var(denominator) code(;)
+)
+
+Change the time signature.  The default time signature bind(is)4/4. 
+The time signature is used to generate bar lines.
 
-code(\time)keyindex(time) var(numerator)code(/)var(denominator)code(;) Change the time
-signature.  The default time signature is 4/4.  The time signature is
-used to generate bar lines.
+quote(
+  code(\tempo)keyindex(tempo) var(duration) = var(perminute) code(;)
+)
 
-code(\partial )var(duration)code(;) Music expression that makes
-the first measure of the music last for the specified duration.  keyindex(partial)
+Used to specify the tempo.  For example, `code(\tempo 4 = 76;)'
+requests output with bind(76)quarter notes per minute.
 
-code(\tempo)keyindex(tempo) var(duration) = var(perminute)code(;) Used
-to specify the tempo.  For example, `code(\tempo 4 = 76;)' requests
-output with 76 quarter notes per minute.
+quote(
+  code(\partial)keyindex(partial) var(duration) code(;)
+)
+cindex(anacrusis)
+cindex(upstep)
 
-code(\partial)keyindex(partial)var( duration)code(;) This creates an incomplete
-measure at the start of the music, eg.  code(\partial 8*2;) creates a
-starting measure lasting two eighth notes.cindex(anacrusis)cindex(upstep)
+This creates an incomplete measure (anacrusis, upbeat) at the start of 
+the music, e.g., `code(\partial 8*2;)' creates a starting measure 
+lasting two eighth notes.
 
-code(|)cindex(|)cindex(barcheck)
+quote(
+  code(|)indexcode(|)cindex(bar check)
+)
+cindex(shorten measures)
+cindex(upstep)
 
-code(|) is a barcheck.  Whenever a barcheck is encountered during
+`code(|)' is a barcheck.  Whenever a barcheck is encountered during
 interpretation, a warning message is issued if it doesn't fall at a
-measure boundary.  This can help you finding errors in the input. The
-beginning of the measure will also be relocated, so this can also be
-used to shorten measures.cindex(shorten measures)cindex(upstep)
+measure boundary.  This can help you finding errors in the input. 
+The beginning of the measure will be relocated, so this can also
+be used to shorten measures.
 
 subsubsect(Other commands)
 
-code(\penalty)keyindex(penalty) var(int)code(;) 
-Discourage or encourage line breaks.  See identifiers code(\break)keyindex(break) and
-code(\nobreak)keyindex(nobreak) in Section ref(ident). 
-
-code(\clef)keyindex(clef) var(clefname)code(;) Music expression that
-sets the current clef.  The argument is
-a string which specifies the name of the clef.  Several clef names are
-supported.  If code(_8) or code(^8) is added to the end of a clef
-name then the clef lowered or raised an octave will be generated.  
-Here are the supported clef names with middle C shown in each clef:
-mudela(center)(
-\score{
-  \notes{ \cadenza 1;
-   %\property Voice.textStyle = typewriter
-   \clef subbass; c'4-"\kern-10mm subbass" 
-           \clef bass;    c'4^"\kern -8mm bass"
-           \clef baritone; c'4_"\kern -10mm baritone"
-           \clef varbaritone; c'4^"\kern -10mm varbaritone"
-           \clef tenor;     c'4_"\kern -10mm tenor"
-           \clef "G_8";   c'4^"\kern -6mm G\_8" 
-   }  
-   \paper{ linewidth= 4.5 \in; }
-}
+quote(
+  code(\penalty)keyindex(penalty) var(int) code(;)
 )
-mudela(center)(
-\score{
-  \notes{\cadenza 1; \clef alto;    c'4_"\kern -10mm alto"
-           \clef mezzosoprano; c'4^"\kern -10mm mezzosoprano"
-           \clef soprano;  c'4_"\kern -10mm soprano"
-           \clef treble;  c'4^"\kern -6mm treble"
-           \clef french;  c'4_"\kern -10mm french" }  
-  \paper{ linewidth= 4.5 \in; }
-}
+
+Discourage or encourage line breaks.  See identifiers
+code(\break)keyindex(break) and code(\nobreak)keyindex(nobreak) in
+bind(section)ref(ident).
+
+quote(
+  code(\clef)keyindex(clef) var(clefname) code(;)
+)
+
+Music expression that sets the current clef.  The argument is a
+string which specifies the name of the clef.  Several clef names are
+supported.  If `code(_8)' or `code(^8)' is added to the end of a clef
+name, then the clef lowered or raised an octave will be generated. 
+Here are the supported clef names with bind(middle)C shown in each
+clef:
+
+quote(
+mudela()(\score {
+  \notes {
+    \cadenza 1;
+    %\property Voice.textStyle = typewriter
+    \clef subbass;     c'4-"\kern -5mm subbass" 
+    \clef bass;        c'4^"\kern -2mm bass"
+    \clef baritone;    c'4_"\kern -5mm baritone"
+    \clef varbaritone; c'4^"\kern -6mm varbaritone"
+    \clef tenor;       c'4_"\kern -3mm tenor"
+    \clef "G_8";       c'4^"\kern -2mm G\\texttt{\\_}8" 
+  }  
+  \paper {
+    linewidth = 4.5 \in;
+  }
+})
 )
-The treble  clef  can also  be obtained using  the  names code(G) or
-code(violin).  The bass clef is also available by code(\clef  F). 
 
-code(\skip)keyindex(skip) var(duration)code(;) Skips the amount of time
-specified by var(duration).  If no other music is played, a gap will
-be left for the skipped time with no notes printed.  It works in Note
-Mode or Lyrics Mode.  In note mode, this has the same effect as the
-space rest code(s).
+quote(
+mudela()(\score {
+  \notes {
+    \cadenza 1;
+    \clef alto;         c'4_"\kern -2mm alto"
+    \clef mezzosoprano; c'4^"\kern -9mm mezzosoprano"
+    \clef soprano;      c'4_"\kern -6mm soprano"
+    \clef treble;       c'4^"\kern -4mm treble"
+    \clef french;       c'4_"\kern -4mm french"
+  }
+  \paper {
+    linewidth = 4.5 \in;
+  }
+})
+)
 
+The three clef symbols can also be obtained using the names `code(G)', 
+`code(C)' or `code(F)', optionally followed by an integer which 
+indicates at which note line the clef is located. An as example, the 
+code(mezzosoprano) clef can also be given as `code(C2)'.
+
+quote(
+  code(\skip)keyindex(skip) var(duration) code(;)
+)
+
+Skips the amount of time specified by var(duration).  If no other
+music is played, a gap will be left for the skipped time with no
+notes printed.  It works in Note Mode or Lyrics Mode.  In Note mode,
+this has the same effect as the space rest `code(s)'.
 
-subsubsect(Beams)cindex(beams)
+subsubsect(Beams)
+cindex(beams)
 label(manualbeam)
 
 A beam is specified by surrounding the beamed notes with brackets
-indexandcode([) and indexandcode(]).  
-mudela(fragment,verbatim,center)(
-[a'8 a'] [a'16 a' a' a'] 
-)
+`indexandcode([)' and `indexandcode(])'.  
+
+mudela(fragment,verbatim,center)(  [a'8 a'] [a'16 a' a' a'])
+
 Some more elaborate constructions:
-mudela(fragment,verbatim,center)(
-[a'16 <a' c''> c'' <a' c''>]
-\times 2/3 { [e'8 f' g'] }
-)
 
-Beaming can be generated automatically see Section ref(autobeam).
+mudela(fragment,verbatim,center)(  [a'16 <a' c''> c'' <a' c''>]
+  \times 2/3 { [e'8 f' g'] })
 
-cindex(Tremolo beams)
+Beaming can be generated automatically; see bind(section)ref(autobeam).
 
-To place tremolo marks in between two notes, begin with
-code([:)var(length) and end with code(]).  The tremolo marks will
-appear instead of beams.  Putting more than two notes in such a
-construction will produce odd effects.
+To place tremolo marks cindex(tremolo beams) between two notes, begin
+with `code([:)var(length)' and end with `code(])'.  Tremolo marks
+will appear instead of beams.  Putting more than two notes in such a
+construction will produce odd effects.  To create tremolo beams on a
+single note, simply attach `code(:)var(length)' to the note itself
+(see also bind(section)ref(tremolo)).
   
-mudela(fragment,verbatim,center)(
-  [:16 e'1 g'] [:8 e'4 f']
-)
+mudela(fragment,verbatim,center)(  [:16 e'1 g'] [:8 e'4 f'])
   
-mudela(fragment,verbatim,center)(
-  c'4:32 [:16 c'8 d'8]
-)
-
-COMMENT(ref to normal tremolos?)
+mudela(fragment,verbatim,center)(  c'4:32 [:16 c'8 d'8])
 
 subsubsect(Lyric helpers)
-cindex(--)cindex(__)cindex(extender)cindex(hyphen)
+cindex(--@code(-)code(-))
+indexcode(__)
+cindex(extender)
+cindex(hyphen)
+
+The syntax for an extender mark is `code(__)'.  This syntax can only
+be used within lyrics mode.  The syntax for a spanning hyphen (i.e.,
+a hyphen that will be printed between two lyric syllables) is
+`code(-)code(-)'.
 
-The syntax for an extender mark is code(__).  This syntax can only be
-used within lyrics mode.  The syntax for a spanning hyphen (a hyphen
-that will be printed between two lyric syllables) is code(-)code(-)
-
-
-
-subsubsect(Tie)cindex(tie)
+subsubsect(Ties)
+cindex(ties)
 
 A tie connects two adjacent note heads of the same pitch.  When used
 with chords, it connects all of the note heads whose pitches match.
-Ties are indicated using the tilde symbol indexandcode(~).
+Ties are indicated using the tilde symbol `indexandcode(~)'.
 If you try to tie together chords which have no common pitches, a
-warning message will appear. No ties will be created.  COMMENT(
+warning message will appear and no ties will be created.
 
-)mudela(fragment,verbatim,center)(
-e' ~ e' <c' e' g'> ~ <c' e' g'>
-)
+mudela(fragment,verbatim,center)(  e' ~ e' <c' e' g'> ~ <c' e' g'>)
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 subsect(Atomic music expressions: add-ons)
 
 [TODO: explain Requests]
 
-
-subsubsect(Articulations)cindex(articulations)cindex(scripts)cindex(ornaments)
+subsubsect(Articulations)
+cindex(articulations)
+cindex(scripts)
+cindex(ornaments)
 
 A variety of symbols can appear above and below notes to indicate
 different characteristics of the performance.  These symbols can be
@@ -796,85 +1051,109 @@
 are defined in file(script.ly) and file(script.scm).  Symbols can be
 forced to appear above or below the note by writing
 `var(note)code(^\)var(name)' and `var(note)code(_\)var(name)'
-respectively. Here is a chart showing symbols above notes, with the
+respectively.  Here is a chart showing symbols above notes, with the
 name of the corresponding symbol appearing underneath.
 
 mudela()(
-\score{
- < \notes{ c''-\accent c''-\marcato c''-\staccatissimo f'-\fermata 
-          c''-\stopped c''-\staccato c''-\tenuto c''-\upbow c''-\downbow
-          c''-\lheel c''-\rheel  c''-\ltoe  c''-\rtoe  c''-\turn
-          c''-\open  c''-\flageolet  c''-\reverseturn 
-          c''-\trill
-          c''-\prall c''-\mordent c''-\prallprall  c''-\prallmordent
-          c''-\upprall c''-\downprall c''-\thumb c''-\segno c''-\coda}
-  \context Lyrics \lyrics{  
-        accent__ marcato__ staccatissimo__ fermata stopped__
-        staccato__ tenuto__ upbow downbow__ lheel__ rheel__ ltoe
-        rtoe__ turn__ open__ flageolet reverseturn__ trill__ prall__
-        mordent prallprall__ prallmordent__ uprall__ downprall thumb 
-	segno coda }
-  >
-  \paper{ linewidth = 5.875\in;          
-          indent = 0.0;        }
- }
+  \score {
+    < \notes {
+        c''-\accent      c''-\marcato      c''-\staccatissimo c''-\fermata 
+        c''-\stopped     c''-\staccato     c''-\tenuto        c''-\upbow
+        c''-\downbow     c''^\lheel        c''-\rheel         c''^\ltoe
+        c''-\rtoe        c''-\turn         c''-\open          c''-\flageolet
+        c''-\reverseturn c''-\trill        c''-\prall         c''-\mordent
+        c''-\prallprall  c''-\prallmordent c''-\upprall       c''-\downprall
+        c''-\thumb       c''-\segno        c''-\coda
+      }
+      \context Lyrics \lyrics {  
+        accent__      marcato__      staccatissimo__ fermata
+        stopped__     staccato__     tenuto__        upbow
+        downbow__     lheel__        rheel__         ltoe
+        rtoe__        turn__         open__          flageolet
+        reverseturn__ trill__        prall__         mordent
+        prallprall__  prallmordent__ uprall__        downprall
+        thumb__       segno__        coda
+      }
+    >
+    \paper {
+      linewidth = 5.875\in;          
+      indent    = 0.0;
+    }
+  }
 )
 
 In addition, it is possible to place arbitrary strings of text or
-TeX() above or below notes by using a string instead of an identifier:
-`code(c^"text")'.  Fingerings cindex(fingering) can be placed by
-simply using digits.  All of these note ornaments appear in the
-printed output but have no effect on the MIDI rendering of the music.
+TeX() above or below notes by using a string instead of an
+identifier: `code(c^"text")'.  Fingerings cindex(fingering) can be
+placed by simply using digits.  All of these note ornaments appear in
+the printed output but have no effect on the MIDI rendering of the
+music.
+
+To save typing, fingering instructions (digits 0 bind(to)9 are
+supported) and single characters shorthands exist for a few
+common symbols
 
-To save typing, fingering instructions (digits 0 to 9 are supported)
-and single characters shorthands exist also for a few common symbols
-COMMENT(
-
-)mudela()(
-\score{ \notes {
-        \property Voice.textStyle = typewriter
-        c''4-._"c-." s4
-        c''4--_"c-{}-"  s4
-        c''4-+_"c-+" s4
-        c''4-|_"c-|" s4
-        c''4->_"c->"  s4
-        c''4-^_"c-\\^{ }"  s4
-	c''4-1_"c-1" s4
-	c''4-2_"c-2" s4
-	c''4-3_"c-3" s4
-	c''4-4_"c-4" s4
-	}
-%        \paper { linewidth = 12.\cm; }
-})
+mudela()(
+  \score {
+    \notes {
+      \property Voice.textStyle = typewriter
+      c''4-._"c-."      s4
+      c''4--_"c-{}-"    s4
+      c''4-+_"c-+"      s4
+      c''4-|_"c-|"      s4
+      c''4->_"c->"      s4
+      c''4-^_"c-\\^{ }" s4
+      c''4-1_"c-1"      s4
+      c''4-2_"c-2"      s4
+      c''4-3_"c-3"      s4
+      c''4-4_"c-4"      s4
+    }
+    \paper {
+      linewidth = 5.875 \in;
+      indent    = 0.0;
+    }
+  }
+)
 
 Dynamic marks are specified by using an identifier after a note:
-code(c4-\ff).  The available dynamic marks are: keyindex(pppp),
-code(\ppp)keyindex(ppp), code(\pp)keyindex(pp), code(\p)keyindex(p),
-code(\mp)keyindex(mp), code(\mf)keyindex(mf), code(\f)keyindex(f),
-code(\ff)keyindex(ff), code(\fff)keyindex(fff),
-code(\ffff)keyindex(ffff), code(\fp)keyindex(fp),
-code(\sf)keyindex(sf), code(\sff)keyindex(sff), code(\sp)keyindex(sp),
-code(\spp)keyindex(spp), code(\sfz)keyindex(sfz) and
+`code(c4-\ff)' (the dash is optional for dynamics: `code(c4 \ff))'.  
+The available dynamic marks are:
+code(\ppp)keyindex(ppp),
+code(\pp)keyindex(pp), code(\p)keyindex(p), code(\mp)keyindex(mp),
+code(\mf)keyindex(mf), code(\f)keyindex(f), code(\ff)keyindex(ff),
+code(\fff)keyindex(fff), code(\fff)keyindex(ffff),
+code(\fp)keyindex(fp), code(\sf)keyindex(sf),
+code(\sff)keyindex(sff), code(\sp)keyindex(sp),
+code(\spp)keyindex(spp), code(\sfz)keyindex(sfz), and
 code(\rfz)keyindex(rfz).
 
 subsubsect(General text scripts)
 
-code(\textscript)keyindex(textscript) var(text) var(style).  Defines a text to be
-printed over or under a note.  var(style) is a string that may be one
-of code(finger), code(roman), code(italic), code(dynamic), code(Large)
-or code(large).  
+quote(
+  code(\textscript)keyindex(textscript) var(text) var(style)
+)
+
+Defines a text to be printed over or under a note.  var(style) is a
+string that may be one of code(roman), code(italic), code(typewriter), 
+code(bold), code(Large), code(large), code(dynamic) or code(finger).
+
+You can attach a general textscript request using this syntax:
 
-You can attach a general textscript request using this syntax
+quote(
 verb(c4-\textscript "6" "finger"
-c4-\textscript "foo" "normal"
+c4-\textscript "foo" "normal")
 )
-This is equivalent with code(c4-6 c4-"foo").  
 
-subsubsect(General scripts)cindex(scripts)
+This is equivalent to `code(c4-6 c4-"foo")'.  
 
-Syntax: code(\script)keyindex(script) var(alias).
+subsubsect(General scripts)
+cindex(scripts)
+
+quote(
+  code(\script)keyindex(script) var(alias)
+)
 
- Prints a symbol above or below a note.  The argument is a string
+Prints a symbol above or below a note.  The argument is a string
 which points into the script-alias table defined in file(script.scm).
 The scheme definitions specify whether the symbol follows notes into
 the staff, dependence of symbol placement on staff direction, and a
@@ -882,1642 +1161,2182 @@
 code(\script)keyindex(script) keyword is not used directly.  Various
 helpful identifier definitions appear in file(script.ly).
 
-
-subsubsect(Slur)cindex(Slur)
+subsubsect(Slurs)
+cindex(slur)
 
 Slurs connects chords and try to avoid crossing stems.  A slur is
-started with code(CHAR(40)) and stopped with code(CHAR(41)).  The
-starting code(CHAR(40)) appears to the right of the first note in the
-slur.  The terminal code(CHAR(41)) apppears to the left of the first
-note in the slur.  This makes it possible to put a note in slurs from
-both sides: COMMENT(
-
-)mudela(fragment,verbatim,center)(
-f'()g'()a' [a'8 b'(] a'4 g'2 )f'
-)
-
-
-subsubsect(Crescendo)cindex(Crescendo)
-
-A crescendo mark is started with code(\cr)keyindex(cr) and terminated with
-code(\rc)keyindex(rc).  A decrescendo mark is started with code(\decr)keyindex(decr) and
-terminated with code(\rced)keyindex(rced).  There are also shorthands for these
-marks.  A crescendo can be started with code(\<)keyindex(<) and a decrescendo can
-be started with code(\>)keyindex(>).  Either one can be terminated with code(\!)keyindex(!).
-Note that code(\!) must go before the last note of the dynamic mark whereas
-code(\rc) and code(\rced) go after the last note.  Because these marks are
-bound to notes, if you want to get several marks during one note, you must use
-spacer notes. COMMENT(
-
-)mudela(fragment,verbatim,center)(
-c'' \< \! c''   d'' \decr e'' \rced 
-< f''1 {s4 \< \! s2 \> \! s2 } >)
-
+started with `code(CHAR(40))' and stopped with `code(CHAR(41))'.  The
+starting `code(CHAR(40))' appears to the right of the first note in
+the slur.  The terminal `code(CHAR(41))' appears to the left of the
+first note in the slur.  This makes it possible to put a note in
+slurs from both sides:
+
+mudela(fragment,verbatim,center)(  f'()g'()a' [a'8 b'(] a'4 g'2 )f'4)
+
+subsubsect(Crescendo)
+cindex(crescendo)
+
+A crescendo mark is started with code(\cr)keyindex(cr) and terminated
+with code(\rc)keyindex(rc).  A decrescendo mark is started with
+code(\decr)keyindex(decr) and terminated with
+code(\rced)keyindex(rced).  There are also shorthands for these
+marks.  A crescendo can be started with code(\<)keyindex(<) and a
+decrescendo can be started with code(\>)keyindex(>).  Either one can
+be terminated with code(\!)keyindex("!).  Note that code(\!)
+must go before the last note of the dynamic mark whereas code(\rc)
+and code(\rced) go after the last note.  Because these marks are
+bound to notes, if you want to get several marks during one note, you
+must use spacer notes.
 
+mudela(fragment,verbatim,center)(  c'' \< \! c''   d'' \decr e'' \rced 
+  < f''1 { s4 \< \! s2 \> \! s4 } >)
 
 subsubsect(General spanners)
 
-code(\spanrequest)keyindex(spanrequest) var(startstop) var(type).
-Define a spanning request var(startstop) is either -1
-(code(\start)keyindex(start)) or 1 (code(\stop)keyindex(stop)). The
-var(type) parameter is a string that describes what should be started.
-Supported types are code(crescendo), code(decrescendo), code(beam),
-code(slur).  This is an internal command.  Users should use the
-shorthands which are defined in the initialization file
+quote(
+  code(\spanrequest)keyindex(spanrequest) var(startstop) var(type)
+)
+
+Define a spanning request. The var(startstop) parameter is bind(either)-1
+(code(\start)keyindex(start)) bind(or)1 (code(\stop)keyindex(stop)) and
+var(type) is a string that describes what should be started.
+Supported types are code(crescendo), code(decrescendo),
+code(beam), code(slur).  This is an internal command.  Users should
+use the shorthands which are defined in the initialization file
 file(spanners.ly).
 
 You can attach a (general) span request to a note using
-mudela(fragment,center)(
-c4-\spanrequest \start "slur"
-c4-\spanrequest \stop "slur"
-)
+
+mudela(fragment,verbatim,center)(  c'4-\spanrequest \start "slur"
+  c'4-\spanrequest \stop "slur")
+
 The slur syntax with parentheses is a shorthand for this.
 
 COMMENT(came till here with indexifying)
 
-subsubsect(Tremolo marks)cindex(Tremolo marks)
+subsubsect(Tremolo marks)
+cindex(tremolo marks)
+label(tremolo)
 
-Tremolo marks can be printed on a single note by adding code(:)[var(length)]
-after the note.  The length must be at least 8.  A var(length) value
-of 8 gives one line across the note stem.  
-If the length is omitted,
-then the last value is used, or the value of the code(abbrev)
-property if there was no last value.
-mudela(verbatim,fragment,center)(c'2:8 c':32
-)
+Tremolo marks can be printed on a single note by adding
+`code(:)[var(length)]' after the note.  The length must be at
+bind(least)8.  A var(length) value bind(of)8 gives one line across
+the note stem.  If the length is omitted, then the last value is
+used, or the value of the indexandcode(abbrev) property if there was
+no last value.
+
+mudela(verbatim,fragment,center)(  c'2:8 c':32)
 
-sect(Compound music expressions)cindex(Compound music expressions)
-label(compoundmusic)
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+sect(Compound music expressions)
+cindex(compound music expressions)
+label(compoundmusic)
 
 Music expressions are compound data structures.  You can nest music
 expressions any way you like.  This simple example shows how three
-chords can be expressed in two different ways: COMMENT(
+chords can be expressed in two different ways:
 
-)mudela(fragment,verbatim,center)(
-\notes\context Staff{
-  <a c'> <b  d' > <c' e' >
-  <{a b  c'}{c' d' e'}>
-})
+mudela(fragment,verbatim,center)(  \notes \context Staff {
+    \cadenza 1;
+    <a c'> <b  d' > <c' e' >
+    <{a b  c'}{c' d' e'}>
+  })
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-subsect(Context selection)cindex(Context selection)
+subsect(Context selection)
+cindex(context selection)
 
-code(\context)keyindex(context) var(contexttype) [code(=) var(contextname)]
-var(musicexpr)
+quote(
+  code(\context)keyindex(context)
+    var(contexttype) [code(=) var(contextname)] var(musicexpr)
+)
 
-Interpret var(musicexpr) within a context of type var(contexttype).
+Interpret var(musicexpr) within a context of type var(contexttype). 
 If the context does not exist, it will be created.  The new context
-can optionally be given a name.  See Section ref(contextselection) and
-ref(contextdefs) for more
+can optionally be given a name.  See
+bind(section)ref(contextselection) bind(and)ref(contextdefs) for more
 information on interpretation contexts.
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
 subsect(Music entry modes)
 cindex(input modes)
 cindex(mode switch)
 
-Mode switching keywords form compound music
-expressions:keyindex(notes)keyindex(chords)keyindex(lyrics)
-code(\notes )var(musicexpr), code(\chords )var( musicexpr), and
-code(\lyrics )var(musicexpr).  These expressions do not add anything
-to the meaning of their arguments.  They are just a way to indicate
-that the arguments should be parsed in indicated mode. See Section
-ref(modes) for more information on modes.
+Mode switching keywords form compound music expressions: code(\notes)
+keyindex(notes) var(musicexpr), code(\chords) keyindex(chords)
+var(musicexpr), and code(\lyrics) keyindex(lyrics) var(musicexpr). 
+These expressions do not add anything to the meaning of their
+arguments.  They are just a way to indicate that the arguments should
+be parsed in indicated mode.  See bind(section)ref(modes) for more
+information on modes.
+
+More information on context selection can be found in
+bind(section)ref(contextselection).
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Sequential music)
+cindex(sequential music)
+COMMENT(It's not possible to index `{' and `}' directly, thus we
+        must construct it.)
+whenlatex(cindex(?A@latexcommand(\texttt{\textbraceleft})))
+whenlatex(cindex(?B@latexcommand(\texttt{\textbraceright})))
 
+quote(
+  code(\sequential)keyindex(sequential)
+    code({) var(musicexprlist) code(})
+)
 
-More information on context selection can be found in Section ref(contextselection)
+This means that list should be played or written in sequence, i.e.,
+the second after the first, the third after the second.  The duration
+of sequential music is the the sum of the durations of the elements. 
+There is a shorthand, which leaves out the keyword:
 
+quote(
+  code({) var(musicexprlist) code(})
+)
 
-subsect(Sequential music)cindex(Sequential music)
-keyindex(sequential)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-The syntax is code(\sequential)code( {)var(musicexprlist)code( }).  This means that list should be played or
-written in sequence, i.e., the second after the first, the third after
-the second.  The duration of sequential music is the the sum of the
-durations of the elements.  There is a shorthand, which leaves
-out the keyword: code({ )var(musicexprlist )code( }).
+subsect(Simultaneous music)
+cindex(simultaneous music)
+indexcode(<)
+indexcode(>)
 
+quote(
+  code(\simultaneous)keyindex(simultaneous)
+    code({) var(musicexprlist) code(})
+)
 
-subsect(Simultaneous music)cindex(Simultaneous music)
+It constructs a music expression where all of its arguments start at
+the same moment.  The duration is the maximum of the durations of the
+elements.  The following shorthand is a common idiom:
 
-The syntax is code(\simultaneous)keyindex(simultaneous)code({)var(
-musicexprlist )code(}).  It constructs a music expression where all of
-its arguments start at the same moment.  The duration is the maximum
-of the durations of the elements.  The shorthand, code(<)
-var(musicexprlist) code(>) is common idiom.
+quote(
+  code(<) var(musicexprlist) code(>)
+)
 
-If you try to use a chord as the first thing in your score, you
-might get multiple staffs in stead of a chord.COMMENT(
+If you try to use a chord as the first thing in your score, you might
+get multiple staffs instead of a chord.
 
-)mudela(verbatim)(\score { \notes <c''4 e''>
-	\paper { linewidth = -1.; }
-})COMMENT(
+mudela(verbatim,center)(  \score {
+    \notes <c''4 e''>
+    \paper {
+      linewidth = -1.;
+    }
+  })
 
-) This happens because the chord is interpreted by a score context.
+This happens because the chord is interpreted by a score context.
 Each time a note is encountered a default Voice context (along with a
-Staff context) is created. The solution is to explicitly instantiate a
-Voice context:
-mudela(verbatim,center)(\score { \notes\context Voice <c''4 e''>
-  \paper { linewidth = -1.; }
-})
+Staff context) is created.  The solution is to explicitly instantiate
+a Voice context:
+
+mudela(verbatim,center)(  \score {
+    \notes\context Voice <c''4 e''>
+    \paper {
+      linewidth = -1.;
+    }
+  })
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-subsect(Relative Pitch Specification)cindex(Relative Pitch Specification)
+subsect(Relative Pitch Specification)
+cindex(relative pitch specification)
 label(relative)
 
 It is easy to get confused by octave changing marks and accidentally
-put a pitch in the wrong octave.  A much better way of entering a
+putting a pitch in the wrong octave.  A much better way of entering a
 note's octave is `the relative octave' mode.
 
-The syntax for relative mode is code(\relative)keyindex(relative)
-var(startpitch) var(musicexpr).
+quote(
+  code(\relative)keyindex(relative) var(startpitch) var(musicexpr)
+)
 
 The octave of notes that appear in var(musicexpr) are calculated as
-follows: when no octave changing marks are used, the basic interval
+follows: If no octave changing marks are used, the basic interval
 between this and the last note is always taken to be a fourth or
-less.footnote(The interval is determined without regard accidentals.
-A code(fisis) following a code(ceses) will be put above the
-code(ceses)) The octave changing marks code(') and code(,) can then be
-added to raise or lower the pitch by an extra octave.  Upon entering
-relative mode, an absolute starting pitch must be specified that will
-act as the predecessor of the first note of var(musicexpr).
+less.footnote(The interval is determined without regarding
+accidentals.  A code(fisis) following a code(ceses) will be put above
+the code(ceses).)  The octave changing marks `code(')' and `code(,)'
+can then be added to raise or lower the pitch by an extra octave. 
+Upon entering relative mode, an absolute starting pitch must be
+specified that will act as the predecessor of the first note of
+var(musicexpr).
 
 Entering scales is straightforward in relative mode.
 
-mudela(fragment,verbatim,center)(
-\relative c' { c d e f g a b c c, }
-)
-
-and octave changing marks are used for intervals greater than a fourth.
-
-mudela(fragment,verbatim,center)(
-\relative c'' { c g c f, c' a,, e''' }
-)
-
-When 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 within the second
-chord are determined by looking at the immediately preceding note.  
-
-mudela(fragment,verbatim,center)(
-\relative c' { c <c e g> 
-    <c' e g> <c, e' g> }
-) 
-
-The pitch after the code(\relative) contains a notename. To parse the
-pitch as a notename, you have to be in note mode, so there must be a
-surrounding code(\notes)keyindex(notes) keyword (which is not shown here).
+mudela(fragment,verbatim,center)(  \relative c' {
+    c d e f g a b c c,
+  })
+
+And octave changing marks are used for intervals greater than a fourth.
+
+mudela(fragment,verbatim,center)(  \relative c'' {
+    c g c f, c' a, e'' })
+
+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
+within the second chord are determined by looking at the immediately
+preceding note.
+
+mudela(fragment,verbatim,center)(  \relative c' {
+    c <c e g> 
+    <c' e g>
+    <c, e' g>
+  }) 
+
+The pitch after the code(\relative) contains a notename.  To parse
+the pitch as a notename, you have to be in note mode, so there must
+be a surrounding code(\notes)keyindex(notes) keyword (which is not
+shown here).
 
 The relative conversion will not affect code(\transpose) or
-code(\relative) sections in its argument.  If you want to use relative
-within transposed music, you must place an additional code(\relative)
-inside the code(\transpose).
-
-You are strongly recommended to use relative pitch mode: it is less
-work, less error-prone and more readable.
+code(\relative) sections in its argument.  If you want to use
+relative within transposed music, you must place an additional
+code(\relative) inside the code(\transpose).
 
+It is strongly recommended to use relative pitch mode: less work,
+less error-prone, and more readable.
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 subsect(Chord names)
 
 Chord names are a way to generate simultaneous music expressions that
-correspond with traditional chord names. It can only be used in chord
-mode (See Section ref(modes)).  The syntax is
-var(tonic)[var(duration)][code(-)var(modifiers)][code(^)var(subtractions)][code(/)var(inversion)].
-var(tonic) should be the tonic note of the chord, and the var(duration) is
-the chord duration in the usual notation.  There are two kinds of modifiers.
-One type is chord additions, which are obtained by listing intervals separated
-by dots.  An interval is written by its number with an optional code(+) or
-code(-) to indicate raising or lowering by half a step.  A chord additions has
-two effects:  it adds the specified interval and all lower odd numbered
-intervals to the chord, and it may lower or raise the specified interval.
-Intervals must be separated by a dot (code(.)).
-COMMENT(
+correspond with traditional chord names.  It can only be used in
+Chord mode (see bind(section)ref(modes)).
 
-)mudela(fragment,verbatim)(
-\transpose c''{ 
-\chords{
-  c1 c-3- c-7 c-8 c-9  
-  c-9-.5+.7+ c-3-.5- c-4.6.8
-}})COMMENT(
-
-)The second type of modifier that may appear after the code(-) is 
-a named modifier. 
-Named modifiers are listed in the file file(chord-modifiers.ly).  The
-available modifiers are code(m) and code(min) which lower
-the 3rd half a step, indexandcode(aug) which raises the 5th, indexandcode(dim) which lowers
-the 5th, indexandcode(maj) which adds a raised 7th, and indexandcode(sus) which replaces the
-5th with a 4th.  
-mudela(fragment,verbatim,center)(
-\transpose c''{ 
-\chords{
-  c1-m c-min7 c-maj c-aug c-dim c-sus
-}}) 
-
-Chord subtractions are used to eliminate notes from a chord.  The notes to be
-subtracted are listed after a code(^) character, separated by dots.  
-mudela(fragment,verbatim,center)(
-\transpose c''{ 
-\chords{
-  c1^3 c-7^5.3 c-8^7
-}}) 
-
-Chord inversions can be specified by appending indexandcode(/) and the name of a
-single note to a chord.  This has the effect of lowering the specified note by
-an octave so it becomes the lowest note in the chord.  If the
-specified note is not in the chord, a warning will be printed.  
-mudela(fragment,verbatim,center)(
-\transpose c'''{ 
-  \chords { c1 c/e c/g c-7/e }
-}) 
-Throughout these examples, chords have been shifted around the staff
-using code(\transpose).
+quote(
+  var(tonic)[var(duration)][code(-)var(modifiers)]\
+                           [code(^)var(subtractions)]\
+                           [code(/)var(inversion)].
+)
+
+var(tonic) should be the tonic note of the chord, and var(duration)
+is the chord duration in the usual notation.  There are two kinds of
+modifiers.  One type is em(chord additions), which are obtained by
+listing intervals separated by dots.  An interval is written by its
+number with an optional `code(+)' or `code(-)' to indicate raising or
+lowering by half a step.  Chord additions has two effects: It adds
+the specified interval and all lower odd numbered intervals to the
+chord, and it may lower or raise the specified interval.  Intervals
+must be separated by a dot (`code(.)').
+
+quote(
+mudela(fragment,verbatim)(\transpose c'' {
+  \chords {
+    c1  c-3-       c-7     c-8
+    c-9 c-9-.5+.7+ c-3-.5- c-4.6.8
+  }
+}
+)
+)
 
-You should  not combine code(\relative)  with named chords. 
+The second type of modifier that may appear after the `code(-)' is a
+named modifier.  Named modifiers are listed in the file
+file(chord-modifiers.ly).  The available modifiers are `code(m)' and
+`code(min)' which lower the 3rd half a step, `indexandcode(aug)' which
+raises the 5th, `indexandcode(dim)' which lowers the 5th,
+`indexandcode(maj)' which adds a raised 7th, and `indexandcode(sus)'
+which replaces the 5th with a 4th.
+
+quote(
+mudela(fragment,verbatim)(\transpose c'' {
+  \chords {
+    c1-m c-min7 c-maj c-aug c-dim c-sus
+  }
+}
+)
+) 
 
+Chord subtractions are used to eliminate notes from a chord.  The
+notes to be subtracted are listed after a `code(^)' character,
+separated by dots.
+
+mudela(fragment,verbatim,center)(  \transpose c'' {
+    \chords {
+      c1^3 c-7^5.3 c-8^7
+    }
+  }) 
+
+Chord inversions can be specified by appending `indexandcode(/)' and
+the name of a single note to a chord.  This has the effect of
+lowering the specified note by an octave so it becomes the lowest
+note in the chord.  If the specified note is not in the chord, a
+warning will be printed.
+
+mudela(fragment,verbatim,center)(  \transpose c''' {
+    \chords {
+      c1 c/e c/g c-7/e
+    }
+  }
+) 
 
+Throughout these examples, chords have been shifted around the staff
+using code(\transpose).
+
+You should not combine code(\relative) with named chords. 
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-subsect(Tuplets)cindex(Tuplets)
+subsect(Tuplets)
+cindex(tuplets)
 
 Tuplets are made out of a music expression by multiplying their
-duration with a fraction.  The syntax is code(\times)keyindex(times) var(fraction)
-var(musicexpr).
+duration with a fraction.
+
+quote(
+  code(\times)keyindex(times) var(fraction) var(musicexpr)
+)
 
-The duration of var(musicexpr) will be multiplied by the fraction.
+The duration of var(musicexpr) will be multiplied by the fraction. 
 In print, the fraction's denominator will be printed over the notes,
-optionally with a bracket.  The most
-common tuplet is the triplet in which 3 notes have the length of 2, so
-the notes are 2/3 their written length:
-COMMENT(
+optionally with a bracket.  The most common tuplet is the triplet in
+which bind(3)notes have the length bind(of)2, so the notes are 2/3 of
+their written length:
 
-)mudela(fragment,verbatim,center)( b'4 \times 2/3 {c'4 c' c'} d'4 d'4 )
+mudela(fragment,verbatim,center)(  g'4 \times 2/3 {c'4 c' c'} d'4 d'4)
 
-subsect(Grace notes)cindex(Grace notes)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-Grace notes are specified as code(\grace )keyindex(grace )var(musicexpr).  A grace
-note expression has duration 0; the next real note is assumed to the
-main note.
+subsect(Grace notes)
+cindex(grace notes)
+
+quote(
+  code(\grace)keyindex(grace) var(musicexpr)
+)
 
-You cannot have the grace note after the main note, terms of duration
-and main notes, but you can typeset the grace notes to the right of
-the main note using the property indexandcode(graceAlignPosition).
+A grace note expression has bind(duration)0; the next real note is
+assumed to be the main note.
+
+You cannot have the grace note after the main note, in terms of
+duration, and main notes, but you can typeset the grace notes to the
+right of the main note using the property
+indexandcode(graceAlignPosition).
 
 When grace music is interpreted, a score-within-a-score is set up:
 var(musicexpr) has its own time bookkeeping, and you could (for
-example) have a separate time signature within grace notes.  Within
-this score-within-a-score you can create notes, beams, slurs,
-etc. Unbeamed eighth notes and shorter by default have a slash through
-the stem.  This behavior can be controlled with the
+example) have a separate time signature within grace notes.  While in
+this score-within-a-score, you can create notes, beams, slurs, etc.
+Unbeamed eighth notes and shorter by default have a slash through the
+stem.  This behavior can be controlled with the
 indexandcode(stemStyle) property.
 
-mudela(fragment)(
-  \relative c'' { \grace c8 c4 \grace { [c16 c16] } c4
-    \grace { \property Grace.stemStyle = "" c16 } c4 }
+quote(
+mudela(fragment,verbatim)(\relative c'' {
+  \grace c8 c4 \grace { [c16 c16] } c4
+  \grace { \property Grace.stemStyle = "" c16 } c4
+}
+)
 )
 
-At present nesting code(\grace)keyindex(grace) notes, eg. code(\grace { \grace
-c32 c16} c4) may result in run-time errors of LilyPond.  Since the
-meaning of such a construct is unclear, we don't consider this a loss.
-Similarly, juxtaposing two code(\grace) sections syntactically valid,
-but makes no sense and may cause runtime errors.
+At present, nesting code(\grace)keyindex(grace) notes, e.g.
 
-Ending a staff or score with grace notes may generate a run-time
+quote(
+  code(\grace { \grace c32 c16 } c4)
+)
+
+may result in run-time errors of LilyPond.  Since the meaning of such
+a construct is unclear, we don't consider this a loss.  Similarly,
+juxtaposing two code(\grace) sections is syntactically valid, but
+makes no sense and may cause runtime errors.
+
+Ending a staff or score with grace notes may also generate a run-time
 error, since there will be no main note to attach the grace notes to.
 
-subsect(Repeats)cindex(Repeats)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Repeats)
+cindex(repeats)
 label(sec:repeats)
 
-In order to specify repeats, use the code(\repeat)keyindex(repeat) keyword.  Since
-repeats look and sound differently when played or printed, there are a few
-different variants of repeats.
+In order to specify repeats, use the code(\repeat)keyindex(repeat)
+keyword.  Since repeats look and sound differently when played or
+printed, there are a few different variants of repeats.
 
 description(
-dit(unfolded) repeated music is fully written (played) out.  Useful
-for  MIDI output.
-dit(volta)  This is the normal notation: repeats are not
-written out, but alternative endings (voltas), are printed, left to right.
-dit(folded) alternative endings are written stacked, which is useful
-for lyrics.
+  dit(unfolded) nl()
+    Repeated music is fully written (played) out.  Useful for MIDI
+    output.
+
+  dit(volta) nl()
+    This is the normal notation: Repeats are not written out, but
+    alternative endings (voltas) are printed, left to right.
+
+  dit(folded) nl()
+    Alternative endings are written stacked, which is useful for
+    lyrics.
 )  
 
-The syntax for repeats is code(\repeat) var(variant) var(repeatcount)
-var(repeatbody).  If you have alternative endings, you may add
-code(\alternative)keyindex(alternative)code( { )var(alternative1)
-var(alternative2) var(alternative3) .. code( }), where each
-var(alternative) is a  Music expression.
+The syntax for repeats is
 
-Normal notation repeats are used like this:
-mudela(fragment,verbatim,center)(
-c'1
-\repeat volta 2 { c'4 d' e' f' }
-\repeat volta 2 { f' e' d' c' })
+quote(
+  code(\repeat) var(variant) var(repeatcount) var(repeatbody)
+)
 
-With alternative endings:
-mudela(fragment,verbatim,center)(
-c'1
-\repeat volta 2 {c'4 d' e' f'} 
-\alternative { {d'2 d'} {f' f} })
+If you have alternative endings, you may add
 
-Folded repeats look like this:footnote(Folded repeats offer little
-more over simultaneous music.  However, it is to be expected that more
-functionality --especially for the MIDI backend-- will be implemented) 
+quote(
+  code(\alternative)keyindex(alternative)
+    code({) var(alternative1)
+            var(alternative2)
+            var(alternative3) ellipsis() code(})
+)
 
+where each var(alternative) is a Music expression.
 
-mudela(fragment,verbatim,center)(
-c'1
-\repeat fold 2 {c'4 d' e' f'} 
-\alternative { {d'2 d'} {f' f} })
+Normal notation repeats are used like this:
 
-mudela(fragment,verbatim)(
-\context Staff { \relative c'{
-  \partial 4; \repeat volta 2 {  e | c2 d2 | e2 f2 | }
-  \alternative { { g4 g g } {  a a a a  b1 } }
-}})
+quote(
+mudela(fragment,verbatim)(  c'1
+  \repeat volta 2 { c'4 d' e' f' }
+  \repeat volta 2 { f' e' d' c' }
+)
+)
 
-If you don't give enough alternatives for all of the repeats, then the
-first alternative is assumed to be repeated often enough to equal the
-specified number of repeats.  
-mudela(fragment,verbatim)(
-\context Staff { \relative c'{
-  \repeat volta 3 { \partial 4; e | c2 d2 | e2 f2 | }
-  \alternative { { g4 g g } {\partial 1; e4 e e } 
-                 {\partial 1; a a a a | b1 } }
-}})
+With alternative endings:
 
+quote(
+mudela(fragment,verbatim)(  c'1
+  \repeat volta 2 {c'4 d' e' f'} 
+  \alternative { {d'2 d'} {f' f} }
+)
+)
 
+Folded repeats look like this:footnote(Folded repeats offer little
+more over simultaneous music.  However, it is to be expected that
+more functionality -- especially for the MIDI backend -- will be
+implemented.)
+
+quote(
+mudela(fragment,verbatim)(  c'1
+  \repeat fold 2 {c'4 d' e' f'} 
+  \alternative { {d'2 d'} {f' f} }
+)
+)
 
-It is possible to nest code(\repeat).  This is not entirely supported:
-the notes will come be in the right places, but the repeat bars will
-not.
+quote(
+mudela(fragment,verbatim)(\context Staff {
+  \relative c' {
+    \partial 4;
+    \repeat volta 2 { e | c2 d2 | e2 f2 | }
+    \alternative { { g4 g g } { a | a a a a | b1 } }
+  }
+}
+)
+)
 
+If you don't give enough alternatives for all of the repeats, then
+the first alternative is assumed to be repeated often enough to equal
+the specified number of repeats.
+
+quote(
+mudela(fragment,verbatim)(\context Staff {
+  \relative c' {
+    \repeat volta 3 { \partial 4; e | c2 d2 | e2 f2 | }
+    \alternative { { g4 g g }
+                   {\partial 1; e4 e e } 
+                   {\partial 1; a a a a | b1 } }
+  }
+}
+)
+)
 
+It is possible to nest code(\repeat).  This is not entirely
+supported: the notes will come be in the right places, but the repeat
+bars will not.
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-subsect(Tranposition of Pitches)cindex(Tranposition of Pitches)
+subsect(Transposition of Pitches)
+cindex(transposition of pitches)
 label(transpose)
 
-A music expression can be transposed with code(\transpose)keyindex(transpose).
-The syntax is code(\transpose) var(pitch) var(musicexpr)
-This means that middle C in var(musicexpr) is tranposed to var(pitch). 
+A music expression can be transposed with
+code(\transpose)keyindex(transpose).  The syntax is
+
+quote(
+  code(\transpose) var(pitch) var(musicexpr)
+)
+
+This means that middle C in var(musicexpr) is transposed to
+var(pitch).
 
 code(\transpose) distinguishes between enharmonic pitches: both
 code(\transpose cis') or code(\transpose des') will transpose up half
 a tone.  The first version will print sharps and the second version
-will print flats.    COMMENT(
+will print flats.
 
-)mudela(fragment,verbatim)(
-\context Staff {
-  \clef "F"; { \key e; c d e f } \clef "G";
+quote(
+mudela(fragment,verbatim)(\context Staff {
+  \clef "F";
+  { \key e; c d e f }
+  \clef "G";
   \transpose des'' { \key e; c d e f }
-  \transpose cis'' { \key e; c d e f } }
+  \transpose cis'' { \key e; c d e f }
+}
+)
 )
 
+If you want to use both code(\transpose) and code(\relative), then
+you must use code(\transpose) first.  code(\relative) will have no
+effect music that appears inside a code(\transpose).
 
-If you want to use both code(\transpose) and code(\relative), then you
-must use code(\transpose) first.  code(\relative) will have no effect
-music that appears inside a code(\transpose).
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
- 
-subsect(Automatic lyric durations)cindex(Automatic lyric durations)
+subsect(Automatic lyric durations)
+cindex(automatic lyric durations)
 
-If you have lyrics that are set to a melody, you can import the rhythm
-of that melody into the lyrics using code(\addlyrics).
-keyindex(addlyrics) The syntax for this is code(\addlyrics)
-var(musicexpr1 musicexpr2).  This means that both var(musicexpr1) and
-var(musicexpr2) are interpreted, but that every non-command atomic
-music expression (``every syllable'') in var(musicexpr2) is
-interpreted using timing of var(musicexpr1).
+If you have lyrics that are set to a melody, you can import the
+rhythm of that melody into the lyrics using code(\addlyrics).
+keyindex(addlyrics) The syntax for this is
 
-If the property code(automaticMelismata) is set in the context of
-var(musicexpr1), then no lyrics will be put on slurred or tied notes.
+quote(
+  code(\addlyrics) var(musicexpr1 musicexpr2)
+)
 
-Example
-COMMENT(
+This means that both var(musicexpr1) and var(musicexpr2) are
+interpreted, but that every non-command atomic music expression
+(``every syllable'') in var(musicexpr2) is interpreted using timing
+of var(musicexpr1).
 
-)mudela(verbatim,fragment)(
-	\addlyrics
-		\transpose c'' {
-			\property Voice.automaticMelismata = "1"
-			c8 () cis d8. e16 f2 }
-		\context Lyrics \lyrics { do4 re mi fa }
-)COMMENT(
+If the property indexandcode(automaticMelismata) is set in the
+context of var(musicexpr1), no lyrics will be put on slurred or tied
+notes.
 
-)You should use a single rhythm melody, and single rhythm lyrics (a
+quote(
+mudela(verbatim,fragment)(\addlyrics
+\transpose c'' {
+  \property Voice.automaticMelismata = "1"
+  c8 () cis d8. e16 f2
+}
+\context Lyrics \lyrics {
+ do4 re mi fa }
+)
+)
+
+You should use a single rhythm melody, and single rhythm lyrics (a
 constant duration is the obvious choice).  If you do not, you will get
-undesired effects when using multiple stanzas: COMMENT(
+undesired effects when using multiple stanzas:
 
-)mudela(verbatim,fragment)(
-	\addlyrics
-		\transpose c'' { c8 () cis d8. e16 f2 }
-		\context Lyrics \lyrics < { do4 re mi fa }
-					  { do8 re mi fa } >
+quote(
+mudela(verbatim,fragment)(\addlyrics
+\transpose c'' {
+  c8 () cis d8. e16 f2
+}
+\context Lyrics \lyrics
+< { do4 re mi fa }
+  { do8 re mi fa } >
+)
 )
 
-It is valid (but probably not very useful) to use notes in stead of  lyrics
-for var(musicexpr2). COMMENT(
+It is valid (but probably not very useful) to use notes instead of
+lyrics for var(musicexpr2).
 
-mudela(verbatim,fragment)(
-	\context Voice \addlyrics
-		{ s4 s8 s16 s32 }
-		{ [c16 c c c] }))
+COMMENT(
+  mudela(verbatim,fragment)(
+    \context Voice \addlyrics
+      { s4 s8 s16 s32 }
+      { [c16 c c c] }
+  )
+)
 
-	
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-sect(Ambiguities)cindex(ambiguities)
+sect(Ambiguities)
+cindex(ambiguities)
 
-The grammar contains a number of ambiguities.footnote(The authors hope
-to resolve them at a later time.)
+The grammar contains a number of ambiguities.footnote(The authors
+hope to resolve them at a later time.)
 
 itemize(
-it()
-The assignment
-verb(
-foo = bar)
-COMMENT(
+  it() The assignment
 
-)Can be interpreted as making a string identifier code(\foo)
-containing code("bar"), or a music identifier code(\foo) containing
-the syllable `bar'.
-
-it()The assignment
-verb( foo = -6
-)Can be interpreted as making a integer identifier containing -6, or a
-Request identifier containing the fingering `6' (with neutral direction).
-
-it()
-If you do a nested repeat,
-verb(
+       quote(
+         verb(foo = bar)
+       )
+
+       can be interpreted as making a string identifier code(\foo)
+       containing code("bar"), or a music identifier code(\foo)
+       containing the syllable `bar'.
+
+  it() The assignment
+
+       quote(
+         verb(foo = -6)
+       )
+
+       can be interpreted as making an integer identifier
+       bind(containing)-6, or a Request identifier containing the
+       bind(fingering)`6' (with neutral direction).
+
+  it() If you do a nested repeat like
+
+       quote(
+verb(\repeat ...
 \repeat ...
-  \repeat ..
-  \alternative
-  ) then it is ambiguous to which code(\repeat) the code(\alternative)
-  belongs. This is the classic if-then-else dilemma.  It may be solved
-  by using braces.
+\alternative)
+       )
+
+       then it is ambiguous to which code(\repeat) the
+       code(\alternative) belongs.  This is the classic if-then-else
+       dilemma.  It may be solved by using braces.
 
-it()
-(an as yet unidentified ambiguity)
+  it() (an as yet unidentified ambiguity :-)
 )
 
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
 sect(Notation conversion specifics)
 
-subsect(Automatic Beam Generation)cindex(Automatic Beam Generation)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Automatic Beam Generation)
+cindex(automatic beam generation)
 label(autobeam)
 
 By default, LilyPond will generate beams automatically.  This feature
 can be disabled by setting the indexandcode(Voice.noAutoBeaming)
-property to 1.  It can be overridden for specific cases by specifying
-explicit beams as described in Section ref(manualbeam).
+property bind(to)1.  It can be overridden for specific cases by
+specifying explicit beams as described in
+bind(section)ref(manualbeam).
 
 A large number of Voice properties are used to decide how to generate
 beams.  Their default values appear in file(auto-beam-settings.ly).
 In general, beams can begin anywhere, but their ending location is
 significant.  Beams can end on a beat, or at durations specified by
 the indexandcode(Voice.beamAutoEnd) property.  To end beams every
-quarter note, for example, you could use set
-indexandcode(Voice.beamAutoEnd) equal to code("1/4").  To end beams at
-every three eighth notes you would set it to code("3/8").  The same
-syntax can be used to specify beam starting points using
+quarter note, for example, you could set
+indexandcode(Voice.beamAutoEnd) equal to `code("1/4")'.  To end beams
+at every three eighth notes you would set it to `code("3/8")'.  The
+same syntax can be used to specify beam starting points using
 indexandcode(Voice.beamAutoBegin).
 
 To allow different settings for different time signatures, these
-property names can start with code(time)var(N)code(_)var(M) to
-restrict the definition to var(N)code(/)code(M) time.  For example,
-to specify beams ending only for 6/8 time you would use the property
-code(Voice.time6_8beamAutoEnd).  To allow different endings for notes
-of different durations, the duration can be tacked onto the end of the
-property.  To specify beam endings for beams that contain 32nd notes,
-you would use code(Voice.beamAutoEnd_32).
-
-subsect(Printing chord names)cindex(chord names)cindex(chords)cindex(printing!chord names)
-
-For displaying printed chord names, use the indexandcode(ChordNames) context.  
-The chords may be entered either using the notation described above,
-or directly using simultaneous music. 
-mudela(fragment,verbatim)(
-<
-  \context ChordNames { \chords{ a b c} \notes{ < d f g >  < e g b > } }
-  \context Staff \notes{ a b c' d' e' }
+property names can start with `code(time)var(N)code(_)var(M)' to
+restrict the definition to `var(N)code(/)var(M)' time.  For example,
+to specify beams ending only for bind(6/8)time you would use the
+property code(Voice.time6_8beamAutoEnd).  To allow different endings
+for notes of different durations, the duration can be tacked onto the
+end of the property.  To specify beam endings for beams that contain
+bind(32nd)notes, you would use code(Voice.beamAutoEnd_32).
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Printing chord names)
+cindex(chord names)
+cindex(chords)
+cindex(printing!chord names)
+
+For displaying printed chord names, use the indexandcode(ChordNames)
+and indexandcode(ChordNameVoice) contexts.  The chords may be entered
+either using the notation described above, or directly using
+simultaneous music.
+
+quote(
+mudela(fragment,verbatim)(<
+  \context ChordNames {
+    \chords{a b c} \notes{<d f g>  <e g b>}
+  }
+  \context Staff \notes {
+    a b c' d' e'
+  }
 >
 )
+)
+
 LilyPond examines chords specified as lists of notes to determine a
-name to give the chord.  By default, LilyPond will not try to identify
-chord inversions:
-mudela(fragment,verbatim,center)(
-<
-  \context ChordNameVoice { 
-     \notes{ < e'1 g' c'' > } }
-  \context Thread \notes{ < e'1 g' c'' > }
->)
-If you want inversions to be recognized, you must set the property
-indexandcode(ChordNames.chordInversion): 
-mudela(fragment,verbatim,center)(
-<
-  \property Score.chordInversion = 1
-  \context ChordNameVoice { 
-       \notes{ < e'1 g' c'' > } }
-  \context Thread \notes{ < e'1 g' c'' > }
->)
+name to give the chord.  By default, LilyPond will not try to
+identify chord inversions:
 
+mudela(fragment,verbatim,center)(  <
+    \context ChordNameVoice \notes {
+      <e'1 g' c''>
+    }
+    \context Thread \notes {
+      <e'1 g' c''>
+    }
+  >)
 
+If you want inversions to be recognized, you must set the property
+indexandcode(ChordNames.chordInversion):
 
-subsect(Printing lyrics)cindex(Lyrics)cindex(printing!lyrics)
+mudela(fragment,verbatim,center)(  <
+    \property Score.chordInversion = 1
+    \context ChordNameVoice \notes {
+      <e'1 g' c''>
+    }
+    \context Thread \notes {
+      <e'1 g' c''>
+    }
+  >)
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+subsect(Printing lyrics)
+cindex(lyrics)
+cindex(printing!lyrics)
 label(lyricprint)
 
 Lyric syllables must be interpreted within a code(Lyrics) context
 cindex(context!Lyrics) for printing them.
 
 Here is a full example: 
-mudela(verbatim)(\score{
-  <  \notes \transpose c'' {c d e c | c d e c | e f g2 | 
-                              e4 f g2 \bar "|."; }
-     \context Lyrics \lyrics { 
-              Va-4 der Ja- cob Va- der Ja- cob
-              Slaapt gij nog?2 Slaapt4 gij nog?2  }
-  >
-})
-
 
- You may 
-want a  continuous line after the syllables to show melismata.   To achieve
-this effect, add a code(__) lyric as a separate word 
-after the lyric to be extended.  
-This will create
-an extender, a line  that extends over the entire duration of 
-the lyric.  This line will run all the way to the start of the next
-lyric, so you may want to shorten it by using a blank lyric.  
-COMMENT(
-
-)mudela(verbatim)(\score{
-< \notes \relative c''{ 
-     a4()b()c()d c()d()b()a c()d()b()a }
-   \context Lyrics \lyrics {
-     foo1 __  bar2. __ _4 baz1 __ }
-> })COMMENT(
+quote(
+mudela(verbatim)(\score {
+  <
+    \notes \transpose c'' {
+      c d e c | c d e c |
+      e f g2 | e4 f g2 \bar "|.";
+    }
+    \context Lyrics \lyrics { 
+      Va-4 der Ja- cob Va- der Ja- cob
+      Slaapt gij nog?2 Slaapt4 gij nog?2
+    }
+  >
+}
+)
+)
 
+You may want a continuous line after the syllables to show melismata. 
+To achieve this effect, add a `code(__)' lyric as a separate word
+after the lyric to be extended.  This will create an extender, a line
+that extends over the entire duration of the lyric.  This line will
+run all the way to the start of the next lyric, so you may want to
+shorten it by using a blank lyric (using `code(_)').
+
+quote(
+mudela(verbatim)(\score {
+  <
+    \notes \relative c'' {
+      a4 () b () c () d | c () d () b () a | c () d () b () a
+    }
+    \context Lyrics \lyrics {
+      foo1 __ | bar2. __ _4 | baz1 __
+    }
+  >
+}
+)
 )
      
-If you want to have hyphens centered between syllables (rather than attached
-to the end of the first syllable) you can use the special code(-)code(-) lyric as
-separate word between syllables. This will result in a hyphen whose length
-varies depending on the space between syllables, and centered between the
-syllables. For example: 
-mudela(verbatim)(\score{
-  <  \notes \transpose c'' {c d e c | c d e c | e f g2 | 
-                              e4 f g2 \bar "|."; }
-     \context Lyrics \lyrics { 
-              Va4  -- der Ja -- cob Va -- der Ja -- cob
-              Slaapt gij nog?2 Slaapt4 gij nog?2  }
+If you want to have hyphens centered between syllables (rather than
+attached to the end of the first syllable) you can use the special
+`code(-)code(-)' lyric as a separate word between syllables.  This
+will result in a hyphen which length varies depending on the space
+between syllables, and which will be centered between the syllables. 
+For example:
+
+quote(
+mudela(verbatim)(\score {
+  <
+    \notes \transpose c'' {
+      c d e c | c d e c |
+      e f g2 | e4 f g2 \bar "|.";
+    }
+    \context Lyrics \lyrics {
+      Va4 -- der Ja -- cob | Va -- der Ja -- cob |
+      Slaapt gij nog?2 | Slaapt4 gij nog?2
+    }
   >
-})
-
+}
+)
+)
 
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-sect(Notation Contexts)cindex(Notation Contexts)
+sect(Notation Contexts)
+cindex(notation contexts)
 
 Notation contexts are objects that only exist during a run of
 LilyPond.  During the interpretation phase of LilyPond, the Music
 expression contained in a code(\score) block is interpreted in time
-order.  This is the order in which humans read, play and write music.
+order.  This is the order in which humans read, play, and write
+music.
+
+A context is an object that holds the reading state of the
+expression; it contains information like
 
-A  context is an object that holds the reading state of the expression:
-it contains information like
 itemize(
-it() What notes are playing at this point?
-it() What symbols will be printed at this point?
-it() In what style will they printed?
-it() What is the current key signature, time signature, point within
-the measure, etc.
+  it() What notes are playing at this point?
+  it() What symbols will be printed at this point?
+  it() In what style will they printed?
+  it() What is the current key signature, time signature, point within
+       the measure, etc.?
 )
 
-Contexts are grouped hierarchically: a code(Voice) context is
+Contexts are grouped hierarchically: A code(Voice) context is
 contained in a code(Staff) context (because a staff can contain
-multiple voices at any point), a code(Staff) context is contained in a
-code(Score), code(StaffGroup) or code(ChoirStaff) context (because these
-can all contain multiple staffs.)
-
-Contexts associated with sheet music output are called notation
-contexts, those for sound output are called playing contexts.
-
-Contexts are created either  manually or automatically.
-Initially, the top level music expression is interpreted by the top level
-context (the code(Score) context). 
-When a atomic music expression (a note, a rest, a code(\bar),
-code(\time) command), a nested set of contexts is created that can process these
-atomic expressions, so in this example,COMMENT(
-
-)verb(\score { \notes < c4 > })COMMENT(
-
-)the sequential music, code({ c4 }) is interpreted by code(Score) context.
-When the note code(c4) itself is interpreted, a set of contexts is needed
-that will accept notes. The default for this is a code(Voice) context,
-contained in a code(Staff) context.  Creation of  these contexts
-results in the staff being printed.
+multiple voices at any point), a code(Staff) context is contained in
+a code(Score), code(StaffGroup), or code(ChoirStaff) context (because
+these can all contain multiple staffs).
+
+Contexts associated with sheet music output are called em(notation
+contexts), those for sound output are called playing contexts.
+
+Contexts are created either manually or automatically.  Initially,
+the top level music expression is interpreted by the top level
+context (the code(Score) context).  When a atomic music expression
+(i.e. a note, a rest, code(\bar), or code(\time) commands), a nested
+set of contexts is created that can process these atomic expressions,
+as in this example:
+
+quote(
+  verb(\score { \notes < c4 > })
+)
+
+The sequential music, `code({ c4 })' is interpreted by code(Score)
+context. When the note `code(c4)' itself is interpreted, a set of
+contexts is needed that will accept notes.  The default for this is a
+code(Voice) context, contained in a code(Staff) context.  Creation of
+these contexts results in the staff being printed.
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 subsect(Context selection)
 label(contextselection)
+cindex(context)
 
 You can also create contexts manually, and you probably have to do so
-if you want to typeset complicated multiple part
-material.  If a code(\context )var(name musicexpr) expression is
-encountered during the interpretation phase, the var(musicexpr)
-argument will be interpreted with a context of type var(name).  If you
-specify a name, the specific context with that name is searched.
+if you want to typeset complicated multiple part material.  If a
+`code(\context) var(name) var(musicexpr)' expression is encountered
+during the interpretation phase, the var(musicexpr) argument will be
+interpreted with a context of type var(name).  If you specify a name,
+the specific context with that name is searched.
 
 If a context of the specified type and name can not be found, a new
 one is created.  For example,
-COMMENT(
 
-)mudela(verbatim)(\score {
+quote(
+mudela(verbatim)(\score {
   \notes \relative c'' {
-    c4 <d4 \context Staff = "another" e4> f } })COMMENT(
+    c4 <d4 \context Staff = "another" e4> f
+  }
+}
+)
+)
+
+In this example, the code(c) bind(and)code(d) are printed on the
+default staff.  For bind(the)code(e), a context Staff called
+`code(another)' is specified; since that does not exist, a new
+context is created.  Within code(another), a (default) Voice context
+is created for bind(the)code(e4).  When all music referring to a
+context is finished, the context is ended as well.  So after the
+third quarter, code(another) is removed.
+
+Almost all music expressions inherit their interpretation context
+from their parent.  In other words, suppose that the syntax for a
+music expression is
+
+quote(
+  code(\keyword) var(musicexpr1) var(musicexpr2) ellipsis()
+)
 
-) in this example, the code(c) and code(d) are
-printed on the default staff.  For the code(e), a context Staff called
-code(another) is specified; since that does not exist, a new context is
-created.  Within code(another) a (default) Voice context is created
-for the code(e4).   When all music referring to a context is finished, the
-context is ended as well.  So after the third quarter, the
-code(another) is removed.
-
-Almost all music expressions inherit their interpretation context from
-their parent. In other words, suppose that the syntax for a music
-expression is code(\keyword) var(musicexpr1) var(musicexpr2) ellipsis().
 When the interpretation of this music expression starts, the context
-for var(musicexpr1), var(musicexpr2), etc. that of the total
+for var(musicexpr1), var(musicexpr2), etc. is that of the total
 expression.
 
-Lastly, you may wonder, why doesn't this:
-verb(\score { \notes \relative c'' { c4 d4 e4 }})
-result in this?
-mudela()(\score { \notes \relative c'' { <c4> <d4> <e4> }})
-
-For the code(c4) a default code(Staff) (with contained code(Voice)) context is
-created.  After the code(c4), ends no music refers to this default
-staff, so it would be ended, with the result shown.  To prevent this
-inconvenient behavior, the context to which the sequential music
-refers is adjusted during the interpretation.  So after the code(c4)
-ends, the context of the sequential music is also the default code(Voice)
-context.  The code(d4) gets interpreted in the same context as code(c4)
+Lastly, you may wonder, why this:
+
+quote(
+verb(\score {
+  \notes \relative c'' {
+    c4 d4 e4
+  }
+})
+)
+
+doesn't result in this:
+
+mudela()(
+  \score {
+    \notes \relative c'' {
+      <c4> <d4> <e4>
+    }
+  }
+)
 
+For bind(the)code(c4), a default code(Staff) (with a contained
+code(Voice)) context is created.  After bind(the)code(c4) ends, no
+music refers to this default staff, so it would be ended, with the
+result shown.  To prevent this inconvenient behavior, the context to
+which the sequential music refers is adjusted during the
+interpretation.  So after bind(the)code(c4) ends, the context of the
+sequential music is also the default code(Voice) context. 
+bind(The)code(d4) gets interpreted in the same context
+bind(as)code(c4).
+
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 subsect(Predefined contexts)
 
-These are the contexts are supplied with the package.  They are
-defined in init file(ly/engraver.ly).
+These are the contexts supplied with the package.  They are defined
+in the initialization file file(ly/engraver.ly).
 
 description(
-
-dit(code(Grace))indexcode(Grace) The context for handling grace notes, it is
-  instantiated automatically when you use code(\grace).  It is a
-  `embedded' miniature of the Score context.  Since this context needs
-  special interaction with the rest of LilyPond, you should not
-  explicitly instantiate it.
-
-dit(code(LyricVoice))indexcode(LyricVoice) Corresponds to a voice with lyrics.  Handles the printing
-of a single line of lyrics.  
-
-dit(code(Thread))indexcode(Thread) Handles note heads, and is contained in the Voice
-  context.  You have to instantiate these explicitly if you want to
-  adjust the style of individual note heads.
-
-dit(code(Voice))indexcode(Voice) Corresponds to a voice on a staff.  This context
-  handles the conversion of dynamic signs, stems, beams, super- and
-  subscripts, slurs, ties and rests.
-
-  You have to instantiate these explicitly if you want to have
-  multiple voices on the same staff.
-
-dit(code(ChordNamesVoice))indexcode(ChordNamesVoice) A voice with chord names.  Handles printing
-of a line of chord names.  
-
-dit(code(ChordNames))indexcode(ChordNames)  Typesets chord names.  Can contain
-code(ChordNamesVoice) contexts.  
-
-dit(code(Lyrics))indexcode(Lyrics) Typesets lyrics.  It can contain code(LyricVoice) contexts.
-
-dit(code(Staff))indexcode(Staff) Handles clefs, bar lines, keys,
-  accidentals.  It can contain code(Voice) contexts.
-
-dit(code(RhythmicStaff))indexcode(RhythmicStaff) A context like code(Staff) but for printing
-rhythms.  Pitches are ignored; the notes are printed on one line.  
-It can contain code(Voice) contexts. 
-
-dit(code(GrandStaff))indexcode(GrandStaff) Contains code(Staff) or code(RhythmicStaff)
-contexts.  It adds a brace on the left side grouping the staffs
-together. The bar lines of the contained staffs are connected vertically.
-It can contain code(Staff) contexts.
-
-dit(code(PianoStaff))indexcode(PianoStaff) Just like code(GrandStaff) but with
-code(minVerticalAlign) set equal to code(maxVerticalAlign) so that
-interstaff beaming and slurring can be used.  
-
-dit(code(StaffGroup))indexcode(StaffGroup) Contains code(Staff) or code(RhythmicStaff)
-contexsts.  Adds a bracket on the left side, grouping the staffs
-together.  The bar lines of the contained staffs are connected vertically.
-It can contain code(Staff), code(RhythmicStaff), code(GrandStaff) or code(Lyrics) contexts.  
-
-dit(code(ChoirStaff))indexcode(ChoirStaff) Identical to code(StaffGroup) except that the
-contained staffs are not connected vertically.  
-
-dit(code(Score))indexcode(Score) This is the top level notation context.    No
-other context can contain a code(Score) context.  This context handles
-the administration of time signatures.  It also makes sure that items
-such as clefs, time signatures, and key-signatures are aligned across
-staffs.  It can contain code(Lyrics), code(Staff),
-code(RhythmicStaff), code(GrandStaff), code(StaffGroup), and
-code(ChoirStaff) contexts.
-
-You can not explicitly instantiate a Score context (since it is not
-contained in any other context.).  It is instantiated automatically
-when an output definition (a code(\score) or code(\paper) block) is
-processed.
+  dit(code(Grace))indexcode(Grace) nl()
+    The context for handling grace notes.  It is instantiated
+    automatically when you use code(\grace).  Basically, it is an
+    `embedded' miniature of the Score context.  Since this context
+    needs special interaction with the rest of LilyPond, you should
+    not explicitly instantiate it.
+
+  dit(code(LyricVoice))indexcode(LyricVoice) nl()
+    Corresponds to a voice with lyrics.  Handles the printing of a
+    single line of lyrics.
+
+  dit(code(Thread))indexcode(Thread) nl()
+    Handles note heads, and is contained in the Voice context.  You
+    have to instantiate this explicitly if you want to adjust the
+    style of individual note heads.
+
+  dit(code(Voice))indexcode(Voice) nl()
+    Corresponds to a voice on a staff.  This context handles the
+    conversion of dynamic signs, stems, beams, super- and subscripts,
+    slurs, ties, and rests.
+
+    You have to instantiate this explicitly if you want to have
+    multiple voices on the same staff.
+
+  dit(code(ChordNamesVoice))indexcode(ChordNamesVoice) nl()
+    A voice with chord names.  Handles printing of a line of chord
+    names.
+
+  dit(code(ChordNames))indexcode(ChordNames) nl()
+    Typesets chord names.  Can contain code(ChordNamesVoice)
+    contexts.
+
+  dit(code(Lyrics))indexcode(Lyrics) nl()
+    Typesets lyrics.  It can contain code(LyricVoice) contexts.
+
+  dit(code(Staff))indexcode(Staff) nl()
+    Handles clefs, bar lines, keys, accidentals.  It can contain
+    code(Voice) contexts.
+
+  dit(code(RhythmicStaff))indexcode(RhythmicStaff) nl()
+    A context like code(Staff) but for printing rhythms.  Pitches are
+    ignored; the notes are printed on one line.  It can contain
+    code(Voice) contexts.
+
+  dit(code(GrandStaff))indexcode(GrandStaff) nl()
+    Contains code(Staff) or code(RhythmicStaff) contexts.  It adds a
+    brace on the left side, grouping the staffs together.  The bar
+    lines of the contained staffs are connected vertically.  It can
+    contain code(Staff) contexts.
+
+  dit(code(PianoStaff))indexcode(PianoStaff) nl()
+    Just like code(GrandStaff) but with code(minVerticalAlign) set
+    equal to code(maxVerticalAlign) so that interstaff beaming and
+    slurring can be used.
+
+  dit(code(StaffGroup))indexcode(StaffGroup) nl()
+    Contains code(Staff) or code(RhythmicStaff) contexts.  Adds a
+    bracket on the left side, grouping the staffs together.  The bar
+    lines of the contained staffs are connected vertically.  It can
+    contain code(Staff), code(RhythmicStaff), code(GrandStaff), or
+    code(Lyrics) contexts.
+
+  dit(code(ChoirStaff))indexcode(ChoirStaff) nl()
+    Identical to code(StaffGroup) except that the contained staffs
+    are not connected vertically.
+
+  dit(code(Score))indexcode(Score) nl()
+    This is the top level notation context.  No other context can
+    contain a code(Score) context.  This context handles the
+    administration of time signatures.  It also makes sure that items
+    such as clefs, time signatures, and key-signatures are aligned
+    across staffs.  It can contain code(Lyrics), code(Staff),
+    code(RhythmicStaff), code(GrandStaff), code(StaffGroup), and
+    code(ChoirStaff) contexts.
+
+    You cannot explicitly instantiate a Score context (since it is
+    not contained in any other context).  It is instantiated
+    automatically when an output definition (a code(\score) or
+    code(\paper) block) is processed.
 )
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
 subsect(Context properties)
 
 Properties that are set in one context are inherited by all of the
-contained contexts.  This means that a property valid for the Voice
-context can be set in the Score context (for example) and thus take
-effect in all Voice contexts.
+contained contexts.  This means that a property valid for the
+code(Voice) context can be set in the code(Score) context (for
+example) and thus take effect in all code(Voice) contexts.
 
 Properties can be preset within the code(\translator) block
-corresponding to the appropriate context.  In this case, the syntax is
-`var(propname) code(=) var(value)'.  This assignment happens before
-interpretation starts, so a code(\property) expression will override
-any pre defined settings.
+corresponding to the appropriate context.  In this case, the syntax
+is
+
+quote(
+  var(propname) code(=) var(value)
+)
+
+This assignment happens before interpretation starts, so a
+code(\property) expression will override any predefined settings.
 
 The code(\property) expression will create any property you specify.
-There is no guarantee that a property will be used.  So if you spell a
-property name wrong, there will be no error message.
+There is no guarantee that a property will be used.  So if you spell
+a property name wrong, there will be no error message.
 
-The property settings are used during the interpretation phase. They
+The property settings are used during the interpretation phase.  They
 are read by the LilyPond modules where interpretation contexts are
-built of.  These modules are called em(translators). Translators for
-notation are called em(engravers) and translators for sound are called
-em(performers).
+built of.  These modules are called em(translators).  Translators for
+notation are called em(engravers), and translators for sound are
+called em(performers).
 
 The precise result of a property is determined by the implementation
 of the translator that reads them.  Therefore, the result of a
 property can vary, since it is implementation and configuration
 dependent.
 
-In order to fully find out what properties are used, you must search
-the source code for calls to code(get_property).  The rest of the
-section is devoted to an (incomplete) overview of available properties.
+In order to fully find out what properties are used, you must
+currently search the source code for calls to code(get_property). 
+The rest of the section is devoted to an (incomplete) overview of
+available properties.
 
-subsubsubsect(Lyrics properties)cindex(properties!Lyrics)
+subsubsect(Lyrics properties)
+cindex(properties!Lyrics)
 
 description(
-
-dit(code(textStyle))indexcode(textStyle) Set the font for lyrics.  The available font
-choices are code(roman), code(italic), code(bold), code(large),
-code(Large), code(typewriter), and code(finger).  The code(finger)
-font can only display numbers.  Note also that you must be careful
-when using code(\property) in Lyrics mode,  because of the way strings
-are parsed.   Either put quotes around the arguments to code(\property)
-or be sure to leave a space on both sides of the dot.
-
-
+  dit(code(textStyle))indexcode(textStyle) nl()
+    Set the font for lyrics.  The available font choices are
+    code(roman), code(italic), code(bold), code(large), code(Large),
+    code(typewriter), and code(finger).  The code(finger) font can
+    only display numbers.  Note also that you must be careful when
+    using code(\property) in Lyrics mode, because of the way strings
+    are parsed.  Either put quotes around the arguments to
+    code(\property) or be sure to leave a space on both sides of the
+    dot.
 )
 
-subsubsubsect(Thread properties)cindex(properties!Thread)
+subsubsect(Thread properties)
+cindex(properties!Thread)
 
 description(
-dit(code(noteheadStyle))indexcode(noteheadStyle) Selects type of note head.  Choices are
-code(cross), code(diamond), code(harmonic), code(transparent), and
-code("").  They are shown in that order below.  
-mudela(center)(
-\score{
-  \notes{ 
-     \property Staff.barNonAuto = 1
-     \property Voice.noteHeadStyle = cross 
-     a'
-     \property Voice.noteHeadStyle = diamond
-     a'
-     \property Voice.noteHeadStyle = harmonic
-     a'
-     \property Voice.noteHeadStyle = transparent
-     a' 
-     \property Voice.noteHeadStyle = ""
-     a'
-  }
- \paper{ linewidth = -1.;}
-}
-)
+  dit(code(noteheadStyle))indexcode(noteheadStyle) nl()
+    Selects type of note head.  Choices are code(cross),
+    code(diamond), code(harmonic), code(transparent), and code(""). 
+    They are shown in that order below.
+
+    mudela(center)(
+      \score {
+        \notes { 
+          \property Staff.barNonAuto = 1
+          \property Voice.noteHeadStyle = cross 
+          a'
+          \property Voice.noteHeadStyle = diamond
+          a'
+          \property Voice.noteHeadStyle = harmonic
+          a'
+          \property Voice.noteHeadStyle = transparent
+          a' 
+          \property Voice.noteHeadStyle = ""
+          a'
+        }
+        \paper {
+          linewidth = -1.;
+        }
+      }
+    )
 )
 
+subsubsubsect(Grace properties)
+cindex(properties!Grace)
+ 
+description(  
+  dit(indexandcode(stemStyle)) nl()
+    By default set to code("grace") meaning that all unbeamed 
+    notes with flags are typeset with a slash through the flag. 
+    Setting to code("") gives standard flags.
+)
 
-subsubsubsect(Voice properties)cindex(properties!Voice)
+subsubsect(Voice properties)
+cindex(properties!Voice)
 
 description(  
+  dit(code(stemLength))indexcode(stemLength) nl()
+    Set length of stems.  Unit is `code(interline)/2', so
+    code(stemLength) defaults bind(to)7.
+
+  dit(code(stemLeftBeamCount))indexcode(stemLeftBeamCount) nl()
+    Specify the number of beams to draw on the left side of the next
+    note.  Overrides automatic beaming.  The value is only used once,
+    and then it is erased.
+
+  dit(code(stemRightBeamCount))indexcode(stemRightBeamCount) nl()
+    Specify the number of beams to draw on the right side of the next
+    note.  Overrides automatic beaming.  The value is only used once,
+    and then it is erased.
+
+  dit(code(noAutoBeaming))indexcode(beamAuto) nl()
+    If set bind(to)1 then beams are not generated automatically.
+
+  dit(code(beamAutoEnd))indexcode(beamAutoEnd) nl()
+    Specifies when automatically generated beams can end.  See
+    bind(section)ref(autobeam).
+
+  dit(code(beamAutoBegin))indexcode(beamAutoBegin) nl()
+    Specifies when automatically generated beams can start.  See
+    bind(section)ref(autobeam).
+
+  dit(code(textEmptyDimension))indexcode(textEmptyDimension) nl()
+    If set bind(to)1 then text placed above or below the staff is
+    assumed to have zero width.
+
+  dit(code(beamquantisation))indexcode(beamquantisation) nl()
+    Set to code(\none) for no quantization.  Set to code(\normal) to
+    quantize position and slope.  Set to code(\traditional) to avoid
+    wedges.  These three settings are available via
+    code(\beamposfree)keyindex(beamposfree),
+    code(\beamposnormal)keyindex(beamposnormal), and
+    code(\beampostraditional)keyindex(beampostraditional).
+
+  dit(code(beamslopedamping))indexcode(beamslopedamping) nl()
+    Set to code(\none) for undamped beams.  Set to code(\normal) for
+    damped beams.  Set to code(\infinity) for beams with zero slope. 
+    The identifiers
+    code(\beamslopeproportional)keyindex(beamslopeproportional),
+    code(\beamslopedamped)keyindex(beamslopedamped), and
+    code(\beamslopezero)keyindex(beamslopezero) each set the
+    corresponding value.
+
+  dit(code(restStyle))indexcode(restStyle) nl()
+    Change the layout of rests shorter than quarter notes. 
+    Currently, the standard layout code("") and mensural notation
+    code("mensural") are available. Mensural rests of duration
+    32 or shorter are not available.
+
+  dit(code(midiInstrument))indexcode(midiInstrument) nl()
+    Sets the instrument for MIDI output.  If this property is not set
+    then LilyPond will use the code(instrument) property.  This must
+    be set to one of the strings on the list of MIDI instruments that
+    appears in bind(section)ref(midilist).  If you use a string which
+    is not listed, LilyPond will silently substitute piano.
+
+  dit(code(transposing))indexcode(transposing) nl()
+    Transpose the MIDI output.  Set this property to the number of
+    half-steps to transpose by.
+
+  dit(code(oldTieBehavior))indexcode(oldTieBehavior) nl()
+    Set bind(to)1 in order to get old tie behavior where ties would
+    connect unequal pitches.  This property is deprecated, and its
+    use is not recommended.
+
+  dit(code(verticalDirection))indexcode(verticalDirection) nl()
+    Determines the direction of stems, subscripts, beams, slurs, and
+    ties.  Set to code(\down) to force them down, code(\up) to force
+    them up, or code(\free) to let LilyPond decide.  This can be used
+    to distinguish between voices on the same staff.  The
+    code(\stemdown)keyindex(stemdown), code(\stemup)keyindex(stemup),
+    and code(\stemboth)keyindex(stemboth) identifiers set this
+    property.
+
+  dit(code(slurVerticalDirection))indexcode(slurVerticalDirection) nl()
+    Set to code(\free) for free choice of slur direction, set to
+    code(\up) to force slurs up, set to code(\down) to force slurs
+    down.  The shorthands code(\slurup)keyindex(slurup),
+    code(\slurdown)keyindex(slurdown), and
+    code(\slurboth)keyindex(slurboth) are available.
+
+  dit(code(tieVerticalDirection))indexcode(tieVerticalDirection) nl()
+    Set to code(\free) for free choice of tie direction, set to
+    code(\up) to force ties up, set to code(\down) to force ties
+    down.
+
+  dit(code(slurDash))indexcode(slurDash) nl()
+    Set bind(to)0 for normal slurs, bind(1)for dotted slurs, and a
+    larger value for dashed slurs.  Identifiers
+    code(\slurnormal)keyindex(slurnormal) and
+    code(\slurdotted)keyindex(slurdotted) are predefined to set the
+    first two settings.
+
+  dit(code(horizontalNoteShift))indexcode(horizontalNoteShift) nl()
+    Enable LilyPond to shift notes horizontally if they collide with
+    other notes.  This is useful when typesetting many voices on one
+    staff.  The identifier code(\shift)keyindex(shift) is defined to
+    enable this.  Traditionally, the outer chords (the upmost and
+    downmost voices), should have no code(horizontalNoteShift).
+
+   dit(code(forceHorizontalShift))indexcode(forceHorizontalShift) nl()
+    Force horizontal shift for collision resolution.  It overrides
+    automatic collision resolution.  The value is the shift amount
+    expressed in code(note_width), as set in the paper section.
+
+  dit(code(dynamicDirection))indexcode(dynamicDirection) nl()
+    Determines location of dynamic marks.  Set to code(\up) to print
+    marks above the staff; set to code(\down) to print marks below
+    the staff.
+
+  dit(code(dynamicStyle))indexcode(dynamicStyle) nl()
+    Set the text style for dynamics.  
+
+  dit(code(textStyle))indexcode(textStyle) nl()
+    Set the text style for superscripts and subscripts.  See above
+    for list of text styles.
+
+  dit(code(textScriptPadding))indexcode(textScriptPadding) nl()
+    Determines the extra space added between superscripted resp.
+    subscripted text and the closest staff line or note.
+
+  dit(code(fontSize))indexcode(fontSize) nl()
+    Can be used to select smaller font sizes for music.  The normal
+    font size bind(is)0, and the two smaller sizes are -1
+    bind(and)-2.
+
+  dit(code(abbrev))indexcode(abbrev) nl()
+    Set length for tremolo to be used if no length is explicitly
+    specified.
+
+  dit(code(tupletDirection))indexcode(tupletDirection) nl()
+    Determines the direction of triplets and other tuplets.  Set to
+    code(\down) to force them below the staff, code(\up) to force
+    them above, or code(\free) to let LilyPond decide.
+
+  dit(code(tupletVisibility))indexcode(tupletVisibility) nl()
+    Determines whether tuplets of notes are labelled.  Setting
+    bind(to)0 shows nothing; setting bind(to)1 shows a number;
+    setting bind(to)2 shows a number and a bracket if there is no
+    beam; setting bind(to)3 shows a number, and if there is no beam
+    it adds a bracket; setting bind(to)4 shows both a number and a
+    bracket unconditionally.
+
+  dit(code(markScriptPadding))indexcode(markScriptPadding) nl()
+    Determines the extra space added between the mark and the closest
+    staff line or note.
+
+  dit(code(markDirection))indexcode(markDirection) nl()
+    Determines if marks should be printed above or below the staff.
+    Set to code(\up) to print marks above the staff; set to
+    code(\down) to print marks below the staff.
+
+  dit(code(articulationScriptPadding))indexcode(articulationScriptPadding)
+    nl()
+    Determines the extra space added between articulation marks, such
+    as staccato, tenuto, trill, up/down bow or fermata, and the
+    closest staff line or note.
+
+  dit(code(articulationScriptVerticalDirection))
+    indexcode(articulationScriptVerticalDirection) nl()
+    Determines the location of articulation marks.  Set to code(\up)
+    to print marks above the staff; set to code(\down) to print marks
+    below the staff.  This property does not override explicit
+    directions marked with `code(^)' or `code(_)' in the mudela file.
+)
 
-dit(code(stemLength))indexcode(stemLength) Set length of stems.  Unit is 
-code(interline)/2, so code(stemLength) defaults to 7.
-
-dit(code(stemLeftBeamCount))indexcode(stemLeftBeamCount) Specify the number of beams to draw on
-the left side of the next note.   Overrides automatic beaming.  The
-value is only used once, and then it is erased.
+subsubsubsect(Staff properties)
+cindex(properties!Staff)
 
-dit(code(stemRightBeamCount))indexcode(stemRightBeamCount) Specify the number of beams to draw on
-the right side of the next note.   Overrides automatic beaming.  The
-value is only used once, and then it is erased.
+description(
+  dit(code(createInitdefaultClef))indexcode(createInitdefaultClef) nl()
+    Specify whether clefs are created on default?  (Doesn't seem to
+    do anything.)
+
+  dit(code(barNumberDirection))indexcode(barNumberDirection) nl()
+    Set to code(\up) or code(\down) to put bar numbers above or below
+    the staff.
+
+  dit(code(barNumberHangOnClef))indexcode(barNumberHangOnClef) nl()
+    Set bind(to)1 to cause bar numbers to appear above or below the
+    clef instead of on the bar line.  This property is deprecated. 
+    Do not use.
+
+  dit(code(barNumberScriptPadding))indexcode(barNumberScriptPadding) nl()
+    Sets extra space between the bar number and the bar it labels.
+
+  dit(code(barSize))indexcode(barSize) nl()
+    Specify the height of the bar lines if it should be different
+    than the staff height.
+
+  dit(code(markHangOnClef))indexcode(markHangOnClef) nl()
+    Set bind(to)1 to cause marks to appear by clefs instead of by bar
+    lines.  Deprecated, use is not recommended.
+
+  dit(code(marginDirection))indexcode(marginDirection) nl()
+    Set to code(\left) or code(\right) to specify location of
+    marginal scripts.
+
+  dit(code(marginScriptPadding))indexcode(marginScriptPadding) nl()
+    Specify extra space for marginal scripts.
+
+  dit(code(forgetAccidentals))indexcode(forgetAccidentals) nl()
+    Causes accidentals to be printed at every note instead of
+    remembered for the duration of a measure.
+
+  dit(code(noResetKey))indexcode(noResetKey) nl()
+    Do not reset the key at the start of a measure.  Accidentals will
+    be printed only once and are in effect until overridden, possibly
+    many measures later.
+
+  dit(code(staffLineLeading))indexcode(staffLineLeading) nl()
+    Specifies the distance (in points) between lines of the staff.
+
+  dit(code(numberOfStaffLines))indexcode(numberOfStaffLines) nl()
+    Specifies the number of staff lines.  The default bind(is)5.
+
+  dit(code(postBreakPadding))indexcode(postBreakPadding) nl()
+    Extra space in points to be added after the clef, time signature
+    and key signature on the staff.  Deprecated, do not use.
+
+  dit(code(barAtLineStart))indexcode(barAtLineStart) nl()
+    Set bind(to)1 to produce a bar line after the clef at the start
+    of each line (but not at the beginning of the music).
+
+  dit(code(noVoltaBraces))indexcode(noVoltaBraces) nl()
+    Set to true to suppress the printing of brackets over alternate
+    endings specified by the command code(\alternative).
+
+  dit(code(voltaSpannerDuration))indexcode(voltaSpannerDuration) nl()
+    Set to an integer to control the size of the brackets printed by
+    code(\alternative).  The integer specifies the number of whole
+    notes duration to use for the brackets.  It is rounded to the
+    nearest measure.  This can be used to shrink the length of
+    brackets in the situation where one alternative is very large. 
+    It may have odd effects if the specified duration is longer than
+    the music given in an code(\alternative).
+
+  dit(code(barNonAuto))indexcode(barNonAuto) nl()
+    If set bind(to)1 then bar lines will not be printed
+    automatically; they must be explicitly created with code(\bar)
+    keywords.  Unlike with the code(\cadenza) keyword, measures are
+    still counted.  Bar generation will resume according to that
+    count if this property is set to zero.
 
-dit(code(noAutoBeaming))indexcode(beamAuto) If set to 1 then beams are
-not generated automatically.
+  dit(code(defaultClef))indexcode(defaultClef) nl()
+    Determines the default clef.  See code(\clef) keyword.
 
-dit(code(beamAutoEnd))indexcode(beamAutoEnd) Specifies when automatically generated beams
-can end.  See Section ref(autobeam).
+  dit(code(numberOfStaffLines))indexcode(numberOfStaffLines) nl()
+    Sets the number of lines that the staff has.
+ 
+  dit(code(barAlways))indexcode(barAlways) nl()
+    If set bind(to)1 a bar line is drawn after each note.
 
-dit(code(beamAutoBegin))indexcode(beamAutoBegin) Specifies when automatically generated beams
-can start.  See Section ref(autobeam). 
+  dit(code(defaultBarType))indexcode(defaultBarType) nl()
+    Sets the default type of bar line. See bind(Section)ref(barlines) 
+    for a list of available bar types.
+
+  dit(code(keyOctaviation))indexcode(keyOctaviation) nl()
+    If set bind(to)1, then keys are the same in all octaves.  If set
+    bind(to)0 then the key signature for different octaves can be
+    different and is specified independently:
+
+    quote(
+      code(\keysignature bes fis')
+    )
+
+    The default value bind(is)1.  Can be set to zero with
+    code(\specialkey) or reset bind(to)1 with code(\normalkey).
+
+  dit(code(instrument), code(instr))
+    indexcode(instrument)indexcode(instr) nl()
+    If code(Staff_margin_engraver)cindex(Staff_margin_engraver) is
+    added to the Staff translator, then the code(instrument) property
+    is used to label the first line of the staff and the code(instr)
+    property is used to label subsequent lines.  If the
+    code(midiInstrument) property is not set, then code(instrument)
+    is used to determine the instrument for MIDI output.
+
+  dit(code(createKeyOnClefChange))indexcode(createKeyOnClefChange) nl()
+    Set to a nonempty string if you want key signatures to be printed
+    when the clef changes.  Set to the empty string if you do not
+    want key signatures printed.
+
+  dit(code(timeSignatureStyle))indexcode(timeSignatureStyle) nl()
+    Changes the default two-digit layout for time signatures.  The
+    following values are recognized:
+
+    description(
+      dit(code(C))indexcode(C) nl()
+        4/4 and 2/2 are typeset as C and struck C, respectively.  All
+        other time signatures are written with two digits.
+
+      dit(code(old))indexcode(old) nl()
+        2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and 9/8 are
+        typeset with old-style mensuration marks.  All other time
+        signatures are written with two digits.
+
+      dit(code(1))indexcode(1) nl()
+        All time signatures are typeset with a single
+        digit, e.g. 3/2 is written bind(as)3.
+
+      dit(indexcode(CM/N)code(C)var(M)code(/)var(N), 
+      indexcode(oldM/N)code(old)var(M)code(/)var(N) or
+      indexandcode(old6/8alt)) nl()
+        Tells LilyPond to use a specific symbol as time signature.
+    )
+
+    The different time signature characters are shown below with its
+    names:
+
+    mudela(center)(
+      \score {
+        \notes\relative c'' {
+          \property Voice.textStyle = typewriter
+          \property Staff.timeSignatureStyle = "C2/2"
+          \time 2/2; a2^"C2/2" a2 
+          \property Staff.timeSignatureStyle = "C4/4"
+          \time 2/2; a2^"C4/4" a2 
+          \property Staff.timeSignatureStyle = "old2/2"
+          \time 2/2; a2^"old2/2" a2 
+          \property Staff.timeSignatureStyle = "old3/2"
+          \time 2/2; a2^"old3/2" a2 
+          \property Staff.timeSignatureStyle = "old2/4"
+          \time 2/2; a2^"old2/4" a2 
+          \property Staff.timeSignatureStyle = "old4/4"
+          \time 2/2; a2^"old4/4" a2 
+          \property Staff.timeSignatureStyle = "old6/4"
+          \time 2/2; a2^"old6/4" a2 
+          \property Staff.timeSignatureStyle = "old9/4"
+          \time 2/2; a2^"old9/4" a2 
+          \property Staff.timeSignatureStyle = "old4/8"
+          \time 2/2; a2^"old4/8" a2 
+          \property Staff.timeSignatureStyle = "old6/8"
+          \time 2/2; a2^"old6/8" a2 
+          \property Staff.timeSignatureStyle = "old6/8alt"
+          \time 2/2; a2^"old6/8alt" a2 
+          \property Staff.timeSignatureStyle = "old9/8"
+          \time 2/2; a2^"old9/8" a2 
+        }
+        \paper {
+          linewidth = 4.5 \in;
+        }
+      }
+    )
+
+  dit(code(clefStyle))indexcode(clefStyle) nl()
+    Determines how clefs are typeset.  If set to code(transparent),
+    the clefs are not printed at all, if set to
+    code(fullSizeChanges), clef changes in the middle of a line are
+    typeset with a full size clef.  By default, clef changes are
+    typeset in smaller size.
+)
+   
+subsubsect(GrandStaff properties)
+cindex(properties!GrandStaff)
 
-dit(code(textEmptyDimension))indexcode(textEmptyDimension) If set to 1 then text placed above or
-below the staff is assumed to have zero width.  
+description( 
+  dit(code(alignmentReference))indexcode(alignmentReference) nl()
+    Set to code(\center) for vertical alignment reference point to be
+    in the center of the vertical group.  Set to code(\up) to put the
+    reference point at the top of the group.
 
-dit(code(beamquantisation))indexcode(beamquantisation) Set to
-code(\none) for no quantization.  Set to code(\normal) to quantize
-position and slope.  Set to code(\traditional) to avoid wedges.  These
-three settings are available via code(\beamposfree),
-code(\beamposnormal), and code(\beampostraditional).
+  dit(code(maxVerticalAlign))indexcode(maxVerticalAlign) nl()
+    Set the maximum vertical distance between staffs.
 
-dit(code(beamslopedamping))indexcode(beamslopedamping) Set to code(\none) for undamped beams.
-Set to code(\normal) for damped beams.  Set to code(\infinity) for
-beams with zero slope.  The identifiers code(\beamslopeproportional),
-code(\beamslopedamped), and code(\beamslopezero) each set the
-corresponding value.
+  dit(code(minVerticalAlign))indexcode(minVerticalAlign) nl()
+    Set the minimum vertical distance between staffs.  
+)
 
-dit(code(restStyle))indexcode(restStyle) Change the layout of rests shorter than quarter notes. 
-Currently, the standard layout code(restStyle="") and mensural notation
-code(restStyle="mensural") are available.
+subsubsect(Score properties)
+cindex(properties!Score)
 
-dit(code(midiInstrument))indexcode(midiInstrument) Sets the instrument for MIDI output.    If
-this property is not set then LilyPond will use the code(instrument)
-property.  This must be set to one of the strings on the list of MIDI
-instruments that appears in Section ref(midilist).  If you use a
-string which is not listed, LilyPond will silently substitute piano. 
+description(
+  dit(code(skipBars))indexcode(skipBars) nl()
+    Set bind(to)1 to skip the empty bars that are produced by
+    multimeasure notes and rests.  These bars will not appear on the
+    printed output.  Set to zero (the default) to expand multimeasure
+    notes and rests into their full length, printing the appropriate
+    number of empty bars so that synchronization with other voices is
+    preserved.
+
+    quote(
+mudela(fragment,verbatim,center)\
+  (r1 r1*3 R1*3\property Score.skipBars=1 r1*3 R1*3
+)
+    )
+)
 
-dit(code(transposing))indexcode(transposing) Tranpose the MIDI output.  Set this property to
-the number of half-steps to transpose by.
+subsubsect(ChordNamesVoice properties)
+cindex(properties!ChordNamesVoice)
 
-dit(code(oldTieBehavior))indexcode(oldTieBehavior) Set to 1 in order to get old tie behavior
-where ties would connect unequal pitches.  This property is
-deprecated, and use is not recommended.
+description(
+  dit(code(chordInversion))indexcode(chordInversion) nl()
+    Determines whether LilyPond should look for chord inversions when
+    translating from notes to chord names.  Set bind(to)1 to find
+    inversions.  The default bind(is)0 which does not look for
+    inversions.
+)
 
-dit(code(verticalDirection))indexcode(verticalDirection) Determines the direction of stems, subscripts,
-beams, slurs, and ties.  Set to code(\down) to force them down,
-code(\up) to force them up, or code(\free) to let LilyPond decide.
-This can be used to distinguish between voices on the same staff.  The
-code(\stemdown), code(\stemup), and code(\stemboth) identifiers set
-this property.
 
-dit(code(slurVerticalDirection))indexcode(slurVerticalDirection) Set to code(\free) for free choice of slur
-direction, set to code(\up) to force slurs up, set to code(\down) to
-force slurs down.  The shorthands code(\slurup), code(\slurdown), and
-code(\slurboth) are available.
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-dit(code(tieVerticalDirection))indexcode(tieVerticalDirection) Set to code(\free) for free choice of tie
-direction, set to code(\up) to force ties up, set to code(\down) to
-force ties down.  
+sect(Notation output definitions)
+cindex(output)
+cindex(notation output)
+cindex(output definition)
+label(output)
+label(paper)
 
-dit(code(slurDash))indexcode(slurDash) Set to 0 for normal slurs, 1 for dotted slurs, and
-a larger value for dashed slurs.  Identifiers code(\slurnormal) and
-code(\slurdotted) are predefined to set the first two settings.
+The most important output definition is the code(\paper) block, for
+music notation.  The syntax is
 
-dit(code(horizontalNoteShift))indexcode(horizontalNoteShift) Enable LilyPond to shift notes
-horizontally if they collide with other notes.  This is useful when
-typesetting many voices on one staff.  The identifier code(\shift) is
-defined to enable this.  Traditionally, the outer chords (the upmost
-and downmost voices), should have no code(horizontalNoteShift). 
+quote(
+  code(\paper {) [var(paperidentifier)] var(items) code(})
+)
 
+where each of the items is one of
 
-dit(code(forceHorizontalShift))indexcode(forceHorizontalShift) Force
-horizontal shift for collision resolution.  It overrides automatic
-collision resolution.  The value is the shift amount expressed in
-code(note_width), as set in the paper section.
+itemize(
+  it() An assignment.  The assignment must be terminated by a
+       semicolon.  See bind(section)ref(papervars) for information on
+       paper variables.
 
-dit(code(dynamicDir))indexcode(dynamicDir) Determines location of dynamic marks.  Set to
-code(\up) to print marks above the staff; set to code(\down) to print
-marks below the staff.
+  it() A context definition.  See bind(section)ref(contextdefs) for
+       more information on context definitions.
 
-dit(code(dynamicStyle))indexcode(dynamicStyle) Set the text style for dynamics.  
+  it() A margin shape declaration.  The syntax is
 
-dit(code(textStyle))indexcode(textStyle) Set the text style for superscripts and
-subscripts.  See above for list of text styles.
+       quote(
+         code(\shape) var(indent1)code(,) var(width1)code(,)
+                      var(indent2)code(,) var(width2) ellipsis() code(;)
+       )
+       keyindex(shape)
 
-dit(code(textScriptPadding))indexcode(textScriptPadding) Determines the extra space added between
-super-/subscripted text and the closest staff line or note.
+       Each pair of var(indent) and var(width) values is a dimension
+       specifying how far to indent and how wide to make the line. 
+       The indentation and width of successive lines are specified by
+       the successive pairs of dimensions.  The last pair of
+       dimensions will define the characeristics of all lines beyond
+       those explicitly specified.
 
-dit(code(fontSize))indexcode(fontSize) Can be used to select smaller font sizes for
-music.  The normal font size is 0, and the two smaller sizes are -1
-and -2.
+  it() A font declaration.  Its syntax is
 
-dit(code(abbrev))indexcode(abbrev) Set length for tremolo to be used if no length is
-explicitly specified.
+       quote(
+         var(fontsize) code(=) code(\font)keyindex(font) var(fontname)
+       )
 
-dit(code(tupletDirection))indexcode(tupletDirection) Determines the direction of triplets and 
-other tuplets.  Set to code(\down) to force them below the staff,
-code(\up) to force them above, or code(\free) to let LilyPond decide.
+       var(fontsize) is an integer describing the font to be used. 
+       bind(0)is the default font.  var(fontname) is the basename of
+       a font (usually a member of the Feta family).
+)
 
-dit(code(tupletVisibility))indexcode(tupletVisibility) Determines whether tuplets of notes are
-labelled.  Setting to 0 shows nothing; setting to 1 shows a number;
-setting to 2 shows a number and a bracket if there is no beam; setting
-to 3 shows a number, and if there is no beam it adds a bracket;
-setting to 4 shows both a number and a bracket unconditionally.
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
+subsect(Changing Font Size and Paper Size)
+cindex(changing font size and paper size)
 
-dit(code(markScriptPadding))indexcode(markScriptPadding) Determines the extra space added between
-the mark and the closest staff line or note.
+The Feta font provides musical symbols at six different sizes.  These
+fonts are bind(11)point, bind(13)point, bind(16)point, bind(20)point,
+bind(23)point, and bind(26)point.  The point size of a font is the
+height of the five lines in a staff when displayed in the font.
 
-dit(code(markDirection))indexcode(markDirection) Determines if marks should be printed above
-or below the staff. Set to code(\up) to print marks above the staff;
-set to code(\down) to print marks below the staff.
+Definitions for these sizes are the files file(paperSZ.ly), where
+code(SZ) is one of 11, 13, 16, 20, 23 bind(and)26.  If you include
+any of these files, the identifiers code(paper_eleven),
+code(paper_thirteen), code(paper_sixteen), code(paper_twenty),
+code(paper_twentythree), and code(paper_twentysix) are defined
+respectively.  The default code(\paper) block is also set.
+
+To change the paper size, you must first set the
+indexandcode(papersize) variable at top level.  Set it to the strings
+code(a4), code(letter), or code(legal).  After this specification,
+you must set the font as described above.  If you want the default
+font, then use the bind(20)point font.  The new paper size will not
+take effect if the font is not loaded and selected afterwards.  Paper
+size selection works by loading a file named after the paper size you
+select.
 
-dit(code(articulationScriptPadding))indexcode(articulationScriptPadding) Determines the extra space added 
-between articulation marks, such as staccato, tenuto, trill, up/down 
-bow or fermata, and the closest staff line or note.
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
+subsect(Paper variables)
+cindex(paper variables)
+label(papervars)
 
-dit(code(articulationScriptVerticalDirection))indexcode(articulationScriptVerticalDirection) Determines the location
-of articulation marks. Set to code(\up) to print marks above the
-staff; set to code(\down) to print marks below the staff. This
-property does not override explicit directions marked with code(^) or
-code(_) in the mudela file.
-)
+There is a large number of paper variables that are used to control
+details of the layout.  These variables control the defaults for the
+entire score.  Usually, they do not have to be changed; they are by
+default set to values that depend on the font size in use.  The
+values are used by the graphic objects while formatting the score;
+they are therefore implementation dependent.  Most variables are
+accompanied by documentation in the initalization file
+file(params.ly) or file(paperSZ.ly), where code(SZ) is the staff
+height in points.
 
-subsubsubsect(Staff properties)cindex(properties!Staff)
+Nevertheless, here are some variables you may want to use or change:
 
 description(
+  dit(code(indent))indexcode(indent) nl()
+    The indentation of the first line of music.
 
-dit(code(createInitdefaultClef))indexcode(createInitdefaultClef) Specify whether clefs are created on
-default?  (Doesn't seem to do anything.)
-
-dit(code(barNumberDirection))indexcode(barNumberDirection) Set to code(\up) or code(\down) to put
-bar numbers above or below the staff.  
+  dit(code(interline))indexcode(interline) nl()
+    The distance between two staff lines, calculated from the center
+    of the lines.  You should use either this or code(rulethickness)
+    as a unit for distances you modify.
+  
+  dit(code(linewidth))indexcode(linewidth) nl()
+    Sets the width of the lines.  If set bind(to)-1.0, a single
+    unjustified line is produced.
+
+  dit(code(output))indexcode(output) nl()
+    Specifies an alternate name for the the output file(s).
+    A file(.tex), file(.midi) or file(.ps) extension will be 
+    added to the string you specify.
+
+  dit(code(rulethickness))indexcode(rulethickness) nl()
+    Determines the thickness of staff and bar lines. 
+
+  dit(code(castingalgorithm))indexcode(castingalgorithm) nl()
+    The algorithm to use for breaking lines.  Choices are
+    code(\Gourlay)keyindex(Gourlay) for a TeX()-like dynamic
+    programming algorithm, and code(\Wordwrap)keyindex(Wordwrap) for
+    a simple algorithm.  Gourlay breaking looks much better, but
+    takes a lot more resources.  Wordwrap leaves loosely spaced lines
+    at the end.
+)
 
-dit(code(barNumberHangOnClef))indexcode(barNumberHangOnClef) Set to 1
-to cause bar numbers to appear above or below the clef instead of on
-the bar line. This property is deprecated.  Do not use.
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-dit(code(barNumberScriptPadding))indexcode(barNumberScriptPadding) Sets extra space between the bar
-number and the bar it labels.
+subsect(Context definitions)
+label(contextdefs)
+cindex(context definition)
 
-dit(code(barSize))indexcode(barSize) Specify the height of the bar lines if it should be
-different than the staff height.
+A notation contexts is defined by the following information
 
-dit(code(markHangOnClef))indexcode(markHangOnClef) Set to 1 to cause marks to appear by clefs
-instead of by bar lines.  Deprecated, use is not recommended.
+enumerate(
+  it() A name.
 
-dit(code(marginDirection))indexcode(marginDirection) Set to code(\left) or code(\right) to
-specify location of marginal scripts.  
+  it() The LilyPond modules that do the actual conversion of music to
+       notation.  Each module is a so-called
+       em(engraver)cindex(engraver).
 
-dit(code(marginScriptPadding))indexcode(marginScriptPadding) Specify extra space for marginal scripts.
+  it() How these modules should cooperate, i.e. which ``cooperation
+       module'' should be used.  This cooperation module is a special
+       type of engraver.
 
-dit(code(forgetAccidentals))indexcode(forgetAccidentals) Causes accidentals to be printed at every
-note instead of remembered for the duration of a measure.  
+  it() What other contexts the context can contain,
 
-dit(code(noResetKey))indexcode(noResetKey) Do not reset the key at the start of a measure.
-Accidentals will be printed only once and are in effect until
-overridden, possibly many measures later. 
+  it() What properties are defined.
+)
 
-dit(code(staffLineLeading))indexcode(staffLineLeading) Specifies the distance (in points) between lines
-of the staff.  
+A context definition has this syntax:
 
-dit(code(numberOfStaffLines))indexcode(numberOfStaffLines) Specifies the number of staff lines. The
-default is 5. 
+quote(
+  code(\translator) code({)
+                      var(translatorinit) var(translatormodifierlist)
+                    code(})
+)
 
-dit(code(postBreakPadding))indexcode(postBreakPadding) Extra space in points to be added after
-the clef, time signature and key signature on the staff. Deprecated,
-do not use.
+var(translatorinit) can be an identifier or of the form
 
-dit(code(barAtLineStart))indexcode(barAtLineStart) Set to 1 to produce a bar line after the
-clef at the start of each line (but not at the beginning of the
-music).  
+quote(
+  code(\type) var(typename) code(;)
+)
 
-dit(code(noVoltaBraces))indexcode(noVoltaBraces) Set to true to suppress the printing
-of brackets over alternate endings specified by code(\alternative).
+var(typename) is one of
 
-dit(code(voltaSpannerDuration))indexcode(voltaSpannerDuration) Set to an integer to control the size
-of the brackets printed by code(\alternative).  The integer specifies
-the number of whole notes duration to use for the brackets.  It seems
-to be rounded to the nearest measure.  This can be used to shrink the
-length of brackets in the situation where one alternative is very
-large.  It may have odd effects if the specified duration is longer
-than the music given in an code(\alternative).   [FIXME: This was
-broken in 1.1.53]
+description(
+  dit(code(Engraver_group_engraver))indexcode(Engraver_group_engraver) nl()
+    The standard cooperation engraver.
 
-dit(code(barNonAuto))indexcode(barNonAuto) If set to 1 then bar lines will not be printed
-automatically; they must be explicitly created with code(\bar) keywords.
-Unlike with the code(\cadenza) keyword, measures are still counted.  Bar
-generation will resume according to that count if this property is set to
-zero.  
+  dit(code(Score_engraver))indexcode(Score_engraver) nl()
+    This is cooperation module that should be in the top level context.
 
-dit(code(defaultClef))indexcode(defaultClef) Determines the default clef.  See code(\clef)
-keyword.
+  dit(code(Grace_engraver_group))indexcode(Grace_engraver_group) nl()
+    This is a special cooperation module (resembling
+    code(Score_engraver)) that is used to created an embedded
+    `miniscore'.
+) 
 
-dit(code(numberOfStaffLines))indexcode(numberOfStaffLines) Sets the number of lines that the staff has.
- 
-dit(code(barAlways))indexcode(barAlways) If set to 1 a bar line is drawn after each note.
+var(translatormodifierlist) is a list of items where each item is
+one of
 
-dit(code(defaultBarType))indexcode(defaultBarType) Sets the default type of bar line.  See
-code(\bar) keyword.
+itemize(
+  it() code(\consists) var(engravername) code(;) nl()
+    Add var(engravername) to the list of modules in this context. 
+    bind(Section)ref(engravers) contains an overview of the engravers
+    available.  The order of engravers added with code(\consists) is
+    significant.
+  
+  it() code(\consistsend) var(engravername) code(;) nl()
+    Analogous to code(\consists), but makes sure that
+    var(engravername) is always added to the end of the list of
+    engravers.
 
-dit(code(keyOctaviation))indexcode(keyOctaviation) If set to 1, then keys are the same in all
-octaves.  If set to 0 then the key signature for different octaves can
-be different and is specified independently: code(\keysignature bes
-fis').  The default value is 1.  Can be set to zero with
-code(\specialkey) or reset to 1 with code(\normalkey).
-
-dit(code(instrument)) and code(instr) If code(Staff_margin_engraver)
-cindex(instrument)cindex(instr)cindex(Staff_margin_engraver)
-is added to the Staff translator, then the code(instrument) property
-is used to label the first line of the staff and the code(instr)
-property is used to label subsequent lines.  If the
-code(midiInstrument) property is not set then code(instrument) is
-used to determine the instrument for MIDI output.
-
-dit(code(createKeyOnClefChange))indexcode(createKeyOnClefChange) Set
-to a nonempty string if you want key signatures to be printed when the
-clef changes.  Set to the empty string if you do not want key
-signatures printed.
-
-dit(code(timeSignatureStyle))indexcode(timeSignatureStyle) Changes the default two-digit layout
-   for time signatures. The following values are recognized:
-   description(
-      dit(code(C))indexcode(C) 4/4 and 2/2 are typeset as C and struck C,
-      respectively. All other time signatures are written with two digits.
-      dit(code(old))indexcode(old) 2/2, 3/2, 2/4, 3/4, 4/4, 6/4, 9/4, 4/8, 6/8 and
-      9/8 are typeset with old-style mensuration marks. All other time
-      signatures are written with two digits.
-      dit(code(1))indexcode(1) All time signatures are typeset with a single
-      digit, e.g. 3/2 is written as 3.
-      dit(indexandcode(C2/2), code(C4/4), code(old2/2), code(old3/2),
-      code(old2/4), code(old3/4), code(old4/4), code(old6/4), 
-      code(old9/4), code(old4/8), code(old6/8), code(old6/8alt)
-      or code(old9/8))Tells LilyPond to use a specific symbol as 
-      time signature.
-   )
-The different time signature characters are shown below with
-their names:
-mudela(center)(
-\score{
-  \notes\relative c'' {
-\property Voice.textStyle = typewriter
-\property Staff.timeSignatureStyle = "C2/2"
-\time 2/2; a2^"C2/2" a2 
-\property Staff.timeSignatureStyle = "C4/4"
-\time 2/2; a2^"C4/4" a2 
-\property Staff.timeSignatureStyle = "old2/2"
-\time 2/2; a2^"old2/2" a2 
-\property Staff.timeSignatureStyle = "old3/2"
-\time 2/2; a2^"old3/2" a2 
-\property Staff.timeSignatureStyle = "old2/4"
-\time 2/2; a2^"old2/4" a2 
-\property Staff.timeSignatureStyle = "old4/4"
-\time 2/2; a2^"old4/4" a2 
-\property Staff.timeSignatureStyle = "old6/4"
-\time 2/2; a2^"old6/4" a2 
-\property Staff.timeSignatureStyle = "old9/4"
-\time 2/2; a2^"old9/4" a2 
-\property Staff.timeSignatureStyle = "old4/8"
-\time 2/2; a2^"old4/8" a2 
-\property Staff.timeSignatureStyle = "old6/8"
-\time 2/2; a2^"old6/8" a2 
-\property Staff.timeSignatureStyle = "old6/8alt"
-\time 2/2; a2^"old6/8alt" a2 
-\property Staff.timeSignatureStyle = "old9/8"
-\time 2/2; a2^"old9/8" a2 
-}
-   \paper{ linewidth= 4.5 \in; }
-}
+    Some engraver types need to be at the end of the list; this
+    insures they are put there, and stay there, if a user adds or
+    removes engravers.  This command is usually not needed for
+    end-users.
+    
+  it() code(\accepts) var(contextname) code(;) nl()
+    Add var(contextname) to the list of  context this context can
+    contain.  The first listed context the context to create by
+    default.
+  
+  it() code(\remove) var(engravername) code(;) nl()
+    Remove a previously added (with code(\consists)) engraver.
+  
+  it() code(\name) var(contextname) code(;) nl()
+    This sets name of the context, e.g. code(Staff), code(Voice).  If
+    the name is not specified, the translator won't do anything.
+
+  it() var(propname) code(=) var(value) code(;) nl()
+    A property assignment.  It is allowed to use reals for
+    var(value).
 )
 
-dit(code(clefStyle))indexcode(clefStyle) Determines how clefs are typeset. When set to
-code(transparent), the clefs are not printed at all, when set to
-code(fullSizeChanges), clef changes in the middle of a line are
-typeset with a full size clef. By default, clef changes are typeset in
-smaller size.
+In the code(\paper) block, it is also possible to define translator
+identifiers.  Like other block identifiers, the identifier can only
+be used as the very first item of a translator.  In order to define
+such an identifier outside of code(\score), you must do
 
+quote(
+verb(\paper {
+  foo = \translator { ... }
+}
+\score {
+  \notes {
+    ...
+  }
+  \paper {
+    \translator { \foo ... }
+  }
+})
 )
-   
-subsubsubsect(GrandStaff properties)cindex(properties!GrandStaff)
-
-description( 
 
-dit(code(alignmentReference))indexcode(alignmentReference) Set to code(\center) for vertical
-alignment reference point to be in the center of the vertical group.
-Set to code(\up) to put the reference point at the top of the group. 
+subsubsect(Paper Types, Engravers, and Pre-defined Translators)
+cindex(paper types, engravers, and pre-defined translators)
 
-dit(code(maxVerticalAlign))indexcode(maxVerticalAlign) Set the maximum vertical distance between
-staffs.
-
-dit(code(minVerticalAlign))indexcode(minVerticalAlign) Set the minimum vertical distance between
-staffs.  
-
-)
-
-subsubsubsect(Score properties)cindex(properties!Score)
+Some pre-defined identifiers can simplify modification of
+translators.  The pre-defined identifiers are:
 
 description(
+  dit(code(StaffContext))indexcode(StaffContext) nl()
+    Default Staff context. 
 
-dit(code(skipBars))indexcode(skipBars) Set to 1 to skip the empty bars that are produced
-by multimeasure notes and rests.  These bars will not appear on the
-printed output.  Set to zero (the default) to expand multimeasure
-notes and rests into their full length, printing the appropriate
-number of empty bars so that synchronization with other voices is
-preserved.
-mudela(fragment,verbatim,center)(
-r1 r1*3 R1*3\property Score.skipBars=1 r1*3 R1*3
-)
+  dit(code(RhythmicStaffContext))indexcode(RhythmicStaffContext) nl()
+    Default RhythmicStaff context. 
 
-)
+  dit(code(VoiceContext))indexcode(VoiceContext) nl()
+    Default Voice context.  
 
-subsubsubsect(ChordNamesVoice properties)cindex(properties!ChordNamesVoice)
+  dit(code(ScoreContext))indexcode(ScoreContext) nl()
+    Default Score context. 
 
-description(
-dit(code(chordInversion))indexcode(chordInversion) Determines whether LilyPond should look for
-chord inversions when translating from notes to chord names.  Set to 1
-to find inversions.  The default is 0 which does not look for inversions.
-)
+  dit(code(ScoreWithNumbers))indexcode(ScoreWithNumbers) nl()
+    Score context with numbering at the Score level.
 
+  dit(code(BarNumberingStaffContext))indexcode(BarNumberingStaffContext) nl()
+    Staff context with numbering at the Staff level.
 
-sect(Notation output definitions)cindex(Output)cindex(Notation output)
-cindex(output definition)
-label(output)
-label(paper)
+  dit(code(HaraKiriStaffContext))indexcode(HaraKiriStaffContext) nl()
+    Staff context that does not print if it only contains rests. 
+    Useful for orchestral scores.footnote(Harakiri, also called
+    Seppuku, is the ritual suicide of the Samourai.)
 
-The most important output definition is the code(\paper) block, for
-music notation.  The syntax is
-code(\paper {) [var(paperidentifier)] var(items) code(}),
-where each of the items is one of
+  dit(code(OrchestralPartStaffContext))indexcode(OrchestralPartStaffContext)
 
-itemize(
+  dit(code(OrchestralScoreContext))indexcode(OrchestralScoreContext)
+)
 
-it() An assignment.  The assignment must be terminated by a semicolon.
-See Section ref(papervars) for information on paper variables.
+Using these pre-defined values, you can remove or add items to the
+translator:
 
-it() A context definition, see Section ref(contextdefs) for more
-information on context definitions.
+quote(
+verb(\paper {
+  \translator {
+    \StaffContext
+    \remove Some_engraver;
+    \consists Different_engraver;
+  }
+})
+)
+      
+subsubsect(Engravers)
+label(engravers)
 
-it() A margin shape declaration. The syntax is code(\shape)
-var(indent1)code(,) var(width1)code(,) var(indent2)code(,) var(width2)
-ellipsis() code(;)
-indexcode(\shape)
-Each pair of var(indent) and var(width) values is a
-dimension specifying how far to indent and how wide to make the line.
-The indentation and width of successive lines are specified by the
-successive pairs of dimensions.  The last pair of dimensions will
-define the characeristics of all lines beyond those explicitly
-specified.
+The engravers for paper output are:
 
-it() A font declaration.  Its syntax is var(fontsize) code(=)
-code(\font)keyindex(font) var(fontname).  var(fontsize) is an integer
-describing the font to be used.  0 is the default font. var(fontname)
-is the basename of a font (usually a member of the Feta family).
+[incomplete, FIXME]
 
-)
+description(
+  dit(code(Bar_engraver))indexcode(Bar_engraver) nl()
+    Engraves bar lines.  Normally in code(Staff) and
+    code(RhythmicStaff).
 
+  dit(code(Bar_number_engraver))indexcode(Bar_number_engraver) nl()
+    Engrave bar numbers.  These numbers appear at the start of each
+    line.  Not normally in any translator.  Can be added to
+    code(Score) for score-wide numbering or to code(Staff) for
+    numbering on each staff.
 
+  dit(code(Beam_engraver))indexcode(Beam_engraver) nl()
+    Handles beam requests by engraving beams.  Normally appears in
+    the code(Voice) translator.  If omitted, then notes will be
+    printed with flags instead of beams.
 
+  dit(code(Beam_req_swallow_translator))
+    indexcode(Beam_req_swallow_translator) nl()
+    Swallows beam requests.  In code(LyricVoice).  
 
-subsect(Changing Font Size and Paper Size)cindex(Changing Font Size and Paper Size)
+  dit(code(Chord_name_engraver))indexcode(Chord_name_engraver) nl()
+    Engraves chord names.  Normally in code(ChordNameVoice) .
 
-The Feta font provides musical symbols at six different sizes.  These
-fonts are 11 point, 13 point, 16 point, 20 point, 23 point, and 26
-point.  The point size of a font is the height of the five line staff
-when displayed in the font.
+  dit(code(Chord_tremolo_engraver))indexcode(Chord_tremolo_engraver)
 
-Definitions for these sizes are the files file(paperSZ.ly), where
-code(SZ) is one of 11, 13, 16, 20, 23 and 26.  If you include any of
-these files, the identifiers code(paper_eleven), code(paper_thirteen),
-code(paper_sixteen), code(paper_twenty), code(paper_twentythree), and
-code(paper_twentysix) are defined respectively.  The default
-code(\paper) block is also set.
-
-To change the paper size, you must first set the code(papersize)
-variable at top level.  Set it to the strings code(a4),
-code(letter), or code(legal).  After this specification, you must set
-the font as described above.  If you want the default font, then use
-the 20 point font.  The new paper size will not take effect if the
-font is not loaded and selected afterwards.  Paper size selection
-works by loading a file named after the paper size you select.
+  dit(code(Clef_engraver))indexcode(Clef_engraver) nl()
+    Engraves the clef symbol.  Normally in code(Staff).
 
+  dit(code(Collision_engraver))indexcode(Collision_engraver)
 
+  dit(code(Dot_column_engraver))indexcode(Dot_column_engraver) nl()
+    Engraves dots on dotted notes shifted to the right of the note. 
+    Normally in code(Voice).  If omitted, then dots appear on top of
+    the notes.
 
-subsect(Paper variables)cindex(Paper variables)
-label(papervars)
+  dit(code(Dynamic_engraver))indexcode(Dynamic_engraver) nl()
+    Engraves dynamics symbols.  Normally in code(Voice).
 
-There are a large number of paper variables that are used to control
-details of the layout. These variables control the defaults for the
-entire score.  Usually, they do not have to be changed; they are 
-by default set to values that depend on the font size in use.  The values
-are used by the graphic objects while formatting the score; they are
-therefore implementation dependent.  Most variables are accompanied by
-documentation in the initalization file file(params.ly) or
-file(paperSZ.ly), where code(SZ) is the staff height in points.
+  dit(code(Font_size_engraver))indexcode(Font_size_engraver)
 
-Nevertheless, here are some variables  you may want to use or change:
+  dit(code(Key_engraver))indexcode(Key_engraver) nl()
+    Engraves the key signature.  Normally in code(Staff).
 
-description(
-dit(code(indent))indexcode(indent) The indentation of the first line of music.
+  dit(code(Local_key_engraver))indexcode(Local_key_engraver)
 
-dit(code(interline))indexcode(interline) The distance between two
-staff lines, calculated from the center of the lines.  You should use
-either this or code(rulethickness) as a unit for distances you modify.
-  
-dit(code(linewidth))indexcode(linewidth) Sets the width of the
-lines.  If  set to -1.0, a single unjustified line is
-produced.
-
-dit(code(output))indexcode(output) Specifies an alternate name for
-the TeX() output.  A file(.tex) extension will be added to the string
-you specify.
-
-dit(code(rulethickness))indexcode(rulethickness) Determines thickness of staff lines and bars. 
-
-code(castingalgorithm)indexcode(castingalgorithm) The algorithm to use
-for breaking lines.  Choices are code(\Gourlay)keyindex(Gourlay) for a
-TeX() like dynamic programming algorithm, and
-code(\Wordwrap)keyindex(Wordwrap) for a simple algorithm.  Gourlay
-breaking looks much better, but takes a lot more resources.  Wordwrap
-leaves loosely spaced lines at the end
+  dit(code(Lyric_engraver))indexcode(Lyric_engraver) nl()
+    Engraves lyrics.  Normally in code(LyricVoice).
 
-)
+  dit(code(Multi_measure_rest_engraver))
+    indexcode(Multi_measure_rest_engraver) nl()
+    Engraves multi-measure rests that are produced with code(R). 
+    Normally in code(Voice).
 
+  dit(code(Piano_bar_engraver))indexcode(Piano_bar_engraver)
 
+  dit(code(Pitch_squash_engraver))indexcode(Pitch_squash_engraver) nl()
+    Treat all pitches as middle C.  Used in code(RhythmicStaff). 
+    Note that the notes move, but the locations of accidentals stay
+    the same.
 
-subsect(Context definitions)
-label(contextdefs)cindex(context definition)
+  dit(code(Priority_horizontal_align_engraver))
+    indexcode(Priority_horizontal_align_engraver)
 
-A notation contexts is defined by the following information
+  dit(code(Repeat_engraver))indexcode(Repeat_engraver) nl()
+    Handles repeats?  In code(Staff) and code(RhythmicStaff).
 
-enumerate(
-it() a name
-it() The LilyPond modules that do the actual conversion of music to
-notation.   Each module is a so-called code(Engraver)cindex(Engraver).
-it() How these modules should cooperate, i.e. which ``cooperation
-module'' should be used.   This cooperation module is a special type
-of engraver. 
-it() what other contexts the context can contain,
-it() what properties are defined
-)
+  dit(code(Rest_collision_engraver))indexcode(Rest_collision_engraver) nl()
+    Handles collisions of rests.  In code(Staff).
 
+  dit(code(Rest_engraver))indexcode(Rest_engraver) nl()
+    Engraves rests.  Normally in code(Voice).
 
-A context definition has this syntax: code(\translator
-{ )var(translatorinit) var(translatormodifierlist) code(}).
+  dit(code(Rhythmic_column_engraver))indexcode(Rhythmic_column_engraver)
 
-var(translatorinit) can be  an identifier, or code(\type
-)var(typename)code(;).   var(typename) is one of
-itemize(
-it() indexandcode(Engraver_group_engraver) the standard cooperation engraver.
-it() indexandcode(Score_engraver) this is cooperation module that should be
-  in the top level context.
-it() indexandcode(Grace_engraver_group) 
-  This is  a special cooperation module (resembling Score_engraver),
-  that is used to created an embedded `miniscore'
-) 
+  dit(code(Score_priority_engraver))indexcode(Score_priority_engraver)
 
-var(translatormodifierlist) is a list of items, where each item is one
-of
+  dit(code(Script_engraver))indexcode(Script_engraver) nl()
+    Handles note ornaments generated by code(\script).  Normally in
+    code(Voice).
 
-itemize(
-it() code(\consists) var(engravername)code(;)
-  Add var(engravername)  to the list of modules in  this
-  context. Section ref(engravers) contains an overview of the
-  engravers available.  The order of engravers added   with
-  code(\consists) is significant.
-  
-it() code(\consistsend) var(engravername)code(;)
-  Analogous to code(\consists), but makes sure that var(engravername)
-  is always added to the end of the list of engravers. 
+  dit(code(Separating_line_group_engraver))
+    indexcode(Separating_line_group_engraver)
 
-    Some engraver types need to be at the end of the list; this
-    insures they are put there, and stay there, if a user adds or
-    removes engravers.  This command is usually not needed for
-    end-users.
+  dit(code(Skip_req_swallow_translator))
+    indexcode(Skip_req_swallow_translator)
 
+  dit(code(Slur_engraver))indexcode(Slur_engraver) nl()
+    Engraves slurs.  Normally in code(Voice).
 
-    
-it() code(\accepts) var(contextname)code(;)
-  Add var(contextname) to the list of  context this context can
-  contain.  The first listed context the context to create  by
-  default.
-  
-it() code(\remove) var(engravername)code(;) 
-  Remove a previously added (with code(\consists)) engraver
-  
-it() code(\name) var(contextname)code(;) This sets name of the
-  context, eg. code(Staff), code(Voice).  If the name is not
-  specified, the translator won't do anything.
-
-it()
-  var(propname)code(=)var(value)code(;) A property assignment.  It is
-  allowed to use reals for var(value)
+  dit(code(Span_bar_engraver))indexcode(Span_bar_engraver) nl()
+    Engraves lines across multiple staffs.  Normally in
+    code(Staffgroup) and code(GrandStaff).  Removing this from
+    code(StaffGroup) gives the definition of code(ChoirStaff).
 
-)
+  dit(code(Span_score_bar_engraver))indexcode(Span_score_bar_engraver)
 
- 
+  dit(code(Staff_group_bar_engraver))indexcode(Staff_group_bar_engraver)
 
-In the code(\paper) block, it is also possible to define translator
-identifiers.  Like other block identifiers, the identifier can only
-be used as the very first item of a translator.  In order to define
-such an identifier outside of code(\score), you must do
-verb(
-\paper{ foo=\translator{ ... } }
-\score{
-  \notes{ ... }
-  \paper{ \translator{ \foo ... } }
-})
+  dit(code(Staff_margin_engraver))indexcode(Staff_margin_engraver) nl()
+    Prints the name of the instrument (specified by
+    code(Staff.instrument) and code(Staff.instr)) at the left of the
+    staff.
 
-subsubsect(Paper Types and Engravers and Pre-defined Translators)cindex(Paper Types and Engravers and Pre-defined Translators)
+  dit(code(Staff_sym_engraver))indexcode(Staff_sym_engraver)
 
-Some pre-defined identifiers can simplify modification of translators.
-The pre-defined identifiers are:  
-description(
-dit(code(StaffContext))indexcode(StaffContext)
-Default Staff  context. 
-dit(code(RhythmicStaffContext))indexcode(RhythmicStaffContext)
-Default RhythmicStaff  context. 
-dit(code(VoiceContext))indexcode(VoiceContext)
-  Default Voice  context.  
-dit(code(ScoreContext))indexcode(ScoreContext)
-  Default  Score context. 
-dit(code(ScoreWithNumbers))indexcode(ScoreWithNumbers)
-  Score context with numbering at the Score level.   
-
-dit(code(BarNumberingStaffContext))indexcode(BarNumberingStaffContext)
-  Staff context with numbering at the Staff level.
-
-dit(code(HaraKiriStaffContext))indexcode(HaraKiriStaffContext)
-  Staff context that does not print if it only contains rests.  Useful for
-  orchestral scores.footnote(Hara kiri is the ritual suicide of the Samourai)
-dit(code(OrchestralPartStaffContext))indexcode(OrchestralPartStaffContext)
-dit(code(OrchestralScoreContext))indexcode(OrchestralScoreContext)
-)
-
-Using these pre-defined values, you can remove  or add items to the
-translator verb(\paper{ \translator{ \StaffContext
-                     \remove Some_engraver;
-                     \consists Different_engraver;  }})
-      
+  dit(code(Stem_engraver))indexcode(Stem_engraver) nl()
+    Engraves stems.  Normally in code(Voice).
 
-subsubsect(Engravers)
-label(engravers)
+  dit(code(Ties_engraver))indexcode(Ties_engraver) nl()
+    Engraves ties.  Normally in code(Voice).
 
+  dit(code(Time_signature_engraver))indexcode(Time_signature_engraver) nl()
+    Engraves the time signature.  Normally in code(Staff) and
+    code(RhythmicStaff).
 
-The engravers for paper output are:
+  dit(code(Timing_engraver))indexcode(Timing_engraver) nl()
+    Responsible for synchronizing timing information from staffs. 
+    Normally in code(Score).  In order to create polyrhythmic music,
+    this engraver should be removed from code(Score) and placed in
+    code(Staff).
 
-[incomplete, FIXME]
+  dit(code(Tuplet_engraver))indexcode(Tuplet_engraver) nl()
+    Engraves tuplet brackets?  In code(Staff).
 
-description(
-dit(code(Bar_engraver))indexcode(Bar_engraver) Engraves bar lines.  Normally in code(Staff) and
-code(RhythmicStaff).  
-dit(code(Bar_number_engraver))indexcode(Bar_number_engraver) Engrave bar numbers.  These numbers
-appear at the start of each line.  Not normally in any translator.  Can
-be added to code(Score) for Score-wide numbering or to code(Staff) for
-numbering on each staff.  
-
-dit(code(Beam_engraver))indexcode(Beam_engraver) Handles beam requests by engraving beams.  Normally
-appears in the code(Voice) translator.  If omitted, then notes will be printed
-with flags instead of beams.
-
-dit(code(Beam_req_swallow_translator))indexcode(Beam_req_swallow_translator) Swallows beam requests.  In
-code(LyricVoice).  
-dit(code(Chord_name_engraver))indexcode(Chord_name_engraver) Engraves chord names.  Normally in
-code(ChordNameVoice) 
-dit(code(Chord_tremolo_engraver))indexcode(Chord_tremolo_engraver)
-dit(code(Clef_engraver))indexcode(Clef_engraver) Engraves the clef symbol.  Normally in code(Staff).
-dit(code(Collision_engraver))indexcode(Collision_engraver)
-dit(code(Dot_column_engraver))indexcode(Dot_column_engraver) Engraves dots on dotted notes shifted to the
-right of the note.  Normally in code(Voice).  If omitted, then dots appear on
-top of the notes.  
-dit(code(Dynamic_engraver))indexcode(Dynamic_engraver) Engraves dynamics symbols.  Normally in code(Voice).
-dit(code(Font_size_engraver))indexcode(Font_size_engraver)
-dit(code(Key_engraver))indexcode(Key_engraver) Engraves the key signature.  Normally in code(Staff).
-dit(code(Local_key_engraver))indexcode(Local_key_engraver)
-dit(code(Lyric_engraver))indexcode(Lyric_engraver) Engraves lyrics.  Normally in code(LyricVoice).
-dit(code(Multi_measure_rest_engraver))indexcode(Multi_measure_rest_engraver) Engraves multi-measure rests that are
-produced with code(R).  Normally in code(Voice).
-dit(code(Piano_bar_engraver))indexcode(Piano_bar_engraver)
-dit(code(Pitch_squash_engraver))indexcode(Pitch_squash_engraver) Treat all pitches as middle C.  Used in
-code(RhythmicStaff).  Note that the notes move, but the locations of
-accidentals stay the same. 
-dit(code(Priority_horizontal_align_engraver))indexcode(Priority_horizontal_align_engraver)
-dit(code(Repeat_engraver))indexcode(Repeat_engraver) Handles repeats? In code(Staff) and 
-   code(RhythmicStaff).
-dit(code(Rest_collision_engraver))indexcode(Rest_collision_engraver) Handles collisions of rests. In code(Staff).
-dit(code(Rest_engraver))indexcode(Rest_engraver) Engraves rests.  Normally in code(Voice).
-dit(code(Rhythmic_column_engraver))indexcode(Rhythmic_column_engraver)
-dit(code(Score_priority_engraver))indexcode(Score_priority_engraver)
-dit(code(Script_engraver))indexcode(Script_engraver) Handles note ornaments generated by code(\script).
-Normally in code(Voice).  
-dit(code(Separating_line_group_engraver))indexcode(Separating_line_group_engraver)
-dit(code(Skip_req_swallow_translator))indexcode(Skip_req_swallow_translator)
-dit(code(Slur_engraver))indexcode(Slur_engraver) Engraves slurs.  Normally in code(Voice).
-dit(code(Span_bar_engraver))indexcode(Span_bar_engraver) Engraves lines across multiple staffs.  Normally
-in code(Staffgroup) and code(GrandStaff).  Removing this from code(StaffGroup)
-gives the definition of code(ChoirStaff).  
-dit(code(Span_score_bar_engraver))indexcode(Span_score_bar_engraver)
-dit(code(Staff_group_bar_engraver))indexcode(Staff_group_bar_engraver)
-dit(code(Staff_margin_engraver))indexcode(Staff_margin_engraver) Prints the name of the instrument
-(specified by code(Staff.instrument) and code(Staff.instr)) at the
-left of the staff.  
-dit(code(Staff_sym_engraver))indexcode(Staff_sym_engraver)
-dit(code(Stem_engraver))indexcode(Stem_engraver) Engraves stems.  Normally in code(Voice).
-dit(code(Ties_engraver))indexcode(Ties_engraver) Engraves ties.  Normally in code(Voice).
-dit(code(Time_signature_engraver))indexcode(Time_signature_engraver) Engraves the time signature.  Normally in
-code(Staff) and code(RhythmicStaff).
-dit(code(Timing_engraver))indexcode(Timing_engraver) Responsible for synchronizing timing information
-from staffs.  Normally in code(Score).  In order to create polyrhythmic music,
-this engraver should be removed from code(Score) and placed in code(Staff).
-dit(code(Tuplet_engraver))indexcode(Tuplet_engraver) Engraves tuplet brackets?  In code(Staff).
-dit(code(Vertical_align_engraver))indexcode(Vertical_align_engraver) 
+  dit(code(Vertical_align_engraver))indexcode(Vertical_align_engraver) 
 )
 
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
 sect(Sound output)
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
 subsect(output definition)
 
 The MIDI block is analogous to the paper block, but it is simpler.
 The code(\midi) block can contain:cindex(MIDI block)
 
 itemize(
-it() a  code(\tempo) definition.
-it() context definitions
+  it() a code(\tempo) definition
+  it() context definitions
 )
 
 Assignments in the code(\midi) block are not allowed.
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-subsect(Context definitions) cindex(context definitions)
+subsect(Context definitions)
+cindex(context definition)
 
-Context definitions follow the precisely the same syntax as within the
+Context definitions follow precisely the same syntax as within the
 \paper block.  Translation modules for sound are called performers.
 The contexts for MIDI output are defined in file(ly/performer.ly).
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-subsect(MIDI Instrument Names)cindex(MIDI Instrument Names)
+subsect(MIDI Instrument Names)
+cindex(MIDI instrument names)
 label(midilist)
 
-The MIDI instrument name is set by the indexandcode(Staff.midiInstrument)
-property or, if that property is not set, the indexandcode(Staff.instrument)
-property.  The instrument name should be chosen from this list.  If
-string does not exactly match one from this list then LilyPond uses
-the default piano.
+The MIDI instrument name is set by the
+indexandcode(Staff.midiInstrument) property or, if that property is
+not set, the indexandcode(Staff.instrument) property.  The instrument
+name should be chosen from the following list.  If the selected
+string does not exactly match, then LilyPond uses the default piano.
 
 COMMENT( acordina = accordion, tango accordian = concertina
          distortion guitar = distorted guitar
          orchestral strings = harp 
          pan flute = wood flute? )
 
-verb("acoustic grand"               "contrabass"             "lead 7 (fifths)"
-"bright acoustic"              "tremolo strings"        "lead 8 (bass+lead)"
-"electric grand"               "pizzicato strings"      "pad 1 (new age)"
-"honky-tonk"                   "orchestral strings"     "pad 2 (warm)"
-"electric piano 1"             "timpani"                "pad 3 (polysynth)"
-"electric piano 2"             "string ensemble 1"      "pad 4 (choir)"
-"harpsichord"                  "string ensemble 2"      "pad 5 (bowed)"
-"clav"                         "synthstrings 1"         "pad 6 (metallic)"
-"celesta"                      "synthstrings 2"         "pad 7 (halo)"
-"glockenspiel"                 "choir aahs"             "pad 8 (sweep)"
-"music box"                    "voice oohs"             "fx 1 (rain)"
-"vibraphone"                   "synth voice"            "fx 2 (soundtrack)"
-"marimba"                      "orchestra hit"          "fx 3 (crystal)"
-"xylophone"                    "trumpet"                "fx 4 (atmosphere)"
-"tubular bells"                "trombone"               "fx 5 (brightness)"
-"dulcimer"                     "tuba"                   "fx 6 (goblins)"
-"drawbar organ"                "muted trumpet"          "fx 7 (echoes)"
-"percussive organ"             "french horn"            "fx 8 (sci-fi)"
-"rock organ"                   "brass section"          "sitar"
-"church organ"                 "synthbrass 1"           "banjo"
-"reed organ"                   "synthbrass 2"           "shamisen"
-"accordion"                    "soprano sax"            "koto"
-"harmonica"                    "alto sax"               "kalimba"
-"concertina"                   "tenor sax"              "bagpipe"
-"acoustic guitar (nylon)"      "baritone sax"           "fiddle"
-"acoustic guitar (steel)"      "oboe"                   "shanai"
-"electric guitar (jazz)"       "english horn"           "tinkle bell"
-"electric guitar (clean)"      "bassoon"                "agogo"
-"electric guitar (muted)"      "clarinet"               "steel drums"
-"overdriven guitar"            "piccolo"                "woodblock"
-"distorted guitar"             "flute"                  "taiko drum"
-"guitar harmonics"             "recorder"               "melodic tom"
-"acoustic bass"                "pan flute"              "synth drum"
-"electric bass (finger)"       "blown bottle"           "reverse cymbal"
-"electric bass (pick)"         "skakuhachi"             "guitar fret noise"
-"fretless bass"                "whistle"                "breath noise"
-"slap bass 1"                  "ocarina"                "seashore"
-"slap bass 2"                  "lead 1 (square)"        "bird tweet"
-"synth bass 1"                 "lead 2 (sawtooth)"      "telephone ring"
-"synth bass 2"                 "lead 3 (calliope)"      "helicopter"
-"violin"                       "lead 4 (chiff)"         "applause"
-"viola"                        "lead 5 (charang)"       "gunshot"
-"cello"                        "lead 6 (voice)")
-
+quote(
+verb("acoustic grand"            "contrabass"           "lead 7 (fifths)"
+"bright acoustic"           "tremolo strings"      "lead 8 (bass+lead)"
+"electric grand"            "pizzicato strings"    "pad 1 (new age)"
+"honky-tonk"                "orchestral strings"   "pad 2 (warm)"
+"electric piano 1"          "timpani"              "pad 3 (polysynth)"
+"electric piano 2"          "string ensemble 1"    "pad 4 (choir)"
+"harpsichord"               "string ensemble 2"    "pad 5 (bowed)"
+"clav"                      "synthstrings 1"       "pad 6 (metallic)"
+"celesta"                   "synthstrings 2"       "pad 7 (halo)"
+"glockenspiel"              "choir aahs"           "pad 8 (sweep)"
+"music box"                 "voice oohs"           "fx 1 (rain)"
+"vibraphone"                "synth voice"          "fx 2 (soundtrack)"
+"marimba"                   "orchestra hit"        "fx 3 (crystal)"
+"xylophone"                 "trumpet"              "fx 4 (atmosphere)"
+"tubular bells"             "trombone"             "fx 5 (brightness)"
+"dulcimer"                  "tuba"                 "fx 6 (goblins)"
+"drawbar organ"             "muted trumpet"        "fx 7 (echoes)"
+"percussive organ"          "french horn"          "fx 8 (sci-fi)"
+"rock organ"                "brass section"        "sitar"
+"church organ"              "synthbrass 1"         "banjo"
+"reed organ"                "synthbrass 2"         "shamisen"
+"accordion"                 "soprano sax"          "koto"
+"harmonica"                 "alto sax"             "kalimba"
+"concertina"                "tenor sax"            "bagpipe"
+"acoustic guitar (nylon)"   "baritone sax"         "fiddle"
+"acoustic guitar (steel)"   "oboe"                 "shanai"
+"electric guitar (jazz)"    "english horn"         "tinkle bell"
+"electric guitar (clean)"   "bassoon"              "agogo"
+"electric guitar (muted)"   "clarinet"             "steel drums"
+"overdriven guitar"         "piccolo"              "woodblock"
+"distorted guitar"          "flute"                "taiko drum"
+"guitar harmonics"          "recorder"             "melodic tom"
+"acoustic bass"             "pan flute"            "synth drum"
+"electric bass (finger)"    "blown bottle"         "reverse cymbal"
+"electric bass (pick)"      "skakuhachi"           "guitar fret noise"
+"fretless bass"             "whistle"              "breath noise"
+"slap bass 1"               "ocarina"              "seashore"
+"slap bass 2"               "lead 1 (square)"      "bird tweet"
+"synth bass 1"              "lead 2 (sawtooth)"    "telephone ring"
+"synth bass 2"              "lead 3 (calliope)"    "helicopter"
+"violin"                    "lead 4 (chiff)"       "applause"
+"viola"                     "lead 5 (charang)"     "gunshot"
+"cello"                     "lead 6 (voice)")
+)
 
-subsubsect(MIDI Types and Performers)cindex(MIDI Types and Performers)
+subsubsect(MIDI Types and Performers)
+cindex(MIDI types and performers)
 
 The types available for  MIDI translators are:
+
 description(
-dit(code(Performer_group_performer))indexcode(Performer_group_performer)
-dit(code(Score_performer))indexcode(Score_performer)
-dit(code(Staff_performer))indexcode(Staff_performer)
+  dit(code(Performer_group_performer))indexcode(Performer_group_performer)
+  dit(code(Score_performer))indexcode(Score_performer)
+  dit(code(Staff_performer))indexcode(Staff_performer)
 )
 
 The performers for MIDI translators are:
+
 description(
-dit(code(Key_performer))indexcode(Key_performer)
-dit(code(Time_signature_performer))indexcode(Time_signature_performer)
-dit(code(Note_performer))indexcode(Note_performer)
-dit(code(Lyric_performer))indexcode(Lyric_performer)
-dit(code(Swallow_performer))indexcode(Swallow_performer)
+  dit(code(Key_performer))indexcode(Key_performer)
+  dit(code(Time_signature_performer))indexcode(Time_signature_performer)
+  dit(code(Note_performer))indexcode(Note_performer)
+  dit(code(Lyric_performer))indexcode(Lyric_performer)
+  dit(code(Swallow_performer))indexcode(Swallow_performer)
 )
 
 
-sect(Pre-defined Identifiers)cindex(Pre-defined Identifiers)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+
+sect(Pre-defined Identifiers)
+cindex(pre-defined identifiers)
 label(ident)
 
 Various identifiers are defined in the initialization files to
-provide shorthands for some settings.  Most of them are in file(ly/declarations.ly).
+provide shorthands for some settings.  Most of them are in
+file(ly/declarations.ly).
 
 description(
-dit(code(\break))keyindex(break) Force a line break in music by using a large
-argument for the keyword code(\penalty). 
-dit(code(\center))keyindex(center) Used for setting direction  properties.  Equals 0.
-dit(code(\down))keyindex(down) Used for setting direction setting properties.  Is
-equal to -1.  
-dit(code(\free))keyindex(free) Used for setting direction setting properties.  Is
-equal to 0.  
-dit(code(\left))keyindex(left) Used for setting textalignment property.  Is equal to -1.
-dit(code(\nobreak))keyindex(nobreak) Prevent a line break in music by using a large
-negative argument for the keyword code(\penalty). 
-dit(code(\none))keyindex(none) Used for setting code(Score.beamslopedamping) and
-code(Score.beamquantisation) properties.  Is equal to 0.
-dit(code(\normal))keyindex(normal) Used for setting code(Score.beamslopedamping) and
-code(Score.beamquantisation) properties.  Is equal to 1.
-dit(code(\normalkey))keyindex(normalkey) Select normal key signatures where each octave
-has the same key signature.  This sets the code(Staff.keyoctaviation) property.
-dit(code(\right))keyindex(right) Used for setting textalignment property.  Is set to 1.
-dit(code(\shiftoff))keyindex(shiftoff) Disable horizontal shifting of note heads that collide.  
-Sets the code(Voice.horizontalNoteShift) property.
-dit(code(\shifton))keyindex(shifton) Enable note heads that collide with other note heads
-to be shifted horiztonally.  Sets the code(Voice.horizontalNoteShift) property.
-dit(code(\slurboth))keyindex(slurboth) Allow slurs to be above or below notes.  This
-sets the code(Voice.slurVerticalDirection) property. 
-dit(code(\slurdown))keyindex(slurdown) Force slurs to be below notes. This sets the
-code(Voice.slurVerticalDirection) property. 
-dit(code(\slurup))keyindex(slurup) Force slurs to be above notes.  This sets the
-code(Voice.slurVerticalDirection) property.  
-dit(code(\specialkey))keyindex(specialkey) Allow keys signatures do differ in different
-octaves.  This sets the code(Staff.keyoctaviation) property.  
-dit(code(\stemboth))keyindex(stemboth) Allow stems, beams, and slurs to point either
-direction.  This sets the code(Voice.verticalDirection) property. 
-dit(code(\stemdown))keyindex(stemdown) Force stems, beams, and slurs to point down.
-This sets the code(Voice.verticalDirection) property. 
-dit(code(\stemup))keyindex(stemup) Force stems, beams and slurs to point up.  This
-sets the code(Voice.verticalDirection) property. 
-dit(code(\traditional))keyindex(traditional) Used for setting the 
-code(Score.beamquantisation) property.  Is equal to 2.  
-dit(code(\up))keyindex(up) Used for setting various direction properties.  Is
-equal to 1. 
+  dit(code(\break))keyindex(break) nl()
+    Force a line break in music by using a large argument for the
+    keyword code(\penalty).
+
+  dit(code(\center))keyindex(center) nl()
+    Used for setting direction  properties.  bind(Equals)0.
+
+  dit(code(\down))keyindex(down) nl()
+    Used for setting direction setting properties.  Is equal
+    bind(to)-1.
+
+  dit(code(\free))keyindex(free) nl()
+    Used for setting direction setting properties.  Is equal
+    bind(to)0.
+
+  dit(code(\left))keyindex(left) nl()
+    Used for setting text alignment property.  Is equal bind(to)-1.
+
+  dit(code(\nobreak))keyindex(nobreak) nl()
+    Prevent a line break in music by using a large negative argument
+    for the keyword code(\penalty).
+
+  dit(code(\none))keyindex(none) nl()
+    Used for setting code(Score.beamslopedamping) and
+    code(Score.beamquantisation) properties.  Is equal bind(to)0.
+
+  dit(code(\normal))keyindex(normal) nl()
+    Used for setting code(Score.beamslopedamping) and
+    code(Score.beamquantisation) properties.  Is equal bind(to)1.
+
+  dit(code(\normalkey))keyindex(normalkey) nl()
+    Select normal key signatures where each octave has the same key
+    signature.  This sets the code(Staff.keyoctaviation) property.
+
+  dit(code(\right))keyindex(right) nl()
+    Used for setting text alignment property.  Is set bind(to)1.
+
+  dit(code(\shiftoff))keyindex(shiftoff) nl()
+    Disable horizontal shifting of note heads that collide.  Sets the
+    code(Voice.horizontalNoteShift) property.
+
+  dit(code(\shifton))keyindex(shifton) nl()
+    Enable note heads that collide with other note heads to be
+    shifted horiztonally.  Sets the code(Voice.horizontalNoteShift)
+    property.
+
+  dit(code(\slurboth))keyindex(slurboth) nl()
+    Allow slurs to be above or below notes.  This sets the
+    code(Voice.slurVerticalDirection) property.
+
+  dit(code(\slurdown))keyindex(slurdown) nl()
+    Force slurs to be below notes.  This sets the
+    code(Voice.slurVerticalDirection) property.
+
+  dit(code(\slurup))keyindex(slurup) nl()
+    Force slurs to be above notes.  This sets the
+    code(Voice.slurVerticalDirection) property.
+
+  dit(code(\specialkey))keyindex(specialkey) nl()
+    Allow key signatures do differ in different octaves.  This sets
+    the code(Staff.keyoctaviation) property.
+
+  dit(code(\stemboth))keyindex(stemboth) nl()
+    Allow stems, beams, and slurs to point either upwards or
+    downwards, decided automatically by LilyPond.  This sets the
+    code(Voice.verticalDirection) property.
+
+  dit(code(\stemdown))keyindex(stemdown) nl()
+    Force stems, beams, and slurs to point down.  This sets the
+    code(Voice.verticalDirection) property.
+
+  dit(code(\stemup))keyindex(stemup) nl()
+    Force stems, beams and slurs to point up.  This sets the
+    code(Voice.verticalDirection) property.
+
+  dit(code(\traditional))keyindex(traditional) nl()
+    Used for setting the code(Score.beamquantisation) property.  Is
+    equal bind(to)2.
+
+  dit(code(\up))keyindex(up) nl()
+    Used for setting various direction properties.  Is equal
+    bind(to)1.
 )
 
 
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
+COMMENT(%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%)
 
-sect(Running LilyPond)cindex(Running LilyPond)
+sect(Running LilyPond)
+cindex(running LilyPond)
 
 
 When invoked with a filename that has no extension, LilyPond will try
-adding a file(.ly) extension first, then a file(.sly) and then a
-file(.ly) extension second.  If the filename ends with file(.fly),
-LilyPond processes the file as music using file(init.fly).  In this
-case, LilyPond does something like: COMMENT(
+adding `file(.ly)' as an extension first, then `file(.fly)' and
+finally `file(.sly)' extension.  If the filename ends with
+`file(.fly)', LilyPond processes the file as music using
+`file(init.fly)'.  In this case, LilyPond does something like:
 
-)verb(\score {
+quote(
+verb(\score {
   \notes\relative c {
     \input "yourfile.fly"
   }
   \paper{}
   \midi{}
 })
-If you invoke LilyPond with a file file(foo.)var(ext) that doesn't
-have the file(.ly) extension then LilyPond will look for a file called
-file(init.)var(ext) and process this file.  The file
-file(init.)var(ext) must contain the code(\maininput) keyword or LilyPond
-will not read the user specified file.
+)
+The result of `file(.sly)' is similar except that a single unjustified
+line is produced.
+
+If you invoke LilyPond with a file `file(foo.)var(ext)' that doesn't
+have the `file(.ly)' extension, then LilyPond will look for a file
+called `file(init.)var(ext)' and process this file.  The file
+`file(init.)var(ext)' must contain the code(\maininput) keyword or
+LilyPond will not read the user specified file.
 
 When LilyPond processes file(filename.ly) it will produce
 file(filename.tex) as output.  If file(filename.ly) contains a second
 code(\paper) keyword, then LilyPond will produce file(filename-1.tex)
-as well.  Subsequent code(\paper) keywords will produces sequentially
+as well.  Subsequent code(\paper) keywords will produce sequentially
 numbered file names.  Several files can be specified; they will each
-be processed independently.footnote(Not entirely true: the status of
-GUILE is kept).
+be processed independently.footnote(Not entirely true: The status of
+GUILE is kept.)
 
+whenlatex(latexcommand(\printindex))
 
-whenlatex(
-latexcommand(\printindex)
-)
+COMMENT(End of reference-manual.yo)
diff -urN ../lilypond-1.2.0/Documentation/tex/tutorial.yo ./Documentation/tex/tutorial.yo
--- ../lilypond-1.2.0/Documentation/tex/tutorial.yo	Wed Jul 28 15:49:37 1999
+++ ./Documentation/tex/tutorial.yo	Mon Aug 16 09:55:29 1999
@@ -102,9 +102,9 @@
 \include "paper16.ly"
 \score {
     \notes                        
-    \relative c'' {                
-            \key g;
+    \relative c'' \sequential{                
             \time 3/4;                
+            \key g;
 
         \repeat "volta" 2 {
             d4 g,8 a b c d4 g, g |
@@ -245,7 +245,7 @@
         a b
 )COMMENT(
 
-)These are notes with pitch code(a') and code(b').  Because their
+)These are notes with pitch code(a) and code(b).  Because their
 duration is the same as the code(g), there is no need to enter the
 duration (You may enter it anyway, eg. code(a4 b4)) COMMENT(
 
@@ -256,13 +256,8 @@
 ) Three more notes.  The `code(|)' character is a `barcheck'.  When
 processing the music, LilyPond will verify that barchecks are found at
 the start of a measure.  This can help you track down errors.
-COMMENT(
-
-)verb(
-        e'4 
-) COMMENT(
 
-) So far, no notes were chromatically altered.  Here is the first one
+ So far, no notes were chromatically altered.  Here is the first one
 that is: code(fis). Mudela by default uses Dutch note names, and
 ``Fis'' is the Dutch note name for ``F sharp''.  However, there is no
 sharp sign in the output. The program keeps track of key signatures,
@@ -511,14 +506,14 @@
 
 )The structure of the file will be the same as the previous one, a
 code(\score) block with music in it.  To keep things readable, we will
-give the different parts of music names, and use names to construct
-music within the score block.
+give names to the different parts of music, and use the names to
+construct the music within the score block.
 
 verb(
         \partial 8;
 )
 
-The piece starts an anacrusis of one eighth.  COMMENT(
+The piece starts with an anacrusis of one eighth.  COMMENT(
 
 )verb(
         c4 c8 d [es () d] c4 | f4 f8 g [es() d] c g |
@@ -824,7 +819,7 @@
 controls the directions of stems, articulations marks and other
 symbols.
   If code(verticalDirection) is set to code(\down)
-(identifier for the integer -1) the stems go down
+(identifier for the integer -1) the stems go down,
 code(\up) (identifier for the integer 1) makes the stems go up.COMMENT(
 
 )verb(        g'8. b,16)COMMENT(
@@ -837,7 +832,7 @@
 verb(s1 s2. r4)COMMENT(
 
 )code(s) is a `spacer' rest.  It does not print anything,  but it does
-have duration of a rest.   COMMENT(
+have the duration of a rest.   COMMENT(
 
 )verb(oboes = \notes \relative c'' \context Voice = oboe {)COMMENT(
 
diff -urN ../lilypond-1.2.0/Documentation/topdocs/INSTALL.yo ./Documentation/topdocs/INSTALL.yo
--- ../lilypond-1.2.0/Documentation/topdocs/INSTALL.yo	Wed Jul 28 15:18:36 1999
+++ ./Documentation/topdocs/INSTALL.yo	Mon Aug 16 09:37:51 1999
@@ -305,6 +305,12 @@
 Separate instructions on building for W32 are avaible
 url(in the file README-W32.yo)(../../DOEXPAND(outdir)/README-W32.html).
 
+sect(BUGS)
+
+Send bug reports to bug-gnu-music@gnu.org.  For help and questions use
+help-gnu-music@gnu.org and gnu-music-discuss@gnu.org.  Please consult
+the faq before mailing your problems.
+
 sect(AUTHORS)
 
 nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl)
diff -urN ../lilypond-1.2.0/Documentation/topdocs/README.yo ./Documentation/topdocs/README.yo
--- ../lilypond-1.2.0/Documentation/topdocs/README.yo	Wed Jul 28 16:02:26 1999
+++ ./Documentation/topdocs/README.yo	Mon Aug 16 09:37:51 1999
@@ -90,6 +90,13 @@
 a script to do this for you is in file(buildscripts/clean-fonts.sh)
 
 
+sect(BUGS)
+
+Send bug reports to bug-gnu-music@gnu.org.  For help and questions use
+help-gnu-music@gnu.org and gnu-music-discuss@gnu.org.  Please consult
+the faq before mailing your problems.
+
+
 sect(CDROM DISTRIBUTIONS)
 
 If you have received LilyPond on a cdrom, chances are that development
diff -urN ../lilypond-1.2.0/NEWS ./NEWS
--- ../lilypond-1.2.0/NEWS	Wed Jul 28 16:00:46 1999
+++ ./NEWS	Mon Aug 16 11:33:37 1999
@@ -1,4 +1,5 @@
 
+
 WHAT'S NEW?
 
 * Large cleanups, enhanced design and GUILE integration for smaller
@@ -13,8 +14,7 @@
   signature, more note heads.
 
 * Enhanced input: semi-automatic beaming, (nested) tuplets, (nested)
-  repeats, chordnames, automatic Lyrics
-  durations.
+  repeats, chordnames, automatic Lyrics durations.
   
 * Grace notes, volta brackets, multiple styles for note heads and 
   time signatures, breathing signs, lyric extenders, cross staff 
diff -urN ../lilypond-1.2.0/TODO ./TODO
--- ../lilypond-1.2.0/TODO	Wed Jul 28 14:43:13 1999
+++ ./TODO	Mon Aug 16 11:08:26 1999
@@ -4,12 +4,17 @@
 Features you cannot find in the documentation as working, should be
 mentioned here.  This is an assorted collection of stuff that will be
 done, might be done, or is an idea that we want to think about.
-
+m
 Most of the items are marked in the code as well
 Grep -i for TODO, FIXME and ugh/ugr/urg.  
 
 .* TODO after 1.2
 . * Break_req handling is silly (break_forbid () + \break fucks up.)
+. * HaraKiriStaffContext removes bar lines and doesn't remove
+    staff margin text on removed staff lines.
+. * make all Feta (including dynamics) available to the user in
+    textual scripts. Examples: "D.S. al \coda", "\mf espress.".
+ 
 . * ?  -Q, --find-old-relative show all changes in relative syntax
 What's old about absolute to relative conversion?  Could maybe use for
 abc2ly, midi2ly?
@@ -37,14 +42,62 @@
 .* BUGS
 . * [c8. c16 c16 c16] in 6/8 timesig. 
 . * staffside spanner (crescendo!) along with staffswitch.
+. * --- 1, sometimes broken slurs start too early in the next line:
+
+\score {
+  \context Staff {
+    \clef "bass";
+    \notes \relative c' {
+      \time 4/4; \key g;
+      a4 g8 fis a d c d ~ \break | d e d b a b a fis \break
+    }
+  }
+}
+
+--- 2, margin notes don't work correctly for the pianostaff (in the
+following example, i expect the "piano" string to be centered
+vertically between the two staves):
+
+\score {
+  \notes \context PianoStaff <
+    \property PianoStaff.instrument = "Piano"
+    \context Staff = treble {
+	a b c
+    }
+    \context Staff = bass {
+	\clef bass;
+	a, b, c,
+    }
+  >
+  \paper {
+    \translator { \StaffContext \consists "Staff_margin_engraver"; }
+    \translator { \PianoStaffContext \consists "Staff_margin_engraver"; }
+  }
+}
 . * 
 > \context Staff <
 >   {\voiceone''4. r8}
 >  \voicetwo c,4 r4}
 > >
+. * sort out breve shapes.
+. * \time forces keysig?
 
 .* STUFF
 . * We need feta-din*.mf files for more sizes than 10.
+. *
+- It's clumsy to have to set Staff.instr = " " to get instrument name
+  on only the first line.
+
+- The syntax for chords looks clumsy with two different meanings of 
+  '-' and different syntax for separating modifiers from the tonic
+  and from other modifiers. Why not use for example ':' between
+  tonic and modifier and between the different modifiers?
+
+- Rests and beams don't work too well together. Example:
+   [ r8 g''16 des'] [r8 c16 a] 
+
+- The stemLength property should affect also beamed stems.
+
 . * align left edge of broken (de)cresc/slur/tie/tuplet/volta
 . * fix dynamics decently, ie. use kerning & ligatures.
 . * key restorations & repeats
diff -urN ../lilypond-1.2.0/VERSION ./VERSION
--- ../lilypond-1.2.0/VERSION	Wed Jul 28 16:00:46 1999
+++ ./VERSION	Mon Aug 16 11:32:14 1999
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=2
-PATCH_LEVEL=0
+PATCH_LEVEL=1
 MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
diff -urN ../lilypond-1.2.0/aclocal.m4 ./aclocal.m4
--- ../lilypond-1.2.0/aclocal.m4	Tue Jul 20 03:16:58 1999
+++ ./aclocal.m4	Mon Aug 16 09:55:29 1999
@@ -2,6 +2,8 @@
 dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
 dnl WARNING WARNING WARNING WARNING
 dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
 dnl aclocal.m4   -*-shell-script-*-
 dnl StepMake subroutines for configure.in
 
@@ -173,7 +175,14 @@
       AC_DEFINE(HAVE_LIBGUILE)], , $GUILE_LDFLAGS dnl
     )
     if test "$ac_cv_lib_guile_gh_scm2doubles" != yes ; then
-	AC_STEPMAKE_WARN(You should install guile 1.3 or newer)
+      GUILE_LDFLAGS="`echo $GUILE_LDFLAGS | sed -e 's/-lreadline//g'`"
+      AC_CHECK_LIB(guile, gh_doubles2scm,
+        [LIBS="`echo $GUILE_LDFLAGS | sed -e 's/-L[[/-_a-zA-Z0-9]]\+ //g'` $LIBS"
+      	AC_DEFINE(HAVE_LIBGUILE)], , $GUILE_LDFLAGS dnl
+      )
+      if test "$ac_cv_lib_guile_gh_doubles2scm" != yes ; then
+      	AC_STEPMAKE_WARN(You should install guile 1.3 or newer)
+      fi
     fi
 ])
 
diff -urN ../lilypond-1.2.0/buildscripts/lilypond-login.sh ./buildscripts/lilypond-login.sh
--- ../lilypond-1.2.0/buildscripts/lilypond-login.sh	Sun Jul 11 21:23:37 1999
+++ ./buildscripts/lilypond-login.sh	Mon Aug 16 09:50:33 1999
@@ -9,6 +9,20 @@
 setenv LILYPONDPREFIX "@datadir@"
 
 # include an empty path component for the system wide includes.
-setenv MFINPUTS "@datadir@/mf:$MFINPUTS::"
-setenv TEXINPUTS "@datadir@/tex:$TEXINPUTS::"
-setenv GUILE_LOAD_PATH "@datadir@/scm:$GUILE_LOAD_PATH"
+if ($?MFINPUTS) then
+        setenv MFINPUTS "/usr/share/lilypond/mf:${MFINPUTS}::"
+else
+        setenv MFINPUTS "/usr/share/lilypond/mf::"
+endif
+if ($?TEXINPUTS) then
+        setenv TEXINPUTS "/usr/share/lilypond/tex:${TEXINPUTS}::"
+else
+        setenv TEXINPUTS "/usr/share/lilypond/tex::"
+endif
+if ($?GUILE_LOAD_PATH) then
+        setenv GUILE_LOAD_PATH "/usr/share/lilypond/scm:${GUILE_LOAD_PATH}"
+else
+        setenv GUILE_LOAD_PATH "/usr/share/lilypond/scm"
+endif
+
+
diff -urN ../lilypond-1.2.0/flower/include/dictionary-iter.hh ./flower/include/dictionary-iter.hh
--- ../lilypond-1.2.0/flower/include/dictionary-iter.hh	Tue Feb  9 11:46:10 1999
+++ ./flower/include/dictionary-iter.hh	Mon Aug 16 09:37:51 1999
@@ -15,7 +15,7 @@
 
 
 template<class V>
-class Dictionary_iter<V> : public Hash_table_iter<String,V>
+class Dictionary_iter : public Hash_table_iter<String,V>
 {
 public:
   Dictionary_iter (Dictionary<V> const &d)
diff -urN ../lilypond-1.2.0/flower/include/parray.hh ./flower/include/parray.hh
--- ../lilypond-1.2.0/flower/include/parray.hh	Fri Apr 16 13:02:10 1999
+++ ./flower/include/parray.hh	Mon Aug 16 09:37:51 1999
@@ -21,7 +21,7 @@
 template<class T>
 class Link_array : private Array<void *>
 {
-  static default_compare (T *const& p1, T  *const&p2) {
+  static int default_compare (T *const& p1, T  *const&p2) {
     /* can't do p1 -p2, since T might be an incomplete type */
     if (p1 < p2)
       return -1 ;
diff -urN ../lilypond-1.2.0/flower/include/text-db.hh ./flower/include/text-db.hh
--- ../lilypond-1.2.0/flower/include/text-db.hh	Tue Feb  9 11:46:10 1999
+++ ./flower/include/text-db.hh	Mon Aug 16 09:37:51 1999
@@ -14,7 +14,7 @@
     Text_record() { } // needed because of other ctor
 
     /// report an error in this line.
-    message (String s) {
+    void message (String s) {
 	cerr << '\n'<< filename << ": "<< line_no << s << "\n";
     }	       
     String operator[](int j) {
diff -urN ../lilypond-1.2.0/flower/include/text-stream.hh ./flower/include/text-stream.hh
--- ../lilypond-1.2.0/flower/include/text-stream.hh	Tue Feb  9 11:46:10 1999
+++ ./flower/include/text-stream.hh	Mon Aug 16 09:37:51 1999
@@ -48,7 +48,7 @@
   }
   char peek() {
     if (eof_b ())
-      return -1;
+      return (char)-1;
     char c = get();
     unget (c);
     return c;
diff -urN ../lilypond-1.2.0/flower/include/virtual-methods.hh ./flower/include/virtual-methods.hh
--- ../lilypond-1.2.0/flower/include/virtual-methods.hh	Tue Feb  9 11:46:10 1999
+++ ./flower/include/virtual-methods.hh	Mon Aug 16 09:37:51 1999
@@ -28,6 +28,28 @@
    };
    
  */
-#define VIRTUAL_COPY_CONS(base)   virtual base *clone () const { return new typeof(*this) (*this); }
 
+// fix constness: gcc-2.95 is correct in defining
+//    typeof (*this)
+// in a const member function to be const
+
+#if 0
+#define VIRTUAL_COPY_CONS(base) \
+  virtual base *clone () const \
+  { \
+    return new typeof(*this) (*this); \
+  }
+#else
+#define VIRTUAL_COPY_CONS(base) \
+  virtual base* clone_const_helper () \
+    { \
+      return new typeof (*this) (*this); \
+    } \
+  virtual base* clone () const \
+    { \
+      base* urg = (base*)this; \
+      return urg->clone_const_helper (); \
+    }
 #endif 
+
+#endif /* VIRTUAL_METHODS_HH */
diff -urN ../lilypond-1.2.0/flower/string.cc ./flower/string.cc
--- ../lilypond-1.2.0/flower/string.cc	Mon Apr 12 11:05:31 1999
+++ ./flower/string.cc	Mon Aug 16 09:37:51 1999
@@ -285,7 +285,7 @@
       char * found= (char*) memchr (me_l, set[i], n );
       if (found) 
 	{
-	  return found - me_l;
+	  return found - (char const*)me_l;
 	}
     }
   return -1;
diff -urN ../lilypond-1.2.0/lily/axis-group-element.cc ./lily/axis-group-element.cc
--- ../lilypond-1.2.0/lily/axis-group-element.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/axis-group-element.cc	Mon Aug 16 09:37:51 1999
@@ -86,7 +86,8 @@
 Axis_group_element::extra_extent (Axis a )const
 {
   Interval g;
-  purge_extra ();		// Yeah yeah,  const correctness.
+  Axis_group_element* urg = (Axis_group_element*)this;
+  urg->purge_extra ();		// Yeah yeah,  const correctness.
   for (int i=0;  i < extra_elems_.size (); i++)
     {
       Interval ge = extra_elems_[i]->extent (a);
diff -urN ../lilypond-1.2.0/lily/bar-number-engraver.cc ./lily/bar-number-engraver.cc
--- ../lilypond-1.2.0/lily/bar-number-engraver.cc	Mon Jun 28 10:38:35 1999
+++ ./lily/bar-number-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -18,7 +18,7 @@
   axis_ = Y_AXIS;
   type_ = "barNumber";
   visibility_lambda_
-    = gh_eval_str ("postbreak_only_visibility");
+    = ly_ch_C_eval_scm ("postbreak_only_visibility");
 }
 
 void
diff -urN ../lilypond-1.2.0/lily/bar-script-engraver.cc ./lily/bar-script-engraver.cc
--- ../lilypond-1.2.0/lily/bar-script-engraver.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/bar-script-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -23,7 +23,7 @@
   text_p_ =0;
   hang_on_clef_b_ = false;
   visibility_lambda_ 
-    = gh_eval_str ("non_postbreak_visibility");
+    = ly_ch_C_eval_scm ("non_postbreak_visibility");
 }
 
 void
diff -urN ../lilypond-1.2.0/lily/base-span-bar-engraver.cc ./lily/base-span-bar-engraver.cc
--- ../lilypond-1.2.0/lily/base-span-bar-engraver.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/base-span-bar-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -55,7 +55,7 @@
 	  String visnam =  String(name()) + "_visibility";
 	  
 	  spanbar_p_->set_elt_property (visibility_lambda_scm_sym,
-					gh_eval_str (visnam.ch_C()));
+					ly_ch_C_eval_scm (visnam.ch_C()));
 
 	  if (use_priority_b_)
 	    {
diff -urN ../lilypond-1.2.0/lily/beam.cc ./lily/beam.cc
--- ../lilypond-1.2.0/lily/beam.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/beam.cc	Mon Aug 16 09:37:51 1999
@@ -199,7 +199,7 @@
   */
 
   Direction beam_dir;
-  Direction neutral_dir = (int)paper_l ()->get_var ("stem_default_neutral_direction");
+  Direction neutral_dir = (Direction)(int)paper_l ()->get_var ("stem_default_neutral_direction");
 
   Dir_algorithm a = (Dir_algorithm)rint(paper_l ()->get_var ("beam_dir_algorithm"));
   switch (a)
diff -urN ../lilypond-1.2.0/lily/break-align-item.cc ./lily/break-align-item.cc
--- ../lilypond-1.2.0/lily/break-align-item.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/break-align-item.cc	Mon Aug 16 09:37:51 1999
@@ -47,7 +47,7 @@
 
   SCM symbol_list = SCM_EOL;
   Array<Real> dists;
-  SCM current_origin = gh_str02scm ("");
+  SCM current_origin = ly_ch_C_to_scm ("");
   for (int i=0; i <= elems.size (); i++)
     {
       Score_element *next_elt  = i < elems.size ()
@@ -61,11 +61,11 @@
 	  next_origin = next_elt->get_elt_property (origin_scm_sym);
 	  next_origin =
 	    (next_origin == SCM_BOOL_F)
-	    ? gh_str02scm ("")
+	    ? ly_ch_C_to_scm ("")
 	    : SCM_CDR (next_origin);
 	}
       else
-	next_origin = gh_str02scm ("begin-of-note");
+	next_origin = ly_ch_C_to_scm ("begin-of-note");
       
       SCM extra_space
 	= scm_eval (scm_listify (ly_symbol ("break-align-spacer"),
@@ -173,7 +173,7 @@
 	warning bells about missing Y refpoints go off later on.
       */
       hg->dim_cache_[Y_AXIS]->parent_l_ = dim_cache_[Y_AXIS];
-      hg->set_elt_property (ly_symbol("origin"), gh_str02scm (it->name()));
+      hg->set_elt_property (ly_symbol ("origin"), ly_ch_C_to_scm (it->name ()));
 
       pscore_l_->typeset_element (hg);
       add_element_priority (hg, priority);
diff -urN ../lilypond-1.2.0/lily/breathing-sign.cc ./lily/breathing-sign.cc
--- ../lilypond-1.2.0/lily/breathing-sign.cc	Wed Jun 23 16:11:50 1999
+++ ./lily/breathing-sign.cc	Mon Aug 16 09:37:51 1999
@@ -26,7 +26,7 @@
   set_elt_property (breakable_scm_sym, SCM_BOOL_T);
   set_elt_property (break_priority_scm_sym, gh_int2scm (-4));
   set_elt_property (visibility_lambda_scm_sym,
-		    gh_eval_str ("non_postbreak_visibility"));
+		    ly_ch_C_eval_scm ("non_postbreak_visibility"));
 }
 
 void
diff -urN ../lilypond-1.2.0/lily/chord.cc ./lily/chord.cc
--- ../lilypond-1.2.0/lily/chord.cc	Tue Jul 27 14:21:20 1999
+++ ./lily/chord.cc	Mon Aug 16 09:37:51 1999
@@ -260,7 +260,7 @@
 }
 
 void
-Chord::find_additions_and_subtractions(Array<Musical_pitch>* add_arr_p, Array<Musical_pitch>* sub_arr_p)
+Chord::find_additions_and_subtractions(Array<Musical_pitch>* add_arr_p, Array<Musical_pitch>* sub_arr_p) const
 {
   Musical_pitch tonic = pitch_arr_[0];
   /*
diff -urN ../lilypond-1.2.0/lily/clef-engraver.cc ./lily/clef-engraver.cc
--- ../lilypond-1.2.0/lily/clef-engraver.cc	Mon Jun 21 14:01:49 1999
+++ ./lily/clef-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -130,7 +130,7 @@
       create_clef();
       if(def)
 	clef_p_->set_elt_property(visibility_lambda_scm_sym,
-				  gh_eval_str ("postbreak_only_visibility"));
+				  ly_ch_C_eval_scm ("postbreak_only_visibility"));
     }
 
   /* ugh; should make Clef_referenced baseclass */
@@ -194,7 +194,7 @@
       String clefstyle = get_property ("clefStyle", 0);
       if (clefstyle.length_i ())
 	c->set_elt_property (style_scm_sym,
-			     gh_str02scm (clefstyle.ch_C()));
+			     ly_ch_C_to_scm (clefstyle.ch_C()));
       
       announce_element (Score_element_info (c, clef_req_l_));
       clef_p_ = c;
diff -urN ../lilypond-1.2.0/lily/dimension-cache.cc ./lily/dimension-cache.cc
--- ../lilypond-1.2.0/lily/dimension-cache.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/dimension-cache.cc	Mon Aug 16 09:37:51 1999
@@ -100,18 +100,14 @@
 Dimension_cache *
 Dimension_cache::common_group (Dimension_cache const* s) const
 {
-  Link_array<Dimension_cache const> my_groups;
-  for (Dimension_cache const *c = this;
-       c ; c = c->parent_l_)
-    my_groups.push (c);
-  
+  Link_array<Dimension_cache> my_groups;
+  for (Dimension_cache const *c = this; c ; c = c->parent_l_)
+    my_groups.push ((Dimension_cache*)c);
   
   Dimension_cache const *common=0;
   
-  for (Dimension_cache const * d = s;
-       !common && d;
-       d = d->parent_l_)
-    common = my_groups.find_l (d);
+  for (Dimension_cache const * d = s; !common && d; d = d->parent_l_)
+    common = (Dimension_cache const*)my_groups.find_l (d);
 
   return (Dimension_cache*)common;
 }
diff -urN ../lilypond-1.2.0/lily/dynamic-engraver.cc ./lily/dynamic-engraver.cc
--- ../lilypond-1.2.0/lily/dynamic-engraver.cc	Wed Jul 28 16:14:09 1999
+++ ./lily/dynamic-engraver.cc	Mon Aug 16 09:51:10 1999
@@ -7,7 +7,6 @@
 */
 #include "debug.hh"
 #include "crescendo.hh"
-#include "dynamic-engraver.hh"
 #include "musical-request.hh"
 #include "lookup.hh"
 #include "paper-def.hh"
@@ -134,7 +133,7 @@
 	      staff_side_p_->dir_ = Direction (int (prop));
 	    }
 
-	  prop = get_property ("dynamicDir", 0);
+	  prop = get_property ("dynamicDirection", 0);
 	  if (prop.isnum_b ())
 	    {
 	      staff_side_p_->dir_ = (Direction) (int) prop;
@@ -179,7 +178,7 @@
 		    {
 		      to_end_ss_span_p_->dir_ = Direction (int (prop));
 		    }
-		  prop = get_property ("dynamicDir", 0);
+		  prop = get_property ("dynamicDirection", 0);
 		  if (prop.isdir_b ())
 		    {
 		      to_end_ss_span_p_->dir_ = (Direction) (int) prop;
diff -urN ../lilypond-1.2.0/lily/graphical-axis-group.cc ./lily/graphical-axis-group.cc
--- ../lilypond-1.2.0/lily/graphical-axis-group.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/graphical-axis-group.cc	Mon Aug 16 09:37:51 1999
@@ -17,7 +17,16 @@
   Graphical_axis_group at one time. */
 Graphical_axis_group::Graphical_axis_group(Graphical_axis_group const&s)
 {
+#if 0
+  /*
+  gcc-2.95: huh? why can't i assign a const value to a var?
+  graphical-axis-group.cc:20: incompatible types in assignment of `const Axis[2]' to `Axis[2]'
+  */
   axes_ = s.axes_;
+#else
+  axes_[0] = s.axes_[0];
+  axes_[1] = s.axes_[1];
+#endif 
   ordered_b_ = s.ordered_b_;
 }
 
diff -urN ../lilypond-1.2.0/lily/includable-lexer.cc ./lily/includable-lexer.cc
--- ../lilypond-1.2.0/lily/includable-lexer.cc	Sun Jul 18 23:44:37 1999
+++ ./lily/includable-lexer.cc	Mon Aug 16 09:37:51 1999
@@ -107,7 +107,7 @@
 }
 
 char const*
-Includable_lexer::here_ch_C ()
+Includable_lexer::here_ch_C () const
 {
   if (include_stack_.empty ())
     return 0;
diff -urN ../lilypond-1.2.0/lily/include/bar-align-engraver.hh ./lily/include/bar-align-engraver.hh
--- ../lilypond-1.2.0/lily/include/bar-align-engraver.hh	Tue Feb  9 11:45:50 1999
+++ ./lily/include/bar-align-engraver.hh	Thu Jan  1 01:00:00 1970
@@ -1,13 +0,0 @@
-/*
-  bar-align-engraver.hh -- declare 
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef BAR_ALIGN_GRAV_HH
-#define BAR_ALIGN_GRAV_HH
-
-#endif // BAR_ALIGN_GRAV_HH
diff -urN ../lilypond-1.2.0/lily/include/bar-script-engraver.hh ./lily/include/bar-script-engraver.hh
--- ../lilypond-1.2.0/lily/include/bar-script-engraver.hh	Mon Jun 28 10:38:35 1999
+++ ./lily/include/bar-script-engraver.hh	Mon Aug 16 09:37:51 1999
@@ -18,6 +18,8 @@
  */
 class Bar_script_engraver : public Engraver
 {
+public:
+  VIRTUAL_COPY_CONS(Translator);
 protected:
   Staff_side_item* staff_side_p_;
   Text_item* text_p_;
diff -urN ../lilypond-1.2.0/lily/include/beam-swallow-trans.hh ./lily/include/beam-swallow-trans.hh
--- ../lilypond-1.2.0/lily/include/beam-swallow-trans.hh	Tue Feb  9 11:45:50 1999
+++ ./lily/include/beam-swallow-trans.hh	Thu Jan  1 01:00:00 1970
@@ -1,15 +0,0 @@
-/*   
-  beam-swallow-trans.hh -- declare 
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  
- */
-
-#ifndef BEAM_SWALLOW_TRANS_HH
-#define BEAM_SWALLOW_TRANS_HH
-
-
-#endif /* BEAM_SWALLOW_TRANS_HH */
-
diff -urN ../lilypond-1.2.0/lily/include/chord.hh ./lily/include/chord.hh
--- ../lilypond-1.2.0/lily/include/chord.hh	Tue Feb  9 11:45:50 1999
+++ ./lily/include/chord.hh	Mon Aug 16 09:37:51 1999
@@ -27,7 +27,7 @@
   int find_tonic_i () const;
   int find_pitch_i (Musical_pitch p) const;
   int find_notename_i (Musical_pitch p) const;
-  void find_additions_and_subtractions(Array<Musical_pitch>* add_arr_p, Array<Musical_pitch>* sub_arr_p);
+  void find_additions_and_subtractions(Array<Musical_pitch>* add_arr_p, Array<Musical_pitch>* sub_arr_p) const;
 
   Array<Musical_pitch> pitch_arr_;
 };
diff -urN ../lilypond-1.2.0/lily/include/dynamic-engraver.hh ./lily/include/dynamic-engraver.hh
--- ../lilypond-1.2.0/lily/include/dynamic-engraver.hh	Tue Feb  9 11:45:50 1999
+++ ./lily/include/dynamic-engraver.hh	Thu Jan  1 01:00:00 1970
@@ -1,13 +0,0 @@
-/*
-  dynamic-engraver.hh -- declare Dynamic_engraver
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef DYNAMIC_GRAV_HH
-#define DYNAMIC_GRAV_HH
-
-#endif // DYNAMIC_GRAV_HH
diff -urN ../lilypond-1.2.0/lily/include/includable-lexer.hh ./lily/include/includable-lexer.hh
--- ../lilypond-1.2.0/lily/include/includable-lexer.hh	Tue Feb  9 11:45:50 1999
+++ ./lily/include/includable-lexer.hh	Mon Aug 16 09:37:51 1999
@@ -46,7 +46,7 @@
   void new_input (String name, String data, Sources*);
 
   void add_lexed_char (int);
-  char const * here_ch_C ();
+  char const * here_ch_C () const;
 };
 
 
diff -urN ../lilypond-1.2.0/lily/include/lily-guile.hh ./lily/include/lily-guile.hh
--- ../lilypond-1.2.0/lily/include/lily-guile.hh	Wed Jul 14 16:41:00 1999
+++ ./lily/include/lily-guile.hh	Mon Aug 16 09:37:51 1999
@@ -15,6 +15,8 @@
 #include <libguile.h>
 #include "direction.hh"
 
+SCM ly_ch_C_to_scm (char const*c);
+SCM ly_ch_C_eval_scm (char const*c);
 SCM ly_symbol (String name);
 String symbol_to_string (SCM);
 SCM ly_set_scm (String name , SCM val);
diff -urN ../lilypond-1.2.0/lily/include/musical-request.hh ./lily/include/musical-request.hh
--- ../lilypond-1.2.0/lily/include/musical-request.hh	Thu Jul 22 17:46:19 1999
+++ ./lily/include/musical-request.hh	Mon Aug 16 09:37:51 1999
@@ -24,7 +24,7 @@
   Duration duration_;
   virtual void do_print () const;
 
-  bool do_equal_b (Request*) const;
+  bool do_equal_b (Request const*) const;
   void compress (Moment);
   virtual Moment length_mom () const;
   static int compare (Rhythmic_req const&,Rhythmic_req const&);
@@ -60,7 +60,7 @@
 public:
   String articulation_str_;
 protected:
-  virtual bool do_equal_b (Request*) const;
+  virtual bool do_equal_b (Request const*) const;
   virtual void do_print () const;
   VIRTUAL_COPY_CONS(Music);
 };
@@ -73,7 +73,7 @@
   String style_str_;
 protected:
   VIRTUAL_COPY_CONS(Music);
-  virtual bool do_equal_b (Request*)const;
+  virtual bool do_equal_b (Request const*)const;
   virtual void do_print () const;
 };
 
@@ -88,7 +88,7 @@
 protected:
   /// transpose. #delta# is relative to central c.
   virtual void transpose (Musical_pitch delta);
-  virtual bool do_equal_b (Request*) const;
+  virtual bool do_equal_b (Request const*) const;
   virtual void do_print () const;
   VIRTUAL_COPY_CONS(Music);
 };
@@ -110,7 +110,7 @@
   Note_req();
 protected:
   virtual void do_print () const;
-  bool do_equal_b (Request*) const;
+  bool do_equal_b (Request const*) const;
   VIRTUAL_COPY_CONS(Music);
 };
 
diff -urN ../lilypond-1.2.0/lily/include/request.hh ./lily/include/request.hh
--- ../lilypond-1.2.0/lily/include/request.hh	Wed Jul 28 14:52:46 1999
+++ ./lily/include/request.hh	Mon Aug 16 09:37:51 1999
@@ -28,9 +28,9 @@
 public:
   virtual ~Request(){}
   VIRTUAL_COPY_CONS(Music);
-  bool equal_b (Request*) const;
+  bool equal_b (Request const*) const;
 protected:
-  virtual bool do_equal_b (Request*) const;
+  virtual bool do_equal_b (Request const*) const;
   virtual void do_print() const;
 };
 
@@ -57,7 +57,7 @@
   
   Span_req();
 protected:
-  virtual bool do_equal_b (Request*) const;
+  virtual bool do_equal_b (Request const*) const;
   virtual void do_print() const;
   VIRTUAL_COPY_CONS(Music);
 };
diff -urN ../lilypond-1.2.0/lily/include/type-swallow-trans.hh ./lily/include/type-swallow-trans.hh
--- ../lilypond-1.2.0/lily/include/type-swallow-trans.hh	Tue Feb  9 11:45:50 1999
+++ ./lily/include/type-swallow-trans.hh	Thu Jan  1 01:00:00 1970
@@ -1,38 +0,0 @@
-/*
-  type-swallow-engraver.hh -- declare Type_swallow_translator
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef TYPESWALLOW_GRAV_HH
-#define TYPESWALLOW_GRAV_HH
-
-#include "translator.hh"
-
-/** eat a certain type of request.
-    (Duh, it's good for your skin)
- */
-class Type_swallow_translator : public virtual Translator
-{
-protected:
-  String swallow_str_;
-  bool do_try_music (Music*);
-public:  
-  VIRTUAL_COPY_CONS(Translator);
-};
-
-#define DECLARE_REQUEST_SWALLOWER(TYPE)  \
-struct TYPE ## _swallow_translator : public Type_swallow_translator {\
-  TYPE ## _swallow_translator() { \
-      swallow_str_ =  #TYPE;\
-  }\
-  \
-  VIRTUAL_COPY_CONS(Translator);\
-};\
-ADD_THIS_TRANSLATOR(TYPE ## _swallow_translator);\
-
-#endif // TYPESWALLOW_GRAV_HH
-
diff -urN ../lilypond-1.2.0/lily/include/type-swallow-translator.hh ./lily/include/type-swallow-translator.hh
--- ../lilypond-1.2.0/lily/include/type-swallow-translator.hh	Thu Jan  1 01:00:00 1970
+++ ./lily/include/type-swallow-translator.hh	Mon Aug 16 09:37:51 1999
@@ -0,0 +1,38 @@
+/*
+  type-swallow-engraver.hh -- declare Type_swallow_translator
+
+  source file of the GNU LilyPond music typesetter
+
+  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+*/
+
+
+#ifndef TYPESWALLOW_GRAV_HH
+#define TYPESWALLOW_GRAV_HH
+
+#include "translator.hh"
+
+/** eat a certain type of request.
+    (Duh, it's good for your skin)
+ */
+class Type_swallow_translator : public virtual Translator
+{
+protected:
+  String swallow_str_;
+  bool do_try_music (Music*);
+public:  
+  VIRTUAL_COPY_CONS(Translator);
+};
+
+#define DECLARE_REQUEST_SWALLOWER(TYPE)  \
+struct TYPE ## _swallow_translator : public Type_swallow_translator {\
+  TYPE ## _swallow_translator() { \
+      swallow_str_ =  #TYPE;\
+  }\
+  \
+  VIRTUAL_COPY_CONS(Translator);\
+};\
+ADD_THIS_TRANSLATOR(TYPE ## _swallow_translator);\
+
+#endif // TYPESWALLOW_GRAV_HH
+
diff -urN ../lilypond-1.2.0/lily/key-engraver.cc ./lily/key-engraver.cc
--- ../lilypond-1.2.0/lily/key-engraver.cc	Thu Jul 22 11:57:35 1999
+++ ./lily/key-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -92,7 +92,7 @@
       if (def)
 	{
 	  item_p_->set_elt_property (visibility_lambda_scm_sym,
-				    gh_eval_str ("postbreak_only_visibility"));
+				    ly_ch_C_eval_scm ("postbreak_only_visibility"));
 	}
     }
 
diff -urN ../lilypond-1.2.0/lily/lily-guile.cc ./lily/lily-guile.cc
--- ../lilypond-1.2.0/lily/lily-guile.cc	Sun Jul 18 23:41:42 1999
+++ ./lily/lily-guile.cc	Mon Aug 16 09:37:51 1999
@@ -19,6 +19,20 @@
 #include "file-path.hh"
 #include "debug.hh"
 
+SCM
+ly_ch_C_to_scm (char const*c)
+{
+  // this all really sucks, guile should take char const* arguments!
+  return gh_str02scm ((char*)c);
+}
+
+SCM
+ly_ch_C_eval_scm (char const*c)
+{
+  // this all really sucks, guile should take char const* arguments!
+  return gh_eval_str ((char*)c);
+}
+
 /*
   scm_m_quote doesn't use any env, but needs one for a good signature in GUILE.
 
@@ -41,7 +55,7 @@
 SCM
 ly_symbol (String name)
 {
-  return gh_car (scm_intern (name.ch_C(), name.length_i()));
+  return gh_car (scm_intern ((char*)name.ch_C(), name.length_i()));
 }
 
 String
@@ -53,7 +67,7 @@
 SCM
 ly_set_scm (String name, SCM val)
 {
-  return scm_sysintern (name.ch_C(), val);
+  return scm_sysintern ((char*)name.ch_C(), val);
   
 }
 
@@ -78,7 +92,7 @@
 
   Simple_file_storage f(s);
   
-  gh_eval_str ((char *) f.ch_C());
+  ly_ch_C_eval_scm ((char *) f.ch_C());
   *mlog << ']' << flush;  
 }
 
@@ -100,7 +114,7 @@
 
 
   Simple_file_storage f(s);
-  return gh_str02scm (f.ch_C());
+  return ly_ch_C_to_scm (f.ch_C());
 }
 
 void
@@ -152,8 +166,8 @@
 void
 init_functions ()
 {
-  scm_make_gsubr ("ly-warn", 1, 0, 0, ly_warning);
-  scm_make_gsubr ("ly-gulp-file", 1,0, 0, ly_gulp_file);
+  scm_make_gsubr ("ly-warn", 1, 0, 0, (SCM(*)(...))ly_warning);
+  scm_make_gsubr ("ly-gulp-file", 1,0, 0, (SCM(*)(...))ly_gulp_file);
 }
 
 extern void init_symbols ();
diff -urN ../lilypond-1.2.0/lily/lookup.cc ./lily/lookup.cc
--- ../lilypond-1.2.0/lily/lookup.cc	Wed Jul 21 12:14:28 1999
+++ ./lily/lookup.cc	Mon Aug 16 09:55:29 1999
@@ -132,6 +132,8 @@
 {
   if (j > 2)
     j = 2;
+  if (type == "harmonic" || type == "cross")
+    j = 2;
 
   return afm_find (String ("noteheads-") + to_str (j) + type);
 }
@@ -393,7 +395,7 @@
   /*
     UGH.
   */
-  SCM l = gh_eval_str (("(style-to-cmr \"" + style + "\")").ch_C());
+  SCM l = ly_ch_C_eval_scm (("(style-to-cmr \"" + style + "\")").ch_C());
   if (l != SCM_BOOL_F)
     {
       style = ly_scm2string (SCM_CDR(l)) +to_str  ((int)font_h);
@@ -422,7 +424,7 @@
 	    brace_count ++;
 	  else if (text[i] == '}')
 	    brace_count --;
-          Character_metric *c = afm_l->get_char ((unsigned char)text[i],false);
+          Character_metric *c = (Character_metric*)afm_l->get_char ((unsigned char)text[i],false);
 
 	  w += c->dimensions()[X_AXIS].length ();
 	  ydims.unite (c->dimensions()[Y_AXIS]);
@@ -449,7 +451,7 @@
 
   
   Atom at  (gh_list (text_scm_sym,
-		     gh_str02scm (text.ch_C()),
+		     ly_ch_C_to_scm (text.ch_C()),
 		     SCM_UNDEFINED));
   at.font_ = ly_symbol (style);
   at.magn_ = gh_int2scm (font_mag);
diff -urN ../lilypond-1.2.0/lily/main.cc ./lily/main.cc
--- ../lilypond-1.2.0/lily/main.cc	Sun Jul 18 23:41:42 1999
+++ ./lily/main.cc	Mon Aug 16 09:37:51 1999
@@ -254,7 +254,7 @@
 
 
 void
-main_prog (int argc, char **argv)
+main_prog (int, char**)
 {
   /*
     need to do this first. Engravers use lily.scm contents.
@@ -388,7 +388,7 @@
 #ifdef WINNT
   gh_enter (argc, argv, main_prog);
 #else
-  gh_enter (argc, argv, (void(*)())main_prog);
+  gh_enter (argc, argv, (void(*)(...))main_prog);
 #endif
 
   return 0;			// unreachable
diff -urN ../lilypond-1.2.0/lily/mark-engraver.cc ./lily/mark-engraver.cc
--- ../lilypond-1.2.0/lily/mark-engraver.cc	Mon Jun 28 10:38:36 1999
+++ ./lily/mark-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -18,7 +18,7 @@
   mark_req_l_ = 0;
   axis_ = Y_AXIS;
   type_ = "mark";
-  visibility_lambda_ = gh_eval_str ("mark-visibility");
+  visibility_lambda_ = ly_ch_C_eval_scm ("mark-visibility");
 }
 
 void
diff -urN ../lilypond-1.2.0/lily/midi-item.cc ./lily/midi-item.cc
--- ../lilypond-1.2.0/lily/midi-item.cc	Wed Jul  7 14:02:00 1999
+++ ./lily/midi-item.cc	Mon Aug 16 09:55:29 1999
@@ -437,13 +437,10 @@
   channel_i_ = n->channel_i_;
 
   // Anybody who hears any difference, or knows how this works?
-  
-  // 0x64 is supposed to be neutral, but let's try
-  //aftertouch_byte_ = 0x64;
+  //  0 should definitely be avoided, notes stick on some sound cards.
+  // 64 is supposed to be neutral
+  aftertouch_byte_ = 64;
 
-  static int i = 0;
-  aftertouch_byte_ = i;
-  i += 0x10;
 }
 
 String
diff -urN ../lilypond-1.2.0/lily/multi-measure-rest-engraver.cc ./lily/multi-measure-rest-engraver.cc
--- ../lilypond-1.2.0/lily/multi-measure-rest-engraver.cc	Mon Jul  5 11:35:45 1999
+++ ./lily/multi-measure-rest-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -75,7 +75,7 @@
       mmrest_p_ = new Multi_measure_rest;
       if(dynamic_cast<Repetitions_req *> (multi_measure_req_l_))
 	mmrest_p_->set_elt_property (alt_symbol_scm_sym, 
-				     gh_str02scm("scripts-repeatsign"));
+				     ly_ch_C_to_scm ("scripts-repeatsign"));
       announce_element (Score_element_info (mmrest_p_, multi_measure_req_l_));
       start_measure_i_ = time->bars_i_;
     }
diff -urN ../lilypond-1.2.0/lily/musical-request.cc ./lily/musical-request.cc
--- ../lilypond-1.2.0/lily/musical-request.cc	Wed Jul 28 14:53:02 1999
+++ ./lily/musical-request.cc	Mon Aug 16 09:37:51 1999
@@ -47,9 +47,9 @@
 
 
 bool
-Melodic_req::do_equal_b (Request*r) const
+Melodic_req::do_equal_b (Request const* r) const
 {
-  Melodic_req* m= dynamic_cast <Melodic_req *> (r);
+  Melodic_req const* m= dynamic_cast <Melodic_req const*> (r);
   return m&& !compare (*m, *this);
 }
 
@@ -75,9 +75,9 @@
 }
 
 bool
-Rhythmic_req::do_equal_b (Request*r) const
+Rhythmic_req::do_equal_b (Request const* r) const
 {
-  Rhythmic_req* rh = dynamic_cast <Rhythmic_req *> (r);
+  Rhythmic_req const* rh = dynamic_cast <Rhythmic_req const*> (r);
 
   return rh && !compare (*this, *rh);
 }
@@ -114,9 +114,9 @@
 
 
 bool
-Note_req::do_equal_b (Request*r) const
+Note_req::do_equal_b (Request const* r) const
 {
-  Note_req *n = dynamic_cast<Note_req*> (r);
+  Note_req const* n = dynamic_cast<Note_req const*> (r);
   return n&& Rhythmic_req::do_equal_b (n) && Melodic_req::do_equal_b (n);
 }
 
@@ -148,9 +148,9 @@
 
 
 bool
-Span_req::do_equal_b (Request*r) const
+Span_req::do_equal_b (Request const*r) const
 {
-  Span_req * s = dynamic_cast <Span_req *> (r);
+  Span_req const* s = dynamic_cast <Span_req const*> (r);
   return s && span_dir_ == s->span_dir_;
 }
 
@@ -180,9 +180,9 @@
 }
 
 bool
-Text_script_req::do_equal_b (Request *r) const
+Text_script_req::do_equal_b (Request const* r) const
 {
-  Text_script_req * t  = dynamic_cast<Text_script_req*>(r);
+  Text_script_req const* t  = dynamic_cast<Text_script_req const*> (r);
   return t && t->text_str_ == text_str_ && t->style_str_ == style_str_;
 }
 
@@ -193,9 +193,9 @@
 }
 
 bool
-Articulation_req::do_equal_b (Request*r) const
+Articulation_req::do_equal_b (Request const* r) const
 {
-  Articulation_req * a = dynamic_cast<Articulation_req*>(r);
+  Articulation_req const* a = dynamic_cast<Articulation_req const*> (r);
   
   return a &&  articulation_str_ == a->articulation_str_;
 }
diff -urN ../lilypond-1.2.0/lily/my-lily-lexer.cc ./lily/my-lily-lexer.cc
--- ../lilypond-1.2.0/lily/my-lily-lexer.cc	Wed Jul 28 13:14:47 1999
+++ ./lily/my-lily-lexer.cc	Mon Aug 16 09:37:51 1999
@@ -238,6 +238,6 @@
 Input
 My_lily_lexer::here_input () const
 {
-  Source_file * f_l= source_file_l();
-  return Input (f_l, here_ch_C());
+  Source_file * f_l= source_file_l ();
+  return Input (f_l, (char*)here_ch_C ());
 }
diff -urN ../lilypond-1.2.0/lily/note-column.cc ./lily/note-column.cc
--- ../lilypond-1.2.0/lily/note-column.cc	Mon Jul  5 11:32:19 1999
+++ ./lily/note-column.cc	Mon Aug 16 09:37:51 1999
@@ -63,7 +63,7 @@
   if (stem_l_)
     return stem_l_->dir_;
   else if (head_l_arr_.size ())
-    return sign (head_positions_interval().center ());
+    return (Direction)sign (head_positions_interval().center ());
 
   programming_error ("Note column without heads and stem!");
   return CENTER;
diff -urN ../lilypond-1.2.0/lily/note-head.cc ./lily/note-head.cc
--- ../lilypond-1.2.0/lily/note-head.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/note-head.cc	Mon Aug 16 09:37:51 1999
@@ -78,7 +78,7 @@
 
   if (streepjes_i) 
     {
-      Direction dir = sign (position_i_);
+      Direction dir = (Direction)sign (position_i_);
       Interval hd = out->dim_[X_AXIS];
       Real hw = hd.length ()/4;
       
diff -urN ../lilypond-1.2.0/lily/note-heads-engraver.cc ./lily/note-heads-engraver.cc
--- ../lilypond-1.2.0/lily/note-heads-engraver.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/note-heads-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -58,7 +58,7 @@
 	  Scalar dir = get_property ("verticalDirection",0);
 	  if (dir.isdir_b())
 	    {
-	      d->resolve_dir_ = int (dir);
+	      d->resolve_dir_ = (Direction)(int)dir;
 	    }
 	  
 	  announce_element (Score_element_info (d,0));
@@ -70,7 +70,7 @@
 	note_p->set_elt_property (transparent_scm_sym, SCM_BOOL_T);
       else 
         note_p->set_elt_property (style_scm_sym,
-				  gh_str02scm (noteheadstyle.ch_C()));
+				  ly_ch_C_to_scm (noteheadstyle.ch_C()));
 
       
       Score_element_info itinf (note_p,note_req_l);
diff -urN ../lilypond-1.2.0/lily/paper-outputter.cc ./lily/paper-outputter.cc
--- ../lilypond-1.2.0/lily/paper-outputter.cc	Sun Jul 11 21:23:37 1999
+++ ./lily/paper-outputter.cc	Mon Aug 16 09:37:51 1999
@@ -57,10 +57,10 @@
   if (safe_global_b)
     {
       ly_set_scm ("security-paranoia", SCM_BOOL_T);
-      //      gh_eval_str ("(set! security-paranoia #t)");
+      //      ly_ch_C_eval_scm ("(set! security-paranoia #t)");
     }
   String s = String ("(eval (") + output_global_ch + "-scm 'all-definitions))";
-  gh_eval_str (s.ch_C ());
+  ly_ch_C_eval_scm (s.ch_C ());
   
   String creator;
   if (no_timestamps_global_b)
@@ -80,8 +80,8 @@
     }
 
   SCM args_scm = 
-    gh_list (gh_str02scm (creator.ch_l ()),
-	     gh_str02scm (generate.ch_l ()), SCM_UNDEFINED);
+    gh_list (ly_ch_C_to_scm (creator.ch_l ()),
+	     ly_ch_C_to_scm (generate.ch_l ()), SCM_UNDEFINED);
 
 #ifndef NPRINT
   DOUT << "output_header\n";
@@ -140,7 +140,7 @@
       if (i->font_)
 	{
 	  output_scheme (gh_list (ly_symbol ("select-font"),
-				  gh_str02scm (symbol_to_string (i->font_).ch_C()),
+				  ly_ch_C_to_scm (symbol_to_string (i->font_).ch_C()),
 				  SCM (i->magn_),
 				  SCM_UNDEFINED));
 	}
@@ -241,7 +241,7 @@
 {
   SCM scm = gh_list (ly_symbol ("font-def"),
 		     gh_int2scm (i),
-		     gh_str02scm (str.ch_l ()),
+		     ly_ch_C_to_scm (str.ch_l ()),
 		     SCM_UNDEFINED);
 
   output_scheme (scm);
@@ -252,8 +252,8 @@
 {
   
   SCM scm = gh_list (ly_symbol ("lily-def"),
-		     gh_str02scm (k.ch_l ()),
-		     gh_str02scm (to_str(v).ch_l ()),
+		     ly_ch_C_to_scm (k.ch_l ()),
+		     ly_ch_C_to_scm (to_str(v).ch_l ()),
 		     SCM_UNDEFINED);
   output_scheme (scm);
 
@@ -265,20 +265,20 @@
 {
   
   SCM scm = gh_list (ly_symbol ("lily-def"),
-		     gh_str02scm (k.ch_l ()),
-		     gh_str02scm (v.ch_l ()),
+		     ly_ch_C_to_scm (k.ch_l ()),
+		     ly_ch_C_to_scm (v.ch_l ()),
 		     SCM_UNDEFINED);
   output_scheme (scm);
 
-  gh_define (k.ch_l (), gh_str02scm (v.ch_l ()));
+  gh_define (k.ch_l (), ly_ch_C_to_scm (v.ch_l ()));
 }
 
 void
 Paper_outputter::output_int_def (String k, int v)
 {
   SCM scm = gh_list (ly_symbol ("lily-def"),
-		     gh_str02scm (k.ch_l ()),
-		     gh_str02scm (to_str (v).ch_l ()),
+		     ly_ch_C_to_scm (k.ch_l ()),
+		     ly_ch_C_to_scm (to_str (v).ch_l ()),
 		     SCM_UNDEFINED);
   output_scheme (scm);
 
diff -urN ../lilypond-1.2.0/lily/parser.yy ./lily/parser.yy
--- ../lilypond-1.2.0/lily/parser.yy	Tue Jul 27 14:21:20 1999
+++ ./lily/parser.yy	Mon Aug 16 09:37:58 1999
@@ -52,7 +52,8 @@
 void
 print_mudela_versions (ostream &os)
 {
-  os << "Oldest supported input version:   " << oldest_version.str () << endl;
+  os << _f ("Oldest supported input version: %s", oldest_version.str ()) 
+    << endl;
 }
 // needed for bison.simple's malloc() and free()
 #include <malloc.h>
@@ -427,6 +428,9 @@
 translator_spec_body:
 	TRANS_IDENTIFIER	{
 		$$ = $1->access_content_Translator (true);
+		Translator_group * tg = dynamic_cast<Translator_group*> ($$);
+		if (!tg)
+			THIS->parser_error (_("Need a translator group for a context"));
 		$$-> set_spot (THIS->here_input ());
 	}
 	| TYPE STRING semicolon	{
@@ -456,8 +460,10 @@
 
 		delete $4;
 		/* ugh*/
-		Translator_group * tr = dynamic_cast<Translator_group*>($$);
-		tr->set_property (*$2, str);
+		Translator_group* tg = dynamic_cast<Translator_group*> ($$);
+		if (!tg)
+			THIS->parser_error (_("Need a translator group for a context"));
+		tg->set_property (*$2, str);
 	}
 	| translator_spec_body NAME STRING semicolon {
 		$$->type_str_ = *$3;
diff -urN ../lilypond-1.2.0/lily/request.cc ./lily/request.cc
--- ../lilypond-1.2.0/lily/request.cc	Fri May 28 10:16:01 1999
+++ ./lily/request.cc	Mon Aug 16 09:37:51 1999
@@ -15,13 +15,13 @@
 }
 
 bool
-Request::equal_b (Request *r) const
+Request::equal_b (Request const* r) const
 {
   return r->do_equal_b (this) || this->do_equal_b (r) ;
 }
 
 bool
-Request::do_equal_b (Request*) const
+Request::do_equal_b (Request const*) const
 {
   return true;
 }
diff -urN ../lilypond-1.2.0/lily/rest-engraver.cc ./lily/rest-engraver.cc
--- ../lilypond-1.2.0/lily/rest-engraver.cc	Fri Jun  4 12:54:22 1999
+++ ./lily/rest-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -60,7 +60,7 @@
 	  String reststyle = get_property ("restStyle", 0);
 	  if (reststyle.length_i ())
 	    rest_p_->set_elt_property (style_scm_sym,
-				       gh_str02scm (reststyle.ch_C()));
+				       ly_ch_C_to_scm (reststyle.ch_C()));
 	}
       announce_element (Score_element_info (rest_p_, rest_req_l_));
     }
diff -urN ../lilypond-1.2.0/lily/score-element.cc ./lily/score-element.cc
--- ../lilypond-1.2.0/lily/score-element.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/score-element.cc	Mon Aug 16 09:37:51 1999
@@ -161,13 +161,13 @@
 {
   if (!lookup_l_)
     {
-      Score_element * me = (Score_element*)this;
-      SCM sz = me->remove_elt_property (fontsize_scm_sym);
+      Score_element * urg = (Score_element*)this;
+      SCM sz = urg->remove_elt_property (fontsize_scm_sym);
       int i = (sz != SCM_BOOL_F)
 	? gh_scm2int (SCM_CDR (sz))
 	: 0;
 
-      me->lookup_l_ =  pscore_l_->paper_l_->lookup_l (i);
+      urg->lookup_l_ =  (Lookup*)pscore_l_->paper_l_->lookup_l (i);
     }
   return lookup_l_;
 }
diff -urN ../lilypond-1.2.0/lily/script-engraver.cc ./lily/script-engraver.cc
--- ../lilypond-1.2.0/lily/script-engraver.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/script-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -42,7 +42,7 @@
       Articulation_req* l=script_req_l_arr_[i];
 
 
-      SCM list = gh_eval_str (("(articulation-to-scriptdef \"" + l->articulation_str_ + "\")").ch_C());
+      SCM list = ly_ch_C_eval_scm (("(articulation-to-scriptdef \"" + l->articulation_str_ + "\")").ch_C());
       
       if (list == SCM_BOOL_F)
 	{
@@ -67,13 +67,13 @@
       SCM priority = SCM_CAR(list);
 
       if (relative_stem_dir)
-	  ss->relative_dir_ = relative_stem_dir;
+	  ss->relative_dir_ = (Direction)relative_stem_dir;
       else
-	  ss->dir_ = force_dir;
+	  ss->dir_ = (Direction)force_dir;
 
       Scalar dir_prop (get_property ("articulationScriptVerticalDirection", 0));
       if (dir_prop.isnum_b () && (int) dir_prop != CENTER)
-	ss->dir_ = (int) dir_prop;
+	ss->dir_ = (Direction)(int)dir_prop;
 
       if (l->dir_)
 	ss->dir_ = l->dir_;
diff -urN ../lilypond-1.2.0/lily/staff-margin-engraver.cc ./lily/staff-margin-engraver.cc
--- ../lilypond-1.2.0/lily/staff-margin-engraver.cc	Mon Jun 28 10:38:36 1999
+++ ./lily/staff-margin-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -18,8 +18,7 @@
 {
   axis_ = X_AXIS;
   type_ = "margin";
-  visibility_lambda_
-    = gh_eval_str ("postbreak_only_visibility");
+  visibility_lambda_ = ly_ch_C_eval_scm ("postbreak_only_visibility");
 }
 
 
diff -urN ../lilypond-1.2.0/lily/stem-engraver.cc ./lily/stem-engraver.cc
--- ../lilypond-1.2.0/lily/stem-engraver.cc	Wed Jun 30 19:36:51 1999
+++ ./lily/stem-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -104,7 +104,7 @@
 	  stem_p_->set_elt_property (dir_forced_scm_sym, SCM_BOOL_T);
 	}
 
-      Translator_group const *which;
+      Translator_group* which;
       prop = get_property ("stemLeftBeamCount", &which);
       if (prop.isnum_b ())
 	{
@@ -127,7 +127,7 @@
       prop = get_property ("stemStyle", 0);
       if (prop.to_bool ())
 	{
-	  stem_p_->set_elt_property (style_scm_sym, gh_str02scm (prop.ch_C()));
+	  stem_p_->set_elt_property (style_scm_sym, ly_ch_C_to_scm (prop.ch_C()));
 	}
       
       typeset_element(stem_p_);
diff -urN ../lilypond-1.2.0/lily/stem-staff-side.cc ./lily/stem-staff-side.cc
--- ../lilypond-1.2.0/lily/stem-staff-side.cc	Mon Jul 26 02:23:19 1999
+++ ./lily/stem-staff-side.cc	Mon Aug 16 09:37:51 1999
@@ -41,7 +41,7 @@
 Direction
 Stem_staff_side_item::get_default_direction () const
 {
-  return relative_dir_ * stem_l_->dir_;
+  return (Direction)(relative_dir_ * stem_l_->dir_);
 }
 
 void
diff -urN ../lilypond-1.2.0/lily/tie.cc ./lily/tie.cc
--- ../lilypond-1.2.0/lily/tie.cc	Wed Jul 21 15:17:14 1999
+++ ./lily/tie.cc	Mon Aug 16 09:37:51 1999
@@ -44,7 +44,7 @@
     If dir is not determined: inverse of stem: down
     (see stem::get_default_dir ())
    */
-  Direction neutral_dir = (int)paper_l ()->get_var ("stem_default_neutral_direction");
+  Direction neutral_dir = (Direction)(int)paper_l ()->get_var ("stem_default_neutral_direction");
   return (m == 0) ? other_dir (neutral_dir) : (m < 0) ? DOWN : UP;
 }
 
diff -urN ../lilypond-1.2.0/lily/transposed-music.cc ./lily/transposed-music.cc
--- ../lilypond-1.2.0/lily/transposed-music.cc	Sun Jul 18 23:41:42 1999
+++ ./lily/transposed-music.cc	Mon Aug 16 09:37:58 1999
@@ -28,7 +28,7 @@
 Transposed_music::to_relative_octave (Musical_pitch p)
 {
 #if 0				// Mats?
-    warning (_("Will ignore \relative for transposed music"));
+    warning (_ ("Will ignore \\relative for transposed music"));
 #endif
   return p;
 }
diff -urN ../lilypond-1.2.0/lily/type-swallow-trans.cc ./lily/type-swallow-trans.cc
--- ../lilypond-1.2.0/lily/type-swallow-trans.cc	Mon May 17 11:22:24 1999
+++ ./lily/type-swallow-trans.cc	Thu Jan  1 01:00:00 1970
@@ -1,23 +0,0 @@
-/*
-  type-swallow-trans.cc -- implement Type_swallow_translator
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include "type-swallow-trans.hh"
-#include "musical-request.hh"
-
-
-bool
-Type_swallow_translator::do_try_music (Music*r)
-{
-  if (classname (r) == swallow_str_)
-      return true;
-  return false;
-}
-
-
-
-DECLARE_REQUEST_SWALLOWER(Skip_req);
diff -urN ../lilypond-1.2.0/lily/type-swallow-translator.cc ./lily/type-swallow-translator.cc
--- ../lilypond-1.2.0/lily/type-swallow-translator.cc	Thu Jan  1 01:00:00 1970
+++ ./lily/type-swallow-translator.cc	Mon Aug 16 09:37:51 1999
@@ -0,0 +1,23 @@
+/*
+  type-swallow-translator.cc -- implement Type_swallow_translator
+
+  source file of the GNU LilyPond music typesetter
+
+  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+*/
+
+#include "type-swallow-translator.hh"
+#include "musical-request.hh"
+
+
+bool
+Type_swallow_translator::do_try_music (Music*r)
+{
+  if (classname (r) == swallow_str_)
+      return true;
+  return false;
+}
+
+
+
+DECLARE_REQUEST_SWALLOWER(Skip_req);
diff -urN ../lilypond-1.2.0/lily/vertical-align-engraver.cc ./lily/vertical-align-engraver.cc
--- ../lilypond-1.2.0/lily/vertical-align-engraver.cc	Wed Jul 14 01:58:04 1999
+++ ./lily/vertical-align-engraver.cc	Mon Aug 16 09:37:51 1999
@@ -47,7 +47,7 @@
   dist = get_property ("alignmentReference",0);
   if (dist.length_i () && dist.isnum_b ())
     {
-      valign_p_->align_dir_ = int (dist);
+      valign_p_->align_dir_ = (Direction)(int)dist;
     }
   valign_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
   typeset_element (valign_p_);
@@ -58,7 +58,9 @@
 bool
 Vertical_align_engraver::qualifies_b (Score_element_info i) const
 {
+#if 0
   Translator * t =   i.origin_trans_l_arr_[0];
+#endif
   int sz = i.origin_trans_l_arr_.size()  ;
 
 #if 0 
diff -urN ../lilypond-1.2.0/lily/volta-spanner.cc ./lily/volta-spanner.cc
--- ../lilypond-1.2.0/lily/volta-spanner.cc	Sun Jul 18 23:44:37 1999
+++ ./lily/volta-spanner.cc	Mon Aug 16 09:37:51 1999
@@ -36,9 +36,9 @@
   bool no_vertical_start = false;
   bool no_vertical_end = last_b_;
   Spanner *orig_span =  dynamic_cast<Spanner*> (original_l_);
-  if (orig_span && orig_span->broken_into_l_arr_[0] != this)
+  if (orig_span && (orig_span->broken_into_l_arr_[0] != (Spanner*)this))
     no_vertical_start = true;
-  if (orig_span && orig_span->broken_into_l_arr_.top () != this)
+  if (orig_span && (orig_span->broken_into_l_arr_.top () != (Spanner*)this))
     no_vertical_end = true;
   if (bar_arr_.top ()->type_str_.length_i () > 1)
     no_vertical_end = false;
diff -urN ../lilypond-1.2.0/ly/paper.ly ./ly/paper.ly
--- ../lilypond-1.2.0/ly/paper.ly	Mon Jan 25 10:50:40 1999
+++ ./ly/paper.ly	Mon Aug 16 09:55:29 1999
@@ -1,9 +1,13 @@
 % paper.ly
 
-linewidth20 = \hsize - 2.5 * \staffheight;
-textheight20 = \vsize - 5.0 * \staffheight;
-linewidth = \staffheight/20.0 * \linewidth20;
-textheight = \staffheight/20.0 * \textheight20;
+%% Why som complicated?  /MB
+%linewidth20 = \hsize - 2.5 * \staffheight;
+%textheight20 = \vsize - 5.0 * \staffheight;
+%linewidth = \staffheight/20.0 * \linewidth20;
+%textheight = \staffheight/20.0 * \textheight20;
+
+linewidth = \hsize - 2.\cm;
+textheight = \vsize - 4.\cm;
 
 indent = \linewidth / 14.0;
 
diff -urN ../lilypond-1.2.0/ly/params.ly ./ly/params.ly
--- ../lilypond-1.2.0/ly/params.ly	Mon Jul 26 11:30:20 1999
+++ ./ly/params.ly	Mon Aug 16 09:55:29 1999
@@ -232,7 +232,7 @@
 hyphen_minimum_length = 0.25*\font_normal;
 
 % Multi-measure rests
-mmrest_x_minimum = 2.0*\staffheight;
+mmrest_x_minimum = 1.4*\staffheight;
 
 
 % chop off this much when next to pp / ff sign.
@@ -253,7 +253,7 @@
 %{
  relative strength of space following breakable columns (eg. prefatory matter)
  %}
-breakable_column_space_strength = 8.0; 
+breakable_column_space_strength = 2.0; 
 
 % space after inline clefs and such get this much stretched
 decrease_nonmus_spacing_factor = 1.0 ;
diff -urN ../lilypond-1.2.0/make/toplevel.make.in ./make/toplevel.make.in
--- ../lilypond-1.2.0/make/toplevel.make.in	Wed Jul 28 14:42:44 1999
+++ ./make/toplevel.make.in	Mon Aug 16 11:32:32 1999
@@ -15,7 +15,7 @@
 
 SCRIPTS = configure aclocal.m4
 README_FILES = BUGS DEDICATION ANNOUNCE-0.1 ANNOUNCE-1.0 ANNOUNCE-1.2 \
- COPYING NEWS-0.1 NEWS-1.0 NEWS-0.0 NEWS-1.1  NEWS  TODO AIMS
+ COPYING NEWS-0.1 NEWS-1.0 NEWS-0.0 NEWS-1.1  NEWS TODO AIMS  ChangeLog
 README_TXT_FILES = README.txt AUTHORS.txt INSTALL.txt PATCHES.txt
 IN_FILES := $(wildcard *.in)
 EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES)  $(SCRIPTS) $(IN_FILES) TASKS
diff -urN ../lilypond-1.2.0/midi2ly/main.cc ./midi2ly/main.cc
--- ../lilypond-1.2.0/midi2ly/main.cc	Thu Jul 15 16:28:47 1999
+++ ./midi2ly/main.cc	Mon Aug 16 09:37:58 1999
@@ -62,13 +62,13 @@
   "  -k, --key=ACC[:MINOR]  set key: ACC +sharps/-flats; :1 minor\n"
   );
   cout << _ (
-  "  -n, --no-silly         assume no plets or double dots, smallest is 32\n"
+  "  -n, --no-silly         assume no tuplets or double dots, smallest is 32\n"
   );
   cout << _ (
   "  -o, --output=FILE      set FILE as default output\n"
   );
   cout << _ (
-  "  -p, --no-plets         assume no plets\n"
+  "  -p, --no-tuplets       assume no tuplets\n"
   );
   cout << _ (
   "  -q, --quiet            be quiet\n"
@@ -148,7 +148,7 @@
 	{1, "key", 'k'},
 	{0, "no-silly", 'n'},
 	{1, "output", 'o'},
-	{0, "no-plets", 'p'},
+	{0, "no-tuplets", 'p'},
 	{0, "quiet", 'q'},
 	{1, "smallest", 's'},
 	{0, "no-timestamps", 'T'},
diff -urN ../lilypond-1.2.0/mutopia/N.W.Gade/brass.ly ./mutopia/N.W.Gade/brass.ly
--- ../lilypond-1.2.0/mutopia/N.W.Gade/brass.ly	Wed Jul 28 14:58:48 1999
+++ ./mutopia/N.W.Gade/brass.ly	Mon Aug 16 09:55:29 1999
@@ -548,7 +548,9 @@
 trpIIhelp=\notes\relative c'' {
 \tiny
 
-s2.*32 |
+[c8.^"Oboe" ( d16] ) c2 |
+[c8. ( d16] ) c2 |
+s2.*30 |
 s2*9 |
 r4^"Clar. I" r8 c-. |
 [bes-. a-. g-. f-. ] |
diff -urN ../lilypond-1.2.0/mutopia/N.W.Gade/global.tex ./mutopia/N.W.Gade/global.tex
--- ../lilypond-1.2.0/mutopia/N.W.Gade/global.tex	Sun Jul 11 21:23:37 1999
+++ ./mutopia/N.W.Gade/global.tex	Mon Aug 16 09:55:29 1999
@@ -1,8 +1,8 @@
-\def\fetdef#1#2{%
-  \def#1{\hbox{\fetchar{#2}}}}
-\font\fetasixteen = feta16
-\def\fetchar#1{{\fetasixteen\char#1}}
-\input{feta20}         %%% Add lilypond-xxx/mf/out/ to TEXINPUTS
+%\def\fetdef#1#2{%
+%  \def#1{\hbox{\fetchar{#2}}}}
+%\font\fetasixteen = feta16
+%\def\fetchar#1{{\fetasixteen\char#1}}
+%\input{feta20}         %%% Add lilypond-xxx/mf/out/ to TEXINPUTS
 
 \newcommand{\okt}{$8^{va}$}
 
@@ -18,7 +18,7 @@
 \advance\topmargin-5mm
 \advance\headsep-4mm
 \addtolength{\textheight}{17mm}
-\advance\footskip-3mm
+\advance\footskip-5mm
 
 \usepackage{fancyheadings}
 \lhead{\textbf{\large\theinstrument}}
@@ -52,7 +52,7 @@
         \end{flushright}%
   \end{minipage}\par
   \parskip\saveparskip
-  {\flushleft{\Large\textbf\thepiece}\par}%
+  {\flushleft{\Large\textbf\thepiece}\\}%
 %  \leavevmode%
-  \enlargethispage*{5mm}%
+%  \enlargethispage*{7mm}%
 }
diff -urN ../lilypond-1.2.0/mutopia/N.W.Gade/parts.ly ./mutopia/N.W.Gade/parts.ly
--- ../lilypond-1.2.0/mutopia/N.W.Gade/parts.ly	Wed Jul 28 14:58:49 1999
+++ ./mutopia/N.W.Gade/parts.ly	Mon Aug 16 09:55:29 1999
@@ -19,15 +19,15 @@
 \include "strings.ly"
 
 my_paper = \paper {
-  textheight = 275.0 \mm;
+  textheight = 265.0 \mm;
   \translator {
     \OrchestralPartStaffContext
   }
   \translator { 
     \ScoreContext
     skipBars = 1;
-    markScriptPadding = "6.0";
-    barNumberScriptPadding = "11.0";
+    barNumberScriptPadding = "12.0";
+    markScriptPadding = "20.0";
     dynamicPadding = 3.0;
     textScriptPadding = 5.0;
     textStyle = "italic";
@@ -85,7 +85,7 @@
     \clarI
   >
   \header{
-    instrument = "Clarinetto I in B\\flat";
+    instrument = "Clarinetto I in B\\textflat";
   }
   \paper{
     \my_paper
@@ -103,7 +103,7 @@
     \clarII
   >
   \header{
-    instrument = "Clarinetto II in B\\flat";
+    instrument = "Clarinetto II in B\\textflat";
   }
   \paper{
     \my_paper
@@ -184,7 +184,7 @@
     \context Voice = help \trpIhelp
   >
   \header{
-    instrument = "Tromba I in B\\flat";
+    instrument = "Tromba I in B\\textflat";
   }
   \paper{
     \my_paper
@@ -205,7 +205,7 @@
     \context Voice = help \trpIIhelp
   >
   \header{
-    instrument = "Tromba II in B\\flat";
+    instrument = "Tromba II in B\\textflat";
   }
   \paper{
     \my_paper
diff -urN ../lilypond-1.2.0/mutopia/N.W.Gade/score.ly ./mutopia/N.W.Gade/score.ly
--- ../lilypond-1.2.0/mutopia/N.W.Gade/score.ly	Wed Jul 28 14:58:49 1999
+++ ./mutopia/N.W.Gade/score.ly	Mon Aug 16 09:55:29 1999
@@ -14,8 +14,7 @@
 \include "wood.ly"
 \include "brass.ly"
 \include "strings.ly"
-\include "paper16.ly";
-
+\include "paper16.ly"
 
 \score{ <
   \context StaffGroup = wood <
@@ -33,13 +32,13 @@
       \oboe
     >
     \context Voice = clarI <
-      \property Staff.instrument = "Clar. I in B\\flat  "
+      \property Staff.instrument = "Clar. I in B\\textflat  "
       \property Staff.instr = "Cl. I"
       \globalNoKey
       \clarI
     >
     \context Voice = clarII <
-      \property Staff.instrument = "Clar. II  in B\\flat  "
+      \property Staff.instrument = "Clar. II  in B\\textflat  "
       \property Staff.instr = "Cl. II"
       \globalNoKey
       \clarII
@@ -68,7 +67,7 @@
       }
     >
     \context Staff = trp <
-      \property Staff.instrument = "2 Trp. in B\\flat  "
+      \property Staff.instrument = "2 Trp. in B\\textflat  "
       \property Staff.instr = "Trp."
       \context Voice = trpI <
 	\globalNoKey
@@ -85,7 +84,7 @@
   >
     \context StaffGroup = percussion <\context Voice = timpani <
       \property Staff.instrument = "Timp. \& Triang."
-      \property Staff.instr = "Tmp\&{}Trg"
+      \property Staff.instr = "\qquad Tmp\& Trg"
       \global
       \timpani
     >
@@ -135,7 +134,9 @@
         barNumberScriptPadding = "12.0";
         markScriptPadding = "20.0";
     }
-    \translator { \StaffContext
+    \translator { 
+%        \HaraKiriStaffContext % Gives lost bar lines and misplaced marks!!
+        \StaffContext
 	\consists "Staff_margin_engraver";
         marginScriptPadding = "15.0";
         dynamicPadding = 3.0;
diff -urN ../lilypond-1.2.0/mutopia/N.W.Gade/wood.ly ./mutopia/N.W.Gade/wood.ly
--- ../lilypond-1.2.0/mutopia/N.W.Gade/wood.ly	Wed Jul 28 14:58:51 1999
+++ ./mutopia/N.W.Gade/wood.ly	Mon Aug 16 09:55:29 1999
@@ -649,8 +649,8 @@
 b r b r |
 a r r4 |
 R2 |
-g!4 \p \< ( a |
-\! b!2 ~ |
+g4 \p \< ( a |
+\! b2 ~ |
 b4 \> a ~ |
 a \! ) fis8 r |
 g4 \p \< ( a |
diff -urN ../lilypond-1.2.0/po/it.po ./po/it.po
--- ../lilypond-1.2.0/po/it.po	Tue Feb 23 11:32:06 1999
+++ ./po/it.po	Mon Aug 16 09:37:58 1999
@@ -1,26 +1,23 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
 # it.po -- GNU LilyPond's italian language file
-# Copyright (C) 1998 Free Software Foundation, Inc.
 # Tineke de Munnik <jantien@xs4all.nl>, 1998.
 # Modified by Maurizio Umberto Puxeddu <umbpux@tin.it>, Feb1999
 #
+#, fuzzy
 msgid ""
 msgstr ""
+"POT-Creation-Date: 1999-08-15 23:58+0200\n"
+"Content-Type: text/plain; charset=\n"
 "Date: 1998-05-30 00:17:12+0200\n"
 "From:  <jantien@xs4all.nl>\n"
-"Content-Type: text/plain; charset=\n"
-"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po/out --add-comments --keyword=_ --keyword=_f\n"
+"Xgettext-Options: --c++ --default-domain=lilypond --join "
+"--output-dir=../po/out --add-comments --keyword=_ --keyword=_f\n"
 "Files: bow.cc int.cc\n"
 
 #: data-file.cc:52
 msgid "EOF in a string"
 msgstr "EOF in una corda"
 
-#: data-file.cc:121 input.cc:86 midi-parser.cc:100 warn.cc:21
+#: data-file.cc:116 input.cc:86 midi-parser.cc:100 warn.cc:21
 msgid "warning: "
 msgstr "attenzione: "
 
@@ -75,7 +72,7 @@
 msgid "Non fatal error: "
 msgstr "Errore non fatale: "
 
-#: input.cc:105 source-file.cc:64 source-file.cc:157
+#: input.cc:105 source-file.cc:63 source-file.cc:156
 msgid "position unknown"
 msgstr "posizione sconosciuta"
 
@@ -96,20 +93,29 @@
 msgid "Huh? got %d, expected %d characters"
 msgstr "Come? Ho trovato %d caratteri al posto di %d"
 
-#: abbreviation-beam-engraver.cc:72
-msgid "unterminated beam"
-msgstr "beam non terminato"
+#: warn.cc:33
+msgid "Programming error: "
+msgstr ""
+
+#: warn.cc:33
+msgid " (continuing; cross thumbs)"
+msgstr ""
 
-#: afm.cc:127
+#: afm.cc:129
 #, c-format
 msgid "can't find character called `%s'"
 msgstr "non riesco a trovare il carattere `%s'"
 
-#: afm.cc:151
+#: afm.cc:154
 #, c-format
 msgid "can't find character number %d"
 msgstr ""
 
+#: all-font-metrics.cc:69
+#, c-format
+msgid "Can't find font `%s', loading default font."
+msgstr ""
+
 #: all-font-metrics.cc:74
 #, c-format
 msgid "Can't find default font `%s', giving up."
@@ -120,82 +126,73 @@
 msgid "search path = %s"
 msgstr ""
 
-#: beam-engraver.cc:37
+#: beam-engraver.cc:42
 msgid "No Beam to end"
 msgstr ""
 
-#: beam-engraver.cc:53
+#: beam-engraver.cc:58
 msgid "No beam to end"
 msgstr ""
 
-#: beam-engraver.cc:66
+#: beam-engraver.cc:87
 msgid "Already have a Beam"
 msgstr ""
 
-#: beam-engraver.cc:132
+#: beam-engraver.cc:149
 msgid "Unfinished beam"
 msgstr ""
 
-#: beam-engraver.cc:152
+#: beam-engraver.cc:174
 msgid "Stem must have Rhythmic structure."
 msgstr "I gambi devono avere una struttura ritmica."
 
-#: beam-engraver.cc:164
+#: beam-engraver.cc:185
 msgid "stem doesn't fit in beam"
 msgstr "il gambo non rientra nel beam"
 
-#: beam-engraver.cc:165
+#: beam-engraver.cc:186
 msgid "beam was started here"
 msgstr ""
 
-#: beam-engraver.cc:176
-msgid "please fix me"
-msgstr "correggimi, per favore"
-
-#: beam-engraver.cc:177
-#, c-format
-msgid "stem at %s doesn't fit in beam"
-msgstr "il gambo a $s non rientra nel beam"
-
-#: beam.cc:117
+#: beam.cc:142
 msgid "beam with less than two stems"
 msgstr "beam con meno di due gambi"
 
-#: beam.cc:260
+#: beam.cc:307
 msgid "weird beam shift, check your knees"
 msgstr ""
 
-#: break.cc:25
+#: break-algorithm.cc:25
 msgid "0 lines"
 msgstr "0 linee"
 
-#: break.cc:27
+#: break-algorithm.cc:27
 #, c-format
 msgid "1 line (of %.0f columns)"
 msgstr "1 linea (da %.0f colonne)"
 
-#: break.cc:29
+#: break-algorithm.cc:29
 #, c-format
 msgid "%d lines (with an average of %.1f columns)"
 msgstr "%d linee (con una media di %.f colonne)"
 
-#: break.cc:148
+#: break-algorithm.cc:148
 msgid "score does not have any columns"
 msgstr "lo spartito non contiene nessuna colonna"
 
-#: break.cc:174
-#, c-format
-msgid "approximated: %s"
+#: break-algorithm.cc:165
+#, fuzzy, c-format
+msgid "approximated %s"
 msgstr "approssimato: %s:"
 
-#: break.cc:176
-#, c-format
-msgid "calculated exactly: %s"
+#: break-algorithm.cc:167
+#, fuzzy, c-format
+msgid "calculated %s exactly"
 msgstr "calcolato esattamente: %s"
 
-#: break.cc:177 score.cc:112
-#, c-format
-msgid "time: %.2f seconds"
+#: break-algorithm.cc:168
+#, fuzzy, c-format
+msgid "elapsed time %.2f seconds"
 msgstr "durata: %.2f secondi"
 
 #: change-iterator.cc:22
@@ -203,41 +200,41 @@
 msgid "can't change `%s' to `%s'"
 msgstr "non posso cambiare `%s' in `%s'"
 
-#: chord.cc:185
+#: chord-tremolo-engraver.cc:41 chord-tremolo-engraver.cc:58
+msgid "No abbreviation beam to end"
+msgstr ""
+
+#: chord-tremolo-engraver.cc:83
+msgid "Already have an abbreviation beam"
+msgstr ""
+
+#: chord-tremolo-engraver.cc:124
+msgid "Unfinished abbreviation beam"
+msgstr ""
+
+#: chord.cc:231
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr ""
 
-#: chord.cc:199
+#: chord.cc:245
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
-#: clef-engraver.cc:175
+#: clef-engraver.cc:178
 msgid "unknown clef type "
 msgstr "tipo di chiave sconosciuto"
 
-#: collision.cc:63
-msgid "No stem direction set. Ignoring column in clash."
-msgstr "Nessuna direzione del gambo è selezionata. Ignoro la colonna."
-
-#: collision.cc:76
+#: collision.cc:95
 msgid "Too many clashing notecolumns. Ignoring them."
 msgstr "Troppe collisioni tra colonne di note. Le ignoro."
 
-#: command-request.cc:217
-msgid "don't know how handle empty keys"
-msgstr "non so manipolare tasti vuoti"
-
-#: compressed-music-iterator.cc:25
-msgid "No one to print a tuplet start bracket"
-msgstr ""
-
-#: crescendo.cc:47
+#: crescendo.cc:42
 msgid "crescendo"
 msgstr ""
 
-#: crescendo.cc:47
+#: crescendo.cc:42
 msgid "too small"
 msgstr "troppo piccolo"
 
@@ -253,197 +250,245 @@
 msgid "NaN"
 msgstr ""
 
-#: dynamic-engraver.cc:91
+#: dynamic-engraver.cc:109
 msgid "Got a dynamic already.  Continuing dazed and confused"
 msgstr "E' già presente una dinamica. Continuo, ma sono confusa"
 
-#: dynamic-engraver.cc:125
+#: dynamic-engraver.cc:162
 msgid "can't find (de)crescendo to end"
 msgstr "non trovo un (de)crescendo fino alla fine"
 
-#: dynamic-engraver.cc:155
+#: dynamic-engraver.cc:216
 msgid "Too many crescendi here"
 msgstr "Troppi crescendi"
 
-#: dynamic-engraver.cc:196
+#: dynamic-engraver.cc:254
 msgid "unended crescendo"
 msgstr "crescendo non terminato"
 
-#: encompass-info.cc:79 stem-info.cc:123
-msgid "minVerticalAlign != maxVerticalAlign: interstaff slurs may be broken"
+#: encompass-info.cc:32
+#, fuzzy
+msgid "Slur over rest?"
+msgstr "Metto uno slur sulla pausa."
+
+#: encompass-info.cc:67 stem-info.cc:140
+msgid ""
+"minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"
 msgstr ""
 
-#: extender-engraver.cc:65
+#: extender-engraver.cc:62
 msgid "unterminated extender"
 msgstr "extender non terminato"
 
-#: identifier.cc:47
+#: folded-repeat-iterator.cc:64
+msgid "No one to print a repeat brace"
+msgstr ""
+
+#: grace-iterator.cc:43
+msgid "No Grace context available!"
+msgstr ""
+
+#: grace-position-engraver.cc:89
+msgid "Unattached grace notes. Attaching to last musical column."
+msgstr ""
+
+#: hyphen-engraver.cc:60
+#, fuzzy
+msgid "unterminated hyphen"
+msgstr "beam non terminato"
+
+#: identifier.cc:46
 msgid "Wrong identifier type: "
 msgstr "Tipo di identificatore sbagliato: "
 
-#: identifier.cc:48
+#: identifier.cc:47
 #, c-format
 msgid "%s expected"
 msgstr "aspettavo %s"
 
-#: includable-lexer.cc:45 midi-score-parser.cc:24 scores.cc:111 scores.cc:117
+#: includable-lexer.cc:47 midi-score-parser.cc:24 scores.cc:108 scores.cc:114
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "non trovo il file: `%s'"
 
+#: includable-lexer.cc:48
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Search path is `%s'\n"
+msgstr "(Il path di caricamento è `%s'"
+
 #: ineq-constrained-qp.cc:169
 #, c-format
 msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
 msgstr ""
 
-#: ineq-constrained-qp.cc:224
+#: ineq-constrained-qp.cc:233
 msgid "didn't converge!"
 msgstr "non converge!"
 
-#: ineq-constrained-qp.cc:226
+#: ineq-constrained-qp.cc:235
 msgid "Too much degeneracy. "
 msgstr "Troppa degenerazione. "
 
-#: key-engraver.cc:133
+#: key-def.cc:31
 msgid "No key name: assuming `C'"
 msgstr "Nessuna armatura di chiave: assumo Do'"
 
-#: lily-guile.cc:69
+#: key-def.cc:92
+msgid "don't know how handle empty keys"
+msgstr "non so manipolare tasti vuoti"
+
+#: lily-guile.cc:84 lily-guile.cc:107
 #, c-format
 msgid "Can not find file `%s'"
 msgstr "Non trovo il file `%s'"
 
-#: lily-guile.cc:71
+#: lily-guile.cc:86 lily-guile.cc:109
 #, c-format
 msgid "(Load path is `%s'"
 msgstr "(Il path di caricamento è `%s'"
 
-#: local-key-engraver.cc:39
+#: local-key-engraver.cc:42
 msgid "out of tune"
 msgstr "stonato"
 
-#: local-key-engraver.cc:39 time-signature-engraver.cc:28
+#: local-key-engraver.cc:42 time-signature-engraver.cc:28
 msgid "can't find"
 msgstr "non trovo"
 
-#: lookup.cc:102
+#: lookup.cc:103
 #, c-format
 msgid "Can't open `%s'\n"
 msgstr ""
 
-#: lookup.cc:103
+#: lookup.cc:104
 #, c-format
 msgid "Search path %s\n"
 msgstr ""
 
-#: lookup.cc:104
+#: lookup.cc:105
 msgid "Aborting"
 msgstr ""
 
-#: main.cc:84
+#: lookup.cc:434
+#, c-format
+msgid "Non-matching braces in text `%s', adding braces."
+msgstr ""
+
+#: main.cc:85
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Uso: %s [OPZIONE]... [FILE]..."
 
-#: main.cc:85
+#: main.cc:86
 msgid "Typeset music and or play MIDI from FILE or <stdin>"
 msgstr "Stampa partitura oppure suona una song MIDI da FILE o <stdin>"
 
-#: main.cc:48 main.cc:88
+#: main.cc:47 main.cc:89
 msgid "Options:"
 msgstr "Opzioni: "
 
-#: main.cc:91
+#: main.cc:92
 msgid "  -a, --about            about LilyPond\n"
 msgstr "  -a, --about            cos'è LilyPond\n"
 
-#: main.cc:54 main.cc:94
-msgid "  -D, --debug            enable debugging output\n"
+#: main.cc:95
+#, fuzzy
+msgid "  -d, --debug            enable debugging output\n"
 msgstr "  -D, --debug            abilita l'output di debugging\n"
 
-#: main.cc:97
+#: main.cc:98
+#, fuzzy
 msgid ""
-"  -d, --dependencies     write Makefile dependencies for every input file\n"
+"  -M, --dependencies     write Makefile dependencies for every input file\n"
 msgstr ""
-"  -d, --dependencies     scrive le dependenze del Makefile per ogni file di input\n"
+"  -d, --dependencies     scrive le dependenze del Makefile per ogni file di "
+"input\n"
 
-#: main.cc:57 main.cc:100
+#: main.cc:56 main.cc:101
 msgid "  -h, --help             this help\n"
 msgstr "  -h, --help             questo help\n"
 
-#: main.cc:103
+#: main.cc:104
 msgid "  -f, --output-format=X  use output format X\n"
 msgstr "  -f, --output-format=X  usa il formato dell'ouput X\n"
 
-#: main.cc:60 main.cc:106
+#: main.cc:59 main.cc:107
 msgid "  -I, --include=DIR      add DIR to search path\n"
 msgstr "  -I, --include=DIR      aggiunge DIR ai path di ricerca\n"
 
-#: main.cc:109
+#: main.cc:110
 msgid "  -i, --init=FILE        use FILE as init file\n"
 msgstr "  -i, --init=NOMEFILE    usa NOMEFILE come file iniziale\n"
 
-#: main.cc:112
-msgid "  -M, --no-paper         produce midi output only\n"
+#: main.cc:113
+#, fuzzy
+msgid "  -m, --no-paper         produce midi output only\n"
 msgstr "  -M, --no-paper         produce solo output midi\n"
 
-#: main.cc:115
+#: main.cc:116
 msgid "  -o, --output=FILE      set FILE as default output base\n"
-msgstr "  -o, --output=FILE      indica FILE come base di default per l'output\n"
+msgstr ""
+"  -o, --output=FILE      indica FILE come base di default per l'output\n"
 
-#: main.cc:118
+#: main.cc:119
 msgid "  -Q, --find-old-relative show all changes in relative syntax\n"
-msgstr "  -Q, --find-old-relative mostra tutti i cambiamenti nella sintassi relativa\n"
+msgstr ""
+"  -Q, --find-old-relative mostra tutti i cambiamenti nella sintassi "
+"relativa\n"
 
-#: main.cc:121
+#: main.cc:122
 msgid ""
 "  -s, --safe             inhibit file output naming and exporting TeX  "
 "macros\n"
 msgstr ""
-"  -s, --safe             inibisce la rinomina dei file di output e l'esportazione di macro di TeX\n"
+"  -s, --safe             inibisce la rinomina dei file di output e "
+"l'esportazione di macro di TeX\n"
 
-#: main.cc:123
+#: main.cc:124
 msgid "  -t, --test             switch on experimental features\n"
 msgstr "  -t, --test             usa le caratteristiche sperimentali\n"
 
-#: main.cc:78 main.cc:126
+#: main.cc:77 main.cc:127
 msgid "  -T, --no-timestamps    don't timestamp the output\n"
-msgstr "  -T, --no-timestamps    non inserisce marcatori temporali nell'output\n"
+msgstr ""
+"  -T, --no-timestamps    non inserisce marcatori temporali nell'output\n"
 
-#: main.cc:129
+#: main.cc:130
 msgid "  -V, --ignore-version   ignore mudela version\n"
 msgstr "  -V, --ignore-version   ignora la versione di mudela\n"
 
-#: main.cc:87 main.cc:132
+#: main.cc:86 main.cc:133
 msgid "  -w, --warranty         show warranty and copyright\n"
 msgstr "  -w, --warranty         mostra la garanzia e il copyright\n"
 
-#: main.cc:135
+#: main.cc:136
 msgid "GNU LilyPond was compiled with the following settings:"
 msgstr "GNU LilyPond è stata compilata con le seguenti impostazioni:"
 
-#: main.cc:163
+#: main.cc:166
 msgid "GNU LilyPond is Free software, see --warranty"
 msgstr "GNU LilyPond è Free software, vedi --warranty"
 
-#: main.cc:107 main.cc:166 main.cc:179
+#: main.cc:106 main.cc:169 main.cc:182
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s di"
 
-#: main.cc:109 main.cc:168 main.cc:181
+#: main.cc:108 main.cc:171 main.cc:184
 msgid "Han-Wen Nienhuys <hanwen@cs.uu.nl>"
 msgstr ""
 
-#: main.cc:110 main.cc:169 main.cc:182
+#: main.cc:109 main.cc:172 main.cc:185
 msgid "Jan Nieuwenhuizen <janneke@gnu.org>"
 msgstr ""
 
-#: main.cc:177
+#: main.cc:180
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr "GNU LilyPond -- Il tipografo musicale del progetto GNU"
 
-#: main.cc:113 main.cc:185
+#: main.cc:112 main.cc:188
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -460,28 +505,36 @@
 "USA.\n"
 msgstr ""
 "    Questo programma è free software; puoi ridistribuirlo e/o\n"
-"modificarlo sotto le condizioni della GNU General Public License, versione 2,\n"
+"modificarlo sotto le condizioni della GNU General Public License, versione "
+"2,\n"
 "come pubblicata dalla Free Software Foundation.\n"
 "    Questo programma è distribuito nella speranza che possa essere utile,\n"
 "ma SENZA ALCUNA GARANZIA; è privo anche di garanzia implicita di\n"
-"COMMERCIABILITA' o della POSSIBILITA' D'USO A SCOPI PARTICOLARI. Si veda la GNU\n"
+"COMMERCIABILITA' o della POSSIBILITA' D'USO A SCOPI PARTICOLARI. Si veda la "
+"GNU\n"
 "General Public License per ulteriori dettagli.\n"
 "\n"
 "    Con questo programma dovresti aver ricevuto una copia della\n"
-"GNU General Public License (ci riferiamo al file COPYING); se ciò non è"
-"avvenuto, scrivi a: Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02136\n"
-"USA.\n" 
+"GNU General Public License (ci riferiamo al file COPYING); se ciò non "
+"èavvenuto, scrivi a: Free Software Foundation, Inc., 675 Mass Ave, "
+"Cambridge, MA 02136\n"
+"USA.\n"
 
-#: midi-item.cc:364
+#: midi-item.cc:303
+#, fuzzy, c-format
+msgid "No such instrument: `%s'"
+msgstr "% strumento:"
+
+#: midi-item.cc:357
 #, c-format
 msgid "unconventional key: flats: %d, sharps: %d"
 msgstr "armatura non convenzionale: %d bemolli e %d diesis"
 
-#: midi-item.cc:411
+#: midi-item.cc:402
 msgid "silly duration"
 msgstr "indicazione durata priva di senso"
 
-#: midi-item.cc:424
+#: midi-item.cc:415
 msgid "silly pitch"
 msgstr "indicazione altezza priva di senso"
 
@@ -489,92 +542,112 @@
 msgid "error syncing file (disk full?)"
 msgstr "errore nel sincronizzare il file (disco pieno?)"
 
-#: music-list.cc:92
-msgid "\\relative mode changed here, old value: "
-msgstr "\\il modo relativo è cambiato in questo punto, valore vecchio: "
+#: music-output-def.cc:56
+msgid "Interpretation context with empty type"
+msgstr ""
 
-#: music-output-def.cc:79
+#: music-output-def.cc:83
 msgid "Can't find Score context"
 msgstr "Non trovo il contesto dello Score"
 
-#: musical-request.cc:97
+#: musical-request.cc:42
 #, c-format
 msgid "transposition by %s makes accidental larger than two"
 msgstr "la trasposizine di %s rende le alterazioni più che doppie"
 
-#: my-lily-lexer.cc:130
+#: my-lily-lexer.cc:137
 #, c-format
 msgid "redeclaration of `\\%s'"
 msgstr "doppia dichiarazione di `\\%s'"
 
-#: my-lily-lexer.cc:136
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "Identifier name is a keyword (`%s')"
 msgstr "Il nome dell'identificatore è una parola chiave (`%s')"
 
-#: my-lily-lexer.cc:164
+#: my-lily-lexer.cc:172
 #, c-format
 msgid "error at EOF: %s"
 msgstr "errore alla fine del file: %s"
 
-#: my-lily-parser.cc:58
+#: my-lily-parser.cc:60
 msgid "Parsing..."
 msgstr "Analisi..."
 
-#: my-lily-parser.cc:67
+#: my-lily-parser.cc:69
 msgid "braces don't match"
 msgstr "le bretelle no si accoppiano"
 
-#: p-score.cc:116
-msgid "Can't solve this casting problem exactly; revert to Word_wrap"
-msgstr "Non posso risolvere esattamente questo problema di conversione; ritorno al Word_wrap"
-
-#: p-score.cc:196
-msgid "Preprocessing elements..."
-msgstr "Pre-elaborazione..."
-
-#: p-score.cc:200
-msgid "Calculating column positions..."
-msgstr "Calcolo delle posizioni della colonne..."
-
-#: paper-def.cc:73
+#: paper-def.cc:95
 #, c-format
 msgid "unknown paper variable: `%s'"
 msgstr "variabile paper sconosciuta: `%s'"
 
-#: paper-def.cc:77
+#: paper-def.cc:99
 msgid "not a real variable"
 msgstr "non è una vera variabile"
 
 #. for now; breaks -fscm output
-#: paper-def.cc:240
+#: paper-def.cc:251
 msgid "outputting Score, defined at: "
 msgstr "emetto lo Score, definito a: "
 
-#: paper-def.cc:275
+#: paper-def.cc:280
 #, c-format
 msgid "Paper output to %s..."
 msgstr "L'output stampato è inviato a %s..."
 
-#: mudela-stream.cc:85 paper-outputter.cc:74 performance.cc:70
+#: mudela-stream.cc:85 paper-outputter.cc:76 performance.cc:97
 msgid ", at "
 msgstr ", a "
 
+#: paper-outputter.cc:130
+#, c-format
+msgid "Improbable offset for object type `%s'"
+msgstr ""
+
+#: paper-score.cc:131
+msgid "Can't solve this casting problem exactly; revert to Word_wrap"
+msgstr ""
+"Non posso risolvere esattamente questo problema di conversione; ritorno al "
+"Word_wrap"
+
+#: paper-score.cc:156
+msgid "Preprocessing elements..."
+msgstr "Pre-elaborazione..."
+
+#: paper-score.cc:160
+msgid "Calculating column positions..."
+msgstr "Calcolo delle posizioni della colonne..."
+
+#: paper-score.cc:179
+msgid " elements. "
+msgstr ""
+
+#: paper-score.cc:182
+msgid "Line ... "
+msgstr ""
+
+#: performance.cc:50
+#, fuzzy
+msgid "Track ... "
+msgstr "traccia "
+
 #. perhaps multiple text events?
-#: performance.cc:55
+#: performance.cc:77
 msgid "Creator: "
 msgstr "Autore: "
 
-#: performance.cc:65
+#: performance.cc:92
 msgid "Automatically generated"
 msgstr "Generato automaticamente"
 
-#: performance.cc:78
+#: performance.cc:106
 #, c-format
 msgid "from musical definition: %s"
 msgstr "della definizione musicale: %s"
 
-#: performance.cc:143
+#: performance.cc:174
 #, c-format
 msgid "MIDI output to %s..."
 msgstr "L'output MIDI è inviato a %s..."
@@ -583,47 +656,52 @@
 msgid "degenerate constraints"
 msgstr "vincoli degenerati"
 
-#: repeated-music-iterator.cc:50
-msgid "No one to print a volta bracket"
-msgstr ""
-
-#: request-iterator.cc:72
+#: request-chord-iterator.cc:73
 #, c-format
 msgid "junking request: `%s'"
 msgstr ""
 
-#: request-iterator.cc:75
+#: request-chord-iterator.cc:76
 #, c-format
 msgid "Huh? Not a Request: `%s'"
 msgstr "Cosa? Non è una richiesta: `%s'"
 
-#: score-column.cc:55
-#, c-format
-msgid "ignoring zero duration added to column at %s"
-msgstr "ingnoro le durate nulle aggiunte alla colonna a %s"
+#: rest-collision.cc:64
+#, fuzzy
+msgid "Too many colliding rests."
+msgstr "Troppi crescendi"
+
+#: rest-collision.cc:68
+msgid "Too many notes for rest collision."
+msgstr ""
 
-#: score-engraver.cc:143
+#: score-engraver.cc:149
 #, c-format
 msgid "Unbound spanner `%s'"
 msgstr "Spanner non legato `%s'"
 
-#: score.cc:57
+#: score.cc:56
 msgid "no toplevel translator"
 msgstr "non c'è un traduttore di livello massimo"
 
-#: score.cc:60
+#: score.cc:59
 msgid "Interpreting music..."
 msgstr "Interpretazione della musica..."
 
-#: score.cc:71
+#: score.cc:70
 msgid "need music in a score"
 msgstr "ho bisogno di musica nello spartito"
 
 #. should we? hampers debugging.
-#: score.cc:107
+#: score.cc:83
 msgid "errors found, /*not processing score*/"
 msgstr "ho trovato un errore, /*non sto elaborando lo spartito*/"
 
+#: score.cc:88
+#, c-format
+msgid "time: %.2f seconds"
+msgstr "durata: %.2f secondi"
+
 #: scores.cc:35
 #, c-format
 msgid "writing dependency file: `%s'..."
@@ -633,77 +711,72 @@
 msgid "score contains errors; will not process it"
 msgstr "lo spartito contiene errori; non lo elaborerò"
 
-#: scores.cc:112
+#: scores.cc:109
 #, c-format
 msgid "Search path: %s"
 msgstr ""
 
-#: script.cc:61
-msgid "script needs stem direction"
-msgstr "lo script ha bisogno di una direzione per il gambo"
+#: script-engraver.cc:49
+#, c-format
+msgid "don't know how to interpret articulation `%s'\n"
+msgstr ""
 
 #. this shouldn't happen, but let's continue anyway.
-#: single-malt-grouping-item.cc:40
-msgid "Single_malt_grouping_item: I've been drinking too much (fixme)"
+#: single-malt-grouping-item.cc:42
+msgid "Single_malt_grouping_item: I've been drinking too much"
 msgstr ""
 
-#: slur-engraver.cc:49
+#: slur-engraver.cc:64
 msgid "unterminated slur"
 msgstr "slur non terminato"
 
-#: slur-engraver.cc:65
+#: slur-engraver.cc:80
 #, c-format
 msgid "can't find both ends of %s"
 msgstr "non trovo le estremità di %s"
 
-#: slur-engraver.cc:65
+#: slur-engraver.cc:80
 msgid "slur"
 msgstr ""
 
-#: slur.cc:41
-msgid "Putting slur over rest."
+#: slur.cc:39
+#, fuzzy
+msgid "Putting slur over rest. Ignoring"
 msgstr "Metto uno slur sulla pausa."
 
-#: spanner.cc:44
+#: spacing-spanner.cc:215
+#, c-format
+msgid "can't find a ruling note at %s"
+msgstr "non risco a trovare una ruling note a %s"
+
+#: spacing-spanner.cc:221
+#, c-format
+msgid "no minimum in measure at %s"
+msgstr "non c'è minimo nella misura a %s"
+
+#: spanner.cc:39
 msgid "left spanpoint is right spanpoint\n"
 msgstr ""
 
-#: spanner.cc:105
+#: spanner.cc:109
 #, c-format
 msgid "Spanner `%s' with equal left and right spanpoints"
-msgstr "I punti di span sinistro e destro dello spanner `%s' coincidono" 
+msgstr "I punti di span sinistro e destro dello spanner `%s' coincidono"
 
-#: spring-spacer.cc:85
-#, c-format
-msgid "unconnected column: %d"
-msgstr "colonna sconnessa: %d"
-
-#: spring-spacer.cc:189
+#: spring-spacer.cc:134
 msgid "I'm too fat; call Oprah"
 msgstr "Son troppo grassa; chiama Oprah"
 
-#: spring-spacer.cc:350
+#: spring-spacer.cc:295
 msgid "solution doesn't satisfy constraints"
 msgstr "la soluzione non soddisfa i vincoli"
 
-#: spring-spacer.cc:639
-#, c-format
-msgid "can't find a ruling note at %s"
-msgstr "non risco a trovare una ruling note a %s"
-
-#: spring-spacer.cc:645
+#: stem-engraver.cc:80
 #, c-format
-msgid "no minimum in measure at %s"
-msgstr "non c'è minimo nella misura a %s"
-
-#: staff-side.cc:61
-msgid ""
-"Staff_side::get_position_f(): somebody forgot to set my direction, returning "
-"-20"
-msgstr "taff_side::get_position_f(): qualcuno ha dimenticato di impostare la"
-"mia direzione, quindi restituisco -20"
+msgid "Adding note head to incompatible stem (type = %d)"
+msgstr ""
 
-#: stem.cc:111
+#: stem.cc:106
 msgid "weird stem size; check for narrow beams"
 msgstr "dimensione del gambo poco ortodossa; check for narrow beams"
 
@@ -722,7 +795,11 @@
 msgid "can't find ascii character `%d'"
 msgstr ""
 
-#: tie.cc:50
+#: tie-engraver.cc:155 tie-performer.cc:106
+msgid "No ties were created!"
+msgstr ""
+
+#: tie.cc:55
 msgid "lonely tie"
 msgstr ""
 
@@ -738,19 +815,23 @@
 msgid "partial measure too large"
 msgstr "misura parziale troppo grande"
 
+#: time-scaled-music-iterator.cc:25
+msgid "No one to print a tuplet start bracket"
+msgstr ""
+
 #: time-signature-engraver.cc:28
 msgid "lost in time"
 msgstr "mi sono persa nel tempo"
 
-#: timing-translator.cc:31
+#: timing-translator.cc:26
 msgid "conflicting timing request"
 msgstr "richieste di timing in conflitto"
 
-#: timing-translator.cc:67
+#: timing-translator.cc:62
 msgid "time signature change not allowed here"
 msgstr "un cambio di tempo non è ammesso in questo punto"
 
-#: timing-translator.cc:90
+#: timing-translator.cc:83
 #, c-format
 msgid "barcheck failed by: %s"
 msgstr "controllo del battute fallito: %s"
@@ -760,131 +841,140 @@
 msgid "unknown translator `%s'"
 msgstr "traduttore sconosciuto `%s'"
 
-#: translator-group.cc:187
+#: translator-group.cc:82 translator-group.cc:97
+#, c-format
+msgid "Already contains a `%s'"
+msgstr ""
+
+#: translator-group.cc:207
 #, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr "non trovo e non posso creare '%s' chiamato '%s'"
 
-#: translator-group.cc:314
+#: translator-group.cc:341
 #, c-format
 msgid "can't find or create `%s'"
 msgstr "non trovo e non posso creare `%s'"
 
-#: translator-group.cc:409
+#: translator-group.cc:437 translator-group.cc:446
 #, c-format
 msgid "can't find `%s'"
 msgstr "non trovo `%s'"
 
-#: transposed-music.cc:33
-msgid "Will ignore \relative for transposed music"
-msgstr "Ignorerò \relative per la musica trasposta "
+#: transposed-music.cc:31
+msgid "Will ignore \\relative for transposed music"
+msgstr "Ignorerò \\relative per la musica trasposta "
+
+#: unfolded-repeat-iterator.cc:145
+msgid "No one to print a volta bracket"
+msgstr ""
 
-#: word-wrap.cc:71
+#: word-wrap.cc:75
 msgid "ugh, this measure is too long"
 msgstr "ops, questa misura è troppo lunga"
 
-#: word-wrap.cc:72
+#: word-wrap.cc:76
 #, c-format
 msgid "breakpoint: %d"
 msgstr ""
 
-#: word-wrap.cc:73
+#: word-wrap.cc:77
 msgid "generating stupido solution"
 msgstr ""
 
-#: word-wrap.cc:91
+#: word-wrap.cc:95
 msgid "I don't fit; put me on Montignac"
 msgstr "Non ci sto; mettimi su Montignac"
 
-#: parser.yy:329 parser.yy:332
+#: parser.yy:55
 #, c-format
-msgid "incorrect mudela version: %s (%s, %s)"
-msgstr "versione di mudela errata: %s (%s, %s)"
+msgid "Oldest supported input version: %s"
+msgstr ""
+
+#: parser.yy:313
+msgid "Cannot evaluate Scheme in safe mode"
+msgstr ""
 
-#: parser.yy:460
+#: parser.yy:433 parser.yy:441 parser.yy:465
 msgid "Need a translator group for a context"
 msgstr "Ho bisogno di un gruppo di traduzione per un contesto"
 
-#: parser.yy:478
+#: parser.yy:459
 msgid "Wrong type for property value"
 msgstr "Tipo sbagliato per il valore di una proprietà"
 
-#: parser.yy:529
+#: parser.yy:515
 msgid "More than one music block"
 msgstr "Più di un blocco di musica"
 
-#: parser.yy:1122 parser.yy:1396
-msgid "have to be in Lyric mode for lyrics"
-msgstr "bisogna essere in Lyric mode per i testi"
-
-#: parser.yy:1344 parser.yy:1364
+#: parser.yy:946 parser.yy:1360 parser.yy:1380
 #, c-format
 msgid "not a duration: %d"
 msgstr "non è una durata: %d"
 
-#: parser.yy:1366
+#: parser.yy:948 parser.yy:1382
 msgid "can't abbreviate"
 msgstr "non posso abbreviare"
 
-#: parser.yy:1376
+#: parser.yy:1211 parser.yy:1219 parser.yy:1444
+msgid "have to be in Lyric mode for lyrics"
+msgstr "bisogna essere in Lyric mode per i testi"
+
+#: parser.yy:1391
 msgid "have to be in Note mode for notes"
 msgstr "bisogna essere in Note mode per le note"
 
-#: parser.yy:1402
+#: parser.yy:1403
+#, fuzzy
+msgid "can't abbreviate tuplet"
+msgstr "non posso abbreviare"
+
+#: parser.yy:1450
 msgid "have to be in Chord mode for chords"
 msgstr "bisogna essere in Chord mode per gli accordi"
 
-#: parser.yy:1407
-msgid "have to be in Note mode for @chords"
-msgstr "bisogna essere in Note mode per i @chords"
-
-#: lexer.ll:131
+#: lexer.ll:155
 msgid "EOF found inside a comment"
 msgstr "ho trovato un EOF in un commento"
 
-#: lexer.ll:175
+#: lexer.ll:199
 #, c-format
 msgid "undefined identifier: `%s'"
 msgstr "indentificatore non definito: `%s'"
 
 #. backup rule
-#: lexer.ll:180
+#: lexer.ll:204
 msgid "missing end quote"
 msgstr "apice finale mancante"
 
 #. backup rule
-#: lexer.ll:203 lexer.ll:207
+#: lexer.ll:227 lexer.ll:231
 msgid "white expected"
 msgstr "aspettavo uno spazio bianco"
 
-#: lexer.ll:365
-#, c-format
-msgid "illegal character: `%c'"
+#: lexer.ll:401
+#, fuzzy, c-format
+msgid "invalid character: `%c'"
 msgstr "carattere illegale: `%c'"
 
-#: lexer.ll:421
+#: lexer.ll:457
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr "stringa di escape sconosciuta: `\\%s'"
 
+#: lexer.ll:543
+#, c-format
+msgid "incorrect mudela version: %s (%s, %s)"
+msgstr "versione di mudela errata: %s (%s, %s)"
+
 #: out/BLURB.hh:2
 msgid ""
-"LilyPond is the GNU Project music typesetter.  This program can print\n"
-"beautiful sheet music from a music definition file.  It can also play\n"
-"mechanical performances to a MIDI file.  Features include multiple\n"
-"staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n"
-"beams, slurs, triplets, named chords, transposing, formatting scores, \n"
-"part extraction.  It includes a nice font of musical symbols.\n"
+"LilyPond is a music typesetter.  It produces beautiful sheet music\n"
+"using a high level description file as input.  LilyPond is part of \n"
+"the GNU Project.\n"
+"\n"
+"\n"
 msgstr ""
-"LilyPond è il programma di notazione musicale del progetto\n"
-"GNU. Questo programma può generare delle ottime partiture musicali\n"
-"a partire da un file contenente la descrizione della musica. Può\n"
-"anche generare esecuzioni meccaniche della partitura in formato\n"
-"MIDI. Le caratteristiche del programma includono un versatile\n"
-"linguaggio di descrizione musicale, pentagrammi multipli, segni di\n"
-"divisione, chiavi, tasti, parole, cadenze, legature, acciaccature,\n"
-"terzine, segni di formattazione ed estrazione automatica delle parti. Nella\n"
-"distribuzione è compreso anche un font di simboli musicali.\n"
 
 #: out/COPERTINA.hh:2
 msgid ""
@@ -911,57 +1001,68 @@
 "individuele partijen.  Een fraaie set muziektekens is inbegrepen.\n"
 msgstr ""
 
-#: main.cc:43
+#: main.cc:42
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr "Uso: %s [OPZIONE... [FILE]"
 
-#: main.cc:45
+#: main.cc:44
 msgid "Translate midi-file to mudela"
 msgstr "Traduce un file midi in mudela"
 
-#: main.cc:51
+#: main.cc:50
 msgid "  -b, --no-quantify      write exact durations, e.g.: a4*385/384\n"
 msgstr "  -b, --no-quantify      scrive durate esatte,  p.es.: a4*385/384\n"
 
-#: main.cc:63
+#: main.cc:53
+msgid "  -D, --debug            enable debugging output\n"
+msgstr "  -D, --debug            abilita l'output di debugging\n"
+
+#: main.cc:62
 msgid "  -k, --key=ACC[:MINOR]  set key: ACC +sharps/-flats; :1 minor\n"
-msgstr " -k, --key=ACC[:MINOR]  imposta l'armatura: ACC +diesis/-bemolli; :1 minore\n"
+msgstr ""
+" -k, --key=ACC[:MINOR]  imposta l'armatura: ACC +diesis/-bemolli; :1 minore\n"
 
-#: main.cc:66
+#: main.cc:65
+#, fuzzy
 msgid ""
-"  -n, --no-silly         assume no plets or double dots, smallest is 32\n"
+"  -n, --no-silly         assume no tuplets or double dots, smallest is 32\n"
 msgstr ""
-"  -n, --no-silly         assume che non ci siano gruppetti o doppi punti, la figura più piccola è 32\n"
+"  -n, --no-silly         assume che non ci siano gruppetti o doppi punti, la "
+"figura più piccola è 32\n"
 
-#: main.cc:69
+#: main.cc:68
 msgid "  -o, --output=FILE      set FILE as default output\n"
 msgstr "  -o, --output=FILE      set FILE come output di default\n"
 
-#: main.cc:72
-msgid "  -p, --no-plets         assume no plets\n"
+#: main.cc:71
+#, fuzzy
+msgid "  -p, --no-tuplets       assume no tuplets\n"
 msgstr "  -p, --no-plets         assume che non ci siano gruppetti\n"
 
-#: main.cc:75
+#: main.cc:74
 msgid "  -q, --quiet            be quiet\n"
 msgstr "  -q, --quiet            sii silenzioso\n"
 
-#: main.cc:81
+#: main.cc:80
 msgid ""
 "  -s, --smallest=N       assume no shorter (reciprocal) durations than N\n"
 msgstr ""
-"  -s, --smallest=N       assume che non ci siano durate (reciproche) inferiori a N\n"
+"  -s, --smallest=N       assume che non ci siano durate (reciproche) "
+"inferiori a N\n"
 
-#: main.cc:84
+#: main.cc:83
 msgid "  -v, --verbose          be verbose\n"
 msgstr "  -v, --verbose          sii loquace\n"
 
-#: main.cc:90
+#: main.cc:89
 msgid "  -x, --no-double-dots   assume no double dotted notes\n"
-msgstr " -x, --no-double-dots   assume che non ci siano note con doppio punto\n"
+msgstr ""
+" -x, --no-double-dots   assume che non ci siano note con doppio punto\n"
 
-#: main.cc:105
-msgid "Mi2mu, translate midi to mudela"
+#: main.cc:104
+#, fuzzy
+msgid "Midi2ly, translate midi to mudela"
 msgstr "Mi2mu, tradice midi in mudela"
 
 #: midi-parser.cc:64
@@ -997,77 +1098,75 @@
 msgid "Parsing...\n"
 msgstr "Interpreto...\n"
 
-#: midi-track-parser.cc:70
+#: midi-track-parser.cc:68
 #, c-format
 msgid "junking note-end event: channel = %d, pitch = %d"
 msgstr ""
 
-#: midi-track-parser.cc:125
+#: midi-track-parser.cc:124
 msgid "invalid running status"
 msgstr "stato di eseguzione non valido"
 
-#: midi-track-parser.cc:326
+#: midi-track-parser.cc:328
 msgid "unimplemented MIDI meta-event"
 msgstr "meta-evento MIDI non implementato"
 
-#: midi-track-parser.cc:331
+#: midi-track-parser.cc:333
 msgid "invalid MIDI event"
 msgstr "evento MIDI non valido"
 
-#: midi-track-parser.cc:346
+#: midi-track-parser.cc:348
 msgid "MIDI track expected"
 msgstr "mi spettavo una traccia MIDI"
 
-#: midi-track-parser.cc:351
+#: midi-track-parser.cc:353
 msgid "invalid track length"
 msgstr "lunghezza della traccia non valida"
 
-#: mudela-item.cc:139
+#: mudela-item.cc:160
 #, c-format
 msgid "#32 in quarter: %d"
 msgstr "#32 in un quarto: %d"
 
-#: mudela-score.cc:117
+#: mudela-score.cc:108
 #, c-format
 msgid "Lily output to %s..."
 msgstr "Output di Lily in %s..."
 
-#: mudela-score.cc:127 mudela-score.cc:191
+#: mudela-score.cc:119 mudela-score.cc:168
 msgid "track "
 msgstr "traccia "
 
-#: mudela-score.cc:176
+#: mudela-score.cc:155
 msgid "Processing..."
 msgstr "Elaboro..."
 
-#: mudela-score.cc:187
+#: mudela-score.cc:164
 msgid "Creating voices..."
 msgstr "Genero le voci..."
 
-#: mudela-score.cc:200
+#: mudela-score.cc:177
 msgid "NOT Filtering tempo..."
 msgstr "NON filtro il tempo..."
 
-#: mudela-score.cc:209
+#: mudela-score.cc:186
 msgid "NOT Quantifying columns..."
 msgstr "NON quantifico le colonne..."
 
-#: mudela-score.cc:213
+#: mudela-score.cc:190
 msgid "Quantifying columns..."
 msgstr "Quantifico le colonne..."
 
-#.    LOGOUT(NORMAL_ver) << '\n' << "NOT Settling columns..." << endl;
-#.    return;
-#: mudela-score.cc:248
+#: mudela-score.cc:223
 msgid "Settling columns..."
 msgstr "Sistemo le colonne..."
 
-#: mudela-staff.cc:107
+#: mudela-staff.cc:111
 #, c-format
 msgid "% midi copyright:"
 msgstr ""
 
-#: mudela-staff.cc:108
+#: mudela-staff.cc:112
 #, c-format
 msgid "% instrument:"
 msgstr "% strumento:"
@@ -1093,43 +1192,52 @@
 #: version.cc:11
 msgid "of"
 msgstr "di"
-# msgid "invalid inversion pitch (not part of chord)"
-# msgstr "altezza dell'inversione errata (non fa parte di un accordo)"
-# 
-# msgid ""
-# "Text_item::get_position_f(): somebody forgot to set my vertical direction, "
-# "returning -20"
-# msgstr ""
-# "Text_item::get_position_f(): qualcuno ha dimenticato di impostare la mia"
-# "direzione verticale, quindi restituisco -20"
-# 
-# msgid "unterminated plet"
-# msgstr "gruppetto non terminato"
-# 
-# msgid "guessing dimensions for font style: `%s'"
-# msgstr "indovino le dimensioni per il font style: `%s'"
-# 
-# msgid "No beam to stop"
-# msgstr "Nessun beam da terminare"
-# 
-# msgid "left spanpoint is right spanpoint"
-# msgstr "i punti di span sinistro e destro coincidono"
-# 
-# msgid "Symtable `%s': unknown symbol: `%s'"
-# msgstr "Symtable `%s': simbolo sconosciuto: `%s'"
-# 
-# msgid "bracket"
-# msgstr "parentsei"
-# 
-# msgid "ridiculous dimension: %s, %s"
-# msgstr "dimensione ridicola: %s, %s"
-# 
-# msgid "Can't find a note head at the right to attach Tie"
-# msgstr "Non trovo una testa di nota sulla destra per attaccare il Tie"
-# 
-# msgid "never heard of dynamic scale `\\%s', assuming %s"
-# msgstr "la scala dinamica `\\%s' l'ho mai sentita, assumo la %s"
-# 
-# msgid "Symtable `%s' unknown"
-# msgstr "La symtable `%s' è sconosciuta"
-# 
+
+#~ msgid "please fix me"
+#~ msgstr "correggimi, per favore"
+
+#~ msgid "stem at %s doesn't fit in beam"
+#~ msgstr "il gambo a $s non rientra nel beam"
+
+#~ msgid "No stem direction set. Ignoring column in clash."
+#~ msgstr "Nessuna direzione del gambo è selezionata. Ignoro la colonna."
+
+#~ msgid "\\relative mode changed here, old value: "
+#~ msgstr "\\il modo relativo è cambiato in questo punto, valore vecchio: "
+
+#~ msgid "ignoring zero duration added to column at %s"
+#~ msgstr "ingnoro le durate nulle aggiunte alla colonna a %s"
+
+#~ msgid "script needs stem direction"
+#~ msgstr "lo script ha bisogno di una direzione per il gambo"
+
+#~ msgid "unconnected column: %d"
+#~ msgstr "colonna sconnessa: %d"
+
+#~ msgid ""
+#~ "Staff_side::get_position_f(): somebody forgot to set my direction, returning "
+#~ "-20"
+#~ msgstr ""
+#~ "taff_side::get_position_f(): qualcuno ha dimenticato di impostare lamia "
+#~ "direzione, quindi restituisco -20"
+
+#~ msgid "have to be in Note mode for @chords"
+#~ msgstr "bisogna essere in Note mode per i @chords"
+
+#~ msgid ""
+#~ "LilyPond is the GNU Project music typesetter.  This program can print\n"
+#~ "beautiful sheet music from a music definition file.  It can also play\n"
+#~ "mechanical performances to a MIDI file.  Features include multiple\n"
+#~ "staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n"
+#~ "beams, slurs, triplets, named chords, transposing, formatting scores, \n"
+#~ "part extraction.  It includes a nice font of musical symbols.\n"
+#~ msgstr ""
+#~ "LilyPond è il programma di notazione musicale del progetto\n"
+#~ "GNU. Questo programma può generare delle ottime partiture musicali\n"
+#~ "a partire da un file contenente la descrizione della musica. Può\n"
+#~ "anche generare esecuzioni meccaniche della partitura in formato\n"
+#~ "MIDI. Le caratteristiche del programma includono un versatile\n"
+#~ "linguaggio di descrizione musicale, pentagrammi multipli, segni di\n"
+#~ "divisione, chiavi, tasti, parole, cadenze, legature, acciaccature,\n"
+#~ "terzine, segni di formattazione ed estrazione automatica delle parti. Nella\n"
+#~ "distribuzione è compreso anche un font di simboli musicali.\n"
diff -urN ../lilypond-1.2.0/po/lilypond.po ./po/lilypond.po
--- ../lilypond-1.2.0/po/lilypond.po	Tue Dec 22 11:18:31 1998
+++ ./po/lilypond.po	Mon Aug 16 09:37:58 1999
@@ -1,12 +1,12 @@
-# lilypond.po -- GNU LilyPond's po source
-# Copyright (C) 1998 Free Software Foundation, Inc.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR Free Software Foundation, Inc.
 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 #
 #, fuzzy
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1998-12-20 21:28+0100\n"
+"POT-Creation-Date: 1999-08-15 23:58+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,11 +18,11 @@
 msgid "EOF in a string"
 msgstr ""
 
-#: data-file.cc:121 input.cc:86 midi-parser.cc:100 warn.cc:21
+#: data-file.cc:116 input.cc:86 midi-parser.cc:100 warn.cc:21
 msgid "warning: "
 msgstr ""
 
-#: dstream.cc:159
+#: dstream.cc:158
 msgid "Not enough fields in Dstream init."
 msgstr ""
 
@@ -59,9 +59,8 @@
 msgid "<stdin>"
 msgstr ""
 
-#: lookup.cc:374 mapped-file-storage.cc:87 midi-stream.cc:77
-#: mudela-stream.cc:103 paper-stream.cc:25 parser.yy:1561 scores.cc:37
-#: simple-file-storage.cc:44 text-stream.cc:21
+#: mapped-file-storage.cc:87 midi-stream.cc:77 mudela-stream.cc:103
+#: paper-stream.cc:25 scores.cc:38 simple-file-storage.cc:44 text-stream.cc:21
 #, c-format
 msgid "can't open file: `%s'"
 msgstr ""
@@ -74,7 +73,7 @@
 msgid "Non fatal error: "
 msgstr ""
 
-#: input.cc:105 source-file.cc:62 source-file.cc:155
+#: input.cc:105 source-file.cc:63 source-file.cc:156
 msgid "position unknown"
 msgstr ""
 
@@ -95,112 +94,148 @@
 msgid "Huh? got %d, expected %d characters"
 msgstr ""
 
-#: abbreviation-beam-engraver.cc:72 beam-engraver.cc:86
-msgid "unterminated beam"
+#: warn.cc:33
+msgid "Programming error: "
 msgstr ""
 
-#: afm.cc:114
+#: warn.cc:33
+msgid " (continuing; cross thumbs)"
+msgstr ""
+
+#: afm.cc:129
 #, c-format
 msgid "can't find character called `%s'"
 msgstr ""
 
-#: atom.cc:30
+#: afm.cc:154
 #, c-format
-msgid "ridiculous dimension: %s, %s"
+msgid "can't find character number %d"
 msgstr ""
 
-#: beam-engraver.cc:102 cbeam-engraver.cc:122
-msgid "Stem must have Rhythmic structure."
+#: all-font-metrics.cc:69
+#, c-format
+msgid "Can't find font `%s', loading default font."
 msgstr ""
 
-#: beam-engraver.cc:109 cbeam-engraver.cc:134
-msgid "stem doesn't fit in beam"
+#: all-font-metrics.cc:74
+#, c-format
+msgid "Can't find default font `%s', giving up."
 msgstr ""
 
-#: beam-engraver.cc:120 cbeam-engraver.cc:145
-msgid "please fix me"
+#: all-font-metrics.cc:75
+#, c-format
+msgid "search path = %s"
 msgstr ""
 
-#: beam-engraver.cc:121 cbeam-engraver.cc:146
-#, c-format
-msgid "stem at %s doesn't fit in beam"
+#: beam-engraver.cc:42
+msgid "No Beam to end"
+msgstr ""
+
+#: beam-engraver.cc:58
+msgid "No beam to end"
+msgstr ""
+
+#: beam-engraver.cc:87
+msgid "Already have a Beam"
+msgstr ""
+
+#: beam-engraver.cc:149
+msgid "Unfinished beam"
+msgstr ""
+
+#: beam-engraver.cc:174
+msgid "Stem must have Rhythmic structure."
+msgstr ""
+
+#: beam-engraver.cc:185
+msgid "stem doesn't fit in beam"
+msgstr ""
+
+#: beam-engraver.cc:186
+msgid "beam was started here"
 msgstr ""
 
-#: beam.cc:117
+#: beam.cc:142
 msgid "beam with less than two stems"
 msgstr ""
 
-#: beam.cc:563
+#: beam.cc:307
 msgid "weird beam shift, check your knees"
 msgstr ""
 
-#: break.cc:25
+#: break-algorithm.cc:25
 msgid "0 lines"
 msgstr ""
 
-#: break.cc:27
+#: break-algorithm.cc:27
 #, c-format
 msgid "1 line (of %.0f columns)"
 msgstr ""
 
-#: break.cc:29
+#: break-algorithm.cc:29
 #, c-format
 msgid "%d lines (with an average of %.1f columns)"
 msgstr ""
 
-#: break.cc:159
+#: break-algorithm.cc:148
 msgid "score does not have any columns"
 msgstr ""
 
-#: break.cc:183
+#: break-algorithm.cc:165
 #, c-format
-msgid "approximated: %s"
+msgid "approximated %s"
 msgstr ""
 
-#: break.cc:185
+#: break-algorithm.cc:167
 #, c-format
-msgid "calculated exactly: %s"
+msgid "calculated %s exactly"
 msgstr ""
 
-#: break.cc:186 score.cc:112
+#: break-algorithm.cc:168
 #, c-format
-msgid "time: %.2f seconds"
-msgstr ""
-
-#: cbeam-engraver.cc:45
-msgid "No beam to stop"
+msgid "elapsed time %.2f seconds"
 msgstr ""
 
-#: change-iterator.cc:21
+#: change-iterator.cc:22
 #, c-format
 msgid "can't change `%s' to `%s'"
 msgstr ""
 
-#: clef-engraver.cc:124
-msgid "unknown clef type "
+#: chord-tremolo-engraver.cc:41 chord-tremolo-engraver.cc:58
+msgid "No abbreviation beam to end"
 msgstr ""
 
-#: collision.cc:63
-msgid "No stem direction set. Ignoring column in clash."
+#: chord-tremolo-engraver.cc:83
+msgid "Already have an abbreviation beam"
 msgstr ""
 
-#: collision.cc:76
-msgid "Too many clashing notecolumns. Ignoring them."
+#: chord-tremolo-engraver.cc:124
+msgid "Unfinished abbreviation beam"
 msgstr ""
 
-#: command-request.cc:220
-msgid "don't know how handle empty keys"
+#: chord.cc:231
+#, c-format
+msgid "invalid subtraction: not part of chord: %s"
 msgstr ""
 
-#: compressed-music-iterator.cc:25
-msgid "No one to print a tuplet start bracket"
+#: chord.cc:245
+#, c-format
+msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
-#: crescendo.cc:47
+#: clef-engraver.cc:178
+msgid "unknown clef type "
+msgstr ""
+
+#: collision.cc:95
+msgid "Too many clashing notecolumns. Ignoring them."
+msgstr ""
+
+#: crescendo.cc:42
 msgid "crescendo"
 msgstr ""
 
-#: crescendo.cc:47 lookup.cc:501
+#: crescendo.cc:42
 msgid "too small"
 msgstr ""
 
@@ -216,186 +251,232 @@
 msgid "NaN"
 msgstr ""
 
-#: dynamic-engraver.cc:60
+#: dynamic-engraver.cc:109
 msgid "Got a dynamic already.  Continuing dazed and confused"
 msgstr ""
 
-#: dynamic-engraver.cc:82
+#: dynamic-engraver.cc:162
 msgid "can't find (de)crescendo to end"
 msgstr ""
 
-#: dynamic-engraver.cc:106
+#: dynamic-engraver.cc:216
 msgid "Too many crescendi here"
 msgstr ""
 
-#: dynamic-engraver.cc:165
+#: dynamic-engraver.cc:254
 msgid "unended crescendo"
 msgstr ""
 
-#: extender-engraver.cc:65
+#: encompass-info.cc:32
+msgid "Slur over rest?"
+msgstr ""
+
+#: encompass-info.cc:67 stem-info.cc:140
+msgid ""
+"minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"
+msgstr ""
+
+#: extender-engraver.cc:62
 msgid "unterminated extender"
 msgstr ""
 
-#: identifier.cc:48
+#: folded-repeat-iterator.cc:64
+msgid "No one to print a repeat brace"
+msgstr ""
+
+#: grace-iterator.cc:43
+msgid "No Grace context available!"
+msgstr ""
+
+#: grace-position-engraver.cc:89
+msgid "Unattached grace notes. Attaching to last musical column."
+msgstr ""
+
+#: hyphen-engraver.cc:60
+msgid "unterminated hyphen"
+msgstr ""
+
+#: identifier.cc:46
 msgid "Wrong identifier type: "
 msgstr ""
 
-#: identifier.cc:49
+#: identifier.cc:47
 #, c-format
 msgid "%s expected"
 msgstr ""
 
-#: includable-lexer.cc:45 midi-score-parser.cc:24 scores.cc:110 scores.cc:115
+#: includable-lexer.cc:47 midi-score-parser.cc:24 scores.cc:108 scores.cc:114
 #, c-format
 msgid "can't find file: `%s'"
 msgstr ""
 
-#: ineq-constrained-qp.cc:167
+#: includable-lexer.cc:48
+#, c-format
+msgid ""
+"\n"
+"Search path is `%s'\n"
+msgstr ""
+
+#: ineq-constrained-qp.cc:169
 #, c-format
 msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
 msgstr ""
 
-#: ineq-constrained-qp.cc:222
+#: ineq-constrained-qp.cc:233
 msgid "didn't converge!"
 msgstr ""
 
-#: ineq-constrained-qp.cc:224
+#: ineq-constrained-qp.cc:235
 msgid "Too much degeneracy. "
 msgstr ""
 
-#: key-engraver.cc:133
+#: key-def.cc:31
 msgid "No key name: assuming `C'"
 msgstr ""
 
-#: lily-guile.cc:63
+#: key-def.cc:92
+msgid "don't know how handle empty keys"
+msgstr ""
+
+#: lily-guile.cc:84 lily-guile.cc:107
 #, c-format
 msgid "Can not find file `%s'"
 msgstr ""
 
-#: lily-guile.cc:65
+#: lily-guile.cc:86 lily-guile.cc:109
 #, c-format
 msgid "(Load path is `%s'"
 msgstr ""
 
-#: local-key-engraver.cc:39
+#: local-key-engraver.cc:42
 msgid "out of tune"
 msgstr ""
 
-#: local-key-engraver.cc:39 time-signature-engraver.cc:28
+#: local-key-engraver.cc:42 time-signature-engraver.cc:28
 msgid "can't find"
 msgstr ""
 
-#: lookup.cc:375
+#: lookup.cc:103
 #, c-format
-msgid "guessing dimensions for font style: `%s'"
+msgid "Can't open `%s'\n"
 msgstr ""
 
-#: lookup.cc:500
-msgid "bracket"
+#: lookup.cc:104
+#, c-format
+msgid "Search path %s\n"
+msgstr ""
+
+#: lookup.cc:105
+msgid "Aborting"
 msgstr ""
 
-#: main.cc:81
+#: lookup.cc:434
+#, c-format
+msgid "Non-matching braces in text `%s', adding braces."
+msgstr ""
+
+#: main.cc:85
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr ""
 
-#: main.cc:82
+#: main.cc:86
 msgid "Typeset music and or play MIDI from FILE or <stdin>"
 msgstr ""
 
-#: main.cc:48 main.cc:85
+#: main.cc:47 main.cc:89
 msgid "Options:"
 msgstr ""
 
-#: main.cc:88
+#: main.cc:92
 msgid "  -a, --about            about LilyPond\n"
 msgstr ""
 
-#: main.cc:54 main.cc:91
-msgid "  -D, --debug            enable debugging output\n"
+#: main.cc:95
+msgid "  -d, --debug            enable debugging output\n"
 msgstr ""
 
-#: main.cc:94
+#: main.cc:98
 msgid ""
-"  -d, --dependencies     write Makefile dependencies for every input file\n"
+"  -M, --dependencies     write Makefile dependencies for every input file\n"
 msgstr ""
 
-#: main.cc:57 main.cc:97
+#: main.cc:56 main.cc:101
 msgid "  -h, --help             this help\n"
 msgstr ""
 
-#: main.cc:100
+#: main.cc:104
 msgid "  -f, --output-format=X  use output format X\n"
 msgstr ""
 
-#: main.cc:60 main.cc:103
+#: main.cc:59 main.cc:107
 msgid "  -I, --include=DIR      add DIR to search path\n"
 msgstr ""
 
-#: main.cc:106
+#: main.cc:110
 msgid "  -i, --init=FILE        use FILE as init file\n"
 msgstr ""
 
-#: main.cc:109
-msgid "  -M, --no-paper         produce midi output only\n"
+#: main.cc:113
+msgid "  -m, --no-paper         produce midi output only\n"
 msgstr ""
 
-#: main.cc:112
+#: main.cc:116
 msgid "  -o, --output=FILE      set FILE as default output base\n"
 msgstr ""
 
-#: main.cc:115
+#: main.cc:119
 msgid "  -Q, --find-old-relative show all changes in relative syntax\n"
 msgstr ""
 
-#: main.cc:118
+#: main.cc:122
 msgid ""
 "  -s, --safe             inhibit file output naming and exporting TeX  "
 "macros\n"
 msgstr ""
 
-#: main.cc:120
+#: main.cc:124
 msgid "  -t, --test             switch on experimental features\n"
 msgstr ""
 
-#: main.cc:78 main.cc:123
+#: main.cc:77 main.cc:127
 msgid "  -T, --no-timestamps    don't timestamp the output\n"
 msgstr ""
 
-#: main.cc:126
+#: main.cc:130
 msgid "  -V, --ignore-version   ignore mudela version\n"
 msgstr ""
 
-#: main.cc:87 main.cc:129
+#: main.cc:86 main.cc:133
 msgid "  -w, --warranty         show warranty and copyright\n"
 msgstr ""
 
-#: main.cc:132
+#: main.cc:136
 msgid "GNU LilyPond was compiled with the following settings:"
 msgstr ""
 
-#: main.cc:160
+#: main.cc:166
 msgid "GNU LilyPond is Free software, see --warranty"
 msgstr ""
 
-#: main.cc:107 main.cc:163 main.cc:176
+#: main.cc:106 main.cc:169 main.cc:182
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr ""
 
-#: main.cc:109 main.cc:165 main.cc:178
+#: main.cc:108 main.cc:171 main.cc:184
 msgid "Han-Wen Nienhuys <hanwen@cs.uu.nl>"
 msgstr ""
 
-#: main.cc:110 main.cc:166 main.cc:179
+#: main.cc:109 main.cc:172 main.cc:185
 msgid "Jan Nieuwenhuizen <janneke@gnu.org>"
 msgstr ""
 
-#: main.cc:174
+#: main.cc:180
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr ""
 
-#: main.cc:113 main.cc:182
+#: main.cc:112 main.cc:188
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -412,16 +493,21 @@
 "USA.\n"
 msgstr ""
 
-#: midi-item.cc:364
+#: midi-item.cc:303
+#, c-format
+msgid "No such instrument: `%s'"
+msgstr ""
+
+#: midi-item.cc:357
 #, c-format
 msgid "unconventional key: flats: %d, sharps: %d"
 msgstr ""
 
-#: midi-item.cc:411
+#: midi-item.cc:402
 msgid "silly duration"
 msgstr ""
 
-#: midi-item.cc:424
+#: midi-item.cc:415
 msgid "silly pitch"
 msgstr ""
 
@@ -429,248 +515,260 @@
 msgid "error syncing file (disk full?)"
 msgstr ""
 
-#: music-list.cc:92
-msgid "\\relative mode changed here, old value: "
+#: music-output-def.cc:56
+msgid "Interpretation context with empty type"
 msgstr ""
 
-#: music-output-def.cc:78
+#: music-output-def.cc:83
 msgid "Can't find Score context"
 msgstr ""
 
-#: musical-request.cc:97
+#: musical-request.cc:42
 #, c-format
 msgid "transposition by %s makes accidental larger than two"
 msgstr ""
 
-#: musical-request.cc:401
-#, c-format
-msgid "never heard of dynamic scale `\\%s', assuming %s"
-msgstr ""
-
-#: my-lily-lexer.cc:132
+#: my-lily-lexer.cc:137
 #, c-format
 msgid "redeclaration of `\\%s'"
 msgstr ""
 
-#: my-lily-lexer.cc:138
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "Identifier name is a keyword (`%s')"
 msgstr ""
 
-#: my-lily-lexer.cc:166
+#: my-lily-lexer.cc:172
 #, c-format
 msgid "error at EOF: %s"
 msgstr ""
 
-#: my-lily-parser.cc:57
+#: my-lily-parser.cc:60
 msgid "Parsing..."
 msgstr ""
 
-#: my-lily-parser.cc:66
+#: my-lily-parser.cc:69
 msgid "braces don't match"
 msgstr ""
 
-#: my-lily-parser.cc:273
-msgid "invalid inversion pitch (not part of chord)"
+#: paper-def.cc:95
+#, c-format
+msgid "unknown paper variable: `%s'"
+msgstr ""
+
+#: paper-def.cc:99
+msgid "not a real variable"
 msgstr ""
 
-#: p-score.cc:172
-msgid "Can't solve this casting problem exactly; revert to Word_wrap"
+#. for now; breaks -fscm output
+#: paper-def.cc:251
+msgid "outputting Score, defined at: "
 msgstr ""
 
-#: p-score.cc:193
-msgid "Preprocessing elements..."
+#: paper-def.cc:280
+#, c-format
+msgid "Paper output to %s..."
 msgstr ""
 
-#: p-score.cc:197
-msgid "Calculating column positions..."
+#: mudela-stream.cc:85 paper-outputter.cc:76 performance.cc:97
+msgid ", at "
 msgstr ""
 
-#: paper-def.cc:59
+#: paper-outputter.cc:130
 #, c-format
-msgid "unknown paper variable: `%s'"
+msgid "Improbable offset for object type `%s'"
 msgstr ""
 
-#: paper-def.cc:63
-msgid "not a real variable"
+#: paper-score.cc:131
+msgid "Can't solve this casting problem exactly; revert to Word_wrap"
 msgstr ""
 
-#. for now; breaks -fscm output
-#: paper-def.cc:228
-msgid "outputting Score, defined at: "
+#: paper-score.cc:156
+msgid "Preprocessing elements..."
 msgstr ""
 
-#: paper-def.cc:260
-#, c-format
-msgid "Paper output to %s..."
+#: paper-score.cc:160
+msgid "Calculating column positions..."
 msgstr ""
 
-#: mudela-stream.cc:85 paper-outputter.cc:61 performance.cc:68
-msgid ", at "
+#: paper-score.cc:179
+msgid " elements. "
+msgstr ""
+
+#: paper-score.cc:182
+msgid "Line ... "
+msgstr ""
+
+#: performance.cc:50
+msgid "Track ... "
 msgstr ""
 
 #. perhaps multiple text events?
-#: performance.cc:54
+#: performance.cc:77
 msgid "Creator: "
 msgstr ""
 
-#: performance.cc:63
+#: performance.cc:92
 msgid "Automatically generated"
 msgstr ""
 
-#: performance.cc:76
+#: performance.cc:106
 #, c-format
 msgid "from musical definition: %s"
 msgstr ""
 
-#: performance.cc:141
+#: performance.cc:174
 #, c-format
 msgid "MIDI output to %s..."
 msgstr ""
 
-#: plet-engraver.cc:86
-msgid "unterminated plet"
-msgstr ""
-
 #: qlpsolve.cc:88 qlpsolve.cc:139
 msgid "degenerate constraints"
 msgstr ""
 
-#: repeated-music-iterator.cc:58
-msgid "No one to print a volta bracket"
-msgstr ""
-
-#: request-iterator.cc:72
+#: request-chord-iterator.cc:73
 #, c-format
 msgid "junking request: `%s'"
 msgstr ""
 
-#: request-iterator.cc:75
+#: request-chord-iterator.cc:76
 #, c-format
 msgid "Huh? Not a Request: `%s'"
 msgstr ""
 
-#: score-column.cc:55
-#, c-format
-msgid "ignoring zero duration added to column at %s"
+#: rest-collision.cc:64
+msgid "Too many colliding rests."
 msgstr ""
 
-#: score-engraver.cc:143
+#: rest-collision.cc:68
+msgid "Too many notes for rest collision."
+msgstr ""
+
+#: score-engraver.cc:149
 #, c-format
 msgid "Unbound spanner `%s'"
 msgstr ""
 
-#: score.cc:57
+#: score.cc:56
 msgid "no toplevel translator"
 msgstr ""
 
-#: score.cc:60
+#: score.cc:59
 msgid "Interpreting music..."
 msgstr ""
 
-#: score.cc:71
+#: score.cc:70
 msgid "need music in a score"
 msgstr ""
 
 #. should we? hampers debugging.
-#: score.cc:107
+#: score.cc:83
 msgid "errors found, /*not processing score*/"
 msgstr ""
 
-#: scores.cc:34
+#: score.cc:88
+#, c-format
+msgid "time: %.2f seconds"
+msgstr ""
+
+#: scores.cc:35
 #, c-format
 msgid "writing dependency file: `%s'..."
 msgstr ""
 
-#: scores.cc:78
+#: scores.cc:79
 msgid "score contains errors; will not process it"
 msgstr ""
 
-#: script.cc:61
-msgid "script needs stem direction"
+#: scores.cc:109
+#, c-format
+msgid "Search path: %s"
 msgstr ""
 
-#: slur-engraver.cc:50
+#: script-engraver.cc:49
+#, c-format
+msgid "don't know how to interpret articulation `%s'\n"
+msgstr ""
+
+#. this shouldn't happen, but let's continue anyway.
+#: single-malt-grouping-item.cc:42
+msgid "Single_malt_grouping_item: I've been drinking too much"
+msgstr ""
+
+#: slur-engraver.cc:64
 msgid "unterminated slur"
 msgstr ""
 
-#: slur-engraver.cc:66
+#: slur-engraver.cc:80
 #, c-format
 msgid "can't find both ends of %s"
 msgstr ""
 
-#: slur-engraver.cc:66
+#: slur-engraver.cc:80
 msgid "slur"
 msgstr ""
 
-#: slur.cc:42
-msgid "Putting slur over rest."
+#: slur.cc:39
+msgid "Putting slur over rest. Ignoring"
 msgstr ""
 
-#: spanner.cc:44
-msgid "left spanpoint is right spanpoint\n"
+#: spacing-spanner.cc:215
+#, c-format
+msgid "can't find a ruling note at %s"
 msgstr ""
 
-#: spanner.cc:101
+#: spacing-spanner.cc:221
 #, c-format
-msgid "Spanner `%s' with equal left and right spanpoints"
+msgid "no minimum in measure at %s"
 msgstr ""
 
-#: spring-spacer.cc:83
+#: spanner.cc:39
+msgid "left spanpoint is right spanpoint\n"
+msgstr ""
+
+#: spanner.cc:109
 #, c-format
-msgid "unconnected column: %d"
+msgid "Spanner `%s' with equal left and right spanpoints"
 msgstr ""
 
-#: spring-spacer.cc:187
+#: spring-spacer.cc:134
 msgid "I'm too fat; call Oprah"
 msgstr ""
 
-#: spring-spacer.cc:345
+#: spring-spacer.cc:295
 msgid "solution doesn't satisfy constraints"
 msgstr ""
 
-#: spring-spacer.cc:625
+#: stem-engraver.cc:80
 #, c-format
-msgid "can't find a ruling note at %s"
-msgstr ""
-
-#: spring-spacer.cc:631
-#, c-format
-msgid "no minimum in measure at %s"
+msgid "Adding note head to incompatible stem (type = %d)"
 msgstr ""
 
-#: staff-side.cc:61
-msgid ""
-"Staff_side::get_position_f(): somebody forgot to set my direction, returning "
-"-20"
-msgstr ""
-
-#: stem.cc:101
+#: stem.cc:106
 msgid "weird stem size; check for narrow beams"
 msgstr ""
 
-#: symtable.cc:50
+#: tfm-reader.cc:108
 #, c-format
-msgid "Symtable `%s': unknown symbol: `%s'"
+msgid "TFM header of `%s' has only %u word(s)"
 msgstr ""
 
-#: symtable.cc:61
+#: tfm-reader.cc:146
 #, c-format
-msgid "Symtable `%s' unknown"
+msgid "%s: TFM file has %u parameters, which is more than the"
 msgstr ""
 
-#: text-item.cc:49
-msgid ""
-"Text_item::get_position_f(): somebody forgot to set my vertical direction, "
-"returning -20"
+#: tfm.cc:64
+#, c-format
+msgid "can't find ascii character `%d'"
 msgstr ""
 
-#: tie.cc:50
-msgid "lonely tie"
+#: tie-engraver.cc:155 tie-performer.cc:106
+msgid "No ties were created!"
 msgstr ""
 
-#: ties-engraver.cc:78
-msgid "Can't find a note head at the right to attach Tie"
+#: tie.cc:55
+msgid "lonely tie"
 msgstr ""
 
 #: time-description.cc:17
@@ -685,143 +783,164 @@
 msgid "partial measure too large"
 msgstr ""
 
+#: time-scaled-music-iterator.cc:25
+msgid "No one to print a tuplet start bracket"
+msgstr ""
+
 #: time-signature-engraver.cc:28
 msgid "lost in time"
 msgstr ""
 
-#: timing-translator.cc:31
+#: timing-translator.cc:26
 msgid "conflicting timing request"
 msgstr ""
 
-#: timing-translator.cc:67
+#: timing-translator.cc:62
 msgid "time signature change not allowed here"
 msgstr ""
 
-#: timing-translator.cc:90
+#: timing-translator.cc:83
 #, c-format
 msgid "barcheck failed by: %s"
 msgstr ""
 
-#: translator-ctors.cc:40
+#: translator-ctors.cc:39
 #, c-format
 msgid "unknown translator `%s'"
 msgstr ""
 
-#: translator-group.cc:182
+#: translator-group.cc:82 translator-group.cc:97
+#, c-format
+msgid "Already contains a `%s'"
+msgstr ""
+
+#: translator-group.cc:207
 #, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr ""
 
-#: translator-group.cc:300
+#: translator-group.cc:341
 #, c-format
 msgid "can't find or create `%s'"
 msgstr ""
 
-#: translator-group.cc:390
+#: translator-group.cc:437 translator-group.cc:446
 #, c-format
 msgid "can't find `%s'"
 msgstr ""
 
-#: transposed-music.cc:33
-msgid "Will ignore \relative for transposed music"
+#: transposed-music.cc:31
+msgid "Will ignore \\relative for transposed music"
+msgstr ""
+
+#: unfolded-repeat-iterator.cc:145
+msgid "No one to print a volta bracket"
 msgstr ""
 
-#: word-wrap.cc:68
+#: word-wrap.cc:75
 msgid "ugh, this measure is too long"
 msgstr ""
 
-#: word-wrap.cc:69
+#: word-wrap.cc:76
 #, c-format
 msgid "breakpoint: %d"
 msgstr ""
 
-#: word-wrap.cc:70
+#: word-wrap.cc:77
 msgid "generating stupido solution"
 msgstr ""
 
-#: word-wrap.cc:88
+#: word-wrap.cc:95
 msgid "I don't fit; put me on Montignac"
 msgstr ""
 
-#: parser.yy:340 parser.yy:343
+#: parser.yy:55
 #, c-format
-msgid "incorrect mudela version: %s (%s, %s)"
+msgid "Oldest supported input version: %s"
+msgstr ""
+
+#: parser.yy:313
+msgid "Cannot evaluate Scheme in safe mode"
 msgstr ""
 
-#: parser.yy:480
+#: parser.yy:433 parser.yy:441 parser.yy:465
 msgid "Need a translator group for a context"
 msgstr ""
 
-#: parser.yy:498
+#: parser.yy:459
 msgid "Wrong type for property value"
 msgstr ""
 
-#: parser.yy:547
+#: parser.yy:515
 msgid "More than one music block"
 msgstr ""
 
-#: parser.yy:1136 parser.yy:1389
-msgid "have to be in Lyric mode for lyrics"
-msgstr ""
-
-#: parser.yy:1337 parser.yy:1357
+#: parser.yy:946 parser.yy:1360 parser.yy:1380
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
-#: parser.yy:1359
+#: parser.yy:948 parser.yy:1382
 msgid "can't abbreviate"
 msgstr ""
 
-#: parser.yy:1369
+#: parser.yy:1211 parser.yy:1219 parser.yy:1444
+msgid "have to be in Lyric mode for lyrics"
+msgstr ""
+
+#: parser.yy:1391
 msgid "have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:1395
-msgid "have to be in Chord mode for chords"
+#: parser.yy:1403
+msgid "can't abbreviate tuplet"
 msgstr ""
 
-#: parser.yy:1400
-msgid "have to be in Note mode for @chords"
+#: parser.yy:1450
+msgid "have to be in Chord mode for chords"
 msgstr ""
 
-#: lexer.ll:131
+#: lexer.ll:155
 msgid "EOF found inside a comment"
 msgstr ""
 
-#: lexer.ll:175
+#: lexer.ll:199
 #, c-format
 msgid "undefined identifier: `%s'"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:180
+#: lexer.ll:204
 msgid "missing end quote"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:203 lexer.ll:207
+#: lexer.ll:227 lexer.ll:231
 msgid "white expected"
 msgstr ""
 
-#: lexer.ll:362
+#: lexer.ll:401
 #, c-format
-msgid "illegal character: `%c'"
+msgid "invalid character: `%c'"
 msgstr ""
 
-#: lexer.ll:418
+#: lexer.ll:457
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr ""
 
+#: lexer.ll:543
+#, c-format
+msgid "incorrect mudela version: %s (%s, %s)"
+msgstr ""
+
 #: out/BLURB.hh:2
 msgid ""
-"LilyPond is the GNU Project music typesetter.  This program can print\n"
-"beautiful sheet music from a music definition file.  It can also play\n"
-"mechanical performances to a MIDI file.  Features include multiple\n"
-"staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n"
-"beams, slurs, triplets, named chords, transposing, formatting scores, \n"
-"part extraction.  It includes a nice font of musical symbols.\n"
+"LilyPond is a music typesetter.  It produces beautiful sheet music\n"
+"using a high level description file as input.  LilyPond is part of \n"
+"the GNU Project.\n"
+"\n"
+"\n"
 msgstr ""
 
 #: out/COPERTINA.hh:2
@@ -849,161 +968,163 @@
 "individuele partijen.  Een fraaie set muziektekens is inbegrepen.\n"
 msgstr ""
 
-#: main.cc:43
+#: main.cc:42
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
 msgstr ""
 
-#: main.cc:45
+#: main.cc:44
 msgid "Translate midi-file to mudela"
 msgstr ""
 
-#: main.cc:51
+#: main.cc:50
 msgid "  -b, --no-quantify      write exact durations, e.g.: a4*385/384\n"
 msgstr ""
 
-#: main.cc:63
+#: main.cc:53
+msgid "  -D, --debug            enable debugging output\n"
+msgstr ""
+
+#: main.cc:62
 msgid "  -k, --key=ACC[:MINOR]  set key: ACC +sharps/-flats; :1 minor\n"
 msgstr ""
 
-#: main.cc:66
+#: main.cc:65
 msgid ""
-"  -n, --no-silly         assume no plets or double dots, smallest is 32\n"
+"  -n, --no-silly         assume no tuplets or double dots, smallest is 32\n"
 msgstr ""
 
-#: main.cc:69
+#: main.cc:68
 msgid "  -o, --output=FILE      set FILE as default output\n"
 msgstr ""
 
-#: main.cc:72
-msgid "  -p, --no-plets         assume no plets\n"
+#: main.cc:71
+msgid "  -p, --no-tuplets       assume no tuplets\n"
 msgstr ""
 
-#: main.cc:75
+#: main.cc:74
 msgid "  -q, --quiet            be quiet\n"
 msgstr ""
 
-#: main.cc:81
+#: main.cc:80
 msgid ""
 "  -s, --smallest=N       assume no shorter (reciprocal) durations than N\n"
 msgstr ""
 
-#: main.cc:84
+#: main.cc:83
 msgid "  -v, --verbose          be verbose\n"
 msgstr ""
 
-#: main.cc:90
+#: main.cc:89
 msgid "  -x, --no-double-dots   assume no double dotted notes\n"
 msgstr ""
 
-#: main.cc:105
-msgid "Mi2mu, translate midi to mudela"
+#: main.cc:104
+msgid "Midi2ly, translate midi to mudela"
 msgstr ""
 
 #: midi-parser.cc:64
 msgid "zero length string encountered"
 msgstr ""
 
-#: midi-score-parser.cc:45
+#: midi-score-parser.cc:44
 msgid "MIDI header expected"
 msgstr ""
 
-#: midi-score-parser.cc:50
+#: midi-score-parser.cc:49
 msgid "Invalid header length"
 msgstr ""
 
-#: midi-score-parser.cc:53
+#: midi-score-parser.cc:52
 msgid "Invalid midi format"
 msgstr ""
 
-#: midi-score-parser.cc:56
+#: midi-score-parser.cc:55
 msgid "Invalid number of tracks"
 msgstr ""
 
-#: midi-score-parser.cc:59
+#: midi-score-parser.cc:58
 #, c-format
 msgid "can't handle %s"
 msgstr ""
 
-#: midi-score-parser.cc:59
+#: midi-score-parser.cc:58
 msgid "non-metrical time"
 msgstr ""
 
-#: midi-score-parser.cc:95
+#: midi-score-parser.cc:94
 msgid "Parsing...\n"
 msgstr ""
 
-#: midi-track-parser.cc:70
+#: midi-track-parser.cc:68
 #, c-format
 msgid "junking note-end event: channel = %d, pitch = %d"
 msgstr ""
 
-#: midi-track-parser.cc:125
+#: midi-track-parser.cc:124
 msgid "invalid running status"
 msgstr ""
 
-#: midi-track-parser.cc:326
+#: midi-track-parser.cc:328
 msgid "unimplemented MIDI meta-event"
 msgstr ""
 
-#: midi-track-parser.cc:331
+#: midi-track-parser.cc:333
 msgid "invalid MIDI event"
 msgstr ""
 
-#: midi-track-parser.cc:346
+#: midi-track-parser.cc:348
 msgid "MIDI track expected"
 msgstr ""
 
-#: midi-track-parser.cc:351
+#: midi-track-parser.cc:353
 msgid "invalid track length"
 msgstr ""
 
-#: mudela-item.cc:107
+#: mudela-item.cc:160
 #, c-format
 msgid "#32 in quarter: %d"
 msgstr ""
 
-#: mudela-score.cc:117
+#: mudela-score.cc:108
 #, c-format
 msgid "Lily output to %s..."
 msgstr ""
 
-#: mudela-score.cc:127 mudela-score.cc:175
+#: mudela-score.cc:119 mudela-score.cc:168
 msgid "track "
 msgstr ""
 
-#: mudela-score.cc:160
+#: mudela-score.cc:155
 msgid "Processing..."
 msgstr ""
 
-#: mudela-score.cc:171
+#: mudela-score.cc:164
 msgid "Creating voices..."
 msgstr ""
 
-#: mudela-score.cc:184
+#: mudela-score.cc:177
 msgid "NOT Filtering tempo..."
 msgstr ""
 
-#: mudela-score.cc:193
+#: mudela-score.cc:186
 msgid "NOT Quantifying columns..."
 msgstr ""
 
-#: mudela-score.cc:197
+#: mudela-score.cc:190
 msgid "Quantifying columns..."
 msgstr ""
 
-#.    LOGOUT(NORMAL_ver) << '\n' << "NOT Settling columns..." << endl;
-#.    return;
-#: mudela-score.cc:232
+#: mudela-score.cc:223
 msgid "Settling columns..."
 msgstr ""
 
-#: mudela-staff.cc:107
+#: mudela-staff.cc:111
 #, c-format
 msgid "% midi copyright:"
 msgstr ""
 
-#: mudela-staff.cc:108
+#: mudela-staff.cc:112
 #, c-format
 msgid "% instrument:"
 msgstr ""
diff -urN ../lilypond-1.2.0/po/nl.po ./po/nl.po
--- ../lilypond-1.2.0/po/nl.po	Tue Feb 23 11:32:06 1999
+++ ./po/nl.po	Mon Aug 16 09:37:58 1999
@@ -1,26 +1,22 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
 # nl.po -- GNU LilyPond's dutch language file
-# Copyright (C) 1998 Free Software Foundation, Inc.
 # Jan Nieuwenhuizen <janneke@gnu.org>
 # Han-Wen Nienhuys <hanwen@cs.uu.nl>, 1998.
 #
 msgid ""
 msgstr ""
+"POT-Creation-Date: 1999-08-15 23:58+0200\n"
+"Content-Type: text/plain; charset=\n"
 "Date: 1998-05-26 11:26:28+0200\n"
 "From:  <janneke@gnu.org>\n"
-"Content-Type: text/plain; charset=\n"
-"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po --add-comments --keyword=_\n"
+"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po "
+"--add-comments --keyword=_\n"
 "Files: bow.cc int.cc\n"
 
 #: data-file.cc:52
 msgid "EOF in a string"
 msgstr "EOF in een string"
 
-#: data-file.cc:121 input.cc:86 midi-parser.cc:100 warn.cc:21
+#: data-file.cc:116 input.cc:86 midi-parser.cc:100 warn.cc:21
 msgid "warning: "
 msgstr "waarschuwing: "
 
@@ -75,7 +71,7 @@
 msgid "Non fatal error: "
 msgstr "Niet noodlottige fout: "
 
-#: input.cc:105 source-file.cc:64 source-file.cc:157
+#: input.cc:105 source-file.cc:63 source-file.cc:156
 msgid "position unknown"
 msgstr "positie onbekend"
 
@@ -96,106 +92,106 @@
 msgid "Huh? got %d, expected %d characters"
 msgstr "Huh? kreeg %d, verwachtte %d tekens"
 
-#: abbreviation-beam-engraver.cc:72
-msgid "unterminated beam"
-msgstr "onafgesloten balk"
+#: warn.cc:33
+msgid "Programming error: "
+msgstr "Programmeer fout: "
+
+#: warn.cc:33
+msgid " (continuing; cross thumbs)"
+msgstr " (ik ga verder; duim voor mij)"
 
-#: afm.cc:127
+#: afm.cc:129
 #, c-format
 msgid "can't find character called `%s'"
-msgstr ""
+msgstr "kan teken niet vinden, genaamd: `%s'"
 
-#: afm.cc:151
+#: afm.cc:154
 #, c-format
 msgid "can't find character number %d"
-msgstr ""
+msgstr "kan teken niet vinden met nummer %d"
+
+#: all-font-metrics.cc:69
+#, c-format
+msgid "Can't find font `%s', loading default font."
+msgstr "Kan font `%s' niet vinden, laad verval font"
 
 #: all-font-metrics.cc:74
 #, c-format
 msgid "Can't find default font `%s', giving up."
-msgstr ""
+msgstr "Kan verval font `%s' niet vinden, ik geef op."
 
 #: all-font-metrics.cc:75
 #, c-format
 msgid "search path = %s"
-msgstr ""
+msgstr "zoek pad = %s"
 
-#: beam-engraver.cc:37
+#: beam-engraver.cc:42
 msgid "No Beam to end"
-msgstr ""
+msgstr "Geen Balk te beëidigen"
 
-#: beam-engraver.cc:53
+#: beam-engraver.cc:58
 msgid "No beam to end"
-msgstr ""
+msgstr "Geen balk te beëindigen"
 
-#: beam-engraver.cc:66
+#: beam-engraver.cc:87
 msgid "Already have a Beam"
-msgstr ""
+msgstr "Heb al een Balk"
 
-#: beam-engraver.cc:132
+#: beam-engraver.cc:149
 msgid "Unfinished beam"
-msgstr ""
+msgstr "Onbeëindigde balk"
 
-#: beam-engraver.cc:152
+#: beam-engraver.cc:174
 msgid "Stem must have Rhythmic structure."
-msgstr ""
+msgstr "Stok moet Ritmische structuur hebben."
 
-#: beam-engraver.cc:164
+#: beam-engraver.cc:185
 msgid "stem doesn't fit in beam"
 msgstr "stok past niet in balk"
 
-#: beam-engraver.cc:165
+#: beam-engraver.cc:186
 msgid "beam was started here"
-msgstr ""
-
-#: beam-engraver.cc:176
-msgid "please fix me"
-msgstr "repareer mij alsjeblieft"
+msgstr "balk is hier gestart"
 
-#: beam-engraver.cc:177
-#, c-format
-msgid "stem at %s doesn't fit in beam"
-msgstr "stok op %s past niet in balk"
-
-#: beam.cc:117
+#: beam.cc:142
 msgid "beam with less than two stems"
 msgstr "balk met minder dan twee stokken"
 
-#: beam.cc:260
+#: beam.cc:307
 msgid "weird beam shift, check your knees"
 msgstr "vreemde balk verplaatsing, controleer uw knie-en"
 
-#: break.cc:25
+#: break-algorithm.cc:25
 msgid "0 lines"
 msgstr "0 regels"
 
-#: break.cc:27
+#: break-algorithm.cc:27
 #, c-format
 msgid "1 line (of %.0f columns)"
 msgstr "1 regel (van %.0f kolommen)"
 
-#: break.cc:29
+#: break-algorithm.cc:29
 #, c-format
 msgid "%d lines (with an average of %.1f columns)"
 msgstr "%d regels (van gemiddeld %.1f kolommen)"
 
-#: break.cc:148
+#: break-algorithm.cc:148
 msgid "score does not have any columns"
 msgstr "partituur heeft geen enkele kolom"
 
-#: break.cc:174
+#: break-algorithm.cc:165
 #, c-format
-msgid "approximated: %s"
+msgid "approximated %s"
 msgstr "geschat: %s"
 
-#: break.cc:176
+#: break-algorithm.cc:167
 #, c-format
-msgid "calculated exactly: %s"
+msgid "calculated %s exactly"
 msgstr "exact berekend: %s"
 
-#: break.cc:177 score.cc:112
+#: break-algorithm.cc:168
 #, c-format
-msgid "time: %.2f seconds"
+msgid "elapsed time %.2f seconds"
 msgstr "duur: %.2f seconden"
 
 #: change-iterator.cc:22
@@ -203,41 +199,41 @@
 msgid "can't change `%s' to `%s'"
 msgstr "kan `%s' niet in `%s' veranderen"
 
-#: chord.cc:185
+#: chord-tremolo-engraver.cc:41 chord-tremolo-engraver.cc:58
+msgid "No abbreviation beam to end"
+msgstr ""
+
+#: chord-tremolo-engraver.cc:83
+msgid "Already have an abbreviation beam"
+msgstr ""
+
+#: chord-tremolo-engraver.cc:124
+msgid "Unfinished abbreviation beam"
+msgstr ""
+
+#: chord.cc:231
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr ""
 
-#: chord.cc:199
+#: chord.cc:245
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr ""
 
-#: clef-engraver.cc:175
+#: clef-engraver.cc:178
 msgid "unknown clef type "
 msgstr "onbekende sleutel"
 
-#: collision.cc:63
-msgid "No stem direction set. Ignoring column in clash."
-msgstr "Geen stokrichting gezet.  Negeer kolom in botsing."
-
-#: collision.cc:76
+#: collision.cc:95
 msgid "Too many clashing notecolumns. Ignoring them."
 msgstr "Te veel botsende nootkolommen.  Ik negeer ze."
 
-#: command-request.cc:217
-msgid "don't know how handle empty keys"
-msgstr ""
-
-#: compressed-music-iterator.cc:25
-msgid "No one to print a tuplet start bracket"
-msgstr ""
-
-#: crescendo.cc:47
+#: crescendo.cc:42
 msgid "crescendo"
 msgstr ""
 
-#: crescendo.cc:47
+#: crescendo.cc:42
 msgid "too small"
 msgstr "te klein"
 
@@ -253,197 +249,236 @@
 msgid "NaN"
 msgstr "NaN"
 
-#: dynamic-engraver.cc:91
+#: dynamic-engraver.cc:109
 msgid "Got a dynamic already.  Continuing dazed and confused"
 msgstr ""
 
-#: dynamic-engraver.cc:125
+#: dynamic-engraver.cc:162
 msgid "can't find (de)crescendo to end"
 msgstr ""
 
-#: dynamic-engraver.cc:155
+#: dynamic-engraver.cc:216
 msgid "Too many crescendi here"
 msgstr ""
 
-#: dynamic-engraver.cc:196
+#: dynamic-engraver.cc:254
 msgid "unended crescendo"
 msgstr "niet beeindigd crescendo"
 
-#: encompass-info.cc:79 stem-info.cc:123
-msgid "minVerticalAlign != maxVerticalAlign: interstaff slurs may be broken"
+#: encompass-info.cc:32
+msgid "Slur over rest?"
 msgstr ""
 
-#: extender-engraver.cc:65
+#: encompass-info.cc:67 stem-info.cc:140
+msgid ""
+"minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"
+msgstr ""
+
+#: extender-engraver.cc:62
 msgid "unterminated extender"
 msgstr ""
 
-#: identifier.cc:47
+#: folded-repeat-iterator.cc:64
+msgid "No one to print a repeat brace"
+msgstr ""
+
+#: grace-iterator.cc:43
+msgid "No Grace context available!"
+msgstr ""
+
+#: grace-position-engraver.cc:89
+msgid "Unattached grace notes. Attaching to last musical column."
+msgstr ""
+
+#: hyphen-engraver.cc:60
+msgid "unterminated hyphen"
+msgstr "onafgesloten balk"
+
+#: identifier.cc:46
 msgid "Wrong identifier type: "
 msgstr ""
 
-#: identifier.cc:48
+#: identifier.cc:47
 #, c-format
 msgid "%s expected"
 msgstr "%s verwacht"
 
-#: includable-lexer.cc:45 midi-score-parser.cc:24 scores.cc:111 scores.cc:117
+#: includable-lexer.cc:47 midi-score-parser.cc:24 scores.cc:108 scores.cc:114
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "kan bestand niet vinden: `%s'"
 
+#: includable-lexer.cc:48
+#, c-format
+msgid ""
+"\n"
+"Search path is `%s'\n"
+msgstr ""
+
 #: ineq-constrained-qp.cc:169
 #, c-format
 msgid "Ineq_constrained_qp::solve (): Constraint off by %f"
 msgstr "Ineq_constrained_qp::solve (): voorwaarde zit er %f naast"
 
-#: ineq-constrained-qp.cc:224
+#: ineq-constrained-qp.cc:233
 msgid "didn't converge!"
 msgstr "ik convergederde niet!"
 
-#: ineq-constrained-qp.cc:226
+#: ineq-constrained-qp.cc:235
 msgid "Too much degeneracy. "
 msgstr ""
 
-#: key-engraver.cc:133
+#: key-def.cc:31
 msgid "No key name: assuming `C'"
 msgstr ""
 
-#: lily-guile.cc:69
+#: key-def.cc:92
+msgid "don't know how handle empty keys"
+msgstr ""
+
+#: lily-guile.cc:84 lily-guile.cc:107
 #, c-format
 msgid "Can not find file `%s'"
 msgstr ""
 
-#: lily-guile.cc:71
+#: lily-guile.cc:86 lily-guile.cc:109
 #, c-format
 msgid "(Load path is `%s'"
 msgstr ""
 
-#: local-key-engraver.cc:39
+#: local-key-engraver.cc:42
 msgid "out of tune"
 msgstr "vals"
 
-#: local-key-engraver.cc:39 time-signature-engraver.cc:28
+#: local-key-engraver.cc:42 time-signature-engraver.cc:28
 msgid "can't find"
 msgstr "kan niet vinden"
 
-#: lookup.cc:102
+#: lookup.cc:103
 #, c-format
 msgid "Can't open `%s'\n"
 msgstr ""
 
-#: lookup.cc:103
+#: lookup.cc:104
 #, c-format
 msgid "Search path %s\n"
 msgstr ""
 
-#: lookup.cc:104
+#: lookup.cc:105
 msgid "Aborting"
 msgstr ""
 
-#: main.cc:84
+#: lookup.cc:434
+#, c-format
+msgid "Non-matching braces in text `%s', adding braces."
+msgstr ""
+
+#: main.cc:85
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]..."
 msgstr "Gebruik: %s [OPTIE]... [BESTAND]..."
 
-#: main.cc:85
+#: main.cc:86
 msgid "Typeset music and or play MIDI from FILE or <stdin>"
 msgstr "Zet muziek en of speel MIDI van FILE of <stdin>"
 
-#: main.cc:48 main.cc:88
+#: main.cc:47 main.cc:89
 msgid "Options:"
 msgstr "Opties:"
 
-#: main.cc:91
+#: main.cc:92
 msgid "  -a, --about            about LilyPond\n"
 msgstr "  -a, --about            over LilyPond\n"
 
-#: main.cc:54 main.cc:94
-msgid "  -D, --debug            enable debugging output\n"
+#: main.cc:95
+msgid "  -d, --debug            enable debugging output\n"
 msgstr "  -D, --debug            toon ontluis berichten\n"
 
-#: main.cc:97
+#: main.cc:98
 msgid ""
-"  -d, --dependencies     write Makefile dependencies for every input file\n"
+"  -M, --dependencies     write Makefile dependencies for every input file\n"
 msgstr ""
 "  -d, --dependencies     schrijf Makefile afhankelijkheden voor elk\n"
 "                           invoerbestand\n"
 
-#: main.cc:57 main.cc:100
+#: main.cc:56 main.cc:101
 msgid "  -h, --help             this help\n"
 msgstr "  -h, --help             deze hulp\n"
 
-#: main.cc:103
+#: main.cc:104
 msgid "  -f, --output-format=X  use output format X\n"
-msgstr ""
+msgstr "  -f, --output-format=X  gebruik uitvoer formaat X\n"
 
-#: main.cc:60 main.cc:106
+#: main.cc:59 main.cc:107
 msgid "  -I, --include=DIR      add DIR to search path\n"
 msgstr "  -I, --include=INDEX    voeg INDEX toe aan zoekpad\n"
 
-#: main.cc:109
+#: main.cc:110
 msgid "  -i, --init=FILE        use FILE as init file\n"
-msgstr "  -i, --init=BESTAND     gebruik BESTAND voor initialisatiebestand\n"
+msgstr "  -i, --init=BESTAND     gebruik BESTAND als initialisatiebestand\n"
 
-#: main.cc:112
-msgid "  -M, --no-paper         produce midi output only\n"
+#: main.cc:113
+msgid "  -m, --no-paper         produce midi output only\n"
 msgstr "  -M, --no-paper         produceer alleen midi uitvoer\n"
 
-#: main.cc:115
+#: main.cc:116
 msgid "  -o, --output=FILE      set FILE as default output base\n"
-msgstr ""
+msgstr "  -o, --output=BESTAND   zet BESTAND als uitvoer basis\n"
 
-#: main.cc:118
+#: main.cc:119
 msgid "  -Q, --find-old-relative show all changes in relative syntax\n"
-msgstr ""
+msgstr "  -Q, --find-old-relative toon veranderingen voor relatieve mode\n"
 
-#: main.cc:121
+#: main.cc:122
 msgid ""
 "  -s, --safe             inhibit file output naming and exporting TeX  "
 "macros\n"
 msgstr ""
+"  -s, --safe             verbiedt naamgeving van uitvoer bestand en TeX "
+"macro's\n"
 
-#: main.cc:123
+#: main.cc:124
 msgid "  -t, --test             switch on experimental features\n"
 msgstr "  -t, --test             doe experimentele kunstjes\n"
 
-#: main.cc:78 main.cc:126
+#: main.cc:77 main.cc:127
 msgid "  -T, --no-timestamps    don't timestamp the output\n"
 msgstr "  -T, --no-timestamps    zet geen tijdstempel in de uitvoer\n"
 
-#: main.cc:129
+#: main.cc:130
 msgid "  -V, --ignore-version   ignore mudela version\n"
 msgstr "  -V, --ignore-version   negeer mudela versie\n"
 
-#: main.cc:87 main.cc:132
+#: main.cc:86 main.cc:133
 msgid "  -w, --warranty         show warranty and copyright\n"
 msgstr "  -w, --warranty         toon garantie en copyright\n"
 
-#: main.cc:135
+#: main.cc:136
 msgid "GNU LilyPond was compiled with the following settings:"
 msgstr "GNU LilyPond is vertaald met de volgende instellingen:"
 
-#: main.cc:163
+#: main.cc:166
 msgid "GNU LilyPond is Free software, see --warranty"
 msgstr "GNU LilyPond is Vrij bedenksel, zie --warranty"
 
-#: main.cc:107 main.cc:166 main.cc:179
+#: main.cc:106 main.cc:169 main.cc:182
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright (c) %s "
 
-#: main.cc:109 main.cc:168 main.cc:181
+#: main.cc:108 main.cc:171 main.cc:184
 msgid "Han-Wen Nienhuys <hanwen@cs.uu.nl>"
 msgstr ""
 
-#: main.cc:110 main.cc:169 main.cc:182
+#: main.cc:109 main.cc:172 main.cc:185
 msgid "Jan Nieuwenhuizen <janneke@gnu.org>"
 msgstr ""
 
-#: main.cc:177
+#: main.cc:180
 msgid "GNU LilyPond -- The GNU Project music typesetter"
 msgstr "GNU LilyPond -- De Muziekzetter van het GNU Project"
 
-#: main.cc:113 main.cc:185
+#: main.cc:112 main.cc:188
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -473,109 +508,131 @@
 "dan naar de Free Software Foundation, Inc., 675 Mass Ave, Cambridge, \n"
 "MA 02139, USA.\n"
 
-#: midi-item.cc:364
+#: midi-item.cc:303
+#, c-format
+msgid "No such instrument: `%s'"
+msgstr ""
+
+#: midi-item.cc:357
 #, c-format
 msgid "unconventional key: flats: %d, sharps: %d"
 msgstr "vreemde toonsoort: %d mollen, %d kruizen"
 
-#: midi-item.cc:411
+#: midi-item.cc:402
 msgid "silly duration"
-msgstr ""
+msgstr "rare duur"
 
-#: midi-item.cc:424
+#: midi-item.cc:415
 msgid "silly pitch"
-msgstr ""
+msgstr "rare toonhoogte"
 
 #: midi-stream.cc:29 paper-stream.cc:36
 msgid "error syncing file (disk full?)"
 msgstr "kan file niet wegschrijven (disk vol?)"
 
-#: music-list.cc:92
-msgid "\\relative mode changed here, old value: "
+#: music-output-def.cc:56
+msgid "Interpretation context with empty type"
 msgstr ""
 
-#: music-output-def.cc:79
+#: music-output-def.cc:83
 msgid "Can't find Score context"
 msgstr ""
 
-#: musical-request.cc:97
+#: musical-request.cc:42
 #, c-format
 msgid "transposition by %s makes accidental larger than two"
 msgstr "transpositie van %s geeft tripel kruizen/mollen  "
 
-#: my-lily-lexer.cc:130
+#: my-lily-lexer.cc:137
 #, c-format
 msgid "redeclaration of `\\%s'"
 msgstr "`\\%s' wordt opnieuw gedeclareerd"
 
-#: my-lily-lexer.cc:136
+#: my-lily-lexer.cc:143
 #, c-format
 msgid "Identifier name is a keyword (`%s')"
 msgstr ""
 
-#: my-lily-lexer.cc:164
+#: my-lily-lexer.cc:172
 #, c-format
 msgid "error at EOF: %s"
 msgstr "fout aan het einde van file: %s"
 
-#: my-lily-parser.cc:58
+#: my-lily-parser.cc:60
 msgid "Parsing..."
 msgstr "Ontleden..."
 
-#: my-lily-parser.cc:67
+#: my-lily-parser.cc:69
 msgid "braces don't match"
 msgstr "haakjes passen niet"
 
-#: p-score.cc:116
-msgid "Can't solve this casting problem exactly; revert to Word_wrap"
-msgstr "Kan breekprobleem niet exact oplossen; verval naar Word_wrap"
-
-#: p-score.cc:196
-msgid "Preprocessing elements..."
-msgstr "Voorbewerken van elementen..."
-
-#: p-score.cc:200
-msgid "Calculating column positions..."
-msgstr "Berekenen van kolomposities..."
-
-#: paper-def.cc:73
+#: paper-def.cc:95
 #, c-format
 msgid "unknown paper variable: `%s'"
 msgstr "onbekende \\paper variabele"
 
-#: paper-def.cc:77
+#: paper-def.cc:99
 msgid "not a real variable"
 msgstr "variabele is geen reeal getal"
 
 #. for now; breaks -fscm output
-#: paper-def.cc:240
+#: paper-def.cc:251
 msgid "outputting Score, defined at: "
 msgstr ""
 
-#: paper-def.cc:275
+#: paper-def.cc:280
 #, c-format
 msgid "Paper output to %s..."
 msgstr ""
 
-#: mudela-stream.cc:85 paper-outputter.cc:74 performance.cc:70
+#: mudela-stream.cc:85 paper-outputter.cc:76 performance.cc:97
 msgid ", at "
 msgstr ", bij "
 
+#: paper-outputter.cc:130
+#, c-format
+msgid "Improbable offset for object type `%s'"
+msgstr ""
+
+#: paper-score.cc:131
+msgid "Can't solve this casting problem exactly; revert to Word_wrap"
+msgstr "Kan breekprobleem niet exact oplossen; verval naar Word_wrap"
+
+#: paper-score.cc:156
+msgid "Preprocessing elements..."
+msgstr "Voorbewerken van elementen..."
+
+#: paper-score.cc:160
+msgid "Calculating column positions..."
+msgstr "Berekenen van kolomposities..."
+
+#: paper-score.cc:179
+msgid " elements. "
+msgstr ""
+
+#: paper-score.cc:182
+msgid "Line ... "
+msgstr ""
+
+#: performance.cc:50
+msgid "Track ... "
+msgstr ""
+
 #. perhaps multiple text events?
-#: performance.cc:55
+#: performance.cc:77
 msgid "Creator: "
 msgstr "Schepper: "
 
-#: performance.cc:65
+#: performance.cc:92
 msgid "Automatically generated"
 msgstr "Automatisch gegenerederd"
 
-#: performance.cc:78
+#: performance.cc:106
 #, c-format
 msgid "from musical definition: %s"
 msgstr "van muzikale definitie: %s"
 
-#: performance.cc:143
+#: performance.cc:174
 #, c-format
 msgid "MIDI output to %s..."
 msgstr "MIDI uitvoer naar %s..."
@@ -584,47 +641,51 @@
 msgid "degenerate constraints"
 msgstr "voorwaarde is gedegenerederd"
 
-#: repeated-music-iterator.cc:50
-msgid "No one to print a volta bracket"
-msgstr ""
-
-#: request-iterator.cc:72
+#: request-chord-iterator.cc:73
 #, c-format
 msgid "junking request: `%s'"
 msgstr "schroot verzoek: `%s'"
 
-#: request-iterator.cc:75
+#: request-chord-iterator.cc:76
 #, c-format
 msgid "Huh? Not a Request: `%s'"
 msgstr ""
 
-#: score-column.cc:55
-#, c-format
-msgid "ignoring zero duration added to column at %s"
+#: rest-collision.cc:64
+msgid "Too many colliding rests."
 msgstr ""
 
-#: score-engraver.cc:143
+#: rest-collision.cc:68
+msgid "Too many notes for rest collision."
+msgstr ""
+
+#: score-engraver.cc:149
 #, c-format
 msgid "Unbound spanner `%s'"
 msgstr "Vrijgezelle spanner `%s'"
 
-#: score.cc:57
+#: score.cc:56
 msgid "no toplevel translator"
 msgstr ""
 
-#: score.cc:60
+#: score.cc:59
 msgid "Interpreting music..."
 msgstr "Vertolken van muziek..."
 
-#: score.cc:71
+#: score.cc:70
 msgid "need music in a score"
 msgstr "zonder muziek geen partituur"
 
 #. should we? hampers debugging.
-#: score.cc:107
+#: score.cc:83
 msgid "errors found, /*not processing score*/"
 msgstr ""
 
+#: score.cc:88
+#, c-format
+msgid "time: %.2f seconds"
+msgstr "duur: %.2f seconden"
+
 #: scores.cc:35
 #, c-format
 msgid "writing dependency file: `%s'..."
@@ -634,76 +695,71 @@
 msgid "score contains errors; will not process it"
 msgstr ""
 
-#: scores.cc:112
+#: scores.cc:109
 #, c-format
 msgid "Search path: %s"
 msgstr ""
 
-#: script.cc:61
-msgid "script needs stem direction"
-msgstr "schrift benodigt stokrichting"
+#: script-engraver.cc:49
+#, c-format
+msgid "don't know how to interpret articulation `%s'\n"
+msgstr ""
 
 #. this shouldn't happen, but let's continue anyway.
-#: single-malt-grouping-item.cc:40
-msgid "Single_malt_grouping_item: I've been drinking too much (fixme)"
+#: single-malt-grouping-item.cc:42
+msgid "Single_malt_grouping_item: I've been drinking too much"
 msgstr ""
 
-#: slur-engraver.cc:49
+#: slur-engraver.cc:64
 msgid "unterminated slur"
 msgstr "onsterfelijke boog"
 
-#: slur-engraver.cc:65
+#: slur-engraver.cc:80
 #, c-format
 msgid "can't find both ends of %s"
 msgstr "kan uiteinden van %s niet beide vinden"
 
-#: slur-engraver.cc:65
+#: slur-engraver.cc:80
 msgid "slur"
 msgstr ""
 
-#: slur.cc:41
-msgid "Putting slur over rest."
+#: slur.cc:39
+msgid "Putting slur over rest. Ignoring"
 msgstr ""
 
-#: spanner.cc:44
-msgid "left spanpoint is right spanpoint\n"
+#: spacing-spanner.cc:215
+#, c-format
+msgid "can't find a ruling note at %s"
 msgstr ""
 
-#: spanner.cc:105
+#: spacing-spanner.cc:221
 #, c-format
-msgid "Spanner `%s' with equal left and right spanpoints"
+msgid "no minimum in measure at %s"
+msgstr ""
+
+#: spanner.cc:39
+msgid "left spanpoint is right spanpoint\n"
 msgstr ""
 
-#: spring-spacer.cc:85
+#: spanner.cc:109
 #, c-format
-msgid "unconnected column: %d"
+msgid "Spanner `%s' with equal left and right spanpoints"
 msgstr ""
 
-#: spring-spacer.cc:189
+#: spring-spacer.cc:134
 msgid "I'm too fat; call Oprah"
 msgstr ""
 
-#: spring-spacer.cc:350
+#: spring-spacer.cc:295
 msgid "solution doesn't satisfy constraints"
 msgstr ""
 
-#: spring-spacer.cc:639
+#: stem-engraver.cc:80
 #, c-format
-msgid "can't find a ruling note at %s"
-msgstr ""
-
-#: spring-spacer.cc:645
-#, c-format
-msgid "no minimum in measure at %s"
+msgid "Adding note head to incompatible stem (type = %d)"
 msgstr ""
 
-#: staff-side.cc:61
-msgid ""
-"Staff_side::get_position_f(): somebody forgot to set my direction, returning "
-"-20"
-msgstr ""
-
-#: stem.cc:111
+#: stem.cc:106
 msgid "weird stem size; check for narrow beams"
 msgstr "vreemde stoklengte; controleer op krappe balken"
 
@@ -722,7 +778,11 @@
 msgid "can't find ascii character `%d'"
 msgstr ""
 
-#: tie.cc:50
+#: tie-engraver.cc:155 tie-performer.cc:106
+msgid "No ties were created!"
+msgstr ""
+
+#: tie.cc:55
 msgid "lonely tie"
 msgstr ""
 
@@ -738,19 +798,23 @@
 msgid "partial measure too large"
 msgstr ""
 
+#: time-scaled-music-iterator.cc:25
+msgid "No one to print a tuplet start bracket"
+msgstr ""
+
 #: time-signature-engraver.cc:28
 msgid "lost in time"
 msgstr "hoe laat is het"
 
-#: timing-translator.cc:31
+#: timing-translator.cc:26
 msgid "conflicting timing request"
 msgstr ""
 
-#: timing-translator.cc:67
+#: timing-translator.cc:62
 msgid "time signature change not allowed here"
 msgstr "maatwisseling is hier niet geoorloofd"
 
-#: timing-translator.cc:90
+#: timing-translator.cc:83
 #, c-format
 msgid "barcheck failed by: %s"
 msgstr "misplaatste maatstreep: %s"
@@ -760,129 +824,139 @@
 msgid "unknown translator `%s'"
 msgstr ""
 
-#: translator-group.cc:187
+#: translator-group.cc:82 translator-group.cc:97
+#, c-format
+msgid "Already contains a `%s'"
+msgstr ""
+
+#: translator-group.cc:207
 #, c-format
 msgid "can't find or create `%s' called `%s'"
 msgstr ""
 
-#: translator-group.cc:314
+#: translator-group.cc:341
 #, c-format
 msgid "can't find or create `%s'"
 msgstr ""
 
-#: translator-group.cc:409
+#: translator-group.cc:437 translator-group.cc:446
 #, c-format
 msgid "can't find `%s'"
 msgstr "kan niet vinden `%s'"
 
-#: transposed-music.cc:33
-msgid "Will ignore \relative for transposed music"
+#: transposed-music.cc:31
+msgid "Will ignore \\relative for transposed music"
+msgstr "Zal \\relative negeren voor getransponeerde muziek"
+
+#: unfolded-repeat-iterator.cc:145
+msgid "No one to print a volta bracket"
 msgstr ""
 
-#: word-wrap.cc:71
+#: word-wrap.cc:75
 msgid "ugh, this measure is too long"
 msgstr "ugh, deze maat is te lang"
 
-#: word-wrap.cc:72
+#: word-wrap.cc:76
 #, c-format
 msgid "breakpoint: %d"
 msgstr ""
 
-#: word-wrap.cc:73
+#: word-wrap.cc:77
 msgid "generating stupido solution"
 msgstr ""
 
-#: word-wrap.cc:91
+#: word-wrap.cc:95
 msgid "I don't fit; put me on Montignac"
 msgstr "Ik ben te dik."
 
-#: parser.yy:329 parser.yy:332
+#: parser.yy:55
 #, c-format
-msgid "incorrect mudela version: %s (%s, %s)"
-msgstr "verkeerde mudela versie: %s (%s, %s)"
+msgid "Oldest supported input version: %s"
+msgstr ""
+
+#: parser.yy:313
+msgid "Cannot evaluate Scheme in safe mode"
+msgstr ""
 
-#: parser.yy:460
+#: parser.yy:433 parser.yy:441 parser.yy:465
 msgid "Need a translator group for a context"
 msgstr ""
 
-#: parser.yy:478
+#: parser.yy:459
 msgid "Wrong type for property value"
 msgstr ""
 
-#: parser.yy:529
+#: parser.yy:515
 msgid "More than one music block"
 msgstr ""
 
-#: parser.yy:1122 parser.yy:1396
-msgid "have to be in Lyric mode for lyrics"
-msgstr ""
-
-#: parser.yy:1344 parser.yy:1364
+#: parser.yy:946 parser.yy:1360 parser.yy:1380
 #, c-format
 msgid "not a duration: %d"
 msgstr "is geen duur: %d"
 
-#: parser.yy:1366
+#: parser.yy:948 parser.yy:1382
 msgid "can't abbreviate"
 msgstr ""
 
-#: parser.yy:1376
+#: parser.yy:1211 parser.yy:1219 parser.yy:1444
+msgid "have to be in Lyric mode for lyrics"
+msgstr ""
+
+#: parser.yy:1391
 msgid "have to be in Note mode for notes"
 msgstr ""
 
-#: parser.yy:1402
-msgid "have to be in Chord mode for chords"
+#: parser.yy:1403
+msgid "can't abbreviate tuplet"
 msgstr ""
 
-#: parser.yy:1407
-msgid "have to be in Note mode for @chords"
+#: parser.yy:1450
+msgid "have to be in Chord mode for chords"
 msgstr ""
 
-#: lexer.ll:131
+#: lexer.ll:155
 msgid "EOF found inside a comment"
 msgstr ""
 
-#: lexer.ll:175
+#: lexer.ll:199
 #, c-format
 msgid "undefined identifier: `%s'"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:180
+#: lexer.ll:204
 msgid "missing end quote"
 msgstr ""
 
 #. backup rule
-#: lexer.ll:203 lexer.ll:207
+#: lexer.ll:227 lexer.ll:231
 msgid "white expected"
 msgstr ""
 
-#: lexer.ll:365
+#: lexer.ll:401
 #, c-format
-msgid "illegal character: `%c'"
+msgid "invalid character: `%c'"
 msgstr ""
 
-#: lexer.ll:421
+#: lexer.ll:457
 #, c-format
 msgid "unknown escaped string: `\\%s'"
 msgstr ""
 
+#: lexer.ll:543
+#, c-format
+msgid "incorrect mudela version: %s (%s, %s)"
+msgstr "verkeerde mudela versie: %s (%s, %s)"
+
 #: out/BLURB.hh:2
 msgid ""
-"LilyPond is the GNU Project music typesetter.  This program can print\n"
-"beautiful sheet music from a music definition file.  It can also play\n"
-"mechanical performances to a MIDI file.  Features include multiple\n"
-"staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n"
-"beams, slurs, triplets, named chords, transposing, formatting scores, \n"
-"part extraction.  It includes a nice font of musical symbols.\n"
+"LilyPond is a music typesetter.  It produces beautiful sheet music\n"
+"using a high level description file as input.  LilyPond is part of \n"
+"the GNU Project.\n"
+"\n"
+"\n"
 msgstr ""
-"LilyPond is de muziekzetter van het GNU Project.  Dit programma drukt\n"
-"prachtige bladmuziek volgens een muzikaal definitie bestand.  Ook kan\n"
-"het een mechanische uitvoering afspelen naar een MIDI bestand.\n"
-"Bijzondere kunstjes zijn verscheidene notenbalken, maatsoorten, sleutels, \n"
-"toonaarden, zangteksten, krachtige invoer taal, cadensa, balken, boogjes, \n"
-"triolen, accoordnamen, transponeren, partituren, en uittreksels voor \n"
-"individuele partijen.  Een fraaie set muziektekens is inbegrepen.\n"
 
 #: out/COPERTINA.hh:2
 msgid ""
@@ -909,56 +983,61 @@
 "individuele partijen.  Een fraaie set muziektekens is inbegrepen.\n"
 msgstr ""
 
-#: main.cc:43
+#: main.cc:42
 #, c-format
 msgid "Usage: %s [OPTION]... [FILE]"
-msgstr ""
+msgstr "Gebruik: %s [OPTIE]... [BESTAND]"
 
-#: main.cc:45
+#: main.cc:44
 msgid "Translate midi-file to mudela"
-msgstr ""
+msgstr "Vertaal midi-bestand naar mudela"
 
-#: main.cc:51
+#: main.cc:50
 msgid "  -b, --no-quantify      write exact durations, e.g.: a4*385/384\n"
-msgstr ""
+msgstr "  -b, --no-quantify      schrijf exacte duren, bijv.: a4*385/384\n"
 
-#: main.cc:63
+#: main.cc:53
+msgid "  -D, --debug            enable debugging output\n"
+msgstr "  -D, --debug            toon ontluis berichten\n"
+
+#: main.cc:62
 msgid "  -k, --key=ACC[:MINOR]  set key: ACC +sharps/-flats; :1 minor\n"
-msgstr ""
+msgstr "  -k, --key=ACC[:MINEUR] zet toonsoort: ACC +kruizen/-mollen; :1 mineur\n"
 
-#: main.cc:66
+#: main.cc:65
 msgid ""
-"  -n, --no-silly         assume no plets or double dots, smallest is 32\n"
-msgstr ""
+"  -n, --no-silly         assume no tuplets or double dots, smallest is 32\n"
+msgstr "  -n, --no-silly         ga niet uit van tuplets of dubbel gepunteerd,       "
+"                              kortste is 32\n"
 
-#: main.cc:69
+#: main.cc:68
 msgid "  -o, --output=FILE      set FILE as default output\n"
 msgstr "  -o, --output=BESTAND   zet BESTAND als verval uitvoer\n"
 
-#: main.cc:72
-msgid "  -p, --no-plets         assume no plets\n"
-msgstr ""
+#: main.cc:71
+msgid "  -p, --no-tuplets       assume no tuplets\n"
+msgstr "  -p, --no-tuplets       ga uit van geen tuplets\n"
 
-#: main.cc:75
+#: main.cc:74
 msgid "  -q, --quiet            be quiet\n"
-msgstr ""
+msgstr "  -q, --quiet            wees stil\n"
 
-#: main.cc:81
+#: main.cc:80
 msgid ""
 "  -s, --smallest=N       assume no shorter (reciprocal) durations than N\n"
-msgstr ""
+msgstr "  -s, --smallest=N       ga niet uit van kortere (reciproke) duren dan N\n"
 
-#: main.cc:84
+#: main.cc:83
 msgid "  -v, --verbose          be verbose\n"
-msgstr ""
+msgstr "  -v, --verbose          wees breedsprakig\n"
 
-#: main.cc:90
+#: main.cc:89
 msgid "  -x, --no-double-dots   assume no double dotted notes\n"
-msgstr ""
+msgstr "  -x, --no-double-dots   ga niet uit van dubbel gepunkteerde noten\n"
 
-#: main.cc:105
-msgid "Mi2mu, translate midi to mudela"
-msgstr ""
+#: main.cc:104
+msgid "Midi2ly, translate midi to mudela"
+msgstr "Midi2ly, vertaal midi naar mudela"
 
 #: midi-parser.cc:64
 msgid "zero length string encountered"
@@ -993,77 +1072,75 @@
 msgid "Parsing...\n"
 msgstr ""
 
-#: midi-track-parser.cc:70
+#: midi-track-parser.cc:68
 #, c-format
 msgid "junking note-end event: channel = %d, pitch = %d"
 msgstr ""
 
-#: midi-track-parser.cc:125
+#: midi-track-parser.cc:124
 msgid "invalid running status"
 msgstr ""
 
-#: midi-track-parser.cc:326
+#: midi-track-parser.cc:328
 msgid "unimplemented MIDI meta-event"
 msgstr ""
 
-#: midi-track-parser.cc:331
+#: midi-track-parser.cc:333
 msgid "invalid MIDI event"
 msgstr ""
 
-#: midi-track-parser.cc:346
+#: midi-track-parser.cc:348
 msgid "MIDI track expected"
 msgstr ""
 
-#: midi-track-parser.cc:351
+#: midi-track-parser.cc:353
 msgid "invalid track length"
 msgstr ""
 
-#: mudela-item.cc:139
+#: mudela-item.cc:160
 #, c-format
 msgid "#32 in quarter: %d"
 msgstr ""
 
-#: mudela-score.cc:117
+#: mudela-score.cc:108
 #, c-format
 msgid "Lily output to %s..."
 msgstr ""
 
-#: mudela-score.cc:127 mudela-score.cc:191
+#: mudela-score.cc:119 mudela-score.cc:168
 msgid "track "
 msgstr ""
 
-#: mudela-score.cc:176
+#: mudela-score.cc:155
 msgid "Processing..."
 msgstr ""
 
-#: mudela-score.cc:187
+#: mudela-score.cc:164
 msgid "Creating voices..."
 msgstr ""
 
-#: mudela-score.cc:200
+#: mudela-score.cc:177
 msgid "NOT Filtering tempo..."
 msgstr ""
 
-#: mudela-score.cc:209
+#: mudela-score.cc:186
 msgid "NOT Quantifying columns..."
 msgstr ""
 
-#: mudela-score.cc:213
+#: mudela-score.cc:190
 msgid "Quantifying columns..."
 msgstr ""
 
-#.    LOGOUT(NORMAL_ver) << '\n' << "NOT Settling columns..." << endl;
-#.    return;
-#: mudela-score.cc:248
+#: mudela-score.cc:223
 msgid "Settling columns..."
 msgstr ""
 
-#: mudela-staff.cc:107
+#: mudela-staff.cc:111
 #, c-format
 msgid "% midi copyright:"
 msgstr ""
 
-#: mudela-staff.cc:108
+#: mudela-staff.cc:112
 #, c-format
 msgid "% instrument:"
 msgstr ""
@@ -1089,3 +1166,31 @@
 #: version.cc:11
 msgid "of"
 msgstr "van"
+
+#~ msgid "please fix me"
+#~ msgstr "repareer mij alsjeblieft"
+
+#~ msgid "stem at %s doesn't fit in beam"
+#~ msgstr "stok op %s past niet in balk"
+
+#~ msgid "No stem direction set. Ignoring column in clash."
+#~ msgstr "Geen stokrichting gezet.  Negeer kolom in botsing."
+
+#~ msgid "script needs stem direction"
+#~ msgstr "schrift benodigt stokrichting"
+
+#~ msgid ""
+#~ "LilyPond is the GNU Project music typesetter.  This program can print\n"
+#~ "beautiful sheet music from a music definition file.  It can also play\n"
+#~ "mechanical performances to a MIDI file.  Features include multiple\n"
+#~ "staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n"
+#~ "beams, slurs, triplets, named chords, transposing, formatting scores, \n"
+#~ "part extraction.  It includes a nice font of musical symbols.\n"
+#~ msgstr ""
+#~ "LilyPond is de muziekzetter van het GNU Project.  Dit programma drukt\n"
+#~ "prachtige bladmuziek volgens een muzikaal definitie bestand.  Ook kan\n"
+#~ "het een mechanische uitvoering afspelen naar een MIDI bestand.\n"
+#~ "Bijzondere kunstjes zijn verscheidene notenbalken, maatsoorten, sleutels, \n"
+#~ "toonaarden, zangteksten, krachtige invoer taal, cadensa, balken, boogjes, \n"
+#~ "triolen, accoordnamen, transponeren, partituren, en uittreksels voor \n"
+#~ "individuele partijen.  Een fraaie set muziektekens is inbegrepen.\n"
diff -urN ../lilypond-1.2.0/scripts/convert-mudela.py ./scripts/convert-mudela.py
--- ../lilypond-1.2.0/scripts/convert-mudela.py	Wed Jul 28 15:42:44 1999
+++ ./scripts/convert-mudela.py	Mon Aug 16 09:51:10 1999
@@ -419,6 +419,16 @@
 	conversions.append ((1,2,0), conv,
 			    'automaticMelismas -> automaticMelismata')
 
+if 1:
+	def conv(lines):
+		newlines =[]
+		for x in lines:
+			x =  re.sub ('dynamicDir', 'dynamicDirection', x)
+			newlines.append (x)
+		return newlines
+
+	conversions.append ((1,2,1), conv,
+			    'dynamicDir -> dynamicDirection')
 
 ############################
 	
diff -urN ../lilypond-1.2.0/stepmake/NEWS ./stepmake/NEWS
--- ../lilypond-1.2.0/stepmake/NEWS	Wed Jul 21 12:13:49 1999
+++ ./stepmake/NEWS	Mon Aug 16 09:37:58 1999
@@ -1,3 +1,6 @@
+pl 80
+	- use mgsmerge iso tupdate
+
 pl 79
 	- empty sed script fix for aix
 
diff -urN ../lilypond-1.2.0/stepmake/VERSION ./stepmake/VERSION
--- ../lilypond-1.2.0/stepmake/VERSION	Wed Jul 21 12:13:49 1999
+++ ./stepmake/VERSION	Mon Aug 16 09:37:58 1999
@@ -1,7 +1,7 @@
 PACKAGE_NAME=StepMake
 MAJOR_VERSION=0
 MINOR_VERSION=1
-PATCH_LEVEL=79
+PATCH_LEVEL=80
 MY_PATCH_LEVEL=
 
 # use the above to send patches, always empty for released version:
diff -urN ../lilypond-1.2.0/stepmake/aclocal.m4 ./stepmake/aclocal.m4
--- ../lilypond-1.2.0/stepmake/aclocal.m4	Tue Jul 20 03:16:31 1999
+++ ./stepmake/aclocal.m4	Mon Aug 16 09:44:12 1999
@@ -1,5 +1,7 @@
 dnl WARNING WARNING WARNING WARNING
 dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
+dnl WARNING WARNING WARNING WARNING
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
 dnl aclocal.m4   -*-shell-script-*-
 dnl StepMake subroutines for configure.in
 
diff -urN ../lilypond-1.2.0/stepmake/stepmake/podir-targets.make ./stepmake/stepmake/podir-targets.make
--- ../lilypond-1.2.0/stepmake/stepmake/podir-targets.make	Tue May 11 13:22:59 1999
+++ ./stepmake/stepmake/podir-targets.make	Mon Aug 16 09:37:58 1999
@@ -10,15 +10,16 @@
 sed-makestuff = -e 's/[a-zA-Z_/]*make\[[0-9]*\].*//'
 sed-edstuff = -e 's/[ \.,adic0-9]*//' -e 's/---//' | sort -u
 
+
 po-update:
 	$(foreach i,$(CATALOGS), \
 	  rm -f $(po-dir)/$(outdir)/$(i).po; \
-	  tupdate $(po-dir)/$(outdir)/$(package).po $(po-dir)/$(i).po \
-	    > $(po-dir)/$(outdir)/$(i).po && ) true
-	$(foreach i,$(CATALOGS), \
-	  changes=`$(MAKE) --silent -C $(po-dir) LANGUAGE=$$i po-changes $(ERROR_LOG) | sed $(sed-makestuff)`; \
+	  msgmerge $(po-dir)/$(i).po $(po-dir)/$(outdir)/$(package).po \
+	    -o $(po-dir)/$(outdir)/$(i).po && ) true
+	@$(foreach i,$(CATALOGS), \
+	  changes=`$(MAKE) --silent -C $(po-dir) LANGUAGE=$i po-changes $(ERROR_LOG) | sed $(sed-makestuff)`; \
 	  if test "$$changes" != "" ; then \
-	    echo "*** Changes for language $$i; check po/$(outdir)/$$i.po ***"; \
+	    echo "*** Changes for language $i; check po/$(outdir)/$i.po ***"; \
 	    echo -e "changes: \`$$changes'";\
 	  fi && ) true
 
diff -urN ../lilypond-1.2.0/tex/titledefs.tex ./tex/titledefs.tex
--- ../lilypond-1.2.0/tex/titledefs.tex	Sun Jul 11 21:23:37 1999
+++ ./tex/titledefs.tex	Mon Aug 16 09:55:29 1999
@@ -66,12 +66,16 @@
   {\center{\large\theinstrument}\par}
   {\flushleft{\large\normalfont\scshape\thepiece}}
 %  \leavevmode
+  \global\let\theopus\relax%
+  \global\let\thepiece\relax%
 }
 \def\makelilypiecetitle
 {
   \bigskip
   {\flushright{\theopus}\par}
   {\flushleft{\large\normalfont\scshape\thepiece}}
+  \global\let\theopus\relax%
+  \global\let\thepiece\relax%
 }
 \endinput
 
