]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.47 release/1.3.47
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 26 Apr 2000 22:12:25 +0000 (00:12 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 26 Apr 2000 22:12:25 +0000 (00:12 +0200)
===========

* Drastically reduced vertical space used by headers/footers, when using
  ly2dvi.  See input/test/fill-a4.ly.

* Fixed bug with colons appearing on repeat span-bars.

* Added Bar_number_engraver to standard Score context

* Construct octavation scripts in the clef-engraver; this fixes the
hara + clef8 problem

1.3

29 files changed:
CHANGES
Documentation/GNUmakefile
Documentation/topdocs/index.tely
Documentation/topdocs/topweb.tely [deleted file]
Documentation/user/bugs.itexi
Documentation/user/convert-mudela.itexi
Documentation/user/invoking.itexi
Documentation/user/lilypond.tely
Documentation/user/moreinfo.itexi
Documentation/user/refman.itely
Documentation/user/tutorial.itely
VERSION
input/bugs/hara-clef.ly [deleted file]
lily/clef-engraver.cc
lily/clef-item.cc
lily/command-request.cc
lily/include/clef-item.hh
lily/include/command-request.hh
lily/score.cc
lily/span-bar.cc
lily/time-signature.cc
ly/engraver.ly
ly/paper16.ly
ly/paper20.ly
make/out/lilypond.lsm
make/out/lilypond.spec
scm/lily.scm
stepmake/stepmake/texinfo-rules.make
stepmake/stepmake/yolily-topdoc-targets.make

diff --git a/CHANGES b/CHANGES
index 20d4ab0e9883d93e593da5d161dc15ce15a35517..ba1a1e5bdb48c5d6e7483bbe7759f48194c41749 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,19 +1,16 @@
---- ../lilypond-1.3.46/CHANGES Mon Apr 17 13:20:52 2000
-++ b/CHANGES   Tue Mar 20 20:00:00 2001
-@@ -1,3 +1,8 @@
-1.3.46.jcn1
-===========
-
-* Website build fixes.
-
- 1.3.46
- ======
- 1.3.46.jcn2
+1.3.46.jcn2
 ===========
 
 * Drastically reduced vertical space used by headers/footers, when using
   ly2dvi.  See input/test/fill-a4.ly.
 
+* Fixed bug with colons appearing on repeat span-bars.
+
+* Added Bar_number_engraver to standard Score context
+
+* Construct octavation scripts in the clef-engraver; this fixes the
+hara + clef8 problem
+
 1.3.46
 ======
 
index 7f4113cdef09077bf2a444aa84dbb1a4221621c4..72aeaddca76d010edb642e0e88fcabb4725e7b6c 100644 (file)
@@ -12,9 +12,7 @@ include $(depth)/make/stepmake.make
 
 default: local-doc
 
-local-WWW: copy-for-me $(outdir)/regression-test.ps.gz $(outdir)/regression-test.html
-# we want footers even if website builds (or is built) partly
-       $(MAKE) footify
+local-WWW: copy-for-me $(outdir)/regression-test.ps.gz $(outdir)/regression-test.html footify
 
 copy-for-me:
        $(foreach a, $(README_TOP_FILES),cp ../$(a) $(outdir)/$(a).txt && ) true
index 9677961953c613908569a7bfae02582e23113379..326173916e1b3b5d85ea8e58fde7a78978d6071a 100644 (file)
@@ -188,8 +188,7 @@ substitute @code{unsubscribe} where you would put @code{subscribe}.
 
 These pages were entirely created from a @strong{development snapshots}
 of the LilyPond package.  The version of this webpage is printed at the
-bottom. If you want to volunteer for making more beautiful webpages,
-then please mail us!
+bottom.
 
 @html
 <p align=center>
diff --git a/Documentation/topdocs/topweb.tely b/Documentation/topdocs/topweb.tely
deleted file mode 100644 (file)
index 9677961..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@setfilename index.info
-@settitle LilyPond homepage
-
-@node Top, , , (dir)
-@top
-
-@html
-<p align=center>
-[
-    <a href="#download">Download</a>
-    |
-    <a href="Documentation/out-www/faq.html">FAQ</a>
-    |
-    <a href="Documentation/out-www/index.html">Documentation</a>
-    |
-    <a href="#music">Music archives</a>
-    |
-    <a href="#mailing-lists">Mailing lists</a>
-    |
-    <a href="Documentation/out-www/CHANGES.txt">News</a>
-]
-@end html
-
-@html
-<p align=center>
-<img src="Documentation/pictures/out-www/lelie-logo.png" alt="[logo]">
-@end html
-@unnumberedsec LilyPond -- The GNU Project Music Typesetter
-
-@c something breaks on 3.12 f
-
-@unnumberedsec What is LilyPond?
-
-LilyPond is a music typesetter.  It produces beautiful sheet music using
-a high level description file as input. It excels at typesetting
-classical music, but you can also print pop-songs.  With LilyPond we
-hope to make music publication software available to anyone on the
-internet.
-
-@unnumberedsec Why should I use it?
-
-The input to LilyPond is plain text. So, you can use your favorite text
-editor to enter it, you can put it in mail or embed it in an article like
-this:
-
-@quotation
-@mudela[fragment,verbatim]
-       \relative c'' { \key es; r8 [c16 b] [c8 g] [as c16 b] [c8 d] | g,4 }
-@end mudela 
-@end quotation
-
-The output looks very good: the font and the layout algorithms were
-inspired by engraved music, so you can expect that same clear and
-elegant look from your LilyPond output.  And if you don't like the
-looks, you can tweak almost everything.
-
-The program also has limited MIDI functionality: you can write MIDI
-files with lilypond, and we have a simple MIDI to lilypond conversion
-tool, @file{midi2ly}.
-
-LilyPond is free software. It is licensed under GNU General Public
-License, so you can use, modify and redistribute the program with
-almost no restrictions.  LilyPond is part of the 
-@uref{http://www.gnu.org/,GNU Project}.
-
-The version numbers are in Linux-kernel style: even numbered versions
-are `stable'. The webpages for the stable version (1.2) reside at GNU,
-here: @uref{http://www.gnu.org/software/lilypond}. Big enhancements go
-into the latest odd numbered version (1.3); its  webpages are on 
- @uref{http://www.cs.uu.nl/~hanwen/lilypond/,Han-Wen's site}.
-
-If want more information, you can browse the
-@uref{Documentation/user/out-www/lilypond.html, manual} or other
-@uref{Documentation/out-www/index.html, documentation}.
-
-
-@unnumberedsec News
-
-For the latest and greatest features, check out the
-@uref{Documentation/out-www/CHANGES.txt, Change Log}.
-
-
-@html
-<a name="music">
-@end html
-@unnumberedsec Sheet music
-
-
-If you are interested in sheet music typeset by LilyPond, have a look at
-the examples included. We have @uref{short-examples.html,short
-examples} and @uref{long-examples.html,longer examples}. The
-examples include sound bites  in MIDI, pictures in PNG, printable scores
-in PostScript, and LilyPond input.
-
-Others use LilyPond too.
-@uref{http://www.geocities.com/Vienna/Studio/1714/harpsichord.html,John
-Sankey}, harpsichordist to the internet, is typesetting the complete
-@uref{http://www.geocities.com/Vienna/Studio/1714/scarlattidwn.html,sonatas
-by Scarlatti}. Jeff Covey, guitar player and overall nice guy, is
-putting @uref{http://www4.smart.net/~jcovey/scores/,guitar music} on the
-net. The @uref{http://sca.uwaterloo.ca/Mutopia/,Mutopia project} is a
-large archive of public domain sheet music under construction.
-
-@html
-<a name="download">
-@end html
-@unnumberedsec Download
-
-If you want to compile LilyPond from source, download here:
-@itemize @bullet
-@item Download stable releases at
-@uref{ftp://ftp.gnu.org/gnu/lilypond/}
-@item Download development releases at
-@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/}
-@item Canadian mirror   @uref{http://sca.uwaterloo.ca/lilypond/} and @uref{ftp://sca.uwaterloo.ca/pub/} 
-@item Another site in Europe
-@uref{ftp://ftp.lilypond.org/pub/LilyPond/}
-@end itemize
-
-Installing and compiling requires many additional packages, which are
-listed in the @uref{Documentation/topdocs/out-www/INSTALL.html,
-installation instructions}.
-
-There are binaries available, but alas they are not updated for every version released.
-@itemize @bullet
-@item RedHat-i386 and Linuxppc RPMs:
-@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/}
-@item Debian binary @uref{ftp://ftp.debian.org/pub/debian/dists/unstable/main/binary-i386/tex} 
-@item Windows NT: @uref{http://home.austin.rr.com/jbr/jeff/lilypond/}
-@end itemize
-
-
-@html
-<a name="mailing-lists">
-@end html
-@unnumberedsec Mailing list
-
-If you have questions, do write to the mailing lists!
- (But don't forget to read the @uref{Documentation/out-www/faq.html,
-Frequently Asked Questions} first.)
-
-
-@table @samp
-@item info-gnu-music@@gnu.org
-        is a moderated list for information on the GNU Music project, to
-    subscribe: send mail with subject "subscribe" to
-    info-gnu-music-request@@gnu.org.  
-
-    As this list is moderated, normal people should ask to
-    @email{drl@@gnu.org, David R. Linn} or
-    @email{hanwen@@cs.uu.nl, Han-Wen} to forward announces instead of
-    sending it to info-gnu-music@@gnu.org
-
-   This list is archived at 
-    @uref{http://www.mail-archive.com/info-gnu-music@@gnu.org}
-
-@item help-gnu-music@@gnu.org
-    For help with LilyPond music project. To subscribe: send
-    mail with subject "subscribe" to
-    @email{help-gnu-music-request@@gnu.org} The archive is at 
-  @uref{http://www.mail-archive.com/help-gnu-music@@gnu.org}.
-
-@item bug-gnu-music@@gnu.org
-    If you have bugreports, you should send them to this list.  If you
-want to know about bugs, subscribe: send mail with subject "subscribe"
-to @email{bug-gnu-music-request@@gnu.org}. The archive is at
-@uref{http://www.mail-archive.com/bug-gnu-music@@gnu.org}
-
-        Please include in your bugreport the version of LilyPond that
-you experience the problem with, a description of your system and sample
-input to reproduce the problem. Do not send output files over the list,
-they tend to be very big and don't help with describing the problem.
-
-
-@item gnu-music-discuss@@gnu.org,
-    For discussions concerning LilyPond, to subscribe: send
-    mail with subject "subscribe" to
-    @email{gnu-music-discuss-request@@gnu.org}
-        The archive is at
-    @uref{http://www.mail-archive.com/gnu-music-discuss@@gnu.org}
-@end table
-
-If you want to unsubscribe use the same procedure as subscribing, but
-substitute @code{unsubscribe} where you would put @code{subscribe}.
-
-@unnumberedsubsec Webmaster's Disclaimer
-
-These pages were entirely created from a @strong{development snapshots}
-of the LilyPond package.  The version of this webpage is printed at the
-bottom. If you want to volunteer for making more beautiful webpages,
-then please mail us!
-
-@html
-<p align=center>
-[
-    <a href="#download">Download</a>
-    |
-    <a href="Documentation/out-www/faq.html">FAQ</a>
-    |
-    <a href="Documentation/out-www/index.html">Documentation</a>
-    |
-    <a href="#music">Music archives</a>
-    |
-    <a href="#mailing-lists">Mailing lists</a>
-    |
-    <a href="Documentation/out-www/CHANGES.txt">News</a>
-]
-@end html
-
-@bye
index b77b7e75e37b27bea3fd1dd51faa98c911715a20..51513a24f774c0aa0920b391da70bbb92a7c6f4f 100644 (file)
@@ -1,5 +1,5 @@
-@node Reporting Bugs
-@chapter Bug reports
+@node Reporting Bugs, , , Top
+@section Bug reports
 
 There is an extensive list of todoes and bugs.  See the file
 @file{TODO} distributed with the sources.  If you have a problem you
index f7248c6b668e45e8239afd74e1e6b014a6ba52bd..02b13d8f45049a67fe2bd17ffa6688efb2123c06 100644 (file)
@@ -1,4 +1,4 @@
-@node convert-mudela
+@node convert-mudela, , ,Top
 @chapter convert-mudela
 @code{convert-mudela} sequentially applies different
 mudela-conversions to upgrade a Mudela input file.  It uses
index 3f10359669bc0efa7edd3bde9b58a0a0ac7dca53..747153935601f2a32c6676bb9673232d3b042a41 100644 (file)
@@ -1,5 +1,5 @@
 
-@node Invoking LilyPond
+@node Invoking LilyPond, , , Top
 @chapter Invoking LilyPond
 @cindex Invoking LilyPond
 
index 0a2ff30db80baa5536ffee50d1674b00160b2307..b4bbf8a654a0c8339fede48c3a4c41d0a2523bf6 100644 (file)
@@ -79,8 +79,7 @@ than the names being similar :-)"
 
 @contents
 
-@node Top
-@chapter GNU LilyPond --- The music typesetter
+@node Top, , , (dir)
 
 @menu
 * Tutorial::            a tutorial introduction to lilypond.
@@ -106,17 +105,17 @@ than the names being similar :-)"
 @mbinclude tutorial.itely
 
 
-@mbinclude invoking.itexi
+@include invoking.itexi
 
-@mbinclude bugs.itexi
+@include bugs.itexi
 
 @mbinclude refman.itely
 
-@mbinclude moreinfo.itexi
+@include moreinfo.itexi
 
-@mbinclude convert-mudela.itexi
+@include convert-mudela.itexi
 
-@node Index
+@node Index, , , Top
 @unnumbered Index
 
 @printindex cp
index dc0c722a471a33878d737734e7cc7b722f56dacc..826a3d15fbbd89a14818337e79dfbbaf15f982c1 100644 (file)
@@ -1,5 +1,5 @@
-@node More information
-@chapter Resources
+@node More information, , , Top
+@section Resources
 
 A further source for information is the website, which can be found at
 @uref{http://www.lilypond.org/}.  The website contains on-line
index 8cf1e2450fc1389c363fb63822a73715e0a267c9..62540f26360e96ff74e0127005070d6825c5a09e 100644 (file)
@@ -1,44 +1,45 @@
 
-@node Reference Manual
-@chapter Reference Manual
-
 
+@node Reference Manual, ,  , Top
 @menu
-* Overview::                   Overview
-* Top level::                  Top level
-* notenames::                  
-* Lexical conventions::                Lexical conventions
-* Other languages::            
-* modes::                      
-* Types::                      Types
-* Music expressions::          Music expressions
-* Atomic music expressions::   Atomic music expressions
-* Note specification::         
-* barlines::                   
-* Manual beams::               
-* stem tremolo::               
-* Compound music expressions:: Compound music expressions
-* relative::                   
-* Repeats::                    
-* transpose::                  
-* Ambiguities::                        Ambiguities
-* Notation conversion specifics::  
-* autobeam::                   
-* lyricprint::                 
-* Notation Contexts::          Notation Contexts
-* Properties::                 
-* Notation output definitions::         Notation output definitions
-* paper::                      
-* Paper variables::            
-* contextdefs::                        
-* engravers::                  
-* Sound output::               Sound output
-* midilist::                   
+* Overview::                      Overview
+* Top level::                     Top level
+* notenames::                     notenames
+* Lexical conventions::           Lexical conventions
+* Other languages::                      notelang
+* modes::                         modes
+* Types::                         Types
+* Music expressions::             Music expressions
+* Atomic music expressions::      Atomic music expressions
+* Note specification::                      notedesc
+* barlines::                      barlines
+* Manual beams::                  Manual beam
+* tremolo::                       tremolo
+* Compound music expressions::    Compound music expressions
+* relative::                      relative
+* Repeats::                      Repeats       
+* transpose::                     transpose
+* Ambiguities::                   Ambiguities
+* Notation conversion specifics:: Notation conversion specifics
+* autobeam::                      autobeam
+* lyricprint::                    lyricprint
+* Notation Contexts::             Notation Contexts
+* Properties::                    Changing formatting
+* Notation output definitions::   Notation output definitions
+* paper::                         paper
+* Paper variables::                     papervars
+* contextdefs::                   contextdefs
+* engravers::                     engravers
+* Sound output::                  Sound output
+* midilist::                      midilist
+* Pre-defined Identifiers::       Pre-defined Identifiers
 @end menu
 
+@chapter Reference Manual
 
 
-@node Overview
+
+@node Overview, , , Reference Manual
 @section Overview
 
 This document@footnote{This document has been revised for
@@ -64,7 +65,7 @@ typesetting and from a performance point of view.
 
 
 
-@node Top level
+@node Top level, , , Reference Manual
 @section Top level
 
 @cindex top level
@@ -107,8 +108,7 @@ metre, arranger, piece and tagline.
 It is customary to put the @code{\header} at the top of the file.
 
 
-@node notenames
-@section notenames
+@node notenames, , ,  Reference Manual
 
 Note name tables can be specified using
 
@@ -154,7 +154,7 @@ forbidden after top level assignments.
 
 
 
-@node Lexical conventions
+@node Lexical conventions, , ,  Reference Manual
 @section Lexical conventions
 
 @cindex lexical conventions
@@ -305,8 +305,7 @@ This is used to detect invalid input, and to aid
 
 @cindex other languages
 
-@node Other languages
-@section Other languages
+@node Other languages, , ,  Reference Manual
 
 Note name definitions have been provided in various languages. 
 Simply include the language specific init file.  For example:
@@ -334,8 +333,7 @@ subsection XREF-notenames [FIXME].
 
 @cindex modes
 
-@node modes
-@section modes
+@node modes, , ,  Reference Manual
 
 To simplify entering notes, lyrics, and chords, @emph{Mudela} has three
 special input modes on top of the default mode.  In each mode, words
@@ -345,7 +343,7 @@ 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.
 
-@table @code
+@table @samp
   @item Normal mode.
 @cindex mode!normal
  
@@ -432,7 +430,7 @@ versions, thus the use of the dollar sign is discouraged.}
 
 
 
-@node Types
+@node Types, , ,  Reference Manual
 @section Types
 
 @cindex types and identifiers
@@ -499,7 +497,7 @@ reference to the first identifier useless.}
 
 
 
-@node Music expressions
+@node Music expressions, , ,  Reference Manual
 @section Music expressions
 
 @cindex music expressions
@@ -527,7 +525,7 @@ discussed in subsection XREF-compoundmusic [FIXME].
 
 
 
-@node Atomic music expressions
+@node Atomic music expressions, , ,  Reference Manual
 @section Atomic music expressions
 
 
@@ -569,8 +567,7 @@ In Note, Chord, and Lyrics mode, durations may be designated by
 numbers and dots.  See Section XREF-notelang [FIXME] for details.
 
 
-@node Note specification
-@section Note specification
+@node Note specification, , ,  Reference Manual
 
 @cindex note specification
 
@@ -850,8 +847,7 @@ Prints a mark over or under (depending on the
 @code{Mark_engraver}@indexcode{Mark_engraver} to either the Score or Staff context for
 this to work.
 
-@node barlines
-@section barlines
+@node barlines, , ,  Reference Manual
 
 @example
   \bar@keyindex{bar} @var{bartype};
@@ -1015,8 +1011,7 @@ this has the same effect as the space rest `@code{s}'.
 
 @cindex beams
 
-@node Manual beams
-@section Manual beams
+@node Manual beams, , ,  Reference Manual
 
 A beam is specified by surrounding the beamed notes with brackets
 `@code{[}@indexcode{[}' and `@code{]}@indexcode{]}'.  
