From: fred <fred>
Date: Tue, 26 Mar 2002 22:41:53 +0000 (+0000)
Subject: lilypond-1.2.15
X-Git-Tag: release/1.5.59~2047
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=3fa1c07ce3b7ab0d7432dd4338e67e8106d6b28f;p=lilypond.git

lilypond-1.2.15
---

diff --git a/Documentation/misc/AIMS b/Documentation/misc/AIMS
new file mode 100644
index 0000000000..ae5d5a9658
--- /dev/null
+++ b/Documentation/misc/AIMS
@@ -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
index 0000000000..8ed22c92be
--- /dev/null
+++ b/Documentation/misc/ANNOUNCE-0.1
@@ -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
index 0000000000..33190c9cf2
--- /dev/null
+++ b/Documentation/misc/ANNOUNCE-1.0
@@ -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
index 0000000000..ec9bef6cd2
--- /dev/null
+++ b/Documentation/misc/ANNOUNCE-1.2
@@ -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
index 0000000000..f936254a1f
--- /dev/null
+++ b/Documentation/misc/CHANGES-0.0
@@ -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
index 0000000000..f5e3562839
--- /dev/null
+++ b/Documentation/misc/CHANGES-0.1
@@ -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
index 0000000000..5cff9ea377
--- /dev/null
+++ b/Documentation/misc/CHANGES-1.0
@@ -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
index 0000000000..b98baa12cf
--- /dev/null
+++ b/Documentation/misc/CHANGES-1.1
@@ -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
index 0000000000..55a1efe7ed
--- /dev/null
+++ b/Documentation/misc/GNUmakefile
@@ -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
index 0000000000..d3499b3490
--- /dev/null
+++ b/Documentation/misc/NEWS-1.2
@@ -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
index 0000000000..d3499b3490
--- /dev/null
+++ b/Documentation/misc/NEWS-1.2~
@@ -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
index 0000000000..8a84edbeb8
--- /dev/null
+++ b/Documentation/misc/index.texi
@@ -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
index 0000000000..4526280199
--- /dev/null
+++ b/Documentation/misc/interview
@@ -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.
+
diff --git a/Documentation/user/tutorial.itely b/Documentation/user/tutorial.itely
index 35b5dc0cae..5029f7fa34 100644
--- a/Documentation/user/tutorial.itely
+++ b/Documentation/user/tutorial.itely
@@ -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 66e89bcf1c..5d740e231d 100644
--- 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/buildscripts/lilypond-login.sh b/buildscripts/lilypond-login.sh
index d7e8e972d8..ca9d6c5c9f 100644
--- a/buildscripts/lilypond-login.sh
+++ b/buildscripts/lilypond-login.sh
@@ -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
 
 
diff --git a/buildscripts/lilypond-profile.sh b/buildscripts/lilypond-profile.sh
index 6aebf7b701..f2083862de 100644
--- a/buildscripts/lilypond-profile.sh
+++ b/buildscripts/lilypond-profile.sh
@@ -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
 
 
diff --git a/flower/include/parray.hh b/flower/include/parray.hh
index 8a2efcb6fd..a9baeab836 100644
--- a/flower/include/parray.hh
+++ b/flower/include/parray.hh
@@ -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();
diff --git a/input/bugs/core.ly b/input/bugs/core.ly
index 5564617f77..2ad2caf191 100644
--- a/input/bugs/core.ly
+++ b/input/bugs/core.ly
@@ -15,9 +15,6 @@ global = \notes {
 	\paper {
 		\translator{ 
 			\StaffContext
-
-			% other core dump when this is removed?
-			\remove "Time_signature_engraver";
 		}
 	}
 }
diff --git a/input/star-spangled-banner.ly b/input/star-spangled-banner.ly
index e4bbe8d76e..d16dadc5e6 100644
--- a/input/star-spangled-banner.ly
+++ b/input/star-spangled-banner.ly
@@ -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
index 0000000000..ce65bb178b
--- /dev/null
+++ b/input/test/break.ly
@@ -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
index 0000000000..0e714c34f6
--- /dev/null
+++ b/input/test/lyrics-bar.ly
@@ -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/lily/auto-beam-engraver.cc b/lily/auto-beam-engraver.cc
index 28fc85fa65..69b9a4f6ed 100644
--- a/lily/auto-beam-engraver.cc
+++ b/lily/auto-beam-engraver.cc
@@ -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]);
diff --git a/lily/bar-engraver.cc b/lily/bar-engraver.cc
index 84ada321e8..2aa4904054 100644
--- a/lily/bar-engraver.cc
+++ b/lily/bar-engraver.cc
@@ -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
index 0000000000..2eafaed254
--- /dev/null
+++ b/lily/bar-req-collect-engraver.cc
@@ -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"
+
diff --git a/lily/bar.cc b/lily/bar.cc
index 95ffc72519..f21d68fbac 100644
--- a/lily/bar.cc
+++ b/lily/bar.cc
@@ -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_ = "|";
diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc
index b34d329d94..5ba4ed9306 100644
--- a/lily/beam-engraver.cc
+++ b/lily/beam-engraver.cc
@@ -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;
diff --git a/lily/beam.cc b/lily/beam.cc
index 92a92050a2..83d83260ae 100644
--- a/lily/beam.cc
+++ b/lily/beam.cc
@@ -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");
 
