]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.30 release/1.3.30
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 6 Mar 2000 11:26:15 +0000 (12:26 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 6 Mar 2000 11:26:15 +0000 (12:26 +0100)
===========

* Report type errors for \property. Helps with converting 1.2 input

* Use Scheme for Align_element; fixed graceAlignPosition
and removed \property alignmentReference in the process.

* Use generic properties for lyrics too.  This fixes \property
Lyrics.textStyle

* Add relative distance for constraints between non-column items.

* Automatic \marks: use "\mark ; ". The mark numbers or letters are
increased automatically.

* Translators now only change properties of their own context. This
removes the 2nd argument to Translator::get_property()

* Bugfix for Metapost mode

1.3.29.

85 files changed:
CHANGES
Documentation/bibliography/engraving.bib
Documentation/faq.texi
Documentation/index.texi
Documentation/ly2dvi.texi [new file with mode: 0644]
Documentation/midi2ly.texi [new file with mode: 0644]
Documentation/programs.texi [deleted file]
Documentation/topdocs/README.texi
Documentation/topdocs/index.tely
Documentation/user/glossary.tely
Documentation/user/properties.itely
README.txt
TODO
VERSION
aclocal.m4
configure
input/test/mark.ly
lily/align-element.cc
lily/align-note-column-engraver.cc
lily/atom.cc
lily/auto-beam-engraver.cc
lily/bar-engraver.cc
lily/bar-number-engraver.cc
lily/bar-script-engraver.cc
lily/base-span-bar-engraver.cc
lily/beam-engraver.cc
lily/beam.cc
lily/break-align-engraver.cc
lily/break-align-item.cc
lily/chord-name-engraver.cc
lily/clef-engraver.cc
lily/command-request.cc
lily/crescendo.cc
lily/dynamic-engraver.cc
lily/grace-align-item.cc
lily/grace-position-engraver.cc
lily/grace-position-performer.cc
lily/include/align-element.hh
lily/include/atom.hh
lily/include/command-request.hh
lily/include/lily-guile.hh
lily/include/mark-engraver.hh
lily/include/molecule.hh
lily/include/translator-group.hh
lily/include/translator.hh
lily/key-engraver.cc
lily/lily-guile.cc
lily/local-key-engraver.cc
lily/lookup.cc
lily/mark-engraver.cc
lily/melisma-engraver.cc
lily/molecule.cc
lily/multi-measure-rest-engraver.cc
lily/note-heads-engraver.cc
lily/note-performer.cc
lily/paper-column.cc
lily/paper-outputter.cc
lily/parser.yy
lily/property-engraver.cc
lily/protected-scm.cc
lily/repeat-engraver.cc
lily/rhythmic-column-engraver.cc
lily/rod.cc
lily/script-engraver.cc
lily/side-position-interface.cc
lily/slur-engraver.cc
lily/staff-margin-engraver.cc
lily/staff-performer.cc
lily/staff-symbol-engraver.cc
lily/stem-engraver.cc
lily/text-engraver.cc
lily/tie-engraver.cc
lily/timing-engraver.cc
lily/timing-translator.cc
lily/translator-group.cc
lily/translator.cc
lily/tuplet-engraver.cc
lily/tuplet-spanner.cc
lily/vertical-align-engraver.cc
lily/volta-spanner.cc
ly/engraver.ly
make/out/lilypond.lsm
make/out/lilypond.spec
scm/generic-property.scm
stepmake/aclocal.m4

diff --git a/CHANGES b/CHANGES
index d992a22dfa85e3d3839751759e0bbeb216448baf..4a180017c8a686702cb5e16a7597104fc5fe8d56 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,12 +1,41 @@
-1.3.28.jcn4
+
+1.3.29.hwn1
 ===========
 
+* Report type errors for \property. Helps with converting 1.2 input
+
+* Use Scheme for Align_element; fixed graceAlignPosition 
+and removed \property alignmentReference in the process.
+
+* Use generic properties for lyrics too.  This fixes \property
+Lyrics.textStyle
+
+
+* Add relative distance for constraints between non-column items.
+
+* Automatic \marks: use "\mark ; ". The mark numbers or letters are
+increased automatically.
+
+* Translators now only change properties of their own context. This
+removes the 2nd argument to Translator::get_property()
+
+* Bugfix for Metapost mode
+
+1.3.29.uu1
+==========
+
+* Updates of glossary  (Christian Mondrup)
+
+* Bugfix with bar number placement
+
+* Moved links to bibliography/ and misc/ to main index.
+
+1.3.29
+======
+
 * Moved Slur-specific code from Bezier_bow to Slur and Slur_bezier_bow.
   Slurs are now calculated just once.
 
-1.3.28.jcn3
-===========
-
 * Bezier_bow gets constants from paper.  Still no sensible solution for
   magic asymmetry gradient step constants.
 
@@ -14,9 +43,6 @@
   between area asymmetry and tangent-controls.  My guess is, tangent controls
   will be junked in 1.3.30.
 
-1.3.28.jcn2
-===========
-
 * Slur area: only look at x-gradient.
 
 * Added credits for some symbols of as5/9 fonts.
index 8a5d828289be76ff4fb8fcf42a2317a4a450b58f..743b93f3fd07c669da31a779dbfb3337729dc526 100644 (file)
   title =       {Music notation},
   year =        1991,
   publisher={Hal Leonard Publishing Corporation},
-
+isbn ={0793508479}
 note={HWN writes: `Book' edition of lecture notes from XXX school of
 music.  The book looks like it is xeroxed from bad printouts.  The
 content has nothing you won't find in other books like\cite{read} or
-\cite{heussenstamm}.   Available at amazon, but do not buy.  ISBN 0793508479.}
+\cite{heussenstamm}.   }
 }
 
 @Book{ross,
@@ -64,8 +64,7 @@ content has nothing you won't find in other books like\cite{read} or
 @Book {read-notation,
 
   note = {This is as close to the ``standard''
-  reference work for music notation issues as one is likely to get.
-  [Available at amazon]},
+  reference work for music notation issues as one is likely to get.},
 
   title = {Music Notation: a Manual of Modern Practice},
   author = {Gardner Read},
@@ -90,7 +89,7 @@ note = {I. A very thorough overview of engraving practices of various
 craftsmen. It includes detailed specs of characters, dimensions
 etc. II. a thorough overview of a anonymous (by now antiquated)
 automated system. EDV Means e(lektronischen) D(aten)v(erarbeitung),
-electronic data processing HWN.  Available at amazon.de},
+electronic data processing HWN.},
 
   year =  {1988},
   title = {Musiknotation --- Von der Syntax des Notenstichs zum EDV-gesteuerten Notensatz},
index 835c1790dc03cf1f584322f2c69e1ac62b93f68f..6cc6c1cb8d649de82185e37aa2f814e1f32f5fc0 100644 (file)
@@ -126,6 +126,11 @@ LilyPond development is moving quite fast, documentation will often lag
 a bit behind.  But don't hesitate to point out inaccuracies. Whip up
 your mail reader and write to the mailing list.
 
+@subsubsection Please take me off your mailing list, I get  so much mail!
+
+Don't ask Han-wen, don't ask David. Instead, read about
+@uref{../../index.html#mailing-lists,  the mailing lists} here.
+
 @node Language- mudela, Do you support -, Documentation, FAQ - GNU LilyPond FAQs
 @section Language: mudela
 
index 4d38ca8c4da1f1e40ab44bd363cf41ad58a790f5..0e969c7132f3c28ba42ef0f47e9d0ebaab593178 100644 (file)
@@ -1,10 +1,11 @@
 \input texinfo @c -*-texinfo-*-
 @setfilename index.info
-@settitle index
+@settitle Index to LilyPond documentation
 
 @node Top, , , (dir)
 @top
 
+
 @unnumberedsubsec Info
 
 @itemize @bullet 
 @item @uref{../topdocs/out-www/AUTHORS.html, Authors}
 @item @uref{../topdocs/out-www/README.html, Readme file}
 @item @uref{../topdocs/out-www/INSTALL.html, Installation instructions}
+@item @uref{faq.html,FAQ: Frequently asked questions}, with answers
 @end itemize
 
 
+
 @unnumberedsubsec Manuals
 
 @itemize @bullet
-@item @uref{faq.html,FAQ: Frequently asked questions}, with answers
-@item @uref{programs.html,`Manual pages'}
-
 @item @uref{../user/out-www/lilypond.html,LilyPond reference manual}
 also available in @uref{../user/out-www/lilypond.ps.gz,Postscript}
 @item @uref{../user/out-www/glossary.html,A glossary of musical
@@ -28,10 +28,11 @@ terms}, includes translations.  Also available in @uref{../user/out-www/glossary
 @item @uref{../user/out-www/mudela-book.html,mudela-book}, a tool for
 integrating text and music in LaTeX and texinfo; also available in
 @uref{../user/out-www/mudela-book.ps.gz,Postscript}
+@item @uref{ly2dvi.html,ly2dvi} manual. Ly2dvi does page layout for
+LilyPond prints
+@item @uref{midi2ly.html,midi2ly} manual. midi2ly converts MIDI files to
+LilyPond input
 @item @uref{../programmer/out-www/index.html,Programmer documentation}
-@item @uref{../bibliography/out-www/index.html,Bibliography}
-@item @uref{../misc/out-www/index.html,Miscellaneous texts}:
-announcements and change logs for old versions; background information.
 @end itemize
 
 
@@ -50,4 +51,41 @@ announcements and change logs for old versions; background information.
 @item @uref{../pictures/out-www/lelie-icon.png, logo} in small size
 @end itemize
 
+
+
+@unnumberedsubsec Literature
+
+@itemize @bullet
+@item @uref{../bibliography/out-www/colorado.html,University of
+Colorado Engraving music bibliography}. Books refered from the
+@uref{http://www.cc.colorado.edu/Dept/MU/Musicpress/,Big Site of Music
+Notation and Engraving} at University  of Colorado.
+@item References on
+@uref{../bibliography/out-www/engraving.html,engraving and music
+notation}.
+@item Papers on
+@uref{../bibliography/out-www/computer-notation.html,music notation
+by computer}.
+@end itemize
+
+
+@unnumberedsubsec Miscellaneous texts
+
+@itemize @bullet
+@item @uref{../misc/out-www/CHANGES-0.0.txt, Change logs from 0.0 till 0.1 }
+@item @uref{../misc/out-www/CHANGES-0.1.txt, Change logs from 0.1 till 1.0 }
+@item @uref{../misc/out-www/CHANGES-1.0.txt, Change logs from 1.0 till 1.1 }
+@item @uref{../misc/out-www/CHANGES-1.1.txt, Change logs from 1.1 till 1.2 }
+@item @uref{../misc/out-www/NEWS-1.2.txt, summary of changes from 1.1 till 1.2 }
+@item @uref{../misc/out-www/ANNOUNCE-0.1.txt, Announcement of 0.1 (includes summary of
+changes)}
+@item @uref{../misc/out-www/ANNOUNCE-1.0.txt, Announcement of 1.0 (includes summary of
+changes)}
+@item @uref{../misc/out-www/ANNOUNCE-1.2.txt, Announcement of 1.2 (includes summary of changes)}
+@item @uref{../misc/out-www/AIMS.txt, Why LilyPond?}
+@item @uref{../misc/out-www/interview.txt, Answers} to the Brave GNU world standard questions.
+@end itemize
+
+
+
 @bye
diff --git a/Documentation/ly2dvi.texi b/Documentation/ly2dvi.texi
new file mode 100644 (file)
index 0000000..0a1d168
--- /dev/null
@@ -0,0 +1,283 @@
+\input texinfo @c -*-texinfo-*-
+@setfilename ly2dvi.info
+@settitle ly2dvi
+
+@node  Top, , , 
+@menu
+* Ly2dvi DESCRIPTION::            Ly2dvi DESCRIPTION
+* Ly2dvi SYNOPSIS::               Ly2dvi SYNOPSIS
+* Ly2dvi OPTIONS::                Ly2dvi OPTIONS
+* Ly2dvi Features::               Ly2dvi Features
+* Ly2dvi Environment::            Ly2dvi Environment
+* Ly2dvi Files::                  Ly2dvi Files
+* Ly2dvi Initialization Sequence::Ly2dvi Initialization Sequence
+* Ly2dvi See Also::               Ly2dvi See Also
+* Ly2dvi Bugs::                   Ly2dvi Bugs
+* Ly2dvi Remarks::                Ly2dvi Remarks
+* Ly2dvi Authors::                Ly2dvi Authors
+@end menu
+@chapter Ly2dvi
+
+@node  Ly2dvi DESCRIPTION, , , Top
+@section DESCRIPTION
+ly2dvi is a Python script which creates input file for LaTeX,
+based on information from the output files from LilyPond.
+The script handles multiple files. If a mudela file name is
+specified LilyPond is run to make an output (TeX) file.
+
+One or more LaTeX files are created, based on information found
+in the output (TeX) files, and latex is finally run to create
+one or more DVI files.
+
+The majority of this utility came from a bourne script written by Jan
+Arne Fagertun name @file{ly2dvi}. 
+
+@node  Ly2dvi SYNOPSIS, , , Top
+@section SYNOPSIS
+
+        ly2dvi [options] inputfile[.ly] [....]
+
+@node  Ly2dvi OPTIONS, , , Top
+@section OPTIONS
+
+@table @samp
+@item -D,--debug
+    Set debug mode. There are two levels - in level one some debug
+    info is written, in level two the command @strong{set -x} is run, which
+    echoes every command in the ly2dvi script.
+@item -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@}}
+@item -H,--Heigth=
+    Set paper heigth (points). Used together with width and LaTeX name of
+    papersize in case of papersize unknown to ly2dvi.
+@item -K,--keeplilypond
+    Keep LilyPond output after the run.
+@item -L,--landscape
+    Set landscape orientation - portrait is the default.
+    (@strong{-L} produces @code{\usepackage[landscape]@{article@}})
+@item -N,--nonumber
+    Switch off page numbering.
+@item -O,--orientation=
+    Set orientation landscape - obsolete, use @strong{-L} instead.
+@item -P,--postscript
+    In addition to the DVI file, also Generate a postsript file.
+@item -W,--Width=
+    Set paper width (points). Used together with heigth and LaTeX name of
+    papersize in case of papersize unknown to ly2dvi.
+@item -d,--dependencies
+    Tell lilypond to make dependencies file.
+@item -h,--help
+    Print help.
+@item -k,--keeply2dvi
+    Keep the LaTeX file after the run.
+@item -l,--language=
+    Specify LaTeX language.
+    (@strong{-l norsk} produces @code{\usepackage[norsk]@{babel@}}).
+@item -o,--output=
+    Set output directory.
+@item -p,--papersize=
+    Specify papersize.
+    (@strong{-p a4} produces @code{\usepackage[a4paper]@{article@}})
+@item -s,--separate
+    Normally all output files are included into one LaTeX file.
+    With this switch all files are run separately, to produce one
+    DVI file for each.
+@end table
+
+@node  Ly2dvi Features, , , Top
+@section Features
+
+ly2dvi responds to several parameters specified in the mudela
+file. They are overridden by corresponding command line options.
+
+@table @samp
+@item language="";
+    Specify LaTeX language
+@item latexheaders="";
+    Specify additional LaTeX headers file
+@item orientation="";
+    Set orientation.
+@item paperlinewidth="";
+    Specify the width (pt, mm or cm) of the printed lines.
+@item papersize="";
+    Specify name of papersize.
+@end table
+
+@node  Ly2dvi Environment, , , Top
+@section Environment
+
+@table @samp
+@item LILYPONDPREFIX
+    Sets the root directory of the LilyPond installation
+@item LILYINCLUDE
+    Additional directories for input files.
+@item TMP
+    Temporary directory name. Default is /tmp
+@end table
+
+@node  Ly2dvi Files, , , Top
+@section Files
+
+@file{titledefs.tex} is inspected for definitions used to extract
+additional text definitions from the mudela file. In the current
+version the following are defined:
+
+@table @samp
+@item title
+    The title of the music. Centered on top of the first page.
+@item subtitle
+    Subtitle, centered below the title.
+@item poet
+    Name of the poet, leftflushed below the below subtitle.
+@item composer
+    Name of the composer, rightflushed below the subtitle.
+@item metre
+    Meter string, leftflushed below the below poet.
+@item opus
+    Name of the opus, rightflushed below the below composer.
+@item arranger
+    Name of the arranger, rightflushed below the opus.
+@item instrument
+    Name of the instrument, centered below the arranger
+@item piece
+    Name of the piece, leftflushed below the instrument
+@end table
+
+@file{$LILYPONDPREFIX/share/.lilyrc $HOME/.lilyrc ./.lilyrc} are files
+to set up default running conditions.  On Windows OS initialization
+files are named @file{_lilyrc}. The file syntax is as follows:
+
+@example 
+VARIABLE-NAME=VALUE 
+@end example 
+
+Where @strong{VARIABLE-NAME} is the name of the variable documented below
+and @strong{VALUE} is either a string, a 1, or a 0.  All files are parsed,
+in the shown sequence. In the current version the following are
+allowed:
+
+@table @samp
+@item DEBUG=value
+This turns off (default) or on the debug capabilities.  Possible
+values are 0 (off) and 1 (on).
+@item DEPENDENCIES=value
+This turns off (default) or on the ability to generate a Makefile
+dependency list.  Possible values are 0 (off) and 1 (on).
+@item KEEPLILYPOND=value
+This turns off (default) or on the ability to keep the log file
+associated with the LilyPond job.  Possible values are 0 (off) and 1
+(on).
+@item KEEPLY2DVI=value
+This turns off (default) or on the ability to keep the temporary files
+that are generated by the ly2dvi job.  Possible values are 0 (off) and
+1 (on)
+@item LANGUAGE=value
+Specify LaTeX language.  Possible value is a valid LaTeX language.
+@item LATEXHF=value
+Specify additional LaTeX headers file.  Possible value is a file
+specification. 
+@item LILYINCLUDE=value
+Additional directories for input files.  Possible value is a delimited
+directory path list.
+@item LILYPONDPREFIX=value
+This defines the LilyPond root directory.  Possible value is a valid
+directory specification to the LilyPond distribution location.
+@item NONUMBER=value
+This turns off (default) or on the page numbering capability.
+Possible values are 0 (page numbering enabled) and 1 (page numbering
+disabled). 
+@item ORIENTATION=value
+This sets the image orientation.  Possible values are
+portrait (default) and landscape.
+@item OUTPUTDIR=value
+This defines the directory where the resultant files will be
+generated.  Possible value is a valid directory specification.
+Default is the current working directory.
+@item PAPERSIZE=value
+This defines the papersize the image will be sized to fit.  Possible
+values are a0, a1, a2, a3, a4 (default), a5, a6, a7, a8, a9, a10, b0,
+b1, b2, b3, b4, b5, archA, archB, archC, archD, archE, flsa, flse,
+halfletter, ledger, legal, letter, or note.
+@item PHEIGHT=value
+Specify paperheight (points - an inch is 72.27, a cm is 28.453 points).
+@item POSTSCRIPT=value
+This turns off (default) or on the capability of additionally
+generating a postscript file.  Possible values are 0 (off) and 1 (on).
+@item PWIDTH=value
+Specify paperwidth (points - an inch is 72.27, a cm is 28.453 points).
+@item SEPARATE=value
+This turns off (default) or on the capability of generating multiple
+dvi and postscript files from multiple source files.  The default is
+to generate a concatenation of the source files.  Possible values are
+0 (single file) and 1 (separate files).
+@item TMP=value
+This defines the emporary directory.  Actually this is not used at the
+present.  Possible value is a valid directory specification that is
+writable to the user.
+@end table
+
+@node  Ly2dvi Initialization Sequence, , , Top
+@section Initialization Sequence
+The initialization process reads inputs for several sources.  Below is
+a list of priorities for lowest to hightest proirity.
+
+@itemize @bullet
+@item  Program's defaults
+@item  Values found in LilyPond output file
+@item  Environment variables
+@item  $LILYPONDPREFIX/share/lilypond/.lilyrc
+@item  $HOME/.lilyrc
+@item  ./.lilyrc
+@item  command line options
+@end itemize
+
+Note that this differs slightly from the original bourne shell
+version. 
+
+@node  Ly2dvi See Also, , , Top
+@section See Also
+
+lilypond(1), tex(1), latex(1)
+
+@node  Ly2dvi Bugs, , , Top
+@section Bugs
+
+If you have found a bug, you should send a bugreport.
+
+@itemize @bullet
+@item Send a copy of the input which causes the error.
+@item Send a description of the platform you use.
+@item Send a description of the LilyPond and ly2dvi version you use.
+@item Send a description of the bug itself.
+@item Send it to @email{bug-gnu-music@@gnu.org} (you don't have to subscribe
+    to this mailinglist).
+@end itemize
+
+@node  Ly2dvi Remarks, , , Top
+@section Remarks
+
+Many papersizes are now supported. Information on other sizes
+(LaTeX names, horizontal and vertical sizes) should be mailed to
+the author or to the mailing list.
+
+Supported papersizes are:
+
+a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, archA, archB, archC, archD,
+archE, b0, b1, b2, b3, b4, b5, flsa, flse, halfletter, ledger, legal,
+letter, note
+
+@node  Ly2dvi Authors, , , Top
+@section Authors
+Python Version author:
+@email{daboys@@austin.rr.com, Jeffrey B. Reed},
+@uref{http://home.austin.rr.com/jbr/jeff/lilypond/}
+
+Original bourne shell version author:
+@email{Jan.A.Fagertun@@energy.sintef.no, Jan Arne Fagertun},
+@uref{http://www.termo.unit.no/mtf/people/janaf/}
+
+
+
+
diff --git a/Documentation/midi2ly.texi b/Documentation/midi2ly.texi
new file mode 100644 (file)
index 0000000..9c5fc16
--- /dev/null
@@ -0,0 +1,52 @@
+\input texinfo @c -*-texinfo-*-
+@setfilename midi2ly.info
+@settitle midi2ly
+
+@node  midi2ly, , , Top
+@menu
+* midi2ly DESCRIPTION::           midi2ly DESCRIPTION
+* midi2ly OPTIONS::               midi2ly OPTIONS
+@end menu
+@chapter midi2ly
+
+@node  midi2ly DESCRIPTION, , , midi2ly
+@section DESCRIPTION
+midi2ly translates a MIDI input file to Mudela (GNU LilyPond source
+format).  midi2ly is part of the GNU LilyPond music typesetting package.
+
+       midi2ly [options] midi-file
+
+@node  midi2ly OPTIONS, , , midi2ly
+@section OPTIONS
+
+@table @samp
+@item -b, --no-quantify,
+    Write exact durations, e.g.: `a4*385/384'.
+@item -D, --debug,
+    Print lots of debugging stuff.
+@item -h, --help,
+    Show a summary of usage.
+@item -I, --include=@file{DIR},
+    Add DIR to search path.
+@item -k, --key=ACC[:MINOR],
+    Set default key.  ACC > 0 sets number of sharps; ACC < 0 sets number 
+    of flats.  A minor key is indicated by ":1".
+@item -n, --no-silly,
+    Assume no plets or double dots, assume smallest (reciprocal) duration 16.
+@item -o, --output=@file{FILE},
+    Set @file{FILE} as default output.
+@item -p, --no-plets,
+    Assume no plets.
+@item -q, --quiet,
+    Be quiet.
+@item -s, --smallest=N,
+    Assume no shorter (reciprocal) durations than N.
+@item -v, --verbose,
+    Be verbose.
+@item -w, --warranty,
+    Show the warranty with which midi2ly comes. (It comes with @strong{NO WARRANTY}!)
+@item -x, --no-double-dots,
+    Assume no double dotted notes.
+@end table
+
+@bye
diff --git a/Documentation/programs.texi b/Documentation/programs.texi
deleted file mode 100644 (file)
index 6fecb0e..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@setfilename programs.info
-@settitle Programs
-
-@node  Top, , , (dir)
-@top
-@menu
-* Programs::                      Your Softs-
-* Ly2dvi::                        Python utility to convert mudela to DVI
-* midi2ly::                       convert MIDI to -mudela-
-@end menu
-
-
-
-
-@node  Programs, , , Top
-@chapter Programs
-
-
-
-
-
-
-
-@node  Ly2dvi, , , Top
-@menu
-* Ly2dvi DESCRIPTION::            Ly2dvi DESCRIPTION
-* Ly2dvi SYNOPSIS::               Ly2dvi SYNOPSIS
-* Ly2dvi OPTIONS::                Ly2dvi OPTIONS
-* Ly2dvi Features::               Ly2dvi Features
-* Ly2dvi Environment::            Ly2dvi Environment
-* Ly2dvi Files::                  Ly2dvi Files
-* Ly2dvi Initialization Sequence::Ly2dvi Initialization Sequence
-* Ly2dvi See Also::               Ly2dvi See Also
-* Ly2dvi Bugs::                   Ly2dvi Bugs
-* Ly2dvi Remarks::                Ly2dvi Remarks
-* Ly2dvi Authors::                Ly2dvi Authors
-@end menu
-@chapter Ly2dvi
-
-@node  Ly2dvi DESCRIPTION, , , Ly2dvi
-@section DESCRIPTION
-ly2dvi is a Python script which creates input file for LaTeX,
-based on information from the output files from LilyPond.
-The script handles multiple files. If a mudela file name is
-specified LilyPond is run to make an output (TeX) file.
-
-One or more LaTeX files are created, based on information found
-in the output (TeX) files, and latex is finally run to create
-one or more DVI files.
-
-The majority of this utility came from a bourne script written by Jan
-Arne Fagertun name @file{ly2dvi}. 
-
-@node  Ly2dvi SYNOPSIS, , , Ly2dvi
-@section SYNOPSIS
-
-        ly2dvi [options] inputfile[.ly] [....]
-
-@node  Ly2dvi OPTIONS, , , Ly2dvi
-@section OPTIONS
-
-@table @samp
-@item -D,--debug
-    Set debug mode. There are two levels - in level one some debug
-    info is written, in level two the command @strong{set -x} is run, which
-    echoes every command in the ly2dvi script.
-@item -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@}}
-@item -H,--Heigth=
-    Set paper heigth (points). Used together with width and LaTeX name of
-    papersize in case of papersize unknown to ly2dvi.
-@item -K,--keeplilypond
-    Keep LilyPond output after the run.
-@item -L,--landscape
-    Set landscape orientation - portrait is the default.
-    (@strong{-L} produces @code{\usepackage[landscape]@{article@}})
-@item -N,--nonumber
-    Switch off page numbering.
-@item -O,--orientation=
-    Set orientation landscape - obsolete, use @strong{-L} instead.
-@item -P,--postscript
-    In addition to the DVI file, also Generate a postsript file.
-@item -W,--Width=
-    Set paper width (points). Used together with heigth and LaTeX name of
-    papersize in case of papersize unknown to ly2dvi.
-@item -d,--dependencies
-    Tell lilypond to make dependencies file.
-@item -h,--help
-    Print help.
-@item -k,--keeply2dvi
-    Keep the LaTeX file after the run.
-@item -l,--language=
-    Specify LaTeX language.
-    (@strong{-l norsk} produces @code{\usepackage[norsk]@{babel@}}).
-@item -o,--output=
-    Set output directory.
-@item -p,--papersize=
-    Specify papersize.
-    (@strong{-p a4} produces @code{\usepackage[a4paper]@{article@}})
-@item -s,--separate
-    Normally all output files are included into one LaTeX file.
-    With this switch all files are run separately, to produce one
-    DVI file for each.
-@end table
-
-@node  Ly2dvi Features, , , Ly2dvi
-@section Features
-
-ly2dvi responds to several parameters specified in the mudela
-file. They are overridden by corresponding command line options.
-
-@table @samp
-@item language="";
-    Specify LaTeX language
-@item latexheaders="";
-    Specify additional LaTeX headers file
-@item orientation="";
-    Set orientation.
-@item paperlinewidth="";
-    Specify the width (pt, mm or cm) of the printed lines.
-@item papersize="";
-    Specify name of papersize.
-@end table
-
-@node  Ly2dvi Environment, , , Ly2dvi
-@section Environment
-
-@table @samp
-@item LILYPONDPREFIX
-    Sets the root directory of the LilyPond installation
-@item LILYINCLUDE
-    Additional directories for input files.
-@item TMP
-    Temporary directory name. Default is /tmp
-@end table
-
-@node  Ly2dvi Files, , , Ly2dvi
-@section Files
-
-@file{titledefs.tex} is inspected for definitions used to extract
-additional text definitions from the mudela file. In the current
-version the following are defined:
-
-@table @samp
-@item title
-    The title of the music. Centered on top of the first page.
-@item subtitle
-    Subtitle, centered below the title.
-@item poet
-    Name of the poet, leftflushed below the below subtitle.
-@item composer
-    Name of the composer, rightflushed below the subtitle.
-@item metre
-    Meter string, leftflushed below the below poet.
-@item opus
-    Name of the opus, rightflushed below the below composer.
-@item arranger
-    Name of the arranger, rightflushed below the opus.
-@item instrument
-    Name of the instrument, centered below the arranger
-@item piece
-    Name of the piece, leftflushed below the instrument
-@end table
-
-@file{$LILYPONDPREFIX/share/.lilyrc $HOME/.lilyrc ./.lilyrc} are files
-to set up default running conditions.  On Windows OS initialization
-files are named @file{_lilyrc}. The file syntax is as follows:
-
-@example 
-VARIABLE-NAME=VALUE 
-@end example 
-
-Where @strong{VARIABLE-NAME} is the name of the variable documented below
-and @strong{VALUE} is either a string, a 1, or a 0.  All files are parsed,
-in the shown sequence. In the current version the following are
-allowed:
-
-@table @samp
-@item DEBUG=value
-This turns off (default) or on the debug capabilities.  Possible
-values are 0 (off) and 1 (on).
-@item DEPENDENCIES=value
-This turns off (default) or on the ability to generate a Makefile
-dependency list.  Possible values are 0 (off) and 1 (on).
-@item KEEPLILYPOND=value
-This turns off (default) or on the ability to keep the log file
-associated with the LilyPond job.  Possible values are 0 (off) and 1
-(on).
-@item KEEPLY2DVI=value
-This turns off (default) or on the ability to keep the temporary files
-that are generated by the ly2dvi job.  Possible values are 0 (off) and
-1 (on)
-@item LANGUAGE=value
-Specify LaTeX language.  Possible value is a valid LaTeX language.
-@item LATEXHF=value
-Specify additional LaTeX headers file.  Possible value is a file
-specification. 
-@item LILYINCLUDE=value
-Additional directories for input files.  Possible value is a delimited
-directory path list.
-@item LILYPONDPREFIX=value
-This defines the LilyPond root directory.  Possible value is a valid
-directory specification to the LilyPond distribution location.
-@item NONUMBER=value
-This turns off (default) or on the page numbering capability.
-Possible values are 0 (page numbering enabled) and 1 (page numbering
-disabled). 
-@item ORIENTATION=value
-This sets the image orientation.  Possible values are
-portrait (default) and landscape.
-@item OUTPUTDIR=value
-This defines the directory where the resultant files will be
-generated.  Possible value is a valid directory specification.
-Default is the current working directory.
-@item PAPERSIZE=value
-This defines the papersize the image will be sized to fit.  Possible
-values are a0, a1, a2, a3, a4 (default), a5, a6, a7, a8, a9, a10, b0,
-b1, b2, b3, b4, b5, archA, archB, archC, archD, archE, flsa, flse,
-halfletter, ledger, legal, letter, or note.
-@item PHEIGHT=value
-Specify paperheight (points - an inch is 72.27, a cm is 28.453 points).
-@item POSTSCRIPT=value
-This turns off (default) or on the capability of additionally
-generating a postscript file.  Possible values are 0 (off) and 1 (on).
-@item PWIDTH=value
-Specify paperwidth (points - an inch is 72.27, a cm is 28.453 points).
-@item SEPARATE=value
-This turns off (default) or on the capability of generating multiple
-dvi and postscript files from multiple source files.  The default is
-to generate a concatenation of the source files.  Possible values are
-0 (single file) and 1 (separate files).
-@item TMP=value
-This defines the emporary directory.  Actually this is not used at the
-present.  Possible value is a valid directory specification that is
-writable to the user.
-@end table
-
-@node  Ly2dvi Initialization Sequence, , , Ly2dvi
-@section Initialization Sequence
-The initialization process reads inputs for several sources.  Below is
-a list of priorities for lowest to hightest proirity.
-
-@itemize @bullet
-@item  Program's defaults
-@item  Values found in LilyPond output file
-@item  Environment variables
-@item  $LILYPONDPREFIX/share/lilypond/.lilyrc
-@item  $HOME/.lilyrc
-@item  ./.lilyrc
-@item  command line options
-@end itemize
-
-Note that this differs slightly from the original bourne shell
-version. 
-
-@node  Ly2dvi See Also, , , Ly2dvi
-@section See Also
-
-lilypond(1), tex(1), latex(1)
-
-@node  Ly2dvi Bugs, , , Ly2dvi
-@section Bugs
-
-If you have found a bug, you should send a bugreport.
-
-@itemize @bullet
-@item Send a copy of the input which causes the error.
-@item Send a description of the platform you use.
-@item Send a description of the LilyPond and ly2dvi version you use.
-@item Send a description of the bug itself.
-@item Send it to @email{bug-gnu-music@@gnu.org} (you don't have to subscribe
-    to this mailinglist).
-@end itemize
-
-@node  Ly2dvi Remarks, , , Ly2dvi
-@section Remarks
-
-Many papersizes are now supported. Information on other sizes
-(LaTeX names, horizontal and vertical sizes) should be mailed to
-the author or to the mailing list.
-
-Supported papersizes are:
-
-a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, archA, archB, archC, archD,
-archE, b0, b1, b2, b3, b4, b5, flsa, flse, halfletter, ledger, legal,
-letter, note
-
-@node  Ly2dvi Authors, , , Ly2dvi
-@section Authors
-Python Version author:
-@email{daboys@@austin.rr.com, Jeffrey B. Reed},
-@uref{http://home.austin.rr.com/jbr/jeff/lilypond/}
-
-Original bourne shell version author:
-@email{Jan.A.Fagertun@@energy.sintef.no, Jan Arne Fagertun},
-@uref{http://www.termo.unit.no/mtf/people/janaf/}
-
-
-
-
-
-
-
-@node  midi2ly, , , Top
-@menu
-* midi2ly DESCRIPTION::           midi2ly DESCRIPTION
-* midi2ly OPTIONS::               midi2ly OPTIONS
-@end menu
-@chapter midi2ly
-
-@node  midi2ly DESCRIPTION, , , midi2ly
-@section DESCRIPTION
-midi2ly translates a MIDI input file to Mudela (GNU LilyPond source
-format).  midi2ly is part of the GNU LilyPond music typesetting package.
-
-       midi2ly [options] midi-file
-
-@node  midi2ly OPTIONS, , , midi2ly
-@section OPTIONS
-
-@table @samp
-@item -b, --no-quantify,
-    Write exact durations, e.g.: `a4*385/384'.
-@item -D, --debug,
-    Print lots of debugging stuff.
-@item -h, --help,
-    Show a summary of usage.
-@item -I, --include=@file{DIR},
-    Add DIR to search path.
-@item -k, --key=ACC[:MINOR],
-    Set default key.  ACC > 0 sets number of sharps; ACC < 0 sets number 
-    of flats.  A minor key is indicated by ":1".
-@item -n, --no-silly,
-    Assume no plets or double dots, assume smallest (reciprocal) duration 16.
-@item -o, --output=@file{FILE},
-    Set @file{FILE} as default output.
-@item -p, --no-plets,
-    Assume no plets.
-@item -q, --quiet,
-    Be quiet.
-@item -s, --smallest=N,
-    Assume no shorter (reciprocal) durations than N.
-@item -v, --verbose,
-    Be verbose.
-@item -w, --warranty,
-    Show the warranty with which midi2ly comes. (It comes with @strong{NO WARRANTY}!)
-@item -x, --no-double-dots,
-    Assume no double dotted notes.
-@end table
-
-@bye
index eeb64dca85a1c8e303deffed4a7d9449a268f353..dc612fb7eee3c4723f14e108e48d3ce7a6479c1f 100644 (file)
@@ -55,7 +55,7 @@ You need a working LilyPond binary to create the DVI sources  .
 
 @item  use ASCII. Do
 using @example 
-       make -C doc
+       make doc
 @end example 
 
 @end itemize
index c3aff45b14d29ddf3c0a99d4c20439ab7fe1a017..88d28769e6ae5a78a16bd382890368123adf5cf0 100644 (file)
@@ -127,11 +127,9 @@ installation instructions}.
 
 There are binaries available, but alas they are not updated for every version released.
 @itemize @bullet
-@item RedHat i386
-binary RPMs:  @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/RedHat/RPMS/}  
-
+@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 i386 RPM: @uref{http://linux.umbc.edu/software/lilypond/rpms/} 
 @item Windows NT: @uref{http://home.austin.rr.com/jbr/jeff/lilypond/}
 @end itemize
 
@@ -169,8 +167,7 @@ Frequently Asked Questions} first.)
 @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
+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
@@ -187,7 +184,8 @@ they tend to be very big and don't help with describing the problem.
     @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
 
index 825f55c25bb8de17c13c08a1376f5648921901a9..e7cf139d2121081d521c757d8e5a83e103da2488 100644 (file)
@@ -2,6 +2,8 @@
 \input texinfo
 @setfilename glossary.info
 
+@c @pagesizes 10.3in
+
 @c @everyheading @| @thispage @|
 @evenheading @thispage @| @| 
 @oddheading @| @| @thispage @|
@@ -59,7 +61,7 @@ accidental.
 @
 
 @mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \property Voice.textStyle = "large"
 \notes\relative c'' {
   gis1_"sharp" s s2
@@ -83,7 +85,7 @@ movement in slow tempo, esepecially the scond (slow) movement of
 I: accelerando, F: , D: accelerando, Schneller, NL: accelerando, DK:
 accelerando, S: accelerando, N:
 
-Stil faster tempo.
+Still faster tempo.
 
 @item allegro
 I: allegro, F: , D: Allegro, Schnell, Fr@"ohlich, Lustig, NL: allegro, DK:
@@ -96,14 +98,11 @@ especially the first and last movements of a @w{@ar{}@strong{sonata}}.
 I: contralto, F: alto,  D: Alt, NL: alt, DK: alt, S: alt, N: alt.
 
 A female voice of low range (@emph{contralto}). Originally the alto was a high
-male voice (hence the name) which by the use of falsetto reached the height
-height of the female voice. This type of voice is also known as
-@w{@ar{}@strong{counter tenor}}.
+male voice (hence the name) which by the use of falsetto reached the height of
+the female voice. This type of voice is also known as @w{@ar{}@strong{counter
+tenor}}.
 
 @item alto clef
-@c F: cl@'e d'ut, D: Altschl@"ussel, Bratschenschl@"ussel, NL: altsleutel, I:
-chiave di tenore.
-
 I: chiave di contralto, F: , D: Altschl@"ussel, Bratschenschl@"ussel, NL: alt
 sleutel, DK: altn@o{}gle, S: altklav, N:
 
@@ -117,20 +116,20 @@ mode hell@'enique D: reines Moll, NL: , DK: ren mol, S: ren mollskala, N: .
 @
 
 @mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \notes\relative c'' {
 a1 b c d e f g a }
 @end mudela
 
 @item andante
-I: andante, F: , D: Andante, NL: andante, DK: andante, S: andante,
+I: andante, F: andante, D: Andante, NL: andante, DK: andante, S: andante,
 N: andante. 
 
 walking tempo/character
 
 @item appoggiatura 
-I: appoggiatura, F: port de voix, D: Vorschlag, NL: voorslag, DK: forslag, S:
-f@"orslag, N:
+I: appoggiatura, F: appogiature, (port de voix), D: Vorschlag, NL: voorslag,
+DK: forslag, S: f@"orslag, N:
 
 Ornamental note, usually a second, that is melodically connected with the main
 note that follows it. In music before the 19'th century a. were usually
@@ -141,7 +140,8 @@ the duration of the long a. is proportionate to that of the main note.
 @
 
 @mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
+\property Voice.textEmptyDimension = ##t
+
 \property Voice.textStyle = "large"
 \notes\relative c'' {
 \key d;
@@ -162,7 +162,7 @@ An appoggiatura may have more notes preceding the main note.
 @
 
 @mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
+\emptyText
 \property Voice.textStyle = "large"
 \notes\relative c'' {
   \key as;
@@ -178,9 +178,8 @@ An appoggiatura may have more notes preceding the main note.
 @end mudela
 
 @item arpeggio
-I: arpeggio, F: arp@`ege, arp@`egement, D: Arpeggio, Akkordbrechungen,
-gebrochener Akkord, NL: gebroken akoord, DK: arpeggio,
-akkordbrydning, S: arpeggio, N:
+I: arpeggio, F: arp@`ege, D: Arpeggio, Akkordbrechungen, gebrochener Akkord,
+NL: gebroken akoord, DK: arpeggio, akkordbrydning, S: arpeggio, N:
 
 @
 
@@ -208,6 +207,8 @@ akkordbrydning, S: arpeggio, N:
 I: intervallo ascendente, F: intervalle ascendant, D: steigendes Intervall,
 NL: stijgend interval, DK:@w{ }stigende interval, S: stigande intervall, N:
 
+A distance between a starting lower note and a higher ending note.
+
 @item augmented interval
 I: intervallo aumentato, F: intervalle augment@'e, D: @"uberm@"a@ss{}iges
 Intervall, NL: overmatig interval, DK: forst@o{}rret interval, S:
@@ -244,7 +245,7 @@ baryton.
 The male voice intermediate between the @w{@ar{}@strong{bass}} and the
 @w{@ar{}@strong{tenor}}.
 
-@item bariton clef
+@item baritone clef
 I: chiave di baritono, F: , D: Barytonschl@"ussel, NL: baritonsleutel, DK:
 barytonn@o{}gle, S: barytonklav, N: .
 
@@ -273,8 +274,8 @@ beams determine the note value of the connected notes.
 @
 
 @mudela[13pt,eps]
-\property Score.barNonAuto = "1"
-\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = ##t
+\emptyText
 \property Voice.textStyle = "large"
 \notes\relative c'' { 
   [g8_"1/8" g g g] s16
@@ -331,7 +332,7 @@ orchestral or choral score.
 @end mudela
 
 @item brass
-I: ottoni, D: Blechbl@"aser, NL: koper (blazers), F: instruments de cuivre,
+I: ottoni, D: Blechbl@"aser, NL: koper (blazers), F: cuivres,
 DK: messingbl@ae{}sere, S: brassinstrument, m@"assingsinstrument, N:
 
 A family of blown musical instruments made of brass all using a cup formed
@@ -343,8 +344,10 @@ I: respiro, F: respiration, D: Atemzeichen, Trennungszeichen, NL:
 repercussieteken, DK:
 vejrtr@ae{}kningstegn, S: andningstecken, N: .
 
+Indication of where to breathe in vocal and wind instrument parts.
+
 @item breve
-I: breve, F: , D: Brevis, NL: brevis, DK: brevis, S: brevis, N:
+I: breve, F: br@`eve, D: Brevis, NL: brevis, DK: brevis, S: brevis, N:
 
 @w{@ar{}@strong{Note value}} twice as long as a whole note. Mainly used
 in pre-1650 music.
@@ -352,7 +355,7 @@ in pre-1650 music.
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1" 
+\property Score.barNonAuto = ##t
 \notes\relative c'' { g\breve } 
 @end mudela
 
@@ -369,7 +372,7 @@ lines.
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1" 
+\property Score.barNonAuto = ##t
 \property Lyrics.textStyle = "large"
 \property Voice.clefStyle = "fullSizeChanges"
 \addlyrics
@@ -389,10 +392,10 @@ I: cadenza, F: cadence, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: .
 @w{@ar{}@strong{harmonic cadence}} @w{@ar{}@strong{functional harmony}}
 
 @item cadenza
-I: cadenza, F: fioriture,  D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: .
+I: cadenza, F: cadence, D: Kadenz, NL: cadens, DK: kadence, S: kadens, N: .
 
 An extended, improvisatory style section inserted near the end of
-movement. The purpose of a c. is to give the singer or player a chance to
+movement. The purpose of a cadenza is to give the singer or player a chance to
 exhibit her technichal skill and not the least her ability to improvise. Since
 the middle of the 19'th century, however, most cadences have been written down
 by the composer.
@@ -426,7 +429,7 @@ chords are denoted open chords
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \property Voice.textStyle = "large"
 \time 4/4;
 \notes\relative c'' {
@@ -448,8 +451,8 @@ A scale consisting of all 11 @w{@ar{}@strong{semitone}}s.
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1" 
-\notes\relative c' { c1 cis e f fis g gis a ais b c }
+\property Score.barNonAuto = ##t 
+\notes\relative c' { c1 cis d dis e f fis g gis a ais b c }
 @end mudela
 
 @item chromaticism
@@ -459,13 +462,13 @@ N:
 Use of tones extraneous to a @w{@ar{}@strong{diatonic scale}} (minor, major).
 
 @item church mode; ecclesiastical mode 
-I: modi ecclesiastici, F: mode eccl@'esiastique, D: Kirchentonart, NL:
+I: modo ecclesiastico, F: mode eccl@'esiastique, D: Kirchentonart, NL:
 kerktoonladder, DK: kirketoneart, S: kyrkotonart, N:
 
 @w{@ar{}@strong{diatonic scale}}
 
 @item clef
-I: chiave, F: cl@'e, D: Schl@"ussel, Schl@"ussel, Notenschl@"ussel, NL:
+I: chiave, F: cl@'e, clef, D: Schl@"ussel, Schl@"ussel, Notenschl@"ussel, NL:
 sleutel, DK: n@o{}gle, S: klav, N:
 
 @w{@ar{}@strong{c clef}} @w{@ar{}@strong{f clef}} @w{@ar{}@strong{g clef}}
@@ -507,7 +510,7 @@ Melody moving in the narrow steps of the scale;
 @end mudela
 
 @item consonance 
-I: consonanza, F :consonance, D: Konsonanz, NL: consonant, DK: konsonans, S:
+I: consonanza, Fconsonance, D: Konsonanz, NL: consonant, DK: konsonans, S:
 konsonans, N:
 
 @w{@ar{}@strong{harmony}}
@@ -569,8 +572,8 @@ composition methods.
 @end mudela
 
 @item counter tenor
-I: controtenore, F: , D: Kontratenor, NL: contratenor, DK: kontratenor, S:
-kontratenor, counter tenor, N: kontratenor
+I: controtenore, F: contre-tenor, D: Kontratenor, NL: contratenor, DK:
+kontratenor, S: kontratenor, counter tenor, N: kontratenor
 
 @w{@ar{}@strong{contralto}}
 
@@ -586,7 +589,7 @@ I: crescendo, F: crescendo, D: Crescendo, Lauter, NL: crescendo, DK:
 crescendo, S: crescendo, N:@w{ }crescendo.
 
 Increasing volume. Indicated by a rightwards opening horizontal wedge or the
-abbreviation "cresc".
+abbreviation "cresc.".
 
 @
 
@@ -632,7 +635,7 @@ I: decrescendo, D: Decrescendo, Leiser, NL: decrescendo, DK: decrescendo, S:
 decrescendo, N: decrescendo
 
 Decreasing tone volume. Indicated by a leftwards opening horizontal wedge  
-or the abbreviation "decresc".
+or the abbreviation "decresc.".
 
 @
 
@@ -646,9 +649,11 @@ I: intervallo discendente, F: intervalle descendant, D: fallendes Intervall,
 absteigendes Intervall, NL: dalend interval, DK:@w{ }faldende interval, S:
 fallande intervall, N:
 
+An distance between a starting higher note and a lower ending note.
+
 @item diatonic scale
-I: scala diatonica, F: , D: diatonische Tonleiter, NL: diatonische toonladder,
-DK: diatonisk skala, S: diatonisk skala, N:
+I: scala diatonica, F: gamme diatonique, D: diatonische Tonleiter, NL:
+diatonische toonladder, DK: diatonisk skala, S: diatonisk skala, N:
 
 A scale consisting of 5 @w{@ar{}@strong{whole tones}} and 2
 @w{@ar{}@strong{semitones}} (S). Scales played on the white keys of a piano
@@ -660,92 +665,92 @@ also to some extent in newer jazz music.
 @
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c' { 
   c1 d
-  \property Voice.textScriptPadding = "-10"
+  \property Voice.textScriptPadding = #-10
   e^"~~ S" f g a 
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c }
   \context Lyrics \lyrics { Ionian }
 @end mudela
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c' { 
   d1
- \property Voice.textScriptPadding = "-10"
+ \property Voice.textScriptPadding = #-10
   e^"~~ S"
   f g a 
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c d }
   \context Lyrics \lyrics { Dorian }
 @end mudela
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c' { 
-  \property Voice.textScriptPadding = "-10"
+  \property Voice.textScriptPadding = #-10
   e1^"~~ S"
   f g a 
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c d e }
   \context Lyrics \lyrics { Phrygian }
 @end mudela
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c' { 
   f1 g a 
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c d 
-  \property Voice.textScriptPadding = "0"
+  \property Voice.textScriptPadding = #0
   e^"~~ S" f }
   \context Lyrics \lyrics { Lydian }
 @end mudela
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c'' { 
   g1 a 
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c d 
-  \property Voice.textScriptPadding = "0"
+  \property Voice.textScriptPadding = #0
   e^"~~ S" f g }
   \context Lyrics \lyrics { Mixolydian }
 @end mudela
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c'' { 
   a1
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c d 
-  \property Voice.textScriptPadding = "0"
+  \property Voice.textScriptPadding = #0
   e^"~~ S" f g a }
   \context Lyrics \lyrics { Aeolian }
 @end mudela
@@ -756,48 +761,48 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and
 7th tone.
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c' { 
   c1 d
-  \property Voice.textScriptPadding = "-10"
+  \property Voice.textScriptPadding = #-10
   e^"~~ S" f g a 
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c }
   \context Lyrics \lyrics { Major }
 @end mudela
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c'' { 
   a1
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c d 
-  \property Voice.textScriptPadding = "0"
+  \property Voice.textScriptPadding = #0
   e^"~~ S" f g a }
   \context Lyrics \lyrics { "ancient minor" }
 @end mudela
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c'' { 
   a1
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c d 
-  \property Voice.textScriptPadding = "0"
+  \property Voice.textScriptPadding = #0
   e^"~~ S" 
-  \property Voice.textScriptPadding = "1"
+  \property Voice.textScriptPadding = #1
   f!^"~~ A" 
   gis^"~~ S" 
   a }