@@ -1280,8 +1275,7 @@ The slur syntax with parentheses is a shorthand for this.
 
 @cindex tremolo marks
 
-@node stem tremolo
-@section stem tremolo
+@node stem tremolo, , ,  Reference Manual
 
 Tremolo marks can be printed on a single note by adding
 `@code{:}[@var{length}]' after the note.  The length must be at
@@ -1296,7 +1290,7 @@ no last value.
 
 
 
-@node Compound music expressions
+@node Compound music expressions, , ,  Reference Manual
 @section Compound music expressions
 
 @cindex compound music expressions
@@ -1417,8 +1411,7 @@ a Voice context:
 
 @cindex relative pitch specification
 
-@node relative
-@section relative
+@node relative, , , Reference Manual
 
 It is easy to get confused by octave changing marks and accidentally
 putting a pitch in the wrong octave.  A much better way of entering a
@@ -1659,14 +1652,13 @@ error, since there will be no main note to attach the grace notes to.
 
 @cindex repeats
 
-@node Repeats
-@section Repeats
+@node Repeats, , , Reference Manual
 
 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.
 
-@table @code
+@table @samp
   @item unfolded  
     Repeated music is fully written (played) out.  Useful for MIDI
     output.
@@ -1779,8 +1771,7 @@ bars will not.
 
 @cindex transposition of pitches
 
-@node transpose
-@section transpose
+@node transpose, , , Reference Manual
 
 A music expression can be transposed with
 @code{\transpose}@keyindex{transpose}.  The syntax is
@@ -1876,7 +1867,7 @@ lyrics for @var{musicexpr2}.
 
 
 
-@node Ambiguities
+@node Ambiguities, , ,  Reference Manual
 @section Ambiguities
 
 @cindex ambiguities
@@ -1926,15 +1917,14 @@ foo = -6
 
 
 
-@node Notation conversion specifics
+@node Notation conversion specifics, , ,  Reference Manual
 @section Notation conversion specifics
 
-[todo]
+
 
 @cindex automatic beam generation
 
-@node autobeam
-@section autobeam
+@node autobeam, , ,  Reference Manual
 
 By default, LilyPond will generate beams automatically.  This feature
 can be disabled by setting the @code{Voice.noAutoBeaming}@indexcode{Voice.noAutoBeaming}
@@ -2026,8 +2016,7 @@ If you want inversions to be recognized, you must set the property
 
 @cindex printing!lyrics
 
-@node lyricprint
-@section lyricprint
+@node lyricprint, , ,  Reference Manual
 
 Lyric syllables must be interpreted within a @code{Lyrics} context
 
@@ -2108,7 +2097,7 @@ For example:
 
 
 
-@node Notation Contexts
+@node Notation Contexts, , ,  Reference Manual
 @section Notation Contexts
 
 @cindex notation contexts
@@ -2247,7 +2236,7 @@ as @code{c4}.
 These are the contexts supplied with the package.  They are defined
 in the initialization file @file{ly/engraver.ly}.
 
-@table @code
+@table @samp
   @item @code{Grace}@indexcode{Grace} 
     The context for handling grace notes.  It is instantiated
     automatically when you use @code{\grace}.  Basically, it is an
@@ -2368,677 +2357,9 @@ 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.
 
+@mbinclude properties.itely
 
-@node Properties
-@section Properties
-
-Properties are Scheme values, so they have a type.  The type of a
-property is listed in parentheses after the property name.
-
-@macro propertytype{t}
- (\t\)
-@end macro
-
-
-TODO:
-
-
-@table @code
-  @item @code{Generic_property_list}
-    Defines names and types for generic properties. These are properties
-    than can be plugged into the backend directly. See the init file
-    @file{generic-property.scm} for details.  For internal use only.
-
-  @item @code{XXXVerticalExtent}@indexcode{groupVerticalExtent} @propertytype{Interval: a cons of numbers}
-    Hard code the size of the vertical group in context XXX, example
-@example
-\property Staff.StaffVerticalExtent = #(-5.0 . 5.0)
-@end example
-    The value is a cons of real numbers, that measure the extent in
-    staff spaces.
-@end table   
-
-@subsubheading Lyrics properties
-
-@cindex properties!Lyrics
-
-@table @code
-  @item @code{textStyle}@indexcode{textStyle} @propertytype{string}
-    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.
-@end table
-
-@subsubheading Thread properties
-
-@cindex properties!Thread
-
-@table @code
-  @item @code{noteheadStyle}@indexcode{noteheadStyle} @propertytype{string}
-    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,verbatim]
-      \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.;
-        }
-      }
-    
-@end mudela
-@end table
-
-@subsubheading Grace properties
-
-@cindex properties!Grace
-
-@table @code  
-  @item @code{stemStyle}@indexcode{flagStyle} @propertytype{string}
-    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.
-
-@mudela[verbatim]
-c'8 \property Voice.flagStyle = "grace" c'8
-@end mudela
-@end table
-
-
-@subsubheading Voice properties
-
-@cindex properties!Voice
-
-@table @code  
-  @item @code{abbrev}@indexcode{abbrev} @propertytype{integer}
-    Set length for tremolo to be used if no length is explicitly
-    specified. 
-
-  @item @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.
-
-  @item @code{articulationScriptVerticalDirection} @propertytype{direction}
-    @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.
-    
-  @item @code{noAutoBeaming}@indexcode{beamAuto}  @propertytype{boolean}
-    If set to 1 then beams are not generated automatically.
-
-  @item @code{beamAutoEnd}@indexcode{beamAutoEnd}  @propertytype{?}
-    Specifies when automatically generated beams can end.  See
-    section XREF-autobeam [FIXME].
-
-  @item @code{beamAutoBegin}@indexcode{beamAutoBegin}  @propertytype{?}
-    Specifies when automatically generated beams can start.  See
-    section XREF-autobeam [FIXME].
-
-
-[outdated FIXME]
-  @item @code{beamQuantisation}@indexcode{beamQuantisation} @propertytype{symbol}
-    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}.
-
-  @item @code{beamSlopeDamping}@indexcode{beamSlopeDamping} @propertytype{number}
-    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.
-
-  @item @code{dynamicDirection}@indexcode{dynamicDirection} @propertytype{direction}
-    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.
-
-  @item @code{dynamicStyle}@indexcode{dynamicStyle} @propertytype{string}
-    Set the text style for dynamics.
-
-  @item @code{fontSize}@indexcode{fontSize} @propertytype{number}
-    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.
-
-@mudela[verbatim]
-c''16 \property Staff.fontSize = -2 c''16
-@end mudela
-
-   @item @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.
-
-@item @code{collisionMergeDotted}@indexcode{collisionMergeDotted} @propertytype{boolean}
-
-Merge noteheads in collisions, even if they have a different number of
-dots. This normal notation for polyphonic guitar music.
-
-@mudelafile[verbatim]{force-hshift.ly}
-
-
-[FIXME: this should be moved]
-
-Lilypond always arranges note heads on alternate sides of a stem (that
-is, within a single voice) as necessary to prevent collisions (note head
-overlaps).  For up stems, the upper note of a colliding pair is placed
-on the right side of the stem, the lower on the left. For down stems,
-the algorithm works in reverse.
-  
-Lily also attempts to prevent collisions of note heads in different
-voices. A situation where chords of two or more voices are played
-simultaneously within one staff.
-
-By default, if only two voices (and both have opposite stem directions)
-are in this 'collision group', the notes both are shifted by @code{0.5
-\quartwidth} if there are unisons or seconds between the voices.
-
-If there are more than two voices in a collision group, shifting is
-inactive by default, since in this case, there are multiple chords with
-the same stem direction. By  distinguish between those chords, LilyPond
-can do collision resolution in these cases as well.  
-
-Distinguishing between voices with the same stem direction, is done by
-setting the property @code{Voice.horizontalNoteShift}.  It must be set
-to a different integer for each voice. Then, all note heads in collision
-groups (not just unisons and seconds) will be offset, one voice relative
-another.  The following fragment of sheet music shows how shifting is
-done, with values of @code{horizontalNoteShift} printed over and under
-the notes. In this case the chords are just simple notes.
-
-@c URG : mudela book bug.
-@mudela[singleline,verbatim]
-\score {
-        \notes \context Staff <
-               \context Voice  = VA { \stemup f''4^"0" }
-               \context Voice  = VB {\stemup
-               \property Voice.horizontalNoteShift = 1 d''4^" 1" }
-               \context Voice  = VC { \stemup \property
-Voice.horizontalNoteShift = 2 b'4^"  2" }
-               \context Voice  = VD { \stemdown \property
-Voice.horizontalNoteShift = 1 g'4_"1 " }
-               \context Voice  = VE { \stemdown e'4_"0" }
-        >
-}
-@end mudela
-
-If you are not satisfied with the collision resolution of LilyPond, you
-can override the horizontal shift value of the chord of one Voice, by
-setting @code{forceHorizontalShift}.  This sets the amount shift,
-measured in black note head widths.
-
-To take complete control of note position shifts in complex passages,
-you have set things up for normal collisions and override all shifts by
-setting @code{forceHorizontalShift} to zero everywhere
-@example
-\property Voice.horizontalNoteShift = <n>
-\property Voice.forceHorizontalShift = "0.0"
-@end example
-
-Then you can set the force property to a suitable value before each note
-that really needs it (unisons and seconds), and reset it to 0.0 after
-the note.  
-
-  @item @code{horizontalNoteShift}@indexcode{horizontalNoteShift}  @propertytype{integer}
-    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}.
-
-  @item @code{markScriptPadding}@indexcode{markScriptPadding}  @propertytype{number}
-    Determines the extra space added between the mark and the closest
-    staff line or note.
-
-  @item @code{markDirection}@indexcode{markDirection} @propertytype{direction}
-    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.
-
-  @item @code{midiInstrument}@indexcode{midiInstrument} @propertytype{string}
-    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 XREF-midilist [FIXME].  If you use a string which
-    is not listed, LilyPond will silently substitute piano.
-
-  @item @code{restStyle}@indexcode{restStyle} @propertytype{string}
-    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.
-@mudela[verbatim]
-r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 
-\property Staff.restStyle = "mensural"
-r\longa r\breve r1 r2 r4 r8 r16 r32 r64 r128 r128 
-@end mudela
-
-  @item @code{scriptHorizontal}@indexcode{scriptHorizontal} @propertytype{boolean}
-    Put scripts left or right of note heads.  Support for this is
-    limited.  Accidentals will collide with scripts.
-    
-  @item @code{slurVerticalDirection}@indexcode{slurVerticalDirection} @propertytype{direction}
-    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.
-
-  @item @code{slurDash}@indexcode{slurDash} @propertytype{number}
-    Set to NIL for normal slurs, 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.
-
-@mudela[verbatim]
-               c4( )d
-               \property Voice.slurDash = 3
-               c ( )e
-@end mudela            
-
-@item @code{stemLength}@indexcode{stemLength}  
-    Set length of stems.  Unit is `@code{interline}/2', so
-    @code{stemLength} defaults to 7.
-@mudela[verbatim]
-g''4 \property Voice.stemLength = #14  g4 \property Voice.stemLength = #3 g4  g,,4  
-@end mudela
-
-  @item @code{stemLeftBeamCount}@indexcode{stemLeftBeamCount} @propertytype{integer}
-    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.
-
-  @item @code{stemRightBeamCount}@indexcode{stemRightBeamCount} @propertytype{integer}
-    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.
-
-  @item @code{tieDash}@indexcode{tieDash} @propertytype{integer}
-    Set dashing of ties. See also @code{slurDash}
-
-  @item @code{tieVerticalDirection}@indexcode{tieVerticalDirection} @propertytype{direction}
-    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.
-
-  @item @code{transposing}@indexcode{transposing} @propertytype{integer}
-    Transpose the MIDI output.  Set this property to the number of
-    half-steps to transpose by.
-
-  @item @code{textEmptyDimension}@indexcode{textEmptyDimension} @propertytype{boolean}
-    If set to true then text placed above or below the staff is
-    assumed to have zero width.  @code{fatText} and @code{emptyText}
-are predefined settings.
-
-@mudela[verbatim]
-c4^"foo"  \emptyText c4^"foo" c4
-@end mudela
-
-  @item @code{textStyle}@indexcode{textStyle} @propertytype{string}
-    Set the text style for superscripts and subscripts.  See above
-    for list of text styles.
-
-  @item @code{textScriptPadding}@indexcode{textScriptPadding}  @propertytype{number}
-    Determines the extra space added between superscripted resp.
-    subscripted text and the closest staff line or note.
-
-  @item @code{verticalDirection}@indexcode{verticalDirection} @propertytype{direction}
-    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.
-    
-
-  @item @code{tupletDirection}@indexcode{tupletDirection} @propertytype{direction}
-    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.
-
-  @item  @code{tupletBracketVisibility}@indexcode{tupletBracketVisibility} @propertytype{boolean} or @propertytype{symbol}
-  @item @code{tupletNumberVisibility}@indexcode{tupletNumberVisibility} @propertytype{boolean} or @propertytype{symbol}
-
-       These properties the visibility of the tuplet bracket and its
-number respectively. Setting it to false will prevent printing of the
-associated element. Setting the property to 'if-no-beam will make it
-print only if there is no beam associated with this tuplet bracket.
-
-[fixme examples]
-
-  @item @code{tupletInvisible}@indexcode{tupletInvisible} @propertytype{boolean}
-
-    If set to true, tuplet bracket creation is switched off
-entirely. This has the same effect as setting both
-@code{tupletNumberVisibility} and @code{tupletBracketVisibility} to
-@code{#f}, but as this does not even create elements, this setting
-uses less memory and time.
-
-
-@item @code{tupletSpannerDuration} @indexcode{tupletSpannerDuration}
-@propertytype{moment}
-
-Normally a tuplet bracket is as wide as the
-@code{\times} expression that gave rise to it. By setting this
-property, you can make brackets last shorter. Example
-
-@mudela[verbatim,fragment]
-\context Voice \times 2/3 {
-  \property Voice.tupletSpannerDuration = #(make-moment 1 4)
-  [c8 c c] [c c c]
-}
-@end mudela
-
-@end table
-
-@subsubheading Staff properties
-
-@cindex properties!Staff
-
-@table @code
-  @item @code{barNonAuto}@indexcode{barNonAuto} @propertytype{boolean}
-    If set to true 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.
-
-  @item @code{barNumberDirection}@indexcode{barNumberDirection} @propertytype{direction}
-    Set to @code{\up} or @code{\down} to put bar numbers above or below
-    the staff.
-
-  @item @code{barNumberScriptPadding}@indexcode{barNumberScriptPadding}  
-    Sets extra space between the bar number and the bar it labels.
-
-  @item @code{barSize}@indexcode{barSize}  
-    Specify the height of the bar lines if it should be different
-    than the staff height.
-@mudela[verbatim]
-c1 c1 \property Staff.barSize = 20 c1 c1 
-@end mudela
-
-  @item @code{barAtLineStart}@indexcode{barAtLineStart} @propertytype{boolean}
-    Set to true to produce a bar line after the clef at the start
-    of each line (but not at the beginning of the music).
-
-       [BROKEN]
-
-  @item @code{clefStyle}@indexcode{clefStyle} @propertytype{string}
-    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.
-
-  @item @code{supportedClefTypes}@indexcode{supportedClefTypes} @propertytype{alist}
-
-       Clef settings supported. The value is an association list clef
-descriptions indexed by clef name (alto, baritone, etc.).  A clef
-description is a list with the glyph name, and the staff position
-where it should go. For internal use.
-
-  @item @code{clefPitches}@indexcode{clefPitches} @propertytype{alist}
-    Settings for the position of the central C, relative to this clef
-    symbol.  For internal use.
-   
-  @item @code{defaultClef}@indexcode{defaultClef} @propertytype{string}
-       Clef setting to use when this context is created.  If unset,
-no clef is printed upon creation.
-
-  @item @code{marginDirection}@indexcode{marginDirection} @propertytype{direction}
-    Set to @code{\left} or @code{\right} to specify location of
-    marginal scripts.
-
-  @item @code{marginScriptPadding}@indexcode{marginScriptPadding}  
-    Specify extra space for marginal scripts.
-
-  @item @code{forgetAccidentals}@indexcode{forgetAccidentals} @propertytype{boolean}
-    Causes accidentals to be printed at every note instead of
-    remembered for the duration of a measure.
-
-  @item @code{noResetKey}@indexcode{noResetKey} @propertytype{boolean}
-    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.
-
-  @item @code{staffSpace}@indexcode{staffLineLeading}   @propertytype{number}  
-    Specifies the distance (in points) between lines of the staff.
-
-  @item @code{numberOfStaffLines}@indexcode{numberOfStaffLines} @propertytype{integer}
-    Specifies the number of staff lines.  The default is 5.
-
-  @item @code{postBreakPadding}@indexcode{postBreakPadding}   @propertytype{number}
-    Extra space in points to be added after the clef, time signature
-    and key signature on the staff.  Deprecated, do not use.
-
-  @item @code{noVoltaBraces}@indexcode{noVoltaBraces} @propertytype{boolean}
-    Set to true to suppress the printing of brackets over alternate
-    endings specified by the command @code{\alternative}.
-
-  @item @code{barAlways}@indexcode{barAlways} @propertytype{boolean}
-    If set to true a bar line is drawn after each note.
-
-  @item @code{defaultBarType}@indexcode{defaultBarType} @propertytype{string}
-    Sets the default type of bar line. See Section XREF-barlines [FIXME] 
-    for a list of available bar types.
-
-  @item @code{instrument}, @code{instr} @propertytype{string}
-    @indexcode{instrument}@indexcode{instr}  
-    If @code{Instrument_name_engraver}
-@cindex Instrument_name_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.
-
-  @item @code{keyOctaviation}@indexcode{keyOctaviation} @propertytype{boolean}
-    If set to false, then keys are the same in all octaves.  If set
-    to true then the key signature for different octaves can be
-    different and is specified independently:
-
-    @example
-      \keysignature bes fis'
-    @end example
-
-    The default value is @code{#f}.  Can be set to @code{#t} with
-    @code{\specialkey} or reset with @code{\normalkey}.
-
-  @item @code{timeSignatureStyle}@indexcode{timeSignatureStyle} @propertytype{string}
-    Changes the default two-digit layout for time signatures.  The
-    following values are recognized:
-
-    @table @code
-      @item @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.
-
-      @item @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.
-
-      @item @code{1}@indexcode{1}  
-        All time signatures are typeset with a single
-        digit, e.g. 3/2 is written as 3.
-
-      @item @indexcode{CM/N}@code{C}@var{M}@code{/}@var{N}, 
-      @indexcode{oldM/N}@code{old}@var{M}@code{/}@var{N} or
-      @code{old6/8alt}@indexcode{old6/8alt}  
-        Tells LilyPond to use a specific symbol as time signature.
-    @end table
-
-    The different time signature characters are shown below with its
-    names:
-
-    @mudela[center,verbatim]
-
-      \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;
-        }
-      }
-    
-@end mudela
-
-  @item @code{voltaSpannerDuration}@indexcode{voltaSpannerDuration} @propertytype{moment}
-    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}.
-@end table
-   
-@subsubheading GrandStaff properties
-
-@cindex properties!GrandStaff
-
-@table @code 
-  @item @code{maxVerticalAlign}@indexcode{maxVerticalAlign}  @propertytype{number}
-    Set the maximum vertical distance between staffs.
-
-  @item @code{minVerticalAlign}@indexcode{minVerticalAlign}  @propertytype{number}
-    Set the minimum vertical distance between staffs.  
-@end table
-
-@subsubheading Score properties
-
-@cindex properties!Score
-
-
-
-
-@table @code
-  @item @code{skipBars}@indexcode{skipBars} @propertytype{boolean}
-    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.
-
-    @quotation
-
-@mudela[fragment,verbatim,center]
-r1 r1*3 R1*3\property Score.skipBars=1 r1*3 R1*3
-
-@end mudela
-    @end quotation
-
-@item @code{breakAlignOrder}@indexcode{breakAlignOrder} @propertytype{list of string}
-
-   Defines the order in which prefatory matter (clefs, key signatures) appears, eg. this puts the key signatures after the bar lines:
-@example
-       \property Score.breakAlignOrder = #'(
-         "Span_bar"
-         "Breathing_sign"
-         "Clef_item"
-         "Staff_bar"
-         "Key_item"
-         "Time_signature"
-       )
-@end example
-
-
-@item @code{timing}@indexcode{timing} @propertytype{boolean}
-  Keep administration of measure length, position, bar number, etc?
-Switch off for cadenzas.
-
-@item @code{currentBarNumber}@indexcode{currentBarNumber} @propertytype{integer}
-  Contains the current barnumber. This property is incremented at
-every barline.
-
-@item @code{measurePosition}@indexcode{measurePosition} @propertytype{Moment}
-
-  How much of the current measure (measured in whole notes) have we had?
-
-@item @code{oneBeat}@indexcode{oneBeat} @propertytype{Moment}
-
-  How long does one beat in the current time signature last?
-
-@item @code{measureLength}@indexcode{measureLength} @propertytype{Moment}
-
-  How long does one measure in the current time signature last?
-
-@end table
-
-@subsubheading ChordNamesVoice properties
-
-@cindex properties!ChordNamesVoice
-
-@table @code
-  @item @code{chordInversion}@indexcode{chordInversion} @propertytype{boolean}
-    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.
-@end table
-
-
-
-@node Notation output definitions
+@node Notation output definitions, , ,  Reference Manual
 @section Notation output definitions
 
 @cindex output