diff --git a/lily/bezier.cc b/lily/bezier.cc
index 7a7a1f6833..9acb9004e9 100644
--- a/lily/bezier.cc
+++ b/lily/bezier.cc
@@ -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 ();
diff --git a/lily/break-algorithm.cc b/lily/break-algorithm.cc
index fd5955fc38..40d7b84e97 100644
--- a/lily/break-algorithm.cc
+++ b/lily/break-algorithm.cc
@@ -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
diff --git a/lily/break-align-item.cc b/lily/break-align-item.cc
index a391411db9..32e573a68c 100644
--- a/lily/break-align-item.cc
+++ b/lily/break-align-item.cc
@@ -139,8 +139,6 @@ Break_align_item::do_pre_processing()
 				 
 }
 
-
-
 Break_align_item::Break_align_item ()
 {
   stacking_dir_ = RIGHT;
diff --git a/lily/collision.cc b/lily/collision.cc
index c5424710cd..c8e97cc998 100644
--- a/lily/collision.cc
+++ b/lily/collision.cc
@@ -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);
diff --git a/lily/column-x-positions.cc b/lily/column-x-positions.cc
index 91c616fcb0..eb4c983701 100644
--- a/lily/column-x-positions.cc
+++ b/lily/column-x-positions.cc
@@ -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
diff --git a/lily/command-request.cc b/lily/command-request.cc
index ce13bab7fe..35f0cdac4c 100644
--- a/lily/command-request.cc
+++ b/lily/command-request.cc
@@ -157,7 +157,6 @@ Key_change_req::Key_change_req ()
 
 Break_req::Break_req ()
 {
-  penalty_i_ = 0;
 }
 
 Mark_req::Mark_req (String s)
diff --git a/lily/crescendo.cc b/lily/crescendo.cc
index 8257150872..01f2ba5a77 100644
--- a/lily/crescendo.cc
+++ b/lily/crescendo.cc
@@ -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
index 0000000000..47300e660d
--- /dev/null
+++ b/lily/cross-staff.cc
@@ -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/engraver.cc b/lily/engraver.cc
index f8ed5e5d6a..6121e82eb1 100644
--- a/lily/engraver.cc
+++ b/lily/engraver.cc
@@ -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&)
diff --git a/lily/extender-spanner.cc b/lily/extender-spanner.cc
index dc7f4c22aa..2cedcea834 100644
--- a/lily/extender-spanner.cc
+++ b/lily/extender-spanner.cc
@@ -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);
 }
diff --git a/lily/gourlay-breaking.cc b/lily/gourlay-breaking.cc
index 533092aeee..63a6adc624 100644
--- a/lily/gourlay-breaking.cc
+++ b/lily/gourlay-breaking.cc
@@ -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;
 }
diff --git a/lily/hyphen-spanner.cc b/lily/hyphen-spanner.cc
index 990c24884b..86c840e7eb 100644
--- a/lily/hyphen-spanner.cc
+++ b/lily/hyphen-spanner.cc
@@ -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);
 }
diff --git a/lily/include/bar-engraver.hh b/lily/include/bar-engraver.hh
index bbb26c7c70..64f0063470 100644
--- a/lily/include/bar-engraver.hh
+++ b/lily/include/bar-engraver.hh
@@ -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
index 0000000000..126d2e0404
--- /dev/null
+++ b/lily/include/bar-req-collector-engraver.hh
@@ -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 */
+
diff --git a/lily/include/beam.hh b/lily/include/beam.hh
index 145bbddce0..9e1cbb8346 100644
--- a/lily/include/beam.hh
+++ b/lily/include/beam.hh
@@ -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_;
diff --git a/lily/include/break-algorithm.hh b/lily/include/break-algorithm.hh
index e0548adf9e..8a25d7b554 100644
--- a/lily/include/break-algorithm.hh
+++ b/lily/include/break-algorithm.hh
@@ -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;
diff --git a/lily/include/column-x-positions.hh b/lily/include/column-x-positions.hh
index 1048751401..d124535153 100644
--- a/lily/include/column-x-positions.hh
+++ b/lily/include/column-x-positions.hh
@@ -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;
 };
 
diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh
index b7a29e0f11..ee64d1fe27 100644
--- a/lily/include/command-request.hh
+++ b/lily/include/command-request.hh
@@ -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
index 0000000000..9fdfb97f84
--- /dev/null
+++ b/lily/include/cross-staff.hh
@@ -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/ly-symbols.hh b/lily/include/ly-symbols.hh
index 521fa3d06e..f0f3dd098d 100644
--- a/lily/include/ly-symbols.hh
+++ b/lily/include/ly-symbols.hh
@@ -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);
diff --git a/lily/include/music-iterator.hh b/lily/include/music-iterator.hh
index f7d9c061e3..d5ca0e0560 100644
--- a/lily/include/music-iterator.hh
+++ b/lily/include/music-iterator.hh
@@ -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();
diff --git a/lily/include/paper-def.hh b/lily/include/paper-def.hh
index 77942e8027..8615d9cf86 100644
--- a/lily/include/paper-def.hh
+++ b/lily/include/paper-def.hh
@@ -30,20 +30,18 @@
   
   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();
 
diff --git a/lily/include/paper-score.hh b/lily/include/paper-score.hh
index c17afddfee..7fad9b8b32 100644
--- a/lily/include/paper-score.hh
+++ b/lily/include/paper-score.hh
@@ -23,14 +23,7 @@
 
 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_;
 
diff --git a/lily/include/score-column.hh b/lily/include/score-column.hh
index 9c2097367e..eff9441bf3 100644
--- a/lily/include/score-column.hh
+++ b/lily/include/score-column.hh
@@ -26,16 +26,11 @@
   */
 
 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);
 
diff --git a/lily/include/score-element.hh b/lily/include/score-element.hh
index af9b484faa..25a30532ff 100644
--- a/lily/include/score-element.hh
+++ b/lily/include/score-element.hh
@@ -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_;
 };
 
 
diff --git a/lily/include/score-engraver.hh b/lily/include/score-engraver.hh
index e98e002681..2851980e05 100644
--- a/lily/include/score-engraver.hh
+++ b/lily/include/score-engraver.hh
@@ -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_;
diff --git a/lily/include/slur.hh b/lily/include/slur.hh
index bf61df4b86..2fb4b5ede4 100644
--- a/lily/include/slur.hh
+++ b/lily/include/slur.hh
@@ -15,12 +15,14 @@
  */
 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:
diff --git a/lily/include/timing-engraver.hh b/lily/include/timing-engraver.hh
index 00d55c5a46..99621579ec 100644
--- a/lily/include/timing-engraver.hh
+++ b/lily/include/timing-engraver.hh
@@ -18,9 +18,14 @@
  */
 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);
   
 };
diff --git a/lily/include/unfolded-repeat-iterator.hh b/lily/include/unfolded-repeat-iterator.hh
index 22888cf29a..71adef6598 100644
--- a/lily/include/unfolded-repeat-iterator.hh
+++ b/lily/include/unfolded-repeat-iterator.hh
@@ -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_;
diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc
index b2017c27af..311397cdd8 100644
--- a/lily/lily-guile.cc
+++ b/lily/lily-guile.cc
@@ -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 ();
 }
diff --git a/lily/music-iterator.cc b/lily/music-iterator.cc
index 9de2bb6af7..e5774c9f32 100644
--- a/lily/music-iterator.cc
+++ b/lily/music-iterator.cc
@@ -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;
 }
 
diff --git a/lily/paper-def.cc b/lily/paper-def.cc
index 620bbb660f..dc99d4d87b 100644
--- a/lily/paper-def.cc
+++ b/lily/paper-def.cc
@@ -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
diff --git a/lily/paper-score.cc b/lily/paper-score.cc
index 0d7cbfdddf..ef983e8053 100644
--- a/lily/paper-score.cc
+++ b/lily/paper-score.cc
@@ -24,12 +24,11 @@
 
 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;
      }
   
diff --git a/lily/score-column.cc b/lily/score-column.cc
index 6c5209a435..334a35d4ba 100644
--- a/lily/score-column.cc
+++ b/lily/score-column.cc
@@ -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
diff --git a/lily/score-element.cc b/lily/score-element.cc
index bdb4f4bd30..9282bfc010 100644
--- a/lily/score-element.cc
+++ b/lily/score-element.cc
@@ -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 ();
+}
diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc
index 1c1d39205c..76580cbb38 100644
--- a/lily/score-engraver.cc
+++ b/lily/score-engraver.cc
@@ -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);
diff --git a/lily/score.cc b/lily/score.cc
index 0c56c31bbe..5f9a2b65c5 100644
--- a/lily/score.cc
+++ b/lily/score.cc
@@ -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();
diff --git a/lily/separating-group-spanner.cc b/lily/separating-group-spanner.cc
index 590a10c78b..a07381b615 100644
--- a/lily/separating-group-spanner.cc
+++ b/lily/separating-group-spanner.cc
@@ -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;
 }