@@ -805,20 +810,20 @@ harmonic minor scale type an augmented second (A) occurs between the 6th and
 @end mudela
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
 \notes\relative c'' { 
   a1
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   b^"~~ S" c d e fis 
-  \property Voice.textScriptPadding = "0"
+  \property Voice.textScriptPadding = #0
   gis^"~~ S" a g! 
   \property Voice.textScriptPadding = "-1"
   f!^"~~ S" e d 
-  \property Voice.textScriptPadding = "-4"
+  \property Voice.textScriptPadding = #-4
   c^"~~ S" b a
 }
   \context Lyrics \lyrics { "Melodic minor" }
@@ -832,7 +837,7 @@ intervall, N: .
 @w{@ar{}@strong{interval}}
 
 @item diminuendo
-I: diminuendo, F: , D: Diminuendo, NL: diminuendo, DK: diminuendo, 
+I: diminuendo, F: diminuendo, D: Diminuendo, NL: diminuendo, DK: diminuendo,
 S:@w{ }diminuendo, N:@w{ }diminuendo.
 
 @w{@ar{}@strong{decrescendo}}
@@ -882,8 +887,8 @@ dominant, N: .
 The fifth @w{@ar{}@strong{scale degree}} @w{@ar{}@strong{functional harmony}}
 
 @item dorian mode