@@ -3047,8 +2368,7 @@ every barline.
 
 @cindex output definition
 
-@node paper
-@section paper
+@node paper, , ,  Reference Manual
 
 The most important output definition is the @code{\paper} block, for
 music notation.  The syntax is
@@ -3129,8 +2449,7 @@ select.
 
 @cindex paper variables
 
-@node Paper variables
-@section Paper variables
+@node Paper variables, , ,  Reference Manual
 
 There is a large number of paper variables that are used to control
 details of the layout.  These variables control the defaults for the
@@ -3144,7 +2463,7 @@ height in points.
 
 Nevertheless, here are some variables you may want to use or change:
 
-@table @code
+@table @samp
   @item @code{indent}@indexcode{indent}  
     The indentation of the first line of music.
 
@@ -3167,8 +2486,7 @@ Nevertheless, here are some variables you may want to use or change:
 @end table
 
 
-@node contextdefs
-@section contextdefs
+@node contextdefs, , ,  Reference Manual
 
 @cindex context definition
 
@@ -3210,7 +2528,7 @@ A context definition has this syntax:
 
 @var{typename} is one of
 
-@table @code
+@table @samp
   @item @code{Engraver_group_engraver}@indexcode{Engraver_group_engraver}  
     The standard cooperation engraver.
 