diff --git a/lily/simultaneous-music-iterator.cc b/lily/simultaneous-music-iterator.cc
index 1faaa67c13..7f1ff97560 100644
--- a/lily/simultaneous-music-iterator.cc
+++ b/lily/simultaneous-music-iterator.cc
@@ -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 */
diff --git a/lily/single-malt-grouping-item.cc b/lily/single-malt-grouping-item.cc
index c3804bf2b3..90227b09b2 100644
--- a/lily/single-malt-grouping-item.cc
+++ b/lily/single-malt-grouping-item.cc
@@ -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!
diff --git a/lily/slur.cc b/lily/slur.cc
index 0aa11a6ab4..c8582e8abb 100644
--- a/lily/slur.cc
+++ b/lily/slur.cc
@@ -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],
diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc
index 479855cdcd..967783c294 100644
--- a/lily/spacing-spanner.cc
+++ b/lily/spacing-spanner.cc
@@ -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);
 }
 
diff --git a/lily/staff-sym.cc b/lily/staff-sym.cc
index 4c33372710..7ab14e91ba 100644
--- a/lily/staff-sym.cc
+++ b/lily/staff-sym.cc
@@ -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)));
 
diff --git a/lily/stem-info.cc b/lily/stem-info.cc
index 8578c0e71b..4a9e06e05e 100644
--- a/lily/stem-info.cc
+++ b/lily/stem-info.cc
@@ -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_;
 }
 
diff --git a/lily/stem-tremolo.cc b/lily/stem-tremolo.cc
index 5f2667bb79..71dead81d1 100644
--- a/lily/stem-tremolo.cc
+++ b/lily/stem-tremolo.cc
@@ -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?
diff --git a/lily/stem.cc b/lily/stem.cc
index aef8245546..919969187c 100644
--- a/lily/stem.cc
+++ b/lily/stem.cc
@@ -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 ();
diff --git a/lily/timing-engraver.cc b/lily/timing-engraver.cc
index 953e802f4b..3fa208f15d 100644
--- a/lily/timing-engraver.cc
+++ b/lily/timing-engraver.cc
@@ -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_;
+    }
+}
diff --git a/lily/unfolded-repeat-iterator.cc b/lily/unfolded-repeat-iterator.cc
index cbc5e008a6..901d69f80b 100644
--- a/lily/unfolded-repeat-iterator.cc
+++ b/lily/unfolded-repeat-iterator.cc
@@ -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;
diff --git a/ly/declarations.ly b/ly/declarations.ly
index 3b44423d82..a6e51b9395 100644
--- a/ly/declarations.ly
+++ b/ly/declarations.ly
@@ -20,8 +20,8 @@ bigger = 1
 
 center=0
 
-break =  \penalty  10000; 
-nobreak =  \penalty  -10000; 
+break =  \penalty  -1000000; 
+nobreak =  \penalty 1000000; 
 
 major = 0
 minor = 3
diff --git a/ly/engraver.ly b/ly/engraver.ly
index fadc695390..1e8acfac43 100644
--- a/ly/engraver.ly
+++ b/ly/engraver.ly
@@ -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";	
diff --git a/ly/params.ly b/ly/params.ly
index f0e9893b8d..96b0057fa8 100644
--- a/ly/params.ly
+++ b/ly/params.ly
@@ -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;
 
diff --git a/ly/property.ly b/ly/property.ly
index 351e34d008..ea41ac9656 100644
--- a/ly/property.ly
+++ b/ly/property.ly
@@ -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 = 
diff --git a/make/toplevel.make.in b/make/toplevel.make.in
index 9dce8fb503..a311af2b92 100644
--- a/make/toplevel.make.in
+++ b/make/toplevel.make.in
@@ -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)
diff --git a/scm/lily.scm b/scm/lily.scm
index 9c9ae7a896..8eafa4922a 100644
--- a/scm/lily.scm
+++ b/scm/lily.scm
@@ -267,7 +267,10 @@
 
   (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/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex
index da9907c536..084d51ce55 100644
--- a/tex/lily-ps-defs.tex
+++ b/tex/lily-ps-defs.tex
@@ -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