-I: modo dorico, F: , D: Dorischer Kirchenton, NL: dorische toonladder,
-dorischer Kirchenton, DK: dorisk skala, S: dorisk skala, N:
+I: modo dorico, F: mode dorien, D: Dorischer Kirchenton, NL: dorische
+toonladder, dorischer Kirchenton, DK: dorisk skala, S: dorisk skala, N:
 
 @w{@ar{}@strong{diatonic scale}}
 
@@ -973,7 +978,8 @@ achtste rust, DK:@w{ }ottendedelspause, S: @aa{}ttonddelspaus, N: .
 @w{@ar{}@strong{note value}}
 
 @item engraving
-I: incisione, F: , D: Notenstechen, NL: steken, DK: nodestik, S: nottryck, N: .
+I: incisione, F: gravure, D: Notenstechen, NL: steken, DK: nodestik, S:
+nottryck, N: .
 
 Engraving means incising or etching a metal plate for
 printing. Photoengraving means drawing music with ink in a manner
@@ -992,7 +998,7 @@ but equal pitch.
 @
 
 @mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \property Voice.textStyle = "large"
 \notes\relative c'' {
   gis1_"g sharp" s as1_"a flat" s s
@@ -1001,16 +1007,17 @@ but equal pitch.
 @end mudela
 
 @item equal temperament 
-I: temperamento equabile, F: , D: gleichschwebende Stimmung, NL:
-ge@-lijk@-zwe@-ven@-de temperatuur, DK: ligesv@ae{}vende temperatur,
-S: liksv@"avande temperatur, N: .
+I: temperamento equabile, F: temp@'erament @'egal, D: gleichschwebende
+Stimmung, NL: ge@-lijk@-zwe@-ven@-de temperatuur, DK: ligesv@ae{}vende
+temperatur, S: liksv@"avande temperatur, N: .
 
 Tuning system dividing the octave into 12 equal @w{@ar{}@strong{semitones}}
 (precisely 100 @w{@ar{}@strong{cents}}). @w{@ar{}@strong{temperament}}
 
 @item expression mark
-I: segno d'espressione, F: signe d'expressoin,  D: Vortragszeichen, NL:
-voordrachtsteken, DK: foredragsbetegnelse, S: f@"oredragsbeteckning, N: .
+I: segno d'espressione, F: signe d'expression, indication de nuance, D:
+Vortragszeichen, NL: voordrachtsteken, DK: foredragsbetegnelse, S:
+f@"oredragsbeteckning, N: .
 
 Performance indications concerning 1. volume, dynamics (for example
 @w{@ar{}@strong{forte}}, @w{@ar{}@strong{crescendo}}), 2. tempo (for example
@@ -1033,7 +1040,7 @@ octave lower (for example on double bass @w{@ar{}@strong{strings}}).
 
 @ignore
 @mud ela[13pt,eps] 
-\property Score.barNonAuto = "1" 
+\property Score.barNonAuto = ##t 
 \property Voice.clefStyle = "fullSizeChanges"
 \property Lyrics.textStyle = "large"
 \addlyrics
@@ -1060,7 +1067,7 @@ octave lower (for example on double bass @w{@ar{}@strong{strings}}).
 @end ignore
 
 @item fermata
-I: corona, F: pauses, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: .
+I: corona, F: pause, D: Fermate, NL: fermate, DK: fermat, S: fermat, N: .
 
 Prolonged note or rest of indefinite duration.
 
@@ -1081,7 +1088,7 @@ I: quinta, F: quinte, D: Quinte, NL: kwint, I: , DK: kvint, S: kvint, N: kvint.
 @w{@ar{}@strong{thorough bass}}
 
 @item fingering
-I: ditteggiatura, F: doigt@'e, D: Fingersatz, NL: vingerzetting, DK:
+I: diteggiatura, F: doigt@'e, D: Fingersatz, NL: vingerzetting, DK:
 fingers@ae{}tning, S: fingers@"attning, N: .
 
 The methodical use of fingers in the playing of instruments.
@@ -1096,8 +1103,8 @@ a quarter note. The number of flags determines the @w{@ar{}@strong{note value}}.
 @
 
 @mudela[13pt,eps]
-\property Score.barNonAuto = "1"
-\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = ##t
+\emptyText
 \property Voice.textStyle = "large"
 \notes\relative c'' { 
   g8_"1/8" s8 
@@ -1115,7 +1122,7 @@ I: bemolle, F: b@'emol, D: B, b, NL: mol, DK: b, S: bef@"ortecken, N: .
 @w{@ar{}@strong{appoggiatura}}
 
 @item forte
-I: forte, F: , D: forte, Laut, NL: forte, DK: forte, S: forte, N: .
+I: forte, F: forte, D: forte, Laut, NL: forte, DK: forte, S: forte, N: .
 
 Loud, abbreviated @b{f}, @emph{fortissimo} (@b{ff}) very loud,
 @emph{mezzoforte} (@b{mf}) medium loud.
@@ -1126,11 +1133,11 @@ I: quarta, F: quarte, D: Quarte, NL: kwart, DK: kvart, S: kvart, N: .
 @w{@ar{}@strong{interval}}
 
 @item fugue 
-I: fuga, F: , D: Fuge, NL: fuga, DK: fuga, S: fuga, N: .
+I: fuga, F: fugue, D: Fuge, NL: fuga, DK: fuga, S: fuga, N: .
 
 @w{@ar{}@strong{counterpoint}}
 
-@item functiontional harmony
+@item functional harmony
 I: armonia funzionale, F: , D: Funktionslehre, NL: , DK: funktionsanalyse,
 funktionsharmonik, S: funktionsl@"ara, N:
 
@@ -1143,8 +1150,8 @@ of the base chords.
 @
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
@@ -1158,8 +1165,8 @@ of the base chords.
 I: sol, F: sol, D: G, g, NL: g, DK: g, S: g, N: g.
 
 @item G clef
-I: chiave di sol, F: , D: G-Schl@"ussel, Violinschl@"ussel, NL: G-sleutel, DK:
-g-n@o{}gle, S: g-klav, N: .
+I: chiave di sol, F: cl@'e de sol, D: G-Schl@"ussel, Violinschl@"ussel, NL:
+G-sleutel, DK: g-n@o{}gle, S: g-klav, N: .
 
 A clef symbol indicating the G above central C. Used on the first and second
 note lines. A digit 8 above the clef symbol indicates that the notes must be
@@ -1170,7 +1177,7 @@ that).
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1" 
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Voice.clefStyle = "fullSizeChanges"
 \addlyrics
@@ -1189,28 +1196,32 @@ that).
 @end mudela
 
 @item glissando
-I: glissando, F: glissement, D: Glissando, NL: glissando, DK: glissando, S:
+I: glissando, F: glissando, D: Glissando, NL: glissando, DK: glissando, S:
 glissando, N: glissando.
 
 Letting the pitch  slide fluently from one note to the other
 
 @item grace notes
-I: abbellimenti, F: , D: Verzierungen, Vorschl@"age, Vorschlagsnoten, NL:
-versieringen, DK: forsiringer, S: ornament, N: .
+I: abbellimenti, F: fioriture, petite[s] note[s], D: Verzierungen,
+Vorschl@"age, Vorschlagsnoten, NL: versieringen, DK: forsiringer, S: ornament,
+N: .
 
 Notes printed in small types to indicate that their time values are not
 counted in the rhythm of the bar. @w{@ar{}@strong{appoggiatura}}
 
 @item grand staff
-I: accolatura, F: , D: Akkolade, NL: piano systeem, DK: klaversystem, S:
-ackolad, b@"ojd klammer, N: .
+I: accolatura, F: accolade, D: Akkolade, NL: piano systeem, DK: klaversystem,
+S: ackolad, b@"ojd klammer, N: .
 
 @w{@ar{}@strong{brace}}
 
 A combination of two staffs with a brace.  Usually used for piano music.
 
 @item grave
-I: grave, F: , D: grave, langsam, traurig, NL: , DK: grave, S: grave, N: .
+I: grave, F: grave, D: grave, langsam, traurig, NL: , DK: grave, S: grave, N:
+.
+
+Slow, solemn.
 
 @item half note
 I: minima, F: blanche, UK: minim, D: Halbe, halbe Note, NL: halve noot, DK:
@@ -1249,8 +1260,8 @@ section. @ar{}@w{}@strong{functional harmony}
 @end mudela
 
 @item harmony
-I: armonia, F: , D: Harmonie, Zusammenklang, NL: harmonie, DK: samklang, S:
-samklang, N:
+I: armonia, F: harmonie, D: Harmonie, Zusammenklang, NL: harmonie, DK:
+samklang, S: samklang, N:
 
 Tones sounding simultaneously. Two note harmonies fall into the cathegories
 @emph{consonances} and @emph{dissonances}.
@@ -1260,7 +1271,7 @@ Consonances:
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \property Voice.textStyle = "large"
 \notes\relative c'' {
   <g1_"unisone" g> s
@@ -1278,7 +1289,7 @@ Dissonances:
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \property Voice.textStyle = "large"
 \notes\relative c'' {
   <g1_"second" a> s
@@ -1290,7 +1301,8 @@ Dissonances:
 Three note harmony @w{@ar{}@strong{chord}}
 
 @item homophony
-I: omofonia, F: , D: Homophonie, NL: homofonie, DK: homofoni, S: homofoni, N: .
+I: omofonia, F: homophonie, D: Homophonie, NL: homofonie, DK: homofoni, S:
+homofoni, N: .
 
 Music in which one voice leads melodically followed by the other voices more
 or less in the same rhythm. In contrast to @w{@ar{}@strong{polyphony}}.
@@ -1308,7 +1320,7 @@ forms an octave.
 @ 
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
@@ -1329,7 +1341,7 @@ forms an octave.
 @ 
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
@@ -1350,7 +1362,7 @@ forms an octave.
 @ 
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \property Lyrics.textStyle = "large"
 \property Voice.textStyle = "large"
 \addlyrics
@@ -1369,7 +1381,7 @@ forms an octave.
 @end mudela
 
 @item inverted interval
-I: rivolto, F: renversement d'intervalle, D: umgekerhtes Intervall, NL:
+I: intervallo rivolto, F: intervalle renvers@'e, D: umgekerhtes Intervall, NL:
 interval inversie, DK: omvendingsinterval, S: intervallets omv@"andning, N: .
 
 The difference between an interval and an octave.
@@ -1377,7 +1389,7 @@ The difference between an interval and an octave.
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \property Voice.textStyle = "large"
 \notes\relative c'' {
   < g1_"second" a > s < g'_"seventh" a, > s \bar "||"; 
@@ -1394,7 +1406,8 @@ Tuning system in which the notes are obtained by adding and subtracting
 @w{natural} fifths and thirds. @w{@ar{}@strong{temperament}}
 
 @item key
-I: tonalit@`a, F: , D: Tonart, NL: toonsoort, DK: toneart, S: tonart, N: .
+I: tonalit@`a, F: tonalit@'e, D: Tonart, NL: toonsoort, DK: toneart, S:
+tonart, N: .
 
 According to the 12 tones of the @w{@ar{}@strong{chromatic scale}} there are 12
 keys, one on c, one on c-sharp etc. @w{@ar{}@strong{key signature}}
@@ -1407,15 +1420,15 @@ The sharps or flats appearing at the beginning of each staff indicating the
 key of the music. @w{@ar{}@strong{accidental}}
 
 @item largo
-I: largo, F: , D: Largo, Langsam, Breit, NL: largo, DK: largo, S: largo, N:
-largo
+I: largo, F: largo, D: Largo, Langsam, Breit, NL: largo, DK: largo, S: largo,
+N: largo
 
 Very slow in tempo, usually combined with great
 expressiveness. @emph{Larghetto} less slow than largo.
 
 @item leading note
-I: sensibile, F: sensible, D: Leitton, NL: leidtoon, DK: ledetone, S: ledton,
-N: .
+I: sensibile, F: note sensible, D: Leitton, NL: leidtoon, DK: ledetone, S:
+ledton, N: .
 
 The seventh @w{@ar{}@strong{scale degree}}, a @w{@ar{}@strong{semitone}} below
 the tonic; so called because of its strong tendency to ``lead up'' (resolve
@@ -1431,12 +1444,13 @@ A ledger line is an extension of the staff.
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1" 
+\property Score.barNonAuto = ##t 
 \notes\relative c'' { a,1 s c'' } 
 @end mudela
 
 @item legato
-I: legato, F: , D: legato, NL: legato, DK: legato, S: legato, N: .
+I: legato, F: legato, li@'e, D: legato, NL: legato, DK: legato, S: legato, N:
+.
 
 To be performed without any perceptible interruption between the notes (a)
 unlike @emph{leggiero} or @emph{non-legato} (b), @emph{portato} (c) and
@@ -1445,8 +1459,8 @@ unlike @emph{leggiero} or @emph{non-legato} (b), @emph{portato} (c) and
 @
 
 @mudela[13pt,eps]
-\property Score.barNonAuto = "1"
-\property Voice.textEmptyDimension = "1"
+\property Score.barNonAuto = ##t
+\emptyText
 \property Lyrics.textStyle = "large"
 \addlyrics
 \notes\relative c'' { 
@@ -1480,14 +1494,14 @@ forslag, S: l@aa{}ngt f@"orslag, N: .
 @w{@ar{}@strong{appoggiatura}}
 
 @item longa
-I: longa, F: , D: Longa, NL: longa, DK: longa, S: longa, N: longa
+I: longa, F: longa, D: Longa, NL: longa, DK: longa, S: longa, N: longa
 
 note value: double length of @w{@ar{}@strong{brevis}}. @w{@ar{}@strong{note value}}
 
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1" 
+\property Score.barNonAuto = ##t 
 \notes\relative c'' { g\longa } 
 @end mudela
 
@@ -1498,7 +1512,7 @@ groot interval, DK: stort interval, S: stort intervall, N: .
 @w{@ar{}@strong{interval}}
 
 @item major
-I: maggiore, F: mode majeur, D: Dur, NL: majeur, DK: dur, S: dur, N: dur.
+I: maggiore, F: [mode] majeur, D: Dur, NL: majeur, DK: dur, S: dur, N: dur.
 
 @w{@ar{}@strong{diatonic scale}}
 
@@ -1520,8 +1534,8 @@ throughout the composition and are marked from each other by
 bar-lines. @w{@ar{}@strong{meter}}
 
 @item mediant
-I: mediante, F: m@'ediante, NL: mediant, D: Mediant, DK: mediant, S: mediant,
-N: .
+I: mediante, modale, F: m@'ediante, NL: mediant, D: Mediant, DK: mediant, S:
+mediant, N: .
 
 1. The third @b{scale degree}. 2. A @w{@ar{}@strong{chord}} having its base tone
 a third from that of another chord. For example the tonic chord may be
@@ -1599,7 +1613,7 @@ First C below the 440 Hz A.
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1" 
+\property Score.barNonAuto = ##t 
 \property Voice.clefStyle = "fullSizeChanges"
 \notes\relative c' { 
   \clef "F"; c1 s
@@ -1634,8 +1648,8 @@ key if the key is major and to the @w{@ar{}@strong{relative key}} if the key
 is minor.
 
 @item mordent
-I: mordente, F: mordant, pinc@`e, D: Mordent, NL: mordent, DK: mordent, S:
-mordent, N: .
+I: mordente, F: mordant, D: Mordent, NL: mordent, DK: mordent, S: mordent, N:
+.
 
 @w{@ar{}@strong{ornament}}
 
@@ -1649,7 +1663,7 @@ subject.
 
 @mudela[13pt,eps] 
 \property Score.timeSignatureStyle = "C2/2"
-\property Voice.textEmptyDimension = "1"
+\emptyText
 \property Voice.textStyle = "large"
 \notes\relative c'' { 
   \time 4/4;
@@ -1661,14 +1675,14 @@ subject.
 @end mudela
 
 @item movement
-I: movimento, F: , D: Satz, NL: deel, DK: sats, S: sats, N: .
+I: movimento, F: mouvement, D: Satz, NL: deel, DK: sats, S: sats, N: .
 
 Greater musical works like @w{@ar{}@strong{symphony}} and
 @w{@ar{}@strong{sonata}} most often consist of several - more or less -
 independant pieces called movements.
 
 @item multibar rest
-I: pausa multipla, F: b@^aton de pause, NL: meermaats rust, D:
+I: pausa multipla, F: pause multiple, NL: meermaats rust, D:
 mehrtaktige Pause, DK: flertaktspause, S: flertaktspaus, N: .
 
 @
@@ -1676,7 +1690,7 @@ mehrtaktige Pause, DK: flertaktspause, S: flertaktspaus, N: .
 @mudela[13pt,eps]
 \notes\relative c'' {
 a1
-\property Score.skipBars=1 R1*3 
+\property Score.skipBars=##t R1*3 
 a1 }
 @end mudela
 
@@ -1693,7 +1707,7 @@ DK:@w{ }op@-l@o{}sningstegn, S: @aa{}terst@"allningstecken, N: .
 @w{@ar{}@strong{appoggiatura}}
 
 @item ninth
-I: nona, F: , D: None, NL: noon, DK: none, S: nona, N: .
+I: nona, F: neuvi@`eme, D: None, NL: noon, DK: none, S: nona, N: .
 
 @w{@ar{}@strong{interval}}
 
@@ -1703,6 +1717,12 @@ I: nona, F: , D: None, NL: noon, DK: none, S: nona, N: .
 @item note
 I: nota, F: note, D: Note, NL: noot, DK: node, S: not, N: ,
 
+Notes are signs by means of which music is fixed in writing. The term is, also
+used for the sound indicated by a note, and even for the key of the piano
+which produces the sound. However, a clear distinction between the terms tone
+and @w{@ar{}@strong{note}} is strongly recommended. Briefly, one sees a note,
+and hears a tone.
+
 @item note head
 I: testa, F: , D: Notenkopf, NL: nootballetje, DK: nodehovede, S: nothuvud, N:
 .
@@ -1715,8 +1735,8 @@ instruments (often having no defined pitch) the note head may indicate the
 instrument.
 
 @item note value
-I: valore, durata, F: , D: Notenwert, NL: nootwaarde, DK nodev@ae{}rdi, S:
-notv@"arde, N: .
+I: valore, durata, F: dur@'ee, valeur (d'une note), D: Notenwert, NL:
+nootwaarde, DK nodev@ae{}rdi, S: notv@"arde, N: .
 
 Note values (durations) are measured as fractions, normally 1/2, of the next
 higher note value. The longest duration normally used is called @emph{brevis},
@@ -1727,7 +1747,7 @@ but sometimes (mostly in pre baroque music) the double length note value
 
 @mudela[13pt,eps]
 \property Voice.textStyle = "large"
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \notes\relative c'' { 
   g\longa_"longa" g\breve_"breve" 
   g1_"1/1" g2_"1/2" g4_"1/4" s16 g8_"1/8" s16
@@ -1736,7 +1756,7 @@ but sometimes (mostly in pre baroque music) the double length note value
 
 @mudela[13pt,eps]
 \property Voice.textStyle = "large"
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \notes\relative c'' { 
   r\longa_"longa" r\breve_"breve" 
   r1_"1/1" r2_"1/2" r4_"1/4" s16 r8_"1/8" s16
@@ -1749,7 +1769,7 @@ half. Another dot adds yet a fourth of the duration.
 @
 
 @mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
+\emptyText
 \property Voice.textStyle = "large"
 \notes\relative c'' { 
   \time 4/4;
@@ -1766,7 +1786,7 @@ frequently used.
 
 @mudela[13pt,eps]
 \property Voice.textStyle = "large"
-\property Voice.textEmptyDimension = "1"
+\emptyText
 \notes\relative c'' { 
   \time 4/4;
   \times 2/3 {g8_"triplets" g g} g4 g8 g g4 \bar "||"; 
@@ -1787,8 +1807,8 @@ I: ottava, F: octave, D: Oktave, NL: octaaf, DK: oktav, S: oktav, N: .
 @w{@ar{}@strong{interval}}
 
 @item ornament; embellishment; accessory
-I: abbellimento, fioriture, abbellimenti, F: agr@`ement, ornement, D:
-Verzierung, Ornament, NL: versiering, DK: forsiring, S: ornament, N: .
+I: abbellimento, fioriture, F: agr@'ement, ornement, D: Verzierung, Ornament,
+NL: versiering, DK: forsiring, S: ornament, N: .
 
 Most commonly used is the @emph{trill}, the rapid alternation of a given note
 with the diatonic @w{@ar{}@strong{second}} above it. In the music from the
@@ -1801,7 +1821,7 @@ the upper note is played first.
 @mudela[13pt,eps]
 <
   \context Staff = sa {
-    \property Voice.textEmptyDimension = "1"
+    \emptyText
     \property Voice.textStyle = "large"
     \notes\relative c'' { 
       c2._"pre-1850"  b4\trill | c1 \bar "||";
@@ -1823,7 +1843,7 @@ Other frequently used ornaments are the @emph{turn}, the @emph{mordent} and the
 @mudela[13pt,eps]
 <
   \context Staff = sa {
-    \property Voice.textEmptyDimension = "1"
+    \emptyText
     \property Voice.textStyle = "large"
     \notes\relative c'' { 
       a4_"turn" b\turn c2 \bar "||";
@@ -1842,22 +1862,22 @@ Other frequently used ornaments are the @emph{turn}, the @emph{mordent} and the
 @w{@ar{}@strong{appoggiatura}}
 
 @item ossia
-I: ossia, F: facilit@'e, D: Ossia, NL: alternatief, DK: ossia, S: ossia, N: .
+I: ossia, F: ossia, D: Ossia, NL: alternatief, DK: ossia, S: ossia, N: .
 
 Ossia (otherwise) marks an alternative. It is an added staff or piano
 score, usually only a few measures long, which presents another version
 of the music, for example for small hands.
 
 @item part
-I: voce, parte, F: , D: Stimme, NL: partij, DK: stemme, S: st@"amma, N: .
+I: voce, parte, F: partie, D: Stimme, NL: partij, DK: stemme, S: st@"amma, N: .
 
 1. In instrumental or choral music the music for the single instrument
 or voice. 2. in contrapuntal music @w{@ar{}@strong{counterpoint}} the single
 melodic line of the contrapuntal web.
 
 @item percussion
-I: percussioni, F: , D: Schlagzeug, NL: slagwerk, DK: slagt@o{}j, S: slagverk,
-N: .
+I: percussioni, F: percussion, D: Schlagzeug, NL: slagwerk, DK: slagt@o{}j, S:
+slagverk, N: .
 
 A family of musical instruments which are played on by striking or
 shaking. Percussion instruments commonly used in a symphony orchestra are
@@ -1885,7 +1905,7 @@ The clear rendering in musical performance of the @w{@ar{}@strong{phrase}}s of
 the melody. Phrasing may be indicated by a @w{@ar{}@strong{slur}}.
 
 @item piano 
-I: piano, F: , D: piano, leise, NL: piano, DK: piano, S: piano, N: .
+I: piano, F: piano, D: piano, leise, NL: piano, DK: piano, S: piano, N: .
 
 @emph{piano} (@b{p}) soft, @emph{pianissimo} (@b{pp}) very soft,
 @emph{mezzopiano} (@b{mp}) medium soft.
@@ -1895,14 +1915,14 @@ I: altezza, F: hauteur, D: Tonh@"ohe, NL: toonhoogte, DK: toneh@o{}jde, S:
 tonh@"ojd, N: .
 
 @item pizzicato
-I: pizzicato, F: , D: pizzicato, NL: pizzicato, getokkeld, DK: pizzicato, S:
-pizzicato.
+I: pizzicato, F: pizzicato, D: pizzicato, NL: pizzicato, getokkeld, DK:
+pizzicato, S: pizzicato.
 
 Play by plucking the strings.
 
 @item polyphony
-I: polifonia, F: , D: Polyphonie, NL: polyfonie, DK: polyfoni, S: polyfoni, N:
-.
+I: polifonia, F: polyphonie, D: Polyphonie, NL: polyfonie, DK: polyfoni, S:
+polyfoni, N: .
 
 Music written in a combination of several simultaneous voices (parts) of a
 more or less pronounced individuality. @w{@ar{}@strong{counterpoint}}
@@ -1911,8 +1931,8 @@ more or less pronounced individuality. @w{@ar{}@strong{counterpoint}}
 @w{@ar{}@strong{legato}}
 
 @item presto
-I: presto, F: , D: Presto, Sehr schnell, NL: presto, Sehr schnell, DK: presto,
-S: presto, N: .
+I: presto, F: presto, D: Presto, Sehr schnell, NL: presto, Sehr schnell, DK:
+presto, S: presto, N: .
 
 Very quick, i.e. quicker than @w{@ar{}@strong{allegro}}. @emph{prestissimo}
 denotes the highest possible degree of speed.
@@ -1945,19 +1965,20 @@ kwart rust, DK:@w{ }fjerdedelspause, S: fj@"ardedelspaus, N: .
 @w{@ar{}@strong{note value}}
 
 @item quintuplet
-I: quintina, F: , D: Quintole, NL: kwintool, DK: kvintol, S: kvintol, N: .
+I: quintina, F: quintuplet, D: Quintole, NL: kwintool, DK: kvintol, S:
+kvintol, N: .
 
 @w{@ar{}@strong{note value}}
 
 @item rallentando
-I: rallentando, F: , D: rallentando, langsamer, NL: rallentando, DK:
-rallentando, S: rallentando, N: .
+I: rallentando, F: rallentando, D: rallentando, langsamer, NL: rallentando, DK:
+rallentando, S: rallentando, N: rallentando.
 
-@w{@ar{}@strong{ritardando}}
+Abbreviation "rall.". @w{@ar{}@strong{ritardando}}
 
 @item relative key
-I: tonalit@`a relativa, F: , D: Paralleltonart, DK: paralleltoneart, S:
-parallelltonart, N: .
+I: tonalit@`a relativa, F: tonalit@'e relative, D: Paralleltonart, DK:
+paralleltoneart, S: parallelltonart, N: .
 
 @w{@ar{}@strong{Major}} and @w{@ar{}@strong{minor}} @w{@ar{}@strong{key}} with
 the same @w{@ar{}@strong{signature}}.
@@ -1965,8 +1986,8 @@ the same @w{@ar{}@strong{signature}}.
 @
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Voice.textStyle = "large"
 \notes\relative c' { 
   \key es;
@@ -1992,7 +2013,7 @@ gen@-ta@-gel@-se, S: repris, N: .
 @end mudela
 
 @item rest
-I: pausa, F: soupir, D: Pause, NL: rust, DK: pause, S: paus, N: .
+I: pausa, F: silence, D: Pause, NL: rust, DK: pause, S: paus, N: .
 
 @w{@ar{}@strong{note value}}
 
@@ -2009,13 +2030,14 @@ different measures. (c) Free rhythm, i.e. the use of temporal values having no
 common metrical unit (beat).
 
 @item ritardando
-I: ritardando, F: , D: Ritardando, Langsamer, NL: ritardando, DK: ritardando,
-S: ritardando, N: .
+I: ritardando, F: ritardando, D: Ritardando, Langsamer, NL: ritardando, DK:
+ritardando, S: ritardando, N: .
 
 Gradually slackening in speed. Mostly abbreviated to rit. or ritard. 
 
 @item ritenuto
-I: ritenuto, F: , D: Ritenuto, NL: ritenuto, DK: ritenuto, S: ritenuto, N: .
+I: ritenuto, F: ritenuto, D: Ritenuto, NL: ritenuto, DK: ritenuto, S:
+ritenuto, N: .
 
 Immediate reduction of speed.
 
@@ -2035,8 +2057,8 @@ sub@-do@-mi@-nant (S) and V = dominant (D).
 @
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Lyrics.textStyle = "large"
 \property Lyrics.minVerticalAlign = 8
 \addlyrics
@@ -2079,7 +2101,7 @@ semitones. @w{@ar{}@strong{interval}} @w{@ar{}@strong{chromatic scale}}
 @
 
 @mudela[13pt,eps] 
-\property Score.barNonAuto = "1" 
+\property Score.barNonAuto = ##t 
 \notes\relative c'' { g1 gis s a bes s b c }
 @end mudela
 
@@ -2089,7 +2111,7 @@ I: settima, F: septi@`eme, D: Septime, NL: septiem, DK: septim, S: septim, N: .
 @w{@ar{}@strong{interval}}
 
 @item sextuplet, sextolet
-I: settimina, F: sextolet, D: Sextole, NL: sextool, DK: sekstol, S: sextol, N:
+I: sestina, F: sextolet, D: Sextole, NL: sextool, DK: sekstol, S: sextol, N:
 .
 
 @w{@ar{}@strong{note value}}
@@ -2156,15 +2178,15 @@ General term for systems of designating the degrees of the
 (@emph{ti})). @w{@ar{}@strong{scale degree}}.
 
 @item sonata
-I: sonata, F: , D: Sonate, NL: sonate, DK: sonate, S: sonat, N: .
+I: sonata, F: sonate, D: Sonate, NL: sonate, DK: sonate, S: sonat, N: .
 
 In its present-day meaning a sonata denotes an instrumental composition for
 piano or for some other instrument with piano accompaniment, which consists of
 three or four independant pieces, called movements.
 
 @item sonata form
-I: forma sonata, F: , D: Sonatenform, NL: hoofdvorm, sonatevorm, DK:
-sonateform, S: sonatform, N: .
+I: forma sonata, F: [en] forme de sonate, D: Sonatenform, NL: hoofdvorm,
+sonatevorm, DK: sonateform, S: sonatform, N: .
 
 A form used frequently for single movements of the @w{@ar{}@strong{sonata}},
 @w{@ar{}@strong{symphony}}, quartet etc. A movement written in sonata form
@@ -2186,7 +2208,8 @@ I: soprano, F: soprano, D: Sopran, NL: sopraan, DK: sopran, S: sopran, N: .
 The highest female voice.
 
 @item staccato
-I: staccato, F: , D: staccato, NL: staccato, DK: staccato, S: staccato, N:
+I: staccato, F: staccato, piqu@'e, d@'etach@'e, D: staccato, NL: staccato, DK:
+staccato, S: staccato, N:
 
 Playing the note(s) short. Staccato is indicated by a dot above or below the
 notehead.
@@ -2221,9 +2244,9 @@ note. @w{@ar{}@strong{beam}}
 @
 
 @mudela[13pt,eps]
-\property Score.noAutoBeaming = "1"
-\property Score.barNonAuto = "1"
-\property Voice.textEmptyDimension = "1"
+\property Score.noAutoBeaming = ##t
+\property Score.barNonAuto = ##t
+\emptyText
 \property Voice.textStyle = "large"
 \notes\relative c'' { 
   g2_"1/2" g' s16
@@ -2234,7 +2257,8 @@ note. @w{@ar{}@strong{beam}}
 @end mudela
 
 @item strings
-I: archi, F: , D: Streicher, NL: strijkers, DK: strygere, S: str@aa{}kar, N: .
+I: archi, F: cordes, D: Streicher, NL: strijkers, DK: strygere, S:
+str@aa{}kar, N: .
 
 A family of stringed musical instruments played with a bow. Strings commonly
 used in a symphony orchestra are violin, viola, violoncello and double bass.
@@ -2254,13 +2278,13 @@ The fourth @w{@ar{}@strong{scale degree}}. @w{@ar{}@strong{functional
 harmony}}
 
 @item submediant
-I: sopradominante, F: , D: Submediant, NL: submediant, DK: Submediant, S:
+I: sopratonica, F: , D: Submediant, NL: submediant, DK: Submediant, S:
 submediant, N: .
 
 The sixth @w{@ar{}@strong{scale degree}}.
 
 @item subtonic
-I: sensibile, F: sous-tonique, D: Subtonika, NL: subtonica, DK: Subtonika, S:
+I: sottotonica, F: sous-tonique, D: Subtonika, NL: subtonica, DK: Subtonika, S:
 subtonika, N: .
 
 The seventh @w{@ar{}@strong{scale degree}}
@@ -2278,7 +2302,8 @@ supertonika, S: supertonika, N: .
 The second @w{@ar{}@strong{scale degree}}.
 
 @item symphony
-I: sinfonia, F: , D: Sinfonie, NL: symfonie, DK: symfoni, S: symfoni, N: .
+I: sinfonia, F: symphonie, D: Sinfonie, NL: symfonie, DK: symfoni, S: symfoni,
+N: .
 
 A symphony may be defined as a @w{@ar{}@strong{sonata}} for orchestra.
 
@@ -2295,7 +2320,7 @@ the underlaying (normal) pulse and the actual (abnormal) rhythm.
 @
 
 @mudela[13pt,eps]
-\property Voice.textEmptyDimension = "1"
+\emptyText
 \property Voice.textStyle = "large"
 \time 4/4;
 \notes\relative c' {
@@ -2321,16 +2346,17 @@ The collection of staves @w{@ar{}@strong{staff}}, two or more, as used for the
 writing down of keyboard, chamber, choral or orchestral music.
 
 @item temperament
-I: temperamento, F: , D: Stimmung, Temperatur, NL: temperament, DK:
-temperatur, S: temperatur, N: .
+I: temperamento, F: temp@'erament, D: Stimmung, Temperatur, NL: temperament,
+DK: temperatur, S: temperatur, N: .
 
 Systems of tuning in which the intervals deviate from the accoustically pure
 intervals. @w{@ar{}@strong{meantone temperament}} @w{@ar{}@strong{equal
 temperament}}
 
 @item tempo indication
-I: indicazioni di tempo, F: signe de temps, D: Zeitma@ss{}, Tempobezeichnung,
-NL: tempo aanduiding, DK: tempobetegelse, S: tempobeteckning, N: .
+I: indicazione di tempo, F: indication de temps, D: Zeitma@ss{},
+Tempobezeichnung, NL: tempo aanduiding, DK: tempobetegelse, S:
+tempobeteckning, N: .
 
 The rate of speed of a composition or a section thereof, ranging from the
 slowest to the quickest, as is indicated by tempo marks as
@@ -2343,7 +2369,7 @@ I: tenore, F: t@'enor, D: Tenor, NL: tenor, DK: tenor, S: tenor, N: .
 The highest voice of men (apart from @w{@ar{}@strong{counter tenor}})
  
 @item tenth
-I: decima, F: , D: Dezime, NL: deciem, DK: decim, S: decima, N: .
+I: decima, F: dixi@`eme, D: Dezime, NL: deciem, DK: decim, S: decima, N: .
 
 @w{@ar{}@strong{note value}}
 
@@ -2369,8 +2395,8 @@ trettiotv@aa{}ondelspaus, N: .
 @w{@ar{}@strong{note value}}
 
 @item thorough bass; figured bass
-I: basso continuo, F: basse chiffr@'e, D: Generalbass, bezifferter Bass, NL:
-basso continuo, DK:@w{ }generalbas, S: generalbas, N: .
+I: basso continuo, basso numerato, F: basse chiffr@'ee, D: Generalbass,
+bezifferter Bass, NL: basso continuo, DK:@w{ }generalbas, S: generalbas, N: .
 
 A method of indicating an accompaniment part by the bass notes only, together
 with figures designating the chief @w{@ar{}@strong{interval}}s and
@@ -2419,7 +2445,7 @@ uniting them into a single sound equal to the combined durations.
 @
 
 @mudela[13pt,eps]
-\property Score.barNonAuto = "1"
+\property Score.barNonAuto = ##t
 \notes\relative c'' { g2 ~ g4. }
 @end mudela
 
@@ -2471,7 +2497,7 @@ N: .
 @w{@ar{}@strong{G clef}}
 
 @item tremolo
-I: tremolo, F: tr@`emolo, D: Tremolo, NL: tremolo, DK: tremolo, S: tremolo, N:
+I: tremolo, F: tr@'emolo, D: Tremolo, NL: tremolo, DK: tremolo, S: tremolo, N:
 .
 
 On stringed instruments (@w{@ar{}@strong{strings}}) the quick reiteration of
@@ -2483,8 +2509,8 @@ a @w{@ar{}@strong{chord}}, usually in the distance of a third
 @
 
 @mudela[13pt,eps] 
-\property Voice.textEmptyDimension = "1"
-\property Score.barNonAuto = "1" 
+\emptyText
+\property Score.barNonAuto = ##t 
 \property Voice.textStyle = "large"
 \notes\relative c' {
   e2:32_"a" f:32 [ e8:16 f:16 g:16 a:16 ] s4 [:32 e1_"b" g]
@@ -2503,7 +2529,7 @@ triller, DK:@w{ }trille, S:@w{ }drill, N:@w{ }.
 @w{@ar{}@strong{ornament}}
 
 @item triple meter
-I: tempo ternario, F: temps ternaire, D: dreiteiliger Takt, NL: driedelige
+I: tempo ternario, F: mesure ternaire, D: dreiteiliger Takt, NL: driedelige
 maatsoort, DK: tredelt takt, S: tretakt, N: .
 
 @w{@ar{}@strong{meter}}
@@ -2527,8 +2553,8 @@ A two-pronged piece of steel used to indicate absolute pitch. Tuning forks
 give the international pitch for the tone @emph{a} (440 vibrations per second.)
  
 @item turn; gruppetto
-I: grupetto, F: bris@`e, groupe, doubl@`e, grupetto, D: Doppelschlag, NL:
-dubbelslag, DK: dobbeltslag, S: dubbelslag, N: .
+I: gruppetto, F: grupetto, D: Doppelschlag, NL: dubbelslag, DK: dobbeltslag,
+S: dubbelslag, N: .
 
 @item unison
 I: unisono, F: unisson, D: Unison, unisono, NL: unisono, DK: unison, S:
@@ -2539,7 +2565,8 @@ or by the whole orchestra (choir), either at exactly the same pitch or in a
 different octave.
 
 @item upbeat
-I: anacrusi, F: , D: Auftakt, NL: opmaat, I: , DK: optakt, S: upptakt, N:
+I: anacrusi, F: anacrouse, D: Auftakt, NL: opmaat, I: , DK: optakt, S:
+upptakt, N:
 
 Initial note(s) of a melody occurring before the first bar
 line. @w{@ar{}@strong{measure}} @w{@ar{}@strong{meter}}
@@ -2581,7 +2608,8 @@ rust, DK: helnodespause, S: helnotspaus, N: .
 @w{@ar{}@strong{note value}}
 
 @item whole tone
-I: tono intero, F: , D: Ganzton, NL: hele toon, DK: heltone, S: helton, N: .
+I: tono intero, F: ton entier, D: Ganzton, NL: hele toon, DK: heltone, S:
+helton, N: .
 
 The @w{@ar{}@strong{interval}} of a major second. The interval between two
 tones on the piano keyboard with exactly one key between them - including
@@ -2601,7 +2629,7 @@ symphony orchestra are flute, oboe, clarinet, saxophone and bassoon.
 
 @
 
-@item Litterature used
+@item Literature used
 The Harvard Dictionary of Music, London 1944. Many more or less litteral
 quotes from its articles have been included into the item explanation texts.
 
index cfa19c28ff84a602f3c673e2bd8b619c02729890..ebf2c901b4a805b1aae9fe63af3d9f62e47be3a9 100644 (file)
@@ -556,12 +556,6 @@ no clef is printed upon creation.
 @cindex properties!GrandStaff
 
 @table @samp 
-  @item @code{alignmentReference}@indexcode{alignmentReference}
-@propertytype{direction}
-    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.
-
   @item @code{maxVerticalAlign}@indexcode{maxVerticalAlign}  @propertytype{number}
     Set the maximum vertical distance between staffs.
 
index 17ffb51f4d2cb48ba7aa21be78675fa193f6d63c..4eed4cb48e0867cb7b7cd59974983b2eb9ece453 100644 (file)
@@ -50,7 +50,7 @@ Documentation
      You need a working LilyPond binary to create the DVI sources  .
 
    * use ASCII. Do using
-               make -C doc
+               make doc
 
 
 Comments
diff --git a/TODO b/TODO
index 259faaf8aff781944910b772662b66b0c5425f0f..f51f179fd655187cb7cb54641edb282b52737773 100644 (file)
--- a/TODO
+++ b/TODO
@@ -12,11 +12,54 @@ Grep -i for TODO, FIXME and ugh/ugr/urg.
 . * use hash tabs iso. alist_ for elt property?
 . * unhardcode stuff in bezier-bow: all sizes other than 20pt are
     broken
+. * use ports iso. iostream. 
+. * hard constraints for  broken slurs to.
+. * mondrup
+
+- In some cases I don't get the large textsize within note examples I request.
+Consider for example the entry 'c clef', where \property Lyrics.textStyle = "large"
+used to give that result. It doesn't now. The large text sizes DO work in other cases,
+for example in the entry 'chord' (\property Voice.textStyle = "large"). To me it looks
+like the property Voice.textStyle is working while Lyrics.textStyle isn't. Consider
+for example the entry 'functional harmony' which has the same problem as 'chord'
+
+- I don't get full size clef changes upon issuing \property Voice.clefStyle =
+"fullSizeChanges", see for example the entry 'c clef'.
+
+- In the entry 'brace' the second note example using \context StaffGroup gets the
+staff bracket offset to the left page margin !! while the first note example behaves
+normally.
+
+- <p><img> in mudela-book
+. * mats
+
+If textStyle is set (in the \paper section), this setting 
+applies also to dynamics. 
+
+Also, the marginScriptPadding should be set by default to give 
+a nice layout, but that's already been reported on the list.
+
+-  What happened to the StaffGroup brackets? 
+  Try input/test/orchestscore.ly which worked fine in pl 27.
+
+- Why do I get bar numbers on every bar (both for the score
+  and the parts)?
+
+- Bar numbers and marks are not printed on top of the staffs,
+  but at one of the middle parts of the score. This may be 
+  related to the problem with the brackets, since the 
+  corresponding StaffGroup is the only one to get a bracket,
+  even though it is misplaced horisontally.
+
+- The score extends too high on the page, it often overwrites the
+  page number. LaTeX warns about overfull boxes. I'll take a look
+  at the page layout.
+
 . * control paper-size/-file from commandline ?
   lilypond --paper=paper16 foo.ly
   lilypond --paper=paper20 foo.ly
   lilypond --paper=paper-as9 foo.ly
-. * entangle ly/* paper-params papersize stuff
+. * detangle ly/* paper-params papersize stuff
 . * fix tremolos.
 . * change ) c4  to c4-)
 . * automated marks. 
@@ -337,6 +380,8 @@ touching it.
 . * glibc 2.0:
          f = fopen ("/dev/null", "r")
          assert (feof (f))
+. * Texinfo, add [ A | B | C ] style tocs to .html output, and don't rely
+    on @node names for html tocs.
 
 .* PROJECTS
 . * Scripts:
diff --git a/VERSION b/VERSION
index 8d61b7e43aba1f52f1e42de96f5a00a7b480c1d9..0a0af3f544b349603f5afb960cbe2c8f3cded09f 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=29
+PATCH_LEVEL=30
 MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
index 3db837d204b4e2b4c85a7911787febcd4250bd9f..92908e0e0a65cf53911b0af367a8929ec61fd007 100644 (file)
@@ -2,6 +2,8 @@ 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 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
 
@@ -566,7 +568,12 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [
     # For now let people define these in their environments
     #
     : ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
-    : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+
+    if test  ${INIMETAPOST} = "inimp" ; then
+       : ${INIMETAPOST_FLAGS=''}
+    else
+       : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+    fi
 
     rm -f mfput.*
     AC_MSG_RESULT($MFMODE)
index 0a7d64833ecad5413267aef402c447eba16ae070..b2d3093646f344cf238e7d5555e0fc234ffb8e69 100755 (executable)
--- a/configure
+++ b/configure
@@ -2554,7 +2554,12 @@ echo "configure:2545: checking for working metafont mode" >&5
     # For now let people define these in their environments
     #
     : ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
-    : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+
+    if test  ${INIMETAPOST} = "inimp" ; then
+       : ${INIMETAPOST_FLAGS=''}
+    else
+       : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+    fi
 
     rm -f mfput.*
     echo "$ac_t""$MFMODE" 1>&6
@@ -2582,7 +2587,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2586: checking for $ac_word" >&5
+echo "configure:2591: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2613,7 +2618,7 @@ done
 test -n "$KPSEWHICH" || KPSEWHICH="no"
 
     echo $ac_n "checking for TeX TFM directory""... $ac_c" 1>&6
-echo "configure:2617: checking for TeX TFM directory" >&5
+echo "configure:2622: checking for TeX TFM directory" >&5
     if test "x$TFMDIR" = xauto ; then
        if test "x$TEX_TFMDIR" = "x" ; then
            if test "x$KPSEWHICH" != "xno" ; then
@@ -2636,7 +2641,7 @@ echo "configure:2617: checking for TeX TFM directory" >&5
 ## The GUILE_FLAGS macro.
   ## First, let's just see if we can find Guile at all.
   echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2640: checking for Guile" >&5
+echo "configure:2645: checking for Guile" >&5
   guile-config link > /dev/null || {
     echo "configure: cannot find guile-config; is Guile installed?" 1>&2
     exit 1
@@ -2656,7 +2661,7 @@ echo "configure:2640: checking for Guile" >&5
     # Extract the first word of "guile", so it can be a program name with args.
 set dummy guile; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2660: checking for $ac_word" >&5
+echo "configure:2665: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2694,7 +2699,7 @@ fi
 
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:2698: checking for 8-bit clean memcmp" >&5
+echo "configure:2703: checking for 8-bit clean memcmp" >&5
 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2702,7 +2707,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 2706 "configure"
+#line 2711 "configure"
 #include "confdefs.h"
 #ifdef __cplusplus
 extern "C" void exit(int);
@@ -2715,7 +2720,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:2719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -2733,12 +2738,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2737: checking for vprintf" >&5
+echo "configure:2742: checking for vprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2742 "configure"
+#line 2747 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -2764,7 +2769,7 @@ vprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
@@ -2788,12 +2793,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2792: checking for _doprnt" >&5
+echo "configure:2797: checking for _doprnt" >&5
 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2797 "configure"
+#line 2802 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -2819,7 +2824,7 @@ _doprnt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2823: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
@@ -2846,12 +2851,12 @@ fi
 for ac_func in memmem snprintf vsnprintf gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2850: checking for $ac_func" >&5
+echo "configure:2855: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2855 "configure"
+#line 2860 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2877,7 +2882,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2881: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2916,7 +2921,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2920: checking for $ac_word" >&5
+echo "configure:2925: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2949,7 +2954,7 @@ test -n "$MAKEINFO" || MAKEINFO="error"
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2953: checking for $ac_word" >&5
+echo "configure:2958: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
index 6b82ae50d4115b0c0ec239e13e5aa31c9ae3d6c8..8d65150c3792d72c580d6cf7245170872c3e4edc 100644 (file)
@@ -2,29 +2,20 @@
 
 global = \notes {
   s1 | \mark "A";
-  s1*2 | \mark "'12";
+  s1 | \mark ; 
+  s1 | \mark "12";
+  s1
 }
 
-one = \notes\relative c{
-  c'' c c c
-  c c c c
-  c c c c
+one = \notes \relative c {
+  c''1 c c c
 }
 
-two = \notes\relative c{
-  b' b b b
-  b b b b
-  b b b b
-}
 
 \score{
-       < \global \one \two >
+\context Staff < \global \one >
        \paper {
                \translator { \OrchestralPartStaffContext 
-                       markScriptPadding = "4.0";
-                       markHangOn  = "Bar";
-                       markHangDepth = "1";
-%                      markDirection = \down;
                }
        }
 }
index db954498bf1314d76ef8dd049790f6907d25bdc1..2f5c617ac64fea029aea2ec9438de2ab31824711 100644 (file)
@@ -30,6 +30,12 @@ Align_element::do_pre_processing ()
 void
 Align_element::do_side_processing ()
 {
+  SCM d = get_elt_property ("stacking-dir");
+  Direction stacking_dir = gh_number_p(d) ? to_dir (d) : CENTER;
+  if (!stacking_dir)
+    stacking_dir = DOWN;
+
+  
   Array<Interval> dims;
 
   Link_array<Score_element> elems;
@@ -66,15 +72,11 @@ Align_element::do_side_processing ()
     }
 
   Real where_f=0;
-  Real center_f = 0.0;
-  SCM scenter = get_elt_property ("center-element");
-  Score_element *center_elt = unsmob_element (scenter);
-  
   for (int i=0 ;  i < elems.size(); i++) 
     {
-      Real dy = - stacking_dir_ * dims[i][-stacking_dir_];
+      Real dy = - stacking_dir * dims[i][-stacking_dir];
       if (i)
-       dy += stacking_dir_ * dims[i-1][stacking_dir_];
+       dy += stacking_dir * dims[i-1][stacking_dir];
 
       if (i)
        {
@@ -82,31 +84,15 @@ Align_element::do_side_processing ()
            <? threshold_interval_[BIGGER];
        }
 
-      if (!i && align_dir_ == LEFT)
-       center_f = where_f;
-      else if (align_dir_ == CENTER && elems[i] == center_elt)
-       center_f = where_f;
 
-      where_f += stacking_dir_ * dy;
+      where_f += stacking_dir * dy;
       elems[i]->translate_axis (where_f, axis ());
     }
-
-  if (dims.size ())
-    where_f += dims.top ()[stacking_dir_];
-  if (align_dir_ == RIGHT)
-    center_f = where_f;
-  else if (align_dir_ == CENTER && !center_elt)
-    center_f = where_f / 2;
-    
-  if (center_f)
-    translate_axis ( - center_f, axis ());
 }
 
 Align_element::Align_element()
 {
   threshold_interval_ = Interval (0, Interval::infinity ());
-  stacking_dir_ = DOWN;
-  align_dir_ = CENTER;
 }
 
 int
index f1ce54bfc80b112f30cc632da35197880223eda0..9fb7d41b99e78fdd7d6e4048c3397e080d4e59cc 100644 (file)
@@ -54,10 +54,12 @@ Align_note_column_engraver::do_creation_processing ()
 void
 Align_note_column_engraver::do_removal_processing ()
 {
-  SCM al = get_property ("graceAlignPosition", 0);
+  SCM al = get_property ("graceAlignPosition");
   if (isdir_b (al))
     {
-      directional_element (align_item_p_).set (to_dir (al));
+      Direction d = to_dir (al);
+      directional_element (align_item_p_).set (d);
+      align_item_p_->set_elt_property ("align-dir", to_dir (-d));
     }
   
   typeset_element (align_item_p_);
@@ -89,7 +91,7 @@ Align_note_column_engraver::process_acknowledged ()
         B. it has no pscore_l_ field.
 
       */
-      SCM grsp = get_property ("graceAccidentalSpace", 0);
+      SCM grsp = get_property ("graceAccidentalSpace");
       if (gh_number_p(grsp))
        {
          /*
index f44d4d2c4e475cb876dbc6ea67fb5404900a9b8e..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 (file)
@@ -1,55 +1 @@
-/*
-  atom.cc -- implement Atom
 
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-#include <math.h>
-
-#include "atom.hh"
-#include "lookup.hh"
-#include "global-ctor.hh"
-#include "font-metric.hh"
-
-
-#if 0
-SCM translate_sym;
-
-static void init()
-{
-  translate_sym = sly_symbol2scm ("translate-atom");
-}
-
-ADD_SCM_INIT_FUNC(atom, init);
-#endif
-
-SCM
-translate_atom (Offset o, SCM func)
-{
-  return gh_list (ly_symbol2scm ("translate-atom"),
-                 ly_quote_scm (to_scm (o)),
-                 func,
-                 SCM_UNDEFINED);
-}
-
-SCM
-translate_atom_axis (Real r, Axis a, SCM func)
-{
-  //  off_[a] += r;
-  Offset o ;
-  o[a] = r;
-  return gh_list (ly_symbol2scm ("translate-atom"),
-                 ly_quote_scm (to_scm (o)),
-                 func,
-                 SCM_UNDEFINED);
-}
-
-
-SCM
-fontify_atom(Font_metric * met, SCM f)
-{
-  return  gh_list (ly_symbol2scm ("fontify"),
-                  ly_quote_scm (met->description ()), f, SCM_UNDEFINED);
-}
index 74761145cd158cfb594690d364364be549fdae25..95052f5e1dc5577f91c10d613c087c12f0191f4a 100644 (file)
@@ -105,7 +105,7 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom)
   /*
     first guess: end beam at end of beat
   */
-  SCM one (get_property ("beatLength", 0));
+  SCM one (get_property ("beatLength"));
 
   Moment end_mom;
   if (SMOB_IS_TYPE_B(Moment, one))
@@ -114,11 +114,11 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom)
   /*
     second guess: property generic time exception
   */
-  SCM begin = get_property (time_str + "beamAutoBegin", 0);
+  SCM begin = get_property (time_str + "beamAutoBegin");
   if (SMOB_IS_TYPE_B(Moment, begin))
     begin_mom = * SMOB_TO_TYPE(Moment, begin);
 
-  SCM end = get_property (time_str + "beamAutoEnd", 0);
+  SCM end = get_property (time_str + "beamAutoEnd");
   if (SMOB_IS_TYPE_B (Moment, end))
     end_mom = * SMOB_TO_TYPE(Moment,end);
 
@@ -127,11 +127,11 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom)
   */
   if (type_str.length_i ())
     {
-      SCM end_mult = get_property (time_str + "beamAutoEnd" + type_str, 0);
+      SCM end_mult = get_property ( time_str + "beamAutoEnd" + type_str);
       if (SMOB_IS_TYPE_B (Moment, end_mult))
        end_mom = * SMOB_TO_TYPE (Moment,end_mult);
 
-      SCM begin_mult = get_property (time_str + "beamAutoBegin" + type_str, 0);
+      SCM begin_mult = get_property (time_str + "beamAutoBegin" + type_str);
       if (SMOB_IS_TYPE_B (Moment, begin_mult))
        begin_mom = * SMOB_TO_TYPE (Moment,begin_mult);
     }
@@ -139,13 +139,13 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom)
   /*
     fourth guess [user override]: property plain generic
   */
-  begin = get_property ("beamAutoBegin", 0);
+  begin = get_property ("beamAutoBegin");
   if (SMOB_IS_TYPE_B(Moment, begin))
     begin_mom = * SMOB_TO_TYPE(Moment, begin);
 
 
   
-  end = get_property ("beamAutoEnd", 0);
+  end = get_property ("beamAutoEnd");
   if (SMOB_IS_TYPE_B (Moment, end))
     end_mom = * SMOB_TO_TYPE (Moment,end);
 
@@ -154,11 +154,11 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom)
   */
   if (type_str.length_i ())
     {
-      SCM end_mult = get_property (String ("beamAutoEnd") + type_str, 0);
+      SCM end_mult = get_property (String ("beamAutoEnd") + type_str);
       if (SMOB_IS_TYPE_B (Moment, end_mult))
        end_mom = * SMOB_TO_TYPE (Moment,end_mult);
 
-      SCM begin_mult = get_property (String ("beamAutoBegin") + type_str, 0);
+      SCM begin_mult = get_property (String ("beamAutoBegin") + type_str);
       if (SMOB_IS_TYPE_B (Moment, begin_mult))
        begin_mom = * SMOB_TO_TYPE (Moment,begin_mult);
     }
@@ -175,7 +175,7 @@ Auto_beam_engraver::consider_end_and_begin (Moment test_mom)
   /*
     Allow already started autobeam to end
    */
-  SCM on = get_property ("noAutoBeaming", 0);
+  SCM on = get_property ("noAutoBeaming");
   if (to_boolean (on))
     return;
 
@@ -289,7 +289,7 @@ bool
 Auto_beam_engraver::same_grace_state_b (Score_element* e)
 {
   bool gr = e->get_elt_property ("grace") == SCM_BOOL_T;
-  SCM wg =get_property ("weAreGraceContext",0);
+  SCM wg =get_property ("weAreGraceContext");
   return (to_boolean (wg)) == gr;
 }
 
index 45636011c048182d9a6a30caeb9e3c49f678c9be..a9e1da79575272fc76aca5471b5bd8738c5f5864 100644 (file)
@@ -35,7 +35,7 @@ Bar_engraver::create_bar ()
       bar_p_->set_elt_property ("break-aligned", SCM_BOOL_T);
 
       // urg: "" != empty...
-      SCM default_type = get_property ("defaultBarType", 0);
+      SCM default_type = get_property ("defaultBarType");
       if (gh_string_p (default_type))
        {
          bar_p_->set_elt_property ("glyph", default_type); // gu.h
@@ -45,7 +45,7 @@ Bar_engraver::create_bar ()
       /*
        urg.  Why did I implement this? And did I implement this so
        clumsily?  */
-      SCM prop = get_property ("barAtLineStart", 0);
+      SCM prop = get_property ("barAtLineStart");
       if (to_boolean (prop))
        {
          bar_p_->set_elt_property ("at-line-start", SCM_BOOL_T);
@@ -65,7 +65,7 @@ Bar_engraver::request_bar (String requested_type)
 {
   if (!now_mom ())
     {
-      SCM prop = get_property ("barAtLineStart", 0);
+      SCM prop = get_property ("barAtLineStart");
       if (!to_boolean (prop))
        return;
     }
index b5f20c5235acd818c17ca365cfa13fe2608cdb27..1715fde5ded9c9eb23640871695f339173dc95d2 100644 (file)
@@ -28,7 +28,7 @@ Bar_number_engraver::do_process_requests ()
   Timing_translator *time = dynamic_cast<Timing_translator*>(tr);
 
   // todo include (&&!time->cadenza_b_ )
-  SCM bn = get_property("currentBarNumber",0);
+  SCM bn = get_property("currentBarNumber");
 
   if (gh_number_p (bn) &&
       !time->measure_position () && now_mom () > Moment (0))
index 689ecea2bcff4166f9b1cadc40d61915ce8da4e3..c41d9d12050f80cc2531cb6cdc03b7e72b4de681 100644 (file)
@@ -30,7 +30,7 @@ void
 Bar_script_engraver::do_creation_processing ()
 {
   String t = type_  + "VisibilityFunction";
-  SCM proc = get_property (t, 0);
+  SCM proc = get_property (t);
 
   if (gh_procedure_p (proc))
       visibility_lambda_ = proc;
@@ -128,14 +128,14 @@ Bar_script_engraver::create_items (Request *rq)
   Side_position_interface staffside(text_p_);
   staffside.set_axis (axis_);
 
-  SCM prop = get_property (type_ + "Direction", 0);
+  SCM prop = get_property (type_ + "Direction");
   if (!isdir_b (prop))
     {
       prop = gh_int2scm (UP);
     }
   text_p_->set_elt_property ("direction", prop);
 
-  SCM padding = get_property (type_ + "ScriptPadding", 0);
+  SCM padding = get_property (type_ + "ScriptPadding");
   if (gh_number_p(padding))
     {
       text_p_->set_elt_property ("padding", padding);
index 0c7177017f1cf6211c4f2c1b8fd9a6ed616b2d91..d233d514ca08008f7f69d7b5d44986abb9c8be8e 100644 (file)
@@ -44,7 +44,7 @@ Base_span_bar_engraver::acknowledge_element (Score_element_info i)
 
        /*
 
-         use a property?  get_property ("singleStaffBracket", 0) ?
+         use a property?  get_property ("singleStaffBracket"); ?
 
          --hwn
         */
index 63037e1a7fe5626a101dceb6669364d93fc7e512..15606f34b841b639914b234c4d88040d959f5b20 100644 (file)
@@ -158,7 +158,7 @@ Beam_engraver::acknowledge_element (Score_element_info info)
 
       bool stem_grace = stem_l->get_elt_property ("grace") == SCM_BOOL_T;
 
-      SCM wg =get_property ("weAreGraceContext",0);
+      SCM wg =get_property ("weAreGraceContext");
       bool wgb= to_boolean (wg);
 
       if (wgb!= stem_grace)
index d96e15a637bcd0921b38793e176e652250dada3a..e104c10ec89618ba0d4fedb62917b7cedf3c1344 100644 (file)
@@ -599,7 +599,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
 
 
   Real interbeam_f = paper_l ()->interbeam_f (multiplicity);
-  Real thick = gh_scm2double (get_elt_property ("beam-thickness"));;
+  Real thick = gh_scm2double (get_elt_property ("beam-thickness"));
 
   Real bdy = interbeam_f;
   Real stemdx = staffline_f;
index 44d94270a6028544137528c2e1774f5fe6ca33e6..508f7d3c38b56e31f0e165584cc0f7dcaedcd0b4 100644 (file)
@@ -40,7 +40,7 @@ Break_align_engraver::add_column (SCM smob)
 void
 Break_align_engraver::do_pre_move_processing ()
 {
-  SCM order = get_property ("breakAlignOrder", 0);
+  SCM order = get_property ("breakAlignOrder");
   for (; gh_pair_p (order); order = gh_cdr (order))
     {
       SCM p = scm_assoc ( gh_car (order), column_alist_);
index 376a71dd25498005e01b69a1d8b8bd5af06759d8..84fa63071d832348032105f1099edf736c4194f4 100644 (file)
@@ -7,6 +7,7 @@
 */
 #include <math.h>
 
+#include "side-position-interface.hh"
 #include "warn.hh"
 #include "dimension-cache.hh"
 #include "lily-guile.hh"
 void
 Break_align_item::do_pre_processing()
 {
-  if (break_status_dir() == LEFT)
-    align_dir_ = LEFT;
-  else
-    align_dir_ = RIGHT;
-  
-  flip (&align_dir_);
-
+  Direction ad = (break_status_dir() == LEFT) ? RIGHT : LEFT;
   Real interline= paper_l ()->get_var ("interline");   
-  
+
+  set_elt_property ("self-alignment-X", gh_int2scm (ad));
+
+
   Link_array<Score_element> elems;
   Link_array<Score_element> all_elems (elem_l_arr ());
   
@@ -154,6 +152,8 @@ Break_align_item::do_pre_processing()
 
 Break_align_item::Break_align_item ()
 {
-  stacking_dir_ = RIGHT;
+  set_elt_property ("stacking-dir" , gh_int2scm (RIGHT));
   set_axis (X_AXIS);
+
+  dim_cache_[X_AXIS]->off_callbacks_.push (Side_position_interface::aligned_on_self);
 }
index 22377b7d63924d2a55855a769fa2e799ad10d335..cf2891b02c3c24c25347c6c9bb9505b9ef701380 100644 (file)
@@ -69,7 +69,7 @@ Chord_name_engraver::do_process_requests ()
     return;
 
   bool find_inversion_b = false;
-  SCM chord_inversion = get_property ("chordInversion", 0);
+  SCM chord_inversion = get_property ("chordInversion");
   if (gh_boolean_p (chord_inversion))
     find_inversion_b = gh_scm2bool (chord_inversion);
 
index e0c167b87f2fbd1a20c69d616f5622717294b32d..162cc06978b3e6bbc72917d050ea9d6d89e4c086 100644 (file)
@@ -73,8 +73,8 @@ Clef_engraver::set_type (String s)
   else
     octave_dir_ = CENTER;
 
-  SCM c = get_property ("supportedClefTypes",0);
-  SCM p = get_property ("clefPitches", 0);
+  SCM c = get_property ("supportedClefTypes");
+  SCM p = get_property ("clefPitches");
   
   if (gh_list_p (c))
     {
@@ -132,7 +132,7 @@ Clef_engraver::acknowledge_element (Score_element_info info)
 void
 Clef_engraver::do_creation_processing()
 {
-  SCM def = get_property ("defaultClef", 0);
+  SCM def = get_property ("defaultClef");
   if (gh_string_p (def))
     {
       set_type (ly_scm2string (def));
index e73c253d8914045aa3bd400ee92128e2444c412b..58f4d434d03c28bfffe80a78f364c063a8c1a1a4 100644 (file)
@@ -123,17 +123,12 @@ Break_req::Break_req ()
 }
 
 
-void
-Mark_req::do_print () const
-{
-  DEBUG_OUT << str_;
-}
 
 bool
 Mark_req::do_equal_b (Request const * r) const
 {
   Mark_req const * other = dynamic_cast<Mark_req const*> (r);
-  return other && other->str_ == str_;
+  return other && scm_equal_p (other->mark_label_,  mark_label_);
 }
 
 void
index 3f0f16b637dd1423e6b70eb866188c3f200da3c0..bdf26864df3bb5b7f5358906a2580a8e58e5703e 100644 (file)
@@ -13,7 +13,7 @@
 #include "paper-def.hh"
 #include "debug.hh"
 #include "paper-column.hh"
-#include "atom.hh"
+
 
 Crescendo::Crescendo ()
 {
index 7f519db38b220b235587685b039b640771a16ee7..977053e621b825b3f3a05393e9feef630518ee4e 100644 (file)
@@ -139,16 +139,16 @@ Dynamic_engraver::do_process_requests()
          /*
            UGH UGH 
           */
-         SCM prop = get_property ("dynamicDirection", 0);
+         SCM prop = get_property ("dynamicDirection");
          if (!isdir_b (prop))
            {
-             prop = get_property ("verticalDirection", 0);
+             prop = get_property ("verticalDirection");
            }
 
          if (isdir_b (prop) && to_dir (prop))
            text_p_->set_elt_property ("direction", prop);
 
-         prop = get_property ("dynamicPadding", 0);
+         prop = get_property ("dynamicPadding");
          if (gh_number_p(prop))
            {
              text_p_->set_elt_property ("padding", prop);
index 0256679458f11b067002c7d8435ccccf66134253..3d3df3ca0f17835da6b05043f6e2c1e4f48d2f12 100644 (file)
@@ -14,7 +14,7 @@
 
 Grace_align_item::Grace_align_item ()
 {
-  stacking_dir_ = RIGHT;
+  set_elt_property ("stacking-dir", gh_int2scm (RIGHT));
   set_axis (X_AXIS);
 }
   
@@ -29,7 +29,7 @@ Grace_align_item::do_pre_processing ()
 
   
   Axis_align_item::do_pre_processing ();
-  translate_axis (-0.5* nhw, X_AXIS); // ugh.
+  //  translate_axis (-0.5* nhw, X_AXIS); // ugh.
 }
 
 
index e1e49f466af774207424c376240e5aa3bbf76c29..5024b8c7b8470cbee58a3d70f16e84d28e989f8a 100644 (file)
@@ -89,10 +89,6 @@ Grace_position_engraver::do_pre_move_processing ()
        return;
 
       warning (_("Unattached grace notes.  Attaching to last musical column."));
-      /*      if (ae)
-       ae->remove_element (align_l_);
-       else if (elt)*/
-
       
       align_l_->set_parent (0, X_AXIS);
       last_musical_col_l_->add_element (align_l_);
index 58bdd73d6f9bb2f39a02d5843a52fa62433faa05..d932f3900f6af537e80a3a2823e5a062070c0453 100644 (file)
@@ -61,7 +61,7 @@ Grace_position_performer::process_acknowledged ()
            shortest_mom = shortest_mom <? notes_[i]->length_mom_;
          
          Rational grace_fraction_rat (1, 2);
-         SCM prop = get_property ("graceFraction", 0);
+         SCM prop = get_property ("graceFraction");
          if (SMOB_IS_TYPE_B(Moment, prop))
            grace_fraction_rat = *SMOB_TO_TYPE (Moment,prop);
 
index 1ba8ea1289f8ba262338b031acd0a9b06b35b3c0..c6e230df5d058e5bc75fa46bdf3c18f44e527ed5 100644 (file)
   TODO: implement padding.
 
   document usage of this.
- */
-class Align_element : public virtual Axis_group_element {
-public:
-  Interval threshold_interval_ ;
 
-  /**
-     Should high priorities be first or last?
-   */
-    
-  Direction stacking_dir_;
 
-  /**
-     Which side to align?  -1: left side, 0: centered (around
+
+  *******
+  
+  element properties
+
+  stacking-dir
+  
+  Which side to align?  -1: left side, 0: centered (around
      center_l_ if not nil, or around center of width), 1: right side
 
-     URG. Unintuitive if stacking_dir_ == -1 
-  */
+  *****
 
-  Direction align_dir_;
+  align-dir: deprecate! Use Side_pos_interface::self_align
   
+
+*/
+class Align_element : public virtual Axis_group_element {
+public:
+  Interval threshold_interval_ ;
+
   Axis axis () const;
   
   Align_element ();
index c2fb413312689fd2d6b4d656c951ae20325e9c94..576dc45e1a626f286538836e36fcd3887cd9a45f 100644 (file)
@@ -10,9 +10,8 @@
 #define ATOM_HH
 
 #include "lily-proto.hh"
-#include "box.hh"
+
 #include "lily-guile.hh"
 
-SCM fontify_atom (Font_metric*, SCM atom);
 
 #endif
index c1efa26c43639d8576cd615740c549e05723000e..c21b1d0b3c07b912be8cc2d0224e2114ad1fd9d5 100644 (file)
@@ -15,6 +15,7 @@
 #include "duration.hh"
 #include "musical-pitch.hh"
 #include "key-def.hh"
+#include "protected-scm.hh"
 
 class Break_req : public Request {
 public:
@@ -26,10 +27,9 @@ protected:
 
 class Mark_req : public Request {
 public:
-  String str_;
+  Protected_scm mark_label_;
 protected:
   virtual bool do_equal_b (Request const*) const;
-  virtual void do_print () const;  
   VIRTUAL_COPY_CONS(Music);
 };
 
index b79ffbf89522d6620113c6e2d0673d5fede0bedb..8a8f4c2d020201bba21821be20c443b2c5b7a479 100644 (file)
@@ -19,6 +19,7 @@ SCM ly_str02scm (char const*c);
 SCM ly_eval_str (String s);
 SCM ly_symbol2scm (char const *);
 String ly_symbol2string (SCM);
+SCM ly_type (SCM);
 
 SCM ly_eval (SCM a);
 SCM ly_parse_scm (char const* s, int* n);
index 0d9dd4eebf6e2fa55b750d3d6e52c6ae09bc3339..4e4da38cede61750c25712b38dec6926454abab7 100644 (file)
 #ifndef MARK_ENGRAVER_HH
 #define MARK_ENGRAVER_HH
 
-#include "bar-script-engraver.hh"
+#error
 
-/**Print rehearsal marks.
-  */
-class Mark_engraver : public Bar_script_engraver 
-{
-public:
-  Mark_engraver ();
-  VIRTUAL_COPY_CONS(Translator);
-protected:
-  virtual bool do_try_music (Music *req_l);
-  virtual void do_process_requests ();
-  virtual void do_post_move_processing ();
-private:
-  Mark_req * mark_req_l_;
-};
 
-#endif // MARK_ENGRAVER_HH
+dendif // MARK_ENGRAVER_HH
index 7342d0d406fcc72e190f80407bf88c4682a57de3..6992a2fa4241bf5b270153630f283e376061cc33 100644 (file)
@@ -75,4 +75,7 @@ public:
   bool empty_b() const;
   void print ()const;
 };
+
+SCM fontify_atom (Font_metric*, SCM atom);
+
 #endif
index 0f3fe7dd1a616f192e7508503e02420b59764f1a..11df320ce8a7bc08cbf9eb105c8689f2d187bf55 100644 (file)
@@ -39,7 +39,7 @@ protected:
   Cons_list<Translator> trans_p_list_;
 
 public:
-  SCM get_property (SCM name_sym, Translator_group  **where_found_l) const;
+  SCM get_property (SCM name_sym) const;
   void set_property (String var_name, SCM value);
   
 
index 54696d104082ba638af328620e82c01c58a55e69..7740fc7a9ca050220d150c50ebc5821eb2591997 100644 (file)
@@ -62,8 +62,8 @@ public:
     */
   Music_output_def *output_def_l () const;
 
-  SCM get_property (String, Translator_group **) const;
-  SCM get_property (SCM symbol, Translator_group **) const;
+  SCM get_property (String) const;
+  SCM get_property (SCM symbol) const;
   
   virtual Moment now_mom () const;  
 
index 40b9bd4bfd04408f47aedd999da52cf9a08de05d..161f323b0f2e573606b80825e379fb7a31745601 100644 (file)
@@ -87,7 +87,7 @@ Key_engraver::acknowledge_element (Score_element_info info)
 {
   if (dynamic_cast <Clef_change_req *> (info.req_l_)) 
     {
-      SCM c =  get_property ("createKeyOnClefChange", 0);
+      SCM c =  get_property ("createKeyOnClefChange");
       if (to_boolean (c))
        create_key ();
     }
@@ -133,7 +133,7 @@ Key_engraver::read_req (Key_change_req const * r)
 {
   old_accidental_idx_arr_ = accidental_idx_arr_;
   key_.clear ();
-  SCM prop = get_property ("keyOctaviation", 0);
+  SCM prop = get_property ("keyOctaviation");
 
   key_.multi_octave_b_ = to_boolean (prop);
   
index ccca3060e97edf6a8ff7e262ff7c1cabd9aaaf38..09eca147be7af061886b97d7e5fdeafd8ef6d8bd 100644 (file)
@@ -339,3 +339,31 @@ scm_to (SCM s, Offset*)
   return Offset (gh_scm2double (gh_car (s)),
                 gh_scm2double (gh_cdr (s)));
 }
+
+SCM
+ly_type (SCM exp)
+{
+  char const  * cp = "unknown";
+  if (gh_number_p (exp))
+    {
+      cp = "number";
+    }
+  else if (gh_string_p (exp))
+    {
+      cp = "string";
+    }
+  else if (gh_procedure_p (exp))
+    {
+      cp = "procedure";
+    }
+  else if (gh_boolean_p (exp))
+    {
+      cp = "boolean";
+    }
+  else if (gh_pair_p (exp))
+    {
+      cp = "list";
+    }
+
+  return ly_str02scm (cp);
+}
index 6edf683cf6f43929425abbe882722ace11c83e9c..228ec8d1574d044237b5f8e8a52387151451e728 100644 (file)
@@ -101,7 +101,7 @@ Local_key_engraver::process_acknowledged ()
 {
   if (!key_item_p_ && mel_l_arr_.size()) 
     {
-      SCM f = get_property ("forgetAccidentals",0);
+      SCM f = get_property ("forgetAccidentals");
       bool forget = to_boolean (f);
       for (int i=0; i  < mel_l_arr_.size(); i++) 
        {
@@ -188,7 +188,7 @@ Local_key_engraver::do_pre_move_processing()
 void
 Local_key_engraver::acknowledge_element (Score_element_info info)
 {
-  SCM wg= get_property ("weAreGraceContext", 0);
+  SCM wg= get_property ("weAreGraceContext");
   
   bool selfgr = gh_boolean_p (wg) &&gh_scm2bool (wg);
   bool he_gr = to_boolean (info.elem_l_->get_elt_property ("grace"));
@@ -222,7 +222,7 @@ Local_key_engraver::do_process_requests()
 {
   if (time_trans_l_ && !time_trans_l_->measure_position ())
     {
-      if (!to_boolean (get_property ("noResetKey",0)) && key_grav_l_)
+      if (!to_boolean (get_property ("noResetKey")) && key_grav_l_)
        local_key_= key_grav_l_->key_;
     }
   else if (key_grav_l_ && key_grav_l_->key_changed_b ())
index f1d1189b2495ec7653b19ae93c338fa37cee65b0..88bd9a753b68e612b91a7719ce21bdebd693e201 100644 (file)
@@ -26,7 +26,7 @@
 #include "afm.hh"
 #include "scope.hh"
 #include "molecule.hh"
-#include "atom.hh"
+
 #include "lily-guile.hh"
 
 
index 404644f2cea633c6ede89df0f58ab6326aaf3903..3c3777d5e85aa36944ada32057eb8a3f4ddde1ed 100644 (file)
@@ -5,11 +5,27 @@
 
  (c) 1998--2000 Jan Nieuwenhuizen <janneke@gnu.org>
 */
+
 #include "command-request.hh"
-#include "mark-engraver.hh"
+#include "bar-script-engraver.hh"
 #include "engraver-group-engraver.hh"
 #include "text-item.hh"
 
+/**Print rehearsal marks.
+  */
+class Mark_engraver : public Bar_script_engraver 
+{
+public:
+  Mark_engraver ();
+  VIRTUAL_COPY_CONS(Translator);
+protected:
+  virtual bool do_try_music (Music *req_l);
+  virtual void do_process_requests ();
+  virtual void do_post_move_processing ();
+private:
+  Mark_req * mark_req_l_;
+};
+
 
 ADD_THIS_TRANSLATOR (Mark_engraver);
 
@@ -32,7 +48,6 @@ Mark_engraver::do_try_music (Music* r_l)
 {
   if (Mark_req *mr = dynamic_cast <Mark_req *> (r_l))
     {
-      
       if (mark_req_l_ && mr->equal_b (mark_req_l_))
        return true;
       if (mark_req_l_)
@@ -50,7 +65,39 @@ Mark_engraver::do_process_requests ()
     {
       create_items (mark_req_l_);
 
-      String t = mark_req_l_->str_;
+      String t;
+
+      SCM m = (mark_req_l_->mark_label_ == SCM_UNDEFINED)
+       ? get_property ("rehearsalMark")
+       : SCM(mark_req_l_->mark_label_);
+      
+      if (gh_number_p (m))
+       {
+         int mark_count = gh_scm2int (m);
+         t = to_str (mark_count);
+         mark_count ++;
+         m = gh_int2scm (mark_count);
+       }
+      else if (gh_string_p (m))
+       {
+         t = ly_scm2string (m);
+         String next;
+         if (t.length_i ())
+           {
+             char c = t[0];
+             c++;
+             next = to_str (c);
+           }
+         m = ly_str02scm (next.ch_C());
+       }
+      else
+       {
+         m = gh_int2scm (1);
+       }
+         
+      daddy_trans_l_->set_property ("rehearsalMark", m);
+
+      
       text_p_->set_elt_property ("text",
                                 ly_str02scm ( t.ch_C()));
       SCM st = ly_str02scm ((t.index_any_i ("0123456789")  >= 0 )
index 3a89ad968fbc62b65cd4b0ae4789155e3a404229..a9e1dce2b3b98b48a41ad9110b97af53e374f45d 100644 (file)
@@ -27,9 +27,9 @@ Melisma_engraver::do_try_music (Music *m )
 {
   if (dynamic_cast<Melisma_playing_req*>(m))
     {
-      SCM plain (get_property ("melismaBusy", 0));
-      SCM slur (get_property ("slurMelismaBusy", 0));
-      SCM tie (get_property ("tieMelismaBusy", 0));
+      SCM plain (get_property ("melismaBusy"));
+      SCM slur (get_property ("slurMelismaBusy"));
+      SCM tie (get_property ("tieMelismaBusy"));
       return (to_boolean (plain))
        || (to_boolean (slur))
        || (to_boolean (tie));
index cd4d0482063cfdfabfd6933b8b6bbe431e4688cd..5620a92d180e07aeccd5580b4a54439c76d56ccd 100644 (file)
 
 #include <math.h>
 
+#include "font-metric.hh"
 #include "dimensions.hh"
 #include "interval.hh"
 #include "string.hh"
 #include "molecule.hh"
-#include "atom.hh"
+
 #include "debug.hh"
 #include "killing-cons.tcc"
 
@@ -140,3 +141,11 @@ Molecule::empty_b () const
 {
   return expr_ == SCM_EOL;
 }
+
+
+SCM
+fontify_atom(Font_metric * met, SCM f)
+{
+  return  gh_list (ly_symbol2scm ("fontify"),
+                  ly_quote_scm (met->description ()), f, SCM_UNDEFINED);
+}
index d34a75adbdc374299700eaf66c8b91cee1df15c1..2ed4779388bb776749584fbee2faa9c7371b7151 100644 (file)
@@ -118,7 +118,7 @@ Multi_measure_rest_engraver::do_process_requests ()
 
       announce_element (Score_element_info (mmrest_p_, busy_span_req_l_));
       start_measure_i_
-       = gh_scm2int (time->get_property ("currentBarNumber", 0));
+       = gh_scm2int (time->get_property ("currentBarNumber"));
     }
 }
 
@@ -163,7 +163,7 @@ Multi_measure_rest_engraver::do_post_move_processing ()
   if (mmrest_p_ && !time->measure_position ())
     {
       lastrest_p_ = mmrest_p_;
-      int cur = gh_scm2int (time->get_property ("currentBarNumber", 0));
+      int cur = gh_scm2int (time->get_property ("currentBarNumber"));
       lastrest_p_->set_elt_property ("measure-count",
                                     gh_int2scm (cur - start_measure_i_));
       mmrest_p_ = 0;
index 2815ca843d0642538264cb6d2d29578ea1ce49d3..4a397581a3f3dd63d1b7515bd29f4fd5c971f9c7 100644 (file)
@@ -58,7 +58,7 @@ Note_heads_engraver::do_process_requests()
   if (note_p_arr_.size ())
     return ;
   
-  SCM noteheadstyle = get_property ("noteHeadStyle", 0);
+  SCM noteheadstyle = get_property ("noteHeadStyle");
   for (int i=0; i < note_req_l_arr_.size (); i++)
     {
       Note_head *note_p  = new Note_head;
index d2cfe8dea83e87989e4d7e55c7bec5f3ec775d2d..6e2bab25cab698d84b42d655dcf327710be09928 100644 (file)
@@ -37,7 +37,7 @@ Note_performer::do_process_requests ()
     {
       int transposing_i = 0;
       //urg
-      SCM prop = get_property ("transposing", 0);
+      SCM prop = get_property ("transposing");
       if (gh_number_p(prop)) 
        transposing_i = gh_scm2int (prop);
 
index 59d61683abfb7193783c009661a21829c732e242..3117df5b95a8daefef222ae587feafdd9996f36c 100644 (file)
@@ -122,7 +122,7 @@ Paper_column::column_l () const
 
 Paper_column::Paper_column (Moment w)
 {
-  SCM when = (new Moment (w))->smobify_self ();;
+  SCM when = (new Moment (w))->smobify_self ();
   scm_unprotect_object (when);
   set_elt_property ("when", when);
   
index fc5630d9ac7c95bca21f18901557a9b3eb6cfe66..b624b8ea8f2643308c9cc5109c07f2c3eed833cb 100644 (file)
@@ -26,7 +26,7 @@
 #include "scope.hh"
 #include "identifier.hh"
 #include "lily-version.hh"
-#include "atom.hh"
+
 
 Paper_outputter::Paper_outputter ()
 {
index 83669c3717f1f3ab23cdf0b4d0cc468fdd0343dc..c16f39fd6dd919c504d9156e826ced87042cf68a 100644 (file)
@@ -996,18 +996,23 @@ verbose_command_req:
                sp_p->span_type_str_ = ly_scm2string ($3);
                sp_p->set_spot (THIS->here_input ());
                $$ = sp_p;
-       }       
+       }
+       | MARK  {
+               Mark_req * m = new Mark_req;
+               $$ = m;
+       }
        | MARK STRING {
                Mark_req *m = new Mark_req;
-               m->str_ = ly_scm2string ($2);
+               m->mark_label_ = $2;
                $$ = m;
 
        }
        | MARK unsigned {
                Mark_req *m = new Mark_req;
-               m->str_ =  to_str ($2);
+               m->mark_label_ =  gh_int2scm ($2);
                $$ = m;
        }
+
        | TIME_T unsigned '/' unsigned  {
                Time_signature_change_req *m = new Time_signature_change_req;
                m->beats_i_ = $2;
index d2eb399759599ea8d4fdd132366f846302c57626..e8f4aff10ae4647f1654fc2c91fa400e23144e4f 100644 (file)
@@ -28,7 +28,7 @@ protected:
 void
 Property_engraver::do_creation_processing ()
 {
-  SCM plist = get_property ("Generic_property_list", 0);
+  SCM plist = get_property ("Generic_property_list");
   for (; SCM_NIMP (plist); plist = gh_cdr (plist))
     {
       SCM elt_props = gh_car (plist);
@@ -64,11 +64,26 @@ Property_engraver::apply_properties (SCM p, Score_element *e)
       if (preset != SCM_BOOL_F)
        continue;
   
-      SCM val = get_property (prop_sym, 0);
-      if (val != SCM_UNDEFINED
-         && gh_apply (type_p, scm_listify (val, SCM_UNDEFINED))
-         == SCM_BOOL_T)
+      SCM val = get_property (prop_sym);
+      if (val == SCM_UNDEFINED)
+       ;
+      else if (gh_apply (type_p, scm_listify (val, SCM_UNDEFINED))
+              == SCM_BOOL_T)
        e->set_elt_property (ly_symbol2string (elt_prop_name), val);
+      else
+       {
+         SCM errport = scm_current_error_port ();
+         warning (_("Wrong type for property"));
+         
+         scm_puts ("type predicate: ", errport);
+         scm_display (type_p, errport);
+         scm_puts (", value found: ", errport);
+         scm_display (val, errport);
+         scm_puts (" type: ", errport);
+         scm_display (ly_type (val), errport);
+         scm_puts ("\n", errport);
+           
+       }
     }
 }
 
index 71d6b48273684b30c6844e8604b3f4feb4b54b5f..2878e9c9a8aa9032f0c311644522b98d6dcf0963 100644 (file)
 
 Protected_scm::Protected_scm ()
 {
-  object_ = 0;
+  object_ = SCM_UNDEFINED;
 }
 
 Protected_scm::Protected_scm (SCM s)
 {
-  object_ = s  ? scm_protect_object (s): 0;
+  object_ = SCM_NIMP(s)  ? scm_protect_object (s): s;
 }
 
 Protected_scm::Protected_scm (Protected_scm const &s)
 {
-  object_ = s.object_ ? scm_protect_object (s.object_) : 0;
+  object_ = SCM_NIMP(s.object_) ? scm_protect_object (s.object_) : s.object_;
 }
 
 Protected_scm & 
@@ -30,10 +30,11 @@ Protected_scm::operator =(SCM s)
 {
   if (object_ == s)
     return *this;
-  if (object_)
+  
+  if (SCM_NIMP (object_))
     scm_unprotect_object(object_);
 
-  object_ =  s ? scm_protect_object (s): 0;
+  object_ =  SCM_NIMP (s) ? scm_protect_object (s): s;
   return *this;
 }
 
@@ -46,7 +47,7 @@ Protected_scm::operator = (Protected_scm const &s)
 
 Protected_scm::~Protected_scm ()
 {
-  if  (object_)
+  if  (SCM_NIMP (object_))
     {
       scm_unprotect_object (object_);
     }
index 8cc39fad71864f091077af491f3b532a33090cf3..ef5a60c3b0ea78c04df4e7e8b77b4f1bff851cd8 100644 (file)
@@ -60,7 +60,7 @@ Repeat_engraver::queue_events ()
   Music_sequence* alt = repeated_music_l_->alternatives_p_;
   Moment walk_mom = now_mom () + repeated_music_l_->repeat_body_p_->length_mom ();
 
-  SCM novolta = get_property ("noVoltaBraces",0);
+  SCM novolta = get_property ("noVoltaBraces");
   bool create_volta = !to_boolean (novolta);
 
   Cons_list<Bar_create_event> becel;
@@ -107,7 +107,7 @@ Repeat_engraver::queue_events ()
              becel.append (c);
              last_number = volta_number;
              volta_number ++;
-              SCM l (get_property ("voltaSpannerDuration", 0));
+              SCM l (get_property ("voltaSpannerDuration"));
               if (SMOB_IS_TYPE_B (Moment, l))
                {
                  Moment vSD_mom = *SMOB_TO_TYPE (Moment,l);
index 6e4aaa96c52fedeba56225e21a01a818a907940a..a8bf90263afaf208c7c8dd7de66c495643ea7e0c 100644 (file)
@@ -58,7 +58,7 @@ Rhythmic_column_engraver::process_acknowledged ()
          stem_l_ = 0;
        }
 
-      SCM wg = get_property ("weAreGraceContext",0);
+      SCM wg = get_property ("weAreGraceContext");
       bool wegrace = to_boolean (wg);
 
       if (!wegrace)
@@ -71,7 +71,7 @@ Rhythmic_column_engraver::process_acknowledged ()
 void
 Rhythmic_column_engraver::acknowledge_element (Score_element_info i)
 {
-  SCM wg = get_property ("weAreGraceContext",0);
+  SCM wg = get_property ("weAreGraceContext");
   bool wegrace = to_boolean (wg);
   if ((wegrace !=
       (i.elem_l_->get_elt_property ("grace") != SCM_UNDEFINED))
index cbf1403cdc517d35eb8713f51db6852e16a6cc5e..0db3c858857ebb49e9f09e71497c6ef032545dd1 100644 (file)
@@ -39,13 +39,23 @@ Column_rod::compare (const Column_rod &r1, const Column_rod &r2)
 {
   return r1.other_l_->rank_i() - r2.other_l_->rank_i();
 }
+
 void
 Rod::add_to_cols ()
 {
   Direction d = LEFT;
+  Drul_array<Paper_column*> cols;
+  Real extra_dist = 0.0;
   do {
-    item_l_drul_[-d]->column_l ()->add_rod
-      (item_l_drul_[d]->column_l (), distance_f_);
-  }while ((flip (&d))!=LEFT);
+    cols[d] = item_l_drul_[d]->column_l ();
+    extra_dist += item_l_drul_[d]->relative_coordinate (cols[d], X_AXIS);
+  } while ((flip (&d))!=LEFT);
+
+  if (cols[LEFT] != cols[RIGHT])
+    do
+      {
+       cols[-d]->add_rod(cols[d], distance_f_ + extra_dist);
+      }
+    while ((flip (&d))!=LEFT);
 }
 
index 65ca2915be3ff9bbae198ab928888dc310c45be7..74d8b93f9f7be4f0e61bd6164484ad5d437904ff 100644 (file)
@@ -94,7 +94,7 @@ Script_engraver::do_process_requests()
       if (l->get_direction ())
        stafy.set_direction (l->get_direction ());
 
-      SCM axisprop = get_property ("scriptHorizontal",0);
+      SCM axisprop = get_property ("scriptHorizontal");
       bool xaxis = to_boolean (axisprop);
       if (xaxis)
        stafy.set_axis (X_AXIS);
@@ -119,7 +119,7 @@ void
 Script_engraver::acknowledge_element (Score_element_info inf)
 {
   bool them_grace = to_boolean (inf.elem_l_->get_elt_property ("grace"));
-  bool us_grace = to_boolean (get_property ("weAreGraceContext",0));
+  bool us_grace = to_boolean (get_property ("weAreGraceContext"));
 
   if (us_grace != them_grace)
     return;
index b60a6feb94b1b3163d2303a651f498b3afaaee4d..ba8861c5024c0c08401cd8d1b0173c75f76af0e7 100644 (file)
@@ -111,7 +111,7 @@ Side_position_interface::side_position (Dimension_cache const * c)
   return total_off;
 }
 
-/*
+/**
   callback that centers the element on itself
  */
 Real
index d5f6f768e78f72aef417fc19bde84ba191b74489..61a7d6ce03d4b099c50d1ecb4d8969316bd5a88c 100644 (file)
@@ -29,11 +29,6 @@ Slur_engraver::do_try_music (Music *req_l)
 void
 Slur_engraver::set_melisma (bool m)
 {
-  Translator_group *where = daddy_trans_l_;
-  get_property ("slurMelismaBusy", &where);
-  if (!where)
-    where = daddy_trans_l_;
-    
   daddy_trans_l_->set_property ("slurMelismaBusy", m ? SCM_BOOL_T :SCM_BOOL_F);
 }
 
@@ -58,7 +53,7 @@ Slur_engraver::do_removal_processing ()
       typeset_element (slur_l_stack_[i]);
     }
   slur_l_stack_.clear ();
-  SCM wg = get_property ("weAreGraceContext",0);
+  SCM wg = get_property ("weAreGraceContext");
   bool wgb = to_boolean (wg);
   if (!wgb)
     for (int i=0; i < requests_arr_.size(); i++)
@@ -115,7 +110,7 @@ void
 Slur_engraver::do_post_move_processing()
 {
   new_slur_req_l_arr_.clear();
-  SCM m = get_property ("automaticMelismata",0);
+  SCM m = get_property ("automaticMelismata");
   if (to_boolean (m))
     {
       set_melisma (slur_l_stack_.size ());
index 9a93d91e7dfebce9d07ce63bf62824357cd3af1a..d581d513525f1abc0a5fcdaae9dd87cbbf8dea9c 100644 (file)
@@ -40,8 +40,8 @@ Staff_margin_engraver::acknowledge_element (Score_element_info inf)
     return;
 
 
-  SCM long_name = get_property ("instrument", 0);
-  SCM short_name = get_property ("instr", 0);
+  SCM long_name = get_property ("instrument");
+  SCM short_name = get_property ("instr");
 
   if (now_mom () > Moment (0))
     long_name = short_name;
index 547163f457979d3e93ecf56b06ff21602514edcd..208da51a180cbda2cc3b86a7f0018099a2db3b69 100644 (file)
@@ -96,10 +96,10 @@ String
 Staff_performer::new_instrument_str () 
 { 
   // mustn't ask Score for instrument: it will return piano!
-  SCM minstr = get_property (ly_symbol2scm ("midiInstrument"), 0);
+  SCM minstr = get_property (ly_symbol2scm ("midiInstrument"));
 
   if (!gh_string_p(minstr))
-    minstr = get_property (ly_symbol2scm ("instrument"), 0);
+    minstr = get_property (ly_symbol2scm ("instrument"));
 
   if (!gh_string_p (minstr)
       || ly_scm2string (minstr) == instrument_str_)
index eb32b20db08c916033bf6fff5ca53f6716fb880d..a84f393a52d125d8fa36eb197415a489cb24baaa 100644 (file)
@@ -54,8 +54,8 @@ Staff_symbol_engraver::do_creation_processing()
 void
 Staff_symbol_engraver::do_removal_processing()
 {
-  SCM n = get_property ("numberOfStaffLines",0);
-  SCM ss = get_property ("staffSpace", 0);
+  SCM n = get_property ("numberOfStaffLines");
+  SCM ss = get_property ("staffSpace");
 
   if (gh_number_p (ss))
     span_p_->set_elt_property ("staff-space", ss);
index 91a679eca6e10dedb2e07f167458cefe6c3907a3..a1f467e1f66bfd8d3bbff78d476369d05368188b 100644 (file)
@@ -28,7 +28,7 @@ Stem_engraver::Stem_engraver()
 void
 Stem_engraver::do_creation_processing ()
 {
-  SCM prop = get_property ("abbrev", 0);
+  SCM prop = get_property ("abbrev");
   if (gh_number_p(prop)) 
     {
       default_abbrev_i_  = gh_scm2int (prop);
@@ -99,18 +99,17 @@ Stem_engraver::do_pre_move_processing()
 
   if (stem_p_)
     {
-      Translator_group* which;
-      SCM prop = get_property ("stemLeftBeamCount", &which);
+      SCM prop = get_property ("stemLeftBeamCount");
       if (gh_number_p(prop))
        {
          stem_p_->set_beaming (gh_scm2int (prop),LEFT);
-         ((Translator_group*)which)->set_property ("stemLeftBeamCount", SCM_UNDEFINED);
+         daddy_trans_l_->set_property ("stemLeftBeamCount", SCM_UNDEFINED);
        }
-      prop = get_property ("stemRightBeamCount", &which);
+      prop = get_property ("stemRightBeamCount");
       if (gh_number_p(prop))
        {
          stem_p_->set_beaming (gh_scm2int (prop), RIGHT);
-         ((Translator_group*)which)->set_property ("stemRightBeamCount", SCM_UNDEFINED);
+         daddy_trans_l_->set_property ("stemRightBeamCount", SCM_UNDEFINED);
        }
 
       // UGH. Should mark non-forced instead.
index 80e5e1208024f1d5cdf0c0594803a9d71fd67288..194b779774f5a24378275894a79aa2fc6a0c0750 100644 (file)
@@ -81,7 +81,7 @@ Text_engraver::do_process_requests ()
       Text_item *text = new Text_item;
       Side_position_interface stafy (text);
 
-      SCM axisprop = get_property ("scriptHorizontal",0);
+      SCM axisprop = get_property ("scriptHorizontal");
       if (to_boolean (axisprop))
        {
          stafy.set_axis (X_AXIS);
@@ -102,7 +102,7 @@ Text_engraver::do_process_requests ()
       if (r->style_str_.length_i ())
        text->set_elt_property ("style", ly_str02scm (r->style_str_.ch_C()));
       
-      SCM empty = get_property ("textEmptyDimension", 0);
+      SCM empty = get_property ("textEmptyDimension");
       if (to_boolean (empty))
        {
          text->set_empty (X_AXIS);
index 0090dbd9b576a943a214e89c832a98cd5d55d7d7..9ad9be22363227408e9729abfb4ef12189588045 100644 (file)
@@ -80,7 +80,7 @@ Tie_engraver::do_try_music (Music *m)
   if (Tie_req * c = dynamic_cast<Tie_req*> (m))
     {
       req_l_ = c;
-      SCM m = get_property ("automaticMelismata",0);
+      SCM m = get_property ("automaticMelismata");
       bool am = gh_boolean_p (m) &&gh_scm2bool (m);
       if (am)
        {
@@ -94,11 +94,6 @@ Tie_engraver::do_try_music (Music *m)
 void
 Tie_engraver::set_melisma (bool m)
 {
-  Translator_group *where = daddy_trans_l_;
-  get_property ("tieMelismaBusy", &where);
-  if (!where)
-    where = daddy_trans_l_;
-    
   daddy_trans_l_->set_property ("tieMelismaBusy", m ? SCM_BOOL_T : SCM_BOOL_F);
 }
 
@@ -168,7 +163,7 @@ Tie_engraver::process_acknowledged ()
        }
 
 
-      SCM sparse = get_property ("sparseTies", 0);
+      SCM sparse = get_property ("sparseTies");
       if (to_boolean (sparse))
        {
          int i = scm_ilength (head_list);
@@ -234,7 +229,7 @@ Tie_engraver::do_pre_move_processing ()
 void
 Tie_engraver::do_post_move_processing ()
 {
-  SCM m = get_property ("automaticMelismata",0);
+  SCM m = get_property ("automaticMelismata");
   if (to_boolean (m))
     {
       set_melisma (false);
index feb368ba3665018d8046541c8404f2f926aaf419..f74a9be590d798e39af84a1b3b75f88e05fd1dfd 100644 (file)
@@ -48,14 +48,14 @@ Timing_engraver::which_bar ()
       if (!now_mom ())
        return "|";
 
-      SCM nonauto = get_property ("barNonAuto", 0);
+      SCM nonauto = get_property ("barNonAuto");
       if (!to_boolean (nonauto))
        {
-         SCM always = get_property ("barAlways", 0);
+         SCM always = get_property ("barAlways");
          if (!measure_position ()
              || (to_boolean (always)))
            {
-             SCM def=get_property ("defaultBarType" ,0);
+             SCM def=get_property ("defaultBarType" );
              return (gh_string_p (def))? ly_scm2string (def) : "";
            }
        }
index 81429e9d3e830685a0ff7c56ff2ba160dd04804f..7e49f77f2ed0308faecc329b43a87a0ed951abfb 100644 (file)
@@ -96,11 +96,11 @@ Timing_translator::do_pre_move_processing()
   while (!global_l);
 
   /* allbars == ! skipbars */
-  SCM sb = get_property ("skipBars", 0);
+  SCM sb = get_property ("skipBars");
   bool allbars = !to_boolean (sb);
 
   // urg: multi bar rests: should always process whole of first bar?
-  SCM tim = get_property ("timing", 0);
+  SCM tim = get_property ("timing");
   bool timb = to_boolean (tim);
   if (timb && allbars)
     {
@@ -130,7 +130,7 @@ Timing_translator::do_creation_processing()
 Moment
 Timing_translator::measure_length () const
 {
-  SCM l = get_property("measureLength",0);
+  SCM l = get_property("measureLength");
   if (SMOB_IS_TYPE_B(Moment, l))
     return *SMOB_TO_TYPE (Moment, l);
   else
@@ -142,7 +142,7 @@ void
 Timing_translator::get_time_signature (int *n, int *d) const
 {
   Moment one_beat (1,4);
-  SCM one = get_property ("beatLength",0);
+  SCM one = get_property ("beatLength");
   if (SMOB_IS_TYPE_B (Moment, one))
     one_beat = *SMOB_TO_TYPE (Moment, one);
   *n = measure_length () / one_beat;
@@ -169,7 +169,7 @@ Timing_translator::Timing_translator()
 Moment
 Timing_translator::measure_position () const
 {
-  SCM sm = get_property ("measurePosition",0);
+  SCM sm = get_property ("measurePosition");
   
   Moment m   =0;
   if (SMOB_IS_TYPE_B (Moment, sm))
@@ -206,7 +206,7 @@ Timing_translator::do_post_move_processing()
 
   Moment * measposp =0;
 
-  SCM s = get_property ("measurePosition", 0);
+  SCM s = get_property ("measurePosition");
   if (SMOB_IS_TYPE_B (Moment, s))
     {
       measposp = SMOB_TO_TYPE (Moment,s);
@@ -220,15 +220,14 @@ Timing_translator::do_post_move_processing()
   *measposp += dt;
   // don't need to set_property
   
-  Translator_group * tr =daddy_trans_l_; 
-  SCM barn = get_property ("currentBarNumber", &tr);
+  SCM barn = get_property ("currentBarNumber");
   int b = 0;
   if (gh_number_p(barn))
     {
       b = gh_scm2int (barn);
     }
 
-  SCM cad = get_property ("timing", 0);
+  SCM cad = get_property ("timing");
   bool c= to_boolean (cad );
 
   Moment len = measure_length ();
@@ -238,6 +237,6 @@ Timing_translator::do_post_move_processing()
        b ++;
       }
 
-  tr->set_property ("currentBarNumber", gh_int2scm (b));
+  daddy_trans_l_->set_property ("currentBarNumber", gh_int2scm (b));
 }
 
index 743f843cb29224c93f4dc04a353c9a49a47c4e50..c76e68e884696003c750dc44cc02963039e63a91 100644 (file)
@@ -429,20 +429,16 @@ Translator_group::do_add_processing ()
 }
 
 SCM
-Translator_group::get_property (SCM sym, Translator_group **where_l) const
+Translator_group::get_property (SCM sym) const
 {
   if (properties_dict_.elem_b (sym))
     {
-      if (where_l)
-       *where_l = (Translator_group*) this; // ugh
       return properties_dict_.get (sym);
     }
 
   if (daddy_trans_l_)
-    return daddy_trans_l_->get_property (sym, where_l);
+    return daddy_trans_l_->get_property (sym);
   
-  if (where_l)
-    *where_l = 0;
 
   return SCM_UNDEFINED;
 }
index 274ef2b4123f3ca2f08c9c2f3ab25e62f9f52f3c..28e2b4c31baa257369cee923de3c385052c94fb3 100644 (file)
@@ -164,16 +164,15 @@ Translator::output_def_l () const
 }
 
 SCM
-Translator::get_property (String id, Translator_group **where_l) const
+Translator::get_property (String id) const
 {
-  return daddy_trans_l_->get_property (ly_symbol2scm (id.ch_C()), where_l);
+  return daddy_trans_l_->get_property (ly_symbol2scm (id.ch_C()));
 }
 
 SCM
-Translator::get_property (SCM sym,
-                         Translator_group **where_l) const
+Translator::get_property (SCM sym) const
 {
-  return daddy_trans_l_->get_property (sym, where_l);
+  return daddy_trans_l_->get_property (sym);
 }
 
 
index 39dbc7b12b8289530fce9b6ae0825d3a1ecf8363..2430e7b37c386241285ff3bc5750cd51cb941794 100644 (file)
@@ -50,7 +50,7 @@ Tuplet_engraver::do_try_music (Music *r)
          Moment m = now_mom () + c->length_mom ();
          stop_moments_.push (m);
 
-         SCM s = get_property ("tupletSpannerDuration",0);
+         SCM s = get_property ("tupletSpannerDuration");
          if (SMOB_IS_TYPE_B(Moment, s))
            m = m <? (now_mom () + *SMOB_TO_TYPE(Moment,s));
          
@@ -64,7 +64,7 @@ Tuplet_engraver::do_try_music (Music *r)
 void
 Tuplet_engraver::do_process_requests ()
 {
-  SCM v = get_property ("tupletInvisible", 0);
+  SCM v = get_property ("tupletInvisible");
   if (to_boolean (v))
     return;
 
@@ -90,7 +90,7 @@ void
 Tuplet_engraver::acknowledge_element (Score_element_info i)
 {
   bool grace= to_boolean (i.elem_l_->get_elt_property ("grace"));
-  SCM wg = get_property ("weAreGraceContext",0);
+  SCM wg = get_property ("weAreGraceContext");
   bool wgb = to_boolean (wg);
   if (grace != wgb)
     return;
@@ -115,7 +115,7 @@ Tuplet_engraver::do_post_move_processing ()
   Moment now = now_mom ();
 
   Moment tsd;
-  SCM s = get_property ("tupletSpannerDuration",0);
+  SCM s = get_property ("tupletSpannerDuration");
   if (SMOB_IS_TYPE_B(Moment, s))
     tsd = *SMOB_TO_TYPE(Moment,s);
 
index 36782cb6fc193f02dc2d538f28c891d76fbd3aed..544759570939e5601815e3ec9d9bab6b078b2e83 100644 (file)
@@ -6,7 +6,7 @@
   (c)  1997--2000 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
-#include "atom.hh"
+
 #include "beam.hh"
 #include "box.hh"
 #include "debug.hh"
index aca1c68fd8132e9fa21bc7f3081fb48c540ab306..464e7e3df21defc27b8fb59409625949b857ad00 100644 (file)
@@ -23,7 +23,7 @@ Vertical_align_engraver::do_creation_processing()
 {
   valign_p_ =new Axis_align_spanner;
   valign_p_->set_axis (Y_AXIS);
-  valign_p_->stacking_dir_ = DOWN;
+  valign_p_->set_elt_property ("stacking-dir",  gh_int2scm (DOWN));
   
   valign_p_->set_bounds(LEFT,get_staff_info().command_pcol_l ());
   announce_element (Score_element_info (valign_p_ , 0));
@@ -32,23 +32,18 @@ Vertical_align_engraver::do_creation_processing()
 void
 Vertical_align_engraver::do_removal_processing()
 {
-  SCM dist (get_property ("maxVerticalAlign", 0));
+  SCM dist (get_property ("maxVerticalAlign"));
   if (gh_number_p(dist))
     {
       valign_p_->threshold_interval_[BIGGER]  = gh_scm2double (dist);
     }
 
-  dist = get_property ("minVerticalAlign", 0);
+  dist = get_property ("minVerticalAlign");
   if (gh_number_p(dist))
     {
       valign_p_->threshold_interval_[SMALLER]  = gh_scm2double (dist);
     }
 
-  dist = get_property ("alignmentReference",0);
-  if (isdir_b (dist))
-    {
-      valign_p_->align_dir_ = to_dir (dist);
-    }
   valign_p_->set_bounds(RIGHT,get_staff_info().command_pcol_l ());
   typeset_element (valign_p_);
   valign_p_ =0;
index 0fac7a6c2338018cc5974f5bb74e04f9db33364f..9f5427a2443feb73407f40b5ef081df958ca34a4 100644 (file)
@@ -19,7 +19,7 @@
 #include "stem.hh"
 #include "dimension-cache.hh"
 #include "group-interface.hh"
-#include "atom.hh"
+
 
 
 Volta_spanner::Volta_spanner ()
index b30c731e86e386674688d46680f970686b66ffa6..44c508c1bab9a31e776f7f845285bad29e5cd4bc 100644 (file)
@@ -214,8 +214,8 @@ StaffGroupContext= \translator {
        \type "Engraver_group_engraver";
        \consists "Span_bar_engraver";
        \consists "Output_property_engraver";   
-       
        \consists "Staff_group_bar_engraver";
+
        \name StaffGroup;
        \accepts "Staff";
        \accepts "RhythmicStaff";
@@ -246,6 +246,7 @@ LyricsContext = \translator {
        \name Lyrics;
        \consists Vertical_align_engraver;%need this for getting folded repeats right.
 
+       \consists "Property_engraver";
        \consistsend "Axis_group_engraver";
        
        \accepts "LyricVoice";
@@ -340,7 +341,7 @@ ScoreContext = \translator {
        \accepts "NoteNames";
 
        markVisibilityFunction = #end-of-line-invisible
-       barNumberVisibilityFunction = #end-of-line-invisible
+       barNumberVisibilityFunction = #begin-of-line-visible
        marginVisibilityFunction = #begin-of-line-visible
 };
 
@@ -354,8 +355,6 @@ OrchestralScoreContext= \translator {
 
        \consists "Bar_number_engraver";
        \consists "Mark_engraver";
-
-       \accepts "HaraKiriStaff";
 };
 
 \translator {
index 3c181ed8de73f21df9efc221da673b8e1d55954f..757b492e989d15478a48188b897f08c1108e2e9a 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.29
-Entered-date: 02MAR00
+Version: 1.3.30
+Entered-date: 06MAR00
 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.29.tar.gz 
+       1000k lilypond-1.3.30.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.29.tar.gz 
+       1000k lilypond-1.3.30.tar.gz 
 Copying-policy: GPL
 End
index 055cde99caa0d893d1c6e8e7f93dcb477fb9ecaf..f06d1a84b74e02ddaa0c19fe1a9f3b714d0a0336 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.29
+Version: 1.3.30
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.29.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.30.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # get Packager from (undocumented?) ~/.rpmmacros!
index 619e0591aa55aec73308222d786507f3ce234821..db27072dbca40d66d3f4760ff3bd5d3bd53df159 100644 (file)
 
   )
    
+(define generic-lyrics-properties
+  (list generic-text-properties
+  )
+  
+)
index 3db837d204b4e2b4c85a7911787febcd4250bd9f..d0f44c8d777e8134afdc7be27b10f4b2ff5d4c82 100644 (file)
@@ -566,7 +566,12 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [
     # For now let people define these in their environments
     #
     : ${MFPLAIN_MP=`kpsewhich mp mfplain.mp`}
-    : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+
+    if test  ${INIMETAPOST} = "inimp" ; then
+       : ${INIMETAPOST_FLAGS=''}
+    else
+       : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
+    fi
 
     rm -f mfput.*
     AC_MSG_RESULT($MFMODE)