@@ -3289,7 +2607,7 @@ such an identifier outside of @code{\score}, you must do
 Some pre-defined identifiers can simplify modification of
 translators.  The pre-defined identifiers are:
 
-@table @code
+@table @samp
   @item @code{StaffContext}@indexcode{StaffContext}  
     Default Staff context. 
 
@@ -3337,14 +2655,13 @@ translator:
 
       
 
-@node engravers
-@section engravers
+@node engravers, , ,  Reference Manual
 
 The engravers for paper output are:
 
 [incomplete, FIXME]
 
-@table @code
+@table @samp
   @item @code{Bar_engraver}@indexcode{Bar_engraver}  
     Engraves bar lines.  Normally in @code{Staff} and
     @code{RhythmicStaff}.
@@ -3473,7 +2790,7 @@ The engravers for paper output are:
 
 
 
-@node Sound output
+@node Sound output, , ,  Reference Manual
 @section Sound output
 
 
@@ -3501,8 +2818,7 @@ The contexts for MIDI output are defined in @file{ly/performer.ly}.
 
 @cindex MIDI instrument names
 
-@node midilist
-@section midilist
+@node midilist, , , Reference Manual
 
 The MIDI instrument name is set by the
 @code{Staff.midiInstrument}@indexcode{Staff.midiInstrument} property or,
