]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.2.15 release/1.2.15
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 18 Oct 1999 12:45:06 +0000 (14:45 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 18 Oct 1999 12:45:06 +0000 (14:45 +0200)
130 files changed:
AIMS [deleted file]
ANNOUNCE-0.1 [deleted file]
ANNOUNCE-1.0 [deleted file]
ANNOUNCE-1.2 [deleted file]
AUTHORS.txt [deleted file]
CHANGES
Documentation/BLURB.in [deleted file]
Documentation/COPYRIGHT [deleted file]
Documentation/GNUmakefile
Documentation/MANIFESTO.texi [deleted file]
Documentation/index.texi
Documentation/metadoc/regression-test.tely
Documentation/misc/AIMS [new file with mode: 0644]
Documentation/misc/ANNOUNCE-0.1 [new file with mode: 0644]
Documentation/misc/ANNOUNCE-1.0 [new file with mode: 0644]
Documentation/misc/ANNOUNCE-1.2 [new file with mode: 0644]
Documentation/misc/CHANGES-0.0 [new file with mode: 0644]
Documentation/misc/CHANGES-0.1 [new file with mode: 0644]
Documentation/misc/CHANGES-1.0 [new file with mode: 0644]
Documentation/misc/CHANGES-1.1 [new file with mode: 0644]
Documentation/misc/GNUmakefile [new file with mode: 0644]
Documentation/misc/NEWS-1.2 [new file with mode: 0644]
Documentation/misc/NEWS-1.2~ [new file with mode: 0644]
Documentation/misc/index.texi [new file with mode: 0644]
Documentation/misc/interview [new file with mode: 0644]
Documentation/user/properties.itely
Documentation/user/refman.itely
Documentation/user/tutorial.itely
NEWS
NEWS-0.0 [deleted file]
NEWS-0.1 [deleted file]
NEWS-1.0 [deleted file]
NEWS-1.1 [deleted file]
TODO
VERSION
buildscripts/lilypond-login.sh
buildscripts/lilypond-profile.sh
debian/GNUmakefile
debian/control
debian/control.in
debian/out/control
flower/include/parray.hh
input/bugs/core.ly
input/star-spangled-banner.ly
input/test/break.ly [new file with mode: 0644]
input/test/lyrics-bar.ly [new file with mode: 0644]
input/test/repeat-semifold.ly [deleted file]
input/test/repeat-volta.ly [new file with mode: 0644]
lily/GNUmakefile
lily/auto-beam-engraver.cc
lily/bar-engraver.cc
lily/bar-req-collect-engraver.cc [new file with mode: 0644]
lily/bar.cc
lily/beam-engraver.cc
lily/beam.cc
lily/bezier.cc
lily/break-algorithm.cc
lily/break-align-item.cc
lily/collision.cc
lily/column-x-positions.cc
lily/command-request.cc
lily/crescendo.cc
lily/cross-staff.cc [new file with mode: 0644]
lily/encompass-info.cc [deleted file]
lily/engraver.cc
lily/extender-spanner.cc
lily/gourlay-breaking.cc
lily/hyphen-spanner.cc
lily/include/bar-engraver.hh
lily/include/bar-req-collector-engraver.hh [new file with mode: 0644]
lily/include/beam.hh
lily/include/break-algorithm.hh
lily/include/column-x-positions.hh
lily/include/command-request.hh
lily/include/cross-staff.hh [new file with mode: 0644]
lily/include/encompass-info.hh [deleted file]
lily/include/ly-symbols.hh
lily/include/music-iterator.hh
lily/include/paper-def.hh
lily/include/paper-score.hh
lily/include/score-column.hh
lily/include/score-element.hh
lily/include/score-engraver.hh
lily/include/slur.hh
lily/include/timing-engraver.hh
lily/include/unfolded-repeat-iterator.hh
lily/lily-guile.cc
lily/lookup.cc
lily/main.cc
lily/midi-def.cc
lily/music-iterator.cc
lily/paper-def.cc
lily/paper-score.cc
lily/parser.yy
lily/score-column.cc
lily/score-element.cc
lily/score-engraver.cc
lily/score.cc
lily/separating-group-spanner.cc
lily/simultaneous-music-iterator.cc
lily/single-malt-grouping-item.cc
lily/slur.cc
lily/spacing-spanner.cc
lily/staff-sym.cc
lily/stem-info.cc
lily/stem-tremolo.cc
lily/stem.cc
lily/timing-engraver.cc
lily/unfolded-repeat-iterator.cc
ly/declarations.ly
ly/engraver.ly
ly/midi.ly
ly/params.ly
ly/property.ly
make/lilypond.spec.in
make/out/lilypond.lsm
make/out/lilypond.spec
make/toplevel.make.in
mutopia/N.W.Gade/README
mutopia/N.W.Gade/brass.ly
mutopia/N.W.Gade/parts.ly
mutopia/N.W.Gade/score.ly
mutopia/N.W.Gade/strings.ly
mutopia/N.W.Gade/wood.ly
scm/lily.scm
test/GNUmakefile [deleted file]
test/bow.cc [deleted file]
test/hash.cc [deleted file]
test/int.cc [deleted file]
tex/lily-ps-defs.tex

diff --git a/AIMS b/AIMS
deleted file mode 100644 (file)
index ae5d5a9..0000000
--- a/AIMS
+++ /dev/null
@@ -1,92 +0,0 @@
-[From a posting in rec.music.classical.guitar]
-
-I started coding on Lilypond because I am fascinated by music and by
-typography.  I have never used any egngraving software, and do not
-feel the need to investigate other programs, for the simple reason
-that I have no need of typesetting music.  In fact, I almost never use
-Lilypond. I believe that the largest thing I ever entered was Bach's
-WTK-I fugue 2, two pages of piano music.  I entered it about 1.5 years
-ago.
-
-I am fascinated by this complicated problem, typesetting music with a
-computer.  And that is why I started writing Lilypond: purely for the
-hack value, for the fun of coding.  To me, music notation is like a
-giant puzzle. I have been coding on Lilypond and studying music
-notation in my spare time for the past three years.  Since this is my
-hobby, strictly spoken I have no obligations concerning Lily, neither
-moral, nor legal.  Of course, I am open to pleas and requests and
-often do respond to them, but I have the choice to ignore them, and
-occasionally I do.
-
-Lilypond tries to typeset music *automatically*.  We (*) try to put as
-much of our knowledge of music typography into the program as
-possible, and have as little typographical information in the input as
-possible.  Basically, you ought to be able to produce nicely printed
-scores with Lilypond without knowing anything about engraving.
-
-       footnote (*): We = me and Jan Nieuwenhuizen, who wrote about
-       30% of the code, and provided most of the examples.)
-
-A second important issue is that Lilypond is free. Not only in the
-sense that you can download Lilypond at no charge, but it is also free
-as in "free speech".  User are free to modify the program to suit
-their needs, and redistribute or sell the program.  Moreover, since
-the program can be downloaded at no cost, I don't gain anything if it
-gets more users.  And here I mean "use" as opposed to "use and
-enhance" or "use and give helpful comments".
-
-We have not made a program for professionals, and as a result, hackers
-have begun to use it.  Some of them have sent me modifications that
-improve the software.  This is good for us, because it helps us solve
-our puzzle more quickly.  We would have made the program useful for
-professionals like you, presumably they would start using it, be glad
-they didn't have to pay, and ignore me.  That would not help me solve
-my puzzle; I don't gain anything.
-
-The system has reached a point that it is useful for quite a lot of
-people (we get about 200 downloads per month from the main FTP site),
-and a lot of my users have thanked me for rescuing them from tedious
-typesetting work using Finale, Encore and what-have-you-more.  I have
-a user in Russia who tries make a living by typesetting a 260-page
-book on harmonic-theory using Lilypond.  I have a user that can
-typeset his own 45 page orchestral score.  Laymen have called our
-printout of the Bach Cello Suite 2 of "professional quality".
-
-This program is now useful to more people than a program solely aimed
-at professional use.
-
-Obviously, we're not finished yet, since the program still contains
-quite a lot bugs.  We know the examples on the website contain lots of
-errors.  Tweaking the input to fix up and hide the errors would cost
-us a lot of time. Time that is better spent improving the program
-itself. So, we don't hide the errors.
-
-Most of the errors that are shown on the website are not caused by our
-lack of knowledge, but rather by a lack of time and the sheer
-complexity of this big puzzle we're solving.
-
-In the end, we also want a system that is fully tweakable, so you can
-also produce professional quality typesetting.  But being
-straightforward to use for non-professionals is more important now.
-
-Finally, I would like to stress that my goals while programming on
-LilyPond are separate from my beliefs of what should be done with the
-program. I can not control what the program is used for, nor do I want
-to. People can typeset lullabies for their baby daughters or racist
-warsongs to help fascist leaders.
-
-A fortiori, I can not control what copyright users place on their
-input and output.  If you want to do commercial music editing (with
-LilyPond) you can publish scores on paper and keep the input and
-output to your self.  You can publish the score online, and keep the
-input to yourself.  You can put the input online as well, while
-forbidding modifications.  You can publish the input and allow
-modifications.
-
-This is all up to the user of the software, not to me.
-
-
-Han-Wen Nienhuys,
-
-April 11, 1999
-
diff --git a/ANNOUNCE-0.1 b/ANNOUNCE-0.1
deleted file mode 100644 (file)
index 8ed22c9..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-Keywords: midi notation music typesetting gnu
-Subject: LilyPond 0.1 released - The GNU Project music typesetter
-
-       BORN
-
-       August 1, 1997
-
-               Lily
-
-               (GNU LilyPond 0.1)
-
-       daughter to Jan 'Janneke' Nieuwenhuizen and Han-Wen 'Wendy' Nienhuys
-
-Lily is a healthy, bouncing baby weighing 345 kilobytes
-
-Visiting hours: 24 hours a day at
-
-       ftp://pcnov095.win.tue.nl/pub/lilypond/lilypond-0.1.0.tar.gz (Europe)
-       ftp://alpha.gnu.ai.mit.edu/gnu/lilypond-0.1.0.tar.gz (US)
-
-You can see some babyfood, diapers and pictures at
-
-       http://www.stack.nl/~hanwen/lilypond/index.html
-
-You can send your congratulations to Janneke (janneke@gnu.org) and
-Wendy (hanwen@stack.nl)
-
-
-GNU LilyPond - The GNU Project Music Typesetter
-
-
-
-``WHAT IS GNU LilyPond?''
-
-Well Mike, GNU LilyPond is a program which converts music definition
-files into visual or auditive output: it can typeset formatted sheet
-music to a TeX file and (mechanical) performances to MIDI files.
-
-
-We have been working very hard on this system for the past year, and
-we finally think that it is ready to be used and hacked at by a larger
-public than us. 
-
-
-WHY ?
-
-We want to create tools to produce production quality scores and parts
-of public domain music.
-
-
-BUT ..
-
-We haven't yet reached that goal:
-
-* The quality of the output isn't good enough yet due to some
-unsophisticated algorithms
-
-* Some features haven't been implemented, due to lack of time; most of
-them can be done quite simply
-
-This is why we don't consider this software stable yet. It generally
-does what it is supposed to, but we reserve the right to make
-(incompatible) changes to the input format.  We consider it
-of BETA quality.
-
-
-WE WANT YOU!
-
-You can become a user, but we'd really appreciate it if you would start 
-hacking at Lily, and help us advance our project more quickly.
-
-
-``YES, IT IS FANTASTIC! WHAT DO I NEED?''
-
-For compilation you need
-
-       Unix. (windows32 is known to work, too)
-       GNU C++ v2.7 or better, with libg++ installed.
-       GNU make. 
-       Flex (2.5.1 or better). 
-       Bison. (1.25 or better)
-
-For running you need
-
-       TeX
-       MusiXTeX fonts
-
-The MusiXTeX fonts are part of the MusiXTeX package version T.73,
-available at any CTAN mirror, or http://www.gmd.de/Misc/Music/ 
-
-
-``WHAT CAN LILYPOND DO?''
-
-ASCII script input (mudela), with identifiers (for music reuse),
-customizable notenames.
-
-MIDI output lets you check if you have entered the correct notes.
-MIDI to Mudela conversion through the mi2mu program.
-
-Multiple staffs in one score. Each staff can have a different meters.
-Multiple voices within one staff (up to four handled graciously);
-beams optionally shared between voices.  Multiple scores within one
-input file. Each score is output to a different file.
-
-Beams, slurs, chords, super/subscripts (accents and text), 
-general n-plet (triplet, quadruplets, etc.), lyrics, transposition,
-dynamics (both absolute and hairpin style), clef changes, meter
-changes, cadenza-mode, key changes, repeat bars.
-
-Integration with LaTeX through Perl scripts.
-
-
-``WHERE CAN I FIND MORE INFO?''
-
-Sources for this project are on
-
-       ftp://pcnov095.win.tue.nl/pub/lilypond/ (Europe)
-       ftp://alpha.gnu.ai.mit.edu/gnu/ (US)
-
-More detailed info and examples can be found on the webpage at
-
-       http://www.stack.nl/~hanwen/lilypond/index.html
-
-
-THANK YOU,
-
-Thanks go out to Mats Bengtsson, Werner Lemberg and Richard Stallman
-for comments and contributions.
-
-
-****   NOTE
-
-LilyPond might have a minor bug if  you use glibc-2; we will look into it
-If you use glibc-2, please try 0.1.0 to see if it works and, download 0.1.1
-when it's available.  
-
-LilyPond might exhibit a g++ bug on Solaris 1.5 (The stack frame gets corrupted
-by a constructor) if you compile with -O2. We don't know workarounds.  
-
-                             --- * ---
-
-    We would like to dedicate this program to all the friends that we
-                        met through music. 
-
-
-       Those deserving special mention (in no particular order):
-Esther, Marijke, Heike, Inge, Judith, Hannah, Auke, Ilse, Evelyn,
-Maartje, Suzanne, Ilse (gee, again?) and last (but certainly not least)
-Janneke!
-
-       HWN
-
-       That's a nice thought, Wendy.  I've got a few too, to spread
-the credits a bit (Again, no particular order) Michelle, Illushka, 
-Ruth, Eva, Fro/ydis, Monique, Noor, Sascha, Monique, Ilse, Monique, 
-Eva, Roos, Judith, Tim and, of course, Wendy!
-
-       JCN
-
-Of course, our other friends in the `Eindhovens Jongeren Ensemble'
-(http://www.stack.nl/~hanwen/eje.html) cannot go unmentioned either.
-
-
-                              --- * ---
diff --git a/ANNOUNCE-1.0 b/ANNOUNCE-1.0
deleted file mode 100644 (file)
index 33190c9..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-Keywords: midi notation music typesetting gnu font engraving 
-Subject: GNU LilyPond 1.0 released - The Music Typesetter
-
-GNU LilyPond - The Music Typesetter
-
-
-WHAT IS LilyPond?
-
-LilyPond is the GNU Project music typesetter.  This program can print
-beautiful sheet music from a music definition file.  It can also play
-performances to a MIDI file.
-
-
-WHAT'S NEW SINCE VERSION 0.1?
-
-* LilyPond now includes a completely new music font: the Feta font.  
-  We were quite disappointed with available music fonts, so we rolled
-  our own.  We did our best to copy the best symbol designs available,
-  and we think that we've succeeded in doing so.  We're proud of the
-  result, and we hope you agree, so go check it out!
-
-* More elegant output due to 
-
-       * more sophisticated beam/slur formatting
-       * better spacing
-       * better line breaking
-       * better font design
-       * PostScript output for variable symbols
-
-* Lots of bugfixes
-
-* More robust, flexible and tweakable design
-
-* Better MIDI file importing
-
-* Easier to use due to better shell scripts and input format
-enhancements
-
-* MusixTeX is not needed anymore
-
-* Faster
-
-
-
-FEATURES
-
-* Multiple staffs, polyphonic music (more voices on one staff),
-Polymetric music.
-
-* Support for full orchestral score: Hara_kiri systems (lines with
-only rests are automatically skipped), multi-measure rests, bar
-numbering, brackets at the left.
-
-* Optimal beam slopes, slur/notehead collision resolution, dashed
-slurs. Formatting parameters are runtime tunable
-
-* Very beautiful symbols.  Variable size symbols generated on the fly
-as embedded postscript.
-
-* MIDI output
-
-* Optimal linebreaking, manual intervention possible.  Linelength is
-settable per line.
-
-* Readable yet very fast to type input language.  With configurable
-note names and identifiers.  Comes with an emacs-mode
-
-* With lots of examples (among others a fragment of Van Beethoven's
-Coriolan, J.S.Bach Cello Suite II, F. Schubert "Leise flehen meine
-Lieder")
-
-* Runs on UNIX and Windows-32.
-
-* Easy generation of titling.
-
-* WWW browsable documentation.
-
-* Support for Urtext: separation of modern and original interpretation.
-
-* Polyphonic music (with automatic collision resolution)
-
-* Spacing and collision resolution of accidentals and syllables is
-done automatically
-
-* Internationalisation support (Italian, Dutch)
-
-* Multiple font sizes within one piece
-
-* Integration with LaTeX and YODL
-
-
-MORE INFO
-
-Sources for this project are on
-
-       ftp://pcnov095.win.tue.nl/pub/lilypond/ (Europe)
-       ftp://ftp.gnu.org/pub/gnu/
-
-More detailed info and examples can be found on the webpage at
-
-       http://www.cs.uu.nl/~hanwen/lilypond/index.html
-
diff --git a/ANNOUNCE-1.2 b/ANNOUNCE-1.2
deleted file mode 100644 (file)
index ec9bef6..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
--*- text -*-
-
-
-Keywords: midi notation music typesetting gnu font engraving 
-Subject: GNU LilyPond 1.2 released - The Music Typesetter
-
-GNU LilyPond - The Music Typesetter
-
-
-WHAT IS LilyPond?
-
-LilyPond is the GNU Project music typesetter.
-
-LilyPond produces beautiful sheet music using a high level description
-file as input.
-
-
-BROWSE
-
-Documentation and examples can be found on
-
-       http://www.cs.uu.nl/~hanwen/lilypond/
-
-       
-DOWNLOAD
-
-Sources for this project are on
-
-       ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.2/ (Europe)
-       ftp://ftp.gnu.org/pub/lilypond/
-
-Prepackaged i386 and PPC packages for both Debian and RedHat GNU are
-also available.
-
-
-WHAT'S NEW?
-
-* Large cleanups, enhanced design and GUILE integration for smaller
-  memory footprint and more flexible code.
-
-* Direct output to PostScript (optional), PDFTeX or as GUILE script
-  (default output still to plain TeX).
-
-* Convertors for ABC and MUP formats.
-
-* Font: now available as scalable PostScript.  New glyphs: time
-  signature, more note heads.
-
-* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested)
-  repeats, chordnames, automatic Lyrics durations.
-  
-* Grace notes, volta brackets, multiple styles for note heads and 
-  time signatures, breathing signs, lyric extenders, cross staff 
-  beaming and slurring.
-  
-* --safe option for the paranoid.
-
-* More elegant spacing.  Text is spaced exactly.
-
-* Lots of bugfixes.
-
-
diff --git a/AUTHORS.txt b/AUTHORS.txt
deleted file mode 100644 (file)
index b58b34b..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-AUTHORS - who did what on GNU LilyPond?
-***************************************
-
-   This file lists authors of GNU LilyPond, and what they wrote.  This
-list is alphabetically ordered.
-
-   * Tom Cato Amundsen <tomcato@xoommail.com>,     cembalo-partita in
-     mudela, accordion symbols, some mudela-book.py
-
-   * Mats Bengtsson <matsb@s3.kth.se>,
-     `http://www.s3.kth.se/~matsb/'     lots of testing, fixes, general
-     comments and contributions.
-
-   * Eric Bullinger <eric@aut.ee.ethz.ch>,     accidental transposition.
-
-   * Laura Conrad (lconrad@world.std.com)     fixes to abc2ly
-
-   * Jan Arne Fagertun <Jan.A.Fagertun@energy.sintef.no>,     TeX
-     titling and lytodvi.sh
-
-   * Anthony Fok <foka@debian.org>,     debian package: debian/*
-
-   * Bjoern Jacke <bjoern.jacke@gmx.de>     german glossary stuff.
-
-   * Neil Jerram <nj104@cus.cam.ac.uk>.      parts of
-     Documentation/Vocab*
-
-   * Donald Ervin Knuth,  `http://www-cs-staff.stanford.edu/~knuth/'
-     mf/ital-*.mf (these were taken from the CM fonts)
-
-   * Michael Krause <m.krause@tu-harburg.de>,     breathing signs
-
-   * Werner Lemberg <wl@gnu.org>,     misc bugfixes, some Beam and Stem
-     code.
-
-   * David R. Linn <drl@vuse.vanderbilt.edu>,     Mailing list
-     maintenance.
-
-   * Adrian Mariano <>     Reference manual, tutorial fixes, glossary.
-
-   * Han-Wen Nienhuys <hanwen@cs.uu.nl>,
-     `http://www.cs.uu.nl/~hanwen/'     Main author (initials: HWN).
-
-   * Jan Nieuwenhuizen <janneke@gnu.org>,
-     `http://www.xs4all.nl/~jantien/'     Main author (initials: JCN).
-
-   * Alexandre Oliva <oliva@dcc.unicamp.br>,
-     `http://sunsite.unicamp.br/~oliva/'     testing
-
-   * Franc <pinard@iro.umontreal.ca>ois Pinard,     parts of
-     Documentation/Vocab*, started internationalization stuff
-
-   * Glen Prideaux <glenprideaux@iname.com>,     minor bug fix to
-     script used to generate doc++ documentation
-
-   * Roy R. Rankin <Roy.Rankin@alcatel.com.au>,     major extension,
-     fixes to abc2ly, lilypond bug fixes
-
-   * Jeffrey B. Reed <daboys@austin.rr.com>,     Windows-NT support.
-
-   * Shay Rojanski     Some mudela source.
-
-   Your name could be here! If you want to fix something, do it, and
-send us a patch!
-
diff --git a/CHANGES b/CHANGES
index 3c07949e2c686e7c6e65069f74fe04c85a875a24..604f59c4aa561ba5f293fc0e3bea1db2c2c39902 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,8 +1,22 @@
+pl 15  (Oct 18)
+
 14.jcn1
+       - Kludge for accented chars (thanks, Mats)
        - bf: don't fail on error in doco package
        - doco package: noarch
        - bf: standchen: mutopia prep
 
+14.hwn1
+       - move some misc stuff into Documentation/misc/
+       - cleanups: slur & beam.
+       - junked Encompass_info
+       - Smobs -- simplifies sc_elt memory management
+       - Timing_engraver collects bar reqs
+       - unfold all if doing MIDI.
+       - bfs: do something sensible if it doesn't fit.
+       - penalties for break stuff supported.
+
+*******
 13.jcn2,3
        - mutopia/J.S.Bach/Petites-Preludes: bf's and mutopia preraration
        - separate documentation package
diff --git a/Documentation/BLURB.in b/Documentation/BLURB.in
deleted file mode 100644 (file)
index 52e0ef5..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-LilyPond is a music typesetter.  It produces beautiful sheet music
-using a high level description file as input.  LilyPond is part of 
-the GNU Project.
diff --git a/Documentation/COPYRIGHT b/Documentation/COPYRIGHT
deleted file mode 100644 (file)
index 1628105..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-[Note to uninitiated readers.  This is a Q&A document that explains
-what to watch out for when submitting scores for the Mutopia project.
-The Mutopia project is an effort to accumulate an archive of sheet
-music that is in the public domain.  The project should be similar to
-the Gutenberg project.
-
-We will be using music typesetting software to produce the software.
-The project will only accept music for composers that have passed into
-the PD.  The sole remaining problem is caused by the editorial
-changes.  A recent edition may contain editorial amendments that are
-not in the PD, so we cannot simply copy the music from recent
-editions.]
-
-
-
-What is copyright?
-
-Copyright is a legal system that protects the expressions of ideas.
-It was originally conceived to foster development of art and
-knowledge.
-
-Copyright law gives "owners" of the expressions the right to restrict
-reproductions of these expressions and collect fees.  In this way they
-can earn a living.  For example, a poet may restrict xeroxing and
-public performances of his poems, and demand a fee for print for
-prints and performances.
-
-After some time ---for most forms of expression, this is 70 years
-after the author died--- the work goes into the public domain, which
-means that all restrictions are lifted.  You can print, perform and
-modify the works as much as you like.
-
-Copyright law is internationalised.  In most countries the conditions
-from the Berne convention have been adopted.
-
-
-
-
-How does copyright work for music scores?
-
-Let's analyze how a printed score  is produced:
-
-1.  The composer composes music.
-
-2.  An editor edits the music, based on the composer's manuscript and
-on other editions.
-
-3.  An engraver lays out the editor's product.
-
-As you can see, there are three individuals, whose expressions are
-protected by copyright law.  Since we are interested in the scores
-that are in the PD.
-
-The copyright on the music itself passes into the PD 70 years after
-the death of the composer.  (Or XXXX years after publication if the
-work is published posthumously.)
-
-The copyright on the editorial changes pass in to the PD 70 years
-after death of the editor, or XXX years after publication.  Depending on YYY
-
-The copyright of the engraver is of no interest to us, since we will
-not reproduce any of the layout.
-
-
-
-What are editorial changes?
-
-
-
-
-
-
-How do I find out what changes might be copyrighted?
-
-You cannot copyright something you did not create yourself.  So if you
-find the same editorial changes across different editions it is
-unlikely that it is copyrighted.
-
-
-
-
-Urtexts?
-
-
-
-Scores that are not marked with dates?
-
-
index d900ff88fcffbcf10fc2d572e866ae12f327e239..1d6e86f54e0207151fe53ead4204fc2a9db8a60d 100644 (file)
@@ -1,25 +1,16 @@
-# Documentation/Makefile
-
 depth = ..
 
 NAME = documentation
-SUBDIRS= user metadoc bibliography pictures topdocs ntweb
+SUBDIRS= user metadoc bibliography pictures topdocs ntweb misc
 STEPMAKE_TEMPLATES=documentation  texinfo
 
-README_TOP_FILES=NEWS DEDICATION TODO AIMS CHANGES
-INFO_FILES = $(wildcard $(outdir)/$(package).info*)
-EXTRA_DIST_FILES = COPYRIGHT 
-
-
-
-BLURBS=BLURB 
+README_TOP_FILES=NEWS DEDICATION CHANGES
+EXTRA_DIST_FILES = 
 
 include $(depth)/make/stepmake.make 
 
 default: do-doc
 
-info: $(outdir)/$(package).info
-
 local-WWW: copy-for-me
 
 copy-for-me:
diff --git a/Documentation/MANIFESTO.texi b/Documentation/MANIFESTO.texi
deleted file mode 100644 (file)
index 4900adb..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@setfilename MANIFESTO.info
-@settitle MANIFESTO - Rationale behind the GNU LilyPond project
-
-@node Top, , Goals for mudela, (dir)
-@top
-@menu
-* MANIFESTO - Rationale behind the GNU LilyPond project::MANIFESTO - Rationale behind the GNU LilyPond project
-@end menu
-
-
-
-@node MANIFESTO - Rationale behind the GNU LilyPond project, Goals for LilyPond, , Top
-@menu
-* Goals for LilyPond::            Goals for LilyPond
-* Development constraints::       Development constraints
-* Goals for mudela::              Goals for mudela
-@end menu
-@chapter MANIFESTO -- Rationale behind the GNU LilyPond project
-
-
-@node Goals for LilyPond, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project, MANIFESTO - Rationale behind the GNU LilyPond project
-@section Goals for LilyPond
-
-GNU LilyPond was written with some considerations in mind:
-
-@itemize @bullet
-@item  Describing a well-defined language for defining music. We call
-    this language (rather arrogantly) The Musical Definition Language
-    (mudela for short). GNU LilyPond reads a mudela sourcefile and outputs a
-    TeX file.  
-@item  Providing an easy-to-use interface for typesetting music in
-    its broadest sense. This interface should be intuitive from a musical
-    point of view. By broadest sense we mean: it is designed for music
-    printed left to right in staffs, using notes to designate rythm and
-    pitch.
-@item Generating high-quality output. Ideally it should be of a professional
-    quality. We'd like to render Herbert Chlapiks words, "Fine music
-    setting is not possible without a knowledgeable printer,"  untrue.
-@item Making a system which is fully tweakable. It should be possible to
-    typeset a book on how not to typeset music.
-@end itemize
-
-@node Development constraints, Goals for mudela, Goals for LilyPond, MANIFESTO - Rationale behind the GNU LilyPond project
-@section Development constraints
-
-Further considerations while doing the programming
-
-@itemize @bullet
-@item GNU LilyPond uses TeX for its output. This is not a key issue: in a
-    future version, GNU LilyPond might bypass TeX, but at the moment TeX
-    is convenient for producing output.
-@item GNU LilyPond does not display notes directly, nor will it be rehacked
-    to be used interactively. GNU LilyPond writes output to a file.  It
-    will not be extended to play music, or to recognize music.
-@item GNU LilyPond is intended to run on Unix platforms, but it should
-    be portable to any platform which can run TeX and the GNU tools
-@item GNU LilyPond is free. Commercial windows packages for setting music are
-    abundant. Free musicprinting software is scarce. For more thoughts on
-    this, please consult the @file{gnu-music} documentation.
-@item GNU LilyPond is written in GNU C++. It will not be downgraded/ported to fit
-    broken systems.
-@end itemize
-
-@node Goals for mudela, Top, Development constraints, MANIFESTO - Rationale behind the GNU LilyPond project
-@section Goals for mudela
-
-The design of Mudela has been (perfect past tense, hopefully) an
-ongoing process, the most important criteria being:
-
-@itemize @bullet
-@item define the (musical) message of the composer as unambiguously as possible.
-    This means that, given a piece Mudela, it should be possible for a
-    program to play a reasonable interpretation of the piece.
-
-    It also means that, given a piece of Mudela, it should be possible for a
-    program to print a score of the piece.
-@item be intuitive, and easily readable (compared to, say, Musi*TeX input,
-    or MIDI :-),
-@item be easily writable in ASCII with a simple texteditor
-@end itemize
-
-Other considerations were (and will be):
-
-@itemize @bullet
-@item be able to edit the layout without danger of changing the original
-    music (Urtext),
-@item allow for adding different interpretations, again, 
-    without danger of changing the original,
-@item easy to create a conductor's score, 
-    as well as the scores for all individual instruments,
-@item provide simple musical manipulations, such as @emph{i} extracting a
-    slice of music from a previously defined piece, @emph{ii} extracting
-    only the rhythm from a piece of music, @emph{iii} transposing, etc.,
-@item easy to comprehend to both programmers and others.
-@end itemize
-
-One of the things that (might) be here would be: feasible to use in a
-graphic editor. We don't have experience with these beasts, so we
-don't know how to do this. Comments appreciated.
-
-Musical pieces could be
-
-@itemize @bullet
-@item Orchestral scores, (eg Mahler)
-@item piano pieces (eg. Schubert, Rachmaninov),
-@item pop songs (lyrics and chords),
-@item Gregorian chants,
-@item Bach multivoice organ pieces,
-@item Short excerpts to be used in musicological publications.
-@end itemize
-
-
-@bye
index f308cfe45b7752543a370d524b1b9bf193f7c83a..31afd58918931e48a4ca9f5b611d19b8aa72a262 100644 (file)
@@ -8,33 +8,29 @@
 @unnumberedsubsec Introduction
 
 @itemize 
-@item @uref{../topdocs/out-www/README.html, README}
-@item @uref{../topdocs/out-www/INSTALL.html, Installation Instructions}
-@item @uref{../topdocs/out-www/AUTHORS.html,The Authors}
+@item @uref{DEDICATION.txt,Dedication}
+@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}
 @end itemize
 
 
-
-
 @unnumberedsubsec Documentation
 
 @itemize @bullet
-@item @uref{faq.html,FAQs}
+@item @uref{faq.html,Frequently asked questions}, with answers
 @item @uref{programs.html,`Manual pages'}
 @item @uref{../user/out-www/index.html,User documentation}
 @item @uref{../metadoc/out-www/index.html,Hacker documentation}
 @item @uref{../bibliography/out-www/,Bibliography}
+@item @uref{../misc/out-www/index.html,Miscellaneous texts}
 @end itemize
 
 
-@unnumberedsubsec Miscellaneous blurbs
-
-
-@itemize @bullet
-@item @uref{TODO.txt, TODO list}
-@item @uref{CHANGES.txt,Change log}
-@item @uref{DEDICATION.html,DEDICATION}
-@item @uref{AIMS.txt,Why?}
+@unnumberedsubsec{Status}
+@itemize
+@item @uref{TODO.txt, Thing to do}
+@item @uref{CHANGES.txt, Things recently done}
 @end itemize
 
 
index f945a54105efaf09bdd5f71cfdf57556fd294102..24e4d58902d680d94c8675e471ba5e01b8530972 100644 (file)
@@ -162,10 +162,10 @@ Unfolded behavior:
 
 @mudelafile{repeat-unfold.ly}
 
-Semi (un)folded behavior.  Voltas can start on non-barline moments.
+Volta (Semi folded) behavior.  Voltas can start on non-barline moments.
 If they don't barlines should still be shown.
 
-@mudelafile{repeat-semifold.ly}
+@mudelafile{repeat-volta.ly}
 
 Folded.  This doesn't make sense without alternatives, but it works.
 
@@ -237,9 +237,19 @@ Loose:
 
 @mudelafile{spacing-loose.ly}
 
+Adding a @code{Bar_engraver} to the LyricsVoice context makes sure that
+lyrics don't collide with barlines.
+
+@mudelafile{lyrics-bar.ly}
 
 @section Global stuff
 
+Breaks can be encouraged and discouraged using @code{\break} and
+@code{\nobreak}.  They are abbrevs for @code{\penalty} commands.
+
+@mudelafile{break.ly}
+
+
 Markings that are attached to (invisible) barlines are 
 delicate: the are attached to the rest of the score without the score
 knowing it.  Consequently, they fall over  often.
diff --git a/Documentation/misc/AIMS b/Documentation/misc/AIMS
new file mode 100644 (file)
index 0000000..ae5d5a9
--- /dev/null
@@ -0,0 +1,92 @@
+[From a posting in rec.music.classical.guitar]
+
+I started coding on Lilypond because I am fascinated by music and by
+typography.  I have never used any egngraving software, and do not
+feel the need to investigate other programs, for the simple reason
+that I have no need of typesetting music.  In fact, I almost never use
+Lilypond. I believe that the largest thing I ever entered was Bach's
+WTK-I fugue 2, two pages of piano music.  I entered it about 1.5 years
+ago.
+
+I am fascinated by this complicated problem, typesetting music with a
+computer.  And that is why I started writing Lilypond: purely for the
+hack value, for the fun of coding.  To me, music notation is like a
+giant puzzle. I have been coding on Lilypond and studying music
+notation in my spare time for the past three years.  Since this is my
+hobby, strictly spoken I have no obligations concerning Lily, neither
+moral, nor legal.  Of course, I am open to pleas and requests and
+often do respond to them, but I have the choice to ignore them, and
+occasionally I do.
+
+Lilypond tries to typeset music *automatically*.  We (*) try to put as
+much of our knowledge of music typography into the program as
+possible, and have as little typographical information in the input as
+possible.  Basically, you ought to be able to produce nicely printed
+scores with Lilypond without knowing anything about engraving.
+
+       footnote (*): We = me and Jan Nieuwenhuizen, who wrote about
+       30% of the code, and provided most of the examples.)
+
+A second important issue is that Lilypond is free. Not only in the
+sense that you can download Lilypond at no charge, but it is also free
+as in "free speech".  User are free to modify the program to suit
+their needs, and redistribute or sell the program.  Moreover, since
+the program can be downloaded at no cost, I don't gain anything if it
+gets more users.  And here I mean "use" as opposed to "use and
+enhance" or "use and give helpful comments".
+
+We have not made a program for professionals, and as a result, hackers
+have begun to use it.  Some of them have sent me modifications that
+improve the software.  This is good for us, because it helps us solve
+our puzzle more quickly.  We would have made the program useful for
+professionals like you, presumably they would start using it, be glad
+they didn't have to pay, and ignore me.  That would not help me solve
+my puzzle; I don't gain anything.
+
+The system has reached a point that it is useful for quite a lot of
+people (we get about 200 downloads per month from the main FTP site),
+and a lot of my users have thanked me for rescuing them from tedious
+typesetting work using Finale, Encore and what-have-you-more.  I have
+a user in Russia who tries make a living by typesetting a 260-page
+book on harmonic-theory using Lilypond.  I have a user that can
+typeset his own 45 page orchestral score.  Laymen have called our
+printout of the Bach Cello Suite 2 of "professional quality".
+
+This program is now useful to more people than a program solely aimed
+at professional use.
+
+Obviously, we're not finished yet, since the program still contains
+quite a lot bugs.  We know the examples on the website contain lots of
+errors.  Tweaking the input to fix up and hide the errors would cost
+us a lot of time. Time that is better spent improving the program
+itself. So, we don't hide the errors.
+
+Most of the errors that are shown on the website are not caused by our
+lack of knowledge, but rather by a lack of time and the sheer
+complexity of this big puzzle we're solving.
+
+In the end, we also want a system that is fully tweakable, so you can
+also produce professional quality typesetting.  But being
+straightforward to use for non-professionals is more important now.
+
+Finally, I would like to stress that my goals while programming on
+LilyPond are separate from my beliefs of what should be done with the
+program. I can not control what the program is used for, nor do I want
+to. People can typeset lullabies for their baby daughters or racist
+warsongs to help fascist leaders.
+
+A fortiori, I can not control what copyright users place on their
+input and output.  If you want to do commercial music editing (with
+LilyPond) you can publish scores on paper and keep the input and
+output to your self.  You can publish the score online, and keep the
+input to yourself.  You can put the input online as well, while
+forbidding modifications.  You can publish the input and allow
+modifications.
+
+This is all up to the user of the software, not to me.
+
+
+Han-Wen Nienhuys,
+
+April 11, 1999
+
diff --git a/Documentation/misc/ANNOUNCE-0.1 b/Documentation/misc/ANNOUNCE-0.1
new file mode 100644 (file)
index 0000000..8ed22c9
--- /dev/null
@@ -0,0 +1,165 @@
+Keywords: midi notation music typesetting gnu
+Subject: LilyPond 0.1 released - The GNU Project music typesetter
+
+       BORN
+
+       August 1, 1997
+
+               Lily
+
+               (GNU LilyPond 0.1)
+
+       daughter to Jan 'Janneke' Nieuwenhuizen and Han-Wen 'Wendy' Nienhuys
+
+Lily is a healthy, bouncing baby weighing 345 kilobytes
+
+Visiting hours: 24 hours a day at
+
+       ftp://pcnov095.win.tue.nl/pub/lilypond/lilypond-0.1.0.tar.gz (Europe)
+       ftp://alpha.gnu.ai.mit.edu/gnu/lilypond-0.1.0.tar.gz (US)
+
+You can see some babyfood, diapers and pictures at
+
+       http://www.stack.nl/~hanwen/lilypond/index.html
+
+You can send your congratulations to Janneke (janneke@gnu.org) and
+Wendy (hanwen@stack.nl)
+
+
+GNU LilyPond - The GNU Project Music Typesetter
+
+
+
+``WHAT IS GNU LilyPond?''
+
+Well Mike, GNU LilyPond is a program which converts music definition
+files into visual or auditive output: it can typeset formatted sheet
+music to a TeX file and (mechanical) performances to MIDI files.
+
+
+We have been working very hard on this system for the past year, and
+we finally think that it is ready to be used and hacked at by a larger
+public than us. 
+
+
+WHY ?
+
+We want to create tools to produce production quality scores and parts
+of public domain music.
+
+
+BUT ..
+
+We haven't yet reached that goal:
+
+* The quality of the output isn't good enough yet due to some
+unsophisticated algorithms
+
+* Some features haven't been implemented, due to lack of time; most of
+them can be done quite simply
+
+This is why we don't consider this software stable yet. It generally
+does what it is supposed to, but we reserve the right to make
+(incompatible) changes to the input format.  We consider it
+of BETA quality.
+
+
+WE WANT YOU!
+
+You can become a user, but we'd really appreciate it if you would start 
+hacking at Lily, and help us advance our project more quickly.
+
+
+``YES, IT IS FANTASTIC! WHAT DO I NEED?''
+
+For compilation you need
+
+       Unix. (windows32 is known to work, too)
+       GNU C++ v2.7 or better, with libg++ installed.
+       GNU make. 
+       Flex (2.5.1 or better). 
+       Bison. (1.25 or better)
+
+For running you need
+
+       TeX
+       MusiXTeX fonts
+
+The MusiXTeX fonts are part of the MusiXTeX package version T.73,
+available at any CTAN mirror, or http://www.gmd.de/Misc/Music/ 
+
+
+``WHAT CAN LILYPOND DO?''
+
+ASCII script input (mudela), with identifiers (for music reuse),
+customizable notenames.
+
+MIDI output lets you check if you have entered the correct notes.
+MIDI to Mudela conversion through the mi2mu program.
+
+Multiple staffs in one score. Each staff can have a different meters.
+Multiple voices within one staff (up to four handled graciously);
+beams optionally shared between voices.  Multiple scores within one
+input file. Each score is output to a different file.
+
+Beams, slurs, chords, super/subscripts (accents and text), 
+general n-plet (triplet, quadruplets, etc.), lyrics, transposition,
+dynamics (both absolute and hairpin style), clef changes, meter
+changes, cadenza-mode, key changes, repeat bars.
+
+Integration with LaTeX through Perl scripts.
+
+
+``WHERE CAN I FIND MORE INFO?''
+
+Sources for this project are on
+
+       ftp://pcnov095.win.tue.nl/pub/lilypond/ (Europe)
+       ftp://alpha.gnu.ai.mit.edu/gnu/ (US)
+
+More detailed info and examples can be found on the webpage at
+
+       http://www.stack.nl/~hanwen/lilypond/index.html
+
+
+THANK YOU,
+
+Thanks go out to Mats Bengtsson, Werner Lemberg and Richard Stallman
+for comments and contributions.
+
+
+****   NOTE
+
+LilyPond might have a minor bug if  you use glibc-2; we will look into it
+If you use glibc-2, please try 0.1.0 to see if it works and, download 0.1.1
+when it's available.  
+
+LilyPond might exhibit a g++ bug on Solaris 1.5 (The stack frame gets corrupted
+by a constructor) if you compile with -O2. We don't know workarounds.  
+
+                             --- * ---
+
+    We would like to dedicate this program to all the friends that we
+                        met through music. 
+
+
+       Those deserving special mention (in no particular order):
+Esther, Marijke, Heike, Inge, Judith, Hannah, Auke, Ilse, Evelyn,
+Maartje, Suzanne, Ilse (gee, again?) and last (but certainly not least)
+Janneke!
+
+       HWN
+
+       That's a nice thought, Wendy.  I've got a few too, to spread
+the credits a bit (Again, no particular order) Michelle, Illushka, 
+Ruth, Eva, Fro/ydis, Monique, Noor, Sascha, Monique, Ilse, Monique, 
+Eva, Roos, Judith, Tim and, of course, Wendy!
+
+       JCN
+
+Of course, our other friends in the `Eindhovens Jongeren Ensemble'
+(http://www.stack.nl/~hanwen/eje.html) cannot go unmentioned either.
+
+
+                              --- * ---
diff --git a/Documentation/misc/ANNOUNCE-1.0 b/Documentation/misc/ANNOUNCE-1.0
new file mode 100644 (file)
index 0000000..33190c9
--- /dev/null
@@ -0,0 +1,102 @@
+Keywords: midi notation music typesetting gnu font engraving 
+Subject: GNU LilyPond 1.0 released - The Music Typesetter
+
+GNU LilyPond - The Music Typesetter
+
+
+WHAT IS LilyPond?
+
+LilyPond is the GNU Project music typesetter.  This program can print
+beautiful sheet music from a music definition file.  It can also play
+performances to a MIDI file.
+
+
+WHAT'S NEW SINCE VERSION 0.1?
+
+* LilyPond now includes a completely new music font: the Feta font.  
+  We were quite disappointed with available music fonts, so we rolled
+  our own.  We did our best to copy the best symbol designs available,
+  and we think that we've succeeded in doing so.  We're proud of the
+  result, and we hope you agree, so go check it out!
+
+* More elegant output due to 
+
+       * more sophisticated beam/slur formatting
+       * better spacing
+       * better line breaking
+       * better font design
+       * PostScript output for variable symbols
+
+* Lots of bugfixes
+
+* More robust, flexible and tweakable design
+
+* Better MIDI file importing
+
+* Easier to use due to better shell scripts and input format
+enhancements
+
+* MusixTeX is not needed anymore
+
+* Faster
+
+
+
+FEATURES
+
+* Multiple staffs, polyphonic music (more voices on one staff),
+Polymetric music.
+
+* Support for full orchestral score: Hara_kiri systems (lines with
+only rests are automatically skipped), multi-measure rests, bar
+numbering, brackets at the left.
+
+* Optimal beam slopes, slur/notehead collision resolution, dashed
+slurs. Formatting parameters are runtime tunable
+
+* Very beautiful symbols.  Variable size symbols generated on the fly
+as embedded postscript.
+
+* MIDI output
+
+* Optimal linebreaking, manual intervention possible.  Linelength is
+settable per line.
+
+* Readable yet very fast to type input language.  With configurable
+note names and identifiers.  Comes with an emacs-mode
+
+* With lots of examples (among others a fragment of Van Beethoven's
+Coriolan, J.S.Bach Cello Suite II, F. Schubert "Leise flehen meine
+Lieder")
+
+* Runs on UNIX and Windows-32.
+
+* Easy generation of titling.
+
+* WWW browsable documentation.
+
+* Support for Urtext: separation of modern and original interpretation.
+
+* Polyphonic music (with automatic collision resolution)
+
+* Spacing and collision resolution of accidentals and syllables is
+done automatically
+
+* Internationalisation support (Italian, Dutch)
+
+* Multiple font sizes within one piece
+
+* Integration with LaTeX and YODL
+
+
+MORE INFO
+
+Sources for this project are on
+
+       ftp://pcnov095.win.tue.nl/pub/lilypond/ (Europe)
+       ftp://ftp.gnu.org/pub/gnu/
+
+More detailed info and examples can be found on the webpage at
+
+       http://www.cs.uu.nl/~hanwen/lilypond/index.html
+
diff --git a/Documentation/misc/ANNOUNCE-1.2 b/Documentation/misc/ANNOUNCE-1.2
new file mode 100644 (file)
index 0000000..ec9bef6
--- /dev/null
@@ -0,0 +1,62 @@
+-*- text -*-
+
+
+Keywords: midi notation music typesetting gnu font engraving 
+Subject: GNU LilyPond 1.2 released - The Music Typesetter
+
+GNU LilyPond - The Music Typesetter
+
+
+WHAT IS LilyPond?
+
+LilyPond is the GNU Project music typesetter.
+
+LilyPond produces beautiful sheet music using a high level description
+file as input.
+
+
+BROWSE
+
+Documentation and examples can be found on
+
+       http://www.cs.uu.nl/~hanwen/lilypond/
+
+       
+DOWNLOAD
+
+Sources for this project are on
+
+       ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/v1.2/ (Europe)
+       ftp://ftp.gnu.org/pub/lilypond/
+
+Prepackaged i386 and PPC packages for both Debian and RedHat GNU are
+also available.
+
+
+WHAT'S NEW?
+
+* Large cleanups, enhanced design and GUILE integration for smaller
+  memory footprint and more flexible code.
+
+* Direct output to PostScript (optional), PDFTeX or as GUILE script
+  (default output still to plain TeX).
+
+* Convertors for ABC and MUP formats.
+
+* Font: now available as scalable PostScript.  New glyphs: time
+  signature, more note heads.
+
+* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested)
+  repeats, chordnames, automatic Lyrics durations.
+  
+* Grace notes, volta brackets, multiple styles for note heads and 
+  time signatures, breathing signs, lyric extenders, cross staff 
+  beaming and slurring.
+  
+* --safe option for the paranoid.
+
+* More elegant spacing.  Text is spaced exactly.
+
+* Lots of bugfixes.
+
+
diff --git a/Documentation/misc/CHANGES-0.0 b/Documentation/misc/CHANGES-0.0
new file mode 100644 (file)
index 0000000..f936254
--- /dev/null
@@ -0,0 +1,1170 @@
+
+This file documents changes in version 0.0
+
+august 1
+
+VERSION 0.1.0
+       
+       - bf: output tempo to track 0 too
+       - bf: don't forget to copy id_str_, so moved  into Music
+
+pl 78.jcn2
+       - INFTY doze fixes
+
+pl 78.jcn1
+       - fix for multi-staff midi: wohltemperirt.ly, standchen.ly
+       - doze fixes
+       - bf: conflily, configure (text)
+*****
+july 31
+pl 78
+       - bf: Midi_instrument 
+       - added  enable/disable defaults to help.
+       - incredibly ugly NAME_MEMBERS(); bug. Immediately changed to 
+DECLARE_MY_RUNTIME_TYPEINFO;
+       - \stem -1 -> \stem \down in input      
+       - bf: slurchar index
+       - configure warnings 
+       - preliminary stuff for multiarch building
+       - #!/usr/bin/perl fixes (AO)
+       - some Makefile cleanups: now faster.
+
+pl 77.jcn2
+       - Midi_instrument
+
+******
+july 29
+pl 77  
+       - some fixes for internal compiler errors 
+derive from Pointer_list with default dtor gives error with -O2
+       - .ini -> .ly
+       - lyrics fix 
+       - Performer beautification: got rid of set_track(), midi_output()
+       - pseudo RTTI for midi-items
+       - bf: Performer*::print() 
+       - links.pod
+       - Voice_element -> Request_chord
+       - fixed flex problems: stdin input works again 
+       - Documentation/Rules.make, make-website via make
+       - spacing: now add basicspace
+
+*******
+july 28
+pl 76
+       - mudela version bumped to 0.1
+       - mudela-book
+       - doco updates, now some stuff in LaTeX
+       - junked book.{ly,tex} example
+       - progress indicator
+       - rhythm.ly updated
+       - removed mf sources from distribution due to (c) stuff
+       - allowal of breaks handled cleanly
+       - junked Subtle_reqs, junked Request_iterator. Request
+       iteration now by Voice_element_iterator
+       - Piano_bar, Piano_bar_engraver, Span_score_bar_engraver, 
+       Span_score_bar
+       - Swallow_performer
+       - removed  Staff_engravers, grouping into Line_group_engraver
+       - Head_column as base for Rest_column,Note_column
+       - Score_column derived from PCol
+       - regurgled Line spacing: interface and implementation
+       separate. Idealspacing moved into Spring_spacer
+       - Gourlay style linespacing
+
+pl 75.jcn6
+       - {lyric,meter,key}-performer
+       - span-brace-* (Removed again. Such is life)
+       - doze compile
+       - midi output, notes only
+       - working midi output -- hacked
+       - doze compile, mingw32 configure (still triggers gcc int. comp err)
+
+pl 74pre.jcn2
+       - mi2mu fixes after scott snyder <snyder@d0sgif.fnal.gov> [sss]
+       - mi2mu update for mudela 0.0.61
+       - conflily fixes
+
+*******
+july 21
+
+pl 75
+       - inbook.ly & book.tex example.
+       - natural width: linewidth = -1.0\cm
+
+pl 74pre.jcn1
+       - oversimplified midi output thru performer hierarchy
+       - bf: Spanner::doprint
+
+pl 72pre.jcn1
+       - naming fixes; some iter*() explicitations
+        - removed acceptor.hh
+       - *performer*: second draft of midi (audio/...)
+
+*******
+july 9
+
+pl 74pre
+       - Input_engraver -> Input_translator
+       - bf: span start/stop is now a "used" col.
+       - Rest_column/Rest_collisions bugfixes
+       - bf: crescendi.
+       - Spanner do_print()
+
+******
+july 7
+pl 73pre
+       - some refs doco.
+       - move Input_engraver into Paper_def
+       - junk Interpreter
+       - naming: Request_engraver -> Engraver, 
+       - Music_iterator::next() -> process_and_next()
+       - junk Voice_engravers
+       - Span_bar, Span_bar_engraver
+       - Vertical_align_engraver
+       
+*******
+july 2
+pl 72pre
+       - \paper{} syntax: var = 1.0\pt;, with an Assoc array
+       - sketch of MIDI Performer classes.
+       - bf: memleak in parser
+       - naming: Acceptor -> Translator
+       - input: bf collisions.ly, scales.ly
+       - bf: [r8 c8]
+       - naming: Register -> Engraver
+       - force \\ on identifiers
+       - doco updates
+       - musixtex T73 fonts
+
+pl 70.mb
+       - bf: find syntax in Variables.make
+*****
+july 1
+pl 71pre
+       - nested \melodic and \lyric constructs
+       - init id's, Input_register aliases.
+       - bf: notehead x-swap 
+       - bf: auto-keys.
+       - bf: first clef
+       - junked \init_end; construct
+       - Preparatory work for MIDI output:
+               * Acceptor as baseclass for Register_group_register
+               * Global_acceptor as interface of Register to Score
+       - bf: empty voice
+       - Lyrics: partially working
+       - some doco updates (junks, mostly)
+
+
+******
+june 30
+
+
+pl 70pre
+       - bf: text Script
+       - bf: Script::dir_i_ checks.
+       - bf: script stacking
+       - bf: Text_spanner::do_subst.
+       - bf: Text_spanner::Text_spanner(Text_spanner&)
+       - bf: script priority read from script.ini
+       - bf: Script_def::do_equal_b
+       - bf: script dims.
+       - mudela: ; obligatory for \paper {}.
+       - some cosmetic changes involving RTTI macros
+
+*******
+june 29
+pl 69pre
+       - bf: whole rest position, whole/half rest dots.
+       - bf: scripts
+       - reg termination
+       - centered bars
+       - bf: init of Tie::dir_i_ 
+       - bf: Staff_side depends on staff_sym_
+       - bf: Script::do_substitute_dependency() now implemented
+       - more print info (also in output)
+       - bf: Vertical_align_element
+       - stemless beams now allowed (with warning)
+       - bf: Rest_column::stem_l_ init
+       - merge rests.ly with collisions.ly
+
+pl 67.jcn3
+       - rests under beam [c8 r c]
+
+pl 67.jcn2
+       - first attempt at rest collisions
+       - rests.ly
+
+pl 67.jcn1
+       - beam stem length: beams.ly
+       - bf: mingw configure
+       - re: conflily
+
+******
+june 26
+pl 68pre
+       - doco: other-packages.pod, lots of lilyliterature.pod
+       - last duration mode now is default.
+       - some OpusTeX stuff.
+       - bf Y2K in convert-mudela
+       - Grand rewrite of Music/Register stuff:
+         * separation of Y and X-elt-groups
+         * Registers: info up: broadcasts, info down: get_xxx_info()
+         * Registers: try_request works from bottom to top of tree.
+         * Score_elem empty_b_ and transparent_b_ flag
+         * Junk Staff_column, and find the requests while walking the
+         Voices.
+         * Score_register
+         * Staff_group, Score_request_register.
+         * align key/Meters/bar across staffs
+         * junked Staff, Staff_column, Staff_walker, Complex_walker,
+           Request_column Pulk_voice, Pulk_voices, Walker_registers,
+           Voice_element, 
+           Input_score, Input_staff, Input_music and a lot of
+           parserjunk.
+         * mudela: lots of structure changes : now much simpler
+         * generation of pre/postbreak items now in Score_elem with deps.
+       
+       - bf: make_patch explanation
+       - bf: make install TeX stuff
+       - mudela: . mandatory for REALs
+
+
+pl 67
+       - damped beamslope after wanske
+
+******
+june 3
+pl 67
+       - sketch of Music classes
+       - General_script_def as baseclass for Text_def and Script_def
+       - bf: clean lib/out/liblily.a
+       - bf: rests shorter than 1/4
+
+pl 66.jcn3
+       - bf: make uninstall
+       - conflily
+       - f: some pedaling
+       - plet hack removed :-( [ c c c ]2/3 -> [2/3 c c c ]1/1
+
+pl 66.jcn2
+       - bf: bar, Hilfslinie
+       - bf: configure for mingw32
+
+pl 66.jcn1
+       - WIN32 -> WINDOWS32, more win32->windows32
+       - some GNU/Linux changes
+       - cygnus b18 / mingw update
+       - doze compile; bf: p-score.cc compares
+       - reincluded toccata fixes
+       - small stuff: vi tags, typos, bibl
+
+******
+may 27
+pl 66
+       - make_website --jpeg, --png and --gif
+       - win32 -> windows32
+       - bf: Score_elem::TeXstring assert fail
+       - bf: headswap with stemdown
+       - bf: broken tie
+       - bf: broken slur
+       - bf: accidental dims
+       - bf: measure bar width
+       
+
+******
+may 26
+
+pl 65
+       - bf pathfind /root/file
+       - massive Score_elem rewrite:
+         * group_element_i_ count
+         * support for removing an individual Score_elem cleanly.
+         * moved dep stuff into class Directed_graph_node
+         * Score_elems can be copied and deleted freely.
+         * junk PStaff
+         * Spanner_elem_group
+         * Line_of_{score,staff} now are Score_elems
+         * clean dep handling upon deletion
+         * delete unbroken spanners
+         * added a break_processing round.
+         * Super_elem
+       - junk Complex_staff, 
+       - clean {lily}?proto.hh
+       - Element_group
+       - Score_elem now as virtual base class everywhere
+       - naming: Staff_elem -> Score_elem
+       - bf: make in toplevel dir
+       - bf: broken tie y-pos
+       - bf: sharing 4th, 8th and 16th noteheads 
+       - bf: overlapping chords. <\multivoice c d >
+
+pl 64.wl
+       - new stem direction code
+       - bfs: wohltemperirt.ly (thanks, Werner)
+       - bf: stem direction
+
+pl 63.jcn2
+       - doze compile
+
+pl 63.jcn1
+       - bf: mi2mu mudela commands
+       - bf: mi2mu tracks
+       - mi2mu quantify tuning
+       - mi2mu TODO
+
+*********
+may 16
+pl 64
+       - exe's now built in out/
+       - toplevel Makefile dep from make/Toplevel.make.in
+       - make_website: add version footer
+       - make_website: bf dist *.txt
+       - bf: fix loose bars :  \meter 4/4; c1.  
+       - Staff_elem -> Score_elem
+       - bf <cis cis>
+       - vbrace lookup
+       - resync barcheck
+
+*******
+
+may 15
+pl 63
+       - bf: segfault during MIDI output  with mi2mu output.
+       - kludge: parse error beyond eof
+       - don't read ini if toplevel file not found
+       - accumulate \kern in TeX output.
+       - bf: try to prevent long lines; TeX breaks on them.
+       - naming: Pointer->Link, IPointer->Pointer
+       - bf: \plet didn't work (MB)
+       - GMP manifesto.
+
+pl 61.jcn4
+       - mi2mu -p -s16 fugua2.midi getting better!
+         plus factor 2 mi2mu speedup (fugue2.midi 5.50user)
+       - bf: Duration_convert quantify threshold down
+       - bf: (on quantify): tcols quantified; no silly voices
+
+pl 61.jcn3
+       - lily parsing speedup: backup rules for lexer.l
+       - bf: mi2mu, using midi_voice list...
+
+pl 61.jcn2
+       - all in all mi2mu speedup of about factor 8 since pl61
+        (fugue.midi 82.72user to 10.30user on a 586.133)
+        what about lily?
+       - binary search on track-columns
+       - mi2mu IP*list to Array (implications?!) conversion
+       - mi2mu parsing speedup: backup rules for midi-lexer.l
+       - bf: zero denominator
+
+**********
+may 14 
+pl 62
+       - make clean bf: remove lex & yacc files too 
+       - added kludge in case measure too long 
+       - added kludge in case of unconnected columns.
+       - kludged columns get error marker
+       - kludged lines get error marker
+
+
+pl 61.jcn1
+       - smarter + faster duration-convert using Array
+       - bf: mi2mu compilation/duration-conversions
+       - lots faster mi2mu, hopefully does type 1 too...
+pl 60.jcn1
+       - mi2mu handles non-quantified rests, try mi2mu -b wtk-i/fugue2.midi
+
+
+       
+**********
+pl 61
+       - scales.ly bugfix: dimensions default to ((0,0), (0,0))
+       - naming: PointerList->Pointer_list
+       - tied notes don't get accidental
+       - bf: crescendo size
+       - fixes: make_patch,
+       - bf: _"text" direction
+       - mailing list into lilypond.pod
+
+pl 60.mb
+       - set_flower_debug: Warning if -d is used when NPRINT is defined.
+       - Fixed several TeX details. vcenter renamed since it interfered
+         with LaTeX. Position of accents changed.
+       - New example; scripts.ly
+       - table_sixteen: added scriptdefinition (Lilypond breaks if a
+         script is defined without dimensions).
+       - bf: ifndef typos in p-score.cc, choleski.cc
+       - bf: Slur::do_post_processing(), whole notes caused SIGSEGV.
+
+(ascension break :-)
+*******
+pl 57.jcn4
+       - mi2mu handles rests (quantified only)
+       - fixed configure buglet
+        - "!date" Fri May  2 02:18:12 MET DST 1997
+
+pl 60
+       - Request_register::get_feature(), tie direction, Slur direction
+       - lilypond output is now directly texable. 
+       - make_website checks return status
+
+*******
+may 5
+pl 59
+       - Slur now into voicegroups, and take stems into account.
+       - bf: rest size in table.
+       - split Slur in baseclass Bow
+       - Tie, Tie_req, Tie_register
+
+******
+may 2
+pl 58.jcn1
+       - bf: toccata-fuga-E.ly
+
+pl 57.jcn4
+       - mi2mu handles rests (quantified only)
+       - fixed configure buglet
+        - "!date" Fri May  2 02:18:12 MET DST 1997
+pl 58
+       - lexer cleanup
+       - national chars in lyrics
+       - \stem 2; bf
+       - long comments: %{ %} 
+       - *.ini mode bf
+       - bf: partial may be everywhere
+       - bf: meterchange not at start of measure
+       - some doc updates
+       - bf: stem too long if stem is down.
+
+pl 57.jcn3
+       - dank je schat, voor wtk-i
+       - mi2mu tries to handle rests
+        - "!date" Thu May  1 02:34:04 MET DST 1997
+       - maak je het niet te laat schat?
+         XXXX HWN
+
+pl 57.jcn2
+       - small toccata-fuga-E.ly fixes
+       - \bar "||"; is now doublebar, "|." is finishbar
+       - collision hshift fix, with on-line assistance
+******
+pl 57
+       - lots of TODO doco
+       - text alignment bugfix
+       - bugfix Voice_group_regs::get_register_p() now is actually called too
+       - bugfix init  of Text_item::pos_i_
+
+pl 56.jcn1
+       - toccata-fuga-in-E.ly, excerpts with real-life collisions
+       - \{l,r}{b,f}{toe,heel} --- using cmsy fonts...
+       - pedal.ly 
+
+pl 55.jcn1
+       - mi2mu man page
+       - make doc fixlet
+       - \[lr]heel \[lr]toe scripts (happy pedal studies, pa)
+       - lyric with width
+       - removal of some example files
+
+pl 56.mb:
+       - last duration fix
+       - makefile fixes
+       - space rest
+       - swedish note name update
+
+******
+pl 56
+       - Massive Rest/Stem/Collision/Note_column rewrite: resolve
+notehead/rest ambiguities and bugs. eg, [c8 r8 c8] 
+
+pl 54.jcn1
+       - standchen.ly: repeats; lyricii to end
+       - convert-mudela: help + usage
+       - fixed midi key/meter-change (triggered by martien.ly) bug
+
+******
+April 23
+pl 55
+       - staff-side robustification
+       - script-on-rest bug
+       - doc update
+       - transpose syntax
+******
+pl 54
+       - bugfix Colhpos.cc::OK assert fail.
+       - Inclusion of MusixTeX MF files, 
+       - detection of MF dir
+pl 53.hwn
+       - stacked lyrics 
+       - configure/make buglets.
+******
+pl 53
+       - spurious accidental bug.
+       - simultaneity check.
+       - added AUTHORS.pod
+       - convert-mudela auto from guess
+       - include -> \include
+       - change order of opening parse/init file 
+       - Pulk_voice, Pulk_voices
+       - Request_column
+       - revised request-from-voice extraction. Now much faster
+
+******
+april 17
+pl 52
+       - Buildroot RPM
+       - tex-prefix and tex-dir sep'd (here you are jan)
+       - convert-mudela framework
+       - Collision_register, Collision
+       - \hshift 1; input
+       - Features changed
+pl 50.jcn1
+       - LILYINCLUDE dir searched before DIR_DATADIR(?)
+       - lily reads from stdin again (but does not now when to stop)
+******
+pl 51
+       - transposition bugfix + doco
+       - LilyPond -> GNU LilyPond
+       - bugfixes for Staff_side and Note_column*
+       - wohltemperirt: complete
+
+******
+april 11
+
+pl 50
+       - merge rest / notehead.
+       - Staff_side as a base class for most "staff-side" symbols.
+       - version check
+       - Note_column_register, Note_column
+       - multiple scripts
+
+********
+april 8
+pl 49.jcn1
+Bugfix
+       - configure[.in], make/Configure_variables.make.in c++ (=doze fix)
+       - "configure; make" ok for doze, win32 target may be removed now
+       - win32/gcc 2.7.2 compile fixes -- why does this all compile 
+           (without warnings, why can-t i even trigger warnings) under 
+           linux/gcc-2.7.2.1?  it's quite a tedious job fixing this 
+           shit _on doze_ all the time.
+           * fixed #includes global-regs.cc, staff-info.cc, staff.cc
+           * key.hh:Key() -> Octave_key()
+           * added missing lily/include/input.hh: Input( Input const& )
+       
+pl 49
+       - lsm template
+       - clef in cadenza mode.
+       - notename clear
+       - \command bla; for \meter, \clef, \octave etc.
+*******
+pl 48
+       - notenames init
+       - Duration order -> grouping
+       - broken key s
+       - default octave
+
+******
+april 3
+pl 47
+       - dynamic flowerlib
+       - Input mods: now use Source_file iso Sources
+       - makefile lib deps restructured
+       - make_website now produces in out/
+
+pl 46
+       - examples.pod
+       - LILYINCLUDE env var.
+       - push/popgroup
+       - website updated
+       - Swallow_register
+       - Lyric_register.
+       - Staff_sym_register
+       - user settable register config
+       - struct Input now used iso defined_ch_C_
+       - Walker_registers and Staff_registers separated
+       - dynamic-reg -> hairpins
+
+pl 44.jcn2
+       - doze configure/compile fixes
+       - doze make refixed
+       - faq
+       - install mudela manpage too
+       - RedHat spec lilypond.spec fixed
+       - target: rpm (make RedHat packages)
+
+******
+Mar 26
+pl 45
+       - Removing unused Voice_regs & Voice_groups
+       - -O2 bugfix
+
+pl 44.jcn1
+       - merged 42.3 42.jcn4 code trees (see stuff below)
+       - moving towards Mudela 0.1 (again)
+           * keyword "music" dropped for horizontal music
+           * keywords "\lyric" "\melodic" introduced, e.g.:
+               melody = \melodic { c c | g g }
+           * removed level of indirection:
+               - staff initialisable with music identifier list: 
+                   \staff{ global melody }
+               - \score and staffs alike
+       - gnu standard(?) help texts
+       - configure "creates" toplevel Makefile from make/Toplevel.make
+
+Bugfix
+       - fixed mi2mu
+       - write meter to track0 too...
+       - default octave
+       - new Sources in My_midi_lexer: sourcefile_p_ = get_file_l(): oeps.
+         (ain-t hungarian grand?)
+
+Examples
+       - updated for mudela 0.1
+
+******
+pl 44
+       - naming: _c_l -> _C
+       - pure parser, My_lily_parser
+       - ''a iso ``a
+       - Includable_lexer
+       - junk Input_file
+       - Duration in parser, Duration restructuring
+       - grandiose lexer hax. Flex should be fixed, really.
+       Lexer much faster now.
+       - opps. mi2mu broken
+
+******
+pl 43
+       - transposition.
+       - $variable&@name 
+       - warnings if incorrect mode
+       - missing scsii measure
+       - declaration used check.
+       -
+
+pl 42.jcn4
+       - lily writes midi meter/key changes from requests
+       - mi2mu: 
+         + write mudela 0.1
+         + write bar change requests
+         + more tunable quantisation
+
+Examples
+       - half-new-menuetto.ly converted to mudela -almost- 0.1
+       - new mi2mu of bach's wtk pre1/fugue1
+
+pl 42.3 (jcn version)
+        - oeps, branched source tree
+
+pl 42.hwn3
+       - const naming change (T const <-> const T)
+       - Mudela 0.1 (roughly the same as below..)
+
+pl 42.3
+       - moving towards Mudela 0.1:
+           * all keywords must be preceded by backslash '\'
+           * explicit lexer switches '$' and '@' dropped
+           * keyword "music" dropped for horizontal music
+           * keywords "\lyric" " introduced, e.g.:
+               melody = \melodic { c c | g g }
+           * staff initialisable with music identifier: 
+               \staff{ melody }
+           * chords: < c e >
+           * octavate ''c`` 
+           * \meter{ 2/4 }
+           * \octave{ ''`` }
+        - configure sets CXX (to c++, commonly)
+Internal
+       - renamed lexer.hh, mylexer.cc My_flex_lexer to my.lily.lexer.*
+
+pl 42.2
+       - new lilyinput (Mudela 0.1) doc.
+Examples
+       - new-twinkle.ly (in Mudela 0.1, hopefully)
+
+pl 42.1
+       - further Makefile revamping.
+       - moved flowerlib
+
+*******
+pl 42
+
+
+pl 41.hwn3
+       - struct Lexer_prefs
+       - parser bug
+       - make uninstall
+
+pl 41.hwn2
+       - make file rehack
+       - spec update
+       - make install
+       - detect TeX directory
+
+pl 41.hwn1
+       - cygnus configure,
+       - updated versioning 
+       - install.pod
+  
+pl 41.jn1
+Bugfix
+       - doze compile
+*******
+pl 41
+       - release
+
+pl 40.3
+       - all of the above
+       - hw's configure.in
+       - p-name.xx fixes
+
+pl 40.hwn1
+       - hairpin dynamics
+       - notename now as identifier. Parser/lexer cleanup
+
+pl 40.2
+       - mi2mu --blonde-durations, --no-silly options.
+       - mi2mu starts to look promising, see examples
+Examples
+       - pre1.midi.ly, fugue.midi.ly
+Internal
+       - Duration handles blonde midi-durations
+       - More settings for Duration_convert
+       - lily writes meter too (ugh, howto?)
+Bugfix
+       - mi2mu auto track number fix
+       - mi2mu / lily Midi_tempo fixed/added
+
+pl 40.1
+Bugfix
+       - lily midi output track 0 name
+       - mi2mu tempo fixed
+       - make out/make and out/make/Site.make in configure script!
+       - mi2mu double newline fix
+
+
+******
+Mar 11
+pl 40
+       - release
+
+pl 39-5
+       - own versioning for mi2mu: 0.0.10
+       - some file renaming mi2mu
+pl 39-4
+       - all of the above
+
+pl 39-hwn2
+       - last bar bugfix
+Internal
+       - simple dynamics
+       - experimental RPM spec.
+       - doco update.
+
+pl 39-3
+       - all of the above
+       - m2m renamed to mi2mu
+       - better line breaking in mi2mu
+       - (somewhat broken) progress indicator for mi2mu 
+       - mi2mu output === lily input (in names and durations,
+         always assuming voices > 1 though)
+
+Bugfix
+       - midi: note on/off only once per pitch per track 
+         (sending all note-on events introduces cool mi2mu feature)
+       - make clean removes deps too
+       - mi2mu notename/accidental/octave, and key fixed
+
+Internal
+       - auto create of out-dirs, config headers, using tag file .GENERATE
+
+Examples
+       - stanchen.ly debugged
+
+pl 39-2
+       - configure script help and in topdir again, duh.
+       - auto configure upon virgin make
+       - configured makefile stuff in make/out/
+
+
+********
+pl 39-1
+       - doze target (for 16 bit dos xcompiler: gcc-go32)
+Internal
+       - make/User.make; C..FLAGS sorted out
+Bugfix
+       - make clean...
+
+pl 39
+       - new make structure, featuring:
+           * top-level/sub-level build
+           * auto custom-library dependencies/build
+           * top-level/sub-level dist
+           * minimal(? can even smaller) specific Makefiles
+           * which makes for simple lib/exe module split (make/Template.make)
+           * integrated flowerlib
+           * all stuff into subbirs (make/Stuff.make)
+           * all headers into <module>/include dirs (make/Include.make)
+           * all output into <module>/out (executables into bin/)
+           * more make features, like make config, make help
+           * small lily lib
+           * lilypond-x.x.x/.version for toplevel lily version
+           * lilypond-x.x.x/<module>/.version for <module> version (eg: flower)
+           * versioning using additional optional MY_PATCH_LEVEL 
+               for easy make_patch
+
+       - bin/cptogen
+
+Internal
+       - generic m2m header: m2m.hh
+
+Bugfix
+       - small fixes, make, dist, configure
+
+pl 38-5
+       - all of the below, e.g. new filenames and new makefile 
+         structure patches merged
+******
+pl 38
+
+Internal
+       - great filename renaming operation with - convention.
+       - printing methods for paper_def/lookup/symtab(s)
+       - untied all registers from complexwalker. Now registers are
+intrinsically hierarchical. All walker communication is done via a
+"top level" register.
+
+pl 37-3
+       - m2m handles voices
+       - instrument, track_name, copyright/left stuff for m2m/ly
+
+Internal
+       - Midi_voice
+
+pl 37-1
+       - text, key, tempo event in midi output/ly input
+
+Internal
+       - simple makefile structure, allows for multiple projects
+
+******
+pl 37
+
+
+Documentation
+       - language.pod as starting point for mudela devel.
+
+       - Jan's patches:
+Features
+       - m2m patchy --no-triplet option;
+         lilypond accepts m2m's real midi output (hand-add red tape)
+       - m2m output only valid durations, resync option wip
+       - m2m produces .ly output
+Internal
+       - simpler and better naming for Duration*
+       - the great String renaming / index to base=0 change
+       - Track_column, Lily_stream
+       - Duration, Plet, Duration_convert taking load off duration calc.
+Bugfix
+       - m2m duration calc
+
+
+
+******
+pl 36
+       - Jan's patches:
+       - do MIDI rests cleanly.
+       - lily/m2m: time and tempo fixed for metric timing
+Internal
+       - Midi_tempo
+       - m2m parses more midi stuff (all of bach-wtc); timing??
+       - m2m recognises some commandline options
+Examples
+       - fixed midi.ly
+
+*******
+Feb 25
+pl 35
+       - Register_group
+Bugfix
+       - alignment of breakable items.
+
+*******
+pl 34
+       - better midi syntax.
+       - --midi,-M option.
+       - preliminary midi2mudela (/mudela2midi) converter: m2m (JCN)
+Internal
+       - m2m sources: midi-*; (JCN)
+       - new Midi_walker, fixes several MIDI bugs.
+       - junked Midi_staff, Staff_column children, Midi_walker
+       - Midi_output
+
+pl 33-1
+       - m2m parses midi
+Internal
+       - Binary_source_file
+       - Source_file::error_str simplified
+*******
+pl33
+Examples
+       - Swedish notenames (MB)
+
+pl pre33-2
+
+Bugfix
+       - midi pitch
+       
+Features
+       - Jan's patches, see below
+Bugfix
+       - some midi bugfixes.
+
+pl pre33-1 (JCN)
+
+
+       - midi output using pitches iso notename
+Examples
+       - added midi output (some midi output files broken?)
+       - all melodic fixed (except for error.ly:-) 
+       - midi.ly
+Bugfix
+       - midiwalker line break
+       - empty/nonexistent include at top of ly
+       - midi #tracks
+       - midi pitch c0
+       - midi poor man-s staff dynamics
+Internal
+       - Midi_column, Midi_staff, Midi_walker
+
+pl pre33 (JCN)
+       - Jan's patches, see below
+
+Features
+       - simple plet notation (JCN)
+       - lyrics centred, but no fully suppored? (JCN)
+Internal
+       - Midi_stream 
+       - Mididef
+       - Midi_item, Midi_pitch, Midi_duration
+       - Midi_chunk, Midi_header, Midi_track
+       - preparations for midi output 
+       - no exit upon context error (JCN)
+       - converted some "warnings" to errors; no output (JCN)
+Bugfix:
+       - simple plet bugfix
+Examples
+       - updated standchen, menuetto (JCN)
+       - new plet notation (JCN)
+       - plet.ly (parse and spacing tests) (JCN)
+
+*******
+pl 32
+Features
+       - multiple meters, see rhythm.ly
+       - skip syntax/Skip_req
+       - score_wide_music: commands in staff now override commands in score.
+Internal:
+       - command carnage
+       - Key_register
+       - Bar_register
+       - Meter_register
+       - meters now kept in baseclass Staff_walker
+       - Score_walker (to ease MIDI output)
+Doc:
+       - Hungarian doco added to CodingStyle
+
+pl 32-1
+       - music processing speedup
+       - website added to doco
+       - clef must *inside* music
+       - fixed spurious "beam too narrow" messages.
+Internal:
+       - merge musical / non-musical staff_column
+       - musical/ non-musical requests
+       - Clef_register
+       - split up request.hh, Musical_req vs. Nonmusical_req
+*******
+pl 31
+
+Examples
+       - Coriolan example (JN)
+       - standchen updated
+Bugfix
+       - calcideal assertion bugfix
+*******
+Feb 12 13:55
+pl 30
+
+Features
+       - better multivoice spacing
+       - move rest in multivoice staff
+       - errors in TeX output now warnings
+       - progress indicator
+       - music processing speedup.
+Internal
+       - make spanner for staffsym; scrap Line_pstaff
+       - scrap simplestaff (Rhythmic_staff temporarily disabled)
+       - docxx 3.0 format comments
+       - split register source files
+       - hardcoded dimensions compile time
+       - Lookup::tex_hairpin
+Bugfix
+       - non G-clef clefs
+       - script junking (2x)
+       - empty files
+       - beam::center (plet position!)
+       
+pl 29
+       - multiplatform Makefile (JN)
+       - context errors: bugfixes (JN)
+*******
+pl 28
+
+Internal
+       - idealspacing slightly better for multivoice.
+Doc
+       - Request_register
+Bugfix
+       - Script.cc : float exception (MB)
+       - Request::Request(Request) copying of definition pointer (JN)
+       - cleaned dependencies for broken spanners
+       - stupid typo in Staff_elem::post_processing()
+       - init of hpos in PCol::PCol
+       - Word_wrap::solve() bug 
+*******
+pl 27
+       - preliminary WIN32 support (JN)
+Features
+       - errors converted to warnings (JN)
+       - context errors (JN)
+       - As vs. as  notename.
+       - WARNING: "melodic" stafftype will create the new Complex_staff!
+Examples
+       - Lohman's Viola Quartet (JN)
+       - JS Bach Solo Cello suite II menuet (JN)
+
+
+pl pre27
+
+Features       
+       - option --init
+       - last_duration_mode: default_duration is last duration entered
+       (\duration{\last})
+       - syntax: grouping 2*4 3*8
+       - preliminary multivoice support
+Examples
+       - JS Bach's WTK example added.
+
+Internal:
+       - Text_reg and Script_reg
+*******
+pl 26
+       - Documentation/lelie_logo.png
+       - 8-bit chars for input (see ltest.tex) (MB)
+       - quotes around string now optional
+Bugfixes:
+       - unmatched ] (MB)
+Internal:
+       - print/name methods of Staff_elem
+       - added Request_register
+       - Voice_group_registers, Voice_registers, *_register
+       - Complex_staff
+*******
+ Jan 27 '97 
+pl 25
+       - other clefs added, keys typeset properly (MB)
+
+*******
+pl 24:
+       - Lyrics (JCN)
+       - Commands in music-mode (an input feature) (there you are, Mats)
+
+*******
+pl 23:
+       - TODO file inc'd
+       - cadenza mode.
+       - default extension, search path.
+       - error.pod,faq.pod
+       - Markers
+       - configure script
+       - inputfile name in output.
+Internal changes:
+       - scrapped VPATH
+       - Make dependencies per .o
+       - Split Input_* parsing steps to enable marking 
+Bugfixes:
+       - unconnected columns
+
+
+*******
+pl 22:
+       - doco from mpp
+       - repeat signs
+       - | checks for bar in a voice (Barcheck_req)
+Internal changes:
+       - naming (Hungarian notation, svec vs. Array)
+       - cleanup PScore, Score
+       - removed Staff_commands, plugging commands into Staff_column directly
+Bugfixes:
+       - bug noteheadswap
+       - huge memleak fixed; unearthed lots of bugs
+
+*******
+pl 21:
+       - scripts
+       - texts
+       - nplets (triplets!)
+Internal changes:
+       - Move breaking stuff into a separate class Break_algorithm
+       - dependencies for Staff_elem's
+
+*******
+Dec 23 
+pl 20: 
+       - updated doco to .pod
+       - include files from .ly
+Internal changes:
+       - Rational for time measurement
+       - directionalspanner/textspanner
+
+*******
+pl 19:
+       - grouping code: LilyPond can set advanced multibeams.
+Internal changes:
+       - struct Moment
+
+*******
+
+pl 18:
+       - robust Staff_commands
+
+*******
+pl 17:
+       - robust Input_commands
+       - merged Vertical_/Horizontal music
+       - PARTIALs with duration
+       - modularized lexer: multiple runs
+
+*******
+pl 16
+       - notenames configurable
+
+*******
+pl 15
+       - grouping code
+       - multibeams (simple)
+
+*******
+pl 14
+       - symtables from .ly
+       - Input_command
+       - Input_{score/staff}
+
+*******
+Dec  2 
+pl 13
+       - Horizontal/Vertical music
+       - Input_commands
diff --git a/Documentation/misc/CHANGES-0.1 b/Documentation/misc/CHANGES-0.1
new file mode 100644 (file)
index 0000000..f5e3562
--- /dev/null
@@ -0,0 +1,2141 @@
+August 1
+
+VERSION 1.0.0
+
+       - scsii-paper: no wordwrap
+       - bf's: texinfo
+
+pl 85.jcn2
+       - ONEWS -> NEWS-0.1
+       - bf: zip: list of docfiles
+       - bf: install info
+       - bf's: rpm spec
+       - website ok
+       - mudela version bump -> 1.0.0
+       - bf's: '[a-g] -> ,
+       - bf: broken.ly
+       - ly2dvi fixes, (PC)
+
+pl 85.hwn1
+       - search & replace: jan@digicash.com -> janneke@gnu.org
+
+pl 85.jcn1
+       - website fixes
+       - debian fixes (thanks, Bastian Kleineidam)
+       - some (yet unfinished) doco
+
+*********
+pl 85
+july 30 
+
+pl 84.hwn4
+       - revamped install directions.
+pl 84.eb1
+       - key undo    
+
+pl 84.hwn3
+       - misc scsii fixes.
+       - doco fixes
+
+pl 84.jcn3
+       - bf: titledefs without poet
+       - scsii fixes
+
+pl 84.hwn2
+       - don't make key items if no accs present.
+       - Oops.   Lyric spacing should go to the right (and not left) (thanks, PC)
+       - barnumbering break priority.
+       - bf: tied chords
+       - 16pt init for yodl-mudela
+       - split span-score-bar.{cc,hh}
+       - junked most experimental_features_global_b stuff
+       - revised AUTHORS.yo 
+       - dot stuff.  Added a Dot_column_engraver  (thanks, Mats)
+
+pl 84.jcn2
+       - ly2dvi fixes
+       - w32/install doco fixes
+       - mutopia fixes
+
+pl 84.hwn1
+       - fixes for ly2dvi + titledefs (Peter Chubb)
+       - merge Span_dynamic_reqs too
+
+pl 84.mb1
+        - MF: Added breve and longa rests.
+pl 84 jcn1
+       - top website
+       - ps-to-gifs: TRANSPARENT_IS_BROKEN (ppc hack)
+
+pl 84.uu1
+       - doco fixes
+
+*************
+pl 84
+
+pl 83.jcn5
+       - bf: typo mudela-doc
+       - long getopt all the way
+
+pl 83.hwn5
+       - doco fixes
+       - bf: initialise axis_ filed of script
+       - separate versioning for mi2mu and flowerlib dropped. 
+       - split bin/ in buildscripts/ and scripts/
+
+pl 83.jcn3
+       - egcs ICE stuff.
+
+pl 83.jbr2
+       - lily/midi-stream.cc: added appropriate MODE options to open 
+       midi output as a binary file.  This should be pretty harmless.
+       - lily/lexer.ll: added \r as white and black space to enable
+       W32 native editors.  This also should be harmless.
+
+pl 83.jbr1
+       - flower/lgetopt.cc: report method fix. (String + char needs to be 
+       fixed)
+
+
+pl 83.hwn4
+       - stepmake := stuff
+
+
+pl 83.hwn3
+       - \property maxVerticalAlign, minVerticalAlign tunes vertical
+       staff distances.  See input/test/vertical-align.ly
+       - bf: scripts over chords. (thanks, PC)
+       - revamped aligning stuff: Align_element is baseclass
+       for Horizontal_align_item and Vertical_align_spanner
+       - bf: Clef_item with _8 does new/del correctly. 
+       - more file renaming -elem -> -element
+
+pl 83.hwn2
+       - doco fixes (thanks, Lambert)
+       - tieydirection,slurydirection overrides ydirection (thanks, PC)
+
+pl 83.jcn1
+       - bf: stepmake
+
+pl 83.hwn1
+       - rm'd clean-embeds.sh
+       - rm'd \octave from all examples.
+
+pl 83.uu1
+       - mi2mu output mudela 0.1.21
+       - meter -> time_signature
+       - bugfixes for mi2mu, divide by zero error.  (thx, JBR)
+
+
+********
+july 23
+
+pl 83
+pl 82.hwn2
+       - \musical_pitch -> \musicalpitch (mudela 0.1.21)
+       - meter -> time_signature,
+       - \meter -> \time (mudela 0.1.21)
+       - moving around files : -grav -> -engraver
+       - doco fixes
+
+pl 82.jcn5
+       - doc make fixes; stepmake 34
+
+pl 82.jcn4
+       - lots of doco build/install/website fixes
+       - junked some doubles from doco
+
+       - mi2mu syntax to 0.1.20
+       - bf: mi2mu col creation
+       - bf: stream << '\t', int
+       - bf: mi2mu version
+       - bf: font-body.ly
+
+pl 82.jcn3
+       - bf's: diff/stepmake
+pl 82.jcn2
+       - bf: slur blow
+       - tie/slur ydirection
+       - makeflags / diff fixes
+pl 82.jcn1
+       - rejects: verbatim copy of Coriolan from 81.jcn2
+
+pl 81.jbr2
+       - Documentation/README-W32.yo: Additions to section 2
+
+*******
+
+pl 82
+
+pl 81.jbr1
+       - NT fixes for release target
+         * stepmake/stepmake: %=--% => %=% in diff target
+           Cygnus make with MAKE_MODE=unix forces a MAKEFLAG of --unix.
+           This results in a ----unix switch being passed to package-diff.
+           This may break normal operation of this target.
+         * stepmake/bin/package-diff.py: added a do nothing option --unix
+pl 81.jcn2
+       - bf: abbrev
+       - found ugly slur bug
+       - egcs workaround
+       - more Coriolan fixes
+       - half-beam fix
+
+pl 81.hwn2
+       - lots of vocabulary
+       - break_priority_i_  fixes: barnumbering, marginstuff, marks now work more or less
+       - wrote lilypond-docs RPM spec
+       - major brainsurgery: class Graphical_axis_group:
+         * derive Axis_group_element from Graphical_axis_group,
+         * derive Graphical_axis_group from Graphical_element
+       - junked input/minimal.ly
+       
+
+pl 81.hwn1
+       - cleaned up parser.yy (removed  \textstyle from parser, other stuff)
+       - Slurs have height too.
+       - typewrite textstyle
+       - added error rule to music.
+       - Documentation/pictures/ subdir
+       - Documentation/topdocs/ subdir
+
+
+pl 81.jcn1
+       - coriolan fixes.
+
+******
+july 16
+
+pl 81
+
+pl 80.jcn1
+       - Coriolan: bulk remainder of strings
+
+pl 80.hwn1
+       - junked coriolan-alto.ly
+       - the great Search & Replace
+         * Score_elem -> Score_element
+         * hanwen@stack.nl -> hanwen@cs.uu.nl
+         * Colinfo -> Column_info
+         * add () -> add_xxxx ()
+         * Col_hpositions -> Column_x_positionso
+       - lily-proto.hh cleanup
+       - moved Dot_column creation.  Dot bug fixed
+       - typos README-W32
+       - ADD_THIS_TRANSLATOR uses templates now.
+
+pl 80.eb1
+       - accidental transposition
+
+
+*******
+
+pl 80
+       - some make vs $(MAKE) bugs
+
+pl 79.hwn1
+       - bf lily/VERSION depends on toplevel VERSION
+       - bf postbreak_only scripts
+       - Staff_side now is horizontal too
+       - rm'd \octave in scales.ly
+
+pl 79.jcn2
+       - w32 support doco (JBR)
+       - bf: install info
+       - truncated some very long filenames (not bo length)
+
+pl 79.jcn1
+       - bf: ps-to-gifs
+       - html fixes
+       - more italian (TDM)
+       - more coriolan
+
+
+*********
+pl 79
+
+pl 78.hwn2
+       - reversed some of the beyond-too-ugly hacks for script/staffside.
+       - bf: Axis_group_element::access_Axis_group_element () (2nd fix for Hara_kiri)
+       - more .bib stuff.
+       - more doco, lots of small fixes for .yo stuff.
+
+
+pl 78.jcn2
+       - bf: make docxx
+       - some doco/website fixes
+i      - screenshots for website
+       - fixed locale
+       - v78
+       - w32 doco
+
+pl 78.hwn1
+       - more bib fixes
+       - uniformised virtual accessors for Score_elem children.
+       - bf Hara_kiri seg fault
+       - changed left == right spanpoint assert into warning
+       - changed Lyrics.textstyle  to Voice.textstyle where appropriate
+
+pl 78.jcn1
+       - counter fix
+
+************
+
+pl 78
+
+pl 77.hwn1
+       - Key transposition (MB)
+       - move .dstreamrc to dstreamrc
+       - make website fixes. junked z.yo, language.yo
+       - split off computer stuff from engraving.bib
+       - articles from CMJ added to computer-notation.bib
+       - doco fixes
+       - syntax of \skip and \partial changed; take only single durations
+
+
+pl 77.jcn2
+       - mark placement
+       - w32 doco
+       - html-footer: (PACKAGE)_COUNTERPATH
+
+pl 77.jcn1
+       - doco, bib fixes
+       - fixed \mark A; \mark 12;
+
+pl 77.hwjc
+       - dropped perl
+       - py fixes
+
+
+pl 77.uu1
+       - \textstyle obsoletized, use \property Voice.textstyle now.
+
+*******
+pl 77
+       - bf: install info
+       - bf: key-grav.cc: ambiguous conversion
+       - bf: mudela.yo glossary em() -> \emph{}
+
+pl 76.jcn1
+       - irix compile install fixes, .bib stuff (HWN)
+       - bracket bit lighter
+       - brace/bracket placement
+       - minor fixes in key code
+       - small website fixes
+       - invocation mudela-book
+       - try at bracket/brace placement
+
+pl 75.mb1
+       - Introduced real key names, \key e; gives E major!
+       - Previous use of the \key command now called \accidentals, 
+         \accidentals fis cis gis dis; gives E major.
+       - Support for special keys with different accidentals on 
+         different octaves, \specialkey \accidentals Fis Bes gis aiss';
+
+**********
+pl 76
+       - website examples: 
+         * Thread -> Voice
+         * 18 -> 19
+         * type /consists Engraver vs Line_engraver stuff
+       - bf: mutopia-index
+       - to relative: twinke-pop
+       - bf: clef-grav: null pointer assignment
+       - ran convert-mudela
+
+pl 75.jcn3
+       - minieme fixes (HWN)
+       - bf's: node() names have changed: Mudela Book/ Convert Mudela 
+       - bf: lilyponddefs.tex: removed \fi, added braces
+
+pl 75.hwn2
+       - bf lilyponddefs.tex: added \fi to \ifs
+       - convert-mudela in python
+       - mudela-book in python.
+       - bf memleak Score_elem::do_brew_molecule ()
+       - bf array bound read String_convert::split_arr
+       - bf free mem read Item::Item (Item const &)
+       - bf memleak Midi_walker::do_{stop,start}_note ()
+       - bf memleak Spanner::do_brew_molecule ()
+       - bf plet-engraver memleak 
+       - checked input/bugs dir.
+
+pl 75.hwn1
+       - junked octave (mudela 0.1.19)
+       - more .bib stuff
+       - doco fixes.
+  
+pl 75.jcn2
+       - binary releases:
+         * make deb
+           * dpkg 1.4.0.23.2
+           * debhelper 0.96
+           * /usr/bin/db_*: remove -p from install options (urg)
+         * make rpm
+         * make zip
+       - path to nice lilypond.info (must have a go at auto-nodes):
+         * mv'd Documentation/man/lilypond-info.yo -> Documentation/topinfo.yo
+         * included mutopia as example
+       - bf: gifs: $(wildcard)
+       - leave tarball in out/ too, after 'make release'
+       - mf-to-table: --package
+       - typo configure.in
+       - nt make fixes (JBR)
+
+pl 75.hwn1
+       - clef 8 fix (AG)
+       - junked octave (mudela 0.1.19)
+       - more .bib stuff
+       - doco fixes.
+
+pl 75.jcn1
+       - dropped mf/Rules.make
+       - dropped target doosdist
+       - dropped lilypython/pythonblurb
+       - --package rest of python exes
+       - packagepython/package-diff fixes
+
+
+**********
+pl 75
+
+pl 74.jcn5
+       - lost of (step)make fixes
+       - 'make release'
+       - --package
+
+pl 74.mb1
+       - Fix ":|:" that spans several staffs
+       - bf: bar.cc, table of breaks
+       - bf: engraver.ly, Complete the addition of ChoireStaff
+       - bf: lilyponddefs.tex, placement of ":|".
+       - Cleanup clef-item and clef-grav, prepare for dictionary
+         of clef names.
+
+pl 74.jcn4
+       - cygnus fixes: doco, compile, install
+
+pl 74.jcn3
+       - packagepythonified genheader
+       - stepmake 21
+
+pl 74.jcn2
+       - renamed: ../redhat to ../RedHat
+       - renamed (or huh, was this a typo?):
+          ../sourcetree -> lilypond-x.y.z to ../lilypond -> lilypond-x.y.z
+       - what about ~/rpms; see stepmake/Variables.make?
+       - README.txt
+       - debashify: zet-lily (HWN)
+       - www, yodl, stepmake fixes
+       - ls-latex fixes
+       - mudela.yo fixes
+
+pl 74.jcn1
+       - mudela.yo fixes
+       - bf: add-html-footer: duplicate <body>
+
+*********
+pl 74
+       - bf: ps-to-gifs fix
+
+pl 73.jcn2
+       - irix configure/link fixes (HWN)
+       - untested fix for "^\f" (HWN)
+       - add-html-footer: bgcolor=white
+       - m.yo: successful 2tex and 2html
+       - ps-to-gifs additions and fixes
+       - bf: --output
+       - (step)make targets:
+         * diff
+         * help
+         * rpm
+         * zip
+       - yodl-1.30.pre4: handle mudela(options)(mudela)
+       - small m.yo example for mudela.yo
+       - crude tex2yodl in stepmake
+       - mudela from stdin: default to filter behaviour
+       - allow lelie to act as a pseudo-filter --output=-
+       - fixed faq.yo
+       - atvariables
+       - bf's: module-deps
+       - bf's table-to-html and invocation
+       - small doco fixes
+
+pl 73.hwn1
+       - more doco
+       - got rid of weird <> semantics
+         * Ties_engraver, Note_heads_engraver
+         * depracated \multi
+         * depracated Thread context
+
+       - wtk1-fugue{1,2} now in relative mode.  
+       - don't create Rest_collision, Collision if no more than one 
+       collider (interpreting should be faster, less mem usage)
+       - depracate Line_group_engraver, must use Line_group_engraver_group
+
+       
+pl 73.jcn1
+       - tiny topweb.yo fixes (added 'Documentation/out-www/' to some urls)
+
+*********
+pl 73
+       Yodl developent:
+         ftp://pcnov095.win.tue.nl/pub/yodl/
+         http://www.digicash.com/~jan/yodl/
+       - removed BLURBS from makefile
+       - stepmake pl 16
+       - To Yodl:
+         * *.pod -> *.yo (should fixup pod 'manpage' legacy)
+         * dropped pod2* config stuff
+
+pl 72.hwn1
+       - count "constraint off" as degeneracy
+       - zet-lily stuff.
+       - bf: add Meter_engraver 
+       - bfs: tutorial
+
+pl 72.jcn3
+       - Documentation/man texinfo-> YODL!
+
+pl 72.jcn2
+       - more texinfo:
+         * texi2html workarounds: junked man/*.pod
+         * Documentation/man: pod -> texinfo
+       - Coriolan: viola part
+
+pl 72.jcn1
+       - doco/mutopia/website fixes
+
+*********
+pl 72
+
+pl 71.jcn4
+       - try at texinfo: 
+         * lilypond.texinfo
+         * stepmake pl 13: texi2man
+         * lilypond.1 now generated from texinfo
+         * lilypond.info
+
+pl 71.hwn2
+       - changed QLP asserts to warnings; now you can see the
+shabbyness of the QLP code
+       - ChoireStaff context
+       - more tutorial doco
+       - mudela-book: name output files to per section and chapter.  
+
+pl 71.jcn3
+       - bf: convert-mudela: added StaffGroup
+       - bf: various .ly: (WhyIsThis; we'll drop a_"bla" and use '_', no?)
+       - stepmake pl 12
+       - bf: abbrev + beam (urg: internote y dim bug)
+       - debian conffiles (AF)
+
+pl 71.hwn1
+       - vocab fixes
+       - more tutorial stuff
+       - quart -> fourth
+       - depracated contexts with _ in name  (mudela 0.1.17)
+       - bf: don't crash if default context can't be found
+       - distinction between global and local \header block.
+
+pl 71.jcn2
+       - msgfmt check
+       - rpm: crude fix for input dir (urg: should get doc on rpm spec; 
+         why is that so hard to get hold of in plain text?)
+       - found (bit undocumented) sticky abbrev mode in stem-grav:
+           c8:16 c: c:
+         * bf: enable disabling
+          * disabled sticky abbrev req
+       - urg: transposing for midi (should fix audio-items)
+       - sticky abbrev req: a8:16 a a a8:
+       - bit more coriolan
+
+pl 71.jcn1
+       - added PATCHES to web page
+       - rpm-dist, doos-dist, show-latest to step
+
+********
+pl 71
+       - bf: po install
+       - fixed somewhere: space between bar line and first note [HWN]
+       - bf: DOTTEXT
+       - bf: (don't) install libintl
+       - configure fix for irix tr
+       - bf release.py
+       - stepmake-0.1.9: fixes make install, rmp-dist
+       - bf: mf-to-table
+       - make-patch: lily-diff
+
+pl 70.jcn6
+       - make htmldoc defaults to out-www
+       - moved some python stuff to stepmake-0.1.8
+       - aux config scripts from stepmake
+       - stepmake-0.1.7 as ./stepmake: drop versioning on sub-package dirnames
+       - po fixes
+       - computer-forms.el
+
+pl 70.jcn5
+       - bf: Documentation/make html
+       - bf: coriolan ... almost there
+       - bf's: lilyponddefs: (fixes make website)
+         * moved errordefs (mmm, perhaps \input's should have been moved...)
+         * moved def of interscoreline 
+         * moved def of setdynamic
+       - stepmake 0.1.6
+       - include fixes
+
+pl 70.jcn4
+       - configure stepmake too
+       - make dist recurses into stepmake
+       - stepmake-0.1.5
+
+pl 70.jcn3
+       - make; make dist work (without packaging) stepmake-*
+       - mv'd outputter* tex-outputter* 
+        its not so handy to have files with the same prefix as our out dir :-)
+       - verbatim included stepmake-0.1.4
+       - DOTTEXT->.txt
+       - verbatim included stepmake-0.1.3
+
+pl 70.jcn2
+       - changed 'current' to 'lilypond' in scripts that only i ever use...
+       - tenuto shorter, thicker and follow into staff
+       - computer{.data,-forms.el}
+       - mark
+       - by default don't make libintl 
+       - make install for libintl
+
+pl 70.jcn1
+       - generic make fixes
+
+********
+pl 70
+
+pl 69.jcn4
+       - included libintl from gettext-0.10
+       - fix: staff-bracket on one staff too
+       - bf: lilymake/Rules
+       - generic lily-make-0.1.0 package; shared as example with lilyx-0.1.0
+       - junked automake stuff from aclocal.m4
+       - bf: BASH scripts
+
+pl 69.hwn1
+       - standardised virtual accessor naming for Requests
+       - doco updates.
+       - bf: tied accidentals.
+
+pl 69.jcn2
+       - now DATADIR = datadir = /usr/local/share/lilypond ...
+       - bf's: DATADIR/datadir: by default: /usr/local/share; '/lilypond'
+         must be added whenever necessary
+       - bf: begin/end html for BLURBS; junked html-accents...
+       - html-accents
+
+********
+pl 69 (june 2)
+       - bf: table-to-html: convert_html
+       - bf: added fingerfont in fetdefs.tex
+       - crude fix: fetdef repeatcolon
+       - gallina.ly to relative octave mode (MB)
+
+pl 68.jcn3
+       - bf: libintl.h include
+       - readded: DATAFILES =.*data (too late, computer vocab missing...)
+       - span-score-bar:
+         * don't set piano braces that span less than two staffs
+         * don't set staff brackets that span less than one staff
+       - bf: abbrev (internote dim)
+       - more coriolan, hara-kiri
+       - add arcs to bracket height to avoid colliding of brackets
+       - HAVE_GETTEXT
+       - computer.data: modest start of computer-related vocabulary 
+       - configure (localdir/datadir) fixes
+
+pl 68.nenn1
+       - fix for postbreaks past line_group
+       - bf: harakiri: set empty
+
+pl 68.hwn1
+       - use AFM iso autogenerated table.
+       - more bits of tutorial
+
+*********
+pl 68.jcn2 (may 29)
+       - bf: configure.in localedir/datadir (urg)
+       - libc-extension.cc: vsnprintf + check
+       - bf: blurbs
+       - @BASH@ for scripts that are actually (still...) bash iso sh
+       - check for bash
+
+pl 68.jcn1
+       - gettext/intl checks; (AO)
+       - bf: meter-switch
+       - COPERTINA
+
+pl 68
+       - AFM file stuff: afm.cc, afm-reader.cc, mf-to-table.py
+       - removed c0 position from get_staff_info ()
+       
+pl 67.jcn2
+       - grace example
+       - bf: sticky plets
+       - bf: s0
+       - bf: twinkle.ly
+       - junked implicit to-string conversions
+         * now used Scalar for all explicit implicit conversions
+         * moved implicit-conversion String constructors to to_str (...)
+       - _f with Strings
+       - bf: BLUB: re-added empty line 
+       - bf's: reincluded: tar-docxx.sh, topweb.pod.in (<aol>me too!</aol>)
+       - po: unification/breaking-up of (some) messages
+       - crude get-lily/build-lily scripts
+       - make targets "po-update" "show-po-update LANGUAGE=xxx"
+       - handier internationalisation funcs _(), _f () iso macro
+       - String_convert::form_str (fmt, ...)
+       
+
+*******
+pl 67 (may 27)
+       - multiple font sizes.  See input/test/sizes.ly
+       - w32 blurb by Dominique Cretel
+       - bfs faqs
+       - cleaned Identifier further; canonical accessors
+
+pl 66.jcn7
+       - bf: hara-kiri clefs: (the "u" is "\unknown"; how to fix this?)
+       - bf's: make website
+       - better configure language message
+       - bf: lilpond.spec
+       - bf: configure/localedir
+       - internationalisation: po/*
+       - distribute mutopia/ in binary rpm too
+       - FLAPTEKST
+       - "generate" all debian conffiles in out/
+       - BLOEP; and BLURB substituted by configure throughout doco
+
+pl 66.jcn4
+       - bf's standchen
+       - website fixes for .fly
+       - target doc++; tar-docxx fixes
+       - topweb fixes
+       - configure check for pod2html 5004/5003
+       - switch init file on extension (some new ones):
+         * init.ly:  normal structured Mudela
+         * init.fly: simple Mudela (for on-the-* without tape ly's)
+         * init.sly for simple init (no properties,scripts,midi)
+
+       - bf: stem with flags (forgot internote dimension)
+       - bf's mutopia (urg, properties)
+       - String_storage: parse string identifiers  (i didn't do it, nobody saw me do it, you can't prove anything)
+       - scsii-prelude: urtext and suggested slurs separated
+       - converted twinkle, kortjakje, standchen, preludes to relative
+       - conflily -> zet-lily
+       - -Q --find-quarts option
+       - bf: add-html-header: mailaddress () iso mailaddress
+       - bf: show-latest looks at MY_PATCHLEVEL too
+       - fixes scsii
+
+
+
+***********
+pl 66 (may 18)
+       - junked literature.pod (we now have the .bib file)
+       - bits of mudela.doc
+       - other-packages.pod -> other-packages.bib
+
+pl 65.jcn3
+       - print_dimen: don't print "NaNpt"
+       - fixed Coriolan, added "instrument" and "instr"
+       - MIDI favours property "midi_instrument" over "instrument"
+       - Bar::do_height iso brew_molecule hack: not quite yet...
+       - stem/beam: more stuff runtime
+         * beam-dir-algorithms
+         * beam-stemlengths: take unnatural dir into account
+         * natural stemlength
+         * forced stemlength shortening
+       - bf: Bar: don't make molecule if invisible; fixes hara-kiri
+       - robustification of MIDI: never return "", always return sane 
+         string and print warning
+       - bf: typo Key_change_req::sharps(); fixes MIDI
+       - scsii: new relative octave fixes, gigue
+
+pl 65.jcn2
+       - included some auto-generated mf files for MikTeX (doos).
+       - hara-kir: nicer set-transparent
+       - relative.pod: doco'd blonder relativeness
+
+
+pl 65.jcn1
+       - staff-margin-engraver
+       - blind scsii fixes for new relative mode
+       - bf's: hara-kiri-*
+       - jumps in topweb.pod
+
+*********
+
+pl 65 (may 15)
+       - fixes for template instantiation (AO)
+       - junked standchen-easy,
+       - mudela 0.1.15:  deprecate \duration, junked \octave relative
+       - small doco fixes
+       - moved data from Melodic_req into Musical_pitch (analogous to
+       Duration and Rhythmic_req)
+       - implemented \relative c' { .. } and associated Relative_octave_music
+       - junked \octave relative;
+
+pl 64.jcn2
+       - simple compile fixes
+       - bf: beam:stemlens:knee
+       - hara-kiri-*
+       - bf: ctags
+       - preludes-3.lym4
+       
+*********
+pl 64 (may 13)
+
+pl 63.jcn3
+       - beam stemlength stuff runtime
+       - dropped lq for beam-stemlengths, fixes [d d d] [d g d]
+       - ugly sed fix for commas in .ly.m4
+       - beam damp corrent fix
+       - scsii: small fixes
+       - preludes.ly; dropped silly preludes.tex
+
+pl 63.jcn2
+       - vocabulary on website
+       - data-to-html.py
+       - bf: beam damped-slope correct
+       - bf: make website
+       - some preludes-* fixes
+
+pl 63.jcn1
+       - "relative" sizes for titledefs
+       - bib2html/man2html urls in INSTALL.pod
+       - auto-generated feta stuff in doosdist
+       - bf's: make dist, docdeps
+       - bf's scsii
+
+************
+pl 63 (may 11)
+
+       - non_fatal_error () (should use!)
+       - Mozart Horn concerto 3, horn part
+       - bf: plet-spanner
+
+pl 62.jcn11
+       - bf: beam::set-stemlen:iterations 
+       - knee-bug.ly
+       - use knee in menuetto-ii
+       - bit on slope damping
+       - some bf's and doco
+       - bf's scsii
+       - scsii: bf' new: sarabande
+       - bf's allemande, courante
+       - bf: knee: stem through beams
+       - bf: too high beams
+
+pl 62.hwn1
+       - bf jcn8: deep copy Scope (ughugh.  I want GC!)
+       - cleaned Identifier
+       - mudela 0.1.14  'a -> a,
+       - class Scope
+       - .bib updates
+       - key robustifiction for extreme octaves
+       - ly2dvi 0.11
+       - energy "normalisation" removed. 
+       
+pl 62.jcn8
+       - beam: knee input/test/knee.ly
+       - vimrc init for lily
+       - errors display column number too
+       - scsii: bf's, new: allemande, courante
+       - looked at lyric lengthen "mir________." (eerste weigering)
+       - beam: knee [c \stemdown c' \stemup 'c]
+       - expressions parsed at identifier_init
+       - bf: slur/stem/whole x-adjust: 
+         * use note-col width iso mean note-witdth
+         * note-column:width ()
+       - now string variables in paper too -> mudelapapersize
+       - paper_def: real dict -> identifier dict
+       - My_lily_lexer: identifier dict stack
+       - init paper and a4 stuff
+       - \include \string
+       - all rvalues from parser var pool -> access rvalue as \rvalue
+       - string variables
+       - ly2dvi 0.10.jcn1
+         * mudelapiece, mudelaopus (ugh, fix)
+         * textheight
+       - more titledefs
+       - bf: table 20 typeface widths
+       - bf: toplevel/*.txt
+       - bf: ugly Documentation/mutopia fix (should rename dir to Mutopia/ ?)
+       - bf: make examples
+       - www.digicash.com/~jan/lilypond
+       - make website fixes
+       - ambiguity fixes in .ly's
+       - bf: relative-octave warning
+       - relative-octave: guess if ambiguous
+       - ambiguity warning for relative mode
+       - scsii: prelude 
+       - bf: slur gap
+       - bf's: scsii: menuetto
+       - .txt -> $(DOTTEXT)
+       - make website fixes
+       - .txt fixes
+       - bf: typo make-patch
+       - bf: *dist.sh cleanup
+       - bf: release.py
+       - bf: make/Targets doc (removed .txt extension)
+       - rpm-dist.sh
+       - make doos dist fixes
+       - doos-dist.sh windoze dist script
+       -- removed useless spacing hack at spring-spacer.cc:692
+       - bf: los-toros: do multi-bar rests (setting SkipBars = 1)
+       - scsii-menuetto.ly -> menuetto-urtext.ly, -cello.ly and -alto.ly
+       - bf: \octave c'; for relative-octaves
+       - bf: Documentation make
+
+*********
+pl 62
+       - no-touch hak.
+       - bfs: multi measure rests
+       - fixed the website.
+       - add extra space after breakable columns.
+
+
+pl 61.jcn8
+       - mudela relative octave feature: 
+         * Documentation/relative-octaves.pod
+         * \octave relative;
+         * lilypond -f for automatically finding new relative quote positions
+           (sorry, fully automated convert is too complex)
+         * mutopia/ltor.ly: octave quotes reduced from 511 to 59
+       - better conflily
+       - bf: abbreviation-beam-engraver: set beam::multiple_i_
+       - bf: open_abbrev_parens
+       - dotted/dashed slurs/ties
+       - fixed-up scsii-menuetto; use dotted-slurs
+       - slur_thickness runtime
+       - bf: typo lilyponddefs: elevendefs
+       - moved hard-coded slur parameters to runtime
+       - make-patch -r: diff against latest release
+       - allow semicolons after paper_identifier and \include
+       - params.ly: parameterised some paper vars
+       - bf: beam quantise for slope = 0
+       - interbeam (mult>3) open-up to paper-def to paper!
+       - "implemented" Paper-def::staffheight
+       - simplification + bf bezier clipping
+       - vandale fix
+       - moved doco from paper*ly to fonts.doc
+       - papers with expressions
+       - paper20.ly: rewrote precalculated values as expressions
+       - simple expressions in mudela (paper-body only)
+       - beam_thickness centralised and run-time...
+       - \nobreak
+       - bf: beamquantise: never sit if mult > 1
+       - bf: broken slur y-offset (not!)
+       - pagelength hack in tex/headers
+       - alignment of bracket (in span-score-bar.cc)
+       - boolean *break_b to continue break_penalty_i; maar nu...
+       - removed paper20 includes, \paper_twenty from examples
+       - dropped latex files
+       - renamed standje, standchen.
+       - parser accepts range of mudela-versions
+       - Mudela_version
+       - String_convert::split
+       - bf's: los-toros-oboe
+       - braindead Break_req with penalty; junked Disallow_break_req and 
+         Break_force_req 
+       
+pl 61.ag1
+       - implemented octave-shifted clefs.
+
+********
+
+pl 61
+       - bf: mudela-book error msgs
+       - don't dist feta-tables.
+       - bf: mf-to-table, deps[0] catch
+       - reworked initialisation parsing logic; Got a no-redtape mode
+         for free
+       - 20 pt staffsize now default
+       - dependencies for LilyPond (-d, --dependencies).  --debug moved to -D
+       - (c) 1998
+       - ly2dvi 0.10 (JAF)
+       - changed \begin[options]{mudela} to \begin{mudela}[options]
+       - more WWW hacks.
+       
+pl 60.jcn2
+       - minor adjust for asymmetricity of beam symbol
+       - added TEST beam quantisation; see input/test/beam-pos.ly
+       - removed some empty .cc .hh
+       - Grandstaff -> Grand_staff (After [Gerou] and Harvard Dictionary of
+         Music)
+       - bf's: slur and tie post-processing
+       - cleaned-up bow: get encompass
+       - cleaned-up beam-yspan and beam-leftpos quantisation
+       - misc.cc: some funcs to get lower and upper bounds from array of values
+       - interval.*: Slice (Interval of int)
+       - added some doco to beam.cc
+       - removed some x,y by-ref passing in Lookup
+       - cleaned-up beam-yspan quantisation
+       - cleaned-up slur get encompass
+       - configure: --disable-optimise for compile without -O
+
+pl 59.jcn4
+       - bf: beam quantise
+       - bf: sticky plet bug
+       - bf: chords in beam
+       - bf: typo beamquantisaton
+       - bf: don't blow_fit infeasible bows (x_i < x_0 || x_i > x_n)
+       - bf's: beam/stemlengths, beam-bug [c8 c16 c16]
+       - bf: placement broken tie
+       - yet another try to raise bar-number
+       - bf's: bow tangent clipping, allow higher bows
+
+************
+pl 60
+       - mats patches: use Latex font stuff.
+       - fixes to the .59 patch release (jcn)
+       - make website|examples target
+       
+pl 59.jcn3
+       - bf: preludes-5
+       - no inline compiler warnings by default
+       - bf: gcc 2.8 compile bow.cc
+       - moved functions with loops from varray.hh to varray.cc
+       - bf: minimum length for tie
+       - slur clipping standard
+       - bf: second broken slur minimum length
+
+pl 59.jcn2
+       - added some to .dstream
+       - bf: second part of broken slur
+       - slur encompassing noteheads adjust
+       - bwv'd preludes
+       - bf: make-patch -d
+       - doc'd rerunning of autoconf
+       - rest of real standje (rename and move simplified standchen to 
+         input/test?)
+       - bf: clipping
+       - bit better bar number placement
+
+pl 59.jcn1
+       - more INLINE
+       - bf: multi-measure rest
+
+pl 58.jcn7
+       - los-toros: do multi-bar rest
+
+
+
+***************
+pl 59
+       - ly2dvi 0.9.hwn1, -K switch, 
+       - doc: moved manpages in separate directory.
+       - do WWW stuff via make
+       - mutopia-index.py
+       - ly2dvi 0.9 (JAF)
+       - multi platform build fixes
+       - junked embedded switches, embedded MF, obsolete TeX stuff
+       - junked virtual matrix storage: inlined most matrix computation,
+       speed increase of 30%
+       - junked taupindefs,  eglerdefs
+       - rm'd taupin/egler from INSTALL
+       - doc: engraving.bib, colorado.bib
+       - input hierarchy.
+
+pl 58.jcn6
+       - multi-measure rests: moved acknowledge from timing-translator
+       to -grav
+       - slur clipping experimental...
+       - bo to b
+       - always announce multi-measure
+
+pl 58.jcn5
+       - bf: reset plet after reading mmrest
+       - try at not generating moments...
+       - Multi_measure_rest 'symbol'
+
+pl 58.jcn4
+       - try at multi-measure rests: part.ly
+       - bf's: slur get_encompass
+       - bf: slur clipping
+
+pl 58.jcn3
+       - experimental (--test) clipping of too high or tilted slurs
+       - nicer slur control output and ps code
+       - bit thicker and round-capped tuplet bracket
+       - bf: slur.cc: RESIZE_ICE
+
+pl 58.jcn1
+       - varray.hh bezier.cc, slur.cc patches to avoid gcc 2.8.1 ice
+       - some inlining fixes
+       - configure: use -O to enable inlining
+       - included and fixed new make-patch.py
+       - bf: Mutopia.make
+       - bf: offset: operator - ()
+       - ugly hack bezier: do blow_fit twice
+       - bf's: bezier: rotate,translate
+
+***************
+pl 58
+       - more *.make hacking
+       - bracket fix (AG)
+       - clef fix (PC)
+
+pl 57.jcn1
+       - reincluded test/bow.cc
+       - promoted Bezier bows to standard
+         * bf's: broken slurs
+         * some bf's: verneukeratificering van JCN code
+         * some bezier slur doco
+         * calculate Ties with Bezier bow
+         * junked tex-slur.cc
+         * junked ps-slur code
+         * junked height-only slur-correction
+         * lots of bezier/slur fixes
+         * bezier:blow_fit
+
+**************
+pl 57
+       - verneukeratificering van JCN code.
+       - lots of updates on our own makefile system.
+       - junked automake & documented it
+       - put rods into Spring_spacer too. Much cleaner
+       - bf: weird spacings (enge floats)
+       - bf: too many constraints added.
+       - smarter constraint check
+       - bf: table16 fontsize.
+
+       - 56.jcn1's empiric computer science.
+       - debian patches (AF)
+       - solaris/irix patches (AO)
+
+
+ pl 56.jcn5
+       - bezier and slur: cleaning and fixes
+       - bf: removed silly experimental beam feature
+
+pl 56.jcn4
+       - reintruduced slope in bug [c8 c16 c16] in favour of stemlen bug...
+       - staff-side: accent half line higher
+       - reincluded silly los-toros latex file
+       - bf's: bezier.cc,bow.cc, mat.hh: rotate
+       - bf: bezier slur: handle broken slurs
+       - bf: beam
+       - dehairifications of bezier.cc
+
+pl 56.jcn3
+       - bf's: offset multiply, matrix rotate
+       - dropped los-toros latex file
+
+pl 56.jcn2
+       - even nicer excentric slurs; 
+       - input/slur-bug.ly
+       - los-toros with barnumbers ;-)
+       - nice version of height-ajust bezier slurs (see sleur.ly --test)
+       - bf's beam: 
+         * slope in[c8 c16 c16]; 
+         * allow no INTER position for normal quantising
+
+pl 56.jcn1
+       - bezier curves with raaklijnen
+
+pl 56.ag1
+        - `Makefile.am.wild's now should work correctly with VPATH (AG)
+
+************
+
+pl 56
+       - more dutch vocabulary
+       - Barnumber FAQ added
+       - bf: abbrev over whole note.
+       - feta: reverse turn.
+       - bf: rod distance
+       - bf: local key clashing
+
+***********
+pl 55
+       - bezier check and ajust for slur height
+       - better slur height ajust
+       - DO chmod 755 *test/*sh
+       - bf: discretionary of ||
+       - bf: scripts within staff
+       - NOT Grandstaff -> Grand_staff (yet?)
+       - bf: cresc. decresc. height lookup.cc,init/table*
+       - bf: staff-symbol (script placements)
+       - staff-group-bracket
+       - bf's preludes, los-toros
+       - nicer trills
+       - adjustment slur extend
+
+**********
+pl 54
+       - bf dynamic_grav
+       - bf accidentals with key change
+       - bfs with command-items in non-breakable columns.
+       - typos (thanks LM)
+
+pl 53.jcn1
+       - two new BUGs
+       - preludes-* with trills
+       - nicer trills
+       - fixed ugly slur extend bug
+       - first try at symphonic work: (start of) Coriolan
+       - fixes: los-toros
+       - test/ with some stupid tests
+       - bf, again midi-output
+       - --no-timestamps options for lily/mi2mu (to enable make check targets)
+       - removed doubles in lilypython
+       - smarter prev_version for make-patch
+
+***********
+
+pl 53
+       - bf: c4 \< c4 \< 
+       - bfs of spacing stuff
+
+
+pl 52.jcn6
+       - make check target
+       - moved flower/test to flowertest
+       - dist fixes
+       - flower no longer independent package
+       - bf: GNUmakefile
+       - bf's: configure: debugging (default) /profiling
+       - bf: Rational iface (fixes MIDI output)
+       - bf: non --srcdir configure + build with GNU make (ugh)
+       - ugh: autowildflower
+       - bf's: invoking wild-perl
+       - bf: ugh: staff-side.cc: placement height
+       - bf's: gnu 2.7.2 link (huh?, everyone using 2.8?)
+       - make-patch: default diff against (copy of) srcdir
+       - bin/conflily configures in ../build
+       - GNUmakefiles that do:
+         * auto-update of Makefile.am.wild
+         * auto-switch to builddir
+       - bf's: configure --srcdir
+       - fixes for los-toros/twinkle/test-lyrics
+       - latex file for los-toros (ugh)
+       - staff-side: symbols closer...
+       - half fix of midi output? duh.
+       - oboe1 los-toros
+
+************
+pl 52
+       - split up elem-group stuff.
+       - per line widths
+       - miscellaneous fixes by WL.
+
+
+pl 51.jcn1
+       - bf's: dutch->nederlands
+       - Cygnus b19 compile/link fixes
+
+************
+march 27
+pl 51
+       - changed dutch -> nederlands, german -> deutsch etc.
+       - norwegian (AG)
+
+pl 50.jcn4
+       - fixes for cygnus' gnu-windows32  beta19
+         be sure to compile with -fno-rtti
+       - proof of concept for automated updating of Makefile.am
+         see mi2mu/GNUmakefile (still somewhat clumsy)
+       - mv'd both config.hh.in to acconfig.h
+       - copied printing/debugging/optimising options to flower conf
+       - (some modified) fixes from AO
+       - beginnetje los-toros-oboe
+       - bf: DIR_DATADIR
+       - bf: trills
+
+************
+pl 50
+       - deprecate autowild
+       - --srcdir fixes
+       - ly2dvi 0.8
+
+pl 49.jcn2
+       - static (default) and/or shared libs flower and lily
+       - patch from AO 'libtool 1.1.1'
+       - mf: trill-symbols: feta-slag.mf
+       - shared libs (ugh: hardcoded switch in configure set to static)
+       - some fixes: denneboom.ly, standje.ly/standchen.ly
+       
+********
+march 19
+
+pl 49
+       - parser assert changed to warning
+       - fix stdin reading
+       - small jcn fix
+       - changed unbound Spanner from assert to warning
+       - forced breakpoints
+       - add a nowildcard: stmt to wild-perl
+
+pl 48.jcn5
+       - ugh: double parser/lexer: 
+         be sure to rm lily/parser.cc lily/lexer.cc or bin/clien 
+         before re-running autowild!
+       - V.RSION 
+       - bin/clien bin/meek
+       - bf's: flower/VERSION, flower/config.hh, lily/lexer/VURSION
+         lib/config.hh bin/convent-mudela
+       - lost of automake fixes
+       - automake
+
+******
+march 12
+pl 48
+       - Pitch_squash_engraver makes Rhythmic_staff possible.
+       - some fixes to buildscripts for sgi irix
+       - misc. patches (WL)
+       - move away from libg++: rolled own Rational class..
+       - don't make gif files Documentation/ by default 
+       - ly2dvi manpage (JAF)
+       - ly2dvi 0.7 (JAF)
+       - more clefs. (MB)
+
+pl 47.jcn2
+       - bf: interbeams and beam-stemlengths for size != 16
+       - bf's: preludes
+       - more introduction
+
+pl 47.jcn1
+       - voice{one,two,three} defines
+       - preludes-*: fixes, junked multi, broke-down score-block
+       - mudela-book: added center option
+
+******
+march 6
+pl 47
+       - Abbreviation now a separate item.
+       - bf'd some gcc 2.8 warnings.
+       - bf'd spurious space in autodep.
+       - more clefs (MB)
+
+pl 46.jcn1
+       - start mudela introduction
+
+
+pl 46.jcn2
+       - bf's: preludes-*
+
+*******
+feb 27
+
+pl 46
+       - span-bar at upstep.
+       - bf: \score { \score_identifier }
+       - tenor clef (MB)
+
+pl 45.jcn2
+       - preludes-4,5,6
+       - bf's denneboom (oeps, see loop)
+
+pl 44.jcn7
+       - text-item.cc: try to get fingers just above note...
+       - set minimum space between columns
+       - bff: mf/Makefile out/*log required: new .ly .tex's with make-dist :-(
+       - bf's midi ascii-debug output
+       - bf: property instrument 
+
+*******
+feb 12
+pl 45
+       - bf: translator switching 
+       - SunOS and IRIX patches (AO)
+       - preludes bugfixes; preludes.tex ugh (JCN)
+       - shared lib numbering (AF)
+       - various fixes for debian (AF)
+       - ly2dvi .6.jaf (JAF)
+pl 44.jcn6
+       - bf: crescendo.cc: bigger and use bar_size
+       - slur: guess extra height for height limit for extending notes/stems
+       - ps: adjustable slur height limit, bf crescendo
+
+
+******
+feb 6
+pl 44
+       - ly2dvi 0.6.hwn1 
+       - ly2dvi 0.6 (JAF)
+       - use ly2dvi for website
+
+pl 44.jcn2
+       - fingers default to above note
+       - preludes-2.ly
+       - parser: fingerings
+       - preludes-1.ly
+       - bf: denneboom.ly
+       - preludes-3.ly.m4, standje.ly, preludes-4.ly
+       - make rule for macro ly-files
+       - pletvisibility (init/property.ly): 
+         * default no bracket with beams
+         * invisible plet bracket feature
+       - finger dir in text-def
+
+*******
+feb 2
+
+pl 43
+       - bf: broken Plet_spanners
+       - more GNITting
+       - avoid some more global ctors, for NeXTstep
+       - some NeXTStep patches from tiggr
+       - don't do overstrike/bold chars in textfiles
+
+
+pl 42.jcn2
+       - bit hesitating start of mutopia
+       - bf: don't try to typeset unterminated plet
+       - separately sticky plet durations: "c4 c4*2/3 c8 c4*1/1", ok Mats?
+       - denneboom.ly (half-baked version)
+       - indent and shape, see ^ 
+
+pl 42.jcn1
+       - bf: memmem revisited
+       - bf: ps: draw_plet vertical endings
+       - renamed stem_start to stem_begin
+       - bf: plet bracket placing on differently orientated stems
+       - more standje.ly and fixes
+******
+jan 28
+
+pl 42
+       - ly2dvi 0.5 (JAF)
+       - italian.ly (thanks, Paolo)
+       - bf: first \mudelapaper output (BS)
+       - bf: cathedral + bazaar URL (thanks, Barrie)
+       - bf: libc-extension.hh (AO)
+
+pl 41.jcn4
+       - plet brackets (always) in ps (only)
+       - Plet_spanner derives from bow
+       - bf: mf/Makefile: let %.tex %.ly depend on %.mf,
+         iso non-distributed %.log
+       - mi2mu mudela 0.1.8
+       - bit better plet number placement
+       - handier plet syntax: [2/3 c8 c c ]1/1 and \[2/3 c2 c c \]
+       - Plet_swallow_engraver for lyrics
+       - bit better plet number placement (NOT)
+       - new plet syntax: combined beam and plet open
+       - more standje.ly 
+       - new plet syntax: start: \plet2/3 stop: \telp1/1
+       - Plet_req, Plet_engraver; removed plet stuff from beam
+
+******
+jan 20
+pl 41
+       - warn for score with multiple Music blocks
+       - bf: \plet (MB)
+       - \textsharp in 16pt
+       - malloc frobnifying
+       - more fontsizes: 26pt, 11pt, 13pt
+       - \textstyle "bold"
+       - .rpm: remove old fonts
+
+pl 40.jcn2
+       - bf: typo scores.cc
+       - bfs: non-default base constructor calls
+       - bfs: virtual destructors
+       - standje.ly: the real standchen (first bit)
+       - gcc 2.8 compile
+       - nicer scsii-menuetto
+
+pl 40.jcn1
+       - bf: breaking of :| bar
+       - bf: lyric substitution of _ -> ' ' flower/libc-ext:memmem
+       - no slope=0 beams between stafflines
+       - bf: tex without lily-ps-defs
+       - bf: embedded mf shift: added '%' to \embeddedps
+       - doos compile
+
+******
+jan 12
+pl 40
+       - some doco fixes
+       - debian diffs (AF)
+
+pl 39.jcn2
+       - bf: bit smarter atan() for feta-sleur (thanks wendy)
+       - bf: y quantise of multiple down beams (typo)
+       - minor doc fixes
+       - bf: distribute mfdeps and moved from mf/out/mfdeps to mf/mf.dep
+       - some changes to ANNOUNCE
+       - fixes for simple slur/tie placement
+       - embedded MF fonts identified by parameters -> reusable runtime fonts
+       - clean-embeds.sh
+       - runtime MF beams: feta-beum.mf
+       - bf: enable switching PS off
+       - updated runtime MF feta-sleur.mf with new PS slur algorithm
+
+******
+jan 5 1998
+pl 39
+       - 0.2 ANNOUNCE sketch
+       - unix style paths for LILYINCLUDE env
+       - show all output pages on website
+       - ps-to-gifs.sh
+       - bf: wtk1-fugue2
+       - python make-website
+       - higher brace resolution 
+       - phased out musixtex stuff
+       - bf: rhythm.ly
+       - PS slurs
+       - PS beams
+       - Bow units
+       - turn on PS by default
+       - turn off barnumbers by default.
+       - bf: halfbeam size.
+       - bf: -M bug
+       - stafflinethick in PS (crescendi)
+       - continued (de)crescendi (in PS)
+       - bf: spurious beam reqs
+       - handle unfeasible spacing cleanly. 
+       - ML-address change
+       - output naming: default to basename[-serialnumber].{midi,tex}
+       - bf: clef width
+
+pl 39.jcn2
+       - make-examples.sh
+       - leftright repeat sign + repeatbar dims
+       - smaller minimum sized rod at end of bar
+       - bf: spacing.ly 
+       - less space at begin of bar
+       - experimental whitespace fixes at begin and end of bar
+       - added to beams.ly
+       - open-up beam spacing for mult > 3
+       - fixed hang/sit to overlap iso aligne with staffline
+       - fixed inter beam spacing, paper*.ly
+       - scsii-menuetto.ly fixes
+       - init/property.ly
+       - property settings for beam quantiseing and damping
+       - provisionary multiple-beam fix
+
+******
+pl 38
+       - bf: \> \! \ff (crescendo overlap)
+       - misc feta-fixes, flageolet sign.
+       - midi tempo fixes.
+pl 37.jcn3
+       - max beam slope "compile time parameterised" and set to 0.6
+         (oh, how we need runtime generated beams!)
+       - beam's left y-pos quantisation
+       - beam slopes' y-span quantisation
+       - stem.ly
+
+pl 37.jcn2
+       - feta: fixed sizes small numerals + flageolet
+
+
+*******
+dec 12
+pl 37
+       - --postscript
+       - don't crash non-fitting grouping (thx, John)
+       - attach unended spanners to a column (thanks John)
+       - bf: unended tie
+       - bf: tie direction
+       - bf: unended slur
+
+pl 36.jcn2
+       - feta: small numerals
+       
+********
+dec 9
+
+pl 36
+       - bf: notehead collisions
+       - bf: dot y-position
+       - use Item::break_priority_i_ for horizontal alignment of breakables.
+       (it still sucks)
+       - junk some derivation checks, junk Normal_*_bar
+       - FlowerLib fixes.
+       - twinkle fixes.
+       - feta: flag/clefspacing
+
+
+*******
+dec 5
+pl 35
+       - naming: lily-init iso symbol.ly
+       - mf braces
+       - center textscripts.
+
+pl 34.jcn1
+       - mf: nicening of dyn, klef, rest
+       - fingerfont
+       - bf: 12/8
+       
+
+********
+dec 2
+pl 34
+       - bf: mf: numbers and alto clef
+       - bf: scsi-menuet
+       - PS crescendos
+       - ly2dvi diffs (JAF)
+       - debian diffs (AF)
+       - w32 doco fix (JCN)
+
+
+********
+nov 24
+
+pl 33
+       - added abbrev.ly to font.ly; rm'd abbrev.ly
+       - don't process scores on parse errors.
+       - bf: kortjakje.ly
+       - bf: invisible stems in beams (abbrev.ly)
+       - lytodvi script (JAF)
+       - output Paper_def settings to TeX file. (eg: linewidth)
+
+********
+nov 19
+pl 32
+       - change type checks (ughugh) to derivation checks (ugh)
+       - this fixes clef bug.
+       - bf: order of breakables: meter comes after bar.
+       - bf: do error iso coredump on unknown symbol-table
+       - bf: release.py, copy patch too. 
+       - bf: add makefile dep for disting MF logs.
+       - bf: don't read font-en-tja*.ly, but feta*.ly
+
+pl 31.jcn2
+       - first version of (non-ugh) c-klef
+       - bf: mi2mu: notes of zero duration as comments
+       - feta: ugh c clef
+
+
+********
+nov 17
+
+pl 31
+       - bf: replaced Score_column assert by a warning (thanks Scott)
+       - bf: mi2mu version output (thanks Scott)
+       - faq updates
+       - always output lily header with  Lily version
+       - bar mucking: make scorebars/braces different from repeat bars.
+       - feta: repeatcolon, clef bf's
+       - debian/ updates. (AF)
+       - moved debian stuff into toplevel dir
+
+********
+nov 11
+
+pl 30
+       - feta: G clef. 
+       - scripts now do relative coords (fixes lyrics + barnumber bug)
+       - bf: Lyrics lexer mode
+       - bf: bass clef
+
+********
+nov 6
+pl 29
+       - feta: bass clef, bf: dynamics, bf: 64th flag
+       
+
+********
+oct 30
+pl 28
+       - revised Staff_symbol::brew_molecule_p ()
+       - naming: \makelilytitle
+       - fixes for TeX titledefs (JAF)
+       - junked some obsolete pedal stuff.
+
+pl 27.om-je-te-helpen-met-je-ps-spul.jcn1
+       - embedded slurs:
+         * bf: placements
+         * added \embeddedtex
+         * postscript is default
+         * fixed \embeddedps
+         * fixed mf: draw_slur
+         * postscript macro: draw_slur
+
+********
+oct 29
+pl 27
+       - -t/--test switch for experimental stuff.
+       - bf: debian optimize is not with 'z'
+       - mf: naming feta fonts are now called feta16, feta-beams16, etc.
+       - feta: ledgerline
+       - lily adjustments for new and elegant ledger line
+       - bf: mf-source path.
+
+pl 26.jcn1
+       - bf: numerals
+       - sleur.ly
+       - embedded slur testing 
+       - bf + patch: make-patch release.py / VERSION
+
+
+********
+oct 26
+pl 26
+       - bf: \transpose
+       - feta: numerals 0 - 9, rewrote flags.
+
+       
+
+********
+oct 22
+
+pl 25  
+       - variable stemlength
+       - feta: 32nd, 64th flags
+       - font.ly
+       - dist & tarball made in out/
+       - rewrote release.sh in python
+       - notehead/stem attachment better.
+       - more Stem cleanage
+       - related Beam cleanage
+       - started numeral font (JCN)
+       - bf: whole rest outside staff.
+
+*********
+oct 20
+pl 24
+       - internationalization preps (FP)
+       - rewrote make-patch in python
+       - BUGS: added another flex/libio crash explanation
+       - feta: flags
+
+
+********
+pl 23
+       - feta changes: 1/4 rest, flat, bf 8-128 rest
+       - bf: cadenza
+       - bf: scripts
+       - bf: rest-collision
+       - bf: meter placement
+       - junked cpgento.sh
+
+*********
+
+pl 22
+       - bf: lyric 's- Zondags
+       - bf: colliding accidentals: renamed translate(Real,Axis) to translate_axis()
+       - renaming of scripts
+       - strings with escaped characters.
+       - bf "string_with_\"_embedded"
+       - bf: mf/Makefile
+       - feta changes (trill, organ pedals)
+       - updated mf-to-table for new feta conventions
+       - changed header format to something sensible.
+       - moved staff to centerline == 0;
+
+********
+
+pl 21
+       - shrinking uses more energy  than stretching
+       - check IO error on writing (disk full?)
+
+
+*********
+
+oct 8
+pl 20
+       - don't swallow non lyric-stuff in lyrics
+       - x-position of Stem
+       - more feta changes
+       - move scripts to right
+       - genheader.py replaces genheader.perl
+
+pl 19.jcn2
+       - bf's mi2mu:
+         * Midi_track_parser::note_end_all
+         * staff output uses key, meter, tempo read
+         * command line read minor key
+         * minor key notenames
+
+pl 19.jcn1
+       - small changes to sharp, fermata
+       - small changes to lilypond.lsm+doc, lelievijver.lsm
+       - mi2mu updeet + bf
+
+pl 19
+       - bf: keyword.cc rm'd struct defs
+       - dots: support for feta dots.
+       - lots of font (feta) tjanges
+       - mf-to-table rewrite in python
+
+*********
+pl 18.jcn1
+       - check for python, mf-deps fix
+
+pl 18
+       - bf: Box[X_AXIS] = b
+       - bin/mf-deps.py script
+       - moved beams out of font-en-tja into vette-beams.  
+       - Made corresponding .cc changes.
+       
+
+jcn patches
+       - egcs compile (no link yet)
+       - nicer 4rest
+       - beam font (je kunt wel tegen een grapje, eva?)
+       - mf-to-table: 
+         * "breapth" (x-depth) feature
+         * handle generic stuff such as beams
+       - polished noteheads
+       - fixed 8-128 rests
+       - 4rest
+       - mf-to-table generates tex defs
+       - bf:mf-to-table and conflily outname check
+       - 8-128 rests
+
+******
+sep 24
+pl 17
+       - bf: ledgerline width
+       - bf: toccata-fuga-E
+       - took out some hardwiring of tex-beam
+       
+pl 16.jcn1
+       - mf-to-table.in: generate mozarella metric info tables
+       - autometric.mf: write metric info to mf logfile
+       - ital-r.mf, smaller ital-m.mf
+       - variable streepjes length (top/bottomlines); fixed (for 20pt?)
+       - streepjes twice as thick as staffrules
+       - even more pronounced bolletjes -- how 'bout this wendy?
+       - quarter and half note after drawings (a/b less distinct)
+
+*****
+sep 19
+pl 16
+       - revised mudela-man a bit
+       - ; optional after \musicidentifier
+       - bf: doco about {Mus*,Opus}TeX
+       - bf: configure: MFDIR
+       - bf: String::operator bool () removed
+       - bf: String::operator char const * () removed
+       - bf: Line_spacer::~Line_spacer () added: plugged memleak
+       - bf: Line_of_score::do_unlink () call Spanner::do_unlink
+       - bf: rests in beams
+       - bf: textnatural
+       - bf: 20 pt flags
+       - bf: longarest 
+       
+pl 15.jcn1
+       - bf: typos whole and half notehead
+       - de-uglyfied bolletjes.mf
+       - ascii output of font metrics in mf logfile
+
+******
+sep 17
+
+       
+pl 15
+       - put top of NEWS file in the webpage
+       - breadth first search for engravers.
+       - bf: coriolan-alto.ly
+       - Stem / Notehead width now properly calced
+       - Atom and Symbol merged
+
+pl 14.jcn1
+       - lily's own noteheads (balls/globes :)  (font-en-tja*.mf)
+       - {table,paper}* and taupindefs adaptations (when are we moving?)
+       - fp, sf, sfz dynamics
+       - font.ly
+       - bf: dist mudela-mode
+
+*******
+sep 15
+
+pl 14
+       - Simple but nifty mudela-mode.el for Emacs
+       - slightly better syntax for single-note-repeat, now default kept in
+Stem_engraver
+       - bf: Abbrev_beams are not the only beams (see: jcn4, stem-info, thanks, Jan)
+       - a CPU timer for Interpreting and Breaking
+       - Separate Score_elem:
+         * invoke-once stuff in Super_elem (using function pointers; much cleaner now)
+         * geometrical stuff into Graphical_element
+         * Axis_group_* accept Graphical_elements iso. Score_elems
+         * A dimension cache, hopefully this makes lily a bit faster
+         * TeX output moved out of Score_elem, separate interface Outputter
+       
+       - < \multi 2; bla >  -> \multi 2 < bla > (mudela 0.1.6)
+       - bf: don't do \multi if \type specified
+       - Translator switching: Change_translator, Change_iterator
+       
+
+pl 12.jcn4
+       - fixed dynamic f, magstep bug
+       - gaps on abbrev-beams 
+       - bf: stem-info
+       - bf: last abbrev
+       - bf: stem: do_width
+       - bf: removed rest-column.hh
+
+*******
+sep 11
+
+pl 13
+       - big Rest/notehead rewrite:
+         * separated Rest, Note_head and Dots
+         * Dot_column: dots are now chord-wise aligned 
+         * Rhythmic_head is base for Rest, Note_head
+         * Merged Note_column and Rest_column
+         * Rest_engraver
+       - grand Engraver/Translator/Performer rewrite.
+         * properties:  \property voice.dir = -1 (mudela 0.1.3)
+         * Input_translator junked, now Translators are generated
+by the parser (mudela 0.1.4)
+         * Translator changing: \translator Staff=oboesolo
+         * Translator preselect: \type Staff=bla < c4 >. (mudela 0.1.5)
+         * Engraver/Performer now derived of Translator.
+         * Engraver_group_engraver/ Performer_group_performer derived of
+       Translator_group
+         * renamed: Voice -> Thread, Voice_group -> Voice
+       - renamed Audio_score to Performance
+       - junked mididef statics
+       - Audio debug output
+       - bf: excess [] in scsi
+       - bf: swallow \skips
+       - bf: don't crash on infinite dims
+       - renamed wohltemperirt to wtk1-fugue2
+       - bf: address in GPL
+       - bf: errors in stdin
+       - bf: stop if errors in init files
+       - bf: move stem too when doing collisions
+       - Molecule::add_XXXX -> Molecule::add_at_edge ()
+       - doco updeet: why no midi FAQ, index, CodingStyle hungarian
+
+
+pl 12.jcn3
+       - try at better dynamic font, copied from cmbxti10: mf/*
+       - typesetting abbreviation beams; abbreviation-*
+       - some simple abbrev fixes + code cleanup (dank je, lieverd)
+       - typesetting simple abbreviations: c4:16 === [c16 c c c]
+
+pl 11mb
+       - Support also for \longa in duration-convert.cc, init/ and tex/
+         files. (MB)
+
+********
+sep 3
+
+
+pl 12
+       - bf: don't redefine tex primitives like \textfont and  \mathfont
+       - nicer broken slurs (?)
+       - bf: error status upon parse error
+       - robustness in Lookup::*slur
+       - bf: mi2mu: warn if 0-length string in midi-file
+       - output id-footer
+
+********
+sep 1
+
+pl 11
+       - forms for Musical vocabulary 
+       - ignore \r for windows
+       - Now paper{score,def} & midi{def,score} derived of class
+Music_output[_def]. Score is almost empty.
+       - Engraver hacking:
+         * junk Text_engraver
+         * Timing_engraver
+         * barnumber now really counts the number of bars
+         * Separated Stem_engraver and Beam_engraver
+         * junk Stem_beam_engraver
+         * no need for Stem_reqs
+       - use Direction = {LEFT, RIGHT, UP, DOWN} iso. -1, 1 throughout source
+       - ties and slurs with Drul_array
+       - junked Spanner_elem_group
+       - bf: w32 fixes
+       - Spanner now spans items.
+       - more GNITting ( bla ) -> (bla), indentation
+       - Drul_array
+       - Paper_column now is derived of Horizontal_group_item. Items
+are no longer hardwired into a Paper_column
+       - bf: stdin input
+       - PCol -> Paper_column
+       - Wtk-i, fugue1, prelude1 (SR)
+
+*******
+aug 21
+pl 10
+       - bf: init pending_indent_i_
+       - output header to TeX file. Who wants to write TeX to make it work?
+
+       - mi2mu: bf's, --key option
+       - removed Duration(int,int)
+       - bf: Duration_convert::dur2_str
+
+pl 9.jcn2
+       - redo of mi2mu frontend (midi-parser)
+       - bf: String_convert::bin2_i; added bin2_u
+       - bf's: Binary_source_file
+       - bf: constr. Tempo/Timing_req
+pl 0.1.8.jcn3
+       - table20, standchen-{16,20}*
+*******
+aug 18
+
+pl 9   
+       - declare rhythic_request
+       - preliminary support for real \mudelaheaders
+       - context-sensitive arithmetic spacing. Looks alot better
+       - silly GNU braces.
+       - JCN fixes for pl 8
+       - bf: midi instrument
+       - Vocabs from GMP-I
+
+pl 8.mb:
+       - use log of duration-name
+
+*******
+aug 15
+pl 8
+
+       - gif -> xpm
+       - bf: Whoops! Open eyes now, when finding shortest note in
+spring-spacer. Fixes spacing problems.
+       - GNU coding: parentheses (here you are, Franc,ois :-)
+       - all macros now UPPERCASE
+       - Identifier blondification: don't use void*
+       - Identifier doesn't store its name. Much cleaner now.  
+       - bf: Rest_collision_engraver now always announces
+       - bf: announce Staff_sym only once
+pl 0.1.7.jcn1
+       - complete redo mid/back-end of mi2mu
+       - bf: do not create/play empty Audio-{text,instrument} events
+
+
+********
+aug 14
+
+pl 7
+       - Audio_element as base for Audio_item and Audio_staff. fixes
+midi-lyric segfault
+       - added "Gallina a due violini" (MB)
+       - make MIDI files on website.
+       - Collision now also is an Element_group.
+       - bf: announce Collision when created
+
+********
+aug 13
+pl 6
+       - bf: 13 shift/reduce in parser fixed
+       - bf: plets in parser
+       - bf: main.o (again)
+       - german notenames (RM)
+       - Score_elem::offset_ now relative to its X/Y groups. Slight
+speed increase? 
+
+********
+aug 12
+pl 5
+
+       - Wordwrap revert
+       - added LilyPond in WWW titles
+       - oops. A quaver is a 8th note, not a 4th
+       - bf: main.o remaking in lily/Makefile 
+       - unhair Voice_iterator 
+       - bf: error if no music in score
+       - bf: don't create translators if Chord element is empty
+       - bf: ctor of Tempo_req
+       - use virtual do_equal_b() for request comparison
+       - bf: turned off default plets: c4*2/3 c4*2/3 -> c4*2/3 c4*4/9
+       - bf: time_int() of an empty chord/voice
+       - more corrections to GMP Manifesto
+       - debian updates (AF)
+       - bf: g++ ICE in Performer_group_performer
+       - use fread() for reading in Simple_file_storage
+
+pl 0.1.3.jcn1
+       - mi2mu: simplification +bf lily_stream: indentation and wordwrap
+       - mi2mu: bf: blunt: non-alpha(num) chars from identifiers
+
+*********
+aug 11
+
+pl 4
+       - correction of GNU Music Manifesto
+       - moved lowlevel stuff of Source_file to Mapped_file_storage. 
+Interface via File_storage. (Now using Simple_file_storage)
+       - bf: c4-"A"-"B"
+       - bf: exit status
+       - declarable keys
+       - Engraver_group_engraver::find_simple_engraver()
+       - bf: lily/Makefile
+       - bf: Midi_note_event ctor 
+       - bf: tempo request
+       - popular twinkle twinkle (JV)
+       - mudela: parse tempo requests, \midi{ \tempo 4= 60;}
+
+******
+aug 8
+pl 3
+       - don't crash if no Clef_engraver.
+       - PScore -> Paper_score
+       - bf: Score_elem::extent() init of interval
+       - bfs: {Horizontal,Vertical}_group related
+       - bf: don't change original Item while doing making 
+       multiple copies
+       - bf: configure DATADIR
+       - bf: type of spanbar.
+
+pl 0.1.2.jcn1
+       - minor doco fixes
+       - revived Midi_walker
+       - moved midi out of performer-* to audio-*
+       - Audio_staff
+       - removed all <ugh> members from performers
+
+*******
+aug 7
+pl 2
+       - junked Line_of_staff
+       - bf: --output
+       - bf: . in lexer
+       - bf: mi2mu version number.
+       - bf: in mudela-book
+       - bf: don't forget to make mi2mu
+       - Bar_number_grav: measure numbers (experimental)
+       - Bar_column_engraver, Bar_column: scripts on bars
+       - rewrite of {Horizontal,Vertical}_group. Yes, again. 
+Now neatly integrated into class hierarchy
+       - Axis, Axis_group
+       - Debian rules (AF)
+
+pl 0.1.1.jcn1
+       - Audio{column,score,item,...}, more generic audio
+       - bf: Makefiles
+       - bf: mi2mu mudela version
+*********
+aug 5
+
+pl 0.1.1
+       - {Horizontal, Vertical}_group.  A score_element may be in at most one.
+       - This means Horizontal_group_item and Vertical_group_spanner need special support.
+       - This also means a big speed increase
+       - configure cleanup
+       - bf: Choleski solve.
+       - doc updates: lilygut, INSTALL
+
+pl 0.1.1.hwn
+       - recode of Break/Colhpos interfaces
+       - Gourlay_breaking: dynamic-programming optimal solution for 
+       casting off. Word_wrap is still optional
+       - some printing short cuts if no -d specced.
+       - band_matrices for column calcs
+       - more Diagonal_storage fixes
+       - retake: INFTY fixes ( now infinity_mom, infinity_f )
+
+pl 78.jcn3
+       - configure: ln and zip 
+       - target doosdist -> lilypond-x.x.x.exe.zip: + executables - sources
+
+
+
diff --git a/Documentation/misc/CHANGES-1.0 b/Documentation/misc/CHANGES-1.0
new file mode 100644 (file)
index 0000000..5cff9ea
--- /dev/null
@@ -0,0 +1,515 @@
+pl 17
+       - fixed RPM building.
+
+pl 16.hwn1
+       - ridiculous slur dims fixed.
+       - ly2dvi32.py -> ly2dvi.py, ly2dvi.sh -> ly2dvi-old
+       - use re iso. regex for python stuff.
+       - bf: mudela-book.py
+       - updated install directions.  Made lilypond-login for csh
+       - bf: installdirs of MF stuff
+       - Dictionary implementation using hash tables (LilyPond is 3% faster)
+       - Cache [non]group_l_arr () calls in translator-group.cc (LilyPond is 4% faster)
+
+pl 16.uu1
+       - debian URLs, make/stepmake.make  patch
+       - further debian fixes.
+       
+pl 14.tca1
+       - partitas
+       - prall{mordent,prall} patch.
+
+******
+pl 16
+       - read property ydirection and tieYDirection for tie direction.
+       - bf: slur over rest.
+       - bf: include path
+       - part of jcn2
+       - configure --enable-guile
+
+pl 15.jcn1
+       - autoconf on mf,mfont mp,mpost
+pl 15.am
+       - Lots of patches from *Adrian* *Mariano*!
+
+**********
+
+pl 15
+pl 14.hwn1
+       - \lyrics iso \lyric (mudela 1.0.7)
+       - cleaned up real_expression syntax.
+       - removed optional_semicolon nonterminal after toplevel assignment
+       - MInterval Music::time_int () -> Moment Music::duration ()
+       - junked Music_iterator::daddy_iter_l_
+       - junked Sequential_music::offset_mom_
+       - tempo compression:
+               * syntax: \times 2/3 Music
+               * Compressed_music, Compressed_music_iterator
+       - flower: init rational to 0
+       - flower: removed P?Cursor<>::P?Cursor (), using pointer iso ref now.
+       - don't install into TeX, but into ${datadir}/{mf,tex,ly} (todo: ps)
+
+
+*********
+pl 14
+
+pl 13.uu1
+       - syntax for \translator: (\name  "Name")
+       - bfs for footer
+       - bf: init/{book,center}-fragment.ly, YODL nofooter stuff. 
+       - bf: redeclaration
+       - bf: doc fixes
+       - bfs: egcs 1.1
+
+pl 13.mb1
+       - bf: Lookup::afm_find, the width was undefined for the feta fonts.
+       - bf: refman.yo
+
+pl 13.jcn5
+       - bf: init/paper* missing `;'
+       - lilyponddefs.ps fixes
+       - crude output name fix, see scores.cc
+
+pl 13.jcn4
+       - some ps output fixes
+       - lilyponddefs.ps: some sane implemenations
+       - removed (some) ghostscript internals
+
+pl 13.jcn3
+       - PostScript output version 0.0; do
+             export GS_LIB=$HOME/usr/src/lilypond/tex
+             export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
+             make -C mf pfa
+             lilypond -t example-1  # or try: lilypond -t twinkle :-)
+             gv lelie.ps
+       - ps:
+         * lots of output fixes, chars, strings
+         * tex/lilyponddefs.ps: added rather braindead defs
+
+pl 13.jcn2
+       - tex/lily-ps-defs.ps (./tex?)
+       - grand output rehack
+         * dropped {dimen,tex}.{cc,hh}
+         * {ps,tex} stuf to {Ps,Tex}_lookup
+         * init/table*.ly: added #parameters
+       - ps fonts:
+         * ps-to-pfa.py generates valid type-3 fonts
+         * do: make -C mf pfa
+         * set: GS_FONT=GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
+
+pl 13.jcn1
+       - crude postscript type 3 font: 
+          make sure to have mfplain.mem metapost precompiled macros
+          make -C mf ps
+          gv out/feta20.sp
+
+********
+
+pl 12.mb1
+       - bf: feta-timesig.mf Added horizontal space, minor corrections.
+       - Changed meaning of Staff.timeSignatureStyle:
+               C       Use C and stroked C for 4/4,2/2
+               old     Use old style mensuration marks
+               1       Use single number
+               Cn/m    Set symbol explicitly, n/m=2/2 or 4/4   
+               oldn/m  Set symbol explicitly, n/m=2/2,3/2,3/4,4/4,6/4 or 9/4.
+         All other time signatures are typeset with the default two-digit
+         layout.
+               
+
+pl 12.jcn2
+       - Lookup abstract base class
+       - Lookup/Symtable(s): separation of input/output
+
+pl 12.jcn1
+       - preparations for braindead PostScript output
+
+pl 12.hwn3
+       - praeludium-fuga-E to relative mode
+       - bf: mudela-mode.el
+       - bf: BIBINPUTS
+       - more dutch glossary + explanations
+       - table-to-html fixes
+pl 12.hwn2
+       - bf: mymycode in .yo
+       - VERSION to out/
+       - add VPATH to mutopia
+       - access_Identifier (bool): (non)copy arg now explicit.
+       - bf: lilypond-latex.tex
+  
+
+
+pl 12.hwn1
+       - \remove "Engraver_type";
+       - \output "bla" -> output = "bla" (mudela 0.1.6)
+       - \property defaultclef -> \property defaultClef
+       - naming of access_{Engraver,Performer,Translator_group} ()
+       - changed syntax for \translator in \paper{} (mudela 0.1.6)
+       - declared contexts:
+
+               StaffContext = \translator { .. }
+               \translator { \StaffContext }
+
+       - elt_b -> elem_b
+       - bf: add Separating_line_group_engraver to RhythmicStaff.
+
+
+pl 12.am1
+       - large doc patch, ChoireStaff -> ChoirStaff
+
+*******
+pl 12
+
+pl 11.uu2
+       - added Transposed_music for mixing transposition and relative 
+
+pl 11.jcn1
+       - bf: config.make striproff
+       - texinfo
+pl 11.mb2
+       - feta-timesig.mf: Added some flesh on C and C2,
+         added old-style mensuration marks.
+pl 11.mb1
+       - Added feta-timesig.mf, font for C and alla breve.
+
+
+pl 11.uu1
+       - new \property: meterSignatureStyle for C and C2 time sigs
+       - bf: BIBINPUTS
+       - stepmake 53
+       - bf: gif vs. png stuff
+
+*******
+pl 11
+
+pl 10.uu2
+       - plet-spanner fix. 
+       - large doc patch (thanks Adrian)
+
+pl 10.jbr1
+        - aclocal.m4, stepmake/aclocal.m4: Choose specific python
+        - stepmake/bin/release.py: Use the same python calling process
+        - make/lilypond-vars.make: PATH should not use PATHSEP.  It is fine 
+          to hard code it to `:' on both Windows NT and UNIX.
+        - stepmake/bin/package-zip32.sh: Perform configure with a specific
+          python, ie cygwin32 python on Windows NT
+
+pl 10.uu1
+       - junked \octave
+       - marginBreakPriority, direction==LEFT
+       - mf-to-table NT fix (JBR)
+       - createKeyOnClefChange property
+
+
+pl 10.jcn1
+       - mf-to-xpms for Harmonia
+  
+pl 9.jbr1
+        - scripts/convert-mudela.py: We must close infile and outfile before
+          a rename occurs.  NT Windows locks open files.
+          stepmake/bin/package-zip32.sh: renamed all python bins to:
+          <filename>.py in NT Windows distribution.
+
+
+*********
+pl 10
+
+pl 9.jcn1
+       - started gnuisation of website
+         * filetype and size
+         * 'no gifs due to patent problems'
+       - bumped stepmake version nr (again):
+         please update stepmake/VERSION after making changes to stepmake...
+  
+pl 9.hwn1
+       - do default midi,paper by toplevel \paper / \midi (mudela 1.0.4)
+       - bf: error if no Score context
+       - notename table now can be declared as well.
+       - junked \clear
+
+*********
+pl 9
+       
+pl 8.uu1
+       - junked \staff, \multi
+       - bf Music_list::Music_list (Music_list const&)
+       - AC_SUBST(PATHSEP,DIRSEP)
+       - generate Documentation/tex/out/*.bib (AM)
+       - a4 fixes (AM)
+       - bf: metafont-*.make
+       - parser.yy: intlist mods. (mudela 1.0.2)
+       - \melodic -> \notes (mudela 1.0.3)
+       - typo: calcalute_dependencies ()
+
+pl 8.jcn3
+       - gif -> png
+           * ps-to-pngs.sh
+           * stepmake
+           * website
+           * yodl-1.31.4 (to be released)
+       - target 'texinfo' -> 'info'
+
+pl 8.jcn2
+       - more doco in texinfo (with yodl pl3)
+       - bf's: package-diff
+
+pl 8.jcn1
+       - removed tutorial from texinfo, yodl2texinfo is still rather broken
+       - bf: setlocale NUMERIC to 'C'
+       - removed ugly space from print-dimen
+
+*******
+pl 8
+       - make website fixes.
+
+pl 7.jcn1
+       - minor stepmake/yodl fixes
+pl 7.uu1
+
+       - changed separator in vocabulary
+       - added barAlways and defaultBarType properties.
+
+pl 7.hwn1
+       - changed header format.  Use a + for concatenation.
+
+               \header { key = "concat" + "string" }
+       
+       (mudela 1.0.2)  
+       - allow computed properties in translator definition
+
+               GrandStaff = \translator {
+                       minVerticalAlign = 1.5\staffheight;
+                       ..
+               }
+
+       - Music inheritance. Datastructure and parser now follow this grammar
+
+               Music_list:
+                       | Music_list Music
+                       ;
+               Simultaneous_music: '<' Music_list '>'
+                       ;
+               Sequential_music: '{' Music_list '}'
+                       ;
+
+       - bf: Item::do_unlink () don't iterate on attached_span_l_arr_,
+because it is changed by Spanner::set_bounds () (thanks Thomas)
+       - bf: URL Documentation/index (thanks EP)
+       - bf: twinkle.ly (thanks EP)
+       - bf: mi2mu (thanks Murray)
+       - bf: mudela-book --dependencies
+       - split LaTeX and TeX stuff
+
+pl 7.tca1
+       - more Partita's 
+
+pl 7.jbr1
+        - aclocal.m4,make/lilypond-vars.make: added PATHSEP as AC_SUBST to  
+          help support Windows NT doco build.  
+          Documentation/ntweb/index.yo: minor spelling changes
+
+
+*************
+pl 7
+       - refman updates by Adriano Moriano.
+
+
+pl 6.jbr2
+        - scripts/ly2dvi32.py: Fixed bug with lily input including multiple
+          files.  Also, we now stream out lilypond log one line at a time
+          for better feedback.
+
+pl 6.jbr1
+        - scripts/ly2dvi32.py: Added some doco, add postscript option, set
+          MFINPUTS along with TEXINPUTS, modified initialization sequence. 
+          Made some Python style changes per Han-Wen suggestions.
+        - Documentation/man/ly2dvi32.yo: Added a manpage for ly2dvi32.
+        - stepmake/bin/package-zip32.sh: Added doco distribution.  Removed
+          the installation directory after zip operation.  
+        - Documentation/ntweb/index.yo: LILYPOND -> LILYPONDPREFIX and 
+          comments about MiKTeX-1.11.
+
+pl 6.tca1
+       - First movement of Partita II (BWV 826) in 
+         mutopia/J.S.Bach/Cembalo-Partitas. Lilypond output was so
+         beautiful that I'll have to write the rest of the partita.
+
+pl 6.uu2
+       - mudela-book.py --dependencies
+       - more doc fixes (AM)
+       - warn if declaring a keyword.
+       - \grouping 4 2*3; now accepted.
+       - patches to standchen.ly
+
+pl 6.uu1
+
+       - mudela-book handles \input now
+       - vocabulary fixes by Adrian Moriano
+
+********
+pl 6
+       - largish rehack:
+         * Super_element is now an `abstract' class,
+         * Paper_score directly contains one Line_of_score.  The
+       breaking/postprocessing/deletion is mixed with the output phase.
+         * Hopefully this will save memory for large scores. (benchmarks, anyone?)
+         * bf: Horizontal_vertical_group_item::do_unlink () should call
+
+       Axis_group_item::do_unlink ()
+
+       - changed LILYPOND to LILYPONDPREFIX
+       - added tfm and dvi target for mf/
+       - reincluded english.ly
+       - doc fixes (thanks, Adrian Moriano)
+       - doc fixes.
+       - mf: ex height added.
+
+pl 5.mb1
+      - Mudela 1.0.1: Changed \accidentals -> \keysignature
+      - Identifiers can be used in textual scripts:
+
+
+       tempoString="Allegro molto assai";
+
+               [...]
+
+       c^\tempoString 
+
+
+
+pl 5.jbr2
+        - aclocal.m4,config.h.in,flower/file-path.cc: Added PATHSEP and 
+          DIRSEP to configuration to support windows style path and pathlists.
+        - stepmake/bin/package-zip32.sh,stepmake/stepmake/package.make:
+          zip target now calls package-zip32.sh which creates winnt 
+          binary distribution zip file. xzip target continues to use 
+          package-zip.sh for Jan's cross-compiled version.
+        - lily/main.cc: Added a search for LILYPOND environment variable to
+          better facilitate binary distributions. 
+        - Documentation/README-W32.yo: Updated information on running lilypond
+          on winnt.
+          
+
+
+pl 5.jcn1
+       - (step)make fixes from yodl
+       - minor doco fixes
+       - bf: patch in website after 'make release'
+
+pl 5.jbr1
+       - Documentation/ntweb/Makefile: Used absolute url for LilyPond Homepage
+       - Documentation/ntweb/index.yo: Minor mods per Jan's suggestions
+
+
+
+
+*************
+pl 5
+
+pl 4.jcn1
+       - texinfo docs, lots of yodl TODO
+       - junked some makefiles
+       - ntweb: use BLURB
+       - bf: pletvisibility 
+       - adaptions for yodl-1.31.2's automatic texinfo conversion 
+       - reinclude of 1.jcn2:
+                 - renamed -alto -> viola
+                 - bf: avant-gardish six preludes
+                 - bf: ly2dvi warnings
+
+pl 4.jbr1
+       - stepmake/stepmake/install-outfiles.sub.make: fixed typo
+       - scripts/GNUmakefile: add ly2dvi32 to installation list and fixed
+         included executable-targets.make to facilate installation of scripts
+       - Documentation/ntweb: Fixes to nt web page and added topdoc like
+         automation.
+
+*********
+pl 4
+pl 3.mb2
+       - Changed text script alignment: center -> left
+       - TeX commands counts as one character when calculating
+         the length of a Text_def
+
+pl 3.jbr2
+         - Documentation/topdocs/index.yo: Added link to NT dist page
+         - Documentation/ntweb/: Added Makefile and index.yo to build the
+           NT dist page
+
+pl 3.hwn1
+       - stepmake hacking
+
+pl 3.uu1
+       - stepmake MAKEFILES -> STEPMAKE_TEMPLATES
+       - count \texcommands in tex string
+
+
+pl 3.jcn1
+       - bf: website: empty toplevel readme's
+       - bf: xs4all (again?)
+       - can't administer ftp site now: put patch into website
+
+
+pl 3.jbr1
+       - stepmake/stepmake/Executable_targets: UNIX cross-compile doesn't
+         work with $(DOTEXE) on source of install command.
+       - stepmake/Generic_targets: creating multiple dirs with mkdir 
+         requires -p option
+       - scripts/ly2dvi32.py: General and Winnt specific fixes
+
+
+*********
+pl 3
+
+pl 2.uu1
+        - solaris 2.6 compile/make website fixes.
+        - rm'd WWW.make
+        - stepmake .43
+        - pcnov095.win.tue.nl -> ftp.cs.uu.nl
+  
+pl 2.hwn1
+       - mi2mu naming of track output
+       - bf: do key restore sign only once
+       - ly2dvi32 preliminary version (JBR)
+       - bf index.html link
+       - bf mudela-book.py
+
+
+**********
+pl 2
+       - scalar compile stuff
+       - bf install directory
+       - YODL note
+       - GUI faq update
+       - bf ly2dvi
+       - stepmake split:  Po.make
+       - make check target
+       - dist AFMs and manpages
+       - split up mudela.yo in glossary.yo, tutorial.yo and refman.yo
+
+pl 1.jcn1
+       - www.digicash.com www.xs4all.nl
+       - fake msgfmt
+       - make uninstall fixes
+
+pl 1.jbr2 - aclocal.m4,stepmake/aclocal.m4,stepmake/stepmake/Variables.make:
+            Support install target for unix, unix cross compile, and 
+            Windows NT
+
+pl 1.jbr1 - stepmake/stepmake/Executable.make: DOTEXE was missplaced
+          - scripts/convert-mudela.py: program_id should write to stderr
+
+**************
+pl 1
+       - mi2mu fix: \key "D"
+       - \hoffset
+       - started new NEWS file 
+       - lots of stepmake hacking
+       - aclocal.m4 copied from stepmake
+       - ly2dvi 0.12
+       - build the doco from the source tree.
+       - include website in RPM
+
diff --git a/Documentation/misc/CHANGES-1.1 b/Documentation/misc/CHANGES-1.1
new file mode 100644 (file)
index 0000000..b98baa1
--- /dev/null
@@ -0,0 +1,2006 @@
+1.2.0
+       - website fixes.
+       - initialize Script::dir_
+
+pl 69.jcn1
+       - doco typos 
+       - tex-rules typo
+       - added missing feta-braces*.mf
+pl 68.lu1
+       - texinfo fixes
+****************
+
+pl 68.jcn2,3
+
+pl 68.hwn1
+       - more tutorial stuff.
+       - note^\dynamic scriptdir.
+       - dynamics listen to verticalDirection as well.
+       - \property automaticMelismas -> \property automaticMelismata
+       - dynamic padding for crescendi.
+
+pl 68.jcn1
+       - small tutorial fixes
+
+*********
+
+pl 67.hwn1
+       - tutorial updates
+       - \property beamAuto -> noAutoBeaming
+
+pl 67.uu1
+       - abc2ly updates
+
+pl 67.jcn1
+       - bfs: refman/parser subtract
+       - chord::find_additions_and_subtractions: termination assurance
+       - bf: refman: chord-inversion examples
+
+
+********
+
+pl 66.hwn1
+       - bf: chord mode unsigned '-' -> unsigned CHORD_MINUS (1 SR conflict).
+       - refman reedit.
+       - dotdown only when verticalDirection is set.
+       - bfs: abc2ly convertor (more or less) successfully converts
+movement 2 of Beethoven 7.
+       - \repeat "semi" -> \repeat "volta"
+       - all spacing params into paper vars.
+       - spacing before grace notes.
+       - warn if font not found.
+       - staccato dot / tenuto centering
+       - spacing for clefs.
+       - bf: Stem_staff_side::do_substitute_element_pointer ();
+       - new screenshot
+
+********
+pl 65.hwn1
+       - refman updates
+       - added \simultaneous { } , \sequential { } syntax, for
+consistency.
+
+pl 65.jcn2
+       - bf: if tie then melisma
+
+pl 65.uu1
+       - bf: squashed 2 sr conflicts in parser.
+
+pl 64.jcn2
+       - stanchen almost without " " hacks
+       - if tie then melisma..?
+       - refman updates
+       - Abbreviation.beam -> Chord_tremolo
+       - bf: chord tremolo vs beam over rests
+       - bf: note width for noteless stem 
+
+
+
+********
+pl 64.jcn1
+       - resurrected abbreviation beam
+       - coriolan fixes
+
+pl 64.hwn1
+       - reference-manual updates.
+       - slurdash -> slurDash, keyoctaviation -> keyOctaviation
+
+pl 64.uu1
+       - \property forceHorizontalShift
+       - bf: denneboom.ly
+       - warn if translator switching  to self.
+       - warn if brace at end of lyric syllable.
+       - bf: Repeated_music::alternatives_length_mom ()
+       - \property automaticMelismas: if slur then melisma
+       - \property noVoltaBraces
+       - bf: star-spangled-banner
+
+pl 63.lu2
+       - very tight: hinterfleisch -> 0 : input/bugs/spacing-very-tight.ly
+       - bfs: neutral beam and tie directions (daar was ik al bang voor:-)
+       - bf: abe: may beam over skip, as long as note present too
+       - bf: scsii-prelude: added slurs using skips
+
+*********
+pl 63.uu1
+       - mutopia updates courtesy Peter Chubb
+       - Don't make Time_scaled_music for c4*2/3 entry, only do the
+time compression.  Should cure spurious Tuplet_brace/spanner warnings.
+
+pl 63.hwn1
+       - bf: Spacing for key/timesig at end of staff.
+       - negative font magnification
+       - slurs on grace notes.
+       - paper var stem_default_neutral_direction
+       - bf: dot-columns.
+       
+pl 63.jcn2
+       - bf: midi2ly/duration-iter/convert: handle durations >= 1
+       - set reasonable default for text/dynamic paddings
+
+pl 63.jcn1
+       - junked some of (my) old metapost stuff
+
+pl 63.lu1
+       - some faq entries
+       - chord input and proceccing fixes
+       - bf: nederlands.ly
+
+**********
+pl 62.jcn4
+       - fixes coriolan
+
+pl 62.hwn1
+       - ps-to-pfa.py: use std modules re, find 
+       - minor input fixes
+       - use mfplain.mp
+       - Metapost does unfill with setgray.  This confuses
+GS.  Do text substitution with eofill.
+
+pl 62.jcn3
+       - bfs: preludes
+       - found more wierd spacing
+
+pl 62.jcn2
+       - bf: don't start auto-beam on stem that contains only a rest
+       - bf: rm .ms yodl output
+       - bumped stepmake version
+pl 62.uu1
+       - don't space rhythmic requests coming from Lyrics. 
+
+pl 62.jcn1
+       - bf: auto-beamer: consider starting beam based on new rhythmic head
+       - bfs: preludes-4, cello-suites
+       - \addlyricsified standchen and twinkle (ugh: \repeat and \addlyrics)
+       - bf: interstaff slur slope damping
+       - bf: in-band signaling slur snap
+
+pl 61.jbr1
+        - Documentation/ntweb/GNUmakefile: Made EXTRA_DIST_FILE style fix and
+          added dist-plain target as dependency to the default target.
+        - scripts/ly2dvi.py: getpid does not behave very well across platforms
+          so I am creating temp file names with the Python tempfile module. 
+          The generate lilypond dependency file option was broken and
+          is now operational.  I also changed the dependency switch
+          from -d or -M to match lilypond.
+        - stepmake/bin/package-zip32.sh: Added build of ntweb html 
+          documentation
+
+***********
+pl 61.hwn2
+       - revise / junk various input files.
+       - junk Music_list_iterator
+       - bf: declared paper + \shape
+       - bf: \shape and wordwrap
+       - Busy_playing_req ()
+       - Music_iterator::try_music_in_children (),
+so explicit \context Staff is often not needed for
+         * tuplets
+         * repeats
+       - automatic rest detection for \rhythm
+       - regtest tight-spacing.ly
+       - regtest lyric-combine.ly
+       - Melisma_playing_req, Melisma_engraver, Busy_playing_req:
+stuff  for syncing music & lyrics.
+       - simplify Extender_engraver, Hyphen_engraver.  Assume lyrics come in from only one voice.      
+       - docced ambiguities in grammar.
+       - mudela-book -I behavior, verbosity.
+       - state search path when file not found
+
+pl 61.hwn1
+       - bf: \scm with --safe
+       - (ly-gulp-file)
+       - no need to set GS_LIBDIR, .ps files are inlined and directly
+printable.
+       - bf: spacing engine
+       - fixed paper11/13/16/20/23/26.ly
+       - use (header-end) iso {ps,tex}setting
+       - bf: convert-mudela --output
+       - move \version check to lexer.ll
+       - moved repeated-music-iterator.cc to folded-repeat-iterator.cc
+       - bf: broken crescendi
+       - removed delayed Spanner breaking.
+       - new implementation of \rhythm:
+         * Lyric_combine_music
+         * Lyric_combine_music_iterator
+         * \property melismaBusy sets melisma state.
+         * (commented out in parser.yy -- solution is not good enough yet.)
+       - bf: record def spot of seq/sim music
+       - junk Music_iterator::next_music_l (), Music::to_rhythm () & friends.
+       - junk Re_rhythmed_music & friends
+       - mudela 1.1.62: \shape = -1 -2 -3; -> \shape -1, -2, -3; etc.
+       solves one ambiguity.
+       - grace notes at end of music don't crash Lily.
+
+*******
+pl 60.jcn2
+       - moved creation of $BUILDDIR/share/locale into set-lily.sh
+       - slur slope change constraints when snapping
+       - slur height damping based on bow height
+       - don't typeset unfinished (auto) beams
+
+pl 60.jbr1
+        - Documentation/ntweb/angels.ly, Documentation/ntweb/guile.patch: added
+        - Documentation/ntweb/GNUmakefile: add above to EXTRA_DIST_FILES
+
+pl 59.mb2
+       - Tempo changes in MIDI output!
+       - gallina.ly:auto-beaming
+       - added property articulationScriptVerticalDirection
+         (useful in N.W.Gade/score.ly)
+       - bf, N.W.Gade: removed some more misprints
+
+pl 60.uu1
+       - bf: hara-kiri.ly
+
+pl 60.jcn1
+       - interstaff slur tuning
+       - added some regtests
+       - removed now silly check in encompass-info
+
+**********
+
+pl 59.uu1
+       - papervar loose_column_distance
+       - scripts don't collide.
+       - bf: midi2ly outputs \context iso \type
+
+pl 59.jbr1
+        - lily/colhpos.cc: fixed typo
+        - Documentation/ntweb: Updated News and added all the files 
+          associated with Windows Distribution web page.
+        - stepmake/bin/package-zip32.sh: added the ntweb page to formated
+          distribution.
+
+pl 59.jcn1
+       - bfs: slur damping
+       - papervar slur_interstaff_snap_to_stem
+
+pl 59.hwn1
+       - \property graceAlignPosition : put grace notes after main note.
+       - moved pianobrace stuff into Lookup
+       - moved Local_key_engraver out of Voice context, and
+acknowledge Grace_align_items.  Solves tie + accidental problem.
+
+pl 59.mb1
+       - Some small clean-ups and bug fixes
+
+***********
+
+pl 58.uu1
+       - experimental pdftex support, courtesy Stephen Peters.
+       - --version support
+       - junked complicated loose column handling.
+       - only stretch the extra space after prefatory matter, not the
+entire width of prefatory matter.
+       - standardise(d) switches:-d for debug, -M for Make deps, -m for midi-only.
+       - bf: papervar non_musical_space_strength  now works. Set to 8 (-> Strong! )
+       - bf: space after time_sig.
+       - bf: decrescendi.
+       - bf: barlines on voltas
+
+************
+pl 57.hwn1
+       - bf: accidentals on grace notes.
+       - \property graceAccidentalSpace
+       - bf: ignore grace notes duration for non-grace spacing.
+       - uncommented Key_req::transpose.
+       - Dot_column::do_post_processing (): better dot collisions, see dots.fly.
+       - derive Dot_column from Note_side_item.
+       - renaming of files
+         * heads-engraver
+         * request-iterator
+         * p-score
+         * engraver-group
+
+pl 57.jcn3
+       - bf: no extension: assume .ly
+       - bf: bow::do_width; which in turn allowed
+       - removed broken interstaff slur damping hack, and
+       - bf: slur height damping fixes damping
+
+pl 57.jcn2
+       - bf: ? priority and snap to stem
+
+pl 56.jcn4
+       - interstaff slur fixes and damping
+
+pl 56.mk1
+       - bf: collision.cc: collisions between chords with different
+         stem directions and close heads.
+
+****************s**************
+
+pl 56.jcn3
+       - slur de-hairification
+         * slurs always attached to noteheads, by default
+         * corrections for steep and high slurs
+         * snap to stem end when close
+       - bow/tie/slur dy/dx fix
+
+pl 56.hwn1
+       - some spacing tweaks.
+       - bf: two repeats + alts after each other.
+pl 56.jcn2
+       - tie: bfs + even simpler
+
+pl 56.jcn1
+       - bf: re-added \textflat,sharp to fix chords...
+       - bf: chord-modifier and mandatory dot: c-maj5 
+       - tutorial chord fixes
+       - tie fixes and boldifying:
+         * removed sloping (dy!=0) code
+         * use actual note-widths
+         * y[left] == y[right]
+         * follow OSU rules, I hope (from comments in text -- must check)
+         * undetermined direction -> down; inverse of stem
+       - bf: beam: undetermined direction -> up; like stem
+       - slur-symmetry fixes
+       - fix for \rhythm and seq_iter childs (still crude, but more effective)
+*********
+
+pl 55.uu1
+       - use GS' anti aliasing
+
+pl 55.jcn1
+       - auto-beamer: consider current duration first in ending/starting beam
+         this way, you can have 16ths auto-beamed, in some way, but 8ths never
+           beamAutoEnd_16 = 1;
+           beamAutoEnd_8 = 1/8;
+       - added some classes and few lines of doco to .dstreamrc
+       - refman:
+         * comment out broken
+         * commented out stale tex macros (tex/* dir too)
+         * bfs/new syntax: chords
+       - more midi2ly renaming stuff
+       - bf: make info (midi2ly and other renaming)
+
+pl 54.jcn2
+       - bf: auto-beamer: don't beam over skips
+       - update BUGS
+
+
+pl 55.mb2
+       - Font update: added more mensural style time signatures, 
+         old2/4, old6/8alt, old4/8 thanks to Christian Mondrup.
+       - bf: correct indentation of first line (removed \leavevmode)
+         plain TeX still gives wrong indentation
+       - bf: volta brackets broken over several lines get open end.
+         Final bracket gets vertical end if it stops at double bar.
+       - Dashed grace flags also for durations shorter than 8.
+       - N.W.Gade: fixed some details
+
+pl 55.mb1
+       - bf: font magnification also in PS output
+       - bf: set the GS_* variables correctly in buildscripts/lilypond-*.sh
+       - bf, lily.scm: errors in (de)crescendo
+       - bf, lilyponddefs: removed \noindent 
+
+
+pl 55.hwn1
+       - fixes: horn-concerto-3.ly
+       - bf: grace before tuplet.
+       - bf: decrescendo
+       - bf: multimeasrest numbers centered.
+
+****************
+
+pl 53.jbr2
+        - Documentation/ntweb/index.html: Updated nt distribution web page
+
+pl 54.uu1
+       - bf: Stem lens for beams.
+       - move meta doco to Documentation/metadoc
+       - move .bibb to Documentation/bibliography
+       - rename mi2mu to midi2ly
+       - removed other-packages.bib to comply with GNU standards
+
+pl 54.jcn1
+       - mutopia/J.S.Bach/Duette 1&2
+
+pl 54.mb1
+        - Renamed \wheel to the \coda
+       - bf: correct gap in tuplet braces
+
+pl 53.hwn2
+       - move more parameters from PS/TeX to Lily.
+       - PS cleanup
+       - TeX cleanup.
+       - bf: also make (empty) bar at end of voltabracket.
+       - bf: don't put slur over rest. 
+
+
+pl 54.uu1
+       - debian updates (anthony fok).
+
+*************
+pl 54 (july, 8)
+pl 53.jbr1
+       - scripts/ly2dvi.py: A fix for the multitude of file systems supported
+          by windows.  As long as the paths that the cygwin apps use are
+          UNC style and the paths that the native windows apps use are DOS 
+          style everybody is happy.  I add quick and dirty  unc2dos function
+          to facilitate this approach.
+
+pl 53.hwn1
+       - bf mudela-book.
+       - better min distance for multi measure rests.
+       - junk ATOM_SMOB
+       - control tuplet gap size from paper.
+       - bf:  output header as PS strings for PS out.
+       - bf: cached-fontname 
+       - control volta height from paper block.
+
+pl 53.jcn5
+       - \rhythm-ified and text bfs: standchen.ly 
+       - walk rhythm through *_iterator::next_music_l ()
+
+pl 53.jcn4
+       - more abc2ly hacking, including lyrics and \rhythm
+       - bfs: \rhythm
+       - \rhythm-ified input/twinkle.ly
+
+pl 53.jcn3
+       - put rhythm A on pitches/lyrics B: \rhythm MUSICA MUSICB
+           input/test/rhythm-melody.fly
+           input/test/rhythm-lyrics.fly
+       - syntax changes:
+o        * dot-only duration dropped: use c4 c4. iso now invalid: c4 c.
+         * chords: optional_dot now mandatory:
+           \chords { c-1.2.3 } iso now invalid: \chords { c-1 2 3 }
+         * @c@ (notemode_chords) syntax dropped.  rather use:
+           \notes { c d \chords { e f } }
+
+pl 53.jcn2
+       - \property graceFraction: part of next note taken-up by grace(s).
+       - Note_performer: add moments for delayed notes,
+         fine for single grace notes: hear gnossienne-4.ly
+
+pl 53.jcn1
+       - grace performance
+       - fixed tie-performance
+       - bf: abe
+  
+pl 53.gp1
+       - added Hyphen-engraver, Hyphen-spanner
+************
+pl 52.jcn3
+       - bf: mi2mu: midi without key
+       - try at grace-performer-group; breaks MIDI output even when no \grace
+       - silly tie-performer
+       - performers play_element () delayed to do_pre_move_processing ()
+
+pl 52.jcn2
+       - bfs standchen + grace, gnossienne-4
+       - decoupled midi output from input
+
+pl 52.jcn1
+       - bf: moved accidental code from Key_engraver to Key_change_req
+       - bf: midi-key
+       - bfs: mi2mu: core-dumps, keys, key-names, key-changes, notenames
+
+pl 52.hwn2
+       - new-beaming.cc: new beaming code
+         * now does [c8. c32 c32] correct by itself.
+         * beam over barlines
+         * non-fitting stems handled gracefully (eg. [c8 c4 c8] ) 
+       - junked rhythmic grouping, \grouping and all associated bits.
+       - bf: do try_visibility_lambda for nonbreakable items as well
+         (fixes \nobreak on barline)
+       - bf: Cons_list::truncate() 
+
+pl 52.hwn1
+       - repeat-engraver cleanup
+pl 52.gp1
+       - bf: make doc++ corrected to only include *.h and *.hh files.
+pl 52.mb2
+       - Added \repetitions: prints symbol for repeated bars.
+         Same syntax as multi-measure rests!
+       - Added \segno and \wheel script symbols
+pl 52.mb3
+       - Added barSize property. Junked barsize variable.
+
+************
+pl 51.uu2
+       - grace note flags, move Lookup::flag into Stem
+       - faq updates: doc++, Matt's page
+       - fixes for doc++.
+       - bartype string uses "brace" and "bracket" iso. "{" and "["
+       - some of assert()s  replaced by programming_error ()
+
+pl 51.mb1
+       - N.W.Gade: added real grace notes
+       - feta-banier.mf: added grace note flag
+
+pl 51.uu1
+       - use weAreGraceContext \property to determine self_grace_b_
+       - made more engravers grace aware.
+
+pl 50.jcn2
+       - filed egcs bug report for powerpc.
+       - removed unnecessary #ifdef powerpc 
+       - grace and other fixes for auto-beamer
+       - grace and other fixes for (beam-)stem-lengths
+       - input/test/bugs/hairy-grace.ly (urg)
+       - input/test/bugs/grace-accidents.ly (urg)
+       - input/test/bugs/grace-grace.ly (core)
+       - fixes: gnossienne-4.ly
+
+pl 50.hwn2
+       - Timing_translator: add proccing moments to nearest global translator,
+not to top global translator.
+       - cadenza.ly: grace notes.
+       - bf: auto staff switching
+
+************
+pl 51
+pl 50.hwn1
+       - grace notes:
+         * Grace_iterator
+         * Grace_music
+         * Grace_engraver_group
+         * move Score::run_translator to Global_translator::run_iterator_on_me
+         * stemLength property, Stem::length elt property
+         * Grace_align_item
+         * Note_head_side baseclasses Local_key_item, Grace_align_item
+         * Local_key_engraver moved to Voice.
+         * Grace_position_engraver
+         * Added Rhythmic_head::stem_l_
+         * Various other robustifications.
+       - lily.scm: scm->string
+       - folded reps without alts.
+       - Paper_outputter uses scm->string
+       - stem params now in staff positions iso. real dimensions
+       - internal: Junk all G_ and g- prefixes
+
+************
+pl 49.mb1
+       - bf: ly2dvi -N
+       - Added dynamicPadding property (applies only to dynamic marks, 
+         not (de)crescendi.
+
+pl 49.jcn4
+       - resurrected gnossienne-4
+       - Documentation fixes (for texinfo get yodl-1.31.13, tbr)
+       - minor abc2ly fixes; successfully converted some simple abc files from
+           http://faeryland.tamu-commerce.edu/joyce/
+       - www.mail-archive.COM
+
+pl 49.jcn1
+       - guile scm_gc_mark () workaround:
+       - via scm output wrapper buildscripts/lilypond.sh, set:
+           PATH=$LILYPONDPREFIX/buildscripts/out:$PATH
+       - scm output fixes
+
+pl 48.hwn2
+       - bf: rest-collisions.
+       - cleaned up standchen
+       - bf: slur dims.
+       - bf: unfold without enough alternatives.
+       - Use Lily version for \version.
+
+
+pl 49.uu1
+       - ran purify. Fixed some small problems, plugged some leaks.
+       - bf: linebreak at |:
+       - doc updates by Adrian Mariano
+
+pl 49.mk1
+       - Breathing signs by Michael Krause
+
+************
+
+pl 48.hwn1
+       - \property hshift -> \property horizontalNoteShift (mudela 1.0.21)
+       - cleaned up collision.  \property hshift = 2 now supported.
+       - Spacing:
+         * bf: don't divide strength by distance if distance == 0.0
+         * cleaned up Spacing_spanner
+         * simplistic optical illusion spacing for opposite stems.
+       - don't use Protected_scm for Score_element::element_property_alist_
+       - some scsii fixes.
+       - Lookup cleanups; junked Lookup::paper_l_
+       - abc-2-ly: tuplets, guitar chords., chords,
+
+pl 48.mb2
+       - bf: correct accidentals after tied over note.
+
+pl 48.mb1
+       - bf, lookup.cc: Count '{' also directly after a TeX macro
+       - bf: textstyle->textStyle in all examples.
+
+pl 48.jcn1
+       - bd: interstaff slurs at line break
+
+pl 48.uu1
+       - add a WX field to AFM output.
+       - add space before ; in AFM output
+
+*********
+pl 47.jcn1
+       - bf: interstaff slurs (urg: more segfaults in scm_gc_mark ())
+
+pl 45.hwn3
+       - Abbreviation -> Stem_tremolo.
+       - bf: Stem_tremolo in Beam.
+       - bf: Stem_tremolo over whole note.
+       - spacing before clefs.
+       - Spacing_spanner is now on by default
+       - junked most of Spring_spacer
+       - Tunable space after barline. 
+
+*********
+pl 46.mb2
+       - Reintroduced the tupletVisibility property. Same values as
+         the old version (pletvisibility), see the Reference Manual.
+         Note: does not work correctly with automatic beams.
+       - Added a tupletDirection property.
+
+pl 46.uu1
+       - bf: {} in texts.
+
+pl 45.hwn2
+       - more doc updates.
+
+pl 46.mb1
+       - Added property articulationScriptPadding
+       - N.W.Gade: layout fixes
+
+*********
+
+pl 45.hwn1
+       - Audio broadcast & acknowledge.
+       - more advanced spacing for prefatory matter
+       - tuplet appearance tweaking
+       - bf: ChoirStaff 
+
+pl 45.uu1
+       - glossary fixes (thanks Dirk).
+
+pl 44.jcn2
+       - bf: auto-beamer: long standing br form AM
+
+
+*********
+
+pl 45 (may 28)
+       - reinstalled Thread (there you are, John)
+       - german vocab.
+
+
+pl 43.hwn2
+       - split G_staff_side_item into G_staff_side_element and G_staff_side_item.
+       - junked old Staff_side
+       - Crescendo also uses G_staff_side_element
+       - crescendo_shorten paper var.
+       - create horizontal groups for break_aligment inside Break_align_item.
+       - more abc-2-ly fudging
+pl 44.mb1
+       - bf, property.ly: change fontsize->fontSize
+       - N.W.Gade: removed old tie behaviour
+       - bf, ly2dvi: expand .sly extensions
+
+*********
+pl 44
+pl 43.jcn2
+       - bf: repeat :| placement + core dump
+         input/test/repeat.ly
+         input/test/coda-kludge.ly
+       - bf: mf without ljfour
+         * feta-accordion fix/hack for feta11 at 300dpi
+
+pl 43.hwn1
+       - half assed attempt at ABC convertor.
+       - Spacing_spanner: "decentral" spacing stuff.  Use -t to try.
+       - bf: StaffGroup vertical alignment
+       - \property {slur,tie,}ydirection -> {slurV,tieV,v}erticalDirection (1.0.20)
+       - Spanner now hangs on left endpoint.
+       - \property forgetAccidentals: do not remember accidentals.
+ Every note not in the key triggers typesetting of an accidental.
+       - \property noResetKey: do not reset key at start of measure:
+ accidental remain in effect until overriden
+       - bf: ties & accidentals (fix breaks oldTieBehavior)
+       - junked Tie::same_pitch_b_
+  
+pl 43.jcn1
+       - configure, set-lily.sh, release stuff
+
+pl 42.tca2
+       - lilypond don't put \interstaffline after last line. This to
+         get really nice vertical spacing for mudela-book.
+       - mudela-book: vertical spacing
+       - lilyponddefs.tex: commented out \parindent=0pt to get correct 
+         paragraph indent for mudela-book
+
+************
+pl 43
+
+pl 41.hwn3
+       - reinstated \property inheritance
+       - \property SkipBars -> skipBars
+       - \property midi_instrument -> midiInstrument
+       - \property fontsize -> fontSize (mudela 1.0.18).
+       - bf: add a space after lyrics.
+       - junked flower DLL classes
+       - rewrote repeat music and iterators (mudela 1.0.17)
+         * Folded_repeat_iterator
+         * Unfolded_repeat_iterator
+         * New_repeated_music
+         * syntax change: \repeat FOLDSTRING NUMBER Music [ALTERNATIVE Music_se
+quence]
+       - data struct simplification: junked Dynamic_req,
+Absolute_dynamic_req, Span_dynamic_req, Slur_req, Beam_req. Use
+Span_reqs and Text_script_reqs with type fields instead. 
+
+pl 42.tca1
+       - updated mudela-book documentation
+       - misc mudela-book.py
+       - accordion: smaller dots + little script renaming
+
+
+pl 42.jcn1
+       - bf: hp-u(rg)x: user build; sm 73
+       - bf: hp-u(rg)x: sm74
+
+pl 41.mb1
+       - convert-mudela: convert textstyle -> textStyle
+       - refman.yo: properties moved to correct contexts.
+       - mudela-book.py: Added singleline, multiline options. 
+         Fixed default line width bug.
+
+***************
+pl 41.hwn2 (may 10, 1999)
+       - bf: Score bar line thickness.
+       - more paper writing
+       - website tweaks.
+       - Graphical_element::dim_cache_ now alloced separately. 
+       - junked Graphical_element::absgolute_offset
+       - Musique-de-Table 
+       - mmrest_x_minimum now works at begin-of-line.
+       - junked Span_bar::extra_x_off
+       - \property foo.bar = \stringid + \otherstringid
+       - bf: stop on lexer errors as well.
+       - only do vertical alignment at Score level.
+       - tweaked ledger endings a bit.
+       
+
+pl 41.hwn1
+       - small fixes.
+       - mudela-book.py patch (thanks MB)
+
+pl 41.mb1
+       - Added the installation instructions to the top web page.
+       - N.W.Gade: Added triangolo part, minor changes.
+
+pl 41.tca1
+       - Lookup::accordion and removed some accordionfonts
+
+***************
+
+pl 40.uu2
+       - rest ledger lines are dimensionless.
+       - Score_elements are added to the Paper_score directly when
+announce_element () is called.  This makes it possible to init
+molecules from within engravers.
+       - changed \type to \context
+       - \context Contextname = ID Music is now a real separate production
+         * you can do
+               \context C1 \context C2
+
+       and C1 won't overwrite C2
+
+         * you need some extra explicit context specs, eg. if you start a
+voice with a chord.
+
+               \score { \notes { <c e g> }  }
+
+       should be
+
+               \score { \notes \context Voice { <c e g > }
+
+       - set staff margins on grandstaffs too. Center staffmargins vertically.
+       - \property values are not inherited anymore, i.e. setting
+Score.minVerticalAlign does not set GrandStaff.minVerticalAlign, Staff.minVerticalAlign and Voice.minVerticalAlign as well.
+       - {Axis_spanner, Hara_kiri}_engraver which can be added at wish.
+Hara_kiri should be working again.
+       - boilerplate for accordion stuff.
+       - some more paper writing.
+       - bf: substitute vertical refpoint as well for broken items.
+(fixes clef^8)
+       - bf: translating molecule without elts but with dims. (bf: accidental
+spacing.)
+       
+pl 40.mb1
+       - bf: ly2dvi set MFINPUTS so standard tree is found before lilypond
+       - bf: lilypond-regtest.doc, ls-latex.py; now finds author/title
+
+pl 40.uu1
+       - large documentation patch by Adrian Mariano
+
+********
+pl 40
+pl 39.mb2
+       - added more mensural style time signatures, old3/4, old6/8, old9/8
+       - redesigned old6/4, old9/4
+       - Updated refman.yo, lilypond-regtest.doc, clefs.ly, time.fly
+
+pl 39.hwn1
+       - consified mi2mu (pl 37.jcn1)
+
+pl 39.mb1
+       - bf: invisible clefs don't take any space, moved _8 below clef
+       - updated incipit example and macro
+
+pl 39.uu1
+       - delete graphical objects  in reverse
+       - faq updates.
+
+********
+pl 39 (april 12)
+       - \property textstyle -> textStyle
+
+pl 38.tca1
+       - added scm/accordion-script.scm and update ly/accordion-defs.ly
+       - renamed some accordion symbols to make them more english and less
+         norwenglish. 
+       - removed dot from \accBayanbase
+
+pl 37.script4
+       - bf: molecule
+       - bf: tuplet spanner appearance.
+       - bf: less spacing after clef.  Invisible bar has no dims. 
+       - included AIMS.  The why of Lily.
+       - warning if duplicate engraver.
+       - warning if no ties could be created.
+       - bf: \time1/4; .. beams ..
+       - bf: staff switching beams / slurs.
+       - tuplets on multiple beams.
+       - Documentation/tex/lilypond-regtest.doc
+       - bf: nested tuplets
+       - slur cleanups.
+       - bf: multi_measure_rest_engraver in Score_context.
+
+pl 38.uu1
+       - bf: clef_8
+       - bf: barnumbers.
+
+pl 37.script3
+       - fixes for spring_spacer, introduced
+Spacing_engraver
+       - cleanup for rest-collisions. 
+       - hacks for GUILE gc
+       - mudela-book \mudelafile
+       - Documentation/tex/lilypond-regtest.doc
+       - MF rest fixes
+
+
+********
+pl 38 (april 6)
+pl 37.script2
+       - bf: AFM for BlueSky AFM files.
+       - \penalty = 4278 -> \penalty 4278
+       - URG!! fixed major (unnoticed) bug in dependency engine
+       - Further Script hacking:
+         * G_script_column
+         * G_script_column_engraver
+
+pl 37.script1
+       - major Script rehack:
+         * G_stem_staff_side_item
+         * G_script
+         * G_script_engraver
+         * G_script_req
+       - junked Text_def, changed \property textstyle -> \property textStyle
+(todo -> convert-mudela)
+       - Line_of_score is an Axis_group_element, no more overlapping
+lines, hopefully.
+       - mf: whole diamond head tweak 
+  
+pl 37.mb2
+       - Added property clefStyle: "" / "transparent" / "fullSizeChanges"
+       - New example: input/test/incipit.ly
+       - Documented clefStyle and restStyle in refman.tex
+       - Partial bug fix: octaviated clefs. Still broken!!!
+
+pl 37.mb1
+       - Added property restStyle. 
+       - mensural 4th, 8th and 16th rests.
+pl 37.uu1
+       - FreeBSD bf
+
+****
+pl 37 (march 30, 1999)
+       - note head styles, see input/test/noteheadstyle.fly
+         * \property noteHeadStyle:
+         * diamond note heads (probably really ugly)
+         * cross note head.
+         * harmonic head (mf sources were tweaked)
+         * transparent for no \heads
+         * \property noteHeadStyle ="" for normal heads.
+
+pl 36.mb2
+       - bf: timeSignatureStyle
+       - Added dynamic fz (forzando) to Lilypond
+       - bf: N.W.Gade, sfz -> fz
+
+pl 36.hwn1
+       - debian fixes.
+       - don't insert extra alignment space for empty stuff.
+       - Align_element derives from Axis_group_element
+       - junk cruft for detecting upbeam / downbeam.
+       - junk all *{horizontal,vertical}* Score_element derived classes.
+       - G_staff_side_item::padding_f_ now generic property.
+       - some tweaking of beam & stem. 
+       - junk pointerlist in Sources
+       - junk Stem::mult_i_, Stem::beam_gap_i_, G_staff_side_item::padding, 
+       Bar::at_line_start_b_, Key_item::c_position_, Note_head::type_str_,
+       Note_head::staff_size, Stem::xdir_
+       
+pl 36.mb1
+       - bf: N.W.Gade
+
+**************
+
+pl 35.uu1
+       - more memory tweaks: don't do Score_element::line_l () when deleting lines.
+       - more generic properties.
+       - change ridic. dims assert into warning.
+       - tex/ midi fixes (thanks, Mats).
+       - bf: don't crash when no Stem_infos are set.
+       - extender-spanner simplification
+       - working MIDI chords (Thanks Dscho)
+
+pl 35.jcn1
+       - some ps fixes
+
+************
+pl 35
+
+pl 34.hwn2
+       - "Lily Was Here" is def'd as \mudelatagline, override with
+       \header { tagline = "... " ; }
+       - \property currentBarNumber: set
+       current bar number.
+       - \property postBreakPadding: tune extra
+       space padding after linebreaks.
+       - \property textEmptyDimension: disregard script text
+       dimensions (untested)
+       - \property staffLineLeading: set the staff space
+       - adjustable staff space size (per staff)
+       - Staff_symbol_referencer as base class for elements that use
+       info of the staff symbol.  \property numberOfStaffLines also works  OK
+       with ledger lines. (Is that useful? dunno.)
+       - warning  if someone does \translator with no name
+       - junk Item::breakable_b_
+       - junk PointerList<Music*>, use Killing_cons
+       - bf: Auto_beam_engraver.
+       - bf: mmrest engraver.
+       - use callbacks for Dimension_cache.
+       - lots of small cleanups. Junk various members of
+       Score_element & derived classes:
+         * Item::original_l_,
+         * Spanner::original_l_,
+         * Score_element::transparent_b_,
+         * Item::break_priority_i_,
+         * Item::break_status_dir_,
+       - merge Score_priority_engraver / Score_horizontal_align_engraver
+       - Use more generic element properties. 
+       - precompute SCM symbols. 
+       - remove_elt_property (): Try to junk an element property, if not
+       needed anymore.
+
+
+
+pl 34.uu1
+       - more PointerList junkings.
+       - MIDI bugfix.
+       - be more conservative with Dicts/Hashes mem usage
+
+*********
+pl 34
+
+pl 33.uu2
+       - some performance cleanups: junked PointerList instance, plugged some leaks.
+       - style -> fontname now in scheme.
+       - minor Score_element brainsurgery:
+               * generic element properties.
+               * junked Score_element::junk_links, Score_element::unlink
+               * junked Directed_graph_node as superclass of
+Score_element, this should reduce mem usage a bit.
+
+pl 33.jcn2
+       - fixed autobeamer's beam->unlink ()
+
+pl 33.jcn1
+       - allow autobeaming according to duration iso (crude) multiplicity
+
+pl 33.jbr1
+        - change my email address
+        - Windows platform does a cp -r instead of a ln -s
+
+pl 33.uu1
+       - bf: ^ and _
+       - junked poor man's dynamics.
+
+*********
+pl 33
+
+pl 32.mb1
+       - bf: \> and \< were interchanged!!
+       - Added property: textScriptPadding
+       - Changed copyright text on the Gade score.
+
+pl 32.uu1
+       - really include Gade score now.
+       - fixes: install-[out-]targets, INSTALLATION_[OUT_]SUFFIXES
+       - install TFMs in separate dir.
+pl 31.hwn3
+       - Span_bar bugfix (there you go, Mats).
+       - bf: Score copy ctor (-> bf declaring score)
+       - new Tie behavior: only tie identical pitches, switchable with
+         oldTieBehavior
+       - junked cautionary_b_ from Musical_pitch
+
+pl 32.jcn1
+       - set-lily: set weird locale links for $LILYPONDPREFIX 
+
+**********
+pl 31.mb2
+       - Added example: "Imellan Fjeldene" by Niels W. Gade.
+       - bf: don't attach staff margin text to clef changes within the
+       lines. (Still not perfect: no text when a clef change happens
+
+pl 31.hwn2
+       - be somewhat lazy in break/object multiplication.
+       - print # elements for memory usage impression (try  -t)
+       - Paper_score cleanup
+       - junked various Pointer_list instances. Executable now is smaller.
+       - junked various cruft
+       - merged do_substitute_dependen{t,cy} to
+do_substitute_element_pointer ()
+       - more parser cleanup
+       - Interval uses Drul_array
+       - bf: I've been drinking too much
+       - delete break helpers before object breaking/multiplication.  Try
+to save some memory.
+  
+pl 31.jcn4
+       - bf: toplevel install, kpsewhich
+       - sm 71, require yodl-1.31.11
+       - fix: slur macros
+       - bf: info in rpm, if available
+       - fix: rat != float
+       - bf: slur-follow-music
+
+pl 31.uu1
+       - config.make: include GUILE_LDFLAGS
+
+******
+pl 31 (feb 16)
+
+pl 30.jcn1
+       - sm fixes, intl/ fixes
+
+pl 30.mb1
+       - Added support for magnification of TeX fonts ==> 
+         larger dynamics in 20pt scores. (Doesn't work in Postscript)
+
+pl 30.hwn1
+       - Debian patches (thanks, Anthony)
+       - Italian support (thanks, Maurizio)
+       - parser cleanup
+       - minor chord.cc cleanups.
+       - bf: \rc \rced 
+       - hara kiri doesn't do suicide with normal rests.
+       - Hara_kiri_vertical_group_spanner generalised
+       - extender engraver rewrite, now __ is like ~ [] |, ie. in between
+notes/lyrics.
+       - lyric engraver now engraves only single voices.  Use
+separate LyricVoices to get stacked lyrics.
+       - bf: bar(Non)Auto first barline  
+       - barAuto -> barNonAuto
+
+
+*******
+
+pl 30 (feb 15)
+
+pl 29.uu1
+       - typewriter font
+       - star-spangled-banner bf (slur.cc).
+
+
+pl 29.jcn3
+       - fix: slur-case3.ly 
+       - init.sly: .fly with linewidt=-1
+
+pl 29.jcn2
+       - resurrected ps output
+
+pl 29.hwn1
+       - bf: coord relative to self.
+       - bf: error msg if no AFM found
+       - bf: hang script on bar in other axis too (fixes staff-side-slur bug)
+       - hang on scripts on clef as well (more to left for single staffs)
+
+
+pl 29.jcn1
+       - bf: volta sizes
+       - GNU stuff on home page
+
+*******
+pl 29
+
+pl 28.hwn1
+       - bf: mid measure clefs (breakable  items in non-breakable columns.)
+       - spanner.cc assert changed to warning
+       - (c) 1998 -> 1999 search replace.
+
+pl 28.jcn1
+       - new outline TODO + .emacs setup
+*******
+pl 28
+pl 27.hwn2
+       - un-SMOB Atom.  Cons and Killing_cons as simple cons replacements.
+
+pl 27.jcn5
+       - outline TODO
+
+pl 27.jcn4
+       - measure-end hinterfleish patch
+       - input/test/coda-kludge.ly
+       - bf: volta-number placement
+       - volta: support for "1.-2."  "3"
+pl 27.jcn3
+       - bf's: zero-length repeats
+       - Auto beamer:
+         * turned on by default
+         * input/test/auto-beam*.ly
+         * support for time-defaults
+       - Chords:
+         * input/just-friends.ly
+         * ChordNameContext
+         * bf's: chord mode: accept STRINGS, rests
+         * bf's: banter_str
+       - new bool \property Score.barAtLineStart
+
+pl 27.hwn1
+       - global ctors
+       - read lily.scm before all .lys
+       - Link_array derives from Array<void*>
+       - search repl: Array<X*> -> Link_array<X>
+       - junked most static casts
+       - revamped Atom / Molecule: Molecule now is the public interface.
+Atom is a GUILE smob. Guile takes care of allocation and list stuff.
+       - bar scripts on score bars (there you are, Mats)
+       - :||: span bar fixed
+       - using generic ledger lines now (regenerate fonts!)
+       - refman updates (Thanks, Adrian!)
+       - Molecule::operator = (), Molecule::do_center ()
+       - junked Span_score_bar, Score_bar, Staff_bracket, Piano_brace. Folded functionality into Span_bar
+       - textstyle property for textual scripts.
+       - lookup cleanups (time_signature, text, stem, junked extender, filledbox, simple_bar)
+       - junked obsolete TeX stuff.
+       - ly2dvi-testpage.ly
+       - only make AFMs for feta[0-9]+.mf
+       - using strings for abs loudness.
+
+       
+pl 27.jcn2
+       - grand renaming: Duration vs Moment / Rational
+
+pl 27.uu1
+       - extra beam warning
+
+pl 27.jcn1
+       - complete redo of chord and chord name code
+       - small fixes
+
+*************
+pl 27 (feb 3)
+
+pl 26.uu1 
+       - make TFMs too. 
+       - bf: dynamics.  (Don't hang on spanner!)
+       - read TFM before AFM.
+       - fix din-MF stuff (UGH)
+
+pl 26.jcn4
+       - Chord: handle all chord stuff; lots of chord fixes
+       - bf: Chord-name-engraver: find tonic
+       - bf: my-lily-parser: get_chord
+
+
+pl 26.jcn3
+       - bf's: spring spacer end of measure
+       - bf: tie/slur rods (dankje, lieverd)
+       - bf's: intl/ compile, install, uninstall
+
+pl 26.jcn2
+       - enforce {slur,tie}_x_minimum (urg, paper vars?)
+       - tie listens to tieydirection/ydirection
+       - bf: tie placement
+
+pl 26.jcn1
+       - tutorial fixes
+       - bf: OrchestralScore should do hara-kiri..
+       - bf: makeinfo: 
+         - info in rpm again 
+         - update to yodl pl10, yodl2texinfo fixes
+         - use --force, .info should always be generated
+
+*********
+pl 26 (feb 1, 99)
+
+25.jcn2
+       - bf: staffside axis init
+       - bf: staffmargin stuff.
+       - Timesig C fixes
+
+
+pl 25.uu2
+       - junked Scarlatti clef
+       - fixed clef^8
+       - Interpretation_context_handle is interface to interpretation context 
+       - Staff_switching_translator: automatic staff switching for Piano staffs.
+
+pl25.jcn1
+       - volta-spanner: junked dot_p_; not so handy after all: kerning??
+       - feta-nummer: added : ,-.
+       - volta/tuplet thickness
+       - bf: scs-paper
+       - bf: ".|", and bar-thicknesses
+
+pl 25.uu1
+       - bf: default duration is 4
+
+**********
+pl 25
+
+pl 23.ms2
+       - property noteheadStyle
+       - first attempt to make harmonics : see input/test/harmonics.fly
+
+pl 23.ms1
+       - sinfonia.ly: several fixes
+       - dynamics
+        * increased range pppppp to ffffff
+        * added sp, spp, sff, rfz
+        * example see input/test/tchaikovsky.ly
+        * updated dynamics in refman
+
+
+pl 24.jcn2
+       - website fixes
+       - bf's: chords:
+         * reverted c1*2, collides with \times {}
+         * should use: c\breve, c\longa for long chords
+         * addition: c-9, subtraction: c^5
+         * multiple -add, ^sub: c-7+.9-^3.5
+       - bf: lyric chord
+       - bf: lookup text height
+       - bf's: autobeamer
+
+ pl 24.jcn1
+       - bf: rest collisions
+       - separate tfm-reader
+       - bf: :|: should not have thin lines
+
+
+pl 24.mb1
+       - bf: Correct units now used in the .afm files.
+
+******
+
+pl 24, Hacking Apart Together (Jan 25)
+
+pl 23.jcn9
+       - bf's: preludes-* (found a \meter and \transpose c`` there!)
+       - bf: ly2dvi: don't barf on 'linewidth = -1.;'
+       - bf: lily-version
+
+pl 23.jbr1
+       - scripts/ly2dvi.py: Windows 95 shell does not support redivrection 
+         of stderr.  We now distribute ash and use it when needed.
+       - stepmake/bin/package-zip32.sh: distribute ash, and guild ice-9/
+         directory.  We build and distribute manpages in html format instead
+         of text format.
+       - Documentation/ntweb: Updated doco and now distributing as a self
+         extracted binary with install script.
+
+pl 23.hwn4
+       - bugfixes
+       - changed All_font_metrics to do TFM as well.
+       - changed init/ to ly/
+
+pl 23.jcn8
+       - tfm reader; revamped code from fontutils-0.6
+
+pl 23.hwn3
+       - {Bar numbers|staff margin stuff|marks} fixed using
+Bar_script_engraver as base class
+       - bf: PS points != Lily \pt 
+       - junked Bar_column_engraver
+       - junked Text_item and some old files.
+
+
+pl 23.jcn7
+       - bf: piano-brace size (veels te simpel: kruis vingers tegen reject)
+       - crude autobeam stuff in mi2mu
+       - brevis, longa chords: c1*2,*4
+       - mutopia/E.Satie/petite-ouverture-a-danser.ly
+       - prop: voltaVisibility
+       - more cello-suite-ii fixes:
+         * nice repeats
+         * removed all beams ifo auto-beamer
+       - bf's: autobeam
+       - junked dur2real; beamAutoEndx now as rational string: "1/2" 
+
+pl 23.hwn2
+       - _8 clef 
+       - junked #args symtable def.
+       - junked Text_item.
+       - moved Bar assembling into LilyPond
+       - junked symtables reads
+       - Lookup cleanups
+       - junked Symtable from init/table*
+
+pl 23.hwn1
+       - revamped Scarlatti K3-L378
+       - some more doco
+       - use interning/SCM for Scopes
+       - hanging on now works for breakables too.
+
+pl 23.jcn6
+       - chord fixes; notemode chord syntax changed: @c@ @c-7@
+       - fixed cello-suite ii
+       - bf's: auto-beamer; but nasty bug remains: input/bug/auto-beam.ly
+       - bf: extender
+       - (bit ugly) fix for lyric-chords
+       - fixed repeats (dankjewel lieverd)
+         * input/twinkle.ly
+         * input/star*.ly
+
+pl 23.jcn3
+       - succussfully removed []s from wtk1-fugue2.ly
+       - bf + smarter autobeamer
+
+pl 23.jcn2
+       - mi2mu: d-minor: des->cis, g-minor ges->fis
+
+pl 23.mb1
+       - bf: Position and possible SIGSEGV in Mark_engraver
+       - Added padding support in G_staff_side_item
+       - bf: Correct direction of textual scripts. 
+       - bf, lookup.cc: Fewer warnings about missing text styles. 
+            Same units used in all .afm files.
+
+pl 22.jcn5
+       - auto-beaming v0: input/test/auto-beam.ly
+
+
+
+***********
+
+pl 22.jcn4
+       - bf's: repeat-engraver; \bar "|:", ":|" now deprecated for repeats
+       - bf: :|, |:
+       - property barAlways changed to boolean (0/1)
+       - added boolean property: barAuto
+
+pl 22.jcn3
+       - bf: mmrest
+
+pl 22.jcn2
+       - updated mi2mu
+       - bf: multi-measure-rest (input/test/m.ly)
+       - half fix for staff-margin-engraver
+
+pl 22.jcn1
+       - bf's: cross-staff slur
+       - bf: gnossienne-4
+pl 22.tca1
+       - buxfix, \mudela{ \times 2/3{ ...} } works now
+
+******
+  
+pl 22
+       - fixed "already have a Beam" error
+
+pl 21.jcn2
+       - gnossienne: hmm, how to 
+         * undisplay bars
+         * don't put 'grace notes' in beam
+         * put separator between  "] \translator Staff=x" 
+
+pl 21.jcn1
+       - gnossienne-4.ly (start of)
+
+pl 20.jcn2
+       - mutopia fixes; see preludes-1.ly for cross-staff beams and slurs
+       - bf: broken interstaff slur
+       - sm66: check for gmake
+
+*******
+pl 20.jcn1
+       - interstaff slurs v0: preludes-1.ly
+       - warnings for silly interbeam settings
+
+pl 20.hwn1
+       - inclusion of WIP article about LilyPond.
+       - L.Mozart sinfonfia
+       - bf: [c8 [c8 c8]
+
+********
+pl 20
+
+pl 19.jcn5
+       - interstaff beams v0: see beam-interstaff.ly and wtk1-fugue2.ly
+
+pl 19.jcn4
+       - new stem/beam parameters
+       - bf: forced stem shorten
+
+pl 19.jcn3
+       - dehairification of beam code; cleanup and bugfixes
+         * stemlength
+         * forced stem shorten
+         * slope calculation
+         * damping and correction
+         * catch for silly beams: input/test/beam-suspect.ly
+
+pl 19.jcn2
+       - multi-measure-rest is now spanner SkipBars=0 is broken
+
+pl 19.jcn1
+       - hmm, almost centered whole-bar rests -- NOT
+
+********
+pl 18.jcn5
+       - bf: beamtrend
+       - bf: vv-duet
+
+pl 18.mb1
+        - \mark now works, using G_staff_side_item.
+       - Improved layout of multi-bar rests, including a new
+         font symbol.
+
+pl 18.jcn4
+       - beam length adjustments
+       - ugly beamtrend fix: input/test/beam-trend.ly
+
+pl 18.jcn3
+       - bf: (beamed) forced stem shorten
+       - bf: broken slurs and ties; minimal slur/tie length setting ignored
+       - bf: separators on cygwin
+
+pl 18.jcn2
+       - bf: stem-length algorithm
+       - bf: beam direction algorithm
+       - bf's: wtk1-fugue2.ly
+
+pl 18.jcn1
+       - stepmake update
+       - small fixes: spacing.ly, wtk1-fugue2-ly, violino-viola duet.
+*******
+pl 18 (jan 4 '99)
+
+pl 17.jbr2
+       - Documentation/README-W32: Brought my stuff up to date
+       - Documentation/ntweb: updated for realease
+       - stepmake/bin/package-zip32.sh: cygwin-b20 changes
+       - scripts/ly2dvi.py: LILYPONDPREFIX fixes
+
+pl 17.jbr1
+       - scripts/ly2dvi.py root is now the shared directory path not the
+         root of the lily installation.  Environment variable LILYPONDPREFIX
+         is also the path to shared directory.
+       - lily/main.cc WINNT conditional added to avoid a casting of 
+         main_prog
+
+pl 17.hwn1
+       - bfs wtk1-fugue1
+       - spacing tweak: very widely and tightly spaced lines look
+better.
+       - allow Beam settings to be overriden: property
+       stemLeftBeamCount, stemRightBeamCount
+       - junked Assoc, Assoc_iter
+       - junked Graphical_element::{width,height}
+       - junked Plet_swallow_engraver, Plet_engraver
+       - Command_tie_engraver -> Tie_engraver, Command_beam_engraver -> Beam_engraver
+       - naming  brew_molecule_p / do_brew_molecule -> output_processing,  do_brew_molecule_p 
+       - experimental Text_item, Staff_side
+       - junked old Beam_engraver and old Tie_engraver.
+       - AFM administration cleanup.
+       - cache brewed molecules.  Speed up ?
+       - rehacked Graphical_element, introduced Dimension_cache
+
+********
+
+pl 17
+pl 16.jcn2
+       - fix: TEMPO 4., well urg, "TEMPO 4 ."
+       - beginning of violino/violoncello (viola) duet
+
+pl 16.jcn1
+       - resurrected po-stuff
+
+*********
+pl 16
+
+pl 15.uu1
+       - dynamic fix.  
+       - junked abbrev stuff from parser.
+
+pl15.tca1
+       - fixed verbatim option behaviour for mudela-book.
+       - added mudela-book option intertext="some text" 
+       - mudela-book now understand latex \begin{verbatim}
+  
+pl 15.jcn1
+       - chord inversion: 
+         * enter C/E
+         * display chord names according to boolean property
+           \property Score.chordInversion; 
+
+*********
+pl 15
+
+pl 14.hwn1
+       - new beam syntax: { [<c e> <c e>] }, changed in lilypond,
+parser, lilypond (mudela 1.0.14), manual
+       - new tie syntax:  { <c e > ~ <c e > } changed in manual,  
+parser, lilypond (Mudela 1.0.13)
+
+pl 14.jcn1
+       - bf: get_chord C-m5-
+       - typos: chord-name
+
+pl 14.tca2     
+       - move option proccing out of main
+
+**********
+
+pl 14
+
+pl 13.hwn1
+       - tutorial fixes.
+       - junked find-quarts
+       - junked various plet goryness.
+       - preps for <c e> ~ <c e> syntax
+       - bib fixes 
+
+pl 12.jcn3
+       - bf's: standchen
+       - added repeat, chord stuff to website
+       - bf: dashed slur
+       - hacks for barlines, dynamics
+
+pl 12.jcn2
+       - bf: package-diff
+       - new chord syntax, again: TONIC [DURATION] ['-' MODIFIERS/ADDITIONS]
+       - shorthand prefix for note-mode: '@', no shorthand for notes in chord
+          mode...
+pl 11.jcn6
+       - bf: ly2dvi: better guess LILYPONDPREFIX: <bin>../share/lilypond
+       - chord-table; urg bugs:
+          * note-collisions
+          * accidental-placement
+       - bf: cis m (\textsharpm, urg)
+  
+pl 11.jcn5
+       - bib entry, twinkle-pop
+       - bf's: chords
+
+pl 11.jcn4
+
+**********
+pl 13
+       - mutopia stuff (thanks, Peter)
+       - bugfix : \maininput
+
+*********
+
+
+pl 12
+pl 11.jcn3
+       - bf: missing triads
+       - @c @c min (* is taken, <<, <> don't work)
+       - chord-modifiers (urg, "sus" should also subtract 2...)
+
+pl 11.uu3
+       - --safe: security paranoia: disallow untrusted \include,
+disallow untrusted TeX code, disallow named output
+
+pl 11.jcn2
+       - duration with chords + change:  @4 c @c7
+
+pl 11.jcn1
+       - minor chord syntax change: *c6 iso @c6;
+
+**********
+
+pl 11
+
+pl9.tca1
+       - included that missing init/mudela-book-defs.py. Added
+         one line to init/GNUMakefile to make .py-files be included.
+       - fragment and nonfragment options to override autodetection
+
+pl 10.jcn1
+       - input/test/chords.ly
+       - \type ChordNames and chord-name-engraver.*
+       - chords mode: \chords { <c e g> @c; @d7; }
+
+pl 10.uu1
+       - scm/ directory.  install .scm stuff too.
+       - tuplet bug fixed.
+
+**********
+pl 10
+
+pl 9.jcn3
+       - property: unfoldRepeats; unfolding still broken
+       - volta spanner y-collision
+       - bf: volta number,dot placement
+       - bf's: init/table16,20
+       - small additions to init/lily.scm to enable some testing
+       - junked extra repeat braces
+
+
+pl 9.uu2
+       - bib stuff
+       - removed \output from parser/lexer
+
+pl 9.jcn2
+       - bf/redo: slur.cc, encompass-info: setting of encompass array.  
+       - switched tuplet-engaver off (core dumps)
+
+pl 9.jcn1      
+       - bf (urg): no |: at start of piece
+       - bf?: text defs without width
+       - alignment absolute dynamics
+       - mutopia/opus-130.ly (excerpt, triggered by GUIDO)
+       - bf: crescendo symbol
+
+
+pl 9.uu1
+       - added faq entry
+       - copertina (thanks Maurizio)
+
+*****************
+pl 9
+       - fixed \relative
+
+pl8.tca1
+       - changes to mudela-book. Junked fragment and floating options,
+         added eps option. Options should not stay as long that you get
+         comfortable with them. ;)
+       - Also possible to define your own commands with
+         a syntax like \mudela{c d e}
+       - updated mudela-book-doc.doc
+
+pl 8.jcn3
+       - website: gnuisation of footers
+
+pl 8.jcn2
+       - input/test/vertical-text.ly: urg ydim of text chords
+       - bf: one set of |: :| volta per staff
+       - bf: init/table* braces + more braces
+       - try at score-volta-bracket
+
+pl 8.jcn1
+       - bf: lyric-engraver: handle multiple requests (don't overwrite)
+       - bf: guile-config
+       - music-list-iterator
+
+pl 8.hwn3
+       - coriolan corno 1
+
+pl 8.hwn2
+       - more output revamping.
+
+pl 8.hwn1
+       - Scheme output stuff
+       - tutorial fixes.
+
+*****************
+pl 8
+
+pl7.jcn3
+       - bf's: spanner/volta
+       - volta-support: via Note, Bar, and Paper-column to Bar (item)
+
+pl7.jcn2
+       - note repeats
+
+pl7.jcn1
+       - configure/guile fixes (still no check for 1.2/1.3)
+
+pl7.hwn1
+       - tutorial fixes
+       - tuplets over beams.
+
+*****************
+pl 7
+
+pl6.jcn5
+       - repeatbars, volta-spanner work, alternative iteration still broken
+       - volta symbol
+
+pl5.szmulewicz2
+       - more GUILE stuff.
+       - tutorial doco updates
+
+pl6.jcn4
+       - volta-spanner
+       - repeat-engraver
+       - repeat/alternative music layout (hehe)
+  
+pl6.uu1
+       - Doco of music iterators.
+
+********
+pl 6
+
+pl5.szmulewicz1
+       - rtti stuff
+       - bf's: lily.scm
+
+pl5.mb1
+       - bf: array.hh, don't make copy if resized to the same size
+       - bf: feta.tex
+
+pl5.jcn4
+       - scm additions: plet, hairpin
+       - website fixes
+
+pl5.jcn3
+       - website fixes
+
+pl5.jcn2
+       - extender-*, see input/test/extender.ly
+       - bf: half-beam length (urg)
+       - fixes: standchen, star
+
+pl5.jcn1
+       - tex/lily-ps-defs.tex fixes
+       - lily.ps 
+
+pl 5.hwn1
+       - Tuplet_engraver
+       - lily.ps fix.
+       - junked MY_RTTI stuff, simpler VIRTUAL_COPY_CONS
+
+********
+1.1.5
+
+pl4.jcn4
+       - fixes; preludes, finger
+
+pl4.jcn3
+       - bf: text staff vertical align; see input/test/vertical-text.ly
+       - urg, scaled cmr8 by factor 4/5
+       - apart from end/begin of measure spacing urgs, stars-and-stripes.ly 
+         is rather cool
+
+pl4.jcn2
+       - read (cmrxx)afm for text char widths
+       - tfmtoafm.sh (quite urg)
+       - alphabet.ly
+pl 4.uu1
+       - read .scm files. No need for GUILE_LOAD_PATH
+       - .ps hack.  No need for lily.ps on the printer
+       
+       (&$^@M&@^$@^&$@ Damn TeX)
+
+
+       - bf: mudela-book -> \default_paper is obsolete.
+
+pl 3.ms1
+        - thumb-upgrade
+pl4.jcn1
+       - bf: dotted slur
+       - bf: text ssb
+       - bf: empty/unknown in ps
+
+pl 4.tca1
+       - 40% speedup executing mudela-book on mudela-book-doc.doc
+       - change of lilypond's output filenames. Given multiple input
+         files, eg. 'm.ly y.ly', output names will now be 'm.tex y.tex'
+         not 'm.tex y-1.tex', but if m.ly containts two paper definitions
+         output will be 'm.tex m-1.tex y.tex' 
+
+*******
+1.1.4
+
+pl 3.tca1
+       - accordion symbols in mf/feta-accordion.mf and
+         init/accordion-defs.ly.
+       - small changes to mudela-book and Documentation/man/mudela-book.yo
+       - mudela-book example file in Documentation/tex/mudela-book-doc.doc
+
+pl 3.jcn5
+       - bf: dashed-slur
+       - bf: LilyIdString
+       - more star fixes
+       - repeatbar fixes
+
+pl 3.jcn3
+       - mup-to-ly.py: version 0.0
+       - init/test/stars-and-stripes.ly (from star.mup)
+       - GrandStaffContext
+  
+pl 3.hwn1
+       - junked musical info from key-item
+       - tutorial fixes.
+
+pl 3.jcn2
+       - bf: font switch
+******
+1.1.3
+
+pl 2.jcn2
+
+pl 2.uu1
+       - ly2dvi.py -I fix
+       - obsoleted ly2dvi.sh
+       - removed Note_head_engraver
+
+pl 2.hwn1
+       - scm cleanups, chop-decimal
+       - scarlatti clef.
+
+pl 2.jcn1
+       - commented-out Level-2 PostScript in lily.ps (J. Buehler)
+       - moved tex/*.ps to ps/
+       - merged lilyponddefs.ps, lily-ps-defs: tex/lily.ps
+       - be sure to set:
+           export GS_LIB=$HOME/usr/src/lilypond/ps
+       - added tex and empty ps-symbols
+
+pl 1.jcn4
+       - more little website fixes
+
+********
+
+pl 2
+
+pl 1.mb1
+       - Support for cautionary accidentals. , i.e. accidentals 
+         within parantheses. Syntax: 'cis?'. Try input/test/accid.fly
+         Note that the font has changed.
+       - bf: No unnecessary warnings about time signatures
+       - Added optional second argument of \key. Set to \major or \minor 
+         to get a major or minor key. Default: major.
+       - bf: Compilation error in midi-walker.cc
+
+pl 1.jcn2
+       - fixes for htmldoc, website
+       - silly jcn1 fixes
+       - junked MODULE stuff from lily/GNUmakefile (again)
+pl 0.jcn4
+       -set:
+          export GUILE_LOAD_PATH=$HOME/usr/src/lilypond/init
+       - dstream: Score_element, Column_info
+       - -fscm debug hack: lilypond -fscm a; guile a.scm > a.tex; tex a
+       - init/lily.scm
+
+********
+
+pl 1
+pl 0.uu5
+       - fixed MIDI output.
+
+pl 0.jcn3
+       - dropped stepmake/aclocal.m4
+       - removed silly -lguile (BLA_LIBS, EXTRA_LIBS ??)
+       - added debugging output format: -fscm
+       - ly2dvi.py -I fix
+       - Documentation/tex/feta.tex
+       - doco fixes: PATCHES.yo, yodl-1.31.7
+
+pl 0.uu4
+       - Protected_scm to fixup GUILE gc
+
+pl 0.uu3
+       - more RTTI cleaning.
+
+pl 0.uu2
+       - undone type_info::before hack. (Ugh.  RTFM).
+
+pl 0.uu1
+       - more RTTI stuff: is_type_b -> type_info::before
+
+pl 0.jcn1
+pl 17.jcn7
+       - added: set*text, timesig, beam
+       - guile-1.3 is fine; my egcs-1.0.2's -O2 is broken
+pl 17.jbr1
+       - stepmake/stepmake/bin/package-zip32.sh: Updated configure statement
+         and modified win32 specific distribution file names to match
+         pl 16.hwn1 changes.
+       - scripts/ly2dvi.py: Modified search paths to match the new lilypond
+         installation tree.
+       - scripts/convert-mudela.py: Remove the an existing backup file
+         before renaming original.  This is a WINDOWS32 Python requirement.
+       - Documentation/ntweb/index.html: Updated documentation to match
+         new lilypond installation tree.
+       - lily/main.cc: Fixed LILYPONDPREFIX search paths.
+          
+  
+
+**********
+
+1.1.0
+
+pl 18.exp
+       - use C++ RTTI iso access_Xxx ()
+       - junk Graphical_lisp_element
+       - catalan.ly
+
+pl 17.tca1
+       - rewrite of mudela-book
+pl 17.ms1
+       - added \thumb (used very often in cello music) in
+         mf/feta-schrift.mf. 
+       - added /input/test/thumb.ly (example)
+
+pl 16.jcn1
+       - dashed-slur through scheme
+
+pl 15.jcn4
+       - more scheme hacks
+
+pl 15.jcn3
+       - try at scheme in Atom
+
+pl 15.jcn2 # rest of
+       - graphical-lisp-element + silly half hook-up with autuplet
+
+pl 17.jcn5
+       - stepmake pl59: templatised install (see mf/)
+       - reasonably ps/tex success (with guile-1.2):
+         * input/kortjakje.ly
+       - lots more scm stuff
+       - bf: mf/mfplain.ini
+       - stepmake pl58: guile 1.3 configure fix
+       - working font-switch:
+         guile-1.2 and -lreadline -ldl from 1.3 configure...
+
+pl 17.jcn4
+       - installable stepmake pl57
+       - urg, FIXME guile-1.3: 
+         * don't install shared libs! configure can't handle
+         * manually add: EXTRA_LIBS = -lguile -lreadline -ldl
+         * lily's truely broken, downgrade do 1.2
+
+pl 17.jcn3
+       - lots of stuff still broken, notably font selection, just try 
+          a()b
+          or so
+       - tex output support
+       - all output through scheme
+       - option: f, output-format=X
+       - geile placebox 
+       - mf/mfplain.ini
+
+pl 17.jcn2
+       - all paper output through scheme, about half way
+
+pl 17.jcn1
+       - 16.jcn1
+
diff --git a/Documentation/misc/GNUmakefile b/Documentation/misc/GNUmakefile
new file mode 100644 (file)
index 0000000..55a1efe
--- /dev/null
@@ -0,0 +1,21 @@
+depth = ../..
+
+NAME = documentation
+
+STEPMAKE_TEMPLATES=documentation  texinfo
+
+TEXTS =AIMS $(wildcard CHANGES-*)  $(wildcard ANNOUNCE-*) $(wildcard NEWS-*) interview
+EXTRA_DIST_FILES = $(TEXTS)
+
+
+include $(depth)/make/stepmake.make 
+
+default: do-doc
+
+local-WWW: $(addprefix $(outdir)/, $(addsuffix .txt, $(TEXTS)))
+
+copy-for-me:
+       $(foreach a, $(README_TOP_FILES),cp ../$(a) $(outdir)/$(a).txt && ) true
+
+$(outdir)/%.txt: %
+       cp $< $@
diff --git a/Documentation/misc/NEWS-1.2 b/Documentation/misc/NEWS-1.2
new file mode 100644 (file)
index 0000000..d3499b3
--- /dev/null
@@ -0,0 +1,25 @@
+WHAT'S NEW SINCE 1.0.17
+
+* Large cleanups, enhanced design and GUILE integration for smaller
+  memory footprint and more flexible code.
+
+* Direct output to PostScript (optional), PDFTeX or as GUILE script
+  (default output still to plain TeX).
+
+* Convertors for ABC and MUP formats.
+
+* Font: now available as scalable PostScript.  New glyphs: time
+  signature, more note heads.
+
+* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested)
+  repeats, chordnames, automatic Lyrics durations.
+  
+* Grace notes, volta brackets, multiple styles for note heads and 
+  time signatures, breathing signs, lyric extenders, cross staff 
+  beaming and slurring.
+  
+* --safe option for the paranoid.
+
+* More elegant spacing.  Text is spaced exactly.
+
+* Lots of bugfixes.
diff --git a/Documentation/misc/NEWS-1.2~ b/Documentation/misc/NEWS-1.2~
new file mode 100644 (file)
index 0000000..d3499b3
--- /dev/null
@@ -0,0 +1,25 @@
+WHAT'S NEW SINCE 1.0.17
+
+* Large cleanups, enhanced design and GUILE integration for smaller
+  memory footprint and more flexible code.
+
+* Direct output to PostScript (optional), PDFTeX or as GUILE script
+  (default output still to plain TeX).
+
+* Convertors for ABC and MUP formats.
+
+* Font: now available as scalable PostScript.  New glyphs: time
+  signature, more note heads.
+
+* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested)
+  repeats, chordnames, automatic Lyrics durations.
+  
+* Grace notes, volta brackets, multiple styles for note heads and 
+  time signatures, breathing signs, lyric extenders, cross staff 
+  beaming and slurring.
+  
+* --safe option for the paranoid.
+
+* More elegant spacing.  Text is spaced exactly.
+
+* Lots of bugfixes.
diff --git a/Documentation/misc/index.texi b/Documentation/misc/index.texi
new file mode 100644 (file)
index 0000000..8a84edb
--- /dev/null
@@ -0,0 +1,23 @@
+\input texinfo @c -*-texinfo-*-
+@setfilename index.info
+@settitle index
+
+@node Top, , , (dir)
+@top
+
+Miscellaneous texts
+@itemize
+@item @uref{CHANGES-0.0.txt, Change logs from 0.0 till 0.1 }
+@item @uref{CHANGES-0.1.txt, Change logs from 0.1 till 1.0 }
+@item @uref{CHANGES-1.0.txt, Change logs from 1.0 till 1.1 }
+@item @uref{CHANGES-1.1.txt, Change logs from 1.1 till 1.2 }
+@item @uref{NEWS-1.2.txt, summary of changes from 1.1 till 1.2 }
+@item @uref{ANNOUNCE-0.1.txt, Announcement of 0.1 (includes summary of
+changes)}
+@item @uref{ANNOUNCE-1.0.txt, Announcement of 1.0 (includes summary of
+changes)}
+@item @uref{ANNOUNCE-1.2.txt, Announcement of 1.2 (includes summary of changes)}
+
+@item @uref{AIMS.txt}
+@end itemize
+
diff --git a/Documentation/misc/interview b/Documentation/misc/interview
new file mode 100644 (file)
index 0000000..4526280
--- /dev/null
@@ -0,0 +1,108 @@
+(Oct / 99)
+
+* What is it?
+
+In short, LilyPond does for sheet music what (La)TeX does for printed
+text: the input describes the music you want printed, the program
+processes the input like a compiler, and the output file contains
+printed music.
+
+* Who would use it?
+
+People who want beautifully printed music, but don't have time to
+learn intricacies of music notation.
+
+ * Why would they use it instead of similar projects?
+
+Within the free software movement, LilyPond is unique: free music
+notation software is very scarce, and is either difficult to use,
+clumsy or does not give pretty results.
+
+ * Special features/strengths?
+
+Just like LaTeX, the input format is very abstract, and the output is
+very elegant.  Additionally, most aspects of the formatting can be
+adjusted to taste.
+
+LilyPond also allows very easy integration with TeX: you can write a
+paper that mixes fragments of notation with LaTeX.
+
+* Special problems?
+
+Music notation is very complicated. It is much more difficult than
+typesetting mathematics which is TeX's forte.  Almost everything in
+music notation is a "Special problem".
+
+Generally, the more modern the music is, the more problems it
+contains: classical and baroque music like Mozart and Bach should pose
+no problems for LilyPond. Romantic music like Brahms and Schumann will
+get printed but with some formatting errors.  Twentieth century music
+like Schoenberg and Bartok can be very difficult to typeset.
+
+Luckily for most, Pop-music is relatively uncomplicated: it should not
+be a problem to print that kind of music.
+
+* Who is working on it?
+
+Jan Nieuwenhuizen and me (Han-Wen Nienhuys) have written most of the
+core of the program, but the most elaborate example in the
+distribution (a 40 page orchestral score) was contributed by one of
+our long-time users.  He is a member of a small band of developers
+that contribute small patches.
+
+ * Plans for the close and distant future?
+
+The most concrete development plan for now is to use GUILE much more
+pervasively: LilyPond started out as a C++ program, with lots of
+formatting rules that were hard-wired into the system. We want to
+express those rules in Scheme, so that they can be changed at
+run-time.
+
+A much more interesting development is The Mutopia Project: it is a
+website where you can download sheet music that has passed into the
+public domain.  Just think of Project Gutenberg, but then for sheet
+music.  We hope that in the future you can just point your browser to
+Mutopia if you need classical music.
+
+The Mutopia website has not gone live yet, but you can preview some
+scores at http://sca.uwaterloo.ca/Mutopia/. What we need now is lots
+of help with entering sheet music.  If you like classical music, come
+out and help us!
+
+
+
+ * Interesting/fun stories that might juice up the story?
+
+Jan Nieuwenhuizen and me have been best friends for a some four years
+now. LilyPond development catalyses our friendship, and our friendship
+catalyses LilyPond development. We call each other a few times a week
+to discuss development, and the most revolutionary improvements in
+Lily have often been the result of a long nights of discussions on
+software design over glasses of Whisky
+
+Another question that pops up in outsiders is: ``what do aquatic
+flowers have to do with music typography?  Why the weird name?''
+
+I started Lily (our affectionate name for LilyPond) three years
+ago. Back then, I was in an amateur symphonic orchestra together with
+Jan.  I had a crush on this magnificent girl in the orchestra: her
+name was Suzanne, she played both the flute and the cello, and (of
+course) I thought she was very pretty.
+
+At the time, Jan was dating Roos (Dutch for `Rose' -- she also played
+the cello). I also knew about about a package Rosegarden (a GUI MIDI
+sequencer and notation editor).  When I found out that `Susan' is
+Hebrew for `lily', I decided that calling the package `LilyPond' would
+match make the nomenclature of the rest of my life perfectly.
+
+Some things don't last---the two girls, the cellos and the orchestra,
+all have disappeared from our lives.  LilyPond however has survived
+over time.  It is a big, mature program with a healthy user-base and
+good prospects.  Best of all is, that we still have a good time
+hacking on it
+
+
+* License?!
+
+GPL, of course.
+
index c750b3af9c74924716274f35240587d3e56aed78..f5ead31c6cbde6ef79972d06998017ace1e39e14 100644 (file)
@@ -1,4 +1,4 @@
-@node Properties, , , Top
+@node Properties, , , Reference Manual
 
 @cindex properties!Lyrics
 
index 1ba86f3112d49102464f2a57c7bcbe45700223ad..bea07dc13d6fd503e9134ccede855e2b9e6eb285 100644 (file)
@@ -1295,17 +1295,16 @@ chords can be expressed in two different ways:
 @mudela[fragment,verbatim,center]
   \notes \context Staff {
     \cadenza 1;
-    <a c'> <b  d' > <c' e' >
-    <{a b  c'}{c' d' e'}>
+    <a c'> <b  d' > <c' e'>
+    < { a b  c' } { c' d' e' } >
   }
 @end mudela
 
 @cindex context selection
-@keyindex{context}
+@c @keyindex{context}
 
 @example
-  \context
-    @var{contexttype} [= @var{contextname}] @var{musicexpr}
+  \context @var{contexttype} [= @var{contextname}] @var{musicexpr}
 @end example
 
 Interpret @var{musicexpr} within a context of type @var{contexttype}. 
index 35b5dc0cae68c40333fcec48184e7e70e50365ee..5029f7fa34185614951b1b28d9d15d6dfd0d4482 100644 (file)
@@ -383,6 +383,7 @@ may differ, since the titling in this document is not generated by
 \include "paper16.ly"
 melody = \notes \relative c' {
         \partial 8;
+       \key c \minor;
         g8 |
         c4 c8 d [es () d] c4 | f4 f8 g [es() d] c g |
         c4 c8 d [es () d] c4 | d4 es8 d c4.
@@ -452,12 +453,17 @@ give names to the different parts of music, and use the names to
 construct the music within the score block.
 
 @example 
-
         \partial 8;
 @end example 
 
-The piece starts with an anacrusis of one eighth.  @example 
+The piece starts with an anacrusis of one eighth.
+@example
+       \key c \minor
+@end example
+The key is C minor: we have three flats.
+
+
+@example 
 
         c4 c8 d [es () d] c4 | f4 f8 g [es() d] c g |
         c4 c8 d [es () d] c4 | d4 es8 d c4.
diff --git a/NEWS b/NEWS
index 66e89bcf1c5cb6bf74145012ce06ea39bf411b3d..5d740e231dd079da6b41b2bb512ba87abf5cf482 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -8,28 +8,3 @@ WHAT'S NEW SINCE 1.2.0
 * Documentation now all is in texinfo.
 
 
-WHAT'S NEW SINCE 1.0.17
-
-* Large cleanups, enhanced design and GUILE integration for smaller
-  memory footprint and more flexible code.
-
-* Direct output to PostScript (optional), PDFTeX or as GUILE script
-  (default output still to plain TeX).
-
-* Convertors for ABC and MUP formats.
-
-* Font: now available as scalable PostScript.  New glyphs: time
-  signature, more note heads.
-
-* Enhanced input: semi-automatic beaming, (nested) tuplets, (nested)
-  repeats, chordnames, automatic Lyrics durations.
-  
-* Grace notes, volta brackets, multiple styles for note heads and 
-  time signatures, breathing signs, lyric extenders, cross staff 
-  beaming and slurring.
-  
-* --safe option for the paranoid.
-
-* More elegant spacing.  Text is spaced exactly.
-
-* Lots of bugfixes.
diff --git a/NEWS-0.0 b/NEWS-0.0
deleted file mode 100644 (file)
index f936254..0000000
--- a/NEWS-0.0
+++ /dev/null
@@ -1,1170 +0,0 @@
-
-This file documents changes in version 0.0
-
-august 1
-
-VERSION 0.1.0
-       
-       - bf: output tempo to track 0 too
-       - bf: don't forget to copy id_str_, so moved  into Music
-
-pl 78.jcn2
-       - INFTY doze fixes
-
-pl 78.jcn1
-       - fix for multi-staff midi: wohltemperirt.ly, standchen.ly
-       - doze fixes
-       - bf: conflily, configure (text)
-*****
-july 31
-pl 78
-       - bf: Midi_instrument 
-       - added  enable/disable defaults to help.
-       - incredibly ugly NAME_MEMBERS(); bug. Immediately changed to 
-DECLARE_MY_RUNTIME_TYPEINFO;
-       - \stem -1 -> \stem \down in input      
-       - bf: slurchar index
-       - configure warnings 
-       - preliminary stuff for multiarch building
-       - #!/usr/bin/perl fixes (AO)
-       - some Makefile cleanups: now faster.
-
-pl 77.jcn2
-       - Midi_instrument
-
-******
-july 29
-pl 77  
-       - some fixes for internal compiler errors 
-derive from Pointer_list with default dtor gives error with -O2
-       - .ini -> .ly
-       - lyrics fix 
-       - Performer beautification: got rid of set_track(), midi_output()
-       - pseudo RTTI for midi-items
-       - bf: Performer*::print() 
-       - links.pod
-       - Voice_element -> Request_chord
-       - fixed flex problems: stdin input works again 
-       - Documentation/Rules.make, make-website via make
-       - spacing: now add basicspace
-
-*******
-july 28
-pl 76
-       - mudela version bumped to 0.1
-       - mudela-book
-       - doco updates, now some stuff in LaTeX
-       - junked book.{ly,tex} example
-       - progress indicator
-       - rhythm.ly updated
-       - removed mf sources from distribution due to (c) stuff
-       - allowal of breaks handled cleanly
-       - junked Subtle_reqs, junked Request_iterator. Request
-       iteration now by Voice_element_iterator
-       - Piano_bar, Piano_bar_engraver, Span_score_bar_engraver, 
-       Span_score_bar
-       - Swallow_performer
-       - removed  Staff_engravers, grouping into Line_group_engraver
-       - Head_column as base for Rest_column,Note_column
-       - Score_column derived from PCol
-       - regurgled Line spacing: interface and implementation
-       separate. Idealspacing moved into Spring_spacer
-       - Gourlay style linespacing
-
-pl 75.jcn6
-       - {lyric,meter,key}-performer
-       - span-brace-* (Removed again. Such is life)
-       - doze compile
-       - midi output, notes only
-       - working midi output -- hacked
-       - doze compile, mingw32 configure (still triggers gcc int. comp err)
-
-pl 74pre.jcn2
-       - mi2mu fixes after scott snyder <snyder@d0sgif.fnal.gov> [sss]
-       - mi2mu update for mudela 0.0.61
-       - conflily fixes
-
-*******
-july 21
-
-pl 75
-       - inbook.ly & book.tex example.
-       - natural width: linewidth = -1.0\cm
-
-pl 74pre.jcn1
-       - oversimplified midi output thru performer hierarchy
-       - bf: Spanner::doprint
-
-pl 72pre.jcn1
-       - naming fixes; some iter*() explicitations
-        - removed acceptor.hh
-       - *performer*: second draft of midi (audio/...)
-
-*******
-july 9
-
-pl 74pre
-       - Input_engraver -> Input_translator
-       - bf: span start/stop is now a "used" col.
-       - Rest_column/Rest_collisions bugfixes
-       - bf: crescendi.
-       - Spanner do_print()
-
-******
-july 7
-pl 73pre
-       - some refs doco.
-       - move Input_engraver into Paper_def
-       - junk Interpreter
-       - naming: Request_engraver -> Engraver, 
-       - Music_iterator::next() -> process_and_next()
-       - junk Voice_engravers
-       - Span_bar, Span_bar_engraver
-       - Vertical_align_engraver
-       
-*******
-july 2
-pl 72pre
-       - \paper{} syntax: var = 1.0\pt;, with an Assoc array
-       - sketch of MIDI Performer classes.
-       - bf: memleak in parser
-       - naming: Acceptor -> Translator
-       - input: bf collisions.ly, scales.ly
-       - bf: [r8 c8]
-       - naming: Register -> Engraver
-       - force \\ on identifiers
-       - doco updates
-       - musixtex T73 fonts
-
-pl 70.mb
-       - bf: find syntax in Variables.make
-*****
-july 1
-pl 71pre
-       - nested \melodic and \lyric constructs
-       - init id's, Input_register aliases.
-       - bf: notehead x-swap 
-       - bf: auto-keys.
-       - bf: first clef
-       - junked \init_end; construct
-       - Preparatory work for MIDI output:
-               * Acceptor as baseclass for Register_group_register
-               * Global_acceptor as interface of Register to Score
-       - bf: empty voice
-       - Lyrics: partially working
-       - some doco updates (junks, mostly)
-
-
-******
-june 30
-
-
-pl 70pre
-       - bf: text Script
-       - bf: Script::dir_i_ checks.
-       - bf: script stacking
-       - bf: Text_spanner::do_subst.
-       - bf: Text_spanner::Text_spanner(Text_spanner&)
-       - bf: script priority read from script.ini
-       - bf: Script_def::do_equal_b
-       - bf: script dims.
-       - mudela: ; obligatory for \paper {}.
-       - some cosmetic changes involving RTTI macros
-
-*******
-june 29
-pl 69pre
-       - bf: whole rest position, whole/half rest dots.
-       - bf: scripts
-       - reg termination
-       - centered bars
-       - bf: init of Tie::dir_i_ 
-       - bf: Staff_side depends on staff_sym_
-       - bf: Script::do_substitute_dependency() now implemented
-       - more print info (also in output)
-       - bf: Vertical_align_element
-       - stemless beams now allowed (with warning)
-       - bf: Rest_column::stem_l_ init
-       - merge rests.ly with collisions.ly
-
-pl 67.jcn3
-       - rests under beam [c8 r c]
-
-pl 67.jcn2
-       - first attempt at rest collisions
-       - rests.ly
-
-pl 67.jcn1
-       - beam stem length: beams.ly
-       - bf: mingw configure
-       - re: conflily
-
-******
-june 26
-pl 68pre
-       - doco: other-packages.pod, lots of lilyliterature.pod
-       - last duration mode now is default.
-       - some OpusTeX stuff.
-       - bf Y2K in convert-mudela
-       - Grand rewrite of Music/Register stuff:
-         * separation of Y and X-elt-groups
-         * Registers: info up: broadcasts, info down: get_xxx_info()
-         * Registers: try_request works from bottom to top of tree.
-         * Score_elem empty_b_ and transparent_b_ flag
-         * Junk Staff_column, and find the requests while walking the
-         Voices.
-         * Score_register
-         * Staff_group, Score_request_register.
-         * align key/Meters/bar across staffs
-         * junked Staff, Staff_column, Staff_walker, Complex_walker,
-           Request_column Pulk_voice, Pulk_voices, Walker_registers,
-           Voice_element, 
-           Input_score, Input_staff, Input_music and a lot of
-           parserjunk.
-         * mudela: lots of structure changes : now much simpler
-         * generation of pre/postbreak items now in Score_elem with deps.
-       
-       - bf: make_patch explanation
-       - bf: make install TeX stuff
-       - mudela: . mandatory for REALs
-
-
-pl 67
-       - damped beamslope after wanske
-
-******
-june 3
-pl 67
-       - sketch of Music classes
-       - General_script_def as baseclass for Text_def and Script_def
-       - bf: clean lib/out/liblily.a
-       - bf: rests shorter than 1/4
-
-pl 66.jcn3
-       - bf: make uninstall
-       - conflily
-       - f: some pedaling
-       - plet hack removed :-( [ c c c ]2/3 -> [2/3 c c c ]1/1
-
-pl 66.jcn2
-       - bf: bar, Hilfslinie
-       - bf: configure for mingw32
-
-pl 66.jcn1
-       - WIN32 -> WINDOWS32, more win32->windows32
-       - some GNU/Linux changes
-       - cygnus b18 / mingw update
-       - doze compile; bf: p-score.cc compares
-       - reincluded toccata fixes
-       - small stuff: vi tags, typos, bibl
-
-******
-may 27
-pl 66
-       - make_website --jpeg, --png and --gif
-       - win32 -> windows32
-       - bf: Score_elem::TeXstring assert fail
-       - bf: headswap with stemdown
-       - bf: broken tie
-       - bf: broken slur
-       - bf: accidental dims
-       - bf: measure bar width
-       
-
-******
-may 26
-
-pl 65
-       - bf pathfind /root/file
-       - massive Score_elem rewrite:
-         * group_element_i_ count
-         * support for removing an individual Score_elem cleanly.
-         * moved dep stuff into class Directed_graph_node
-         * Score_elems can be copied and deleted freely.
-         * junk PStaff
-         * Spanner_elem_group
-         * Line_of_{score,staff} now are Score_elems
-         * clean dep handling upon deletion
-         * delete unbroken spanners
-         * added a break_processing round.
-         * Super_elem
-       - junk Complex_staff, 
-       - clean {lily}?proto.hh
-       - Element_group
-       - Score_elem now as virtual base class everywhere
-       - naming: Staff_elem -> Score_elem
-       - bf: make in toplevel dir
-       - bf: broken tie y-pos
-       - bf: sharing 4th, 8th and 16th noteheads 
-       - bf: overlapping chords. <\multivoice c d >
-
-pl 64.wl
-       - new stem direction code
-       - bfs: wohltemperirt.ly (thanks, Werner)
-       - bf: stem direction
-
-pl 63.jcn2
-       - doze compile
-
-pl 63.jcn1
-       - bf: mi2mu mudela commands
-       - bf: mi2mu tracks
-       - mi2mu quantify tuning
-       - mi2mu TODO
-
-*********
-may 16
-pl 64
-       - exe's now built in out/
-       - toplevel Makefile dep from make/Toplevel.make.in
-       - make_website: add version footer
-       - make_website: bf dist *.txt
-       - bf: fix loose bars :  \meter 4/4; c1.  
-       - Staff_elem -> Score_elem
-       - bf <cis cis>
-       - vbrace lookup
-       - resync barcheck
-
-*******
-
-may 15
-pl 63
-       - bf: segfault during MIDI output  with mi2mu output.
-       - kludge: parse error beyond eof
-       - don't read ini if toplevel file not found
-       - accumulate \kern in TeX output.
-       - bf: try to prevent long lines; TeX breaks on them.
-       - naming: Pointer->Link, IPointer->Pointer
-       - bf: \plet didn't work (MB)
-       - GMP manifesto.
-
-pl 61.jcn4
-       - mi2mu -p -s16 fugua2.midi getting better!
-         plus factor 2 mi2mu speedup (fugue2.midi 5.50user)
-       - bf: Duration_convert quantify threshold down
-       - bf: (on quantify): tcols quantified; no silly voices
-
-pl 61.jcn3
-       - lily parsing speedup: backup rules for lexer.l
-       - bf: mi2mu, using midi_voice list...
-
-pl 61.jcn2
-       - all in all mi2mu speedup of about factor 8 since pl61
-        (fugue.midi 82.72user to 10.30user on a 586.133)
-        what about lily?
-       - binary search on track-columns
-       - mi2mu IP*list to Array (implications?!) conversion
-       - mi2mu parsing speedup: backup rules for midi-lexer.l
-       - bf: zero denominator
-
-**********
-may 14 
-pl 62
-       - make clean bf: remove lex & yacc files too 
-       - added kludge in case measure too long 
-       - added kludge in case of unconnected columns.
-       - kludged columns get error marker
-       - kludged lines get error marker
-
-
-pl 61.jcn1
-       - smarter + faster duration-convert using Array
-       - bf: mi2mu compilation/duration-conversions
-       - lots faster mi2mu, hopefully does type 1 too...
-pl 60.jcn1
-       - mi2mu handles non-quantified rests, try mi2mu -b wtk-i/fugue2.midi
-
-
-       
-**********
-pl 61
-       - scales.ly bugfix: dimensions default to ((0,0), (0,0))
-       - naming: PointerList->Pointer_list
-       - tied notes don't get accidental
-       - bf: crescendo size
-       - fixes: make_patch,
-       - bf: _"text" direction
-       - mailing list into lilypond.pod
-
-pl 60.mb
-       - set_flower_debug: Warning if -d is used when NPRINT is defined.
-       - Fixed several TeX details. vcenter renamed since it interfered
-         with LaTeX. Position of accents changed.
-       - New example; scripts.ly
-       - table_sixteen: added scriptdefinition (Lilypond breaks if a
-         script is defined without dimensions).
-       - bf: ifndef typos in p-score.cc, choleski.cc
-       - bf: Slur::do_post_processing(), whole notes caused SIGSEGV.
-
-(ascension break :-)
-*******
-pl 57.jcn4
-       - mi2mu handles rests (quantified only)
-       - fixed configure buglet
-        - "!date" Fri May  2 02:18:12 MET DST 1997
-
-pl 60
-       - Request_register::get_feature(), tie direction, Slur direction
-       - lilypond output is now directly texable. 
-       - make_website checks return status
-
-*******
-may 5
-pl 59
-       - Slur now into voicegroups, and take stems into account.
-       - bf: rest size in table.
-       - split Slur in baseclass Bow
-       - Tie, Tie_req, Tie_register
-
-******
-may 2
-pl 58.jcn1
-       - bf: toccata-fuga-E.ly
-
-pl 57.jcn4
-       - mi2mu handles rests (quantified only)
-       - fixed configure buglet
-        - "!date" Fri May  2 02:18:12 MET DST 1997
-pl 58
-       - lexer cleanup
-       - national chars in lyrics
-       - \stem 2; bf
-       - long comments: %{ %} 
-       - *.ini mode bf
-       - bf: partial may be everywhere
-       - bf: meterchange not at start of measure
-       - some doc updates
-       - bf: stem too long if stem is down.
-
-pl 57.jcn3
-       - dank je schat, voor wtk-i
-       - mi2mu tries to handle rests
-        - "!date" Thu May  1 02:34:04 MET DST 1997
-       - maak je het niet te laat schat?
-         XXXX HWN
-
-pl 57.jcn2
-       - small toccata-fuga-E.ly fixes
-       - \bar "||"; is now doublebar, "|." is finishbar
-       - collision hshift fix, with on-line assistance
-******
-pl 57
-       - lots of TODO doco
-       - text alignment bugfix
-       - bugfix Voice_group_regs::get_register_p() now is actually called too
-       - bugfix init  of Text_item::pos_i_
-
-pl 56.jcn1
-       - toccata-fuga-in-E.ly, excerpts with real-life collisions
-       - \{l,r}{b,f}{toe,heel} --- using cmsy fonts...
-       - pedal.ly 
-
-pl 55.jcn1
-       - mi2mu man page
-       - make doc fixlet
-       - \[lr]heel \[lr]toe scripts (happy pedal studies, pa)
-       - lyric with width
-       - removal of some example files
-
-pl 56.mb:
-       - last duration fix
-       - makefile fixes
-       - space rest
-       - swedish note name update
-
-******
-pl 56
-       - Massive Rest/Stem/Collision/Note_column rewrite: resolve
-notehead/rest ambiguities and bugs. eg, [c8 r8 c8] 
-
-pl 54.jcn1
-       - standchen.ly: repeats; lyricii to end
-       - convert-mudela: help + usage
-       - fixed midi key/meter-change (triggered by martien.ly) bug
-
-******
-April 23
-pl 55
-       - staff-side robustification
-       - script-on-rest bug
-       - doc update
-       - transpose syntax
-******
-pl 54
-       - bugfix Colhpos.cc::OK assert fail.
-       - Inclusion of MusixTeX MF files, 
-       - detection of MF dir
-pl 53.hwn
-       - stacked lyrics 
-       - configure/make buglets.
-******
-pl 53
-       - spurious accidental bug.
-       - simultaneity check.
-       - added AUTHORS.pod
-       - convert-mudela auto from guess
-       - include -> \include
-       - change order of opening parse/init file 
-       - Pulk_voice, Pulk_voices
-       - Request_column
-       - revised request-from-voice extraction. Now much faster
-
-******
-april 17
-pl 52
-       - Buildroot RPM
-       - tex-prefix and tex-dir sep'd (here you are jan)
-       - convert-mudela framework
-       - Collision_register, Collision
-       - \hshift 1; input
-       - Features changed
-pl 50.jcn1
-       - LILYINCLUDE dir searched before DIR_DATADIR(?)
-       - lily reads from stdin again (but does not now when to stop)
-******
-pl 51
-       - transposition bugfix + doco
-       - LilyPond -> GNU LilyPond
-       - bugfixes for Staff_side and Note_column*
-       - wohltemperirt: complete
-
-******
-april 11
-
-pl 50
-       - merge rest / notehead.
-       - Staff_side as a base class for most "staff-side" symbols.
-       - version check
-       - Note_column_register, Note_column
-       - multiple scripts
-
-********
-april 8
-pl 49.jcn1
-Bugfix
-       - configure[.in], make/Configure_variables.make.in c++ (=doze fix)
-       - "configure; make" ok for doze, win32 target may be removed now
-       - win32/gcc 2.7.2 compile fixes -- why does this all compile 
-           (without warnings, why can-t i even trigger warnings) under 
-           linux/gcc-2.7.2.1?  it's quite a tedious job fixing this 
-           shit _on doze_ all the time.
-           * fixed #includes global-regs.cc, staff-info.cc, staff.cc
-           * key.hh:Key() -> Octave_key()
-           * added missing lily/include/input.hh: Input( Input const& )
-       
-pl 49
-       - lsm template
-       - clef in cadenza mode.
-       - notename clear
-       - \command bla; for \meter, \clef, \octave etc.
-*******
-pl 48
-       - notenames init
-       - Duration order -> grouping
-       - broken key s
-       - default octave
-
-******
-april 3
-pl 47
-       - dynamic flowerlib
-       - Input mods: now use Source_file iso Sources
-       - makefile lib deps restructured
-       - make_website now produces in out/
-
-pl 46
-       - examples.pod
-       - LILYINCLUDE env var.
-       - push/popgroup
-       - website updated
-       - Swallow_register
-       - Lyric_register.
-       - Staff_sym_register
-       - user settable register config
-       - struct Input now used iso defined_ch_C_
-       - Walker_registers and Staff_registers separated
-       - dynamic-reg -> hairpins
-
-pl 44.jcn2
-       - doze configure/compile fixes
-       - doze make refixed
-       - faq
-       - install mudela manpage too
-       - RedHat spec lilypond.spec fixed
-       - target: rpm (make RedHat packages)
-
-******
-Mar 26
-pl 45
-       - Removing unused Voice_regs & Voice_groups
-       - -O2 bugfix
-
-pl 44.jcn1
-       - merged 42.3 42.jcn4 code trees (see stuff below)
-       - moving towards Mudela 0.1 (again)
-           * keyword "music" dropped for horizontal music
-           * keywords "\lyric" "\melodic" introduced, e.g.:
-               melody = \melodic { c c | g g }
-           * removed level of indirection:
-               - staff initialisable with music identifier list: 
-                   \staff{ global melody }
-               - \score and staffs alike
-       - gnu standard(?) help texts
-       - configure "creates" toplevel Makefile from make/Toplevel.make
-
-Bugfix
-       - fixed mi2mu
-       - write meter to track0 too...
-       - default octave
-       - new Sources in My_midi_lexer: sourcefile_p_ = get_file_l(): oeps.
-         (ain-t hungarian grand?)
-
-Examples
-       - updated for mudela 0.1
-
-******
-pl 44
-       - naming: _c_l -> _C
-       - pure parser, My_lily_parser
-       - ''a iso ``a
-       - Includable_lexer
-       - junk Input_file
-       - Duration in parser, Duration restructuring
-       - grandiose lexer hax. Flex should be fixed, really.
-       Lexer much faster now.
-       - opps. mi2mu broken
-
-******
-pl 43
-       - transposition.
-       - $variable&@name 
-       - warnings if incorrect mode
-       - missing scsii measure
-       - declaration used check.
-       -
-
-pl 42.jcn4
-       - lily writes midi meter/key changes from requests
-       - mi2mu: 
-         + write mudela 0.1
-         + write bar change requests
-         + more tunable quantisation
-
-Examples
-       - half-new-menuetto.ly converted to mudela -almost- 0.1
-       - new mi2mu of bach's wtk pre1/fugue1
-
-pl 42.3 (jcn version)
-        - oeps, branched source tree
-
-pl 42.hwn3
-       - const naming change (T const <-> const T)
-       - Mudela 0.1 (roughly the same as below..)
-
-pl 42.3
-       - moving towards Mudela 0.1:
-           * all keywords must be preceded by backslash '\'
-           * explicit lexer switches '$' and '@' dropped
-           * keyword "music" dropped for horizontal music
-           * keywords "\lyric" " introduced, e.g.:
-               melody = \melodic { c c | g g }
-           * staff initialisable with music identifier: 
-               \staff{ melody }
-           * chords: < c e >
-           * octavate ''c`` 
-           * \meter{ 2/4 }
-           * \octave{ ''`` }
-        - configure sets CXX (to c++, commonly)
-Internal
-       - renamed lexer.hh, mylexer.cc My_flex_lexer to my.lily.lexer.*
-
-pl 42.2
-       - new lilyinput (Mudela 0.1) doc.
-Examples
-       - new-twinkle.ly (in Mudela 0.1, hopefully)
-
-pl 42.1
-       - further Makefile revamping.
-       - moved flowerlib
-
-*******
-pl 42
-
-
-pl 41.hwn3
-       - struct Lexer_prefs
-       - parser bug
-       - make uninstall
-
-pl 41.hwn2
-       - make file rehack
-       - spec update
-       - make install
-       - detect TeX directory
-
-pl 41.hwn1
-       - cygnus configure,
-       - updated versioning 
-       - install.pod
-  
-pl 41.jn1
-Bugfix
-       - doze compile
-*******
-pl 41
-       - release
-
-pl 40.3
-       - all of the above
-       - hw's configure.in
-       - p-name.xx fixes
-
-pl 40.hwn1
-       - hairpin dynamics
-       - notename now as identifier. Parser/lexer cleanup
-
-pl 40.2
-       - mi2mu --blonde-durations, --no-silly options.
-       - mi2mu starts to look promising, see examples
-Examples
-       - pre1.midi.ly, fugue.midi.ly
-Internal
-       - Duration handles blonde midi-durations
-       - More settings for Duration_convert
-       - lily writes meter too (ugh, howto?)
-Bugfix
-       - mi2mu auto track number fix
-       - mi2mu / lily Midi_tempo fixed/added
-
-pl 40.1
-Bugfix
-       - lily midi output track 0 name
-       - mi2mu tempo fixed
-       - make out/make and out/make/Site.make in configure script!
-       - mi2mu double newline fix
-
-
-******
-Mar 11
-pl 40
-       - release
-
-pl 39-5
-       - own versioning for mi2mu: 0.0.10
-       - some file renaming mi2mu
-pl 39-4
-       - all of the above
-
-pl 39-hwn2
-       - last bar bugfix
-Internal
-       - simple dynamics
-       - experimental RPM spec.
-       - doco update.
-
-pl 39-3
-       - all of the above
-       - m2m renamed to mi2mu
-       - better line breaking in mi2mu
-       - (somewhat broken) progress indicator for mi2mu 
-       - mi2mu output === lily input (in names and durations,
-         always assuming voices > 1 though)
-
-Bugfix
-       - midi: note on/off only once per pitch per track 
-         (sending all note-on events introduces cool mi2mu feature)
-       - make clean removes deps too
-       - mi2mu notename/accidental/octave, and key fixed
-
-Internal
-       - auto create of out-dirs, config headers, using tag file .GENERATE
-
-Examples
-       - stanchen.ly debugged
-
-pl 39-2
-       - configure script help and in topdir again, duh.
-       - auto configure upon virgin make
-       - configured makefile stuff in make/out/
-
-
-********
-pl 39-1
-       - doze target (for 16 bit dos xcompiler: gcc-go32)
-Internal
-       - make/User.make; C..FLAGS sorted out
-Bugfix
-       - make clean...
-
-pl 39
-       - new make structure, featuring:
-           * top-level/sub-level build
-           * auto custom-library dependencies/build
-           * top-level/sub-level dist
-           * minimal(? can even smaller) specific Makefiles
-           * which makes for simple lib/exe module split (make/Template.make)
-           * integrated flowerlib
-           * all stuff into subbirs (make/Stuff.make)
-           * all headers into <module>/include dirs (make/Include.make)
-           * all output into <module>/out (executables into bin/)
-           * more make features, like make config, make help
-           * small lily lib
-           * lilypond-x.x.x/.version for toplevel lily version
-           * lilypond-x.x.x/<module>/.version for <module> version (eg: flower)
-           * versioning using additional optional MY_PATCH_LEVEL 
-               for easy make_patch
-
-       - bin/cptogen
-
-Internal
-       - generic m2m header: m2m.hh
-
-Bugfix
-       - small fixes, make, dist, configure
-
-pl 38-5
-       - all of the below, e.g. new filenames and new makefile 
-         structure patches merged
-******
-pl 38
-
-Internal
-       - great filename renaming operation with - convention.
-       - printing methods for paper_def/lookup/symtab(s)
-       - untied all registers from complexwalker. Now registers are
-intrinsically hierarchical. All walker communication is done via a
-"top level" register.
-
-pl 37-3
-       - m2m handles voices
-       - instrument, track_name, copyright/left stuff for m2m/ly
-
-Internal
-       - Midi_voice
-
-pl 37-1
-       - text, key, tempo event in midi output/ly input
-
-Internal
-       - simple makefile structure, allows for multiple projects
-
-******
-pl 37
-
-
-Documentation
-       - language.pod as starting point for mudela devel.
-
-       - Jan's patches:
-Features
-       - m2m patchy --no-triplet option;
-         lilypond accepts m2m's real midi output (hand-add red tape)
-       - m2m output only valid durations, resync option wip
-       - m2m produces .ly output
-Internal
-       - simpler and better naming for Duration*
-       - the great String renaming / index to base=0 change
-       - Track_column, Lily_stream
-       - Duration, Plet, Duration_convert taking load off duration calc.
-Bugfix
-       - m2m duration calc
-
-
-
-******
-pl 36
-       - Jan's patches:
-       - do MIDI rests cleanly.
-       - lily/m2m: time and tempo fixed for metric timing
-Internal
-       - Midi_tempo
-       - m2m parses more midi stuff (all of bach-wtc); timing??
-       - m2m recognises some commandline options
-Examples
-       - fixed midi.ly
-
-*******
-Feb 25
-pl 35
-       - Register_group
-Bugfix
-       - alignment of breakable items.
-
-*******
-pl 34
-       - better midi syntax.
-       - --midi,-M option.
-       - preliminary midi2mudela (/mudela2midi) converter: m2m (JCN)
-Internal
-       - m2m sources: midi-*; (JCN)
-       - new Midi_walker, fixes several MIDI bugs.
-       - junked Midi_staff, Staff_column children, Midi_walker
-       - Midi_output
-
-pl 33-1
-       - m2m parses midi
-Internal
-       - Binary_source_file
-       - Source_file::error_str simplified
-*******
-pl33
-Examples
-       - Swedish notenames (MB)
-
-pl pre33-2
-
-Bugfix
-       - midi pitch
-       
-Features
-       - Jan's patches, see below
-Bugfix
-       - some midi bugfixes.
-
-pl pre33-1 (JCN)
-
-
-       - midi output using pitches iso notename
-Examples
-       - added midi output (some midi output files broken?)
-       - all melodic fixed (except for error.ly:-) 
-       - midi.ly
-Bugfix
-       - midiwalker line break
-       - empty/nonexistent include at top of ly
-       - midi #tracks
-       - midi pitch c0
-       - midi poor man-s staff dynamics
-Internal
-       - Midi_column, Midi_staff, Midi_walker
-
-pl pre33 (JCN)
-       - Jan's patches, see below
-
-Features
-       - simple plet notation (JCN)
-       - lyrics centred, but no fully suppored? (JCN)
-Internal
-       - Midi_stream 
-       - Mididef
-       - Midi_item, Midi_pitch, Midi_duration
-       - Midi_chunk, Midi_header, Midi_track
-       - preparations for midi output 
-       - no exit upon context error (JCN)
-       - converted some "warnings" to errors; no output (JCN)
-Bugfix:
-       - simple plet bugfix
-Examples
-       - updated standchen, menuetto (JCN)
-       - new plet notation (JCN)
-       - plet.ly (parse and spacing tests) (JCN)
-
-*******
-pl 32
-Features
-       - multiple meters, see rhythm.ly
-       - skip syntax/Skip_req
-       - score_wide_music: commands in staff now override commands in score.
-Internal:
-       - command carnage
-       - Key_register
-       - Bar_register
-       - Meter_register
-       - meters now kept in baseclass Staff_walker
-       - Score_walker (to ease MIDI output)
-Doc:
-       - Hungarian doco added to CodingStyle
-
-pl 32-1
-       - music processing speedup
-       - website added to doco
-       - clef must *inside* music
-       - fixed spurious "beam too narrow" messages.
-Internal:
-       - merge musical / non-musical staff_column
-       - musical/ non-musical requests
-       - Clef_register
-       - split up request.hh, Musical_req vs. Nonmusical_req
-*******
-pl 31
-
-Examples
-       - Coriolan example (JN)
-       - standchen updated
-Bugfix
-       - calcideal assertion bugfix
-*******
-Feb 12 13:55
-pl 30
-
-Features
-       - better multivoice spacing
-       - move rest in multivoice staff
-       - errors in TeX output now warnings
-       - progress indicator
-       - music processing speedup.
-Internal
-       - make spanner for staffsym; scrap Line_pstaff
-       - scrap simplestaff (Rhythmic_staff temporarily disabled)
-       - docxx 3.0 format comments
-       - split register source files
-       - hardcoded dimensions compile time
-       - Lookup::tex_hairpin
-Bugfix
-       - non G-clef clefs
-       - script junking (2x)
-       - empty files
-       - beam::center (plet position!)
-       
-pl 29
-       - multiplatform Makefile (JN)
-       - context errors: bugfixes (JN)
-*******
-pl 28
-
-Internal
-       - idealspacing slightly better for multivoice.
-Doc
-       - Request_register
-Bugfix
-       - Script.cc : float exception (MB)
-       - Request::Request(Request) copying of definition pointer (JN)
-       - cleaned dependencies for broken spanners
-       - stupid typo in Staff_elem::post_processing()
-       - init of hpos in PCol::PCol
-       - Word_wrap::solve() bug 
-*******
-pl 27
-       - preliminary WIN32 support (JN)
-Features
-       - errors converted to warnings (JN)
-       - context errors (JN)
-       - As vs. as  notename.
-       - WARNING: "melodic" stafftype will create the new Complex_staff!
-Examples
-       - Lohman's Viola Quartet (JN)
-       - JS Bach Solo Cello suite II menuet (JN)
-
-
-pl pre27
-
-Features       
-       - option --init
-       - last_duration_mode: default_duration is last duration entered
-       (\duration{\last})
-       - syntax: grouping 2*4 3*8
-       - preliminary multivoice support
-Examples
-       - JS Bach's WTK example added.
-
-Internal:
-       - Text_reg and Script_reg
-*******
-pl 26
-       - Documentation/lelie_logo.png
-       - 8-bit chars for input (see ltest.tex) (MB)
-       - quotes around string now optional
-Bugfixes:
-       - unmatched ] (MB)
-Internal:
-       - print/name methods of Staff_elem
-       - added Request_register
-       - Voice_group_registers, Voice_registers, *_register
-       - Complex_staff
-*******
- Jan 27 '97 
-pl 25
-       - other clefs added, keys typeset properly (MB)
-
-*******
-pl 24:
-       - Lyrics (JCN)
-       - Commands in music-mode (an input feature) (there you are, Mats)
-
-*******
-pl 23:
-       - TODO file inc'd
-       - cadenza mode.
-       - default extension, search path.
-       - error.pod,faq.pod
-       - Markers
-       - configure script
-       - inputfile name in output.
-Internal changes:
-       - scrapped VPATH
-       - Make dependencies per .o
-       - Split Input_* parsing steps to enable marking 
-Bugfixes:
-       - unconnected columns
-
-
-*******
-pl 22:
-       - doco from mpp
-       - repeat signs
-       - | checks for bar in a voice (Barcheck_req)
-Internal changes:
-       - naming (Hungarian notation, svec vs. Array)
-       - cleanup PScore, Score
-       - removed Staff_commands, plugging commands into Staff_column directly
-Bugfixes:
-       - bug noteheadswap
-       - huge memleak fixed; unearthed lots of bugs
-
-*******
-pl 21:
-       - scripts
-       - texts
-       - nplets (triplets!)
-Internal changes:
-       - Move breaking stuff into a separate class Break_algorithm
-       - dependencies for Staff_elem's
-
-*******
-Dec 23 
-pl 20: 
-       - updated doco to .pod
-       - include files from .ly
-Internal changes:
-       - Rational for time measurement
-       - directionalspanner/textspanner
-
-*******
-pl 19:
-       - grouping code: LilyPond can set advanced multibeams.
-Internal changes:
-       - struct Moment
-
-*******
-
-pl 18:
-       - robust Staff_commands
-
-*******
-pl 17:
-       - robust Input_commands
-       - merged Vertical_/Horizontal music
-       - PARTIALs with duration
-       - modularized lexer: multiple runs
-
-*******
-pl 16
-       - notenames configurable
-
-*******
-pl 15
-       - grouping code
-       - multibeams (simple)
-
-*******
-pl 14
-       - symtables from .ly
-       - Input_command
-       - Input_{score/staff}
-
-*******
-Dec  2 
-pl 13
-       - Horizontal/Vertical music
-       - Input_commands
diff --git a/NEWS-0.1 b/NEWS-0.1
deleted file mode 100644 (file)
index f5e3562..0000000
--- a/NEWS-0.1
+++ /dev/null
@@ -1,2141 +0,0 @@
-August 1
-
-VERSION 1.0.0
-
-       - scsii-paper: no wordwrap
-       - bf's: texinfo
-
-pl 85.jcn2
-       - ONEWS -> NEWS-0.1
-       - bf: zip: list of docfiles
-       - bf: install info
-       - bf's: rpm spec
-       - website ok
-       - mudela version bump -> 1.0.0
-       - bf's: '[a-g] -> ,
-       - bf: broken.ly
-       - ly2dvi fixes, (PC)
-
-pl 85.hwn1
-       - search & replace: jan@digicash.com -> janneke@gnu.org
-
-pl 85.jcn1
-       - website fixes
-       - debian fixes (thanks, Bastian Kleineidam)
-       - some (yet unfinished) doco
-
-*********
-pl 85
-july 30 
-
-pl 84.hwn4
-       - revamped install directions.
-pl 84.eb1
-       - key undo    
-
-pl 84.hwn3
-       - misc scsii fixes.
-       - doco fixes
-
-pl 84.jcn3
-       - bf: titledefs without poet
-       - scsii fixes
-
-pl 84.hwn2
-       - don't make key items if no accs present.
-       - Oops.   Lyric spacing should go to the right (and not left) (thanks, PC)
-       - barnumbering break priority.
-       - bf: tied chords
-       - 16pt init for yodl-mudela
-       - split span-score-bar.{cc,hh}
-       - junked most experimental_features_global_b stuff
-       - revised AUTHORS.yo 
-       - dot stuff.  Added a Dot_column_engraver  (thanks, Mats)
-
-pl 84.jcn2
-       - ly2dvi fixes
-       - w32/install doco fixes
-       - mutopia fixes
-
-pl 84.hwn1
-       - fixes for ly2dvi + titledefs (Peter Chubb)
-       - merge Span_dynamic_reqs too
-
-pl 84.mb1
-        - MF: Added breve and longa rests.
-pl 84 jcn1
-       - top website
-       - ps-to-gifs: TRANSPARENT_IS_BROKEN (ppc hack)
-
-pl 84.uu1
-       - doco fixes
-
-*************
-pl 84
-
-pl 83.jcn5
-       - bf: typo mudela-doc
-       - long getopt all the way
-
-pl 83.hwn5
-       - doco fixes
-       - bf: initialise axis_ filed of script
-       - separate versioning for mi2mu and flowerlib dropped. 
-       - split bin/ in buildscripts/ and scripts/
-
-pl 83.jcn3
-       - egcs ICE stuff.
-
-pl 83.jbr2
-       - lily/midi-stream.cc: added appropriate MODE options to open 
-       midi output as a binary file.  This should be pretty harmless.
-       - lily/lexer.ll: added \r as white and black space to enable
-       W32 native editors.  This also should be harmless.
-
-pl 83.jbr1
-       - flower/lgetopt.cc: report method fix. (String + char needs to be 
-       fixed)
-
-
-pl 83.hwn4
-       - stepmake := stuff
-
-
-pl 83.hwn3
-       - \property maxVerticalAlign, minVerticalAlign tunes vertical
-       staff distances.  See input/test/vertical-align.ly
-       - bf: scripts over chords. (thanks, PC)
-       - revamped aligning stuff: Align_element is baseclass
-       for Horizontal_align_item and Vertical_align_spanner
-       - bf: Clef_item with _8 does new/del correctly. 
-       - more file renaming -elem -> -element
-
-pl 83.hwn2
-       - doco fixes (thanks, Lambert)
-       - tieydirection,slurydirection overrides ydirection (thanks, PC)
-
-pl 83.jcn1
-       - bf: stepmake
-
-pl 83.hwn1
-       - rm'd clean-embeds.sh
-       - rm'd \octave from all examples.
-
-pl 83.uu1
-       - mi2mu output mudela 0.1.21
-       - meter -> time_signature
-       - bugfixes for mi2mu, divide by zero error.  (thx, JBR)
-
-
-********
-july 23
-
-pl 83
-pl 82.hwn2
-       - \musical_pitch -> \musicalpitch (mudela 0.1.21)
-       - meter -> time_signature,
-       - \meter -> \time (mudela 0.1.21)
-       - moving around files : -grav -> -engraver
-       - doco fixes
-
-pl 82.jcn5
-       - doc make fixes; stepmake 34
-
-pl 82.jcn4
-       - lots of doco build/install/website fixes
-       - junked some doubles from doco
-
-       - mi2mu syntax to 0.1.20
-       - bf: mi2mu col creation
-       - bf: stream << '\t', int
-       - bf: mi2mu version
-       - bf: font-body.ly
-
-pl 82.jcn3
-       - bf's: diff/stepmake
-pl 82.jcn2
-       - bf: slur blow
-       - tie/slur ydirection
-       - makeflags / diff fixes
-pl 82.jcn1
-       - rejects: verbatim copy of Coriolan from 81.jcn2
-
-pl 81.jbr2
-       - Documentation/README-W32.yo: Additions to section 2
-
-*******
-
-pl 82
-
-pl 81.jbr1
-       - NT fixes for release target
-         * stepmake/stepmake: %=--% => %=% in diff target
-           Cygnus make with MAKE_MODE=unix forces a MAKEFLAG of --unix.
-           This results in a ----unix switch being passed to package-diff.
-           This may break normal operation of this target.
-         * stepmake/bin/package-diff.py: added a do nothing option --unix
-pl 81.jcn2
-       - bf: abbrev
-       - found ugly slur bug
-       - egcs workaround
-       - more Coriolan fixes
-       - half-beam fix
-
-pl 81.hwn2
-       - lots of vocabulary
-       - break_priority_i_  fixes: barnumbering, marginstuff, marks now work more or less
-       - wrote lilypond-docs RPM spec
-       - major brainsurgery: class Graphical_axis_group:
-         * derive Axis_group_element from Graphical_axis_group,
-         * derive Graphical_axis_group from Graphical_element
-       - junked input/minimal.ly
-       
-
-pl 81.hwn1
-       - cleaned up parser.yy (removed  \textstyle from parser, other stuff)
-       - Slurs have height too.
-       - typewrite textstyle
-       - added error rule to music.
-       - Documentation/pictures/ subdir
-       - Documentation/topdocs/ subdir
-
-
-pl 81.jcn1
-       - coriolan fixes.
-
-******
-july 16
-
-pl 81
-
-pl 80.jcn1
-       - Coriolan: bulk remainder of strings
-
-pl 80.hwn1
-       - junked coriolan-alto.ly
-       - the great Search & Replace
-         * Score_elem -> Score_element
-         * hanwen@stack.nl -> hanwen@cs.uu.nl
-         * Colinfo -> Column_info
-         * add () -> add_xxxx ()
-         * Col_hpositions -> Column_x_positionso
-       - lily-proto.hh cleanup
-       - moved Dot_column creation.  Dot bug fixed
-       - typos README-W32
-       - ADD_THIS_TRANSLATOR uses templates now.
-
-pl 80.eb1
-       - accidental transposition
-
-
-*******
-
-pl 80
-       - some make vs $(MAKE) bugs
-
-pl 79.hwn1
-       - bf lily/VERSION depends on toplevel VERSION
-       - bf postbreak_only scripts
-       - Staff_side now is horizontal too
-       - rm'd \octave in scales.ly
-
-pl 79.jcn2
-       - w32 support doco (JBR)
-       - bf: install info
-       - truncated some very long filenames (not bo length)
-
-pl 79.jcn1
-       - bf: ps-to-gifs
-       - html fixes
-       - more italian (TDM)
-       - more coriolan
-
-
-*********
-pl 79
-
-pl 78.hwn2
-       - reversed some of the beyond-too-ugly hacks for script/staffside.
-       - bf: Axis_group_element::access_Axis_group_element () (2nd fix for Hara_kiri)
-       - more .bib stuff.
-       - more doco, lots of small fixes for .yo stuff.
-
-
-pl 78.jcn2
-       - bf: make docxx
-       - some doco/website fixes
-i      - screenshots for website
-       - fixed locale
-       - v78
-       - w32 doco
-
-pl 78.hwn1
-       - more bib fixes
-       - uniformised virtual accessors for Score_elem children.
-       - bf Hara_kiri seg fault
-       - changed left == right spanpoint assert into warning
-       - changed Lyrics.textstyle  to Voice.textstyle where appropriate
-
-pl 78.jcn1
-       - counter fix
-
-************
-
-pl 78
-
-pl 77.hwn1
-       - Key transposition (MB)
-       - move .dstreamrc to dstreamrc
-       - make website fixes. junked z.yo, language.yo
-       - split off computer stuff from engraving.bib
-       - articles from CMJ added to computer-notation.bib
-       - doco fixes
-       - syntax of \skip and \partial changed; take only single durations
-
-
-pl 77.jcn2
-       - mark placement
-       - w32 doco
-       - html-footer: (PACKAGE)_COUNTERPATH
-
-pl 77.jcn1
-       - doco, bib fixes
-       - fixed \mark A; \mark 12;
-
-pl 77.hwjc
-       - dropped perl
-       - py fixes
-
-
-pl 77.uu1
-       - \textstyle obsoletized, use \property Voice.textstyle now.
-
-*******
-pl 77
-       - bf: install info
-       - bf: key-grav.cc: ambiguous conversion
-       - bf: mudela.yo glossary em() -> \emph{}
-
-pl 76.jcn1
-       - irix compile install fixes, .bib stuff (HWN)
-       - bracket bit lighter
-       - brace/bracket placement
-       - minor fixes in key code
-       - small website fixes
-       - invocation mudela-book
-       - try at bracket/brace placement
-
-pl 75.mb1
-       - Introduced real key names, \key e; gives E major!
-       - Previous use of the \key command now called \accidentals, 
-         \accidentals fis cis gis dis; gives E major.
-       - Support for special keys with different accidentals on 
-         different octaves, \specialkey \accidentals Fis Bes gis aiss';
-
-**********
-pl 76
-       - website examples: 
-         * Thread -> Voice
-         * 18 -> 19
-         * type /consists Engraver vs Line_engraver stuff
-       - bf: mutopia-index
-       - to relative: twinke-pop
-       - bf: clef-grav: null pointer assignment
-       - ran convert-mudela
-
-pl 75.jcn3
-       - minieme fixes (HWN)
-       - bf's: node() names have changed: Mudela Book/ Convert Mudela 
-       - bf: lilyponddefs.tex: removed \fi, added braces
-
-pl 75.hwn2
-       - bf lilyponddefs.tex: added \fi to \ifs
-       - convert-mudela in python
-       - mudela-book in python.
-       - bf memleak Score_elem::do_brew_molecule ()
-       - bf array bound read String_convert::split_arr
-       - bf free mem read Item::Item (Item const &)
-       - bf memleak Midi_walker::do_{stop,start}_note ()
-       - bf memleak Spanner::do_brew_molecule ()
-       - bf plet-engraver memleak 
-       - checked input/bugs dir.
-
-pl 75.hwn1
-       - junked octave (mudela 0.1.19)
-       - more .bib stuff
-       - doco fixes.
-  
-pl 75.jcn2
-       - binary releases:
-         * make deb
-           * dpkg 1.4.0.23.2
-           * debhelper 0.96
-           * /usr/bin/db_*: remove -p from install options (urg)
-         * make rpm
-         * make zip
-       - path to nice lilypond.info (must have a go at auto-nodes):
-         * mv'd Documentation/man/lilypond-info.yo -> Documentation/topinfo.yo
-         * included mutopia as example
-       - bf: gifs: $(wildcard)
-       - leave tarball in out/ too, after 'make release'
-       - mf-to-table: --package
-       - typo configure.in
-       - nt make fixes (JBR)
-
-pl 75.hwn1
-       - clef 8 fix (AG)
-       - junked octave (mudela 0.1.19)
-       - more .bib stuff
-       - doco fixes.
-
-pl 75.jcn1
-       - dropped mf/Rules.make
-       - dropped target doosdist
-       - dropped lilypython/pythonblurb
-       - --package rest of python exes
-       - packagepython/package-diff fixes
-
-
-**********
-pl 75
-
-pl 74.jcn5
-       - lost of (step)make fixes
-       - 'make release'
-       - --package
-
-pl 74.mb1
-       - Fix ":|:" that spans several staffs
-       - bf: bar.cc, table of breaks
-       - bf: engraver.ly, Complete the addition of ChoireStaff
-       - bf: lilyponddefs.tex, placement of ":|".
-       - Cleanup clef-item and clef-grav, prepare for dictionary
-         of clef names.
-
-pl 74.jcn4
-       - cygnus fixes: doco, compile, install
-
-pl 74.jcn3
-       - packagepythonified genheader
-       - stepmake 21
-
-pl 74.jcn2
-       - renamed: ../redhat to ../RedHat
-       - renamed (or huh, was this a typo?):
-          ../sourcetree -> lilypond-x.y.z to ../lilypond -> lilypond-x.y.z
-       - what about ~/rpms; see stepmake/Variables.make?
-       - README.txt
-       - debashify: zet-lily (HWN)
-       - www, yodl, stepmake fixes
-       - ls-latex fixes
-       - mudela.yo fixes
-
-pl 74.jcn1
-       - mudela.yo fixes
-       - bf: add-html-footer: duplicate <body>
-
-*********
-pl 74
-       - bf: ps-to-gifs fix
-
-pl 73.jcn2
-       - irix configure/link fixes (HWN)
-       - untested fix for "^\f" (HWN)
-       - add-html-footer: bgcolor=white
-       - m.yo: successful 2tex and 2html
-       - ps-to-gifs additions and fixes
-       - bf: --output
-       - (step)make targets:
-         * diff
-         * help
-         * rpm
-         * zip
-       - yodl-1.30.pre4: handle mudela(options)(mudela)
-       - small m.yo example for mudela.yo
-       - crude tex2yodl in stepmake
-       - mudela from stdin: default to filter behaviour
-       - allow lelie to act as a pseudo-filter --output=-
-       - fixed faq.yo
-       - atvariables
-       - bf's: module-deps
-       - bf's table-to-html and invocation
-       - small doco fixes
-
-pl 73.hwn1
-       - more doco
-       - got rid of weird <> semantics
-         * Ties_engraver, Note_heads_engraver
-         * depracated \multi
-         * depracated Thread context
-
-       - wtk1-fugue{1,2} now in relative mode.  
-       - don't create Rest_collision, Collision if no more than one 
-       collider (interpreting should be faster, less mem usage)
-       - depracate Line_group_engraver, must use Line_group_engraver_group
-
-       
-pl 73.jcn1
-       - tiny topweb.yo fixes (added 'Documentation/out-www/' to some urls)
-
-*********
-pl 73
-       Yodl developent:
-         ftp://pcnov095.win.tue.nl/pub/yodl/
-         http://www.digicash.com/~jan/yodl/
-       - removed BLURBS from makefile
-       - stepmake pl 16
-       - To Yodl:
-         * *.pod -> *.yo (should fixup pod 'manpage' legacy)
-         * dropped pod2* config stuff
-
-pl 72.hwn1
-       - count "constraint off" as degeneracy
-       - zet-lily stuff.
-       - bf: add Meter_engraver 
-       - bfs: tutorial
-
-pl 72.jcn3
-       - Documentation/man texinfo-> YODL!
-
-pl 72.jcn2
-       - more texinfo:
-         * texi2html workarounds: junked man/*.pod
-         * Documentation/man: pod -> texinfo
-       - Coriolan: viola part
-
-pl 72.jcn1
-       - doco/mutopia/website fixes
-
-*********
-pl 72
-
-pl 71.jcn4
-       - try at texinfo: 
-         * lilypond.texinfo
-         * stepmake pl 13: texi2man
-         * lilypond.1 now generated from texinfo
-         * lilypond.info
-
-pl 71.hwn2
-       - changed QLP asserts to warnings; now you can see the
-shabbyness of the QLP code
-       - ChoireStaff context
-       - more tutorial doco
-       - mudela-book: name output files to per section and chapter.  
-
-pl 71.jcn3
-       - bf: convert-mudela: added StaffGroup
-       - bf: various .ly: (WhyIsThis; we'll drop a_"bla" and use '_', no?)
-       - stepmake pl 12
-       - bf: abbrev + beam (urg: internote y dim bug)
-       - debian conffiles (AF)
-
-pl 71.hwn1
-       - vocab fixes
-       - more tutorial stuff
-       - quart -> fourth
-       - depracated contexts with _ in name  (mudela 0.1.17)
-       - bf: don't crash if default context can't be found
-       - distinction between global and local \header block.
-
-pl 71.jcn2
-       - msgfmt check
-       - rpm: crude fix for input dir (urg: should get doc on rpm spec; 
-         why is that so hard to get hold of in plain text?)
-       - found (bit undocumented) sticky abbrev mode in stem-grav:
-           c8:16 c: c:
-         * bf: enable disabling
-          * disabled sticky abbrev req
-       - urg: transposing for midi (should fix audio-items)
-       - sticky abbrev req: a8:16 a a a8:
-       - bit more coriolan
-
-pl 71.jcn1
-       - added PATCHES to web page
-       - rpm-dist, doos-dist, show-latest to step
-
-********
-pl 71
-       - bf: po install
-       - fixed somewhere: space between bar line and first note [HWN]
-       - bf: DOTTEXT
-       - bf: (don't) install libintl
-       - configure fix for irix tr
-       - bf release.py
-       - stepmake-0.1.9: fixes make install, rmp-dist
-       - bf: mf-to-table
-       - make-patch: lily-diff
-
-pl 70.jcn6
-       - make htmldoc defaults to out-www
-       - moved some python stuff to stepmake-0.1.8
-       - aux config scripts from stepmake
-       - stepmake-0.1.7 as ./stepmake: drop versioning on sub-package dirnames
-       - po fixes
-       - computer-forms.el
-
-pl 70.jcn5
-       - bf: Documentation/make html
-       - bf: coriolan ... almost there
-       - bf's: lilyponddefs: (fixes make website)
-         * moved errordefs (mmm, perhaps \input's should have been moved...)
-         * moved def of interscoreline 
-         * moved def of setdynamic
-       - stepmake 0.1.6
-       - include fixes
-
-pl 70.jcn4
-       - configure stepmake too
-       - make dist recurses into stepmake
-       - stepmake-0.1.5
-
-pl 70.jcn3
-       - make; make dist work (without packaging) stepmake-*
-       - mv'd outputter* tex-outputter* 
-        its not so handy to have files with the same prefix as our out dir :-)
-       - verbatim included stepmake-0.1.4
-       - DOTTEXT->.txt
-       - verbatim included stepmake-0.1.3
-
-pl 70.jcn2
-       - changed 'current' to 'lilypond' in scripts that only i ever use...
-       - tenuto shorter, thicker and follow into staff
-       - computer{.data,-forms.el}
-       - mark
-       - by default don't make libintl 
-       - make install for libintl
-
-pl 70.jcn1
-       - generic make fixes
-
-********
-pl 70
-
-pl 69.jcn4
-       - included libintl from gettext-0.10
-       - fix: staff-bracket on one staff too
-       - bf: lilymake/Rules
-       - generic lily-make-0.1.0 package; shared as example with lilyx-0.1.0
-       - junked automake stuff from aclocal.m4
-       - bf: BASH scripts
-
-pl 69.hwn1
-       - standardised virtual accessor naming for Requests
-       - doco updates.
-       - bf: tied accidentals.
-
-pl 69.jcn2
-       - now DATADIR = datadir = /usr/local/share/lilypond ...
-       - bf's: DATADIR/datadir: by default: /usr/local/share; '/lilypond'
-         must be added whenever necessary
-       - bf: begin/end html for BLURBS; junked html-accents...
-       - html-accents
-
-********
-pl 69 (june 2)
-       - bf: table-to-html: convert_html
-       - bf: added fingerfont in fetdefs.tex
-       - crude fix: fetdef repeatcolon
-       - gallina.ly to relative octave mode (MB)
-
-pl 68.jcn3
-       - bf: libintl.h include
-       - readded: DATAFILES =.*data (too late, computer vocab missing...)
-       - span-score-bar:
-         * don't set piano braces that span less than two staffs
-         * don't set staff brackets that span less than one staff
-       - bf: abbrev (internote dim)
-       - more coriolan, hara-kiri
-       - add arcs to bracket height to avoid colliding of brackets
-       - HAVE_GETTEXT
-       - computer.data: modest start of computer-related vocabulary 
-       - configure (localdir/datadir) fixes
-
-pl 68.nenn1
-       - fix for postbreaks past line_group
-       - bf: harakiri: set empty
-
-pl 68.hwn1
-       - use AFM iso autogenerated table.
-       - more bits of tutorial
-
-*********
-pl 68.jcn2 (may 29)
-       - bf: configure.in localedir/datadir (urg)
-       - libc-extension.cc: vsnprintf + check
-       - bf: blurbs
-       - @BASH@ for scripts that are actually (still...) bash iso sh
-       - check for bash
-
-pl 68.jcn1
-       - gettext/intl checks; (AO)
-       - bf: meter-switch
-       - COPERTINA
-
-pl 68
-       - AFM file stuff: afm.cc, afm-reader.cc, mf-to-table.py
-       - removed c0 position from get_staff_info ()
-       
-pl 67.jcn2
-       - grace example
-       - bf: sticky plets
-       - bf: s0
-       - bf: twinkle.ly
-       - junked implicit to-string conversions
-         * now used Scalar for all explicit implicit conversions
-         * moved implicit-conversion String constructors to to_str (...)
-       - _f with Strings
-       - bf: BLUB: re-added empty line 
-       - bf's: reincluded: tar-docxx.sh, topweb.pod.in (<aol>me too!</aol>)
-       - po: unification/breaking-up of (some) messages
-       - crude get-lily/build-lily scripts
-       - make targets "po-update" "show-po-update LANGUAGE=xxx"
-       - handier internationalisation funcs _(), _f () iso macro
-       - String_convert::form_str (fmt, ...)
-       
-
-*******
-pl 67 (may 27)
-       - multiple font sizes.  See input/test/sizes.ly
-       - w32 blurb by Dominique Cretel
-       - bfs faqs
-       - cleaned Identifier further; canonical accessors
-
-pl 66.jcn7
-       - bf: hara-kiri clefs: (the "u" is "\unknown"; how to fix this?)
-       - bf's: make website
-       - better configure language message
-       - bf: lilpond.spec
-       - bf: configure/localedir
-       - internationalisation: po/*
-       - distribute mutopia/ in binary rpm too
-       - FLAPTEKST
-       - "generate" all debian conffiles in out/
-       - BLOEP; and BLURB substituted by configure throughout doco
-
-pl 66.jcn4
-       - bf's standchen
-       - website fixes for .fly
-       - target doc++; tar-docxx fixes
-       - topweb fixes
-       - configure check for pod2html 5004/5003
-       - switch init file on extension (some new ones):
-         * init.ly:  normal structured Mudela
-         * init.fly: simple Mudela (for on-the-* without tape ly's)
-         * init.sly for simple init (no properties,scripts,midi)
-
-       - bf: stem with flags (forgot internote dimension)
-       - bf's mutopia (urg, properties)
-       - String_storage: parse string identifiers  (i didn't do it, nobody saw me do it, you can't prove anything)
-       - scsii-prelude: urtext and suggested slurs separated
-       - converted twinkle, kortjakje, standchen, preludes to relative
-       - conflily -> zet-lily
-       - -Q --find-quarts option
-       - bf: add-html-header: mailaddress () iso mailaddress
-       - bf: show-latest looks at MY_PATCHLEVEL too
-       - fixes scsii
-
-
-
-***********
-pl 66 (may 18)
-       - junked literature.pod (we now have the .bib file)
-       - bits of mudela.doc
-       - other-packages.pod -> other-packages.bib
-
-pl 65.jcn3
-       - print_dimen: don't print "NaNpt"
-       - fixed Coriolan, added "instrument" and "instr"
-       - MIDI favours property "midi_instrument" over "instrument"
-       - Bar::do_height iso brew_molecule hack: not quite yet...
-       - stem/beam: more stuff runtime
-         * beam-dir-algorithms
-         * beam-stemlengths: take unnatural dir into account
-         * natural stemlength
-         * forced stemlength shortening
-       - bf: Bar: don't make molecule if invisible; fixes hara-kiri
-       - robustification of MIDI: never return "", always return sane 
-         string and print warning
-       - bf: typo Key_change_req::sharps(); fixes MIDI
-       - scsii: new relative octave fixes, gigue
-
-pl 65.jcn2
-       - included some auto-generated mf files for MikTeX (doos).
-       - hara-kir: nicer set-transparent
-       - relative.pod: doco'd blonder relativeness
-
-
-pl 65.jcn1
-       - staff-margin-engraver
-       - blind scsii fixes for new relative mode
-       - bf's: hara-kiri-*
-       - jumps in topweb.pod
-
-*********
-
-pl 65 (may 15)
-       - fixes for template instantiation (AO)
-       - junked standchen-easy,
-       - mudela 0.1.15:  deprecate \duration, junked \octave relative
-       - small doco fixes
-       - moved data from Melodic_req into Musical_pitch (analogous to
-       Duration and Rhythmic_req)
-       - implemented \relative c' { .. } and associated Relative_octave_music
-       - junked \octave relative;
-
-pl 64.jcn2
-       - simple compile fixes
-       - bf: beam:stemlens:knee
-       - hara-kiri-*
-       - bf: ctags
-       - preludes-3.lym4
-       
-*********
-pl 64 (may 13)
-
-pl 63.jcn3
-       - beam stemlength stuff runtime
-       - dropped lq for beam-stemlengths, fixes [d d d] [d g d]
-       - ugly sed fix for commas in .ly.m4
-       - beam damp corrent fix
-       - scsii: small fixes
-       - preludes.ly; dropped silly preludes.tex
-
-pl 63.jcn2
-       - vocabulary on website
-       - data-to-html.py
-       - bf: beam damped-slope correct
-       - bf: make website
-       - some preludes-* fixes
-
-pl 63.jcn1
-       - "relative" sizes for titledefs
-       - bib2html/man2html urls in INSTALL.pod
-       - auto-generated feta stuff in doosdist
-       - bf's: make dist, docdeps
-       - bf's scsii
-
-************
-pl 63 (may 11)
-
-       - non_fatal_error () (should use!)
-       - Mozart Horn concerto 3, horn part
-       - bf: plet-spanner
-
-pl 62.jcn11
-       - bf: beam::set-stemlen:iterations 
-       - knee-bug.ly
-       - use knee in menuetto-ii
-       - bit on slope damping
-       - some bf's and doco
-       - bf's scsii
-       - scsii: bf' new: sarabande
-       - bf's allemande, courante
-       - bf: knee: stem through beams
-       - bf: too high beams
-
-pl 62.hwn1
-       - bf jcn8: deep copy Scope (ughugh.  I want GC!)
-       - cleaned Identifier
-       - mudela 0.1.14  'a -> a,
-       - class Scope
-       - .bib updates
-       - key robustifiction for extreme octaves
-       - ly2dvi 0.11
-       - energy "normalisation" removed. 
-       
-pl 62.jcn8
-       - beam: knee input/test/knee.ly
-       - vimrc init for lily
-       - errors display column number too
-       - scsii: bf's, new: allemande, courante
-       - looked at lyric lengthen "mir________." (eerste weigering)
-       - beam: knee [c \stemdown c' \stemup 'c]
-       - expressions parsed at identifier_init
-       - bf: slur/stem/whole x-adjust: 
-         * use note-col width iso mean note-witdth
-         * note-column:width ()
-       - now string variables in paper too -> mudelapapersize
-       - paper_def: real dict -> identifier dict
-       - My_lily_lexer: identifier dict stack
-       - init paper and a4 stuff
-       - \include \string
-       - all rvalues from parser var pool -> access rvalue as \rvalue
-       - string variables
-       - ly2dvi 0.10.jcn1
-         * mudelapiece, mudelaopus (ugh, fix)
-         * textheight
-       - more titledefs
-       - bf: table 20 typeface widths
-       - bf: toplevel/*.txt
-       - bf: ugly Documentation/mutopia fix (should rename dir to Mutopia/ ?)
-       - bf: make examples
-       - www.digicash.com/~jan/lilypond
-       - make website fixes
-       - ambiguity fixes in .ly's
-       - bf: relative-octave warning
-       - relative-octave: guess if ambiguous
-       - ambiguity warning for relative mode
-       - scsii: prelude 
-       - bf: slur gap
-       - bf's: scsii: menuetto
-       - .txt -> $(DOTTEXT)
-       - make website fixes
-       - .txt fixes
-       - bf: typo make-patch
-       - bf: *dist.sh cleanup
-       - bf: release.py
-       - bf: make/Targets doc (removed .txt extension)
-       - rpm-dist.sh
-       - make doos dist fixes
-       - doos-dist.sh windoze dist script
-       -- removed useless spacing hack at spring-spacer.cc:692
-       - bf: los-toros: do multi-bar rests (setting SkipBars = 1)
-       - scsii-menuetto.ly -> menuetto-urtext.ly, -cello.ly and -alto.ly
-       - bf: \octave c'; for relative-octaves
-       - bf: Documentation make
-
-*********
-pl 62
-       - no-touch hak.
-       - bfs: multi measure rests
-       - fixed the website.
-       - add extra space after breakable columns.
-
-
-pl 61.jcn8
-       - mudela relative octave feature: 
-         * Documentation/relative-octaves.pod
-         * \octave relative;
-         * lilypond -f for automatically finding new relative quote positions
-           (sorry, fully automated convert is too complex)
-         * mutopia/ltor.ly: octave quotes reduced from 511 to 59
-       - better conflily
-       - bf: abbreviation-beam-engraver: set beam::multiple_i_
-       - bf: open_abbrev_parens
-       - dotted/dashed slurs/ties
-       - fixed-up scsii-menuetto; use dotted-slurs
-       - slur_thickness runtime
-       - bf: typo lilyponddefs: elevendefs
-       - moved hard-coded slur parameters to runtime
-       - make-patch -r: diff against latest release
-       - allow semicolons after paper_identifier and \include
-       - params.ly: parameterised some paper vars
-       - bf: beam quantise for slope = 0
-       - interbeam (mult>3) open-up to paper-def to paper!
-       - "implemented" Paper-def::staffheight
-       - simplification + bf bezier clipping
-       - vandale fix
-       - moved doco from paper*ly to fonts.doc
-       - papers with expressions
-       - paper20.ly: rewrote precalculated values as expressions
-       - simple expressions in mudela (paper-body only)
-       - beam_thickness centralised and run-time...
-       - \nobreak
-       - bf: beamquantise: never sit if mult > 1
-       - bf: broken slur y-offset (not!)
-       - pagelength hack in tex/headers
-       - alignment of bracket (in span-score-bar.cc)
-       - boolean *break_b to continue break_penalty_i; maar nu...
-       - removed paper20 includes, \paper_twenty from examples
-       - dropped latex files
-       - renamed standje, standchen.
-       - parser accepts range of mudela-versions
-       - Mudela_version
-       - String_convert::split
-       - bf's: los-toros-oboe
-       - braindead Break_req with penalty; junked Disallow_break_req and 
-         Break_force_req 
-       
-pl 61.ag1
-       - implemented octave-shifted clefs.
-
-********
-
-pl 61
-       - bf: mudela-book error msgs
-       - don't dist feta-tables.
-       - bf: mf-to-table, deps[0] catch
-       - reworked initialisation parsing logic; Got a no-redtape mode
-         for free
-       - 20 pt staffsize now default
-       - dependencies for LilyPond (-d, --dependencies).  --debug moved to -D
-       - (c) 1998
-       - ly2dvi 0.10 (JAF)
-       - changed \begin[options]{mudela} to \begin{mudela}[options]
-       - more WWW hacks.
-       
-pl 60.jcn2
-       - minor adjust for asymmetricity of beam symbol
-       - added TEST beam quantisation; see input/test/beam-pos.ly
-       - removed some empty .cc .hh
-       - Grandstaff -> Grand_staff (After [Gerou] and Harvard Dictionary of
-         Music)
-       - bf's: slur and tie post-processing
-       - cleaned-up bow: get encompass
-       - cleaned-up beam-yspan and beam-leftpos quantisation
-       - misc.cc: some funcs to get lower and upper bounds from array of values
-       - interval.*: Slice (Interval of int)
-       - added some doco to beam.cc
-       - removed some x,y by-ref passing in Lookup
-       - cleaned-up beam-yspan quantisation
-       - cleaned-up slur get encompass
-       - configure: --disable-optimise for compile without -O
-
-pl 59.jcn4
-       - bf: beam quantise
-       - bf: sticky plet bug
-       - bf: chords in beam
-       - bf: typo beamquantisaton
-       - bf: don't blow_fit infeasible bows (x_i < x_0 || x_i > x_n)
-       - bf's: beam/stemlengths, beam-bug [c8 c16 c16]
-       - bf: placement broken tie
-       - yet another try to raise bar-number
-       - bf's: bow tangent clipping, allow higher bows
-
-************
-pl 60
-       - mats patches: use Latex font stuff.
-       - fixes to the .59 patch release (jcn)
-       - make website|examples target
-       
-pl 59.jcn3
-       - bf: preludes-5
-       - no inline compiler warnings by default
-       - bf: gcc 2.8 compile bow.cc
-       - moved functions with loops from varray.hh to varray.cc
-       - bf: minimum length for tie
-       - slur clipping standard
-       - bf: second broken slur minimum length
-
-pl 59.jcn2
-       - added some to .dstream
-       - bf: second part of broken slur
-       - slur encompassing noteheads adjust
-       - bwv'd preludes
-       - bf: make-patch -d
-       - doc'd rerunning of autoconf
-       - rest of real standje (rename and move simplified standchen to 
-         input/test?)
-       - bf: clipping
-       - bit better bar number placement
-
-pl 59.jcn1
-       - more INLINE
-       - bf: multi-measure rest
-
-pl 58.jcn7
-       - los-toros: do multi-bar rest
-
-
-
-***************
-pl 59
-       - ly2dvi 0.9.hwn1, -K switch, 
-       - doc: moved manpages in separate directory.
-       - do WWW stuff via make
-       - mutopia-index.py
-       - ly2dvi 0.9 (JAF)
-       - multi platform build fixes
-       - junked embedded switches, embedded MF, obsolete TeX stuff
-       - junked virtual matrix storage: inlined most matrix computation,
-       speed increase of 30%
-       - junked taupindefs,  eglerdefs
-       - rm'd taupin/egler from INSTALL
-       - doc: engraving.bib, colorado.bib
-       - input hierarchy.
-
-pl 58.jcn6
-       - multi-measure rests: moved acknowledge from timing-translator
-       to -grav
-       - slur clipping experimental...
-       - bo to b
-       - always announce multi-measure
-
-pl 58.jcn5
-       - bf: reset plet after reading mmrest
-       - try at not generating moments...
-       - Multi_measure_rest 'symbol'
-
-pl 58.jcn4
-       - try at multi-measure rests: part.ly
-       - bf's: slur get_encompass
-       - bf: slur clipping
-
-pl 58.jcn3
-       - experimental (--test) clipping of too high or tilted slurs
-       - nicer slur control output and ps code
-       - bit thicker and round-capped tuplet bracket
-       - bf: slur.cc: RESIZE_ICE
-
-pl 58.jcn1
-       - varray.hh bezier.cc, slur.cc patches to avoid gcc 2.8.1 ice
-       - some inlining fixes
-       - configure: use -O to enable inlining
-       - included and fixed new make-patch.py
-       - bf: Mutopia.make
-       - bf: offset: operator - ()
-       - ugly hack bezier: do blow_fit twice
-       - bf's: bezier: rotate,translate
-
-***************
-pl 58
-       - more *.make hacking
-       - bracket fix (AG)
-       - clef fix (PC)
-
-pl 57.jcn1
-       - reincluded test/bow.cc
-       - promoted Bezier bows to standard
-         * bf's: broken slurs
-         * some bf's: verneukeratificering van JCN code
-         * some bezier slur doco
-         * calculate Ties with Bezier bow
-         * junked tex-slur.cc
-         * junked ps-slur code
-         * junked height-only slur-correction
-         * lots of bezier/slur fixes
-         * bezier:blow_fit
-
-**************
-pl 57
-       - verneukeratificering van JCN code.
-       - lots of updates on our own makefile system.
-       - junked automake & documented it
-       - put rods into Spring_spacer too. Much cleaner
-       - bf: weird spacings (enge floats)
-       - bf: too many constraints added.
-       - smarter constraint check
-       - bf: table16 fontsize.
-
-       - 56.jcn1's empiric computer science.
-       - debian patches (AF)
-       - solaris/irix patches (AO)
-
-
- pl 56.jcn5
-       - bezier and slur: cleaning and fixes
-       - bf: removed silly experimental beam feature
-
-pl 56.jcn4
-       - reintruduced slope in bug [c8 c16 c16] in favour of stemlen bug...
-       - staff-side: accent half line higher
-       - reincluded silly los-toros latex file
-       - bf's: bezier.cc,bow.cc, mat.hh: rotate
-       - bf: bezier slur: handle broken slurs
-       - bf: beam
-       - dehairifications of bezier.cc
-
-pl 56.jcn3
-       - bf's: offset multiply, matrix rotate
-       - dropped los-toros latex file
-
-pl 56.jcn2
-       - even nicer excentric slurs; 
-       - input/slur-bug.ly
-       - los-toros with barnumbers ;-)
-       - nice version of height-ajust bezier slurs (see sleur.ly --test)
-       - bf's beam: 
-         * slope in[c8 c16 c16]; 
-         * allow no INTER position for normal quantising
-
-pl 56.jcn1
-       - bezier curves with raaklijnen
-
-pl 56.ag1
-        - `Makefile.am.wild's now should work correctly with VPATH (AG)
-
-************
-
-pl 56
-       - more dutch vocabulary
-       - Barnumber FAQ added
-       - bf: abbrev over whole note.
-       - feta: reverse turn.
-       - bf: rod distance
-       - bf: local key clashing
-
-***********
-pl 55
-       - bezier check and ajust for slur height
-       - better slur height ajust
-       - DO chmod 755 *test/*sh
-       - bf: discretionary of ||
-       - bf: scripts within staff
-       - NOT Grandstaff -> Grand_staff (yet?)
-       - bf: cresc. decresc. height lookup.cc,init/table*
-       - bf: staff-symbol (script placements)
-       - staff-group-bracket
-       - bf's preludes, los-toros
-       - nicer trills
-       - adjustment slur extend
-
-**********
-pl 54
-       - bf dynamic_grav
-       - bf accidentals with key change
-       - bfs with command-items in non-breakable columns.
-       - typos (thanks LM)
-
-pl 53.jcn1
-       - two new BUGs
-       - preludes-* with trills
-       - nicer trills
-       - fixed ugly slur extend bug
-       - first try at symphonic work: (start of) Coriolan
-       - fixes: los-toros
-       - test/ with some stupid tests
-       - bf, again midi-output
-       - --no-timestamps options for lily/mi2mu (to enable make check targets)
-       - removed doubles in lilypython
-       - smarter prev_version for make-patch
-
-***********
-
-pl 53
-       - bf: c4 \< c4 \< 
-       - bfs of spacing stuff
-
-
-pl 52.jcn6
-       - make check target
-       - moved flower/test to flowertest
-       - dist fixes
-       - flower no longer independent package
-       - bf: GNUmakefile
-       - bf's: configure: debugging (default) /profiling
-       - bf: Rational iface (fixes MIDI output)
-       - bf: non --srcdir configure + build with GNU make (ugh)
-       - ugh: autowildflower
-       - bf's: invoking wild-perl
-       - bf: ugh: staff-side.cc: placement height
-       - bf's: gnu 2.7.2 link (huh?, everyone using 2.8?)
-       - make-patch: default diff against (copy of) srcdir
-       - bin/conflily configures in ../build
-       - GNUmakefiles that do:
-         * auto-update of Makefile.am.wild
-         * auto-switch to builddir
-       - bf's: configure --srcdir
-       - fixes for los-toros/twinkle/test-lyrics
-       - latex file for los-toros (ugh)
-       - staff-side: symbols closer...
-       - half fix of midi output? duh.
-       - oboe1 los-toros
-
-************
-pl 52
-       - split up elem-group stuff.
-       - per line widths
-       - miscellaneous fixes by WL.
-
-
-pl 51.jcn1
-       - bf's: dutch->nederlands
-       - Cygnus b19 compile/link fixes
-
-************
-march 27
-pl 51
-       - changed dutch -> nederlands, german -> deutsch etc.
-       - norwegian (AG)
-
-pl 50.jcn4
-       - fixes for cygnus' gnu-windows32  beta19
-         be sure to compile with -fno-rtti
-       - proof of concept for automated updating of Makefile.am
-         see mi2mu/GNUmakefile (still somewhat clumsy)
-       - mv'd both config.hh.in to acconfig.h
-       - copied printing/debugging/optimising options to flower conf
-       - (some modified) fixes from AO
-       - beginnetje los-toros-oboe
-       - bf: DIR_DATADIR
-       - bf: trills
-
-************
-pl 50
-       - deprecate autowild
-       - --srcdir fixes
-       - ly2dvi 0.8
-
-pl 49.jcn2
-       - static (default) and/or shared libs flower and lily
-       - patch from AO 'libtool 1.1.1'
-       - mf: trill-symbols: feta-slag.mf
-       - shared libs (ugh: hardcoded switch in configure set to static)
-       - some fixes: denneboom.ly, standje.ly/standchen.ly
-       
-********
-march 19
-
-pl 49
-       - parser assert changed to warning
-       - fix stdin reading
-       - small jcn fix
-       - changed unbound Spanner from assert to warning
-       - forced breakpoints
-       - add a nowildcard: stmt to wild-perl
-
-pl 48.jcn5
-       - ugh: double parser/lexer: 
-         be sure to rm lily/parser.cc lily/lexer.cc or bin/clien 
-         before re-running autowild!
-       - V.RSION 
-       - bin/clien bin/meek
-       - bf's: flower/VERSION, flower/config.hh, lily/lexer/VURSION
-         lib/config.hh bin/convent-mudela
-       - lost of automake fixes
-       - automake
-
-******
-march 12
-pl 48
-       - Pitch_squash_engraver makes Rhythmic_staff possible.
-       - some fixes to buildscripts for sgi irix
-       - misc. patches (WL)
-       - move away from libg++: rolled own Rational class..
-       - don't make gif files Documentation/ by default 
-       - ly2dvi manpage (JAF)
-       - ly2dvi 0.7 (JAF)
-       - more clefs. (MB)
-
-pl 47.jcn2
-       - bf: interbeams and beam-stemlengths for size != 16
-       - bf's: preludes
-       - more introduction
-
-pl 47.jcn1
-       - voice{one,two,three} defines
-       - preludes-*: fixes, junked multi, broke-down score-block
-       - mudela-book: added center option
-
-******
-march 6
-pl 47
-       - Abbreviation now a separate item.
-       - bf'd some gcc 2.8 warnings.
-       - bf'd spurious space in autodep.
-       - more clefs (MB)
-
-pl 46.jcn1
-       - start mudela introduction
-
-
-pl 46.jcn2
-       - bf's: preludes-*
-
-*******
-feb 27
-
-pl 46
-       - span-bar at upstep.
-       - bf: \score { \score_identifier }
-       - tenor clef (MB)
-
-pl 45.jcn2
-       - preludes-4,5,6
-       - bf's denneboom (oeps, see loop)
-
-pl 44.jcn7
-       - text-item.cc: try to get fingers just above note...
-       - set minimum space between columns
-       - bff: mf/Makefile out/*log required: new .ly .tex's with make-dist :-(
-       - bf's midi ascii-debug output
-       - bf: property instrument 
-
-*******
-feb 12
-pl 45
-       - bf: translator switching 
-       - SunOS and IRIX patches (AO)
-       - preludes bugfixes; preludes.tex ugh (JCN)
-       - shared lib numbering (AF)
-       - various fixes for debian (AF)
-       - ly2dvi .6.jaf (JAF)
-pl 44.jcn6
-       - bf: crescendo.cc: bigger and use bar_size
-       - slur: guess extra height for height limit for extending notes/stems
-       - ps: adjustable slur height limit, bf crescendo
-
-
-******
-feb 6
-pl 44
-       - ly2dvi 0.6.hwn1 
-       - ly2dvi 0.6 (JAF)
-       - use ly2dvi for website
-
-pl 44.jcn2
-       - fingers default to above note
-       - preludes-2.ly
-       - parser: fingerings
-       - preludes-1.ly
-       - bf: denneboom.ly
-       - preludes-3.ly.m4, standje.ly, preludes-4.ly
-       - make rule for macro ly-files
-       - pletvisibility (init/property.ly): 
-         * default no bracket with beams
-         * invisible plet bracket feature
-       - finger dir in text-def
-
-*******
-feb 2
-
-pl 43
-       - bf: broken Plet_spanners
-       - more GNITting
-       - avoid some more global ctors, for NeXTstep
-       - some NeXTStep patches from tiggr
-       - don't do overstrike/bold chars in textfiles
-
-
-pl 42.jcn2
-       - bit hesitating start of mutopia
-       - bf: don't try to typeset unterminated plet
-       - separately sticky plet durations: "c4 c4*2/3 c8 c4*1/1", ok Mats?
-       - denneboom.ly (half-baked version)
-       - indent and shape, see ^ 
-
-pl 42.jcn1
-       - bf: memmem revisited
-       - bf: ps: draw_plet vertical endings
-       - renamed stem_start to stem_begin
-       - bf: plet bracket placing on differently orientated stems
-       - more standje.ly and fixes
-******
-jan 28
-
-pl 42
-       - ly2dvi 0.5 (JAF)
-       - italian.ly (thanks, Paolo)
-       - bf: first \mudelapaper output (BS)
-       - bf: cathedral + bazaar URL (thanks, Barrie)
-       - bf: libc-extension.hh (AO)
-
-pl 41.jcn4
-       - plet brackets (always) in ps (only)
-       - Plet_spanner derives from bow
-       - bf: mf/Makefile: let %.tex %.ly depend on %.mf,
-         iso non-distributed %.log
-       - mi2mu mudela 0.1.8
-       - bit better plet number placement
-       - handier plet syntax: [2/3 c8 c c ]1/1 and \[2/3 c2 c c \]
-       - Plet_swallow_engraver for lyrics
-       - bit better plet number placement (NOT)
-       - new plet syntax: combined beam and plet open
-       - more standje.ly 
-       - new plet syntax: start: \plet2/3 stop: \telp1/1
-       - Plet_req, Plet_engraver; removed plet stuff from beam
-
-******
-jan 20
-pl 41
-       - warn for score with multiple Music blocks
-       - bf: \plet (MB)
-       - \textsharp in 16pt
-       - malloc frobnifying
-       - more fontsizes: 26pt, 11pt, 13pt
-       - \textstyle "bold"
-       - .rpm: remove old fonts
-
-pl 40.jcn2
-       - bf: typo scores.cc
-       - bfs: non-default base constructor calls
-       - bfs: virtual destructors
-       - standje.ly: the real standchen (first bit)
-       - gcc 2.8 compile
-       - nicer scsii-menuetto
-
-pl 40.jcn1
-       - bf: breaking of :| bar
-       - bf: lyric substitution of _ -> ' ' flower/libc-ext:memmem
-       - no slope=0 beams between stafflines
-       - bf: tex without lily-ps-defs
-       - bf: embedded mf shift: added '%' to \embeddedps
-       - doos compile
-
-******
-jan 12
-pl 40
-       - some doco fixes
-       - debian diffs (AF)
-
-pl 39.jcn2
-       - bf: bit smarter atan() for feta-sleur (thanks wendy)
-       - bf: y quantise of multiple down beams (typo)
-       - minor doc fixes
-       - bf: distribute mfdeps and moved from mf/out/mfdeps to mf/mf.dep
-       - some changes to ANNOUNCE
-       - fixes for simple slur/tie placement
-       - embedded MF fonts identified by parameters -> reusable runtime fonts
-       - clean-embeds.sh
-       - runtime MF beams: feta-beum.mf
-       - bf: enable switching PS off
-       - updated runtime MF feta-sleur.mf with new PS slur algorithm
-
-******
-jan 5 1998
-pl 39
-       - 0.2 ANNOUNCE sketch
-       - unix style paths for LILYINCLUDE env
-       - show all output pages on website
-       - ps-to-gifs.sh
-       - bf: wtk1-fugue2
-       - python make-website
-       - higher brace resolution 
-       - phased out musixtex stuff
-       - bf: rhythm.ly
-       - PS slurs
-       - PS beams
-       - Bow units
-       - turn on PS by default
-       - turn off barnumbers by default.
-       - bf: halfbeam size.
-       - bf: -M bug
-       - stafflinethick in PS (crescendi)
-       - continued (de)crescendi (in PS)
-       - bf: spurious beam reqs
-       - handle unfeasible spacing cleanly. 
-       - ML-address change
-       - output naming: default to basename[-serialnumber].{midi,tex}
-       - bf: clef width
-
-pl 39.jcn2
-       - make-examples.sh
-       - leftright repeat sign + repeatbar dims
-       - smaller minimum sized rod at end of bar
-       - bf: spacing.ly 
-       - less space at begin of bar
-       - experimental whitespace fixes at begin and end of bar
-       - added to beams.ly
-       - open-up beam spacing for mult > 3
-       - fixed hang/sit to overlap iso aligne with staffline
-       - fixed inter beam spacing, paper*.ly
-       - scsii-menuetto.ly fixes
-       - init/property.ly
-       - property settings for beam quantiseing and damping
-       - provisionary multiple-beam fix
-
-******
-pl 38
-       - bf: \> \! \ff (crescendo overlap)
-       - misc feta-fixes, flageolet sign.
-       - midi tempo fixes.
-pl 37.jcn3
-       - max beam slope "compile time parameterised" and set to 0.6
-         (oh, how we need runtime generated beams!)
-       - beam's left y-pos quantisation
-       - beam slopes' y-span quantisation
-       - stem.ly
-
-pl 37.jcn2
-       - feta: fixed sizes small numerals + flageolet
-
-
-*******
-dec 12
-pl 37
-       - --postscript
-       - don't crash non-fitting grouping (thx, John)
-       - attach unended spanners to a column (thanks John)
-       - bf: unended tie
-       - bf: tie direction
-       - bf: unended slur
-
-pl 36.jcn2
-       - feta: small numerals
-       
-********
-dec 9
-
-pl 36
-       - bf: notehead collisions
-       - bf: dot y-position
-       - use Item::break_priority_i_ for horizontal alignment of breakables.
-       (it still sucks)
-       - junk some derivation checks, junk Normal_*_bar
-       - FlowerLib fixes.
-       - twinkle fixes.
-       - feta: flag/clefspacing
-
-
-*******
-dec 5
-pl 35
-       - naming: lily-init iso symbol.ly
-       - mf braces
-       - center textscripts.
-
-pl 34.jcn1
-       - mf: nicening of dyn, klef, rest
-       - fingerfont
-       - bf: 12/8
-       
-
-********
-dec 2
-pl 34
-       - bf: mf: numbers and alto clef
-       - bf: scsi-menuet
-       - PS crescendos
-       - ly2dvi diffs (JAF)
-       - debian diffs (AF)
-       - w32 doco fix (JCN)
-
-
-********
-nov 24
-
-pl 33
-       - added abbrev.ly to font.ly; rm'd abbrev.ly
-       - don't process scores on parse errors.
-       - bf: kortjakje.ly
-       - bf: invisible stems in beams (abbrev.ly)
-       - lytodvi script (JAF)
-       - output Paper_def settings to TeX file. (eg: linewidth)
-
-********
-nov 19
-pl 32
-       - change type checks (ughugh) to derivation checks (ugh)
-       - this fixes clef bug.
-       - bf: order of breakables: meter comes after bar.
-       - bf: do error iso coredump on unknown symbol-table
-       - bf: release.py, copy patch too. 
-       - bf: add makefile dep for disting MF logs.
-       - bf: don't read font-en-tja*.ly, but feta*.ly
-
-pl 31.jcn2
-       - first version of (non-ugh) c-klef
-       - bf: mi2mu: notes of zero duration as comments
-       - feta: ugh c clef
-
-
-********
-nov 17
-
-pl 31
-       - bf: replaced Score_column assert by a warning (thanks Scott)
-       - bf: mi2mu version output (thanks Scott)
-       - faq updates
-       - always output lily header with  Lily version
-       - bar mucking: make scorebars/braces different from repeat bars.
-       - feta: repeatcolon, clef bf's
-       - debian/ updates. (AF)
-       - moved debian stuff into toplevel dir
-
-********
-nov 11
-
-pl 30
-       - feta: G clef. 
-       - scripts now do relative coords (fixes lyrics + barnumber bug)
-       - bf: Lyrics lexer mode
-       - bf: bass clef
-
-********
-nov 6
-pl 29
-       - feta: bass clef, bf: dynamics, bf: 64th flag
-       
-
-********
-oct 30
-pl 28
-       - revised Staff_symbol::brew_molecule_p ()
-       - naming: \makelilytitle
-       - fixes for TeX titledefs (JAF)
-       - junked some obsolete pedal stuff.
-
-pl 27.om-je-te-helpen-met-je-ps-spul.jcn1
-       - embedded slurs:
-         * bf: placements
-         * added \embeddedtex
-         * postscript is default
-         * fixed \embeddedps
-         * fixed mf: draw_slur
-         * postscript macro: draw_slur
-
-********
-oct 29
-pl 27
-       - -t/--test switch for experimental stuff.
-       - bf: debian optimize is not with 'z'
-       - mf: naming feta fonts are now called feta16, feta-beams16, etc.
-       - feta: ledgerline
-       - lily adjustments for new and elegant ledger line
-       - bf: mf-source path.
-
-pl 26.jcn1
-       - bf: numerals
-       - sleur.ly
-       - embedded slur testing 
-       - bf + patch: make-patch release.py / VERSION
-
-
-********
-oct 26
-pl 26
-       - bf: \transpose
-       - feta: numerals 0 - 9, rewrote flags.
-
-       
-
-********
-oct 22
-
-pl 25  
-       - variable stemlength
-       - feta: 32nd, 64th flags
-       - font.ly
-       - dist & tarball made in out/
-       - rewrote release.sh in python
-       - notehead/stem attachment better.
-       - more Stem cleanage
-       - related Beam cleanage
-       - started numeral font (JCN)
-       - bf: whole rest outside staff.
-
-*********
-oct 20
-pl 24
-       - internationalization preps (FP)
-       - rewrote make-patch in python
-       - BUGS: added another flex/libio crash explanation
-       - feta: flags
-
-
-********
-pl 23
-       - feta changes: 1/4 rest, flat, bf 8-128 rest
-       - bf: cadenza
-       - bf: scripts
-       - bf: rest-collision
-       - bf: meter placement
-       - junked cpgento.sh
-
-*********
-
-pl 22
-       - bf: lyric 's- Zondags
-       - bf: colliding accidentals: renamed translate(Real,Axis) to translate_axis()
-       - renaming of scripts
-       - strings with escaped characters.
-       - bf "string_with_\"_embedded"
-       - bf: mf/Makefile
-       - feta changes (trill, organ pedals)
-       - updated mf-to-table for new feta conventions
-       - changed header format to something sensible.
-       - moved staff to centerline == 0;
-
-********
-
-pl 21
-       - shrinking uses more energy  than stretching
-       - check IO error on writing (disk full?)
-
-
-*********
-
-oct 8
-pl 20
-       - don't swallow non lyric-stuff in lyrics
-       - x-position of Stem
-       - more feta changes
-       - move scripts to right
-       - genheader.py replaces genheader.perl
-
-pl 19.jcn2
-       - bf's mi2mu:
-         * Midi_track_parser::note_end_all
-         * staff output uses key, meter, tempo read
-         * command line read minor key
-         * minor key notenames
-
-pl 19.jcn1
-       - small changes to sharp, fermata
-       - small changes to lilypond.lsm+doc, lelievijver.lsm
-       - mi2mu updeet + bf
-
-pl 19
-       - bf: keyword.cc rm'd struct defs
-       - dots: support for feta dots.
-       - lots of font (feta) tjanges
-       - mf-to-table rewrite in python
-
-*********
-pl 18.jcn1
-       - check for python, mf-deps fix
-
-pl 18
-       - bf: Box[X_AXIS] = b
-       - bin/mf-deps.py script
-       - moved beams out of font-en-tja into vette-beams.  
-       - Made corresponding .cc changes.
-       
-
-jcn patches
-       - egcs compile (no link yet)
-       - nicer 4rest
-       - beam font (je kunt wel tegen een grapje, eva?)
-       - mf-to-table: 
-         * "breapth" (x-depth) feature
-         * handle generic stuff such as beams
-       - polished noteheads
-       - fixed 8-128 rests
-       - 4rest
-       - mf-to-table generates tex defs
-       - bf:mf-to-table and conflily outname check
-       - 8-128 rests
-
-******
-sep 24
-pl 17
-       - bf: ledgerline width
-       - bf: toccata-fuga-E
-       - took out some hardwiring of tex-beam
-       
-pl 16.jcn1
-       - mf-to-table.in: generate mozarella metric info tables
-       - autometric.mf: write metric info to mf logfile
-       - ital-r.mf, smaller ital-m.mf
-       - variable streepjes length (top/bottomlines); fixed (for 20pt?)
-       - streepjes twice as thick as staffrules
-       - even more pronounced bolletjes -- how 'bout this wendy?
-       - quarter and half note after drawings (a/b less distinct)
-
-*****
-sep 19
-pl 16
-       - revised mudela-man a bit
-       - ; optional after \musicidentifier
-       - bf: doco about {Mus*,Opus}TeX
-       - bf: configure: MFDIR
-       - bf: String::operator bool () removed
-       - bf: String::operator char const * () removed
-       - bf: Line_spacer::~Line_spacer () added: plugged memleak
-       - bf: Line_of_score::do_unlink () call Spanner::do_unlink
-       - bf: rests in beams
-       - bf: textnatural
-       - bf: 20 pt flags
-       - bf: longarest 
-       
-pl 15.jcn1
-       - bf: typos whole and half notehead
-       - de-uglyfied bolletjes.mf
-       - ascii output of font metrics in mf logfile
-
-******
-sep 17
-
-       
-pl 15
-       - put top of NEWS file in the webpage
-       - breadth first search for engravers.
-       - bf: coriolan-alto.ly
-       - Stem / Notehead width now properly calced
-       - Atom and Symbol merged
-
-pl 14.jcn1
-       - lily's own noteheads (balls/globes :)  (font-en-tja*.mf)
-       - {table,paper}* and taupindefs adaptations (when are we moving?)
-       - fp, sf, sfz dynamics
-       - font.ly
-       - bf: dist mudela-mode
-
-*******
-sep 15
-
-pl 14
-       - Simple but nifty mudela-mode.el for Emacs
-       - slightly better syntax for single-note-repeat, now default kept in
-Stem_engraver
-       - bf: Abbrev_beams are not the only beams (see: jcn4, stem-info, thanks, Jan)
-       - a CPU timer for Interpreting and Breaking
-       - Separate Score_elem:
-         * invoke-once stuff in Super_elem (using function pointers; much cleaner now)
-         * geometrical stuff into Graphical_element
-         * Axis_group_* accept Graphical_elements iso. Score_elems
-         * A dimension cache, hopefully this makes lily a bit faster
-         * TeX output moved out of Score_elem, separate interface Outputter
-       
-       - < \multi 2; bla >  -> \multi 2 < bla > (mudela 0.1.6)
-       - bf: don't do \multi if \type specified
-       - Translator switching: Change_translator, Change_iterator
-       
-
-pl 12.jcn4
-       - fixed dynamic f, magstep bug
-       - gaps on abbrev-beams 
-       - bf: stem-info
-       - bf: last abbrev
-       - bf: stem: do_width
-       - bf: removed rest-column.hh
-
-*******
-sep 11
-
-pl 13
-       - big Rest/notehead rewrite:
-         * separated Rest, Note_head and Dots
-         * Dot_column: dots are now chord-wise aligned 
-         * Rhythmic_head is base for Rest, Note_head
-         * Merged Note_column and Rest_column
-         * Rest_engraver
-       - grand Engraver/Translator/Performer rewrite.
-         * properties:  \property voice.dir = -1 (mudela 0.1.3)
-         * Input_translator junked, now Translators are generated
-by the parser (mudela 0.1.4)
-         * Translator changing: \translator Staff=oboesolo
-         * Translator preselect: \type Staff=bla < c4 >. (mudela 0.1.5)
-         * Engraver/Performer now derived of Translator.
-         * Engraver_group_engraver/ Performer_group_performer derived of
-       Translator_group
-         * renamed: Voice -> Thread, Voice_group -> Voice
-       - renamed Audio_score to Performance
-       - junked mididef statics
-       - Audio debug output
-       - bf: excess [] in scsi
-       - bf: swallow \skips
-       - bf: don't crash on infinite dims
-       - renamed wohltemperirt to wtk1-fugue2
-       - bf: address in GPL
-       - bf: errors in stdin
-       - bf: stop if errors in init files
-       - bf: move stem too when doing collisions
-       - Molecule::add_XXXX -> Molecule::add_at_edge ()
-       - doco updeet: why no midi FAQ, index, CodingStyle hungarian
-
-
-pl 12.jcn3
-       - try at better dynamic font, copied from cmbxti10: mf/*
-       - typesetting abbreviation beams; abbreviation-*
-       - some simple abbrev fixes + code cleanup (dank je, lieverd)
-       - typesetting simple abbreviations: c4:16 === [c16 c c c]
-
-pl 11mb
-       - Support also for \longa in duration-convert.cc, init/ and tex/
-         files. (MB)
-
-********
-sep 3
-
-
-pl 12
-       - bf: don't redefine tex primitives like \textfont and  \mathfont
-       - nicer broken slurs (?)
-       - bf: error status upon parse error
-       - robustness in Lookup::*slur
-       - bf: mi2mu: warn if 0-length string in midi-file
-       - output id-footer
-
-********
-sep 1
-
-pl 11
-       - forms for Musical vocabulary 
-       - ignore \r for windows
-       - Now paper{score,def} & midi{def,score} derived of class
-Music_output[_def]. Score is almost empty.
-       - Engraver hacking:
-         * junk Text_engraver
-         * Timing_engraver
-         * barnumber now really counts the number of bars
-         * Separated Stem_engraver and Beam_engraver
-         * junk Stem_beam_engraver
-         * no need for Stem_reqs
-       - use Direction = {LEFT, RIGHT, UP, DOWN} iso. -1, 1 throughout source
-       - ties and slurs with Drul_array
-       - junked Spanner_elem_group
-       - bf: w32 fixes
-       - Spanner now spans items.
-       - more GNITting ( bla ) -> (bla), indentation
-       - Drul_array
-       - Paper_column now is derived of Horizontal_group_item. Items
-are no longer hardwired into a Paper_column
-       - bf: stdin input
-       - PCol -> Paper_column
-       - Wtk-i, fugue1, prelude1 (SR)
-
-*******
-aug 21
-pl 10
-       - bf: init pending_indent_i_
-       - output header to TeX file. Who wants to write TeX to make it work?
-
-       - mi2mu: bf's, --key option
-       - removed Duration(int,int)
-       - bf: Duration_convert::dur2_str
-
-pl 9.jcn2
-       - redo of mi2mu frontend (midi-parser)
-       - bf: String_convert::bin2_i; added bin2_u
-       - bf's: Binary_source_file
-       - bf: constr. Tempo/Timing_req
-pl 0.1.8.jcn3
-       - table20, standchen-{16,20}*
-*******
-aug 18
-
-pl 9   
-       - declare rhythic_request
-       - preliminary support for real \mudelaheaders
-       - context-sensitive arithmetic spacing. Looks alot better
-       - silly GNU braces.
-       - JCN fixes for pl 8
-       - bf: midi instrument
-       - Vocabs from GMP-I
-
-pl 8.mb:
-       - use log of duration-name
-
-*******
-aug 15
-pl 8
-
-       - gif -> xpm
-       - bf: Whoops! Open eyes now, when finding shortest note in
-spring-spacer. Fixes spacing problems.
-       - GNU coding: parentheses (here you are, Franc,ois :-)
-       - all macros now UPPERCASE
-       - Identifier blondification: don't use void*
-       - Identifier doesn't store its name. Much cleaner now.  
-       - bf: Rest_collision_engraver now always announces
-       - bf: announce Staff_sym only once
-pl 0.1.7.jcn1
-       - complete redo mid/back-end of mi2mu
-       - bf: do not create/play empty Audio-{text,instrument} events
-
-
-********
-aug 14
-
-pl 7
-       - Audio_element as base for Audio_item and Audio_staff. fixes
-midi-lyric segfault
-       - added "Gallina a due violini" (MB)
-       - make MIDI files on website.
-       - Collision now also is an Element_group.
-       - bf: announce Collision when created
-
-********
-aug 13
-pl 6
-       - bf: 13 shift/reduce in parser fixed
-       - bf: plets in parser
-       - bf: main.o (again)
-       - german notenames (RM)
-       - Score_elem::offset_ now relative to its X/Y groups. Slight
-speed increase? 
-
-********
-aug 12
-pl 5
-
-       - Wordwrap revert
-       - added LilyPond in WWW titles
-       - oops. A quaver is a 8th note, not a 4th
-       - bf: main.o remaking in lily/Makefile 
-       - unhair Voice_iterator 
-       - bf: error if no music in score
-       - bf: don't create translators if Chord element is empty
-       - bf: ctor of Tempo_req
-       - use virtual do_equal_b() for request comparison
-       - bf: turned off default plets: c4*2/3 c4*2/3 -> c4*2/3 c4*4/9
-       - bf: time_int() of an empty chord/voice
-       - more corrections to GMP Manifesto
-       - debian updates (AF)
-       - bf: g++ ICE in Performer_group_performer
-       - use fread() for reading in Simple_file_storage
-
-pl 0.1.3.jcn1
-       - mi2mu: simplification +bf lily_stream: indentation and wordwrap
-       - mi2mu: bf: blunt: non-alpha(num) chars from identifiers
-
-*********
-aug 11
-
-pl 4
-       - correction of GNU Music Manifesto
-       - moved lowlevel stuff of Source_file to Mapped_file_storage. 
-Interface via File_storage. (Now using Simple_file_storage)
-       - bf: c4-"A"-"B"
-       - bf: exit status
-       - declarable keys
-       - Engraver_group_engraver::find_simple_engraver()
-       - bf: lily/Makefile
-       - bf: Midi_note_event ctor 
-       - bf: tempo request
-       - popular twinkle twinkle (JV)
-       - mudela: parse tempo requests, \midi{ \tempo 4= 60;}
-
-******
-aug 8
-pl 3
-       - don't crash if no Clef_engraver.
-       - PScore -> Paper_score
-       - bf: Score_elem::extent() init of interval
-       - bfs: {Horizontal,Vertical}_group related
-       - bf: don't change original Item while doing making 
-       multiple copies
-       - bf: configure DATADIR
-       - bf: type of spanbar.
-
-pl 0.1.2.jcn1
-       - minor doco fixes
-       - revived Midi_walker
-       - moved midi out of performer-* to audio-*
-       - Audio_staff
-       - removed all <ugh> members from performers
-
-*******
-aug 7
-pl 2
-       - junked Line_of_staff
-       - bf: --output
-       - bf: . in lexer
-       - bf: mi2mu version number.
-       - bf: in mudela-book
-       - bf: don't forget to make mi2mu
-       - Bar_number_grav: measure numbers (experimental)
-       - Bar_column_engraver, Bar_column: scripts on bars
-       - rewrite of {Horizontal,Vertical}_group. Yes, again. 
-Now neatly integrated into class hierarchy
-       - Axis, Axis_group
-       - Debian rules (AF)
-
-pl 0.1.1.jcn1
-       - Audio{column,score,item,...}, more generic audio
-       - bf: Makefiles
-       - bf: mi2mu mudela version
-*********
-aug 5
-
-pl 0.1.1
-       - {Horizontal, Vertical}_group.  A score_element may be in at most one.
-       - This means Horizontal_group_item and Vertical_group_spanner need special support.
-       - This also means a big speed increase
-       - configure cleanup
-       - bf: Choleski solve.
-       - doc updates: lilygut, INSTALL
-
-pl 0.1.1.hwn
-       - recode of Break/Colhpos interfaces
-       - Gourlay_breaking: dynamic-programming optimal solution for 
-       casting off. Word_wrap is still optional
-       - some printing short cuts if no -d specced.
-       - band_matrices for column calcs
-       - more Diagonal_storage fixes
-       - retake: INFTY fixes ( now infinity_mom, infinity_f )
-
-pl 78.jcn3
-       - configure: ln and zip 
-       - target doosdist -> lilypond-x.x.x.exe.zip: + executables - sources
-
-
-
diff --git a/NEWS-1.0 b/NEWS-1.0
deleted file mode 100644 (file)
index 5cff9ea..0000000
--- a/NEWS-1.0
+++ /dev/null
@@ -1,515 +0,0 @@
-pl 17
-       - fixed RPM building.
-
-pl 16.hwn1
-       - ridiculous slur dims fixed.
-       - ly2dvi32.py -> ly2dvi.py, ly2dvi.sh -> ly2dvi-old
-       - use re iso. regex for python stuff.
-       - bf: mudela-book.py
-       - updated install directions.  Made lilypond-login for csh
-       - bf: installdirs of MF stuff
-       - Dictionary implementation using hash tables (LilyPond is 3% faster)
-       - Cache [non]group_l_arr () calls in translator-group.cc (LilyPond is 4% faster)
-
-pl 16.uu1
-       - debian URLs, make/stepmake.make  patch
-       - further debian fixes.
-       
-pl 14.tca1
-       - partitas
-       - prall{mordent,prall} patch.
-
-******
-pl 16
-       - read property ydirection and tieYDirection for tie direction.
-       - bf: slur over rest.
-       - bf: include path
-       - part of jcn2
-       - configure --enable-guile
-
-pl 15.jcn1
-       - autoconf on mf,mfont mp,mpost
-pl 15.am
-       - Lots of patches from *Adrian* *Mariano*!
-
-**********
-
-pl 15
-pl 14.hwn1
-       - \lyrics iso \lyric (mudela 1.0.7)
-       - cleaned up real_expression syntax.
-       - removed optional_semicolon nonterminal after toplevel assignment
-       - MInterval Music::time_int () -> Moment Music::duration ()
-       - junked Music_iterator::daddy_iter_l_
-       - junked Sequential_music::offset_mom_
-       - tempo compression:
-               * syntax: \times 2/3 Music
-               * Compressed_music, Compressed_music_iterator
-       - flower: init rational to 0
-       - flower: removed P?Cursor<>::P?Cursor (), using pointer iso ref now.
-       - don't install into TeX, but into ${datadir}/{mf,tex,ly} (todo: ps)
-
-
-*********
-pl 14
-
-pl 13.uu1
-       - syntax for \translator: (\name  "Name")
-       - bfs for footer
-       - bf: init/{book,center}-fragment.ly, YODL nofooter stuff. 
-       - bf: redeclaration
-       - bf: doc fixes
-       - bfs: egcs 1.1
-
-pl 13.mb1
-       - bf: Lookup::afm_find, the width was undefined for the feta fonts.
-       - bf: refman.yo
-
-pl 13.jcn5
-       - bf: init/paper* missing `;'
-       - lilyponddefs.ps fixes
-       - crude output name fix, see scores.cc
-
-pl 13.jcn4
-       - some ps output fixes
-       - lilyponddefs.ps: some sane implemenations
-       - removed (some) ghostscript internals
-
-pl 13.jcn3
-       - PostScript output version 0.0; do
-             export GS_LIB=$HOME/usr/src/lilypond/tex
-             export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
-             make -C mf pfa
-             lilypond -t example-1  # or try: lilypond -t twinkle :-)
-             gv lelie.ps
-       - ps:
-         * lots of output fixes, chars, strings
-         * tex/lilyponddefs.ps: added rather braindead defs
-
-pl 13.jcn2
-       - tex/lily-ps-defs.ps (./tex?)
-       - grand output rehack
-         * dropped {dimen,tex}.{cc,hh}
-         * {ps,tex} stuf to {Ps,Tex}_lookup
-         * init/table*.ly: added #parameters
-       - ps fonts:
-         * ps-to-pfa.py generates valid type-3 fonts
-         * do: make -C mf pfa
-         * set: GS_FONT=GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
-
-pl 13.jcn1
-       - crude postscript type 3 font: 
-          make sure to have mfplain.mem metapost precompiled macros
-          make -C mf ps
-          gv out/feta20.sp
-
-********
-
-pl 12.mb1
-       - bf: feta-timesig.mf Added horizontal space, minor corrections.
-       - Changed meaning of Staff.timeSignatureStyle:
-               C       Use C and stroked C for 4/4,2/2
-               old     Use old style mensuration marks
-               1       Use single number
-               Cn/m    Set symbol explicitly, n/m=2/2 or 4/4   
-               oldn/m  Set symbol explicitly, n/m=2/2,3/2,3/4,4/4,6/4 or 9/4.
-         All other time signatures are typeset with the default two-digit
-         layout.
-               
-
-pl 12.jcn2
-       - Lookup abstract base class
-       - Lookup/Symtable(s): separation of input/output
-
-pl 12.jcn1
-       - preparations for braindead PostScript output
-
-pl 12.hwn3
-       - praeludium-fuga-E to relative mode
-       - bf: mudela-mode.el
-       - bf: BIBINPUTS
-       - more dutch glossary + explanations
-       - table-to-html fixes
-pl 12.hwn2
-       - bf: mymycode in .yo
-       - VERSION to out/
-       - add VPATH to mutopia
-       - access_Identifier (bool): (non)copy arg now explicit.
-       - bf: lilypond-latex.tex
-  
-
-
-pl 12.hwn1
-       - \remove "Engraver_type";
-       - \output "bla" -> output = "bla" (mudela 0.1.6)
-       - \property defaultclef -> \property defaultClef
-       - naming of access_{Engraver,Performer,Translator_group} ()
-       - changed syntax for \translator in \paper{} (mudela 0.1.6)
-       - declared contexts:
-
-               StaffContext = \translator { .. }
-               \translator { \StaffContext }
-
-       - elt_b -> elem_b
-       - bf: add Separating_line_group_engraver to RhythmicStaff.
-
-
-pl 12.am1
-       - large doc patch, ChoireStaff -> ChoirStaff
-
-*******
-pl 12
-
-pl 11.uu2
-       - added Transposed_music for mixing transposition and relative 
-
-pl 11.jcn1
-       - bf: config.make striproff
-       - texinfo
-pl 11.mb2
-       - feta-timesig.mf: Added some flesh on C and C2,
-         added old-style mensuration marks.
-pl 11.mb1
-       - Added feta-timesig.mf, font for C and alla breve.
-
-
-pl 11.uu1
-       - new \property: meterSignatureStyle for C and C2 time sigs
-       - bf: BIBINPUTS
-       - stepmake 53
-       - bf: gif vs. png stuff
-
-*******
-pl 11
-
-pl 10.uu2
-       - plet-spanner fix. 
-       - large doc patch (thanks Adrian)
-
-pl 10.jbr1
-        - aclocal.m4, stepmake/aclocal.m4: Choose specific python
-        - stepmake/bin/release.py: Use the same python calling process
-        - make/lilypond-vars.make: PATH should not use PATHSEP.  It is fine 
-          to hard code it to `:' on both Windows NT and UNIX.
-        - stepmake/bin/package-zip32.sh: Perform configure with a specific
-          python, ie cygwin32 python on Windows NT
-
-pl 10.uu1
-       - junked \octave
-       - marginBreakPriority, direction==LEFT
-       - mf-to-table NT fix (JBR)
-       - createKeyOnClefChange property
-
-
-pl 10.jcn1
-       - mf-to-xpms for Harmonia
-  
-pl 9.jbr1
-        - scripts/convert-mudela.py: We must close infile and outfile before
-          a rename occurs.  NT Windows locks open files.
-          stepmake/bin/package-zip32.sh: renamed all python bins to:
-          <filename>.py in NT Windows distribution.
-
-
-*********
-pl 10
-
-pl 9.jcn1
-       - started gnuisation of website
-         * filetype and size
-         * 'no gifs due to patent problems'
-       - bumped stepmake version nr (again):
-         please update stepmake/VERSION after making changes to stepmake...
-  
-pl 9.hwn1
-       - do default midi,paper by toplevel \paper / \midi (mudela 1.0.4)
-       - bf: error if no Score context
-       - notename table now can be declared as well.
-       - junked \clear
-
-*********
-pl 9
-       
-pl 8.uu1
-       - junked \staff, \multi
-       - bf Music_list::Music_list (Music_list const&)
-       - AC_SUBST(PATHSEP,DIRSEP)
-       - generate Documentation/tex/out/*.bib (AM)
-       - a4 fixes (AM)
-       - bf: metafont-*.make
-       - parser.yy: intlist mods. (mudela 1.0.2)
-       - \melodic -> \notes (mudela 1.0.3)
-       - typo: calcalute_dependencies ()
-
-pl 8.jcn3
-       - gif -> png
-           * ps-to-pngs.sh
-           * stepmake
-           * website
-           * yodl-1.31.4 (to be released)
-       - target 'texinfo' -> 'info'
-
-pl 8.jcn2
-       - more doco in texinfo (with yodl pl3)
-       - bf's: package-diff
-
-pl 8.jcn1
-       - removed tutorial from texinfo, yodl2texinfo is still rather broken
-       - bf: setlocale NUMERIC to 'C'
-       - removed ugly space from print-dimen
-
-*******
-pl 8
-       - make website fixes.
-
-pl 7.jcn1
-       - minor stepmake/yodl fixes
-pl 7.uu1
-
-       - changed separator in vocabulary
-       - added barAlways and defaultBarType properties.
-
-pl 7.hwn1
-       - changed header format.  Use a + for concatenation.
-
-               \header { key = "concat" + "string" }
-       
-       (mudela 1.0.2)  
-       - allow computed properties in translator definition
-
-               GrandStaff = \translator {
-                       minVerticalAlign = 1.5\staffheight;
-                       ..
-               }
-
-       - Music inheritance. Datastructure and parser now follow this grammar
-
-               Music_list:
-                       | Music_list Music
-                       ;
-               Simultaneous_music: '<' Music_list '>'
-                       ;
-               Sequential_music: '{' Music_list '}'
-                       ;
-
-       - bf: Item::do_unlink () don't iterate on attached_span_l_arr_,
-because it is changed by Spanner::set_bounds () (thanks Thomas)
-       - bf: URL Documentation/index (thanks EP)
-       - bf: twinkle.ly (thanks EP)
-       - bf: mi2mu (thanks Murray)
-       - bf: mudela-book --dependencies
-       - split LaTeX and TeX stuff
-
-pl 7.tca1
-       - more Partita's 
-
-pl 7.jbr1
-        - aclocal.m4,make/lilypond-vars.make: added PATHSEP as AC_SUBST to  
-          help support Windows NT doco build.  
-          Documentation/ntweb/index.yo: minor spelling changes
-
-
-*************
-pl 7
-       - refman updates by Adriano Moriano.
-
-
-pl 6.jbr2
-        - scripts/ly2dvi32.py: Fixed bug with lily input including multiple
-          files.  Also, we now stream out lilypond log one line at a time
-          for better feedback.
-
-pl 6.jbr1
-        - scripts/ly2dvi32.py: Added some doco, add postscript option, set
-          MFINPUTS along with TEXINPUTS, modified initialization sequence. 
-          Made some Python style changes per Han-Wen suggestions.
-        - Documentation/man/ly2dvi32.yo: Added a manpage for ly2dvi32.
-        - stepmake/bin/package-zip32.sh: Added doco distribution.  Removed
-          the installation directory after zip operation.  
-        - Documentation/ntweb/index.yo: LILYPOND -> LILYPONDPREFIX and 
-          comments about MiKTeX-1.11.
-
-pl 6.tca1
-       - First movement of Partita II (BWV 826) in 
-         mutopia/J.S.Bach/Cembalo-Partitas. Lilypond output was so
-         beautiful that I'll have to write the rest of the partita.
-
-pl 6.uu2
-       - mudela-book.py --dependencies
-       - more doc fixes (AM)
-       - warn if declaring a keyword.
-       - \grouping 4 2*3; now accepted.
-       - patches to standchen.ly
-
-pl 6.uu1
-
-       - mudela-book handles \input now
-       - vocabulary fixes by Adrian Moriano
-
-********
-pl 6
-       - largish rehack:
-         * Super_element is now an `abstract' class,
-         * Paper_score directly contains one Line_of_score.  The
-       breaking/postprocessing/deletion is mixed with the output phase.
-         * Hopefully this will save memory for large scores. (benchmarks, anyone?)
-         * bf: Horizontal_vertical_group_item::do_unlink () should call
-
-       Axis_group_item::do_unlink ()
-
-       - changed LILYPOND to LILYPONDPREFIX
-       - added tfm and dvi target for mf/
-       - reincluded english.ly
-       - doc fixes (thanks, Adrian Moriano)
-       - doc fixes.
-       - mf: ex height added.
-
-pl 5.mb1
-      - Mudela 1.0.1: Changed \accidentals -> \keysignature
-      - Identifiers can be used in textual scripts:
-
-
-       tempoString="Allegro molto assai";
-
-               [...]
-
-       c^\tempoString 
-
-
-
-pl 5.jbr2
-        - aclocal.m4,config.h.in,flower/file-path.cc: Added PATHSEP and 
-          DIRSEP to configuration to support windows style path and pathlists.
-        - stepmake/bin/package-zip32.sh,stepmake/stepmake/package.make:
-          zip target now calls package-zip32.sh which creates winnt 
-          binary distribution zip file. xzip target continues to use 
-          package-zip.sh for Jan's cross-compiled version.
-        - lily/main.cc: Added a search for LILYPOND environment variable to
-          better facilitate binary distributions. 
-        - Documentation/README-W32.yo: Updated information on running lilypond
-          on winnt.
-          
-
-
-pl 5.jcn1
-       - (step)make fixes from yodl
-       - minor doco fixes
-       - bf: patch in website after 'make release'
-
-pl 5.jbr1
-       - Documentation/ntweb/Makefile: Used absolute url for LilyPond Homepage
-       - Documentation/ntweb/index.yo: Minor mods per Jan's suggestions
-
-
-
-
-*************
-pl 5
-
-pl 4.jcn1
-       - texinfo docs, lots of yodl TODO
-       - junked some makefiles
-       - ntweb: use BLURB
-       - bf: pletvisibility 
-       - adaptions for yodl-1.31.2's automatic texinfo conversion 
-       - reinclude of 1.jcn2:
-                 - renamed -alto -> viola
-                 - bf: avant-gardish six preludes
-                 - bf: ly2dvi warnings
-
-pl 4.jbr1
-       - stepmake/stepmake/install-outfiles.sub.make: fixed typo
-       - scripts/GNUmakefile: add ly2dvi32 to installation list and fixed
-         included executable-targets.make to facilate installation of scripts
-       - Documentation/ntweb: Fixes to nt web page and added topdoc like
-         automation.
-
-*********
-pl 4
-pl 3.mb2
-       - Changed text script alignment: center -> left
-       - TeX commands counts as one character when calculating
-         the length of a Text_def
-
-pl 3.jbr2
-         - Documentation/topdocs/index.yo: Added link to NT dist page
-         - Documentation/ntweb/: Added Makefile and index.yo to build the
-           NT dist page
-
-pl 3.hwn1
-       - stepmake hacking
-
-pl 3.uu1
-       - stepmake MAKEFILES -> STEPMAKE_TEMPLATES
-       - count \texcommands in tex string
-
-
-pl 3.jcn1
-       - bf: website: empty toplevel readme's
-       - bf: xs4all (again?)
-       - can't administer ftp site now: put patch into website
-
-
-pl 3.jbr1
-       - stepmake/stepmake/Executable_targets: UNIX cross-compile doesn't
-         work with $(DOTEXE) on source of install command.
-       - stepmake/Generic_targets: creating multiple dirs with mkdir 
-         requires -p option
-       - scripts/ly2dvi32.py: General and Winnt specific fixes
-
-
-*********
-pl 3
-
-pl 2.uu1
-        - solaris 2.6 compile/make website fixes.
-        - rm'd WWW.make
-        - stepmake .43
-        - pcnov095.win.tue.nl -> ftp.cs.uu.nl
-  
-pl 2.hwn1
-       - mi2mu naming of track output
-       - bf: do key restore sign only once
-       - ly2dvi32 preliminary version (JBR)
-       - bf index.html link
-       - bf mudela-book.py
-
-
-**********
-pl 2
-       - scalar compile stuff
-       - bf install directory
-       - YODL note
-       - GUI faq update
-       - bf ly2dvi
-       - stepmake split:  Po.make
-       - make check target
-       - dist AFMs and manpages
-       - split up mudela.yo in glossary.yo, tutorial.yo and refman.yo
-
-pl 1.jcn1
-       - www.digicash.com www.xs4all.nl
-       - fake msgfmt
-       - make uninstall fixes
-
-pl 1.jbr2 - aclocal.m4,stepmake/aclocal.m4,stepmake/stepmake/Variables.make:
-            Support install target for unix, unix cross compile, and 
-            Windows NT
-
-pl 1.jbr1 - stepmake/stepmake/Executable.make: DOTEXE was missplaced
-          - scripts/convert-mudela.py: program_id should write to stderr
-
-**************
-pl 1
-       - mi2mu fix: \key "D"
-       - \hoffset
-       - started new NEWS file 
-       - lots of stepmake hacking
-       - aclocal.m4 copied from stepmake
-       - ly2dvi 0.12
-       - build the doco from the source tree.
-       - include website in RPM
-
diff --git a/NEWS-1.1 b/NEWS-1.1
deleted file mode 100644 (file)
index b98baa1..0000000
--- a/NEWS-1.1
+++ /dev/null
@@ -1,2006 +0,0 @@
-1.2.0
-       - website fixes.
-       - initialize Script::dir_
-
-pl 69.jcn1
-       - doco typos 
-       - tex-rules typo
-       - added missing feta-braces*.mf
-pl 68.lu1
-       - texinfo fixes
-****************
-
-pl 68.jcn2,3
-
-pl 68.hwn1
-       - more tutorial stuff.
-       - note^\dynamic scriptdir.
-       - dynamics listen to verticalDirection as well.
-       - \property automaticMelismas -> \property automaticMelismata
-       - dynamic padding for crescendi.
-
-pl 68.jcn1
-       - small tutorial fixes
-
-*********
-
-pl 67.hwn1
-       - tutorial updates
-       - \property beamAuto -> noAutoBeaming
-
-pl 67.uu1
-       - abc2ly updates
-
-pl 67.jcn1
-       - bfs: refman/parser subtract
-       - chord::find_additions_and_subtractions: termination assurance
-       - bf: refman: chord-inversion examples
-
-
-********
-
-pl 66.hwn1
-       - bf: chord mode unsigned '-' -> unsigned CHORD_MINUS (1 SR conflict).
-       - refman reedit.
-       - dotdown only when verticalDirection is set.
-       - bfs: abc2ly convertor (more or less) successfully converts
-movement 2 of Beethoven 7.
-       - \repeat "semi" -> \repeat "volta"
-       - all spacing params into paper vars.
-       - spacing before grace notes.
-       - warn if font not found.
-       - staccato dot / tenuto centering
-       - spacing for clefs.
-       - bf: Stem_staff_side::do_substitute_element_pointer ();
-       - new screenshot
-
-********
-pl 65.hwn1
-       - refman updates
-       - added \simultaneous { } , \sequential { } syntax, for
-consistency.
-
-pl 65.jcn2
-       - bf: if tie then melisma
-
-pl 65.uu1
-       - bf: squashed 2 sr conflicts in parser.
-
-pl 64.jcn2
-       - stanchen almost without " " hacks
-       - if tie then melisma..?
-       - refman updates
-       - Abbreviation.beam -> Chord_tremolo
-       - bf: chord tremolo vs beam over rests
-       - bf: note width for noteless stem 
-
-
-
-********
-pl 64.jcn1
-       - resurrected abbreviation beam
-       - coriolan fixes
-
-pl 64.hwn1
-       - reference-manual updates.
-       - slurdash -> slurDash, keyoctaviation -> keyOctaviation
-
-pl 64.uu1
-       - \property forceHorizontalShift
-       - bf: denneboom.ly
-       - warn if translator switching  to self.
-       - warn if brace at end of lyric syllable.
-       - bf: Repeated_music::alternatives_length_mom ()
-       - \property automaticMelismas: if slur then melisma
-       - \property noVoltaBraces
-       - bf: star-spangled-banner
-
-pl 63.lu2
-       - very tight: hinterfleisch -> 0 : input/bugs/spacing-very-tight.ly
-       - bfs: neutral beam and tie directions (daar was ik al bang voor:-)
-       - bf: abe: may beam over skip, as long as note present too
-       - bf: scsii-prelude: added slurs using skips
-
-*********
-pl 63.uu1
-       - mutopia updates courtesy Peter Chubb
-       - Don't make Time_scaled_music for c4*2/3 entry, only do the
-time compression.  Should cure spurious Tuplet_brace/spanner warnings.
-
-pl 63.hwn1
-       - bf: Spacing for key/timesig at end of staff.
-       - negative font magnification
-       - slurs on grace notes.
-       - paper var stem_default_neutral_direction
-       - bf: dot-columns.
-       
-pl 63.jcn2
-       - bf: midi2ly/duration-iter/convert: handle durations >= 1
-       - set reasonable default for text/dynamic paddings
-
-pl 63.jcn1
-       - junked some of (my) old metapost stuff
-
-pl 63.lu1
-       - some faq entries
-       - chord input and proceccing fixes
-       - bf: nederlands.ly
-
-**********
-pl 62.jcn4
-       - fixes coriolan
-
-pl 62.hwn1
-       - ps-to-pfa.py: use std modules re, find 
-       - minor input fixes
-       - use mfplain.mp
-       - Metapost does unfill with setgray.  This confuses
-GS.  Do text substitution with eofill.
-
-pl 62.jcn3
-       - bfs: preludes
-       - found more wierd spacing
-
-pl 62.jcn2
-       - bf: don't start auto-beam on stem that contains only a rest
-       - bf: rm .ms yodl output
-       - bumped stepmake version
-pl 62.uu1
-       - don't space rhythmic requests coming from Lyrics. 
-
-pl 62.jcn1
-       - bf: auto-beamer: consider starting beam based on new rhythmic head
-       - bfs: preludes-4, cello-suites
-       - \addlyricsified standchen and twinkle (ugh: \repeat and \addlyrics)
-       - bf: interstaff slur slope damping
-       - bf: in-band signaling slur snap
-
-pl 61.jbr1
-        - Documentation/ntweb/GNUmakefile: Made EXTRA_DIST_FILE style fix and
-          added dist-plain target as dependency to the default target.
-        - scripts/ly2dvi.py: getpid does not behave very well across platforms
-          so I am creating temp file names with the Python tempfile module. 
-          The generate lilypond dependency file option was broken and
-          is now operational.  I also changed the dependency switch
-          from -d or -M to match lilypond.
-        - stepmake/bin/package-zip32.sh: Added build of ntweb html 
-          documentation
-
-***********
-pl 61.hwn2
-       - revise / junk various input files.
-       - junk Music_list_iterator
-       - bf: declared paper + \shape
-       - bf: \shape and wordwrap
-       - Busy_playing_req ()
-       - Music_iterator::try_music_in_children (),
-so explicit \context Staff is often not needed for
-         * tuplets
-         * repeats
-       - automatic rest detection for \rhythm
-       - regtest tight-spacing.ly
-       - regtest lyric-combine.ly
-       - Melisma_playing_req, Melisma_engraver, Busy_playing_req:
-stuff  for syncing music & lyrics.
-       - simplify Extender_engraver, Hyphen_engraver.  Assume lyrics come in from only one voice.      
-       - docced ambiguities in grammar.
-       - mudela-book -I behavior, verbosity.
-       - state search path when file not found
-
-pl 61.hwn1
-       - bf: \scm with --safe
-       - (ly-gulp-file)
-       - no need to set GS_LIBDIR, .ps files are inlined and directly
-printable.
-       - bf: spacing engine
-       - fixed paper11/13/16/20/23/26.ly
-       - use (header-end) iso {ps,tex}setting
-       - bf: convert-mudela --output
-       - move \version check to lexer.ll
-       - moved repeated-music-iterator.cc to folded-repeat-iterator.cc
-       - bf: broken crescendi
-       - removed delayed Spanner breaking.
-       - new implementation of \rhythm:
-         * Lyric_combine_music
-         * Lyric_combine_music_iterator
-         * \property melismaBusy sets melisma state.
-         * (commented out in parser.yy -- solution is not good enough yet.)
-       - bf: record def spot of seq/sim music
-       - junk Music_iterator::next_music_l (), Music::to_rhythm () & friends.
-       - junk Re_rhythmed_music & friends
-       - mudela 1.1.62: \shape = -1 -2 -3; -> \shape -1, -2, -3; etc.
-       solves one ambiguity.
-       - grace notes at end of music don't crash Lily.
-
-*******
-pl 60.jcn2
-       - moved creation of $BUILDDIR/share/locale into set-lily.sh
-       - slur slope change constraints when snapping
-       - slur height damping based on bow height
-       - don't typeset unfinished (auto) beams
-
-pl 60.jbr1
-        - Documentation/ntweb/angels.ly, Documentation/ntweb/guile.patch: added
-        - Documentation/ntweb/GNUmakefile: add above to EXTRA_DIST_FILES
-
-pl 59.mb2
-       - Tempo changes in MIDI output!
-       - gallina.ly:auto-beaming
-       - added property articulationScriptVerticalDirection
-         (useful in N.W.Gade/score.ly)
-       - bf, N.W.Gade: removed some more misprints
-
-pl 60.uu1
-       - bf: hara-kiri.ly
-
-pl 60.jcn1
-       - interstaff slur tuning
-       - added some regtests
-       - removed now silly check in encompass-info
-
-**********
-
-pl 59.uu1
-       - papervar loose_column_distance
-       - scripts don't collide.
-       - bf: midi2ly outputs \context iso \type
-
-pl 59.jbr1
-        - lily/colhpos.cc: fixed typo
-        - Documentation/ntweb: Updated News and added all the files 
-          associated with Windows Distribution web page.
-        - stepmake/bin/package-zip32.sh: added the ntweb page to formated
-          distribution.
-
-pl 59.jcn1
-       - bfs: slur damping
-       - papervar slur_interstaff_snap_to_stem
-
-pl 59.hwn1
-       - \property graceAlignPosition : put grace notes after main note.
-       - moved pianobrace stuff into Lookup
-       - moved Local_key_engraver out of Voice context, and
-acknowledge Grace_align_items.  Solves tie + accidental problem.
-
-pl 59.mb1
-       - Some small clean-ups and bug fixes
-
-***********
-
-pl 58.uu1
-       - experimental pdftex support, courtesy Stephen Peters.
-       - --version support
-       - junked complicated loose column handling.
-       - only stretch the extra space after prefatory matter, not the
-entire width of prefatory matter.
-       - standardise(d) switches:-d for debug, -M for Make deps, -m for midi-only.
-       - bf: papervar non_musical_space_strength  now works. Set to 8 (-> Strong! )
-       - bf: space after time_sig.
-       - bf: decrescendi.
-       - bf: barlines on voltas
-
-************
-pl 57.hwn1
-       - bf: accidentals on grace notes.
-       - \property graceAccidentalSpace
-       - bf: ignore grace notes duration for non-grace spacing.
-       - uncommented Key_req::transpose.
-       - Dot_column::do_post_processing (): better dot collisions, see dots.fly.
-       - derive Dot_column from Note_side_item.
-       - renaming of files
-         * heads-engraver
-         * request-iterator
-         * p-score
-         * engraver-group
-
-pl 57.jcn3
-       - bf: no extension: assume .ly
-       - bf: bow::do_width; which in turn allowed
-       - removed broken interstaff slur damping hack, and
-       - bf: slur height damping fixes damping
-
-pl 57.jcn2
-       - bf: ? priority and snap to stem
-
-pl 56.jcn4
-       - interstaff slur fixes and damping
-
-pl 56.mk1
-       - bf: collision.cc: collisions between chords with different
-         stem directions and close heads.
-
-****************s**************
-
-pl 56.jcn3
-       - slur de-hairification
-         * slurs always attached to noteheads, by default
-         * corrections for steep and high slurs
-         * snap to stem end when close
-       - bow/tie/slur dy/dx fix
-
-pl 56.hwn1
-       - some spacing tweaks.
-       - bf: two repeats + alts after each other.
-pl 56.jcn2
-       - tie: bfs + even simpler
-
-pl 56.jcn1
-       - bf: re-added \textflat,sharp to fix chords...
-       - bf: chord-modifier and mandatory dot: c-maj5 
-       - tutorial chord fixes
-       - tie fixes and boldifying:
-         * removed sloping (dy!=0) code
-         * use actual note-widths
-         * y[left] == y[right]
-         * follow OSU rules, I hope (from comments in text -- must check)
-         * undetermined direction -> down; inverse of stem
-       - bf: beam: undetermined direction -> up; like stem
-       - slur-symmetry fixes
-       - fix for \rhythm and seq_iter childs (still crude, but more effective)
-*********
-
-pl 55.uu1
-       - use GS' anti aliasing
-
-pl 55.jcn1
-       - auto-beamer: consider current duration first in ending/starting beam
-         this way, you can have 16ths auto-beamed, in some way, but 8ths never
-           beamAutoEnd_16 = 1;
-           beamAutoEnd_8 = 1/8;
-       - added some classes and few lines of doco to .dstreamrc
-       - refman:
-         * comment out broken
-         * commented out stale tex macros (tex/* dir too)
-         * bfs/new syntax: chords
-       - more midi2ly renaming stuff
-       - bf: make info (midi2ly and other renaming)
-
-pl 54.jcn2
-       - bf: auto-beamer: don't beam over skips
-       - update BUGS
-
-
-pl 55.mb2
-       - Font update: added more mensural style time signatures, 
-         old2/4, old6/8alt, old4/8 thanks to Christian Mondrup.
-       - bf: correct indentation of first line (removed \leavevmode)
-         plain TeX still gives wrong indentation
-       - bf: volta brackets broken over several lines get open end.
-         Final bracket gets vertical end if it stops at double bar.
-       - Dashed grace flags also for durations shorter than 8.
-       - N.W.Gade: fixed some details
-
-pl 55.mb1
-       - bf: font magnification also in PS output
-       - bf: set the GS_* variables correctly in buildscripts/lilypond-*.sh
-       - bf, lily.scm: errors in (de)crescendo
-       - bf, lilyponddefs: removed \noindent 
-
-
-pl 55.hwn1
-       - fixes: horn-concerto-3.ly
-       - bf: grace before tuplet.
-       - bf: decrescendo
-       - bf: multimeasrest numbers centered.
-
-****************
-
-pl 53.jbr2
-        - Documentation/ntweb/index.html: Updated nt distribution web page
-
-pl 54.uu1
-       - bf: Stem lens for beams.
-       - move meta doco to Documentation/metadoc
-       - move .bibb to Documentation/bibliography
-       - rename mi2mu to midi2ly
-       - removed other-packages.bib to comply with GNU standards
-
-pl 54.jcn1
-       - mutopia/J.S.Bach/Duette 1&2
-
-pl 54.mb1
-        - Renamed \wheel to the \coda
-       - bf: correct gap in tuplet braces
-
-pl 53.hwn2
-       - move more parameters from PS/TeX to Lily.
-       - PS cleanup
-       - TeX cleanup.
-       - bf: also make (empty) bar at end of voltabracket.
-       - bf: don't put slur over rest. 
-
-
-pl 54.uu1
-       - debian updates (anthony fok).
-
-*************
-pl 54 (july, 8)
-pl 53.jbr1
-       - scripts/ly2dvi.py: A fix for the multitude of file systems supported
-          by windows.  As long as the paths that the cygwin apps use are
-          UNC style and the paths that the native windows apps use are DOS 
-          style everybody is happy.  I add quick and dirty  unc2dos function
-          to facilitate this approach.
-
-pl 53.hwn1
-       - bf mudela-book.
-       - better min distance for multi measure rests.
-       - junk ATOM_SMOB
-       - control tuplet gap size from paper.
-       - bf:  output header as PS strings for PS out.
-       - bf: cached-fontname 
-       - control volta height from paper block.
-
-pl 53.jcn5
-       - \rhythm-ified and text bfs: standchen.ly 
-       - walk rhythm through *_iterator::next_music_l ()
-
-pl 53.jcn4
-       - more abc2ly hacking, including lyrics and \rhythm
-       - bfs: \rhythm
-       - \rhythm-ified input/twinkle.ly
-
-pl 53.jcn3
-       - put rhythm A on pitches/lyrics B: \rhythm MUSICA MUSICB
-           input/test/rhythm-melody.fly
-           input/test/rhythm-lyrics.fly
-       - syntax changes:
-o        * dot-only duration dropped: use c4 c4. iso now invalid: c4 c.
-         * chords: optional_dot now mandatory:
-           \chords { c-1.2.3 } iso now invalid: \chords { c-1 2 3 }
-         * @c@ (notemode_chords) syntax dropped.  rather use:
-           \notes { c d \chords { e f } }
-
-pl 53.jcn2
-       - \property graceFraction: part of next note taken-up by grace(s).
-       - Note_performer: add moments for delayed notes,
-         fine for single grace notes: hear gnossienne-4.ly
-
-pl 53.jcn1
-       - grace performance
-       - fixed tie-performance
-       - bf: abe
-  
-pl 53.gp1
-       - added Hyphen-engraver, Hyphen-spanner
-************
-pl 52.jcn3
-       - bf: mi2mu: midi without key
-       - try at grace-performer-group; breaks MIDI output even when no \grace
-       - silly tie-performer
-       - performers play_element () delayed to do_pre_move_processing ()
-
-pl 52.jcn2
-       - bfs standchen + grace, gnossienne-4
-       - decoupled midi output from input
-
-pl 52.jcn1
-       - bf: moved accidental code from Key_engraver to Key_change_req
-       - bf: midi-key
-       - bfs: mi2mu: core-dumps, keys, key-names, key-changes, notenames
-
-pl 52.hwn2
-       - new-beaming.cc: new beaming code
-         * now does [c8. c32 c32] correct by itself.
-         * beam over barlines
-         * non-fitting stems handled gracefully (eg. [c8 c4 c8] ) 
-       - junked rhythmic grouping, \grouping and all associated bits.
-       - bf: do try_visibility_lambda for nonbreakable items as well
-         (fixes \nobreak on barline)
-       - bf: Cons_list::truncate() 
-
-pl 52.hwn1
-       - repeat-engraver cleanup
-pl 52.gp1
-       - bf: make doc++ corrected to only include *.h and *.hh files.
-pl 52.mb2
-       - Added \repetitions: prints symbol for repeated bars.
-         Same syntax as multi-measure rests!
-       - Added \segno and \wheel script symbols
-pl 52.mb3
-       - Added barSize property. Junked barsize variable.
-
-************
-pl 51.uu2
-       - grace note flags, move Lookup::flag into Stem
-       - faq updates: doc++, Matt's page
-       - fixes for doc++.
-       - bartype string uses "brace" and "bracket" iso. "{" and "["
-       - some of assert()s  replaced by programming_error ()
-
-pl 51.mb1
-       - N.W.Gade: added real grace notes
-       - feta-banier.mf: added grace note flag
-
-pl 51.uu1
-       - use weAreGraceContext \property to determine self_grace_b_
-       - made more engravers grace aware.
-
-pl 50.jcn2
-       - filed egcs bug report for powerpc.
-       - removed unnecessary #ifdef powerpc 
-       - grace and other fixes for auto-beamer
-       - grace and other fixes for (beam-)stem-lengths
-       - input/test/bugs/hairy-grace.ly (urg)
-       - input/test/bugs/grace-accidents.ly (urg)
-       - input/test/bugs/grace-grace.ly (core)
-       - fixes: gnossienne-4.ly
-
-pl 50.hwn2
-       - Timing_translator: add proccing moments to nearest global translator,
-not to top global translator.
-       - cadenza.ly: grace notes.
-       - bf: auto staff switching
-
-************
-pl 51
-pl 50.hwn1
-       - grace notes:
-         * Grace_iterator
-         * Grace_music
-         * Grace_engraver_group
-         * move Score::run_translator to Global_translator::run_iterator_on_me
-         * stemLength property, Stem::length elt property
-         * Grace_align_item
-         * Note_head_side baseclasses Local_key_item, Grace_align_item
-         * Local_key_engraver moved to Voice.
-         * Grace_position_engraver
-         * Added Rhythmic_head::stem_l_
-         * Various other robustifications.
-       - lily.scm: scm->string
-       - folded reps without alts.
-       - Paper_outputter uses scm->string
-       - stem params now in staff positions iso. real dimensions
-       - internal: Junk all G_ and g- prefixes
-
-************
-pl 49.mb1
-       - bf: ly2dvi -N
-       - Added dynamicPadding property (applies only to dynamic marks, 
-         not (de)crescendi.
-
-pl 49.jcn4
-       - resurrected gnossienne-4
-       - Documentation fixes (for texinfo get yodl-1.31.13, tbr)
-       - minor abc2ly fixes; successfully converted some simple abc files from
-           http://faeryland.tamu-commerce.edu/joyce/
-       - www.mail-archive.COM
-
-pl 49.jcn1
-       - guile scm_gc_mark () workaround:
-       - via scm output wrapper buildscripts/lilypond.sh, set:
-           PATH=$LILYPONDPREFIX/buildscripts/out:$PATH
-       - scm output fixes
-
-pl 48.hwn2
-       - bf: rest-collisions.
-       - cleaned up standchen
-       - bf: slur dims.
-       - bf: unfold without enough alternatives.
-       - Use Lily version for \version.
-
-
-pl 49.uu1
-       - ran purify. Fixed some small problems, plugged some leaks.
-       - bf: linebreak at |:
-       - doc updates by Adrian Mariano
-
-pl 49.mk1
-       - Breathing signs by Michael Krause
-
-************
-
-pl 48.hwn1
-       - \property hshift -> \property horizontalNoteShift (mudela 1.0.21)
-       - cleaned up collision.  \property hshift = 2 now supported.
-       - Spacing:
-         * bf: don't divide strength by distance if distance == 0.0
-         * cleaned up Spacing_spanner
-         * simplistic optical illusion spacing for opposite stems.
-       - don't use Protected_scm for Score_element::element_property_alist_
-       - some scsii fixes.
-       - Lookup cleanups; junked Lookup::paper_l_
-       - abc-2-ly: tuplets, guitar chords., chords,
-
-pl 48.mb2
-       - bf: correct accidentals after tied over note.
-
-pl 48.mb1
-       - bf, lookup.cc: Count '{' also directly after a TeX macro
-       - bf: textstyle->textStyle in all examples.
-
-pl 48.jcn1
-       - bd: interstaff slurs at line break
-
-pl 48.uu1
-       - add a WX field to AFM output.
-       - add space before ; in AFM output
-
-*********
-pl 47.jcn1
-       - bf: interstaff slurs (urg: more segfaults in scm_gc_mark ())
-
-pl 45.hwn3
-       - Abbreviation -> Stem_tremolo.
-       - bf: Stem_tremolo in Beam.
-       - bf: Stem_tremolo over whole note.
-       - spacing before clefs.
-       - Spacing_spanner is now on by default
-       - junked most of Spring_spacer
-       - Tunable space after barline. 
-
-*********
-pl 46.mb2
-       - Reintroduced the tupletVisibility property. Same values as
-         the old version (pletvisibility), see the Reference Manual.
-         Note: does not work correctly with automatic beams.
-       - Added a tupletDirection property.
-
-pl 46.uu1
-       - bf: {} in texts.
-
-pl 45.hwn2
-       - more doc updates.
-
-pl 46.mb1
-       - Added property articulationScriptPadding
-       - N.W.Gade: layout fixes
-
-*********
-
-pl 45.hwn1
-       - Audio broadcast & acknowledge.
-       - more advanced spacing for prefatory matter
-       - tuplet appearance tweaking
-       - bf: ChoirStaff 
-
-pl 45.uu1
-       - glossary fixes (thanks Dirk).
-
-pl 44.jcn2
-       - bf: auto-beamer: long standing br form AM
-
-
-*********
-
-pl 45 (may 28)
-       - reinstalled Thread (there you are, John)
-       - german vocab.
-
-
-pl 43.hwn2
-       - split G_staff_side_item into G_staff_side_element and G_staff_side_item.
-       - junked old Staff_side
-       - Crescendo also uses G_staff_side_element
-       - crescendo_shorten paper var.
-       - create horizontal groups for break_aligment inside Break_align_item.
-       - more abc-2-ly fudging
-pl 44.mb1
-       - bf, property.ly: change fontsize->fontSize
-       - N.W.Gade: removed old tie behaviour
-       - bf, ly2dvi: expand .sly extensions
-
-*********
-pl 44
-pl 43.jcn2
-       - bf: repeat :| placement + core dump
-         input/test/repeat.ly
-         input/test/coda-kludge.ly
-       - bf: mf without ljfour
-         * feta-accordion fix/hack for feta11 at 300dpi
-
-pl 43.hwn1
-       - half assed attempt at ABC convertor.
-       - Spacing_spanner: "decentral" spacing stuff.  Use -t to try.
-       - bf: StaffGroup vertical alignment
-       - \property {slur,tie,}ydirection -> {slurV,tieV,v}erticalDirection (1.0.20)
-       - Spanner now hangs on left endpoint.
-       - \property forgetAccidentals: do not remember accidentals.
- Every note not in the key triggers typesetting of an accidental.
-       - \property noResetKey: do not reset key at start of measure:
- accidental remain in effect until overriden
-       - bf: ties & accidentals (fix breaks oldTieBehavior)
-       - junked Tie::same_pitch_b_
-  
-pl 43.jcn1
-       - configure, set-lily.sh, release stuff
-
-pl 42.tca2
-       - lilypond don't put \interstaffline after last line. This to
-         get really nice vertical spacing for mudela-book.
-       - mudela-book: vertical spacing
-       - lilyponddefs.tex: commented out \parindent=0pt to get correct 
-         paragraph indent for mudela-book
-
-************
-pl 43
-
-pl 41.hwn3
-       - reinstated \property inheritance
-       - \property SkipBars -> skipBars
-       - \property midi_instrument -> midiInstrument
-       - \property fontsize -> fontSize (mudela 1.0.18).
-       - bf: add a space after lyrics.
-       - junked flower DLL classes
-       - rewrote repeat music and iterators (mudela 1.0.17)
-         * Folded_repeat_iterator
-         * Unfolded_repeat_iterator
-         * New_repeated_music
-         * syntax change: \repeat FOLDSTRING NUMBER Music [ALTERNATIVE Music_se
-quence]
-       - data struct simplification: junked Dynamic_req,
-Absolute_dynamic_req, Span_dynamic_req, Slur_req, Beam_req. Use
-Span_reqs and Text_script_reqs with type fields instead. 
-
-pl 42.tca1
-       - updated mudela-book documentation
-       - misc mudela-book.py
-       - accordion: smaller dots + little script renaming
-
-
-pl 42.jcn1
-       - bf: hp-u(rg)x: user build; sm 73
-       - bf: hp-u(rg)x: sm74
-
-pl 41.mb1
-       - convert-mudela: convert textstyle -> textStyle
-       - refman.yo: properties moved to correct contexts.
-       - mudela-book.py: Added singleline, multiline options. 
-         Fixed default line width bug.
-
-***************
-pl 41.hwn2 (may 10, 1999)
-       - bf: Score bar line thickness.
-       - more paper writing
-       - website tweaks.
-       - Graphical_element::dim_cache_ now alloced separately. 
-       - junked Graphical_element::absgolute_offset
-       - Musique-de-Table 
-       - mmrest_x_minimum now works at begin-of-line.
-       - junked Span_bar::extra_x_off
-       - \property foo.bar = \stringid + \otherstringid
-       - bf: stop on lexer errors as well.
-       - only do vertical alignment at Score level.
-       - tweaked ledger endings a bit.
-       
-
-pl 41.hwn1
-       - small fixes.
-       - mudela-book.py patch (thanks MB)
-
-pl 41.mb1
-       - Added the installation instructions to the top web page.
-       - N.W.Gade: Added triangolo part, minor changes.
-
-pl 41.tca1
-       - Lookup::accordion and removed some accordionfonts
-
-***************
-
-pl 40.uu2
-       - rest ledger lines are dimensionless.
-       - Score_elements are added to the Paper_score directly when
-announce_element () is called.  This makes it possible to init
-molecules from within engravers.
-       - changed \type to \context
-       - \context Contextname = ID Music is now a real separate production
-         * you can do
-               \context C1 \context C2
-
-       and C1 won't overwrite C2
-
-         * you need some extra explicit context specs, eg. if you start a
-voice with a chord.
-
-               \score { \notes { <c e g> }  }
-
-       should be
-
-               \score { \notes \context Voice { <c e g > }
-
-       - set staff margins on grandstaffs too. Center staffmargins vertically.
-       - \property values are not inherited anymore, i.e. setting
-Score.minVerticalAlign does not set GrandStaff.minVerticalAlign, Staff.minVerticalAlign and Voice.minVerticalAlign as well.
-       - {Axis_spanner, Hara_kiri}_engraver which can be added at wish.
-Hara_kiri should be working again.
-       - boilerplate for accordion stuff.
-       - some more paper writing.
-       - bf: substitute vertical refpoint as well for broken items.
-(fixes clef^8)
-       - bf: translating molecule without elts but with dims. (bf: accidental
-spacing.)
-       
-pl 40.mb1
-       - bf: ly2dvi set MFINPUTS so standard tree is found before lilypond
-       - bf: lilypond-regtest.doc, ls-latex.py; now finds author/title
-
-pl 40.uu1
-       - large documentation patch by Adrian Mariano
-
-********
-pl 40
-pl 39.mb2
-       - added more mensural style time signatures, old3/4, old6/8, old9/8
-       - redesigned old6/4, old9/4
-       - Updated refman.yo, lilypond-regtest.doc, clefs.ly, time.fly
-
-pl 39.hwn1
-       - consified mi2mu (pl 37.jcn1)
-
-pl 39.mb1
-       - bf: invisible clefs don't take any space, moved _8 below clef
-       - updated incipit example and macro
-
-pl 39.uu1
-       - delete graphical objects  in reverse
-       - faq updates.
-
-********
-pl 39 (april 12)
-       - \property textstyle -> textStyle
-
-pl 38.tca1
-       - added scm/accordion-script.scm and update ly/accordion-defs.ly
-       - renamed some accordion symbols to make them more english and less
-         norwenglish. 
-       - removed dot from \accBayanbase
-
-pl 37.script4
-       - bf: molecule
-       - bf: tuplet spanner appearance.
-       - bf: less spacing after clef.  Invisible bar has no dims. 
-       - included AIMS.  The why of Lily.
-       - warning if duplicate engraver.
-       - warning if no ties could be created.
-       - bf: \time1/4; .. beams ..
-       - bf: staff switching beams / slurs.
-       - tuplets on multiple beams.
-       - Documentation/tex/lilypond-regtest.doc
-       - bf: nested tuplets
-       - slur cleanups.
-       - bf: multi_measure_rest_engraver in Score_context.
-
-pl 38.uu1
-       - bf: clef_8
-       - bf: barnumbers.
-
-pl 37.script3
-       - fixes for spring_spacer, introduced
-Spacing_engraver
-       - cleanup for rest-collisions. 
-       - hacks for GUILE gc
-       - mudela-book \mudelafile
-       - Documentation/tex/lilypond-regtest.doc
-       - MF rest fixes
-
-
-********
-pl 38 (april 6)
-pl 37.script2
-       - bf: AFM for BlueSky AFM files.
-       - \penalty = 4278 -> \penalty 4278
-       - URG!! fixed major (unnoticed) bug in dependency engine
-       - Further Script hacking:
-         * G_script_column
-         * G_script_column_engraver
-
-pl 37.script1
-       - major Script rehack:
-         * G_stem_staff_side_item
-         * G_script
-         * G_script_engraver
-         * G_script_req
-       - junked Text_def, changed \property textstyle -> \property textStyle
-(todo -> convert-mudela)
-       - Line_of_score is an Axis_group_element, no more overlapping
-lines, hopefully.
-       - mf: whole diamond head tweak 
-  
-pl 37.mb2
-       - Added property clefStyle: "" / "transparent" / "fullSizeChanges"
-       - New example: input/test/incipit.ly
-       - Documented clefStyle and restStyle in refman.tex
-       - Partial bug fix: octaviated clefs. Still broken!!!
-
-pl 37.mb1
-       - Added property restStyle. 
-       - mensural 4th, 8th and 16th rests.
-pl 37.uu1
-       - FreeBSD bf
-
-****
-pl 37 (march 30, 1999)
-       - note head styles, see input/test/noteheadstyle.fly
-         * \property noteHeadStyle:
-         * diamond note heads (probably really ugly)
-         * cross note head.
-         * harmonic head (mf sources were tweaked)
-         * transparent for no \heads
-         * \property noteHeadStyle ="" for normal heads.
-
-pl 36.mb2
-       - bf: timeSignatureStyle
-       - Added dynamic fz (forzando) to Lilypond
-       - bf: N.W.Gade, sfz -> fz
-
-pl 36.hwn1
-       - debian fixes.
-       - don't insert extra alignment space for empty stuff.
-       - Align_element derives from Axis_group_element
-       - junk cruft for detecting upbeam / downbeam.
-       - junk all *{horizontal,vertical}* Score_element derived classes.
-       - G_staff_side_item::padding_f_ now generic property.
-       - some tweaking of beam & stem. 
-       - junk pointerlist in Sources
-       - junk Stem::mult_i_, Stem::beam_gap_i_, G_staff_side_item::padding, 
-       Bar::at_line_start_b_, Key_item::c_position_, Note_head::type_str_,
-       Note_head::staff_size, Stem::xdir_
-       
-pl 36.mb1
-       - bf: N.W.Gade
-
-**************
-
-pl 35.uu1
-       - more memory tweaks: don't do Score_element::line_l () when deleting lines.
-       - more generic properties.
-       - change ridic. dims assert into warning.
-       - tex/ midi fixes (thanks, Mats).
-       - bf: don't crash when no Stem_infos are set.
-       - extender-spanner simplification
-       - working MIDI chords (Thanks Dscho)
-
-pl 35.jcn1
-       - some ps fixes
-
-************
-pl 35
-
-pl 34.hwn2
-       - "Lily Was Here" is def'd as \mudelatagline, override with
-       \header { tagline = "... " ; }
-       - \property currentBarNumber: set
-       current bar number.
-       - \property postBreakPadding: tune extra
-       space padding after linebreaks.
-       - \property textEmptyDimension: disregard script text
-       dimensions (untested)
-       - \property staffLineLeading: set the staff space
-       - adjustable staff space size (per staff)
-       - Staff_symbol_referencer as base class for elements that use
-       info of the staff symbol.  \property numberOfStaffLines also works  OK
-       with ledger lines. (Is that useful? dunno.)
-       - warning  if someone does \translator with no name
-       - junk Item::breakable_b_
-       - junk PointerList<Music*>, use Killing_cons
-       - bf: Auto_beam_engraver.
-       - bf: mmrest engraver.
-       - use callbacks for Dimension_cache.
-       - lots of small cleanups. Junk various members of
-       Score_element & derived classes:
-         * Item::original_l_,
-         * Spanner::original_l_,
-         * Score_element::transparent_b_,
-         * Item::break_priority_i_,
-         * Item::break_status_dir_,
-       - merge Score_priority_engraver / Score_horizontal_align_engraver
-       - Use more generic element properties. 
-       - precompute SCM symbols. 
-       - remove_elt_property (): Try to junk an element property, if not
-       needed anymore.
-
-
-
-pl 34.uu1
-       - more PointerList junkings.
-       - MIDI bugfix.
-       - be more conservative with Dicts/Hashes mem usage
-
-*********
-pl 34
-
-pl 33.uu2
-       - some performance cleanups: junked PointerList instance, plugged some leaks.
-       - style -> fontname now in scheme.
-       - minor Score_element brainsurgery:
-               * generic element properties.
-               * junked Score_element::junk_links, Score_element::unlink
-               * junked Directed_graph_node as superclass of
-Score_element, this should reduce mem usage a bit.
-
-pl 33.jcn2
-       - fixed autobeamer's beam->unlink ()
-
-pl 33.jcn1
-       - allow autobeaming according to duration iso (crude) multiplicity
-
-pl 33.jbr1
-        - change my email address
-        - Windows platform does a cp -r instead of a ln -s
-
-pl 33.uu1
-       - bf: ^ and _
-       - junked poor man's dynamics.
-
-*********
-pl 33
-
-pl 32.mb1
-       - bf: \> and \< were interchanged!!
-       - Added property: textScriptPadding
-       - Changed copyright text on the Gade score.
-
-pl 32.uu1
-       - really include Gade score now.
-       - fixes: install-[out-]targets, INSTALLATION_[OUT_]SUFFIXES
-       - install TFMs in separate dir.
-pl 31.hwn3
-       - Span_bar bugfix (there you go, Mats).
-       - bf: Score copy ctor (-> bf declaring score)
-       - new Tie behavior: only tie identical pitches, switchable with
-         oldTieBehavior
-       - junked cautionary_b_ from Musical_pitch
-
-pl 32.jcn1
-       - set-lily: set weird locale links for $LILYPONDPREFIX 
-
-**********
-pl 31.mb2
-       - Added example: "Imellan Fjeldene" by Niels W. Gade.
-       - bf: don't attach staff margin text to clef changes within the
-       lines. (Still not perfect: no text when a clef change happens
-
-pl 31.hwn2
-       - be somewhat lazy in break/object multiplication.
-       - print # elements for memory usage impression (try  -t)
-       - Paper_score cleanup
-       - junked various Pointer_list instances. Executable now is smaller.
-       - junked various cruft
-       - merged do_substitute_dependen{t,cy} to
-do_substitute_element_pointer ()
-       - more parser cleanup
-       - Interval uses Drul_array
-       - bf: I've been drinking too much
-       - delete break helpers before object breaking/multiplication.  Try
-to save some memory.
-  
-pl 31.jcn4
-       - bf: toplevel install, kpsewhich
-       - sm 71, require yodl-1.31.11
-       - fix: slur macros
-       - bf: info in rpm, if available
-       - fix: rat != float
-       - bf: slur-follow-music
-
-pl 31.uu1
-       - config.make: include GUILE_LDFLAGS
-
-******
-pl 31 (feb 16)
-
-pl 30.jcn1
-       - sm fixes, intl/ fixes
-
-pl 30.mb1
-       - Added support for magnification of TeX fonts ==> 
-         larger dynamics in 20pt scores. (Doesn't work in Postscript)
-
-pl 30.hwn1
-       - Debian patches (thanks, Anthony)
-       - Italian support (thanks, Maurizio)
-       - parser cleanup
-       - minor chord.cc cleanups.
-       - bf: \rc \rced 
-       - hara kiri doesn't do suicide with normal rests.
-       - Hara_kiri_vertical_group_spanner generalised
-       - extender engraver rewrite, now __ is like ~ [] |, ie. in between
-notes/lyrics.
-       - lyric engraver now engraves only single voices.  Use
-separate LyricVoices to get stacked lyrics.
-       - bf: bar(Non)Auto first barline  
-       - barAuto -> barNonAuto
-
-
-*******
-
-pl 30 (feb 15)
-
-pl 29.uu1
-       - typewriter font
-       - star-spangled-banner bf (slur.cc).
-
-
-pl 29.jcn3
-       - fix: slur-case3.ly 
-       - init.sly: .fly with linewidt=-1
-
-pl 29.jcn2
-       - resurrected ps output
-
-pl 29.hwn1
-       - bf: coord relative to self.
-       - bf: error msg if no AFM found
-       - bf: hang script on bar in other axis too (fixes staff-side-slur bug)
-       - hang on scripts on clef as well (more to left for single staffs)
-
-
-pl 29.jcn1
-       - bf: volta sizes
-       - GNU stuff on home page
-
-*******
-pl 29
-
-pl 28.hwn1
-       - bf: mid measure clefs (breakable  items in non-breakable columns.)
-       - spanner.cc assert changed to warning
-       - (c) 1998 -> 1999 search replace.
-
-pl 28.jcn1
-       - new outline TODO + .emacs setup
-*******
-pl 28
-pl 27.hwn2
-       - un-SMOB Atom.  Cons and Killing_cons as simple cons replacements.
-
-pl 27.jcn5
-       - outline TODO
-
-pl 27.jcn4
-       - measure-end hinterfleish patch
-       - input/test/coda-kludge.ly
-       - bf: volta-number placement
-       - volta: support for "1.-2."  "3"
-pl 27.jcn3
-       - bf's: zero-length repeats
-       - Auto beamer:
-         * turned on by default
-         * input/test/auto-beam*.ly
-         * support for time-defaults
-       - Chords:
-         * input/just-friends.ly
-         * ChordNameContext
-         * bf's: chord mode: accept STRINGS, rests
-         * bf's: banter_str
-       - new bool \property Score.barAtLineStart
-
-pl 27.hwn1
-       - global ctors
-       - read lily.scm before all .lys
-       - Link_array derives from Array<void*>
-       - search repl: Array<X*> -> Link_array<X>
-       - junked most static casts
-       - revamped Atom / Molecule: Molecule now is the public interface.
-Atom is a GUILE smob. Guile takes care of allocation and list stuff.
-       - bar scripts on score bars (there you are, Mats)
-       - :||: span bar fixed
-       - using generic ledger lines now (regenerate fonts!)
-       - refman updates (Thanks, Adrian!)
-       - Molecule::operator = (), Molecule::do_center ()
-       - junked Span_score_bar, Score_bar, Staff_bracket, Piano_brace. Folded functionality into Span_bar
-       - textstyle property for textual scripts.
-       - lookup cleanups (time_signature, text, stem, junked extender, filledbox, simple_bar)
-       - junked obsolete TeX stuff.
-       - ly2dvi-testpage.ly
-       - only make AFMs for feta[0-9]+.mf
-       - using strings for abs loudness.
-
-       
-pl 27.jcn2
-       - grand renaming: Duration vs Moment / Rational
-
-pl 27.uu1
-       - extra beam warning
-
-pl 27.jcn1
-       - complete redo of chord and chord name code
-       - small fixes
-
-*************
-pl 27 (feb 3)
-
-pl 26.uu1 
-       - make TFMs too. 
-       - bf: dynamics.  (Don't hang on spanner!)
-       - read TFM before AFM.
-       - fix din-MF stuff (UGH)
-
-pl 26.jcn4
-       - Chord: handle all chord stuff; lots of chord fixes
-       - bf: Chord-name-engraver: find tonic
-       - bf: my-lily-parser: get_chord
-
-
-pl 26.jcn3
-       - bf's: spring spacer end of measure
-       - bf: tie/slur rods (dankje, lieverd)
-       - bf's: intl/ compile, install, uninstall
-
-pl 26.jcn2
-       - enforce {slur,tie}_x_minimum (urg, paper vars?)
-       - tie listens to tieydirection/ydirection
-       - bf: tie placement
-
-pl 26.jcn1
-       - tutorial fixes
-       - bf: OrchestralScore should do hara-kiri..
-       - bf: makeinfo: 
-         - info in rpm again 
-         - update to yodl pl10, yodl2texinfo fixes
-         - use --force, .info should always be generated
-
-*********
-pl 26 (feb 1, 99)
-
-25.jcn2
-       - bf: staffside axis init
-       - bf: staffmargin stuff.
-       - Timesig C fixes
-
-
-pl 25.uu2
-       - junked Scarlatti clef
-       - fixed clef^8
-       - Interpretation_context_handle is interface to interpretation context 
-       - Staff_switching_translator: automatic staff switching for Piano staffs.
-
-pl25.jcn1
-       - volta-spanner: junked dot_p_; not so handy after all: kerning??
-       - feta-nummer: added : ,-.
-       - volta/tuplet thickness
-       - bf: scs-paper
-       - bf: ".|", and bar-thicknesses
-
-pl 25.uu1
-       - bf: default duration is 4
-
-**********
-pl 25
-
-pl 23.ms2
-       - property noteheadStyle
-       - first attempt to make harmonics : see input/test/harmonics.fly
-
-pl 23.ms1
-       - sinfonia.ly: several fixes
-       - dynamics
-        * increased range pppppp to ffffff
-        * added sp, spp, sff, rfz
-        * example see input/test/tchaikovsky.ly
-        * updated dynamics in refman
-
-
-pl 24.jcn2
-       - website fixes
-       - bf's: chords:
-         * reverted c1*2, collides with \times {}
-         * should use: c\breve, c\longa for long chords
-         * addition: c-9, subtraction: c^5
-         * multiple -add, ^sub: c-7+.9-^3.5
-       - bf: lyric chord
-       - bf: lookup text height
-       - bf's: autobeamer
-
- pl 24.jcn1
-       - bf: rest collisions
-       - separate tfm-reader
-       - bf: :|: should not have thin lines
-
-
-pl 24.mb1
-       - bf: Correct units now used in the .afm files.
-
-******
-
-pl 24, Hacking Apart Together (Jan 25)
-
-pl 23.jcn9
-       - bf's: preludes-* (found a \meter and \transpose c`` there!)
-       - bf: ly2dvi: don't barf on 'linewidth = -1.;'
-       - bf: lily-version
-
-pl 23.jbr1
-       - scripts/ly2dvi.py: Windows 95 shell does not support redivrection 
-         of stderr.  We now distribute ash and use it when needed.
-       - stepmake/bin/package-zip32.sh: distribute ash, and guild ice-9/
-         directory.  We build and distribute manpages in html format instead
-         of text format.
-       - Documentation/ntweb: Updated doco and now distributing as a self
-         extracted binary with install script.
-
-pl 23.hwn4
-       - bugfixes
-       - changed All_font_metrics to do TFM as well.
-       - changed init/ to ly/
-
-pl 23.jcn8
-       - tfm reader; revamped code from fontutils-0.6
-
-pl 23.hwn3
-       - {Bar numbers|staff margin stuff|marks} fixed using
-Bar_script_engraver as base class
-       - bf: PS points != Lily \pt 
-       - junked Bar_column_engraver
-       - junked Text_item and some old files.
-
-
-pl 23.jcn7
-       - bf: piano-brace size (veels te simpel: kruis vingers tegen reject)
-       - crude autobeam stuff in mi2mu
-       - brevis, longa chords: c1*2,*4
-       - mutopia/E.Satie/petite-ouverture-a-danser.ly
-       - prop: voltaVisibility
-       - more cello-suite-ii fixes:
-         * nice repeats
-         * removed all beams ifo auto-beamer
-       - bf's: autobeam
-       - junked dur2real; beamAutoEndx now as rational string: "1/2" 
-
-pl 23.hwn2
-       - _8 clef 
-       - junked #args symtable def.
-       - junked Text_item.
-       - moved Bar assembling into LilyPond
-       - junked symtables reads
-       - Lookup cleanups
-       - junked Symtable from init/table*
-
-pl 23.hwn1
-       - revamped Scarlatti K3-L378
-       - some more doco
-       - use interning/SCM for Scopes
-       - hanging on now works for breakables too.
-
-pl 23.jcn6
-       - chord fixes; notemode chord syntax changed: @c@ @c-7@
-       - fixed cello-suite ii
-       - bf's: auto-beamer; but nasty bug remains: input/bug/auto-beam.ly
-       - bf: extender
-       - (bit ugly) fix for lyric-chords
-       - fixed repeats (dankjewel lieverd)
-         * input/twinkle.ly
-         * input/star*.ly
-
-pl 23.jcn3
-       - succussfully removed []s from wtk1-fugue2.ly
-       - bf + smarter autobeamer
-
-pl 23.jcn2
-       - mi2mu: d-minor: des->cis, g-minor ges->fis
-
-pl 23.mb1
-       - bf: Position and possible SIGSEGV in Mark_engraver
-       - Added padding support in G_staff_side_item
-       - bf: Correct direction of textual scripts. 
-       - bf, lookup.cc: Fewer warnings about missing text styles. 
-            Same units used in all .afm files.
-
-pl 22.jcn5
-       - auto-beaming v0: input/test/auto-beam.ly
-
-
-
-***********
-
-pl 22.jcn4
-       - bf's: repeat-engraver; \bar "|:", ":|" now deprecated for repeats
-       - bf: :|, |:
-       - property barAlways changed to boolean (0/1)
-       - added boolean property: barAuto
-
-pl 22.jcn3
-       - bf: mmrest
-
-pl 22.jcn2
-       - updated mi2mu
-       - bf: multi-measure-rest (input/test/m.ly)
-       - half fix for staff-margin-engraver
-
-pl 22.jcn1
-       - bf's: cross-staff slur
-       - bf: gnossienne-4
-pl 22.tca1
-       - buxfix, \mudela{ \times 2/3{ ...} } works now
-
-******
-  
-pl 22
-       - fixed "already have a Beam" error
-
-pl 21.jcn2
-       - gnossienne: hmm, how to 
-         * undisplay bars
-         * don't put 'grace notes' in beam
-         * put separator between  "] \translator Staff=x" 
-
-pl 21.jcn1
-       - gnossienne-4.ly (start of)
-
-pl 20.jcn2
-       - mutopia fixes; see preludes-1.ly for cross-staff beams and slurs
-       - bf: broken interstaff slur
-       - sm66: check for gmake
-
-*******
-pl 20.jcn1
-       - interstaff slurs v0: preludes-1.ly
-       - warnings for silly interbeam settings
-
-pl 20.hwn1
-       - inclusion of WIP article about LilyPond.
-       - L.Mozart sinfonfia
-       - bf: [c8 [c8 c8]
-
-********
-pl 20
-
-pl 19.jcn5
-       - interstaff beams v0: see beam-interstaff.ly and wtk1-fugue2.ly
-
-pl 19.jcn4
-       - new stem/beam parameters
-       - bf: forced stem shorten
-
-pl 19.jcn3
-       - dehairification of beam code; cleanup and bugfixes
-         * stemlength
-         * forced stem shorten
-         * slope calculation
-         * damping and correction
-         * catch for silly beams: input/test/beam-suspect.ly
-
-pl 19.jcn2
-       - multi-measure-rest is now spanner SkipBars=0 is broken
-
-pl 19.jcn1
-       - hmm, almost centered whole-bar rests -- NOT
-
-********
-pl 18.jcn5
-       - bf: beamtrend
-       - bf: vv-duet
-
-pl 18.mb1
-        - \mark now works, using G_staff_side_item.
-       - Improved layout of multi-bar rests, including a new
-         font symbol.
-
-pl 18.jcn4
-       - beam length adjustments
-       - ugly beamtrend fix: input/test/beam-trend.ly
-
-pl 18.jcn3
-       - bf: (beamed) forced stem shorten
-       - bf: broken slurs and ties; minimal slur/tie length setting ignored
-       - bf: separators on cygwin
-
-pl 18.jcn2
-       - bf: stem-length algorithm
-       - bf: beam direction algorithm
-       - bf's: wtk1-fugue2.ly
-
-pl 18.jcn1
-       - stepmake update
-       - small fixes: spacing.ly, wtk1-fugue2-ly, violino-viola duet.
-*******
-pl 18 (jan 4 '99)
-
-pl 17.jbr2
-       - Documentation/README-W32: Brought my stuff up to date
-       - Documentation/ntweb: updated for realease
-       - stepmake/bin/package-zip32.sh: cygwin-b20 changes
-       - scripts/ly2dvi.py: LILYPONDPREFIX fixes
-
-pl 17.jbr1
-       - scripts/ly2dvi.py root is now the shared directory path not the
-         root of the lily installation.  Environment variable LILYPONDPREFIX
-         is also the path to shared directory.
-       - lily/main.cc WINNT conditional added to avoid a casting of 
-         main_prog
-
-pl 17.hwn1
-       - bfs wtk1-fugue1
-       - spacing tweak: very widely and tightly spaced lines look
-better.
-       - allow Beam settings to be overriden: property
-       stemLeftBeamCount, stemRightBeamCount
-       - junked Assoc, Assoc_iter
-       - junked Graphical_element::{width,height}
-       - junked Plet_swallow_engraver, Plet_engraver
-       - Command_tie_engraver -> Tie_engraver, Command_beam_engraver -> Beam_engraver
-       - naming  brew_molecule_p / do_brew_molecule -> output_processing,  do_brew_molecule_p 
-       - experimental Text_item, Staff_side
-       - junked old Beam_engraver and old Tie_engraver.
-       - AFM administration cleanup.
-       - cache brewed molecules.  Speed up ?
-       - rehacked Graphical_element, introduced Dimension_cache
-
-********
-
-pl 17
-pl 16.jcn2
-       - fix: TEMPO 4., well urg, "TEMPO 4 ."
-       - beginning of violino/violoncello (viola) duet
-
-pl 16.jcn1
-       - resurrected po-stuff
-
-*********
-pl 16
-
-pl 15.uu1
-       - dynamic fix.  
-       - junked abbrev stuff from parser.
-
-pl15.tca1
-       - fixed verbatim option behaviour for mudela-book.
-       - added mudela-book option intertext="some text" 
-       - mudela-book now understand latex \begin{verbatim}
-  
-pl 15.jcn1
-       - chord inversion: 
-         * enter C/E
-         * display chord names according to boolean property
-           \property Score.chordInversion; 
-
-*********
-pl 15
-
-pl 14.hwn1
-       - new beam syntax: { [<c e> <c e>] }, changed in lilypond,
-parser, lilypond (mudela 1.0.14), manual
-       - new tie syntax:  { <c e > ~ <c e > } changed in manual,  
-parser, lilypond (Mudela 1.0.13)
-
-pl 14.jcn1
-       - bf: get_chord C-m5-
-       - typos: chord-name
-
-pl 14.tca2     
-       - move option proccing out of main
-
-**********
-
-pl 14
-
-pl 13.hwn1
-       - tutorial fixes.
-       - junked find-quarts
-       - junked various plet goryness.
-       - preps for <c e> ~ <c e> syntax
-       - bib fixes 
-
-pl 12.jcn3
-       - bf's: standchen
-       - added repeat, chord stuff to website
-       - bf: dashed slur
-       - hacks for barlines, dynamics
-
-pl 12.jcn2
-       - bf: package-diff
-       - new chord syntax, again: TONIC [DURATION] ['-' MODIFIERS/ADDITIONS]
-       - shorthand prefix for note-mode: '@', no shorthand for notes in chord
-          mode...
-pl 11.jcn6
-       - bf: ly2dvi: better guess LILYPONDPREFIX: <bin>../share/lilypond
-       - chord-table; urg bugs:
-          * note-collisions
-          * accidental-placement
-       - bf: cis m (\textsharpm, urg)
-  
-pl 11.jcn5
-       - bib entry, twinkle-pop
-       - bf's: chords
-
-pl 11.jcn4
-
-**********
-pl 13
-       - mutopia stuff (thanks, Peter)
-       - bugfix : \maininput
-
-*********
-
-
-pl 12
-pl 11.jcn3
-       - bf: missing triads
-       - @c @c min (* is taken, <<, <> don't work)
-       - chord-modifiers (urg, "sus" should also subtract 2...)
-
-pl 11.uu3
-       - --safe: security paranoia: disallow untrusted \include,
-disallow untrusted TeX code, disallow named output
-
-pl 11.jcn2
-       - duration with chords + change:  @4 c @c7
-
-pl 11.jcn1
-       - minor chord syntax change: *c6 iso @c6;
-
-**********
-
-pl 11
-
-pl9.tca1
-       - included that missing init/mudela-book-defs.py. Added
-         one line to init/GNUMakefile to make .py-files be included.
-       - fragment and nonfragment options to override autodetection
-
-pl 10.jcn1
-       - input/test/chords.ly
-       - \type ChordNames and chord-name-engraver.*
-       - chords mode: \chords { <c e g> @c; @d7; }
-
-pl 10.uu1
-       - scm/ directory.  install .scm stuff too.
-       - tuplet bug fixed.
-
-**********
-pl 10
-
-pl 9.jcn3
-       - property: unfoldRepeats; unfolding still broken
-       - volta spanner y-collision
-       - bf: volta number,dot placement
-       - bf's: init/table16,20
-       - small additions to init/lily.scm to enable some testing
-       - junked extra repeat braces
-
-
-pl 9.uu2
-       - bib stuff
-       - removed \output from parser/lexer
-
-pl 9.jcn2
-       - bf/redo: slur.cc, encompass-info: setting of encompass array.  
-       - switched tuplet-engaver off (core dumps)
-
-pl 9.jcn1      
-       - bf (urg): no |: at start of piece
-       - bf?: text defs without width
-       - alignment absolute dynamics
-       - mutopia/opus-130.ly (excerpt, triggered by GUIDO)
-       - bf: crescendo symbol
-
-
-pl 9.uu1
-       - added faq entry
-       - copertina (thanks Maurizio)
-
-*****************
-pl 9
-       - fixed \relative
-
-pl8.tca1
-       - changes to mudela-book. Junked fragment and floating options,
-         added eps option. Options should not stay as long that you get
-         comfortable with them. ;)
-       - Also possible to define your own commands with
-         a syntax like \mudela{c d e}
-       - updated mudela-book-doc.doc
-
-pl 8.jcn3
-       - website: gnuisation of footers
-
-pl 8.jcn2
-       - input/test/vertical-text.ly: urg ydim of text chords
-       - bf: one set of |: :| volta per staff
-       - bf: init/table* braces + more braces
-       - try at score-volta-bracket
-
-pl 8.jcn1
-       - bf: lyric-engraver: handle multiple requests (don't overwrite)
-       - bf: guile-config
-       - music-list-iterator
-
-pl 8.hwn3
-       - coriolan corno 1
-
-pl 8.hwn2
-       - more output revamping.
-
-pl 8.hwn1
-       - Scheme output stuff
-       - tutorial fixes.
-
-*****************
-pl 8
-
-pl7.jcn3
-       - bf's: spanner/volta
-       - volta-support: via Note, Bar, and Paper-column to Bar (item)
-
-pl7.jcn2
-       - note repeats
-
-pl7.jcn1
-       - configure/guile fixes (still no check for 1.2/1.3)
-
-pl7.hwn1
-       - tutorial fixes
-       - tuplets over beams.
-
-*****************
-pl 7
-
-pl6.jcn5
-       - repeatbars, volta-spanner work, alternative iteration still broken
-       - volta symbol
-
-pl5.szmulewicz2
-       - more GUILE stuff.
-       - tutorial doco updates
-
-pl6.jcn4
-       - volta-spanner
-       - repeat-engraver
-       - repeat/alternative music layout (hehe)
-  
-pl6.uu1
-       - Doco of music iterators.
-
-********
-pl 6
-
-pl5.szmulewicz1
-       - rtti stuff
-       - bf's: lily.scm
-
-pl5.mb1
-       - bf: array.hh, don't make copy if resized to the same size
-       - bf: feta.tex
-
-pl5.jcn4
-       - scm additions: plet, hairpin
-       - website fixes
-
-pl5.jcn3
-       - website fixes
-
-pl5.jcn2
-       - extender-*, see input/test/extender.ly
-       - bf: half-beam length (urg)
-       - fixes: standchen, star
-
-pl5.jcn1
-       - tex/lily-ps-defs.tex fixes
-       - lily.ps 
-
-pl 5.hwn1
-       - Tuplet_engraver
-       - lily.ps fix.
-       - junked MY_RTTI stuff, simpler VIRTUAL_COPY_CONS
-
-********
-1.1.5
-
-pl4.jcn4
-       - fixes; preludes, finger
-
-pl4.jcn3
-       - bf: text staff vertical align; see input/test/vertical-text.ly
-       - urg, scaled cmr8 by factor 4/5
-       - apart from end/begin of measure spacing urgs, stars-and-stripes.ly 
-         is rather cool
-
-pl4.jcn2
-       - read (cmrxx)afm for text char widths
-       - tfmtoafm.sh (quite urg)
-       - alphabet.ly
-pl 4.uu1
-       - read .scm files. No need for GUILE_LOAD_PATH
-       - .ps hack.  No need for lily.ps on the printer
-       
-       (&$^@M&@^$@^&$@ Damn TeX)
-
-
-       - bf: mudela-book -> \default_paper is obsolete.
-
-pl 3.ms1
-        - thumb-upgrade
-pl4.jcn1
-       - bf: dotted slur
-       - bf: text ssb
-       - bf: empty/unknown in ps
-
-pl 4.tca1
-       - 40% speedup executing mudela-book on mudela-book-doc.doc
-       - change of lilypond's output filenames. Given multiple input
-         files, eg. 'm.ly y.ly', output names will now be 'm.tex y.tex'
-         not 'm.tex y-1.tex', but if m.ly containts two paper definitions
-         output will be 'm.tex m-1.tex y.tex' 
-
-*******
-1.1.4
-
-pl 3.tca1
-       - accordion symbols in mf/feta-accordion.mf and
-         init/accordion-defs.ly.
-       - small changes to mudela-book and Documentation/man/mudela-book.yo
-       - mudela-book example file in Documentation/tex/mudela-book-doc.doc
-
-pl 3.jcn5
-       - bf: dashed-slur
-       - bf: LilyIdString
-       - more star fixes
-       - repeatbar fixes
-
-pl 3.jcn3
-       - mup-to-ly.py: version 0.0
-       - init/test/stars-and-stripes.ly (from star.mup)
-       - GrandStaffContext
-  
-pl 3.hwn1
-       - junked musical info from key-item
-       - tutorial fixes.
-
-pl 3.jcn2
-       - bf: font switch
-******
-1.1.3
-
-pl 2.jcn2
-
-pl 2.uu1
-       - ly2dvi.py -I fix
-       - obsoleted ly2dvi.sh
-       - removed Note_head_engraver
-
-pl 2.hwn1
-       - scm cleanups, chop-decimal
-       - scarlatti clef.
-
-pl 2.jcn1
-       - commented-out Level-2 PostScript in lily.ps (J. Buehler)
-       - moved tex/*.ps to ps/
-       - merged lilyponddefs.ps, lily-ps-defs: tex/lily.ps
-       - be sure to set:
-           export GS_LIB=$HOME/usr/src/lilypond/ps
-       - added tex and empty ps-symbols
-
-pl 1.jcn4
-       - more little website fixes
-
-********
-
-pl 2
-
-pl 1.mb1
-       - Support for cautionary accidentals. , i.e. accidentals 
-         within parantheses. Syntax: 'cis?'. Try input/test/accid.fly
-         Note that the font has changed.
-       - bf: No unnecessary warnings about time signatures
-       - Added optional second argument of \key. Set to \major or \minor 
-         to get a major or minor key. Default: major.
-       - bf: Compilation error in midi-walker.cc
-
-pl 1.jcn2
-       - fixes for htmldoc, website
-       - silly jcn1 fixes
-       - junked MODULE stuff from lily/GNUmakefile (again)
-pl 0.jcn4
-       -set:
-          export GUILE_LOAD_PATH=$HOME/usr/src/lilypond/init
-       - dstream: Score_element, Column_info
-       - -fscm debug hack: lilypond -fscm a; guile a.scm > a.tex; tex a
-       - init/lily.scm
-
-********
-
-pl 1
-pl 0.uu5
-       - fixed MIDI output.
-
-pl 0.jcn3
-       - dropped stepmake/aclocal.m4
-       - removed silly -lguile (BLA_LIBS, EXTRA_LIBS ??)
-       - added debugging output format: -fscm
-       - ly2dvi.py -I fix
-       - Documentation/tex/feta.tex
-       - doco fixes: PATCHES.yo, yodl-1.31.7
-
-pl 0.uu4
-       - Protected_scm to fixup GUILE gc
-
-pl 0.uu3
-       - more RTTI cleaning.
-
-pl 0.uu2
-       - undone type_info::before hack. (Ugh.  RTFM).
-
-pl 0.uu1
-       - more RTTI stuff: is_type_b -> type_info::before
-
-pl 0.jcn1
-pl 17.jcn7
-       - added: set*text, timesig, beam
-       - guile-1.3 is fine; my egcs-1.0.2's -O2 is broken
-pl 17.jbr1
-       - stepmake/stepmake/bin/package-zip32.sh: Updated configure statement
-         and modified win32 specific distribution file names to match
-         pl 16.hwn1 changes.
-       - scripts/ly2dvi.py: Modified search paths to match the new lilypond
-         installation tree.
-       - scripts/convert-mudela.py: Remove the an existing backup file
-         before renaming original.  This is a WINDOWS32 Python requirement.
-       - Documentation/ntweb/index.html: Updated documentation to match
-         new lilypond installation tree.
-       - lily/main.cc: Fixed LILYPONDPREFIX search paths.
-          
-  
-
-**********
-
-1.1.0
-
-pl 18.exp
-       - use C++ RTTI iso access_Xxx ()
-       - junk Graphical_lisp_element
-       - catalan.ly
-
-pl 17.tca1
-       - rewrite of mudela-book
-pl 17.ms1
-       - added \thumb (used very often in cello music) in
-         mf/feta-schrift.mf. 
-       - added /input/test/thumb.ly (example)
-
-pl 16.jcn1
-       - dashed-slur through scheme
-
-pl 15.jcn4
-       - more scheme hacks
-
-pl 15.jcn3
-       - try at scheme in Atom
-
-pl 15.jcn2 # rest of
-       - graphical-lisp-element + silly half hook-up with autuplet
-
-pl 17.jcn5
-       - stepmake pl59: templatised install (see mf/)
-       - reasonably ps/tex success (with guile-1.2):
-         * input/kortjakje.ly
-       - lots more scm stuff
-       - bf: mf/mfplain.ini
-       - stepmake pl58: guile 1.3 configure fix
-       - working font-switch:
-         guile-1.2 and -lreadline -ldl from 1.3 configure...
-
-pl 17.jcn4
-       - installable stepmake pl57
-       - urg, FIXME guile-1.3: 
-         * don't install shared libs! configure can't handle
-         * manually add: EXTRA_LIBS = -lguile -lreadline -ldl
-         * lily's truely broken, downgrade do 1.2
-
-pl 17.jcn3
-       - lots of stuff still broken, notably font selection, just try 
-          a()b
-          or so
-       - tex output support
-       - all output through scheme
-       - option: f, output-format=X
-       - geile placebox 
-       - mf/mfplain.ini
-
-pl 17.jcn2
-       - all paper output through scheme, about half way
-
-pl 17.jcn1
-       - 16.jcn1
-
diff --git a/TODO b/TODO
index f2df107e6c070008aa137ec15245653cd7f399f8..dc34df747547933ed9bc2013f0ab451def13cb2d 100644 (file)
--- a/TODO
+++ b/TODO
@@ -11,6 +11,8 @@ Grep -i for TODO, FIXME and ugh/ugr/urg.
 .* TODO
 . * use Rhythmic_head::position_i () for all Staff_referenced 
 . * .po -> .pot.
+. *  why need to run -C mf twice?
+. * junk BLURB files.
 . * setting indent to 0 with \shape fails
 . * ly2dvi : don't repeat opus if same.
 . * breaks before mmrests are favored.
@@ -20,11 +22,9 @@ Grep -i for TODO, FIXME and ugh/ugr/urg.
 . * rerun profile
 . * fix or replace feta-accordion.mf
 . * fix configure with CFLAGS or LDFLAGS, try:
-+    CFLAGS=-g LDFLAGS='-Wl,--warn-common' ./configure
-+ configure will use them while testing the compiler, but they don't
-+ appear in config.make
-
-. * Break_req handling is silly (break_forbid () + \break fucks up.)
+   CFLAGS=-g LDFLAGS='-Wl,--warn-common' ./configure
+configure will use them while testing the compiler, but they don't
+appear in config.make
 . * script engraver
 . * Chords:
 .  * Bass/inversion pitch when not part of Chord
@@ -490,19 +490,7 @@ hesitate to ask.
 . * SGML input
 
 . * Documentation
-.  * remove links to non-free SW.
 .  * internal documentation
-.  * a general paper. 
-.  * \properties
-.   * left/rightbeamcount
-.   * various other new properties.
-.  * introduction?
-.  * info?
-.  * LaTeX?
-.  * more manpages?
-.  * Doc (C) stuff of sheet music
-.  * a better format?  SGML?  TeX?  Info?
-.  * a better tutorial
 
 . * more spanners (smallish)
 .  * Glissando
@@ -515,7 +503,6 @@ hesitate to ask.
 
 . * lines:
 .  * Ledger lines, should be separate item: Ledger_lines
-.  * set different line sizes / thicknesses
 .  * beam stem showthrough, inter beam sizes (french vs german style)
 
 . * Collisions
@@ -524,7 +511,7 @@ hesitate to ask.
 
 . * Keys:
 .  * merge key{item} & localkey{item}?
-.  * spacing, national styles?
+.  * spacing
 
 . * Support for TAB
 .  * redo Notehead to allow digits as heads
@@ -533,7 +520,6 @@ hesitate to ask.
 . * should adjust stemlength for flag number.
 
 . * breaking:
-.  * caching breakpoints
 .  * saving them
 .  * specify number of lines
 
@@ -543,10 +529,8 @@ hesitate to ask.
 .  * \translator -> ?
 .  * fix \partial 
 .  * \bla {} vs \bla ; 
-.  * mix engraver hacking with music ?
 .  * \once\property  KEY = VAL
 .  * input property
-.  * abstract grammar.
 . * Figure out semicolons.
 . * <c f a>4 ?
 . * Viola mode?
@@ -564,8 +548,6 @@ hesitate to ask.
 
 .* SMALLISH PROJECTS
 
-. * fix confusing naming in Engraver vs Engraver_group_engraver (context)
-
 . * A range for context errors (eg. mark both { and }. )
 
 . * lyric in staff  (sharpsharp in staff, text below)
diff --git a/VERSION b/VERSION
index 273303e4f092b6a67a3085a2ba47c3aeb991255c..a29c25c1b18112cdf9cbfb526f6f2ef851ede833 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=2
-PATCH_LEVEL=14
-MY_PATCH_LEVEL=jcn1
+PATCH_LEVEL=15
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index d7e8e972d8d7a4284cf328ec13bf195f96025b90..ca9d6c5c9f4f4dfa3ba3194606b29e45e70d2318 100755 (executable)
@@ -1,10 +1,10 @@
 #!/bin/csh
 
 # env. vars for the C-shell.
-
 # set environment for LilyPond.  To be installed in /etc/profile.d/
-setenv GS_LIB "@datadir@/ps"
+
 setenv GS_FONTPATH "@datadir@/afm"
+
 # bit silly. for ly2dvi, overrules compiled-in datadir...
 setenv LILYPONDPREFIX "@datadir@"
 
@@ -19,10 +19,5 @@ if ($?TEXINPUTS) then
 else
         setenv TEXINPUTS "/usr/share/lilypond/tex::"
 endif
-if ($?GUILE_LOAD_PATH) then
-        setenv GUILE_LOAD_PATH "/usr/share/lilypond/scm:${GUILE_LOAD_PATH}"
-else
-        setenv GUILE_LOAD_PATH "/usr/share/lilypond/scm"
-endif
 
 
index 6aebf7b701a2b4a7767d30775202d452675efffd..f2083862dea1dfe89f225c2defb5d81787cd8998 100755 (executable)
@@ -2,7 +2,6 @@
 
 
 # set environment for LilyPond.  To be installed in /etc/profile.d/
-GS_LIB="@datadir@/ps"
 GS_FONTPATH="@datadir@/afm:@datadir@/pfa"
 
 # bit silly. for ly2dvi, overrules compiled-in datadir...
@@ -12,11 +11,8 @@ LILYPONDPREFIX="@datadir@"
 MFINPUTS="@datadir@/mf:"${MFINPUTS:=":"}
 TEXINPUTS="@datadir@/tex:@datadir@/ps:"${TEXINPUTS:=":"}
 
-GUILE_LOAD_PATH="@datadir@/scm:$GUILE_LOAD_PATH"
-
-export GUILE_LOAD_PATH LILYINCLUDE LILYPONDPREFIX MFINPUTS TEXINPUTS GS_LIB GS_FONTPATH
+export LILYINCLUDE LILYPONDPREFIX MFINPUTS TEXINPUTS GS_LIB GS_FONTPATH
 
        
-# echo  $LILYINCLUDE $MFINPUTS $TEXINPUTS $GS_LIB $GS_FONTPATH
 
 
index 740dafc961371d0f412c0184c07d93230df68610..929f049b15c6180b7147c024b27440d936227b23 100644 (file)
@@ -3,8 +3,6 @@
 depth = ..
 
 NAME = debian
-BLURBS = BLURB
-AT_FILES = $(BLURBS) # 
 at-dir = $(outdir)/
 at-ext =
 
index 07d913fd21c587bbfd4925f6b22b3ccb88c02583..0b48d3e3e1d745af3ea37cbecfdc5a64e3050e97 100644 (file)
@@ -9,10 +9,10 @@ Architecture: any
 Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.990310-1)
 Recommends: python-base (>= 1.5.2-4), tetex-base (>= 0.9.990311-1), tetex-extra (>= 0.9.990311-1)
 Conflicts: musixtex-fonts, tetex-base (<< 0.9)
-Description: A program for printing sheet music.
- LilyPond is a music typesetter.  It produces beautiful sheet music
- using a high level description file as input.  LilyPond is part of 
- the GNU Project.
+Description: A program for printing sheet music. LilyPond is a music typesetter.  It produces beautiful sheet music
+using a high level description file as input.  LilyPond is part of 
+the GNU Project.
+
  .
   URLs: http://www.cs.uu.nl/~hanwen/lilypond/
         http://www.xs4all.nl/~jantien/lilypond/
index 47e33d963d6e52d781b97f471bbfa228870c0f7f..0b48d3e3e1d745af3ea37cbecfdc5a64e3050e97 100644 (file)
@@ -9,7 +9,10 @@ Architecture: any
 Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.990310-1)
 Recommends: python-base (>= 1.5.2-4), tetex-base (>= 0.9.990311-1), tetex-extra (>= 0.9.990311-1)
 Conflicts: musixtex-fonts, tetex-base (<< 0.9)
-Description: A program for printing sheet music.@BLURB@
+Description: A program for printing sheet music. LilyPond is a music typesetter.  It produces beautiful sheet music
+using a high level description file as input.  LilyPond is part of 
+the GNU Project.
+
  .
   URLs: http://www.cs.uu.nl/~hanwen/lilypond/
         http://www.xs4all.nl/~jantien/lilypond/
index 07d913fd21c587bbfd4925f6b22b3ccb88c02583..0b48d3e3e1d745af3ea37cbecfdc5a64e3050e97 100644 (file)
@@ -9,10 +9,10 @@ Architecture: any
 Depends: ${shlibs:Depends}, tetex-bin (>= 0.9.990310-1)
 Recommends: python-base (>= 1.5.2-4), tetex-base (>= 0.9.990311-1), tetex-extra (>= 0.9.990311-1)
 Conflicts: musixtex-fonts, tetex-base (<< 0.9)
-Description: A program for printing sheet music.
- LilyPond is a music typesetter.  It produces beautiful sheet music
- using a high level description file as input.  LilyPond is part of 
- the GNU Project.
+Description: A program for printing sheet music. LilyPond is a music typesetter.  It produces beautiful sheet music
+using a high level description file as input.  LilyPond is part of 
+the GNU Project.
+
  .
   URLs: http://www.cs.uu.nl/~hanwen/lilypond/
         http://www.xs4all.nl/~jantien/lilypond/
index 8a2efcb6fdef6faf4eb0c4166b949d2575955462..a9baeab836c58c7f80c8f4c11c30e380906b24e1 100644 (file)
@@ -129,6 +129,25 @@ public:
   Array<void*>::empty;
   Array<void*>::reverse;
   Array<void*>::tighten_maxsize;
+
+  T *& boundary (int d, int i)
+  {
+    assert (d);
+    if (d == 1)
+      return top (i);
+    else
+      return elem_ref (i);
+  }
+  T * boundary (int d, int i)const
+  {
+    assert (d);
+    if (d == 1)
+      return top (i);
+    else
+      return elem_ref (i);
+  }
+
+  
   T ** access_array () const
     {
       return (T**) Array<void*>::access_array();
index 5564617f7796a21e8830332aaa249963b088cfa4..2ad2caf1910b7169267b94ffc180595efd0669ff 100644 (file)
@@ -15,9 +15,6 @@ global = \notes {
        \paper {
                \translator{ 
                        \StaffContext
-
-                       % other core dump when this is removed?
-                       \remove "Time_signature_engraver";
                }
        }
 }
index e4bbe8d76e540131a0d87e915f2daa8eee38905c..d16dadc5e60cac95ba3a96c9a71617f9b5a8d513 100644 (file)
@@ -164,10 +164,13 @@ handLyrics = \notes \context GrandStaff <
                        \GrandStaffContext
                        \accepts "Lyrics";
                }
-%              castingalgorithm = \Wordwrap;
+               \translator {
+                       \LyricsContext
+                       \consists "Bar_engraver";
+               }
        }
        \midi {}
 }
 
 
-\version "1.2.0";
+\version "1.2.14";
diff --git a/input/test/break.ly b/input/test/break.ly
new file mode 100644 (file)
index 0000000..ce65bb1
--- /dev/null
@@ -0,0 +1,12 @@
+
+
+
+\score{
+       \notes\context Voice{
+       \emptyText
+       c1 c1^"no break after 2nd note"  \nobreak c1 c1
+         
+         c1^"break after this" \break c1 c1 
+       }
+       \paper { linewidth = 4.0\cm;}
+}
diff --git a/input/test/lyrics-bar.ly b/input/test/lyrics-bar.ly
new file mode 100644 (file)
index 0000000..0e714c3
--- /dev/null
@@ -0,0 +1,30 @@
+
+\score {
+
+       \context StaffGroup <
+        \notes \context Staff { b1 b1 \bar "|."; }
+        \lyrics\context Lyrics <
+               \context BarLV  { thisContextHasBarEngraver1 added }
+                \context LyricVoice { this4 one has no barEngraverAddedToContext1 }
+               >
+        \notes \context Staff = SB { b1 b1 }
+
+               >
+
+       \paper {
+               linewidth = -1.0\cm;
+               \translator {
+                       \LyricsContext
+                       \consists "Bar_engraver";
+                       \accepts "BarLV";
+               }
+               \translator {
+                       \LyricsVoiceContext
+                       \consists "Bar_engraver";
+                       \name "BarLV";
+               }
+               \translator {
+                       \LyricsVoiceContext
+               }
+       }
+}
diff --git a/input/test/repeat-semifold.ly b/input/test/repeat-semifold.ly
deleted file mode 100644 (file)
index d059595..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-
-%  no alts.
-\score { \notes
-  \relative c'' {
-\repeat volta 3 { c^"3$\\times$ 0alt" d }
-% less alts than body
-\repeat volta 4 { c^"4$\\times$ 2alt" d } \alternative { e f }
-
-% more alts than body
-\repeat volta 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } 
-}}
-
diff --git a/input/test/repeat-volta.ly b/input/test/repeat-volta.ly
new file mode 100644 (file)
index 0000000..46cea92
--- /dev/null
@@ -0,0 +1,17 @@
+
+%  no alts.
+\score { \notes
+  \relative c'' {
+\repeat volta 3 { c^"3$\\times$ 0alt" d }
+% less alts than body
+\repeat volta 4 { c^"4$\\times$ 2alt" d } \alternative { e f }
+
+% more alts than body
+\repeat volta 2 { c^"2$\\times$ 3alt" d } \alternative { e f g } 
+}
+
+       \midi{}
+       \paper{}
+
+}
+
index 638a618ace06d76ded5c554a6304a0fe3bf1b7fa..29df5200624321709833809c90b5639ad93adc05 100644 (file)
@@ -20,7 +20,6 @@ $(outdir)/my-lily-parser.o: $(outdir)/parser.hh
 $(outdir)/my-lily-lexer.o: $(outdir)/parser.hh
 $(outdir)/lexer.o: $(outdir)/parser.hh
 $(outdir)/lily-version.o: $(outdir)/version.hh
-$(outdir)/main.o: $(outdir)/BLURB.hh 
 
 
 
index 28fc85fa650606da1c1123fda1369a11f689375c..69b9a4f6ed7bb3295643980b454ab19b533c41ca 100644 (file)
@@ -194,7 +194,6 @@ Auto_beam_engraver::create_beam_p ()
        */
       if ((*stem_l_arr_p_)[i]->beam_l_)
        {
-         delete beam_p;
          return 0;
        }
       beam_p->add_stem ((*stem_l_arr_p_)[i]);
index 84ada321e8157fb34bfb7e00f882fe9ace962f5a..2aa490405442f7d750a4c35584544871e8043b80 100644 (file)
@@ -6,13 +6,14 @@
   (c)  1997, 1998, 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
+
 #include "score-engraver.hh"
 #include "bar-engraver.hh"
 #include "staff-bar.hh"
 #include "musical-request.hh"
 #include "multi-measure-rest.hh"
 #include "command-request.hh"
-#include "time-description.hh"
+#include "timing-engraver.hh"
 #include "engraver-group-engraver.hh"
 #include "warn.hh"
 
@@ -22,20 +23,6 @@ Bar_engraver::Bar_engraver()
   do_post_move_processing();
 }
 
-bool
-Bar_engraver::do_try_music (Music*r_l)
-{
-  if (Bar_req  * b= dynamic_cast <Bar_req *> (r_l))
-    {
-      if (bar_req_l_ && bar_req_l_->equal_b (b)) // huh?
-       return false;
-      
-      bar_req_l_ = b;
-      return true;
-    }
-  
-  return false;
-}
 
 
 
@@ -68,7 +55,7 @@ Bar_engraver::create_bar ()
          bar_p_->set_elt_property (bar_size_scm_sym, 
                                    gh_double2scm (Real(prop)));
        }
-      announce_element (Score_element_info (bar_p_, bar_req_l_));
+      announce_element (Score_element_info (bar_p_, 0));
     }
 }
 
@@ -103,8 +90,6 @@ Bar_engraver::request_bar (String requested_type)
 void 
 Bar_engraver::do_creation_processing ()
 {
-  create_bar ();
-  bar_p_->type_str_ = "";
 }
 
 void
@@ -120,26 +105,15 @@ Bar_engraver::do_removal_processing ()
 void
 Bar_engraver::do_process_requests()
 {  
-  Time_description const *time = get_staff_info().time_C_;
-  if (bar_req_l_) 
-    {
-      create_bar ();    
-      bar_p_->type_str_ = bar_req_l_->type_str_;
-    }
-  else if (!now_mom ())
-    {
-      create_bar ();
-      bar_p_->type_str_ = "|";
-    }
-  else 
+  Translator * t = daddy_grav_l  ()->get_simple_translator ("Timing_engraver");
+
+  Timing_engraver * te = dynamic_cast<Timing_engraver*>(t);
+  String which = (te) ? te->which_bar () : "";
+
+  if (which.length_i ())
     {
-      Scalar nonauto = get_property ("barNonAuto", 0);
-      if (!nonauto.to_bool ())
-       {
-         Scalar always = get_property ("barAlways", 0);
-         if ((time && !time->whole_in_measure_) || always.to_bool ())
-           create_bar ();
-       }
+      create_bar();
+      bar_p_->type_str_ = which;
     }
   
   if (!bar_p_)
@@ -169,14 +143,6 @@ Bar_engraver::do_pre_move_processing()
     }
 }
 
-void
-Bar_engraver::do_post_move_processing()
-{
-  bar_req_l_ = 0;
-}
-
-
-
 ADD_THIS_TRANSLATOR(Bar_engraver);
 
 
diff --git a/lily/bar-req-collect-engraver.cc b/lily/bar-req-collect-engraver.cc
new file mode 100644 (file)
index 0000000..2eafaed
--- /dev/null
@@ -0,0 +1,11 @@
+/*   
+  bar-req-collect-engraver.cc --  implement Bar_req_collect_engraver
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "command-request.hh"
+
index 95ffc72519901468fab39f6da3de6228c792feff..f21d68fbac833ccd7ef1201f14d43c94fd59a401 100644 (file)
@@ -76,7 +76,7 @@ Bar::do_pre_processing ()
          break;
        }
     }
-  if (remove_elt_property (at_line_start_scm_sym)!= SCM_BOOL_F
+  if (remove_elt_property (at_line_start_scm_sym) != SCM_BOOL_F        // UGR.
       && (break_status_dir () == RIGHT) && (type_str_ == ""))
     {
       type_str_ = "|";
index b34d329d94dcaaeccae1e313793c72c349e41633..5ba4ed9306dc1fc0e05d7bf7d7ce9fe5f8b733e7 100644 (file)
@@ -110,7 +110,7 @@ Beam_engraver::do_process_requests ()
       prop = get_property ("autoInterstaffKneeGap", 0);
       if (prop.isnum_b ()) 
        beam_p_->set_elt_property (auto_interstaff_knee_gap_scm_sym, gh_int2scm( prop));
-      
+
       prop = get_property ("beamquantisation", 0);
       if (prop.isnum_b ()) 
        beam_p_->quantisation_ = (Beam::Quantisation)(int)prop;
index 92a92050a2fc019dcc24bce56191e284d71070c3..83d83260aed0c335742e73dd8131beb00e0fc2b6 100644 (file)
@@ -273,13 +273,12 @@ Beam::get_default_dir () const
      [Ross] states that the majority of the notes dictates the
      direction (and not the mean of "center distance")
 
-     But is that because it really looks better, or because he
-     wants to provide some real simple hands-on rules.
+     But is that because it really looks better, or because he wants
+     to provide some real simple hands-on rules?
      
      We have our doubts, so we simply provide all sensible alternatives.
 
-     If dir is not determined: up (see stem::get_default_dir ())
-  */
+     If dir is not determined: up (see stem::get_default_dir ()) */
 
   Direction beam_dir;
   Direction neutral_dir = (Direction)(int)paper_l ()->get_var ("stem_default_neutral_direction");
@@ -338,7 +337,6 @@ void
 Beam::solve_slope ()
 {
   assert (sinfo_.size () > 1);
-  DEBUG_OUT << "Beam::solve_slope: \n";
 
   Least_squares l;
   for (int i=0; i < sinfo_.size (); i++)
@@ -357,8 +355,8 @@ Beam::check_stemlengths_f (bool set_b)
 {
   Real interbeam_f = paper_l ()->interbeam_f (multiple_i_);
 
-  Real beam_f = paper_l ()->beam_thickness_f ();
-  Real staffline_f = paper_l ()->rule_thickness ();
+  Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym);;
+  Real staffline_f = paper_l ()-> get_var ("stafflinethickness");
   Real epsilon_f = staffline_f / 8;
   Real dy_f = 0.0;
   for (int i=0; i < sinfo_.size (); i++)
@@ -524,8 +522,8 @@ Beam::quantise_dy ()
 
   Real interline_f = stems_[0]->staff_line_leading_f ();
   Real internote_f = interline_f / 2;
-  Real staffline_f = paper_l ()->rule_thickness ();
-  Real beam_f = paper_l ()->beam_thickness_f ();
+  Real staffline_f = paper_l ()->get_var ("stafflinethickness");
+  Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym);;
 
   Real dx_f = stems_.top ()->hpos_f () - stems_[0]->hpos_f ();
 
@@ -550,9 +548,6 @@ Beam::quantise_dy ()
   slope_f_ = (quanty_f / dx_f) / internote_f * sign (slope_f_);
 }
 
-static int test_pos = 0;
-
-
 /*
   
   Prevent interference from stafflines and beams.  See Documentation/tex/fonts.doc
@@ -566,7 +561,7 @@ Beam::quantise_left_y (bool extend_b)
    if extend_b then stems must *not* get shorter
    */
 
-  if (quantisation_ <= NONE)
+  if (quantisation_ == NONE)
     return;
 
   /*
@@ -582,8 +577,8 @@ Beam::quantise_left_y (bool extend_b)
 
   Real space = stems_[0]->staff_line_leading_f ();
   Real internote_f = space /2;
-  Real staffline_f = paper_l ()->rule_thickness ();
-  Real beam_f = paper_l ()->beam_thickness_f ();
+  Real staffline_f = paper_l ()->get_var ("stafflinethickness");
+  Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym);;
 
   /*
     [TODO]
@@ -593,7 +588,6 @@ Beam::quantise_left_y (bool extend_b)
 
   Real straddle = 0;
   Real sit = beam_f / 2 - staffline_f / 2;
-  Real inter = space / 2;
   Real hang = space - beam_f / 2 + staffline_f / 2;
 
   /*
@@ -604,7 +598,8 @@ Beam::quantise_left_y (bool extend_b)
     For simplicity, we'll assume dir = UP and correct if 
     dir = DOWN afterwards.
    */
-
+  // isn't this asymmetric ? --hwn
+  
   // dim(left_y_) = internote
   Real dy_f = dir_ * left_y_ * internote_f;
 
@@ -612,51 +607,26 @@ Beam::quantise_left_y (bool extend_b)
   Real beamdy_f = beamdx_f * slope_f_ * internote_f;
 
   Array<Real> allowed_position;
-  if (quantisation_ != TEST)
+  if (quantisation_ <= NORMAL) 
     {
-      if (quantisation_ <= NORMAL) 
-       {
-         if ((multiple_i_ <= 2) || (abs (beamdy_f) >= staffline_f / 2))
-           allowed_position.push (straddle);
-         if ((multiple_i_ <= 1) || (abs (beamdy_f) >= staffline_f / 2))
-           allowed_position.push (sit);
-         allowed_position.push (hang);
-       }
-      else
-        // TODO: check and fix TRADITIONAL
-       {
-         if ((multiple_i_ <= 2) || (abs (beamdy_f) >= staffline_f / 2))
-           allowed_position.push (straddle);
-         if ((multiple_i_ <= 1) && (beamdy_f <= staffline_f / 2))
-           allowed_position.push (sit);
-         if (beamdy_f >= -staffline_f / 2)
-           allowed_position.push (hang);
-       }
+      if ((multiple_i_ <= 2) || (abs (beamdy_f) >= staffline_f / 2))
+       allowed_position.push (straddle);
+      if ((multiple_i_ <= 1) || (abs (beamdy_f) >= staffline_f / 2))
+       allowed_position.push (sit);
+      allowed_position.push (hang);
     }
   else
+    // TODO: check and fix TRADITIONAL
     {
-      if (test_pos == 0)
-        {
-       allowed_position.push (hang);
-       cout << "hang" << hang << "\n";
-       }
-      else if (test_pos==1)
-        {
+      if ((multiple_i_ <= 2) || (abs (beamdy_f) >= staffline_f / 2))
        allowed_position.push (straddle);
-       cout << "straddle" << straddle << endl;
-       }
-      else if (test_pos==2)
-        {
+      if ((multiple_i_ <= 1) && (beamdy_f <= staffline_f / 2))
        allowed_position.push (sit);
-       cout << "sit" << sit << endl;
-       }
-      else if (test_pos==3)
-        {
-       allowed_position.push (inter);
-       cout << "inter" << inter << endl;
-       }
+      if (beamdy_f >= -staffline_f / 2)
+       allowed_position.push (hang);
     }
 
+
   Interval iv = quantise_iv (allowed_position, space, dy_f);
 
   Real quanty_f = dy_f - iv[SMALLER] <= iv[BIGGER] - dy_f ? iv[SMALLER] : iv[BIGGER];
@@ -670,14 +640,14 @@ Beam::quantise_left_y (bool extend_b)
 void
 Beam::set_stemlens ()
 {
-  Real staffline_f = paper_l ()->rule_thickness ();
+  Real staffline_f = paper_l ()->get_var ("stafflinethickness");
   // enge floots
   Real epsilon_f = staffline_f / 8;
 
 
   // je bent zelf eng --hwn.
   Real dy_f = check_stemlengths_f (false);
-  for (int i = 0; i < 2; i++)
+  for (int i = 0; i < 2; i++)  // 2 ?
     { 
       left_y_ += dy_f * dir_;
       quantise_left_y (dy_f);
@@ -687,9 +657,6 @@ Beam::set_stemlens ()
          break;
        }
     }
-
-  test_pos++;
-  test_pos %= 4;
 }
 
 void
@@ -730,6 +697,8 @@ Beam::do_add_processing ()
 
 /*
   beams to go with one stem.
+
+  clean  me up.
   */
 Molecule
 Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
@@ -738,16 +707,15 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
       (prev && !(prev->hpos_f () < here->hpos_f ())))
       programming_error ("Beams are not left-to-right");
 
-  Real staffline_f = paper_l ()->rule_thickness ();
+  Real staffline_f = paper_l ()->get_var ("stafflinethickness");
   Real interbeam_f = paper_l ()->interbeam_f (multiple_i_);
 
   Real internote_f = here->staff_line_leading_f ()/2;
-  Real beam_f = paper_l ()->beam_thickness_f ();
+  Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym);;
 
   Real dy = interbeam_f;
   Real stemdx = staffline_f;
   Real sl = slope_f_* internote_f;
-  lookup_l ()->beam (sl, 20 PT, 1 PT);
 
   Molecule leftbeams;
   Molecule rightbeams;
@@ -759,7 +727,7 @@ Beam::stem_beams (Stem *here, Stem *next, Stem *prev) const
   else if (here->type_i ()== 1)
     nw_f = paper_l ()->get_var ("wholewidth");
   else if (here->type_i () == 2)
-    nw_f = paper_l ()->note_width () * 0.8;
+    nw_f = paper_l ()->get_var ("notewidth") * 0.8;
   else
     nw_f = paper_l ()->get_var ("quartwidth");
 
index 7a7a1f683398e097795641023c4ca1c742d20959..9acb9004e918c948c97ffa9e4c618a8975dde35a 100644 (file)
@@ -33,7 +33,7 @@
 
 
 /*
-  UGH. Clean up debugging junk.
+  UGH. Remove debugging junk.
   */
 
 
@@ -232,7 +232,6 @@ Bezier_bow::calc_f (Real height)
 {
   transform ();
   calc_default (height);
-
   calc_bezier ();
 
   Real dy = check_fit_f ();
index fd5955fc3845a604f55641acf4e0d33e65a6794d..40d7b84e9717784a763f397231df14dbc48dbfba 100644 (file)
@@ -31,7 +31,7 @@ Break_algorithm::find_break_indices () const
     if (all[i]->breakable_b ())
       retval.push (i);
 
-  if (linelength <=0)
+  if (linewidth_f_ <=0)
     while (retval.size () >2)
       retval.del (1);
 
@@ -49,7 +49,7 @@ Break_algorithm::find_breaks () const
     if (all[i]->breakable_b ())
       retval.push (all[i]);
 
-  if (linelength <=0)
+  if (linewidth_f_ <=0)
     while (retval.size () >2)
       retval.del (1);
 
@@ -86,31 +86,18 @@ Break_algorithm::generate_spacing_problem (Line_of_cols curline, Interval line)
 Break_algorithm::Break_algorithm ()
 {
   pscore_l_ = 0;
-  linelength = 0;
+  linewidth_f_ = 0;
 }
 
 void
 Break_algorithm::set_pscore (Paper_score*s)
 {
   pscore_l_ = s;
-  linelength = s->paper_l_->linewidth_f ();
+  linewidth_f_ = s->paper_l_->get_var("linewidth");
   do_set_pscore ();
 }
 
-bool
-Break_algorithm::feasible (Line_of_cols curline) const
-{
-  if (linelength <=  0)
-    return true;
 
-  for (int i=0; i < curline.size (); i++)
-    {
-      if (i && i < curline.size () -1
-         && ((dynamic_cast<Score_column*>(curline[i]))->break_penalty_i () >= Break_req::FORCE))
-       return false;
-    }
-  return true;
-}
 
 void
 Break_algorithm::problem_OK () const
index a391411db9fa803e76818b090ee7149745722b7a..32e573a68c17605a7590fae66daab8da8c0068ff 100644 (file)
@@ -139,8 +139,6 @@ Break_align_item::do_pre_processing()
                                 
 }
 
-
-
 Break_align_item::Break_align_item ()
 {
   stacking_dir_ = RIGHT;
index c5424710cde4e17b39f8f9582c5fde99b5cdfb8b..c8e97cc9987d3f1932c9fd2b018a4655231dc7ee 100644 (file)
@@ -33,7 +33,7 @@ Collision::do_pre_processing()
   Array<Shift_tup> hand (forced_shift ());
   Link_array<Note_column> done;
   
-  Real wid = paper_l ()->note_width ();
+  Real wid = paper_l ()->get_var ("collision_note_width");
   for (int i=0; i < hand.size (); i++)
     {
       hand[i].e1_->translate_axis (hand[i].e2_ *wid, X_AXIS);
index 91c616fcb079c0b43163f19288693bad34a0deb0..eb4c9837010048e5bb803d60157566219075a734 100644 (file)
@@ -7,7 +7,6 @@
 */
 
 #include "column-x-positions.hh"
-#include "simple-spacer.hh"    // ugh
 #include "real.hh"
 #include "debug.hh"
 
@@ -15,7 +14,6 @@ Column_x_positions::Column_x_positions()
 {
   energy_f_ = infinity_f;
   satisfies_constraints_b_ = false;
-  spacer_l_ =0;
 }
 
 Column_x_positions::~Column_x_positions()
@@ -23,11 +21,6 @@ Column_x_positions::~Column_x_positions()
 
 }
 
-void
-Column_x_positions::add_paper_column (Paper_column*c)
-{
-  cols_.push (c);
-}
 
 void
 Column_x_positions::print() const
index ce13bab7fee1e429e88eecf67c5d657361111c58..35f0cdac4c10295d10d1d83e289f996350405c1d 100644 (file)
@@ -157,7 +157,6 @@ Key_change_req::Key_change_req ()
 
 Break_req::Break_req ()
 {
-  penalty_i_ = 0;
 }
 
 Mark_req::Mark_req (String s)
index 825715087278c8bec9a73018639dfbda8cf7ecd7..01f2ba5a775c7343a72a87630fa447d8fc21ee41 100644 (file)
@@ -52,7 +52,7 @@ Crescendo::get_symbol () const
   
 
   bool continued = broken[Direction (-grow_dir_)];
-  Real height = paper_l()->staffheight_f () / 6;
+  Real height = paper_l()->get_var ("crescendo_height");
   Real thick = paper_l ()->get_var ("crescendo_thickness");
 
   return Molecule (lookup_l ()->hairpin (w_dim, height, thick, grow_dir_ < 0, continued));
diff --git a/lily/cross-staff.cc b/lily/cross-staff.cc
new file mode 100644 (file)
index 0000000..47300e6
--- /dev/null
@@ -0,0 +1,44 @@
+#include "cross-staff.hh"
+#include "item.hh"
+#include "align-element.hh"
+#include "spanner.hh"
+#include "warn.hh"
+
+Real
+calc_interstaff_dist (Item const *item, Spanner const *span)
+{
+  Real interstaff = 0.0; 
+  Graphical_element *common = item->common_refpoint (span, Y_AXIS);
+  Align_element * align = dynamic_cast<Align_element*> (common);
+  if (align && align->axis() == Y_AXIS)
+    {
+      if (align->threshold_interval_[MIN] != 
+         align->threshold_interval_[MAX])
+       warning (_ ("minVerticalAlign != maxVerticalAlign: cross staff spanners may be broken"));
+
+      interstaff = align->threshold_interval_[MIN];
+
+      Graphical_element const * span_refpoint = span;
+      while (span_refpoint->parent_l  (Y_AXIS) != common)
+       span_refpoint = span_refpoint->parent_l (Y_AXIS);
+
+      Graphical_element const * note_refpoint = item;
+      while (note_refpoint->parent_l (Y_AXIS) != common)
+       note_refpoint = note_refpoint->parent_l (Y_AXIS);
+
+      int span_prio =
+       align->get_priority ((Score_element*) dynamic_cast<Score_element const*> (span_refpoint));
+      int item_prio =
+       align->get_priority ((Score_element*) dynamic_cast<Score_element  const *> (note_refpoint));
+
+      /*
+       our staff is lower -> interstaff *= -1
+       */
+
+      if (span_prio < item_prio)
+       interstaff *= -1;
+      return interstaff;
+    }
+  else return 0.0;
+}
+
diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc
deleted file mode 100644 (file)
index aebad06..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-  encompass-info.cc -- implement Encompass_info
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
-
-*/
-#include "dimension-cache.hh"
-#include "proto.hh"
-#include "stem.hh"
-#include "note-column.hh"
-#include "paper-def.hh"
-#include "encompass-info.hh"
-#include "slur.hh"
-#include "staff-symbol.hh"
-#include "note-head.hh"
-#include "debug.hh"
-#include "align-element.hh"
-
-Encompass_info::Encompass_info ()
-{
-}
-
-Encompass_info::Encompass_info (Note_column const* note_column, Direction dir, Slur const* slur_l)
-{
-  interstaff_f_ = 0;
-  
-  Stem* stem_l = note_column->stem_l_;
-  if (!stem_l)
-    {
-      warning (_ ("Slur over rest?"));
-      o_[X_AXIS] = note_column->hpos_f ();
-      o_[Y_AXIS] = note_column->extent (Y_AXIS)[dir];
-      return; 
-    }
-  
-  o_[X_AXIS] = stem_l->hpos_f ();
-
-  /*
-    Simply set x to middle of notehead
-   */
-
-  o_[X_AXIS] -= 0.5 * stem_l->dir_ * note_column->extent (X_AXIS).length ();
-
-  if ((stem_l->dir_ == dir)
-      && !stem_l->extent (Y_AXIS).empty_b ())
-    {
-      o_[Y_AXIS] = stem_l->extent (Y_AXIS)[dir];
-    }
-  else
-    {
-      o_[Y_AXIS] = note_column->extent (Y_AXIS)[dir];
-    }
-
-  /*
-   leave a gap: slur mustn't touch head/stem
-   */
-  o_[Y_AXIS] += dir * slur_l->paper_l ()->get_var ("slur_y_free");
-
-  Graphical_element *common = stem_l->common_refpoint (slur_l, Y_AXIS);
-  Align_element * align = dynamic_cast<Align_element*> (common);
-  if (align && align->axis() == Y_AXIS)
-    {
-      if (align->threshold_interval_[MIN] != 
-         align->threshold_interval_[MAX])
-       warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"));
-
-      interstaff_f_ = align->threshold_interval_[MIN];
-
-      Graphical_element const * slur_refpoint = slur_l;
-      while (slur_refpoint->parent_l  (Y_AXIS) != common)
-       slur_refpoint = slur_refpoint->parent_l (Y_AXIS);
-
-      Graphical_element const * note_refpoint = note_column;
-      while (note_refpoint->parent_l (Y_AXIS) != common)
-       note_refpoint = note_refpoint->parent_l (Y_AXIS);
-
-      int slur_prio =
-       align->get_priority ((Score_element*) dynamic_cast<Score_element const*> (slur_refpoint));
-      int stem_prio =
-       align->get_priority ((Score_element*) dynamic_cast<Score_element  const *> (note_refpoint));
-
-      /*
-       our staff is lower -> interstaff_f_ *= -1
-       */
-
-      if (slur_prio < stem_prio)
-       interstaff_f_ *= -1;
-      o_[Y_AXIS] += interstaff_f_;
-    }
-}
index f8ed5e5d6a726911dbba088648edcfef6f26f70f..6121e82eb1a5398a97d3b3f5230e0f3bcdf2c304 100644 (file)
@@ -12,6 +12,7 @@
 #include "engraver-group-engraver.hh"
 #include "debug.hh"
 #include "paper-def.hh"
+#include "score-element.hh"
 
 void
 Engraver::fill_staff_info (Staff_info&)
index dc7f4c22aa4e2792164328f681fb02909d947e7a..2cedcea834f1e704d8e55b095fa4c28b1aeb5102 100644 (file)
@@ -61,7 +61,7 @@ void
 Extender_spanner::do_post_processing ()
 {
   // UGH
-  Real nw_f = paper_l ()->note_width () * 0.8;
+  Real gap = paper_l ()->get_realvar (interline_scm_sym);
 
   Direction d = LEFT;
   do
@@ -71,7 +71,7 @@ Extender_spanner::do_post_processing ()
       if (d == LEFT)
         dx_f_drul_[d] += t->extent (X_AXIS).length ();
       else
-       dx_f_drul_[d] -= d * nw_f / 2;
+       dx_f_drul_[d] -= d * gap / 2;
     }
   while (flip(&d) != LEFT);
 }
index 533092aeeee15c6ce705d8e1cf96224b8c771d53..63a6adc624f4ec6438388dd516d184592ab1293e 100644 (file)
@@ -72,29 +72,17 @@ Gourlay_breaking::do_solve () const
        */
       int minimal_start_idx = -1;
       Column_x_positions minimal_sol;
+      Column_x_positions backup_sol;
+      
       Real minimal_demerits = infinity_f;
 
       for (int start_idx = break_idx; start_idx--;)
        {
-#if 0
-         if  (break_idx - start_idx > max_measures_i_) 
-           break;
-#endif
-         
-         if (optimal_paths[start_idx].prev_break_i_ < 0
-             && optimal_paths[start_idx].line_config_.energy_f_)
-           continue;
-
-
-         
          Line_of_cols line = all.slice (breaks[start_idx], breaks[break_idx]+1);
   
          line[0] = dynamic_cast<Paper_column*>(line[0]->find_broken_piece (RIGHT));
          line.top () =  dynamic_cast<Paper_column*>(line.top ()->find_broken_piece (LEFT));
            
-         if (!feasible (line))
-           break;
-           
          Column_x_positions cp;
          cp.cols_ = line;
 
@@ -103,13 +91,19 @@ Gourlay_breaking::do_solve () const
          Simple_spacer * sp = generate_spacing_problem (line, line_dims);
          sp->solve (&cp);
          delete sp;
-         
+
+         if (start_idx == break_idx - 1)
+           backup_sol = cp;    // in case everything fucks up
          if (!cp.satisfies_constraints_b_)
            break;
 
-         Real this_demerits 
-           = combine_demerits (optimal_paths[start_idx].line_config_, cp)
-           + optimal_paths[start_idx].demerits_f_;
+         
+         Real this_demerits;
+         if (optimal_paths[start_idx].demerits_f_ >= infinity_f)
+           this_demerits = infinity_f;
+         else
+           this_demerits = combine_demerits (optimal_paths[start_idx].line_config_, cp)
+             + optimal_paths[start_idx].demerits_f_;
 
          if (this_demerits < minimal_demerits) 
            {
@@ -119,19 +113,20 @@ Gourlay_breaking::do_solve () const
            }
        }
 
+      int prev =break_idx - 1;
       if (minimal_start_idx < 0) 
        {
-         optimal_paths[break_idx].prev_break_i_ = -1;
-         optimal_paths[break_idx].line_config_.energy_f_ = infinity_f;
+         optimal_paths[break_idx].demerits_f_ = infinity_f;
+         optimal_paths[break_idx].line_config_ = backup_sol;     
        }
       else 
        {
-         optimal_paths[break_idx].prev_break_i_ = minimal_start_idx;
+         prev = minimal_start_idx;
          optimal_paths[break_idx].line_config_ = minimal_sol;
          optimal_paths[break_idx].demerits_f_ = minimal_demerits;
-         optimal_paths[break_idx].line_i_ =
-           optimal_paths[minimal_start_idx].line_i_ + 1;
        }
+      optimal_paths[break_idx].prev_break_i_ = prev;
+      optimal_paths[break_idx].line_i_ = optimal_paths[prev].line_i_ + 1;
 
       if (! (break_idx % HAPPY_DOTS_I))
        *mlog << "[" << break_idx << "]" << flush;
@@ -150,17 +145,14 @@ Gourlay_breaking::do_solve () const
   for (int i = optimal_paths.size ()-1; i> 0;) 
     {
       final_breaks.push (i);
-      assert (i > optimal_paths[i].prev_break_i_);
-
-      // there was no "feasible path"
-      if (!optimal_paths[i].line_config_.config_.size ()) {
-       final_breaks.set_size (0);
-       break;
-      }
-      i = optimal_paths[i].prev_break_i_;
+      int prev = optimal_paths[i].prev_break_i_;
+      assert (i > prev);
+      i = prev;
     }
 
-
+  if (optimal_paths.top ().demerits_f_ >= infinity_f)
+    warning (_ ("No feasible line breaking found"));
+  
   for (int i= final_breaks.size (); i--;) 
     lines.push (optimal_paths[final_breaks[i]].line_config_);
   
@@ -188,5 +180,17 @@ Real
 Gourlay_breaking::combine_demerits (Column_x_positions const &prev,
                                    Column_x_positions const &this_one) const
 {
-  return abs (this_one.force_f_) + abs (prev.force_f_ - this_one.force_f_);
+  Real break_penalties = 0.0;
+  Paper_column * pc = this_one.cols_.top ();
+  if (pc->original_l_)
+    {
+      SCM pen = pc->get_elt_property (penalty_scm_sym);
+      if (pen != SCM_BOOL_F)
+       {
+         break_penalties += gh_scm2double (SCM_CDR(pen));
+       }
+    }
+
+  return abs (this_one.force_f_) + abs (prev.force_f_ - this_one.force_f_)
+    + break_penalties;
 }
index 990c24884b4cea53cd088063f1a5f98cf2884cb0..86c840e7ebf91f256bbf132bd6db6dfa4643c4f5 100644 (file)
@@ -71,7 +71,7 @@ void
 Hyphen_spanner::do_post_processing ()
 {
   // UGH
-  Real nw_f = paper_l ()->note_width () * 0.8;
+  Real gap = paper_l ()->get_realvar (interline_scm_sym);
 
   Direction d = LEFT;
   do
@@ -81,7 +81,7 @@ Hyphen_spanner::do_post_processing ()
       if (d == LEFT)
         dx_f_drul_[d] += t->extent (X_AXIS).length ();
       else
-       dx_f_drul_[d] -= d * nw_f / 2;
+       dx_f_drul_[d] -= d * gap / 2;
     }
   while (flip(&d) != LEFT);
 }
index bbb26c7c70562e976eb25149c1bb6c18c4fd7c5d..64f00634703ac5be2f5fe743270fbb376efefe8b 100644 (file)
@@ -26,15 +26,13 @@ public:
 protected:
   virtual void do_creation_processing ();
   virtual void do_removal_processing ();
-  virtual bool do_try_music (Music *req_l);
   virtual void do_process_requests();
   virtual void do_pre_move_processing();
-  virtual void do_post_move_processing();
+
 
 private:
   void create_bar ();
 
-  Bar_req * bar_req_l_;
   Bar * bar_p_;
 };
 
diff --git a/lily/include/bar-req-collector-engraver.hh b/lily/include/bar-req-collector-engraver.hh
new file mode 100644 (file)
index 0000000..126d2e0
--- /dev/null
@@ -0,0 +1,26 @@
+/*   
+  bar-req-collect-engraver.hh -- declare 
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef BAR_REQ_COLLECT_ENGRAVER_HH
+#define BAR_REQ_COLLECT_ENGRAVER_HH
+
+#include "engraver.hh"
+class Bar_req_collect_engraver : public Engraver
+{
+  Bar_req* bar_req_l_;
+public:
+  VIRTUAL_COPY_CONS(Translator);
+  void do_post_move_processing ();
+  bool do_try_music (Music *);
+};
+
+
+
+#endif /* Bar_Req_COLLECT_ENGRAVER_HH */
+
index 145bbddce0c212e718633c9ba2e39b14eccb8d61..9e1cbb83464ebcac28b9143d10dc68890083b364 100644 (file)
@@ -31,7 +31,7 @@ public:
     The beams should be prevented to conflict with the stafflines, 
     especially at small slopes.
     */
-  enum Quantisation { NONE, NORMAL, TRADITIONAL, TEST };
+  enum Quantisation { NONE, NORMAL, TRADITIONAL };
   enum Dir_algorithm { /* DOWN=-1, UP=1, */ MAJORITY=2, MEAN, MEDIAN };
 
   Link_array<Stem> stems_;
index e0548adf9e879c14b27015b139b68feb6085a754..8a25d7b554d2df85207f93897156e645c7646d21 100644 (file)
@@ -25,7 +25,7 @@ class Break_algorithm {
 protected:
 
   Paper_score *pscore_l_;
-  Real linelength;
+  Real linewidth_f_;
 
   /// search all pcols which are breakable.
   Line_of_cols find_breaks() const;
index 10487514016568720136f2595f46f270e6f88e81..d124535153129c2ac9d94f0d8d050f4b49842967 100644 (file)
@@ -13,7 +13,7 @@
 typedef Link_array<Paper_column>  Line_of_cols;
 
 struct Column_x_positions {
-  Simple_spacer * spacer_l_;
+
   Line_of_cols cols_;
   Array<Real> config_;
   
@@ -23,7 +23,6 @@ struct Column_x_positions {
 
   ~Column_x_positions();
   Column_x_positions();
-  void add_paper_column (Paper_column*c);
   void print() const;
 };
 
index b7a29e0f116275d534bbc278d6b578d39cb59a65..ee64d1fe2789e6fc89185092a21ae336954fd22e 100644 (file)
@@ -18,8 +18,7 @@
 
 class Break_req : public Request {
 public:
-  enum { DISALLOW = -10000, FORCE = 10000 };
-  int penalty_i_;
+  Real penalty_f_;
   Break_req ();
 protected:
   VIRTUAL_COPY_CONS(Music);
diff --git a/lily/include/cross-staff.hh b/lily/include/cross-staff.hh
new file mode 100644 (file)
index 0000000..9fdfb97
--- /dev/null
@@ -0,0 +1,17 @@
+/*   
+  cross-staff.hh -- declare cross staff calc funcs.
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef CROSS_STAFF_HH
+#define CROSS_STAFF_HH
+#include "lily-proto.hh"
+Real
+calc_interstaff_dist (Item const *item, Spanner const *span);
+
+#endif /* CROSS_STAFF_HH */
+
diff --git a/lily/include/encompass-info.hh b/lily/include/encompass-info.hh
deleted file mode 100644 (file)
index 04caf77..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-  encompass-info.hh -- declare Encompass_info
-
-  source file of the GNU LilyPond music typesetter
-
-  (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
-
-*/
-
-#ifndef ENCOMPASS_INFO_HH
-#define ENCOMPASS_INFO_HH
-
-#include "lily-proto.hh"
-#include "direction.hh"
-#include "offset.hh"
-
-struct Encompass_info
-{
-  Encompass_info ();
-  Encompass_info (Note_column const*, Direction, Slur const *);
-
-  Offset o_;
-  // junkme
-  Real interstaff_f_;
-};
-
-#endif // ENCOMPASS_INFO_HH
index 521fa3d06eb94bbe925746cd525f789b19a70ad3..f0f3dd098dcd173ec2a0ad7a657c2bf1e8a88a60 100644 (file)
@@ -64,6 +64,7 @@ DECLARE_LY_SYMBOL(octave_dir);
 DECLARE_LY_SYMBOL(origin);
 DECLARE_LY_SYMBOL(output);
 DECLARE_LY_SYMBOL(padding);
+DECLARE_LY_SYMBOL(penalty);
 DECLARE_LY_SYMBOL(pianobrace);
 DECLARE_LY_SYMBOL(placebox);
 DECLARE_LY_SYMBOL(rulesym);
index f7d9c061e378160b750034b6ecfe96f8c2c7c9d0..d5ca0e0560dbea0c1c19a31d432118fe0b3bc054 100644 (file)
@@ -28,6 +28,8 @@ class Music_iterator {
   Interpretation_context_handle handle_;
 
 protected:
+  bool playback_b_;            // Should use SCMs
+  
   Music const * music_l_;
 
   /// ugh. JUNKME
@@ -73,9 +75,9 @@ public:
   void set_translator (Translator_group*);
   
   /** Get an iterator matching the type of MUS, and use TRANS to find
-    an accompanying translation unit
-   */
-  static Music_iterator* static_get_iterator_p (Music const* mus);
+    an accompanying translation unit.  Repeated music can be fully
+    unfolded by setting PLAYING */
+  static Music_iterator* static_get_iterator_p (Music const* mus, bool playing);
   void init_translator (Music const *, Translator_group *); 
 
   Music_iterator();
index 77942e8027992eceb0fcc8571272a4517a48d23a..8615d9cf86c957ab430f8d8da40e889f88cff8cd 100644 (file)
   
   add support for multiple fontsizes 
 
-
+  remove all utility funcs 
   
 
   add support for other len->wid conversions.
 
-  Input_engraver should be in here.
-
 
   Interesting variables:
   
   /// The distance between lines
   interline
   
- */
+*/
 class Paper_def : public Music_output_def 
 {
   Hash_table<int, Lookup *> *lookup_p_tab_p_;
@@ -54,7 +52,6 @@ protected:
 
 public:    
   virtual ~Paper_def ();
-  
 
   Array<Interval> shape_int_a_;
   Real get_realvar (SCM symbol) const;
@@ -67,26 +64,13 @@ public:
   void set_lookup (int, Lookup*);
 
   Paper_def (Paper_def const&);
-  /// The distance between beams of multiplicity_i
+  /** The distance between beams of multiplicity_i
+      JUNKME
+  */
   Real interbeam_f (int multiplicity_i) const;
 
-  /// The thickness of a beam
-  Real beam_thickness_f () const;
-
-  /// thickness of the standard line 
-  Real rule_thickness () const;
-
-  /// thickness of the staff line
-  Real staffline_f () const;
-
   Interval line_dimensions_int (int) const;
-  Real linewidth_f () const;
-
-  /// height of the staff
-  Real staffheight_f () const;
 
-  /// width of a crotchet ball
-  Real note_width () const;
   void print () const;
 
   Lookup const * lookup_l (int sz) const;      // TODO naming
@@ -95,9 +79,10 @@ public:
     influence using the geometric_ and  paratime_signatures.
     */
   Real length_mom_to_dist (Moment, Real) const;
-  Real geometric_spacing (Moment) const;
+  
   Real arithmetic_constant (Moment minimal_mom) const;
   Real arithmetic_spacing (Moment mom,Real constant) const;
+
   virtual int get_next_default_count () const;
   static void reset_default_count();
 
index c17afddfee42bd25c3ede20dbd29902cc3bf2d2f..7fad9b8b3295d2ad7a732e057891c57dbc8b5308 100644 (file)
 
 class Paper_score : public Music_output
 {
-  /// crescs etc; no particular order
-  Link_array<Spanner> span_p_arr_;
-
-  /// other elements
-  Link_array<Score_element> elem_p_arr_;
-  Link_array<Score_element> break_helpers_arr_;
-
-  SCM protected_scms_;
+  SCM element_smob_list_;
 public:
   Paper_def *paper_l_;
 
index 9c2097367e39360f56875bad8648ea1da4652bfb..eff9441bf364b1a492c088181f66b0a788094b9b 100644 (file)
   */
 
 class Score_column : public Paper_column {
-  friend class Score;
-  friend class Score_engraver;
-
-  int break_penalty_i_;
   Moment when_;
 public:
   Moment shortest_playing_mom_;
   Moment shortest_starter_mom_;
 
-  int break_penalty_i () { return break_penalty_i_; }
   
   VIRTUAL_COPY_CONS(Score_element);
 
index af9b484faa5f19e137d0223565779be05721d9ef..25a30532ff396892f3b47f371f064ebf89e9a04b 100644 (file)
@@ -35,8 +35,6 @@ Boolean (true iff defined)
 
 */
 class Score_element : public virtual Graphical_element {
-
-  friend class Paper_score;
   /**
      properties specific for this element. Destructor will not call
      scm_unprotect, so as to allow more flexible GC arrangements.  The
@@ -82,7 +80,6 @@ public:
   Paper_def *paper_l () const;
   Lookup const *lookup_l () const;
 
-  virtual ~Score_element ();
   void add_processing ();
 
   void substitute_dependency (Score_element*,Score_element*);
@@ -108,6 +105,12 @@ public:
 
   virtual Score_element *find_broken_piece (Line_of_score*) const;
 protected:
+
+  /**
+    Junk score element. This is protected because this is supposed to
+    be handled by GUILE gc.  */
+  virtual ~Score_element ();
+  
   Score_element* dependency (int) const;
   int dependency_size () const;
   
@@ -144,6 +147,14 @@ protected:
   virtual Link_array<Score_element> get_extra_dependencies () const;
 
   static Interval dim_cache_callback (Dimension_cache*);
+public:
+  SCM smobify_self ();
+  static SCM mark_smob (SCM);
+  static scm_sizet free_smob (SCM s);
+  static int print_smob (SCM s, SCM p, scm_print_state*);
+  static long smob_tag;
+  static void init_smobs();
+  SCM self_scm_;
 };
 
 
index e98e0026814c0cd0302dc8a7a511224531256cf1..2851980e05fa656fc444a67a0da9b13ff109c781 100644 (file)
@@ -20,7 +20,6 @@ class Score_engraver :
   public Engraver_group_engraver, public Global_translator 
 {
   Line_of_score * scoreline_l_;
-  int break_penalty_i_;
   int breaks_i_;
 
   Link_array<Score_element> elem_p_arr_;
index bf61df4b860bf18e4a7071374ac06e1a3af0ec51..2fb4b5ede408b624dfc1a1564871347899ae8eed 100644 (file)
  */
 class Slur : public Bow
 {
+  int cross_staff_count () const;
+  Offset encompass_offset (Note_column const* )const;
 public:
   Slur ();
   VIRTUAL_COPY_CONS(Score_element);
 
   void add_column (Note_column*);
-  
+
   Link_array<Note_column> encompass_arr_;
 
 protected:
index 00d55c5a465af503a1740b56f5d461f86b271312..99621579ecb3eb7b3ed0788130174ccc06fe411b 100644 (file)
  */
 class Timing_engraver : public Timing_translator, public Engraver
 {   
+
+  Bar_req * bar_req_l_;
 protected:
   virtual void fill_staff_info (Staff_info&);
+  virtual bool do_try_music (Music * );
+  virtual void do_post_move_processing ();
 public:
+  String which_bar (); 
   VIRTUAL_COPY_CONS(Translator);
   
 };
index 22888cf29aa6a2844d3e4739ee119be9a4c48f2e..71adef65984724689a3e354442d2171b9a07a464 100644 (file)
@@ -24,6 +24,9 @@ public:
    */
   int done_count_;
 
+
+  /// unfold everything, or do volta?
+  bool full_unfold_b_;
   
   /// are we busy doing the body?
   bool do_main_b_;
index b2017c27af3de9817b19fb7d86c22db0a54fa0fc..311397cdd857a66669592b0a828b0928a4a4b218 100644 (file)
@@ -169,10 +169,13 @@ init_functions ()
 }
 
 extern void init_symbols ();
+extern void init_smobs ();     // guh -> .hh
+
 
 void
 init_lily_guile ()
 {
   init_symbols();
   init_functions ();
+  init_smobs ();
 }
index 0e76c6849d32a398191b1a85946f738d8a8849ef..1000f37ab64312106fac2f49d46e7e96204cfb34 100644 (file)
@@ -424,8 +424,12 @@ Lookup::text (String style, String text, Paper_def *paper_l) const
            brace_count ++;
          else if (text[i] == '}')
            brace_count --;
-          Character_metric *c = (Character_metric*)afm_l->get_char ((unsigned char)text[i],false);
+          Character_metric *c = (Character_metric*)afm_l->
+           get_char ((unsigned char)text[i],false);
 
+         // Ugh, use the width of 'x' for unknown characters
+         if (c->dimensions()[X_AXIS].length () == 0) 
+           c = (Character_metric*)afm_l->get_char ((unsigned char)'x',false);
          w += c->dimensions()[X_AXIS].length ();
          ydims.unite (c->dimensions()[Y_AXIS]);
        }
index f4ad427ab9df9f05a5fbef42bf4d113912091ef9..c4062cb1a40df72c39e7146b9d65bea1971a6b5f 100644 (file)
@@ -94,7 +94,11 @@ usage ()
   cout << _ ("Typeset music and or play MIDI from FILE");
   cout << "\n\n";
   cout << 
-#include "BLURB.hh"
+_(
+"LilyPond is a music typesetter.  It produces beautiful sheet music\n"
+"using a high level description file as input.  LilyPond is part of \n"
+"the GNU Project.\n"
+);
 
   cout << '\n';
   cout << _ ("Options:");
index 5bda659f5dd62d5a76fd7ed9a924c0a41cf54aff..47899ae06640c4c2ff45302ca4752ebdfd5b162b 100644 (file)
@@ -59,10 +59,10 @@ void
 Midi_def::print() const
 {
 #ifndef NPRINT
+  DEBUG_OUT << "MIDI {\n";
   Music_output_def::print ();
-  DEBUG_OUT << "Midi {";
   DEBUG_OUT << "4/min: " << Moment (60) / (whole_in_seconds_mom_ * Moment (4));
-  DEBUG_OUT << "}\n";
+  DEBUG_OUT << "}\n";  
 #endif
 }
 
index 9de2bb6af7819d21ab708ec25c541a744c0c259c..e5774c9f32221881dc72a1b33ef83fc0e2caa5fd 100644 (file)
@@ -114,7 +114,7 @@ Music_iterator::ok() const
 }
 
 Music_iterator*
-Music_iterator::static_get_iterator_p (Music const *m)
+Music_iterator::static_get_iterator_p (Music const *m, bool playing)
 {
   Music_iterator * p =0;
 
@@ -142,14 +142,15 @@ Music_iterator::static_get_iterator_p (Music const *m)
     p = new Music_wrapper_iterator;
   else if (Repeated_music const * n = dynamic_cast<Repeated_music const *> (m))
     {
-      if (n->fold_b_)
+      if (n->fold_b_ && !playing)
        p = new Folded_repeat_iterator;
       else
        p = new Unfolded_repeat_iterator;
     }
   else
     assert (0);
-
+  
+  p->playback_b_ = playing;
 
   p->music_l_ = m;
   return p;
@@ -176,7 +177,7 @@ Music_iterator::init_translator (Music const *m, Translator_group  *report_l)
 Music_iterator*
 Music_iterator::get_iterator_p (Music const*m) const
 {
-  Music_iterator*p = static_get_iterator_p (m);
+  Music_iterator*p = static_get_iterator_p (m, playback_b_);
   p->init_translator (m, report_to_l());
   
   p->construct_children();
@@ -185,6 +186,7 @@ Music_iterator::get_iterator_p (Music const*m) const
 
 Music_iterator::Music_iterator()
 {
+  playback_b_ = false;
   first_b_ = true;
 }
 
index 620bbb660f5aa37ba3f8ea765f1f6232df34a9ab..dc99d4d87be06a52308cd41ca47705ed5776d434 100644 (file)
@@ -108,10 +108,10 @@ Paper_def::line_dimensions_int (int n) const
 {
   if (!shape_int_a_.size ())
     {
-      if (n)
-       return Interval (0, linewidth_f ());
-      else
-       return Interval (get_var ("indent"), linewidth_f ());
+      Real lw =  get_realvar (linewidth_scm_sym);
+      Real ind = n? 0.0:get_var ("indent");
+
+      return Interval (ind, lw);
     }
   
   if (n >= shape_int_a_.size ())
@@ -120,17 +120,6 @@ Paper_def::line_dimensions_int (int n) const
   return shape_int_a_[n];
 }
 
-Real
-Paper_def::beam_thickness_f () const
-{
-  return get_realvar (beam_thickness_scm_sym);
-}
-
-Real
-Paper_def::linewidth_f () const
-{
-  return get_realvar (linewidth_scm_sym);
-}
 
 Real
 Paper_def::length_mom_to_dist (Moment d,Real k) const
@@ -171,24 +160,6 @@ Paper_def::set_lookup (int i, Lookup*l)
 }
 
 
-Real
-Paper_def::rule_thickness () const
-{
-  return get_realvar (rulethickness_scm_sym);
-}
-
-Real
-Paper_def::staffline_f () const
-{
-  return get_realvar (rulethickness_scm_sym);
-    }
-
-Real
-Paper_def::staffheight_f () const
-{
-  return get_realvar (staffheight_scm_sym);
-    }
-
 Real
 Paper_def::interbeam_f (int multiplicity_i) const
 {
@@ -198,11 +169,6 @@ Paper_def::interbeam_f (int multiplicity_i) const
     return get_realvar (interbeam4_scm_sym);
 }
 
-Real
-Paper_def::note_width () const
-{
-  return get_realvar (notewidth_scm_sym);
-}
 
 void
 Paper_def::print () const
index 0d7cbfdddf4058ec383c5200b22b87144cfc64f4..ef983e80539069e8b1115411e0839cc8a4749fad 100644 (file)
 
 Paper_score::Paper_score ()
 {
-  protected_scms_ = scm_protect_object (gh_cons (SCM_BOOL_T, SCM_EOL));
   paper_l_ =0;
   outputter_l_ =0;
   Line_of_score * line_p = new Line_of_score;
-  typeset_unbroken_spanner (line_p);
-
+  line_p->pscore_l_ = this;
+  element_smob_list_ = scm_protect_object (gh_cons (line_p->self_scm_, SCM_EOL));
   line_l_ = line_p;
 }
 
@@ -41,40 +40,17 @@ Paper_score::Paper_score (Paper_score const &s)
 
 Paper_score::~Paper_score ()
 {
-  for (int i=span_p_arr_.size (); --i >=0 ; )
-    delete span_p_arr_[i];
-  for (int i=elem_p_arr_.size (); --i >=0 ; )
-    delete elem_p_arr_[i];
-
-  scm_unprotect_object (protected_scms_);
+  scm_unprotect_object (element_smob_list_);
 }
 
 void
 Paper_score::typeset_element (Score_element * elem_p)
 {
-  elem_p_arr_.push (elem_p);
   elem_p->pscore_l_ = this;
 
-  // take over protection.
-  SCM_CDR(protected_scms_) = gh_cons (elem_p->element_property_alist_,
-                                     SCM_CDR (protected_scms_));
-  scm_unprotect_object (elem_p->element_property_alist_);
-  
-  SCM p =  elem_p->remove_elt_property (break_helper_only_scm_sym);
-  if (p != SCM_BOOL_F)
-    break_helpers_arr_.push (elem_p);
-}
-
-
-void
-Paper_score::typeset_unbroken_spanner (Spanner*span_p)
-{
-  span_p_arr_.push (span_p);
-  span_p->pscore_l_=this;
-
-  SCM p =  span_p->remove_elt_property (break_helper_only_scm_sym);
-  if (p != SCM_BOOL_F)
-    break_helpers_arr_.push (span_p);
+  SCM_CDR(element_smob_list_) = gh_cons (elem_p->self_scm_,
+                                        SCM_CDR (element_smob_list_));
+  scm_unprotect_object (elem_p->self_scm_);
 }
 
 void
@@ -85,21 +61,20 @@ Paper_score::add_column (Paper_column *p)
   typeset_element(p);
 }
 
-
-
 void
 Paper_score::print () const
 {
 #ifndef NPRINT
   if (!flower_dstream)
     return ;
+
   DEBUG_OUT << "Paper_score { ";
   DEBUG_OUT << "\n elements: ";
-  for (int i=0; i < span_p_arr_.size (); i++)
-    span_p_arr_[i]->print ();
-  for (int i=0; i < elem_p_arr_.size (); i++)
-    elem_p_arr_[i]->print();
-  
+
+  for (SCM p = SCM_CDR (element_smob_list_);
+       p != SCM_EOL;
+       p = SCM_CDR(p))
+    gh_display (SCM_CAR(p));
   DEBUG_OUT << "}\n";
 #endif
 }
@@ -159,8 +134,6 @@ Paper_score::process ()
        typeset_element (line_l);
     }
 
-  if (experimental_features_global_b)
-    *mlog << _f ("%s elements", elem_p_arr_.size () + span_p_arr_.size ());
 
   *mlog << "\n";
   *mlog << _ ("Line ... ");
@@ -174,9 +147,6 @@ Paper_score::process ()
       line_l->post_processing ();
       *mlog << i << flush;
       line_l->output_all (i + 1 == lines.size());
-      if (experimental_features_global_b)
-       *mlog << '(' << elem_p_arr_.size () + span_p_arr_.size () << ')';
-      
       *mlog << ']' << flush;
      }
   
index feb3ae516ee5759604babdb716a40d984e357c21..4d84041f3866a08ff32d687678451aacae4409fe 100644 (file)
@@ -652,15 +652,21 @@ real_array:
 */
 midi_block:
        MIDI
-
-       '{' midi_body '}'       { $$ = $3; }
+       '{' midi_body '}'       {
+               $$ = $3;
+               THIS-> lexer_p_-> scope_l_arr_.pop();
+       }
        ;
 
 midi_body: /* empty */                 {
-               $$ = THIS->default_midi_p ();
+               Midi_def * p =THIS->default_midi_p ();
+               $$ = p;
+               THIS->lexer_p_->scope_l_arr_.push (p->scope_p_);
        }
        | MIDI_IDENTIFIER       {
-               $$ = $1-> access_content_Midi_def (true);
+               Midi_def * p =$1-> access_content_Midi_def (true);
+               $$ = p;
+               THIS->lexer_p_->scope_l_arr_.push (p->scope_p_);
        }
        | midi_body assignment semicolon {
 
@@ -1002,10 +1008,10 @@ verbose_command_req:
                m->one_beat_i_=$4;
                $$ = m;
        }
-       | PENALTY int   {
+       | PENALTY int   {
                Break_req * b = new Break_req;
-               b->penalty_i_ = $2;
-               b-> set_spot (THIS->here_input ());
+               b->penalty_f_ = $2 / 100.0;
+               b->set_spot (THIS->here_input ());
                $$ = b;
        }
        | SKIP duration_length {
index 6c5209a43564c5a7b79c05ed8e47357f92a047ff..334a35d4bac1b877c3d8d99bf02309fc5525872a 100644 (file)
@@ -13,7 +13,6 @@
 
 Score_column::Score_column (Moment w)
 {
-  break_penalty_i_ = 0;
   when_ = w;
 }
 
@@ -22,9 +21,6 @@ Score_column::do_print() const
 {
 #ifndef NPRINT
   DEBUG_OUT << " at " <<  when_ << '\n';
-  if (break_penalty_i_ >= Break_req::FORCE)
-    DEBUG_OUT << "Break forced";
-
   DEBUG_OUT << "Shortest playing: " <<  shortest_playing_mom_ << " shortest starter: " << shortest_starter_mom_;
   Paper_column::do_print();
 #endif
index bdb4f4bd3067cb7228dad3c3453066ba30e6394d..9282bfc0100c045c6128c51491ee3bb2cb15dcac 100644 (file)
@@ -44,13 +44,18 @@ Score_element::Score_element()
   pscore_l_=0;
   lookup_l_ =0;
   status_i_ = 0;
+  self_scm_ = SCM_EOL;
   original_l_ = 0;
   element_property_alist_ = scm_protect_object (gh_cons (gh_cons (void_scm_sym, SCM_BOOL_T) , SCM_EOL));
+
+  smobify_self ();
 }
 
 Score_element::Score_element (Score_element const&s)
   : Graphical_element (s)
 {
+  
+  self_scm_ = SCM_EOL;
   used_b_ = true;
   original_l_ =(Score_element*) &s;
   element_property_alist_ = scm_protect_object (scm_list_copy (s.element_property_alist_));
@@ -59,6 +64,8 @@ Score_element::Score_element (Score_element const&s)
   status_i_ = s.status_i_;
   lookup_l_ = s.lookup_l_;
   pscore_l_ = s.pscore_l_;
+
+  smobify_self ();
 }
 
 Score_element::~Score_element()
@@ -223,6 +230,9 @@ Score_element::output_processing ()
   pscore_l_->outputter_l_->output_molecule (output_p_,
                                            o,
                                            classname(this));
+
+  delete output_p_;
+  output_p_ =0;
 }
 
 /*
@@ -424,3 +434,70 @@ Score_element::find_broken_piece (Line_of_score*) const
 {
   return 0;
 }
+
+static scm_smobfuns score_elt_funs = {
+ Score_element::mark_smob, Score_element::free_smob,
+ Score_element::print_smob, 0,
+};
+
+
+SCM
+Score_element::smobify_self ()
+{
+  if (self_scm_ != SCM_EOL)
+    return self_scm_;
+  
+  SCM s;
+  SCM_NEWCELL(s);
+  SCM_SETCAR(s,smob_tag);
+  void * me_p = this; 
+  SCM_SETCDR(s,me_p);
+  scm_protect_object (s);
+  self_scm_ = s;
+
+  scm_unprotect_object (element_property_alist_); // ugh
+  return s;
+}
+
+SCM
+Score_element::mark_smob (SCM ses)
+{
+  void * mp = (void*) SCM_CDR(ses);
+  Score_element * s = (Score_element*) mp;
+
+  assert (s->self_scm_ == ses);
+  return s->element_property_alist_;
+}
+
+scm_sizet
+Score_element::free_smob (SCM ses)
+{
+  Score_element * s = (Score_element*) SCM_CDR(ses);
+  delete s;
+  return 0;
+}
+
+int
+Score_element::print_smob (SCM s, SCM port, scm_print_state *)
+{
+  Score_element *sc = (Score_element *) SCM_CDR (s);
+     
+  scm_puts ("#<Score_element ", port);
+  scm_puts ((char *)sc->name (), port);
+  scm_puts (" >", port);
+  return 1;
+}
+
+long Score_element::smob_tag;
+
+void
+Score_element::init_smobs ()
+{
+  smob_tag = scm_newsmob (&score_elt_funs);
+}
+
+void
+init_smobs()
+{
+  Score_element::init_smobs ();
+}
index 1c1d39205c9acb7f8def95fe82d33afd0c7892a3..76580cbb38a58a1b2e1bd1b016f35cfb28f8c979 100644 (file)
@@ -20,7 +20,6 @@
 
 Score_engraver::Score_engraver()
 {
-  break_penalty_i_ = 0;
   scoreline_l_ =0;
   command_column_l_ =0;
   musical_column_l_ =0;
@@ -33,8 +32,8 @@ Score_engraver::prepare (Moment w)
 {
   Global_translator::prepare (w);
   set_columns (new Score_column (w),  new Score_column (w));
-  
-  break_penalty_i_ = 0;
+
+  command_column_l_->set_elt_property (breakable_scm_sym, SCM_BOOL_T);
   post_move_processing();
 }
 
@@ -89,11 +88,7 @@ Score_engraver::announce_element (Score_element_info info)
 {
   announce_info_arr_.push (info);
   info.origin_trans_l_arr_.push (this);
-
-  if (Spanner *s = dynamic_cast <Spanner *> (info.elem_l_))
-    pscore_p_->typeset_unbroken_spanner (s);
-  else if (Item *i = dynamic_cast<Item*> (info.elem_l_))
-    pscore_p_->typeset_element (i);
+  pscore_p_->typeset_element (info.elem_l_);
 }
 
 /* All elements are propagated to the top upon announcement. If
@@ -174,9 +169,8 @@ Score_engraver::typeset_all()
 void
 Score_engraver::do_pre_move_processing()
 {
-  if (break_penalty_i_ > Break_req::DISALLOW)
+  if (command_column_l_->get_elt_property (breakable_scm_sym) !=  SCM_BOOL_F)
     {
-      command_column_l_->set_elt_property (breakable_scm_sym, SCM_BOOL_T);
       breaks_i_ ++;
       if (! (breaks_i_%8))
        *mlog << "[" << breaks_i_ << "]" << flush;
@@ -197,10 +191,8 @@ Score_engraver::set_columns (Score_column *new_command_l,
       scoreline_l_->add_column (command_column_l_);
     }
   else 
-    {
-      delete command_column_l_ ;
-      command_column_l_ =0;
-    }
+    command_column_l_ =0;
+
   if (new_command_l) 
     command_column_l_ = new_command_l;
 
@@ -210,10 +202,7 @@ Score_engraver::set_columns (Score_column *new_command_l,
       scoreline_l_->add_column (musical_column_l_);      
     }
   else 
-    {
-      delete musical_column_l_;
-      musical_column_l_ = 0;
-    }
+    musical_column_l_ = 0;
   
   if (new_musical_l) 
     {
@@ -249,16 +238,22 @@ Score_engraver::do_try_music (Music*r)
 
   if (!gotcha)
     {
-      /*
-       UGH! THIS IS NOT SYMMETRIC. CLEAN ME UP!
-       */
       if (Break_req* b = dynamic_cast<Break_req *> (r))
        {
          gotcha = true;
-         if (b->penalty_i_ <= Break_req::DISALLOW)
-           break_penalty_i_ = b->penalty_i_;
-         else if (b->penalty_i_ >= Break_req::FORCE)
-           command_column_l_->break_penalty_i_ = b->penalty_i_;
+
+
+         SCM pen = command_column_l_->get_elt_property  (penalty_scm_sym);
+         Real total_penalty = (pen == SCM_BOOL_F)
+           ? 0.0
+           : gh_scm2double (SCM_CDR(pen)); // ugh. Should typecheck.
+
+         total_penalty += b->penalty_f_;
+         if (b->penalty_f_ > 10000.0) //  ugh. arbitrary.
+           forbid_breaks ();
+
+         command_column_l_->set_elt_property (penalty_scm_sym,
+                                              gh_double2scm (total_penalty));
        }
     }
    return gotcha;
@@ -267,7 +262,7 @@ Score_engraver::do_try_music (Music*r)
 void
 Score_engraver::forbid_breaks ()
 {
-  break_penalty_i_ = Break_req::DISALLOW;
+  SCM junk = command_column_l_->remove_elt_property (breakable_scm_sym);
 }
 
 ADD_THIS_TRANSLATOR(Score_engraver);
index 0c56c31bbeb6d5cb5c2a9345c055a71052fbdfd7..5f9a2b65c506b3dae3a80c301a3d59ebab36881e 100644 (file)
@@ -59,7 +59,9 @@ Score::run_translator (Music_output_def *odef_l)
   *mlog << '\n' << _("Interpreting music...") << flush;
   trans_p->last_mom_ = music_p_->length_mom ();
 
-  Music_iterator * iter = Music_iterator::static_get_iterator_p (music_p_);
+
+  bool playing  =  odef_l->scope_p_->elem_b ("unfold_all");
+  Music_iterator * iter = Music_iterator::static_get_iterator_p (music_p_, playing);
   iter->init_translator(music_p_, trans_p);
 
   iter->construct_children();
index 590a10c78b978236da19b7551b5035c17b93a42c..a07381b61526926e87fc9e421215251fd0043ee9 100644 (file)
@@ -90,6 +90,5 @@ Separating_group_spanner::do_substitute_element_pointer (Score_element*o,
 
 Separating_group_spanner::Separating_group_spanner()
 {
-  set_elt_property (break_helper_only_scm_sym, SCM_BOOL_T);
   padding_f_ =0.0;
 }
index 1faaa67c13663a43eb60d64de06c0c13c034d44a..7f1ff9756001fb1dd7111891046334f6da62dc82 100644 (file)
@@ -31,7 +31,7 @@ Simultaneous_music_iterator::construct_children()
   Cons<Music> *i = (sim->music_p_list_p_) ? sim->music_p_list_p_->head_ : 0;
   for (; i;  i = i->next_, j++)
     {
-      Music_iterator * mi = static_get_iterator_p (i->car_);
+      Music_iterator * mi = static_get_iterator_p (i->car_, playback_b_);
 
       /* if separate_contexts_b_ is set, create a new context with the
         number number as name */
index c3804bf2b3d9f6c074e56bc8e380bb4ccd9c89f7..90227b09b221a27be313ad2b2a599cb65cdf5b7a 100644 (file)
@@ -13,7 +13,6 @@
 
 Single_malt_grouping_item ::Single_malt_grouping_item()
 {
-  set_elt_property (break_helper_only_scm_sym, SCM_BOOL_T);
   set_elt_property (transparent_scm_sym, SCM_BOOL_T);
 
   // this is weird! , but needed!
index 0aa11a6ab42bc90898c8b2d2b13e512bf628a792..c8582e8abb8239819af9ecdeda4d3adcb29d231d 100644 (file)
@@ -24,8 +24,8 @@
 #include "debug.hh"
 #include "box.hh"
 #include "bezier.hh"
-#include "encompass-info.hh"
 #include "main.hh"
+#include "cross-staff.hh"
 
 Slur::Slur ()
 {
@@ -91,6 +91,51 @@ Note_column_compare (Note_column *const&n1 , Note_column* const&n2)
   return Item::left_right_compare (n1, n2);
 }
 
+
+Offset
+Slur::encompass_offset (Note_column const* col) const
+{
+  Offset o;
+  Stem* stem_l = col->stem_l_;
+  if (!stem_l)
+    {
+      warning (_ ("Slur over rest?"));
+      o[X_AXIS] = col->hpos_f ();
+      o[Y_AXIS] = col->extent (Y_AXIS)[dir_];
+      return o;  
+    }
+  
+  o[X_AXIS] = stem_l->hpos_f ();
+
+  /*
+    Simply set x to middle of notehead
+   */
+
+  o[X_AXIS] -= 0.5 * stem_l->dir_ * col->extent (X_AXIS).length ();
+
+  if ((stem_l->dir_ == dir_)
+      && !stem_l->extent (Y_AXIS).empty_b ())
+    {
+      o[Y_AXIS] = stem_l->extent (Y_AXIS)[dir_];
+    }
+  else
+    {
+      o[Y_AXIS] = col->extent (Y_AXIS)[dir_];
+    }
+
+  /*
+   leave a gap: slur mustn't touch head/stem
+   */
+  o[Y_AXIS] += dir_ * paper_l ()->get_var ("slur_y_free");
+  o[Y_AXIS] += calc_interstaff_dist (stem_l, this);
+  return o;
+}
+
+/*
+  ARGRARGRARGRARGAR!
+
+  Fixme
+ */
 void
 Slur::do_post_processing ()
 {
@@ -198,36 +243,34 @@ Slur::do_post_processing ()
     }
   while (flip (&d) != LEFT);
 
-  int interstaff_i = 0;
-  for (int i = 0; i < encompass_arr_.size (); i++)
+  bool cross_count =  cross_staff_count ();
+  bool interstaff_b = (0 < cross_count) && (cross_count < encompass_arr_.size ());
+
+  Drul_array<Offset> info_drul;
+  Interval interstaff_interval;
+
+  do
     {
-      Encompass_info info (encompass_arr_[i], dir_, this);
-      if (info.interstaff_f_)
-       {
-         interstaff_i++;
-       }
+      info_drul[d] = encompass_offset (encompass_arr_.boundary (d, 0));
+      interstaff_interval[d] = calc_interstaff_dist (encompass_arr_.boundary (d,0),
+                                                    this);
     }
-  bool interstaff_b = interstaff_i && (interstaff_i < encompass_arr_.size ());
-
-  Drul_array<Encompass_info> info_drul;
-  info_drul[LEFT] = Encompass_info (encompass_arr_[0], dir_, this);
-  info_drul[RIGHT] = Encompass_info (encompass_arr_.top (), dir_, this);
-  Real interstaff_f = info_drul[RIGHT].interstaff_f_
-    - info_drul[LEFT].interstaff_f_;
+  while (flip (&d) != LEFT);
+  
+  Real interstaff_f = interstaff_interval.length ();
 
   if (fix_broken_b)
     {
       Direction d = (encompass_arr_.top () != spanned_drul_[RIGHT]) ?
        RIGHT : LEFT;
-      dy_f_drul_[d] = info_drul[d].o_[Y_AXIS];
+      dy_f_drul_[d] = info_drul[d][Y_AXIS];
       if (!interstaff_b)
        {
-         dy_f_drul_[d] -= info_drul[d].interstaff_f_;
-         
-         if (interstaff_i)
+         dy_f_drul_[d] -= interstaff_interval[d];
+         if (cross_count)      // interstaff_i  ? 
            {
-             dy_f_drul_[LEFT] += info_drul[d].interstaff_f_;
-             dy_f_drul_[RIGHT] += info_drul[d].interstaff_f_;
+             dy_f_drul_[LEFT] += interstaff_interval[d];
+             dy_f_drul_[RIGHT] += interstaff_interval[d];
            }
        }
     }
@@ -238,25 +281,13 @@ Slur::do_post_processing ()
     Catch and correct some ugly cases
    */
 
-  Real height_damp_f;
-  Real slope_damp_f;
-  Real snap_f;
-  Real snap_max_dy_f;
+  
 
-  if (!interstaff_b)
-    {
-      height_damp_f = paper_l ()->get_var ("slur_height_damping");
-      slope_damp_f = paper_l ()->get_var ("slur_slope_damping");
-      snap_f = paper_l ()->get_var ("slur_snap_to_stem");
-      snap_max_dy_f = paper_l ()->get_var ("slur_snap_max_slope_change");
-    }
-  else
-    {
-      height_damp_f = paper_l ()->get_var ("slur_interstaff_height_damping");
-      slope_damp_f = paper_l ()->get_var ("slur_interstaff_slope_damping");
-      snap_f = paper_l ()->get_var ("slur_interstaff_snap_to_stem");
-      snap_max_dy_f = paper_l ()->get_var ("slur_interstaff_snap_max_slope_change");
-    }
+  String infix = interstaff_b ? "interstaff_" : "";
+  Real height_damp_f = paper_l ()->get_var ("slur_"+infix +"height_damping");
+  Real slope_damp_f = paper_l ()->get_var ("slur_"+infix +"slope_damping");
+  Real snap_f = paper_l ()->get_var ("slur_"+infix +"snap_to_stem");
+  Real snap_max_dy_f = paper_l ()->get_var ("slur_"+infix +"snap_max_slope_change");
 
   if (!fix_broken_b)
     dy_f_drul_[RIGHT] += interstaff_f;
@@ -338,22 +369,24 @@ Slur::do_post_processing ()
   snapped_b_drul[LEFT] = snapped_b_drul[RIGHT] = false;
   do
     {
-      if ((note_column_drul[d] == spanned_drul_[d])
-         && (note_column_drul[d]->stem_l_)
-         && (note_column_drul[d]->stem_l_->dir_ == dir_)
-         && (abs (note_column_drul[d]->stem_l_->extent (Y_AXIS)[dir_]
-                  - dy_f_drul_[d] + (d == LEFT ? 0 : interstaff_f))
-             <= snap_f))
+      Note_column * nc = note_column_drul[d];
+      if (nc == spanned_drul_[d]
+         && nc->stem_l_
+         && nc->stem_l_->dir_ == dir_
+         && abs (nc->stem_l_->extent (Y_AXIS)[dir_]
+                 - dy_f_drul_[d] + (d == LEFT ? 0 : interstaff_f))
+             <= snap_f)
        {
          /*
            prepare to attach to stem-end
          */
-         Stem* stem_l = note_column_drul[d]->stem_l_;
-         snapx_f_drul[d] = stem_l->hpos_f ()
+         snapx_f_drul[d] = nc->stem_l_->hpos_f ()
            - spanned_drul_[d]->relative_coordinate (0, X_AXIS);
-         snapy_f_drul[d] = stem_l->extent (Y_AXIS)[dir_];
-         snapy_f_drul[d] += info_drul[d].interstaff_f_;
-         snapy_f_drul[d] += dir_ * 2 * y_gap_f;
+
+         snapy_f_drul[d] = nc->stem_l_->extent (Y_AXIS)[dir_]
+           + interstaff_interval[d]
+           + dir_ * 2 * y_gap_f;
+         
          snapped_b_drul[d] = true;
        }
     }
@@ -365,39 +398,53 @@ Slur::do_post_processing ()
     */
   if (!fix_broken_b)
     dy_f += interstaff_f;
+
+
+  /*
+    (sigh)
+
+    More refactoring could be done.
+   */
+  Real maxsnap = abs (dy_f * snap_max_dy_f);
   if (snapped_b_drul[LEFT] && snapped_b_drul[RIGHT]
       && ((sign (snapy_f_drul[RIGHT] - snapy_f_drul[LEFT]) == sign (dy_f)))
       && (!dy_f || (abs (snapy_f_drul[RIGHT] - snapy_f_drul[LEFT] - dy_f)
-                   < abs (dy_f * snap_max_dy_f))))
-    {
-      do
-       {
-         dy_f_drul_[d] = snapy_f_drul[d];
-         dx_f_drul_[d] = snapx_f_drul[d];
-       }
-      while (flip (&d) != LEFT);
-  
-    }
-  else if (snapped_b_drul[LEFT]
-      && ((sign (dy_f_drul_[RIGHT] - snapy_f_drul[LEFT]) == sign (dy_f)))
-      && (!dy_f || (abs (dy_f_drul_[RIGHT] - snapy_f_drul[LEFT] - dy_f)
-                   < abs (dy_f * snap_max_dy_f))))
+                   < maxsnap)))
     {
-      Direction d = LEFT;
-      dy_f_drul_[d] = snapy_f_drul[d];
-      dx_f_drul_[d] = snapx_f_drul[d];
+      dy_f_drul_ = snapy_f_drul;
+      dx_f_drul_ = snapx_f_drul;
     }
-  else if (snapped_b_drul[RIGHT]
-      && ((sign (snapy_f_drul[RIGHT] - dy_f_drul_[LEFT]) == sign (dy_f)))
-      && (!dy_f || (abs (snapy_f_drul[RIGHT] - dy_f_drul_[LEFT] - dy_f)
-                   < abs (dy_f * snap_max_dy_f))))
+  else
+    do
+      {
+       Direction od = (Direction)-d;
+       if (snapped_b_drul[d]
+           && d * sign (snapy_f_drul[d] - dy_f_drul_[od]) == sign (dy_f)
+           && (!dy_f || (abs (snapy_f_drul[d] - dy_f_drul_[od]  - d * dy_f)
+                         < maxsnap)))
+         {
+           dy_f_drul_[d] = snapy_f_drul[d];
+           dx_f_drul_[d] = snapx_f_drul[d];
+         }
+      }
+    while (flip (&d) != LEFT);
+}
+
+
+int
+Slur::cross_staff_count ()const
+{
+  int k=0;
+
+  for (int i = 0; i < encompass_arr_.size (); i++)
     {
-      Direction d = RIGHT;
-      dy_f_drul_[d] = snapy_f_drul[d];
-      dx_f_drul_[d] = snapx_f_drul[d];
+      if (calc_interstaff_dist (encompass_arr_[i], this))
+       k++;
     }
+  return k;
 }
 
+
 Array<Offset>
 Slur::get_encompass_offset_arr () const
 {
@@ -411,17 +458,6 @@ Slur::get_encompass_offset_arr () const
   offset_arr.push (Offset (0, dy_f_drul_[RIGHT]));
   return offset_arr;
 #endif
-
-  int interstaff_i = 0;
-  for (int i = 0; i < encompass_arr_.size (); i++)
-    {
-      Encompass_info info (encompass_arr_[i], dir_, this);
-      if (info.interstaff_f_)
-       {
-         interstaff_i++;
-       }
-    }
-  bool interstaff_b = interstaff_i && (interstaff_i < encompass_arr_.size ());
   
   Offset origin (relative_coordinate (0, X_AXIS), 0);
 
@@ -429,15 +465,19 @@ Slur::get_encompass_offset_arr () const
   int last = encompass_arr_.size () - 2;
 
   offset_arr.push (Offset (dx_f_drul_[LEFT], dy_f_drul_[LEFT]));
+
   /*
     left is broken edge
   */
+
+  int cross_count  = cross_staff_count ();
+  bool cross_b = cross_count && cross_count < encompass_arr_.size ();
   if (encompass_arr_[0] != spanned_drul_[LEFT])
     {
       first--;
-      Encompass_info left_info (encompass_arr_[0], dir_, this);
-      if (interstaff_b)
-       offset_arr[0][Y_AXIS] += left_info.interstaff_f_;
+      Real is   = calc_interstaff_dist (encompass_arr_[0], this);
+      if (cross_b)
+       offset_arr[0][Y_AXIS] += is;
     }
 
   /*
@@ -450,8 +490,8 @@ Slur::get_encompass_offset_arr () const
 
   for (int i = first; i <= last; i++)
     {
-      Encompass_info info (encompass_arr_[i], dir_, this);
-      offset_arr.push (info.o_ - origin);
+      Offset o (encompass_offset (encompass_arr_[i]));
+      offset_arr.push (o - origin);
     }
 
   offset_arr.push (Offset (do_width ().length () + dx_f_drul_[RIGHT],
index 479855cdcd38307e46a9b399eb13ce114732123c..967783c294df4cd3fe93a2c71d7ee567a024f63a 100644 (file)
@@ -17,7 +17,6 @@
 
 Spacing_spanner::Spacing_spanner ()
 {
-  set_elt_property (break_helper_only_scm_sym, SCM_BOOL_T);
   set_elt_property (transparent_scm_sym, SCM_BOOL_T);
 }
 
index 4c33372710053215c3151b3670b1899fbf5852e2..7ab14e91ba2c5f23cf9173af6d5cef278aafba7a 100644 (file)
@@ -56,7 +56,7 @@ Staff_symbol::do_brew_molecule_p() const
     - spanned_drul_[LEFT]->relative_coordinate (common, X_AXIS)
     ;
 
-  Real t = paper_l ()->get_var ("rulethickness");
+  Real t = paper_l ()->get_var ("stafflinethickness");
   Molecule rule  = lookup_l ()->filledbox (Box (Interval (0,width),
                                                Interval (-t/2, t/2)));
 
index 8578c0e71bedc5fa9c42f67349657789ce337087..4a9e06e05ed3f910e5a074ba0a357139203467cd 100644 (file)
@@ -9,24 +9,23 @@
 
 #include "proto.hh"
 #include "misc.hh"
-#include "debug.hh"
-#include "dimension-cache.hh"
+#include "cross-staff.hh"
 
-#include "align-element.hh"
 #include "stem.hh"
 #include "paper-def.hh"
 #include "lookup.hh"
 #include "stem-info.hh"
 #include "beam.hh"
-#include "staff-symbol.hh"
+
 
 Stem_info::Stem_info ()
 {
 }
+
+
 /*
   FIXME: y dims should not be in internote.
  */
-
 Stem_info::Stem_info (Stem*s, int mult)
 {
   mult_i_ =mult;
@@ -41,14 +40,8 @@ Stem_info::Stem_info (Stem*s, int mult)
   Paper_def* paper_l = stem_l_->paper_l ();
   Real internote_f = stem_l_->staff_line_leading_f ()/2;
   Real interbeam_f = paper_l->interbeam_f (mult_i_);
-  Real beam_f = paper_l->beam_thickness_f ();
+  Real beam_f = paper_l->get_realvar (beam_thickness_scm_sym);;
          
-  {
-      static int i = 1;
-      DEBUG_OUT << "******" << i++ << "******\n" 
-          << "begin_f: " << stem_l_->stem_begin_f () * dir_ 
-          << "\nchord_f/i: " << stem_l_->chord_start_f () * dir_ / internote_f << '\n';
-  }
 
   // strangely enough, dim(chord_start_f) == pt (and not internote!)
   idealy_f_ = stem_l_->chord_start_f () / internote_f;
@@ -105,8 +98,6 @@ Stem_info::Stem_info (Stem*s, int mult)
     /* knee */
     {
       idealy_f_ -= beam_f;
-      // idealy_f_ -= (mult_i_ - 1) * interbeam_f;
-      // idealy_f_ += (mult_i_ - stem_l_->flag_i_ >? 0) * interbeam_f;
       maxy_f_ = idealy_f_;
       miny_f_ = -INT_MAX;
 
@@ -119,51 +110,15 @@ Stem_info::Stem_info (Stem*s, int mult)
   miny_f_ /= internote_f;
   maxy_f_ /= internote_f;
 
-  DEBUG_OUT << "dir_: " << dir_ << '\n';
-  DEBUG_OUT << "mult_i_: " << mult_i_ << '\n';
-  DEBUG_OUT << "idealy_f_: " << idealy_f_ << '\n';
-  DEBUG_OUT << "miny_f_: " << miny_f_ << '\n';
-  DEBUG_OUT << "maxy_f_: " << maxy_f_ << '\n';
-
   idealy_f_ = maxy_f_ <? idealy_f_;
   idealy_f_ = miny_f_ >? idealy_f_;
 
   // interstaff beam
   Beam* beam_l = stem_l_->beam_l_;
   
-  Graphical_element *common = stem_l_->common_refpoint (beam_l, Y_AXIS);
-  Align_element * align = dynamic_cast<Align_element*> (common);
-  if (align && align->axis() == Y_AXIS)
-    {
-      if (align->threshold_interval_[MIN] != 
-         align->threshold_interval_[MAX])
-       warning (_ ("minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"));
-
-      interstaff_f_ = align->threshold_interval_[MIN] / internote_f;
-
-      Graphical_element * beam_refpoint = beam_l;
-      Graphical_element * stem_refpoint = stem_l_;
-
-      while (beam_refpoint->parent_l (Y_AXIS) != common)
-       beam_refpoint = beam_refpoint->parent_l (Y_AXIS);
-      while (stem_refpoint->parent_l (Y_AXIS) != common)
-       stem_refpoint = stem_refpoint->parent_l (Y_AXIS);
-
-
-      int beam_prio =
-       align->get_priority (dynamic_cast<Score_element*> (beam_refpoint));
-      int stem_prio =
-       align->get_priority (dynamic_cast<Score_element*> (stem_refpoint));
-
-      /*
-       our staff is lower -> interstaff_f_ *= -1
-       */
-      if (beam_prio < stem_prio)
-       interstaff_f_ *= -1;
-      
-      idealy_f_ += interstaff_f_ * beam_dir_;
-      miny_f_ += interstaff_f_ * beam_dir_;
-      maxy_f_ += interstaff_f_ * beam_dir_;
-    }
+  Real is = calc_interstaff_dist (stem_l_, beam_l);
+  idealy_f_ += is* beam_dir_;
+  miny_f_ += is * beam_dir_;
+  maxy_f_ += is * beam_dir_;
 }
 
index 5f2667bb7952ab24b943957340b4fb6987b8be9f..71dead81d1eb4e5ec9b6a1d6897677866899e231 100644 (file)
@@ -54,7 +54,7 @@ Stem_tremolo::do_brew_molecule_p () const
   Real space = stem_l_->staff_line_leading_f ();
   Real internote_f = space/2;
   
-  Real beam_f = paper_l ()->beam_thickness_f ();
+  Real beam_f = paper_l ()->get_realvar (beam_thickness_scm_sym);
 
   int beams_i = 0;
   Real slope_f = internote_f / 4 / internote_f;        // HUH?
index aef8245546d93d250159dbe1348ccacd8d54e6b2..919969187c70296f81ca8fd6c159298b8376ed66 100644 (file)
@@ -370,7 +370,8 @@ Stem::note_delta_f () const
   if (head_l_arr_.size())
     {
       Interval head_wid(0,  head_l_arr_[0]->extent (X_AXIS).length ());
-      Real rule_thick(paper_l ()->rule_thickness ());
+         Real rule_thick = paper_l ()->get_var ("stemthickness");
+
       Interval stem_wid(-rule_thick/2, rule_thick/2);
       if (dir_ == CENTER)
        r = head_wid.center ();
index 953e802f4bae7a200d46dd9cae166e53b2c19d6b..3fa208f15d6269026d7a76f5408a104a6f4fcbe1 100644 (file)
@@ -20,3 +20,50 @@ Timing_engraver::fill_staff_info (Staff_info &inf)
 
 
 ADD_THIS_TRANSLATOR(Timing_engraver);
+
+
+void
+Timing_engraver::do_post_move_processing( )
+{
+  bar_req_l_ = 0;
+  Timing_translator::do_post_move_processing ();
+}
+
+bool
+Timing_engraver::do_try_music (Music*m)
+{
+  if (Bar_req  * b= dynamic_cast <Bar_req *> (m))
+    {
+      if (bar_req_l_ && bar_req_l_->equal_b (b)) // huh?
+       return false;
+      
+      bar_req_l_ = b;
+      return true;
+    }
+  
+  return Timing_translator::do_try_music (m);
+}
+
+
+String
+Timing_engraver::which_bar ()
+{
+  if (!bar_req_l_)
+    {
+      if (!now_mom ())
+       return "|";
+
+      Scalar nonauto = get_property ("barNonAuto", 0);
+      if (!nonauto.to_bool ())
+       {
+         Scalar always = get_property ("barAlways", 0);
+         if (!time_.whole_in_measure_ || always.to_bool ())
+           return get_property ("defaultBarType" ,0);
+       }
+      return "";
+    }
+  else
+    {
+      return bar_req_l_->type_str_;
+    }
+}
index cbc5e008a63a9d69721442f69c830889843244f1..901d69f80b7ca90201f636c506acecba3cbd79aa 100644 (file)
@@ -49,7 +49,7 @@ Unfolded_repeat_iterator::next_element ()
     {
       done_mom_ += mus->repeat_body_p_->length_mom ();
 
-      if (!mus->volta_fold_b_)
+      if (full_unfold_b_)
        done_count_ ++;
      
       if (alternative_cons_l_)
@@ -57,7 +57,7 @@ Unfolded_repeat_iterator::next_element ()
          current_iter_p_ = get_iterator_p (alternative_cons_l_->car_);
          do_main_b_ = false;
        }
-      else if (done_count_ <  mus->repeats_i_ && !mus->volta_fold_b_) 
+      else if (done_count_ <  mus->repeats_i_ && full_unfold_b_)
        {
          current_iter_p_ = get_iterator_p (mus->repeat_body_p_);
          do_main_b_ = true;
@@ -73,20 +73,20 @@ Unfolded_repeat_iterator::next_element ()
        {
          done_mom_ += alternative_cons_l_->car_->length_mom ();
 
-         if (mus->volta_fold_b_ || 
+         if (!full_unfold_b_ || 
              mus->repeats_i_ - done_count_  < alternative_count_i_)
            alternative_cons_l_ = alternative_cons_l_->next_;
          
          /*
            we've done the main body as well, but didn't go over the other
            increment.  */
-         if (mus->volta_fold_b_)
+         if (full_unfold_b_)
            done_count_ ++;
        }
       
       if (done_count_ < mus->repeats_i_ && alternative_cons_l_)
        {
-         if (mus->volta_fold_b_)
+         if (!full_unfold_b_)
            current_iter_p_ = get_iterator_p (alternative_cons_l_->car_);
          else
            {
@@ -114,6 +114,8 @@ void
 Unfolded_repeat_iterator::construct_children ()
 {
   Repeated_music const* mus =dynamic_cast<Repeated_music const*> (music_l_);
+  full_unfold_b_ = playback_b_ || (!mus->volta_fold_b_);
+  
   alternative_cons_l_ = (mus->alternatives_p_)
     ? mus->alternatives_p_->music_p_list_p_->head_
     : 0;
index 3b44423d82cb69ef7d4230309ffd6bf01c5b758e..a6e51b93952155554fd109fbc14b1925f14557c7 100644 (file)
@@ -20,8 +20,8 @@ bigger = 1
 
 center=0
 
-break =  \penalty  10000; 
-nobreak =  \penalty  -10000; 
+break =  \penalty  -1000000; 
+nobreak =  \penalty 1000000; 
 
 major = 0
 minor = 3
index fadc695390b9f49211b01eaaac019070885ee274..1e8acfac4360827004782a0e34793cc5eb61b697 100644 (file)
@@ -188,7 +188,8 @@ StaffGroupContext= \translator {
 };
 \translator { \StaffGroupContext }
 
-\translator{
+% UGH! JUNKME
+LyricsVoiceContext= \translator{
        \type "Engraver_group_engraver";
        \consistsend "Axis_group_engraver";
 
@@ -197,9 +198,10 @@ StaffGroupContext= \translator {
        \consists "Lyric_engraver";
        \consists "Extender_engraver";
        \consists "Hyphen_engraver";
-}
+};
+\translator{ \LyricsVoiceContext }
 
-\translator {
+LyricsContext = \translator {
        \type "Engraver_group_engraver";
        \name Lyrics;
        \consists Vertical_align_engraver;%need this for getting folded repeats right.
@@ -207,7 +209,8 @@ StaffGroupContext= \translator {
        \consistsend "Axis_group_engraver";
        
        \accepts "LyricVoice";
-}
+};
+\translator { \LyricsContext }
 
 \translator{
        \type "Engraver_group_engraver";
@@ -271,13 +274,14 @@ ScoreContext = \translator {
        \name Score;
 
        \consists "Timing_engraver";
+
        \consists "Span_score_bar_engraver";
        \consists "Score_priority_engraver";
        \consists "Spacing_engraver";
        \consists "Vertical_align_engraver";
        alignmentReference = \down;
        defaultClef = treble;
-
+       defaultBarType = "|";
        \accepts "Staff";
        \accepts "StaffGroup";
        \accepts "RhythmicStaff";       
index 114d34f20f19b0565a57dcb0655f4fa4e3b94b35..d47242bf580d3002d741322a90d62b1c6eacc36d 100644 (file)
@@ -2,4 +2,5 @@
 \midi {
         \tempo 4=60;
        \include "performer.ly"
+%      unfold_all = "1";
 }
index f0e9893b8d37316d3adcd8f1ee4272ace3913a4b..96b0057fa82b2a8893ccdb8b23b5765cb45313da 100644 (file)
@@ -9,12 +9,11 @@ paperfile = \papersize + ".ly";
 interline = \staffheight / 4.0;
 
 
-% thickness of stafflines
-staffline = \interline / 10.0;
+stafflinethickness = \interline / 10.0;
 
 % urg, need grace_ versions of these too?
-beam_thickness = 0.52 * (\interline - \staffline);
-interbeam = (2.0 * \interline + \staffline - \beam_thickness) / 2.0;
+beam_thickness = 0.52 * (\interline - \stafflinethickness);
+interbeam = (2.0 * \interline + \stafflinethickness - \beam_thickness) / 2.0;
 interbeam4 = (3.0 * \interline - \beam_thickness) / 3.0;
 
 % stems and beams
@@ -153,8 +152,8 @@ tie_y_gap = 0.25 * \interline;
 tie_staffspace_length = 4.0 * \interline;
 
 % ugh: rename to bow (in bezier.cc and fonts.doc too...)
-% slur_thickness = 1.8 * \staffline;
-slur_thickness = 1.4 * \staffline;
+% slur_thickness = 1.8 * \stafflinethickness;
+slur_thickness = 1.4 * \stafflinethickness;
 
 %{
  Specifies the maximum height of slurs.
@@ -178,9 +177,6 @@ slur_rc_factor = 2.4;
 % ugh
 notewidth = (\quartwidth + \wholewidth) / 2.0;
 
-% ugh
-rulethickness = \staffline;
-
 gourlay_energybound = 100000.;
 %{
 Maximum number of measures per line to try when using Gourlay
@@ -200,23 +196,23 @@ barthick_thin = 0.1*\interline;
 
 %}
 
-bar_kern = 3.0 * \staffline;
-bar_thinkern = 3.0 * \staffline;
-barthick_thick = 6.0* \staffline;
-barthick_thin = 1.6*\staffline;
-barthick_score = 1.6*\staffline;
+bar_kern = 3.0 * \stafflinethickness;
+bar_thinkern = 3.0 * \stafflinethickness;
+barthick_thick = 6.0* \stafflinethickness;
+barthick_thin = 1.6*\stafflinethickness;
+barthick_score = 1.6*\stafflinethickness;
 
 tuplet_spanner_gap = 2.0 * \interline;
-tuplet_thick = 1.0*\staffline;
-volta_thick = 1.6*\staffline;
+tuplet_thick = 1.0*\stafflinethickness;
+volta_thick = 1.6*\stafflinethickness;
 volta_spanner_height = 2.0 *\interline;
 
 % relative thickness of thin lines  1.6 : 1 : 0.8
-stemthickness = 0.8*\staffline;
-rulethickness = \staffline;
+stemthickness = 0.8*\stafflinethickness;
+rulethickness = \stafflinethickness;
 
 
-extender_height = 0.8*\staffline;
+extender_height = 0.8*\stafflinethickness;
 
 hyphen_thickness = 0.05*\font_normal;
 hyphen_height = 0.2*\font_normal;
@@ -228,12 +224,17 @@ mmrest_x_minimum = 1.4*\staffheight;
 
 % chop off this much when next to pp / ff sign.
 crescendo_shorten = 4.0 * \interline;
-crescendo_thickness   = \staffline;
+crescendo_thickness   = \stafflinethickness;
+crescendo_height = 1.5 * \interline;
 
 % in internote.
 restcollision_minimum_dist = 3.0;
 restcollision_minimum_beamdist = 1.5;
 
+
+% unit for note collision resolving
+collision_note_width = \notewidth;     %ugh.
+
 % deprecated!
 postBreakPadding = 0.0;
 
index 351e34d0081ea93f7963a8df9e2b27176e87ff41..ea41ac9656b675a4665b2016e1986073985daca6 100644 (file)
@@ -66,17 +66,13 @@ voicefour =
 % ugh, cluttering global namespace...
 
 % ugh2. 
-none=0
-free=0
-normal=1
-traditional=2
 infinity=10000
 
 beamslopeproportional = 
-       \property Score.beamslopedamping = \none
+       \property Score.beamslopedamping = 0
 
 beamslopedamped = 
-       \property Score.beamslopedamping = \normal
+       \property Score.beamslopedamping = 1
 
 
 beamslopezero = 
@@ -86,15 +82,15 @@ beamslopezero =
 % this sucks, you'd want to pass an array, at least
 % (or embedded code: you still can't dictate the slope / stemlength)
 beamposfree = 
-       \property Score.beamquantisation = \none
+       \property Score.beamquantisation = 0
 
 
 beamposnormal = 
-       \property Score.beamquantisation = \normal
+       \property Score.beamquantisation = 1
 
 
 beampostraditional = 
-       \property Score.beamquantisation = \traditional
+       \property Score.beamquantisation = 2
 
 
 slurnormal = 
index 30d2c850458c6357f5a56953cc4968539b1fde16..74c0e642e9efe9969ed7a05d5130114c9af2a1a5 100644 (file)
@@ -17,7 +17,7 @@ Prereq: tetex
 %package documentation
 Summary: Prebuilt website containing all LilyPond documentation.
 Group: Applications/Publishing
-BuildArchitectures: noarch
+BuildArchitectures: noarch
 
 %description documentation
 @BLURB@
index 1b497ebb497fca36a7eeeac6a5814a347ae77a9a..2997e737835986d16ebe0034621e3d1d6ea95173 100644 (file)
@@ -1,18 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.2.14
-Entered-date: 17OCT99
+Version: 1.2.15
+Entered-date: 18OCT99
 Description: 
-LilyPond is a music typesetter.  It produces beautiful sheet music
-using a high level description file as input.  LilyPond is part of 
-the GNU Project.
 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.2.14.tar.gz 
+       1000k lilypond-1.2.15.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.2.14.tar.gz 
+       1000k lilypond-1.2.15.tar.gz 
 Copying-policy: GPL
 End
index 50e15ffa17c72dd4033ce1bb8850c6c38e7493b7..7105c3e1f6479477ed82fabb348f0269b56ee0fd 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.2.14
+Version: 1.2.15
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.2.14.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.2.15.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
@@ -13,19 +13,14 @@ Prereq: tetex
 
 %description 
 
-LilyPond is a music typesetter.  It produces beautiful sheet music
-using a high level description file as input.  LilyPond is part of 
-the GNU Project.
 
 %package documentation
 Summary: Prebuilt website containing all LilyPond documentation.
 Group: Applications/Publishing
+# BuildArchitectures: noarch
 
 %description documentation
 
-LilyPond is a music typesetter.  It produces beautiful sheet music
-using a high level description file as input.  LilyPond is part of 
-the GNU Project.
 
 The documentation package is rather big, due to the many pictures and
 different documentation formats.  It is really a rip-off from the
@@ -63,10 +58,10 @@ cp buildscripts/out/lilypond-login $RPM_BUILD_ROOT/etc/profile.d/lilypond.csh
 #%install documentation
 #line 63: second %install
 # again, make sure that main package installs even if doco fails
-mkdir -p htmldocs
-tar -C htmldocs -xzf out/htmldoc.tar.gz
+mkdir -p htmldocs/out
+tar -C htmldocs -xzf out/htmldoc.tar.gz || true
 mkdir -p out/examples/
-tar -cf - input/  | tar -C out/examples/ -xf-
+tar -cf - input/  | tar -C out/examples/ -xf- || true
 
 %post
 
index 9dce8fb5038d7bbae3a1e809fc0b898a8c596c90..a311af2b9232b2b4a92a6330dabcc2476edade2a 100644 (file)
@@ -9,14 +9,13 @@ depth = .
 # descent order into subdirectories:
 #
 SUBDIRS = scripts buildscripts  flower lib lily mf midi2ly po debian \
-       Documentation ly input tex make mutopia test intl stepmake\
+       Documentation ly input tex make mutopia intl stepmake\
        ps  scm
 #
 
 SCRIPTS = configure aclocal.m4
-README_FILES =  DEDICATION ANNOUNCE-0.1 ANNOUNCE-1.0 ANNOUNCE-1.2 \
- COPYING NEWS-0.1 NEWS-1.0 NEWS-0.0 NEWS-1.1  NEWS TODO AIMS  CHANGES
-README_TXT_FILES = README.txt AUTHORS.txt INSTALL.txt 
+README_FILES =  DEDICATION COPYING NEWS TODO CHANGES
+README_TXT_FILES = README.txt INSTALL.txt 
 IN_FILES := $(wildcard *.in)
 EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES)  $(SCRIPTS) $(IN_FILES) 
 NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES)
index fbffbfc7e5529efef7195b2e288137e686d6f02a..dbd16551f6f04c0cd9f05596a3b24887e832f487 100644 (file)
@@ -11,13 +11,16 @@ The piece was performed in Ludvika and 
 March 13-14, 1999, by Bergslagens Kammarsymfoniker conducted 
 by Ola Karlsson.
 
+The piece is for a small symphony orchestra with (using standard
+notation for orchestral settings): 1121-2200-10-strings
+
 Christian Mondrup has provided the following background on the
 piece: 
 It was composed 1850 as a ouverture for the comedy "Imellem 
-Fjeldene" by the danish poet Carsten Hauch. In the Andante 
+Fjeldene" by the Danish poet Carsten Hauch. In the Andante 
 introduction, Gade uses a melody from the collection ``Norske 
 Folkesagn og Melodier'' (``Norwegian folksongs and melodies'') 
-by the danish composer A.P. Bergreen. The song has a norwegian 
+by the Danish composer A.P. Bergreen. The song has a Norwegian 
 text ``Heimreise fraa Sæteren'' by Edvard Storm. The second 
 theme of the Allegro part might very well come from the same
 collection, namely the song ``Saag du nokke Kjærringa mi''.
index 9094208b4ad2f7bae732391356902087e0ad04a6..34deb5ed7cf214e5f48d3e3b205a193ff55231a8 100644 (file)
@@ -203,13 +203,13 @@ R2 |
 e4 \fz r
 }
 
-corIhelp=\notes\relative c''' {
+corIcue=\notes\relative c''' {
 \key c;
 \tiny
 
 s2.*32 |
 s2*33 | \stemup
-r4 r8 [g16^"oboe" \p ( a ] |
+r4 r8 [g16^"oboe" ( a ] |
 [ ) g8-. fis16 ( g ][ ) fis8-. f16 ( g ] |
 [ ) f8-. e16 ( f ] ) e8-. s | \stemboth
 s2*66 |
@@ -219,7 +219,7 @@ s2*66 |
 ) e4 r |
 }
 
-corIIhelp=\notes\relative c'' {
+corIIcue=\notes\relative c'' {
 \key c;
 \tiny
 
@@ -517,7 +517,7 @@ R2 |
 g4 \fz r
 }
 
-trpIhelp=\notes\relative c'' {
+trpIcue=\notes\relative c'' {
 \tiny
 
 s2.*32 |
@@ -545,7 +545,7 @@ r4^"Flauto" r8 [c'16 ( d] |
 )bes8 [a16 ( bes ] ) a8 
 }
 
-trpIIhelp=\notes\relative c'' {
+trpIIcue=\notes\relative c'' {
 \tiny
 
 [c8.^"Oboe" ( d16] ) c2 |
@@ -845,7 +845,7 @@ r2 |
 f4 \fz r 
 }
 
-timphelp=\notes\relative c' {
+timpcue=\notes\relative c' {
 \tiny
 
 [c8.^"Oboe, \\okt" ( d16] ) c2 |
index f9326fc15559819b2913f577cc3153847202b1a4..d6181f7dd5259e20394e3b93f0e17d81b38eea1e 100644 (file)
@@ -43,7 +43,7 @@ my_paper = \paper {
       \marks
       \flauto
     >
-    \context Voice = help \flautohelp
+    \context Voice = cue \flautocue
   >
   \header{
     instrument = "Flauto";
@@ -64,7 +64,7 @@ my_paper = \paper {
       \marks
       \oboe
     >
-    \context Voice = help \oboehelp
+    \context Voice = cue \oboecue
   >
   \header{
     instrument = "Oboe";
@@ -139,7 +139,7 @@ my_paper = \paper {
       \marks
       \corI
     >
-    \context Voice = help \corIhelp
+    \context Voice = cue \corIcue
   >
   \header{
     instrument = "Corno I in F";
@@ -160,7 +160,7 @@ my_paper = \paper {
       \marks
       \corII
     >
-    \context Voice = help \corIIhelp
+    \context Voice = cue \corIIcue
   >
   \header{
     instrument = "Corno II in F";
@@ -181,7 +181,7 @@ my_paper = \paper {
       \marks
       \trpI
       >
-    \context Voice = help \trpIhelp
+    \context Voice = cue \trpIcue
   >
   \header{
     instrument = "Tromba I in B\\textflat";
@@ -202,7 +202,7 @@ my_paper = \paper {
       \marks
       \trpII
     >
-    \context Voice = help \trpIIhelp
+    \context Voice = cue \trpIIcue
   >
   \header{
     instrument = "Tromba II in B\\textflat";
@@ -223,7 +223,7 @@ my_paper = \paper {
       \marks
       \timpani
     >
-    \context Voice = help \timphelp
+    \context Voice = cue \timpcue
   >
   \header{
     instrument = "Timpani \& Triangolo";
index 9daff0680a7ab89fd7a663a3784e54ef2d9e31c0..7680cffceddf5a7a9fc1b8d01a266f2a9b40c6a3 100644 (file)
@@ -135,8 +135,7 @@ copyright = "Mats Bengtsson, 1999. Free circulation permitted and " +
         markScriptPadding = "20.0";
     }
     \translator { 
-%        \HaraKiriStaffContext % Gives lost bar lines and misplaced marks!!
-        \StaffContext
+        \HaraKiriStaffContext 
        \consists "Staff_margin_engraver";
         marginScriptPadding = "15.0";
         dynamicPadding = 3.0;
index 8df8e869f51be33f69cfbf2e4aeb375a28c37d5c..0e17a3a0ddf2f9088267e2cc7a57c710c6783137 100644 (file)
@@ -566,7 +566,7 @@ vla=\notes\relative c' {
 \property Staff."midiInstrument" = "viola"
 
 [c8. \f ( d16 ] ) c2_"dim." |
-\context Staff <{\voiceone s4 c2 |
+\context Staff <{\voiceone [c8. d16 ] c2 |
   c2. ~ |
   c2. ~ |
   c2. ~ |
index 0221e01cc5a21a1676b23fd7d45af27e41920af6..84a5062b90eef27298341e65abd69140c55bdf99 100644 (file)
@@ -471,7 +471,7 @@ fis \> ~ | % cresc. added
 \! fis4 r | % dim. added
 R2*4 |
 e'2 \fz \> ( |
-) \! fis,4 r |
+) fis,4 \! r |
 b2 \> ( |
 ) \! ais4 r |
 fis2 \pp \< ~ |
@@ -480,7 +480,7 @@ fis \> ~ |
 \! fis4 r |
 R2*4 |
 e'2 \fz \> ( |
-) \! fis,4 r |
+) fis,4 \! r |
 e'2 \p ( |
 ) ais, |
 R2*2 |
@@ -902,7 +902,7 @@ e2 \p \< ~ |
 \! e \< ~ |
 \! e \> |
 \grace d'8 ( )  \! f2 \fz \> ( |
-) \! e4. r8 |
+) e4. \! r8 |
 f,2 \> ( ( |
 [ ) \! e8 d c ) b ] | 
 a2 \pp \< ~ |
@@ -914,7 +914,7 @@ e ~ |
 e ~ |
 e |
 \grace d'8 ( ) f2 \fz \> ( |
-) \! e4. r8 |
+) e4. \! r8 |
 f,2 \p ( |
 ) e4 r |
 f'2-> ( |
@@ -1033,7 +1033,7 @@ f ( |
 ) c'4 \fz r
 }
 
-oboehelp=\notes\relative c'' {
+oboecue=\notes\relative c'' {
 \tiny
 
 s2.*32 |
@@ -1045,7 +1045,7 @@ s2*106 |
 [e c ) d] s |
 }
 
-flautohelp=\notes\relative c'' {
+flautocue=\notes\relative c'' {
 \tiny
 
 s2.*32 |
index 9c9ae7a896b0d1ecbbcb03551997c238910f64ba..8eafa4922afbf34b7b1b0447da981bc4a41ce454 100644 (file)
 
   (define (lily-def key val)
     (string-append
-     "\\def\\" (output-tex-string key) "{" (output-tex-string val) "}\n"))
+     "\\def\\"
+;     (regexp-substitute/global #f "_" (output-tex-string key) 'pre "X" 'post)
+     (output-tex-string key)
+     "{" (output-tex-string val) "}\n"))
 
   (define (number->dim x)
     (string-append 
diff --git a/test/GNUmakefile b/test/GNUmakefile
deleted file mode 100644 (file)
index f4392fb..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# title           makefile for test
-# test/Makefile
-
-depth = ..
-
-NAME = lily-test
-MODULE_NAME = lily-test
-
-MODULE_CXXFLAGS = -I$(depth)/flower/include -I$(depth)/flower -I$(depth)/lily/include -I$(depth)/lily
-STEPMAKE_TEMPLATES=c++
-
-include $(depth)/make/stepmake.make
-
-# default: $(EXECUTABLE)
-
-# include $(stepdir)/Executable.make
-
diff --git a/test/bow.cc b/test/bow.cc
deleted file mode 100644 (file)
index 4185388..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-// vim:sw=2 makeprg=g++\ -g\ bow.cc\ -o\ bow
-#include <iostream.h>
-#define PT
-// #define STAFFHEIGHT 16.0
-#define STAFFHEIGHT 20.0
-
-#define UP 1
-#define DOWN (-1)
-
-// mmm
-#define STANDALONE
-
-#include <math.h>
-
-typedef void *Paper_def;
-
-bool experimental_features_global_b = true;
-//bool experimental_features_global_b = false;
-
-#include "bezier.hh"
-
-#if 0
-#include "offset.cc"
-#include "interval.cc"
-#endif
-
-#include "misc.cc"
-#include "bezier.cc"
-
-struct Point
-{
-  Real x, y;
-};
-
-void
-out (Bezier_bow& b)
-{
-  cout << "save dx,dy,x,y;\n";
-  for (int i = 0; i < 4; i++)
-      cout << "z" << i + 1 << " = (" << b.control_[i].x ()
-       << ", " << b.control_[i].y () << ");\n";
-  for (int i = 1; i < 3; i++)
-      cout << "z" << i + 4 << " = (" << b.return_[i].x ()
-       << ", " << b.return_[i].y () << ");\n";
-#if 0
-  cout << "pickup pencircle scaled 0.5pt#;\n";
-  cout << "draw z2--z3; draw (50,0)-- 0.5[z2,z3];\n";
-#endif
-  cout << "pickup pencircle scaled 4pt#;\n";
-  for (int i = 0; i < 4; i++)
-    cout << "drawdot z" << i + 1 << ";\n";
-  cout << "path boogje;\n";
-#if 0
-  cout << "pickup pencircle scaled 0.4pt#;\n";
-  cout << "boogje=z1..controls z2 and z3..z4..controls z5 and z6..cycle;\n";
-  cout << "filldraw boogje;\n";
-#else
-  cout << "pickup pencircle scaled 1.6pt#;\n";
-  cout << "boogje=z1..controls z2 and z3..z4;\n";
-  cout << "draw boogje;\n";
-  cout << "pickup pencircle scaled 0.4pt#;\n";
-  cout << "boogje:=z4..controls z5 and z6..z1;\n";
-  cout << "draw boogje;\n";
-#endif
-  cout << "showit; shipit;clearit;" << endl;
-}
-
-void
-bow (Point* points, int n, int d)
-{
-  Array<Offset> notes;
-  for (int i = 0; i < n; i++)
-    notes.push (Offset (points[i].x, points[i].y));
-#if 1
-  cout << "pickup pencircle scaled 8pt#;\n";
-#else
-  cout << "pickup pencircle scaled 2pt#;\n";
-#endif
-  for (int i = 0; i < n; i++)
-    cout << "drawdot (" << notes[i].x () << ", " << notes[i].y () << ");\n";
-  Bezier_bow b (0);
-  b.set (notes, d);
-  b.calc ();
-  out (b);
-  return;
-}
-
-int
-main ()
-{
-  //cout.unsetf(ios::scientific);
-  cout.setf(ios::fixed);
-#if 1
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,30, 60,30, 80,0, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,10, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,40, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,40, 80,0, 100,1 }, 6, 1);
-  bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, 1);
-  bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1);
-  bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,100 }, 6, -1);
-  bow ((Point[9]){ 0,0, 20,0, 40,-80, 60,0, 80,0, 100,0, 120,0, 140,0, 160,-1 }, 9, -1);
-  bow ((Point[9]){ 0,0, 40,0, 80,180, 120,0, 160,0, 200,0, 240,0, 280,0, 320,1 }, 9, 1);
-  bow ((Point[9]){ 
-  {0, 0}, 
-  {19.10645980317711, 1}, 
-  {29.402919606354207, 28}, 
-  {55.389379409531308, 1}, 
-  {73.530839212708514, 1}, 
-  {91.672299015885727, 1}, 
-  {111.35901367452229, 1}, 
-  {131.04572833315891, 1}, 
-  {145.76744299179552, 0}
-  }, 
-  9, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,40 }, 6, 1);
-  bow ((Point[2]){ 0,0, 20,0 }, 2, 1);
-  bow ((Point[2]){ 0,0, 20,-10 }, 2, 1);
-  bow ((Point[6]){ 0,0, 20,0, 40,0, 60,0, 80,0, 100,100 }, 6, 1);
-
-  bow ((Point[6]){ 0,0, 20,-10, 40,20, 60,-20, 80,20, 100,0 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,-10, 40,20, 60,-20, 80,20, 100,0 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,20, 40,0, 60,40, 80,20, 100,100 }, 6, -1);
-
-  bow ((Point[6]){ 0,-10, 20,-20, 40,0, 60,-40, 80,-20, 100,-50 }, 6, 1);
-
-  bow ((Point[6]){ 0,10, 20,20, 40,0, 60,40, 80,20, 100,50 }, 6, -1);
-#endif
-
-#if 1
-  //clipping
-
-  bow ((Point[6]){ 0,0, 20,60, 40,0, 60,0, 80,0, 100,1 }, 6, 1);
-
-  bow ((Point[6]){ 0,1, 20,0, 40,0, 60,0, 80,60, 100,0 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,20, 100,100 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-20, 100,-100 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1);
-  bow ((Point[7]){ 0,0, 20,40, 100,0, 150,0, 200,0, 280,40, 300,0 }, 7, 1);
-  bow ((Point[7]){ 0,0, 20,-40, 100,0, 150,0, 200,0, 280,-40, 300,0 }, 7, -1);
-  bow ((Point[7]){ 0,20, 20,40, 100,0, 150,0, 200,0, 280,40, 300,20 }, 7, 1);
-  bow ((Point[3]){ 0,0, 10,10, 20,-20 }, 3, 1);
-
-  bow ((Point[4]){ 0,0, 33,100, 75,0, 100,100 }, 4, -1);
-  bow ((Point[4]){ 0,0, 33,-100, 75,0, 100,-100 }, 4, 1);
-#endif
-
-#if 1
-  // infeasible
-
-  bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1);
-  bow ((Point[6]){ 0,0, 20,-40, 40,0, 60,20, 80,20, 100,40 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,-20, 40,-20, 60,-20, 80,-80, 100,-40 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,-20, 40,-40, 60,-60, 80,-140, 100,-100 }, 6, -1);
-  bow ((Point[6]){ 0,0, 20,20, 40,40, 60,60, 80,140, 100,100 }, 6, 1);
-#endif
-
-  cout << "\\end" << endl;
-
-  return 0;
-}
-
diff --git a/test/hash.cc b/test/hash.cc
deleted file mode 100644 (file)
index ee67572..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <stdio.h>
-#include <iostream.h>
-#include "dictionary-iter.hh"
-
-
-
-main ()
-{
-  Dictionary<String> *dict = new Dictionary<String>;
-  
-  char s[1000];
-
-  dict->elem("foo") = "bar";
-  dict->elem("bla") = "ba";
-  dict->elem("blo") = "bar";
-  
-  while (gets (s))
-    {
-      String str (s);
-
-      int l = str.length_i ();
-
-      dict->elem (str.left_str (l/2)) = str.right_str (l/2);
-    }
-
-  int i=1000;
-  while (i--)
-    {
-      Dictionary<String> *dict2=new Dictionary<String> (*dict);
-      delete dict;
-      dict = dict2;
-    }
-
-  for (Dictionary_iter<String> i (*dict); i.ok (); i++)
-    {
-      cout << i.key () << " == " << i.val () << endl;
-      cout << "elem_b: " << dict->elem_b (i.key ()) << ", key " << i.key () << " val " << dict->elem (i.key ()) <<endl;
-    }
-}
diff --git a/test/int.cc b/test/int.cc
deleted file mode 100644 (file)
index 47b5243..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-// vim:sw=2 makeprg=g++\ -g\ bow.cc\ -o\ bow
-#include <iostream.h>
-#define PT
-// #define STAFFHEIGHT 16.0
-#define STAFFHEIGHT 20.0
-
-#define UP 1
-#define DOWN (-1)
-
-// mmm
-#define STANDALONE
-
-#include <math.h>
-
-typedef void *Paper_def;
-
-bool experimental_features_global_b = true;
-
-#include "misc.cc"
-
-int
-main ()
-{
-  //cout.unsetf(ios::scientific);
-  cout.setf(ios::fixed);
-
-  Array<Real> a;
-  a.push (3.4);
-  a.push (3.9);
-  Interval iv;
-
-  iv = quantise_iv (a, 4, 3.5);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  iv = quantise_iv (a, 4, -1.5);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  iv = quantise_iv (a, 4, -7.5);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  iv = quantise_iv (a, 4, 3.4);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  iv = quantise_iv (a, 4, 3.9);
-  cout << "iv: " << iv.min () << ", " << iv.max () << endl;
-
-  cout << "\\end" << endl;
-
-  return 0;
-}
-
index da9907c536de0d950d32eee236e6d375a25182cc..084d51ce5515d5f0c2df0f3d3e490c61e3ed9956 100644 (file)
@@ -8,13 +8,7 @@
 % note the ! sign.  See dvips.info for details.
 %
 
-% Use of 
-% /foo { operatorname } bind def
-%
-% ``compiles'' operatorname binding in the body of foo, making
-% the code faster, and more reliable (less flexible)
-
-
+% ARG. Fix brackets
 \def\turnOnPostScript{%
         % This sets CTM so that you get to the currentpoint
         % by executing a 0 0 moveto
@@ -23,7 +17,7 @@
         }
         %
         \special{! 
-/stafflinethickness \mudelapaperstaffline\space def
+/stafflinethickness \mudelapaperstafflinethickness\space def
 /interline \mudelapaperinterline\space def
 interline 3 div /bracket_b exch def
 interline 2 mul /bracket_w exch def