@@ -3567,7 +2883,7 @@ piano.
 
 The types available for  MIDI translators are:
 
-@table @code
+@table @samp
   @item @code{Performer_group_performer}@indexcode{Performer_group_performer}
   @item @code{Score_performer}@indexcode{Score_performer}
   @item @code{Staff_performer}@indexcode{Staff_performer}
@@ -3575,7 +2891,7 @@ The types available for  MIDI translators are:
 
 The performers for MIDI translators are:
 
-@table @code
+@table @samp
   @item @code{Key_performer}@indexcode{Key_performer}
   @item @code{Time_signature_performer}@indexcode{Time_signature_performer}
   @item @code{Note_performer}@indexcode{Note_performer}
@@ -3585,7 +2901,7 @@ The performers for MIDI translators are:
 
 
 
-@node Pre-defined Identifiers
+@node Pre-defined Identifiers, , ,  Reference Manual
 
 @section Pre-defined Identifiers
 
@@ -3596,7 +2912,7 @@ Various identifiers are defined in the initialization files to
 provide shorthands for some settings.  Most of them are in
 @file{ly/declarations.ly}.
 
-@table @code
+@table @samp
   @item @code{\break}@keyindex{break}  
     Force a line break in music by using a large argument for the
     keyword @code{\penalty}.
index 4d9e32e2f17ebbd73d483cb951c4aea4c01454d5..9bd5e9e28e81424e44014ebc440d04238f9d01e0 100644 (file)
@@ -1,17 +1,16 @@
-
-@node Tutorial
 @chapter Tutorial
 
 
+@node Tutorial, , , Top
 @menu
-* Introduction::               Introduction
-* The first tune::             The first tune
-* Lyrics and chords::          Lyrics and chords
-* Piano music::                        Piano music
-* end of tutorial::            The end
+* Introduction::                  Introduction
+* The first tune::                The first tune
+* Lyrics and chords::             Lyrics and chords
+* Piano music::                   Piano music
+* end of tutorial::                       The end
 @end menu
 
-@node Introduction
+@node Introduction,  , , Tutorial
 @section Introduction
 
   
@@ -30,7 +29,7 @@ subdirectory @file{input/tutorial/}.  It is recommended that you
 experiment with writing Mudela input yourself, to get a feel for
 how LilyPond behaves.
 
-@node The first tune
+@node The first tune,  , , Tutorial
 @section The first tune
 
 
@@ -333,7 +332,7 @@ symbols and their placement is @emph{generated} from a high-level musical
 description.  In other words,  LilyPond would be best
 described by `music compiler' or `music to notation compiler'.
 
-@node Lyrics and chords
+@node Lyrics and chords, , , Tutorial
 @section Lyrics and chords
 
 In this section we show how to typeset a song of unknown
@@ -693,7 +692,7 @@ will be set in two lines.
 @end example 
 End the score block.
 
-@node Piano music
+@node Piano music, , , Tutorial
 @section Piano music
 
 Our third subject is a piece piano music.  The fragment in the input
@@ -957,7 +956,7 @@ parts.
 
 [TODO: demonstrate Hara-Kiri with scores and  part extraction.]
 
-@node  end of tutorial
+@node  end of tutorial, , , Tutorial
 @section The end        
          
 That's all folks.  From here, you can either try fiddling with input
diff --git a/VERSION b/VERSION
index 358ef34a5330612422c98046e43f0ab6c8a88c55..0a0477f199f92496a45449898af0c0a64c9a944a 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=46
-MY_PATCH_LEVEL=jcn1
+PATCH_LEVEL=47
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff --git a/input/bugs/hara-clef.ly b/input/bugs/hara-clef.ly
deleted file mode 100644 (file)
index 639ebaa..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-\score {
-\notes <  \context Staff { \clef "G^8"; s1 s1 s1 }
-         \context Staff = CC { c1 c c  } >
-
-\paper {
-\translator {
-  \HaraKiriStaffContext
-}}
-}
index bfd3c54f5a2a565b046fa92c31447b948453a383..8df115231cec6fcfe66261b1edde1a880eed94a3 100644 (file)
@@ -9,6 +9,7 @@
 */
 
 #include <ctype.h>
+
 #include "staff-symbol-referencer.hh"
 #include "bar.hh"
 #include "clef-item.hh"
 #include "array.hh"
 #include "engraver.hh"
 #include "direction.hh"
+#include "side-position-interface.hh"
+#include "text-item.hh"
 
 /// where is c-0 in the staff?
 class Clef_engraver : public  Engraver {
   Clef_item * clef_p_;
+  Text_item * octavate_p_;
   Clef_change_req * clef_req_l_;
+  
   void create_clef();
   bool set_type (String);
 protected:
@@ -55,6 +60,7 @@ Clef_engraver::Clef_engraver()
   c0_position_i_ = 0;
   clef_position_i_ = 0;
   octave_dir_ = CENTER;
+  octavate_p_ = 0;
 }
 
 bool
@@ -177,7 +183,21 @@ Clef_engraver::create_clef()
   si.set_position (clef_position_i_);
   if (octave_dir_)
     {
-      clef_p_->set_elt_property ("octave-dir", gh_int2scm (octave_dir_));
+      Text_item * g = new Text_item;
+      Side_position_interface spi (g);
+      spi.set_axis (Y_AXIS);
+      spi.add_support (clef_p_);
+      g->set_elt_property ("text", ly_str02scm ( "8"));
+      g->set_elt_property ("style", gh_str02scm ("italic"));
+      g->set_parent (clef_p_, Y_AXIS);
+      g->set_parent (clef_p_, X_AXIS);
+         
+      g->set_elt_property ("self-alignment-X", gh_int2scm (0));
+      g->add_offset_callback (Side_position_interface::aligned_on_self, X_AXIS);
+      g->add_offset_callback (Side_position_interface::centered_on_parent, X_AXIS);
+      g->set_elt_property ("direction", gh_int2scm (octave_dir_));
+      octavate_p_ = g;
+      announce_element (Score_element_info (octavate_p_, clef_req_l_));
     }
 }
 
@@ -198,11 +218,19 @@ Clef_engraver::do_pre_move_processing()
   if (clef_p_)
     {
       if(to_boolean (clef_p_->remove_elt_property("non-default")))
-        clef_p_->set_elt_property("visibility-lambda",
-                                  scm_eval (ly_symbol2scm ("all-visible")));
-      
+       {
+         SCM all = scm_eval (ly_symbol2scm ("all-visible"));
+         clef_p_->set_elt_property("visibility-lambda", all);
+         if (octavate_p_)
+           octavate_p_->set_elt_property("visibility-lambda", all);
+       }
       typeset_element (clef_p_);
       clef_p_ =0;
+
+      if (octavate_p_)
+       typeset_element(octavate_p_);
+
+      octavate_p_ = 0;
     }
 }
 
@@ -212,8 +240,5 @@ Clef_engraver::do_post_move_processing()
   clef_req_l_ = 0;
 }
 
-
-
-
 ADD_THIS_TRANSLATOR(Clef_engraver);
 
index af14a41828c35d82ab9509bc4b608b1ec8e6d5fa..f0a8b8566f9d8175ae8bd1b423f2a4798ca33873 100644 (file)
@@ -52,42 +52,4 @@ Clef_item::before_line_breaking ()
 }
 
 
-void
-Clef_item::do_add_processing ()
-{
-  if (!break_status_dir ())    // broken stuff takes care of their own texts
-    {
-      Text_item *g =0;
-
-      SCM octave_dir = remove_elt_property ("octave-dir");
-      if (isdir_b (octave_dir))
-       {
-         g = new Text_item;
-         Side_position_interface spi (g);
-         spi.set_axis (Y_AXIS);
-         
-         pscore_l_->line_l_->typeset_element (g);
-      
-         spi.add_support (this);
-         g->set_elt_property ("text", ly_str02scm ( "8"));
-         g->set_elt_property ("style", gh_str02scm ("italic"));
-         g->set_parent (this, Y_AXIS);
-         g->set_parent (this, X_AXIS);
-         
-         g->set_elt_property ("self-alignment-X", gh_int2scm (0));
-         g->add_offset_callback (Side_position_interface::aligned_on_self, X_AXIS);
-         g->add_offset_callback (Side_position_interface::centered_on_parent, X_AXIS);
-
-         g->set_elt_property ("direction", octave_dir);
-         
-         add_dependency (g);   // just to be sure.
-         SCM my_vis = get_elt_property ("visibility-lambda");
-         if (gh_procedure_p (my_vis))
-           g->set_elt_property ("visibility-lambda", my_vis);
-                       
-       }
-
-    }
-}
-
 
index af9e706632bb07c177e7742fd152cf554e6f74b8..3f941f3fe17872d438ce1d09f7c398ca7b7e9632 100644 (file)
@@ -31,8 +31,6 @@ Bar_req::Bar_req (String s)
   type_str_ = s;
 }
 
-
-
 bool
 Barcheck_req::do_equal_b (Request const *r) const
 {
index 60322e19ed3f59c38c67267b2b78b5f300eb63c6..758e42a8a6458eadc3ccaa8b336b825a435eccec 100644 (file)
 
   properties:
 
-  nondefault: not set because of existence of a bar
+  nondefault -- not set because of existence of a bar?
 
-  octave_dir: should we print an octave symbol (8), and where? (up=1, down=-1)?
+  change -- is this a change clef (smaller size)?
 
-  change: is this a change clef (smaller size)?
+  glyph -- a string determining what glyph is typeset
   
  */
 class Clef_item : public Item
 {
 protected:
   virtual void before_line_breaking ();
-  virtual void do_add_processing ();
 public:
   VIRTUAL_COPY_CONS(Score_element);
 };
index 5f138b28b0123e725cae52805fb67d597f66160d..f8755a92dbc16cd7a9e9393fc383e0c01b94c5f1 100644 (file)
@@ -87,8 +87,8 @@ public:
   String type_str_;
   Bar_req (String);
 protected:
+  virtual bool do_equal_b (Request const*) const;
   virtual void do_print () const;
-  bool do_equal_b (Request const *) const;
 
   VIRTUAL_COPY_CONS(Music);
 };
index da9c2d1da155c0fe206f45f8154f4319c1c35d34..e8fd342f353b89154accc5f214714ba856d9c7dc 100644 (file)
 #include "paper-def.hh"
 
 
+/*
+  TODO: junkme.
+ */
+
 Score::Score()
   : Input()
 {
index 13e2491f9700bc57b6246811689638b187ad38f7..84a98332365bf4cf6f0a59f23a5c5f79e7c8bd64 100644 (file)
@@ -86,11 +86,9 @@ Span_bar::evaluate_empty ()
       {
        type_str= ".|.";
       }
-  }
 
-  /*
-    uhh. should do something with type_str ?!!
-  */
+    set_elt_property ("glyph", ly_str02scm (type_str.ch_C()));
+  }
 }
 
 Interval
index 0c11decc33c32b5a435813f2bad4e3d33b9d9f1b..4a67538f35709194967b29e2136a6665a9905bae 100644 (file)
@@ -73,7 +73,7 @@ Time_signature::special_time_signature (String s, int n, int d) const
 Molecule
 Time_signature::time_signature (int num, int den) const
 {
-  String sty = "number";
+  String sty = "timesig";
 
   /*
     UGH: need to look at fontsize.
index 72a0a5678e3ac725daeb42fefb1bf9c77bfdce27..d51ddb210e1aded0868f05a1f06c693473a6936d 100644 (file)
@@ -324,7 +324,6 @@ StupidScore = \translator {
 BarNumberingStaffContext = \translator {
        \StaffContext
        \consists "Mark_engraver";
-       \consists "Bar_number_engraver";
 };
 
 HaraKiriStaffContext = \translator {
@@ -344,7 +343,6 @@ HaraKiriStaffContext = \translator {
 OrchestralPartStaffContext = \translator {
        \StaffContext
        \consists "Mark_engraver";
-       \consists "Bar_number_engraver";
 };
 
 ScoreContext = \translator {
@@ -374,6 +372,7 @@ ScoreContext = \translator {
        \consists "Spacing_engraver";
 
        \consists "Vertical_align_engraver";
+       \consists "Bar_number_engraver";
        alignmentReference = \down;
        defaultClef = #"treble"
        defaultBarType = #"|"
@@ -387,6 +386,7 @@ ScoreContext = \translator {
        \accepts "PianoStaff";
        \accepts "NoteNames";
 
+
        markVisibilityFunction = #end-of-line-invisible
        barNumberVisibilityFunction = #begin-of-line-visible
 };
@@ -399,7 +399,6 @@ OrchestralScoreContext= \translator {
        barScriptPadding = #2.0         % dimension \pt
        markScriptPadding = #4.0
 
-       \consists "Bar_number_engraver";
        \consists "Mark_engraver";
 };
 
index 9445759068165be904edbf892ebe4225bea741eb..1256998bd2b4e849bde03397ddada399a50bba8b 100644 (file)
@@ -20,6 +20,7 @@ paper_sixteen = \paper {
        font_finger = 4.;
        font_volta = 5.;
        font_number = 8.;
+       font_timesig = 8.;
        font_dynamic = 10.;
        font_mark = 10.;
 
index aeb925a834eeac047cec522e532116499d9a5d9e..fc0566e536347a2acd160bf0c5cd085d0dd856ab 100644 (file)
@@ -14,6 +14,7 @@ paper_twenty = \paper {
        font_finger = 5.;
        font_volta = 8.;
        font_number = 10.;
+       font_timesig = 10.;
        font_mark = 12.;
 
        % what about:
index e7a88e0a0582b1313eb0e50ae39ddb0300080da5..0d565db6aa29aea801358474ebac1de489f8d9b7 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.46
-Entered-date: 17APR00
+Version: 1.3.47
+Entered-date: 27APR00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.46.tar.gz 
+       1000k lilypond-1.3.47.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.46.tar.gz 
+       1000k lilypond-1.3.47.tar.gz 
 Copying-policy: GPL
 End
index 00c79003a4805f3dfb2edd6a3b86583728d80fe5..cb451a84061a082d08e6ea501591f74c878af33e 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.46
+Version: 1.3.47
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.46.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.47.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # Icon: lilypond-icon.gif
index 7e67be562cbd43fd0e72c6ec2928b9e1f0121b25..677c0e44e764a055793f0af06a99ee5673ef5ce3 100644 (file)
     ("feta" . "feta") 
     ("feta-1" . "feta") 
     ("feta-2" . "feta") 
-    ("finger" . "feta-nummer") 
     ("typewriter" . "cmtt") 
     ("italic" . "cmti") 
     ("roman" . "cmr") 
     ("large" . "cmbx") 
     ("Large" . "cmbx") 
     ("mark" . "feta-nummer") 
+    ("finger" . "feta-nummer")
+    ("timesig" . "feta-nummer")
     ("number" . "feta-nummer") 
     ("volta" . "feta-nummer"))
 )
index cf7526c0b16aff427ec167f05bc53d8920d4975c..42474ba6fc9255b6837b07f1659f64edf53a9244 100644 (file)
@@ -6,7 +6,7 @@ $(outdir)/%.info: $(outdir)/%.texi
        makeinfo --output=$@ $<
 
 $(outdir)/%.html:      $(outdir)/%.texi
-       -makeinfo --force --output=$@ --html --no-split $< 
+       -makeinfo --force --output=$@ --html --no-headers $< 
 # we want footers even if website builds (or is built) partly
        $(footify) $@
 
index b60d82b2d3d54fb686d8f14c7b8af04678a9c2d9..98824da8b10b941f80d4139f009f7c2473cd275f 100644 (file)
@@ -8,9 +8,9 @@ $(outdir)/%.html: %.yo
        $(sed-version) < $@.in > $@
        rm -f $@.in
 
-local-WWW:
-       -cp $(outdir)/*png $(outdir)/index.html $(depth)  # don't fail if not making website
+local-WWW: copy-to-top
 
 copy-to-top:  $(TO_TOP_FILES)
        $(foreach i, $(TO_TOP_FILES), \
          cp $(i) $(depth)/ && ) true
+       -cp $(outdir)/*png $(outdir)/index.html $(depth)  # don't fail if not making website