From 9225ce3623bc8930c3863f3a27bbc83b2320bd0f Mon Sep 17 00:00:00 2001
From: fred <fred>
Date: Tue, 26 Mar 2002 21:49:48 +0000
Subject: [PATCH] lilypond-1.1.44

---
 Documentation/GNUmakefile                     |   2 +-
 Documentation/gnu-music.yo                    |  15 --
 Documentation/tex/refman.yo                   |   6 +-
 Documentation/tex/tutorial.yo                 |  15 +-
 TASKS                                         |  50 ++++
 input/bugs/Overture.ly                        |   2 +-
 input/bugs/bar-space.ly                       |   2 +-
 input/example-3.ly                            |   2 +-
 input/just-friends.ly                         |   2 +-
 input/keys.ly                                 |   2 +-
 input/kortjakje.ly                            |   2 +-
 input/part.ly                                 |   2 +-
 input/pedal.ly                                |   2 +-
 input/praeludium-fuga-E.ly                    |  10 +-
 input/rhythm.ly                               |   2 +-
 input/scales.ly                               |   2 +-
 input/scripts.ly                              |   2 +-
 input/star-spangled-banner.ly                 |   2 +-
 input/test/abbrev.ly                          |   2 +-
 input/test/alphabet.ly                        |   2 +-
 input/test/auto-staff-switch.ly               |   2 +-
 input/test/bar-scripts.ly                     |   2 +-
 input/test/beam-chord.ly                      |   2 +-
 input/test/beam-interstaff.ly                 |   2 +-
 input/test/beam-isknee.ly                     |   2 +-
 input/test/beam-pos.ly                        |   2 +-
 input/test/beams.ly                           |   2 +-
 input/test/broken.ly                          |   2 +-
 input/test/chord-inversion.ly                 |   2 +-
 input/test/chord-table.ly                     |   2 +-
 input/test/chords.ly                          |   2 +-
 input/test/clefs.ly                           |   2 +-
 input/test/collisions.ly                      |   2 +-
 input/test/defaultbars.ly                     |   2 +-
 input/test/denneboom.ly                       |   2 +-
 input/test/dotted-slur.ly                     |   2 +-
 input/test/extender.ly                        |   2 +-
 input/test/extra-staff.ly                     |   2 +-
 input/test/find-quarts.ly                     |   2 +-
 input/test/font-body.ly                       |   2 +-
 input/test/font.ly                            |   2 +-
 input/test/font16.ly                          |   2 +-
 input/test/font20.ly                          |   2 +-
 input/test/gourlay.ly                         |   2 +-
 input/test/grace.ly                           |   2 +-
 input/test/hara-kiri.ly                       |   2 +-
 input/test/incipit.ly                         |   2 +-
 input/test/keys.ly                            |   2 +-
 input/test/knee.ly                            |   2 +-
 input/test/mark.ly                            |   2 +-
 input/test/memory.ly                          |   2 +-
 input/test/multi-rest.ly                      |   2 +-
 input/test/noteheadstyle.ly                   |   4 +-
 input/test/notemode-chords.ly                 |   2 +-
 input/test/orchestscore.ly                    |   2 +-
 input/test/ossia.ly                           |   2 +-
 input/test/rest-collision.ly                  |   2 +-
 input/test/score-bar-scripts.ly               |   2 +-
 input/test/sleur.ly                           |   2 +-
 input/test/slur-bug.ly                        |   2 +-
 input/test/slur-damping.ly                    |   2 +-
 input/test/slur-interstaff.ly                 |   2 +-
 input/test/slur-swap.ly                       |   2 +-
 input/test/slurs.ly                           |   2 +-
 input/test/spacing-2.ly                       |  10 +-
 input/test/spacing.ly                         |  27 ++-
 input/test/span-bars.ly                       |   2 +-
 input/test/staff-margin.ly                    |   2 +-
 input/test/staff-side-slur.ly                 |   2 +-
 input/test/staff-size.ly                      |   2 +-
 input/test/stem.ly                            |   2 +-
 input/test/tchaikovsky.ly                     |   2 +-
 input/test/test-lyrics.ly                     |   2 +-
 input/test/thumb.ly                           |   2 +-
 input/test/tie-bug.ly                         |   2 +-
 input/test/tie.ly                             |   2 +-
 input/test/title.ly                           |   2 +-
 input/test/transposition.ly                   |   2 +-
 input/test/tup.ly                             |   2 +-
 input/test/updown.fly                         |   2 +-
 input/test/vertical-align.ly                  |   2 +-
 input/test/vertical-text.ly                   |   2 +-
 input/test/wtk-huh.ly                         |   2 +-
 input/tril.ly                                 |   2 +-
 input/twinkle-pop.ly                          |   2 +-
 input/twinkle.ly                              |   2 +-
 lily/collision.cc                             |   4 +-
 lily/include/col-info.hh                      |   7 +
 lily/include/lily-proto.hh                    |   4 +-
 lily/include/line-of-score.hh                 |   5 +-
 lily/include/p-col.hh                         |   3 +-
 lily/include/rod.hh                           |  17 +-
 lily/include/spacing-engraver.hh              |  57 +++++
 lily/include/spacing-spanner.hh               |  12 +-
 lily/include/spanner.hh                       |   3 +-
 lily/include/spring-spacer.hh                 |   3 +-
 lily/include/spring.hh                        |  36 +++
 lily/include/tie.hh                           |   4 +-
 lily/line-of-score.cc                         |   8 +-
 lily/local-key-engraver.cc                    |  12 +-
 lily/p-col.cc                                 |  54 ++++-
 lily/parser.yy                                |  16 +-
 lily/rod.cc                                   |  29 +--
 lily/slur-engraver.cc                         |   4 +-
 lily/spacing-engraver.cc                      |  62 ++---
 lily/spacing-spanner.cc                       | 170 +++++++++++++
 lily/spanner.cc                               |  40 ++--
 lily/spring-spacer.cc                         |  24 +-
 lily/spring.cc                                |  58 +++++
 lily/stem-engraver.cc                         |   2 +-
 lily/tie-engraver.cc                          |   8 +-
 lily/tie.cc                                   |   1 -
 ly/book-fragment.ly                           |   2 +-
 ly/book-init.ly                               |   2 +-
 ly/center-fragment.ly                         |   2 +-
 ly/center.ly                                  |   2 +-
 ly/engraver.ly                                |   2 -
 ly/fragment.ly                                |   2 +-
 ly/init.fly                                   |   2 +-
 ly/init.ly                                    |   2 +-
 ly/init.sly                                   |   2 +-
 ly/paper16.ly                                 |   2 +-
 ly/paper20.ly                                 |   2 +-
 ly/property.ly                                | 117 ++-------
 make/toplevel.make.in                         |   6 +-
 mutopia/Coriolan/bassi-part.ly                |   2 +-
 mutopia/Coriolan/clarinetti-part.ly           |   2 +-
 mutopia/Coriolan/clarinetti.ly                |   2 +-
 mutopia/Coriolan/clarinetto-1.ly              |   2 +-
 mutopia/Coriolan/clarinetto-2.ly              |   2 +-
 mutopia/Coriolan/contrabasso-part.ly          |   2 +-
 mutopia/Coriolan/contrabasso.ly               |   2 +-
 mutopia/Coriolan/coriolan.ly                  |   2 +-
 mutopia/Coriolan/corni-part.ly                |   2 +-
 mutopia/Coriolan/corni.ly                     |   2 +-
 mutopia/Coriolan/corno-1.ly                   |   2 +-
 mutopia/Coriolan/corno-2.ly                   |   2 +-
 mutopia/Coriolan/fagotti-part.ly              |   2 +-
 mutopia/Coriolan/fagotti.ly                   |   2 +-
 mutopia/Coriolan/fagotto-1.ly                 |   2 +-
 mutopia/Coriolan/fagotto-2.ly                 |   2 +-
 mutopia/Coriolan/flauti-part.ly               |   2 +-
 mutopia/Coriolan/flauti.ly                    |   2 +-
 mutopia/Coriolan/flauto-1.ly                  |   2 +-
 mutopia/Coriolan/flauto-2.ly                  |   2 +-
 mutopia/Coriolan/global.ly                    |   2 +-
 mutopia/Coriolan/oboe-1.ly                    |   2 +-
 mutopia/Coriolan/oboe-2.ly                    |   2 +-
 mutopia/Coriolan/oboi-part.ly                 |   2 +-
 mutopia/Coriolan/oboi.ly                      |   2 +-
 mutopia/Coriolan/timpani.ly                   |   2 +-
 mutopia/Coriolan/trombe-part.ly               |   2 +-
 mutopia/Coriolan/trombe.ly                    |   2 +-
 mutopia/Coriolan/trombo-1.ly                  |   2 +-
 mutopia/Coriolan/trombo-2.ly                  |   2 +-
 mutopia/Coriolan/viola-1.ly                   |   2 +-
 mutopia/Coriolan/viola-2.ly                   |   2 +-
 mutopia/Coriolan/viola-part.ly                |   2 +-
 mutopia/Coriolan/violino-1-part.ly            |   2 +-
 mutopia/Coriolan/violino-1.ly                 |   2 +-
 mutopia/Coriolan/violino-2-part.ly            |   2 +-
 mutopia/Coriolan/violino-2.ly                 |   2 +-
 mutopia/Coriolan/violoncello-part.ly          |   2 +-
 mutopia/Coriolan/violoncello.ly               |   2 +-
 mutopia/D.Scarlatti/progress.ly               |   2 +-
 mutopia/D.Scarlatti/sonata-k1-l366.ly         |   2 +-
 mutopia/D.Scarlatti/sonata-k2-l388.ly         |   2 +-
 mutopia/D.Scarlatti/sonata-k3-l378.ly         |   2 +-
 mutopia/D.Scarlatti/sonata-k4-l390.ly         |   2 +-
 mutopia/D.Zipoli/verso_2.ly                   |   2 +-
 mutopia/E.Satie/gnossienne-4.ly               |   4 +-
 mutopia/E.Satie/petite-ouverture-a-danser.ly  |   2 +-
 mutopia/F.Schubert/standchen-16.ly            |   2 +-
 mutopia/F.Schubert/standchen-20.ly            |   2 +-
 mutopia/F.Schubert/standchen.ly               |   2 +-
 mutopia/Hymns/diademata.ly                    |   2 +-
 mutopia/Hymns/laudatedom.ly                   |   2 +-
 mutopia/Hymns/maccabaeus.ly                   |   2 +-
 mutopia/Hymns/ode.ly                          |   2 +-
 mutopia/Hymns/stille.ly                       |   2 +-
 .../Cembalo-Partitas/Partita_II_Allemande.ly  |   2 +-
 .../Cembalo-Partitas/Partita_II_Capriccio.ly  |   2 +-
 .../Cembalo-Partitas/Partita_II_Sinfonia.ly   |   2 +-
 .../J.S.Bach/Petites-Preludes/preludes-1.ly   |   2 +-
 .../J.S.Bach/Petites-Preludes/preludes-2.ly   |   2 +-
 .../J.S.Bach/Petites-Preludes/preludes-4.ly   |   2 +-
 .../J.S.Bach/Petites-Preludes/preludes-5.ly   |   2 +-
 .../J.S.Bach/Petites-Preludes/preludes-6.ly   |   2 +-
 .../Solo-Cello-Suites/allemande-urtext.ly     |   2 +-
 .../Solo-Cello-Suites/courante-urtext.ly      |   2 +-
 .../Solo-Cello-Suites/gigue-urtext.ly         |   2 +-
 .../Solo-Cello-Suites/menuetto-urtext.ly      |   2 +-
 .../Solo-Cello-Suites/prelude-cello.ly        |   2 +-
 .../Solo-Cello-Suites/prelude-urtext.ly       |   2 +-
 .../Solo-Cello-Suites/prelude-viola.ly        |   2 +-
 .../Solo-Cello-Suites/sarabande-urtext.ly     |   2 +-
 mutopia/J.S.Bach/viola-i.ly                   |   2 +-
 mutopia/J.S.Bach/violino-i.ly                 |   2 +-
 mutopia/J.S.Bach/violino-viola.ly             |   2 +-
 mutopia/J.S.Bach/violino-violoncello.ly       |   2 +-
 mutopia/J.S.Bach/violoncello-i.ly             |   2 +-
 mutopia/J.S.Bach/wtk1-fugue1.ly               |   2 +-
 mutopia/J.S.Bach/wtk1-fugue2.ly               |   4 +-
 mutopia/J.S.Bach/wtk1-prelude1.ly             |   2 +-
 mutopia/L.Mozart/sinfonia.ly                  |   2 +-
 mutopia/N.W.Gade/brass.ly                     |   2 +-
 mutopia/N.W.Gade/parts.ly                     |   2 +-
 mutopia/N.W.Gade/score.ly                     |   2 +-
 mutopia/N.W.Gade/strings.ly                   |   2 +-
 mutopia/N.W.Gade/wood.ly                      |   2 +-
 mutopia/W.A.Mozart/cadenza.ly                 |   2 +-
 mutopia/W.A.Mozart/horn-concerto-3.ly         |   2 +-
 mutopia/los-toros-oboe.ly                     |   2 +-
 scripts/abc-2-ly.py                           | 224 ++++++++++++++++++
 scripts/convert-mudela.py                     |  14 ++
 scripts/mup-to-ly.py                          |   1 -
 216 files changed, 1024 insertions(+), 476 deletions(-)
 create mode 100644 TASKS
 create mode 100644 lily/include/spacing-engraver.hh
 create mode 100644 lily/include/spring.hh
 create mode 100644 lily/spacing-spanner.cc
 create mode 100644 lily/spring.cc
 create mode 100644 scripts/abc-2-ly.py

diff --git a/Documentation/GNUmakefile b/Documentation/GNUmakefile
index 01dfbe9578..b6e67c58bc 100644
--- a/Documentation/GNUmakefile
+++ b/Documentation/GNUmakefile
@@ -8,7 +8,7 @@ STEPMAKE_TEMPLATES=documentation
 README_TOP_FILES=NEWS DEDICATION TODO ANNOUNCE-0.1 AIMS
 INFO_FILES = $(wildcard $(outdir)/$(package).info*)
 
-EXTRA_DIST_FILES = gnu-music-history TODO 
+
 
 BLURBS=BLURB COPERTINA FLAPTEKST
 
diff --git a/Documentation/gnu-music.yo b/Documentation/gnu-music.yo
index 5e57da7854..4e6e3148ed 100644
--- a/Documentation/gnu-music.yo
+++ b/Documentation/gnu-music.yo
@@ -2,22 +2,7 @@ article(GNU Music project - manifesto)(Han-Wen Nienhuys and Jan Nieuwenhuizen)()
 
 sect(Goal)
 
-Provide musicians with free software for
 
-itemize(
-it()composing
-it()engraving
-it()playing
-it()sequencing
-it()interchanging music
-it()arranging
-it()performing
-it()Metacomposing
-)
-
-These systems should encourage laymen to take up composing, in the
-same way that GNU tools have created a whole new generation of
-programmers.
 
 The public deserves free tools for composing and printing.
 
diff --git a/Documentation/tex/refman.yo b/Documentation/tex/refman.yo
index eba1f1d98f..121f41f66d 100644
--- a/Documentation/tex/refman.yo
+++ b/Documentation/tex/refman.yo
@@ -976,6 +976,9 @@ END OF COMMENT  )
 
 sect(Repeats)
 
+
+OUTDATED. FIXME
+
 In order to specify repeats, use the code(\repeat) keyword.  By
 default, repeats are printed with repeat symbols.  
 mudela(fragment,verbatim,center)(
@@ -1553,9 +1556,6 @@ than the music given in an code(\alternative).
 dit(code(barNonAuto)) If set to 1 then bar lines will not be printed
 automatically; they must be explicitly created with code(\bar) keywords.
 
-dit(code(unfoldRepeats)) If set to 1 then repeats will be unfolded.
-Otherwise, they will be printed using repeat symbols.  
- 
 dit(code(defaultClef)) Determines the default clef.  See code(\clef)
 keyword.
 
diff --git a/Documentation/tex/tutorial.yo b/Documentation/tex/tutorial.yo
index d8f9f5e28d..883447e72e 100644
--- a/Documentation/tex/tutorial.yo
+++ b/Documentation/tex/tutorial.yo
@@ -1161,12 +1161,12 @@ property of the context code(Voice).  The context code(Voice) has an
 attribute whose value is the direction to use for stems.  You can
 change it to `up' by issuing the following phrase:
 verb(
-  \property "Voice"."ydirection" = "1"
+  \property "Voice"."verticalDirection" = "1"
 )
 
 This command should be read as ``change the property called
-code(ydirection) within the current code(Voice) context to the value
-code(-1).''  For the property code(ydirection) the value code(1) means
+code(verticalDirection) within the current code(Voice) context to the value
+code(-1).''  For the property code(verticalDirection) the value code(1) means
 `up', and code(-1) means `down'. So, the
 proper way to code the polyphonic example is given in
 bind(Figure)ref(tutorial:multi-voice-fig).
@@ -1175,10 +1175,10 @@ latexcommand(\begin{figure}[h])
 mudela(fragment,verbatim,center)(
   \context "Staff" <
     \context "Voice" =  "one"  {
-      \property Voice.ydirection = "1"
+      \property Voice.verticalDirection = "1"
       r4 as'4 () as'4 g'4 }
     \context "Voice" =  "two"  {
-      \property Voice.ydirection = "-1"
+      \property Voice.verticalDirection = "-1"
       g'2 f'4 e'4 }
   >
 )
@@ -1330,8 +1330,8 @@ definition.  To remedy this, we can use an identifier to capture the
 meaning of a code(\property).
 
 mudela(verbatim)(
-stemup = \property Voice.ydirection = "1"
-stemdown = \property Voice.ydirection = "-1"
+stemup = \property Voice.verticalDirection = "1"
+stemdown = \property Voice.verticalDirection = "-1"
 shift = \property Voice.hshift = "1"
 \score {
   \context "Staff" \notes <
@@ -1350,7 +1350,6 @@ a real command like code(\clef) or code(\bar).  Real commands are
 hardcoded into the language and they have to be terminated by
 semicolons.
 
-
 sect(Sound output)
 label(tutorial:sound)
 
diff --git a/TASKS b/TASKS
new file mode 100644
index 0000000000..b52bec1a45
--- /dev/null
+++ b/TASKS
@@ -0,0 +1,50 @@
+Call for Volunteers --  The Mutopia project seeks YOUR help.
+
+
+WHAT IS MUTOPIA?
+
+Mutopia is an archive of public domain music, free for all to
+download, modify and redistribute.  It should be based on free
+software. It is similar in spirit to the gutenberg archive.
+
+
+
+WHAT NEEDS TO BE DONE
+
+- write legal faq documents
+
+- setup submission guidelines, 
+
+- acquire mutopia.org domain.
+
+- setup FTP server
+
+- cooperate with ABC folks, ftp.gmd.de
+
+
+
+WHO DO WE NEED
+
+Volunteers that want to setup and maintain a website and FTP site.
+
+Volunteers with enough legal knowledge to write submission guidelines.
+
+A project leader.
+
+
+
+WHO ARE WE?
+
+We are Han-Wen Nienhuys and Jan Nieuwenhuizen.  We are working on the
+GNU project music typesetter, a program that does for sheet music what
+TeX does for text.  We would like to help start this mutopia project.
+Unfortunately, maintaining and extending LilyPond does not leave us
+enough time to take up the task of setting up Mutopia
+
+
+Signed
+
+Han-Wen Nienhys
+Jan Nieuwenhuizen
+
+[other bigwigs?]
diff --git a/input/bugs/Overture.ly b/input/bugs/Overture.ly
index 1968b768cf..1f6f514837 100644
--- a/input/bugs/Overture.ly
+++ b/input/bugs/Overture.ly
@@ -4,7 +4,7 @@ composer = "Johann Christoph Faber";
 piece = "1.  Overture";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global=\notes{
 	\time 2/2;
diff --git a/input/bugs/bar-space.ly b/input/bugs/bar-space.ly
index e895cb50aa..5f01cc9934 100644
--- a/input/bugs/bar-space.ly
+++ b/input/bugs/bar-space.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 scales = \notes\transpose c''{
 		f2 f f f f f f f f f\break 
diff --git a/input/example-3.ly b/input/example-3.ly
index 1fea3ac198..7bbed535f0 100644
--- a/input/example-3.ly
+++ b/input/example-3.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 one = \notes\relative c{
 	c'' d e f
diff --git a/input/just-friends.ly b/input/just-friends.ly
index 74d87dff77..60443d076f 100644
--- a/input/just-friends.ly
+++ b/input/just-friends.ly
@@ -57,4 +57,4 @@ of a certain tune (Jazz, Real Book, for example), like
 	}
 }
 
-\version "1.0.18";
+\version "1.0.20";
diff --git a/input/keys.ly b/input/keys.ly
index d931c9bf97..f203dedaf1 100644
--- a/input/keys.ly
+++ b/input/keys.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 
 blah = \notes {
diff --git a/input/kortjakje.ly b/input/kortjakje.ly
index 09a1db7e40..376fadc8ba 100644
--- a/input/kortjakje.ly
+++ b/input/kortjakje.ly
@@ -10,7 +10,7 @@ copyright =	 "public domain";
 Tested Features: example file with comments
 
 %}
-\version "1.0.19";
+\version "1.0.20";
 
 
 % the % is a comment.
diff --git a/input/part.ly b/input/part.ly
index 904e05f0d8..e54ca2a201 100644
--- a/input/part.ly
+++ b/input/part.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 part = \notes {
 	c-1 c c c
 	r1*3
diff --git a/input/pedal.ly b/input/pedal.ly
index 1dcb3eb6a3..bfd90fea41 100644
--- a/input/pedal.ly
+++ b/input/pedal.ly
@@ -28,7 +28,7 @@
 % \lbheel \lbheel \lfheel \lftoe
 % \rbheel \rbtoe \rfheel \rftoe
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 		\notes {
diff --git a/input/praeludium-fuga-E.ly b/input/praeludium-fuga-E.ly
index 5fd8dfff59..a8c26b71f6 100644
--- a/input/praeludium-fuga-E.ly
+++ b/input/praeludium-fuga-E.ly
@@ -23,7 +23,7 @@
    * organ staff...
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 
 
@@ -192,23 +192,23 @@ breakmusic = \notes {
     \translator {
     \VoiceContext
     \name "VoiceOne";
-    ydirection = "1";
+    verticalDirection = "1";
     }
     \translator {
     \VoiceContext
     \name "VoiceTwo";
-    ydirection = "-1";
+    verticalDirection = "-1";
     }
     \translator {
     \VoiceContext
     \name "VoiceThree";
-    ydirection = "1";
+    verticalDirection = "1";
     hshift = "1";
     }
     \translator {
     \VoiceContext
     \name "VoiceFour";
-    ydirection = "-1";
+    verticalDirection = "-1";
     hshift = "1";
     }
    \translator { 
diff --git a/input/rhythm.ly b/input/rhythm.ly
index 4b20912646..e8ab4e3de6 100644
--- a/input/rhythm.ly
+++ b/input/rhythm.ly
@@ -7,7 +7,7 @@ TestedFeatures =	 "multiple meters, beaming, unsynced bars, userdefd engravers";
 
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 ritme = \notes\transpose c'' {
 	\time  4/4;
diff --git a/input/scales.ly b/input/scales.ly
index 8f130977aa..4b00ac05be 100644
--- a/input/scales.ly
+++ b/input/scales.ly
@@ -16,7 +16,7 @@ copyright =	 "public domain";
 % scales with accents.
 %
 
-\version "1.0.19";
+\version "1.0.20";
 blah = 	\notes {
 		\time 6/8;	
 \transpose c {
diff --git a/input/scripts.ly b/input/scripts.ly
index bdd00db623..598e45bc38 100644
--- a/input/scripts.ly
+++ b/input/scripts.ly
@@ -1,5 +1,5 @@
 	
-\version "1.0.19";
+\version "1.0.20";
 
 
 blah = 	\notes{ \transpose c'' {
diff --git a/input/star-spangled-banner.ly b/input/star-spangled-banner.ly
index 4578d11e30..c018bd523c 100644
--- a/input/star-spangled-banner.ly
+++ b/input/star-spangled-banner.ly
@@ -118,4 +118,4 @@ global = \notes {
 }
 
 
-\version "1.0.18";
+\version "1.0.20";
diff --git a/input/test/abbrev.ly b/input/test/abbrev.ly
index 0e41f5b247..33b050ea55 100644
--- a/input/test/abbrev.ly
+++ b/input/test/abbrev.ly
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 \score{
 	\notes \transpose c'''{
 		\stemup
diff --git a/input/test/alphabet.ly b/input/test/alphabet.ly
index 7df84b510b..acb8b7ab87 100644
--- a/input/test/alphabet.ly
+++ b/input/test/alphabet.ly
@@ -121,4 +121,4 @@ xxx\break
 	}
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/auto-staff-switch.ly b/input/test/auto-staff-switch.ly
index c0e8e2b567..d176fbc7f2 100644
--- a/input/test/auto-staff-switch.ly
+++ b/input/test/auto-staff-switch.ly
@@ -31,4 +31,4 @@
 
 }}
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/bar-scripts.ly b/input/test/bar-scripts.ly
index fd08429887..8990f46868 100644
--- a/input/test/bar-scripts.ly
+++ b/input/test/bar-scripts.ly
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 
 onestaff = \context Staff = foo\notes  {
 	\property Staff.instr = instr
diff --git a/input/test/beam-chord.ly b/input/test/beam-chord.ly
index 7b5cb08c97..3ad0189aeb 100644
--- a/input/test/beam-chord.ly
+++ b/input/test/beam-chord.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	\notes\transpose c'{
diff --git a/input/test/beam-interstaff.ly b/input/test/beam-interstaff.ly
index 660d86d902..4554160c43 100644
--- a/input/test/beam-interstaff.ly
+++ b/input/test/beam-interstaff.ly
@@ -30,4 +30,4 @@
 	}
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/beam-isknee.ly b/input/test/beam-isknee.ly
index ecaaab30c3..f71167fdab 100644
--- a/input/test/beam-isknee.ly
+++ b/input/test/beam-isknee.ly
@@ -21,4 +21,4 @@
 	}
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/beam-pos.ly b/input/test/beam-pos.ly
index 40f16d5634..6d69d96723 100644
--- a/input/test/beam-pos.ly
+++ b/input/test/beam-pos.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	\notes\transpose c''{
diff --git a/input/test/beams.ly b/input/test/beams.ly
index 47ad0f5258..2e0cbb43ca 100644
--- a/input/test/beams.ly
+++ b/input/test/beams.ly
@@ -6,7 +6,7 @@ copyright =	 "PD";
 
 TestedFeatures =	 "beams and beamflags";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	<
diff --git a/input/test/broken.ly b/input/test/broken.ly
index 93beafe9ae..83b3e26ff7 100644
--- a/input/test/broken.ly
+++ b/input/test/broken.ly
@@ -5,7 +5,7 @@ TestedFeatures =	 "This file tests Feta embedded slurs" +
 	 "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 shortlong = \notes{
 	c4()c( c c  |
diff --git a/input/test/chord-inversion.ly b/input/test/chord-inversion.ly
index 443089d7f1..29fae53e31 100644
--- a/input/test/chord-inversion.ly
+++ b/input/test/chord-inversion.ly
@@ -22,4 +22,4 @@ inversions = \notes\transpose c''\chords{
 	>
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/chord-table.ly b/input/test/chord-table.ly
index b2ad9409de..25ffa4bc78 100644
--- a/input/test/chord-table.ly
+++ b/input/test/chord-table.ly
@@ -41,4 +41,4 @@ tab = \notes\transpose c'''\chords{
 
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/chords.ly b/input/test/chords.ly
index 0ace585d55..06cf21a60a 100644
--- a/input/test/chords.ly
+++ b/input/test/chords.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 %{
 Would this be acceptable/good enough/convenient for entry?
diff --git a/input/test/clefs.ly b/input/test/clefs.ly
index 2fb5476b47..4050cbfcd5 100644
--- a/input/test/clefs.ly
+++ b/input/test/clefs.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score {
        \notes{ 
diff --git a/input/test/collisions.ly b/input/test/collisions.ly
index ce736b9845..c938d5bd49 100644
--- a/input/test/collisions.ly
+++ b/input/test/collisions.ly
@@ -5,7 +5,7 @@ enteredby =	 "HWN,JCN";
 copyright =	 "public domain";
 Tested =	 "test the Collision resolution ";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 twovoice = \context Staff \notes < 
 	\context Voice=i { \stemdown c4 d e f g2~  g4 a [c8 d e f] c2| }
diff --git a/input/test/defaultbars.ly b/input/test/defaultbars.ly
index 1bf7fb703d..5c94ae07bf 100644
--- a/input/test/defaultbars.ly
+++ b/input/test/defaultbars.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 
 \score {
diff --git a/input/test/denneboom.ly b/input/test/denneboom.ly
index c3debaf4eb..dc382e07a6 100644
--- a/input/test/denneboom.ly
+++ b/input/test/denneboom.ly
@@ -7,7 +7,7 @@ TestedFeatures = "This file tests silly line shapes";
 
 \include "paper20.ly"
 
-\version "1.0.19";
+\version "1.0.20";
 
 oden = \lyrics{ 
 	O8 |
diff --git a/input/test/dotted-slur.ly b/input/test/dotted-slur.ly
index bc799418d9..6b42c3e8f0 100644
--- a/input/test/dotted-slur.ly
+++ b/input/test/dotted-slur.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	\notes{
diff --git a/input/test/extender.ly b/input/test/extender.ly
index 44aa7cfc6c..ea0587909d 100644
--- a/input/test/extender.ly
+++ b/input/test/extender.ly
@@ -5,4 +5,4 @@
 	>
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/extra-staff.ly b/input/test/extra-staff.ly
index 03b2e26d45..829c0929b9 100644
--- a/input/test/extra-staff.ly
+++ b/input/test/extra-staff.ly
@@ -42,4 +42,4 @@ extra-staff.ly:
 }
 
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/find-quarts.ly b/input/test/find-quarts.ly
index 84aee9850a..a9992e2dff 100644
--- a/input/test/find-quarts.ly
+++ b/input/test/find-quarts.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	\notes \relative c {
diff --git a/input/test/font-body.ly b/input/test/font-body.ly
index a1991223ca..7e2b30aa53 100644
--- a/input/test/font-body.ly
+++ b/input/test/font-body.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 FontBody=	\notes\transpose c''{ 
 		\bar "|:";
diff --git a/input/test/font.ly b/input/test/font.ly
index ad8610de64..c6b011f481 100644
--- a/input/test/font.ly
+++ b/input/test/font.ly
@@ -7,7 +7,7 @@ description = "This file tests the Feta music font";
 % "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "font-body.ly"
 \score{
diff --git a/input/test/font16.ly b/input/test/font16.ly
index afad636bdc..6a5c020a00 100644
--- a/input/test/font16.ly
+++ b/input/test/font16.ly
@@ -7,7 +7,7 @@ description = "This file tests the Feta music font";
 % "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 \include "paper16.ly"
 \include "font-body.ly"
 
diff --git a/input/test/font20.ly b/input/test/font20.ly
index abefe5b00d..c83061d519 100644
--- a/input/test/font20.ly
+++ b/input/test/font20.ly
@@ -17,5 +17,5 @@ TestedFeatures =
 	    gourlay_maxmeasures =5.;
 	}
 }
-\version "1.0.19"; 
+\version "1.0.20"; 
 
diff --git a/input/test/gourlay.ly b/input/test/gourlay.ly
index cbb749af48..ab4414da70 100644
--- a/input/test/gourlay.ly
+++ b/input/test/gourlay.ly
@@ -4,7 +4,7 @@ copyright =	 "PD";
 TestedFeatures =	 "This file tests some nasty Gourlay spacings";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 %{
 
diff --git a/input/test/grace.ly b/input/test/grace.ly
index 966da1b65f..0261511d6e 100644
--- a/input/test/grace.ly
+++ b/input/test/grace.ly
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	<
diff --git a/input/test/hara-kiri.ly b/input/test/hara-kiri.ly
index ddbec394f6..5f2ebd04e2 100644
--- a/input/test/hara-kiri.ly
+++ b/input/test/hara-kiri.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 toeter_i = \notes\relative c <{
 		\property Staff.instrument = "Toeters"
diff --git a/input/test/incipit.ly b/input/test/incipit.ly
index 2c2cbb43f4..202b65df42 100644
--- a/input/test/incipit.ly
+++ b/input/test/incipit.ly
@@ -6,7 +6,7 @@
    /Mats B
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 incipit = \notes\relative c'{
   <b1 fis' b d>
diff --git a/input/test/keys.ly b/input/test/keys.ly
index 4eff652fb6..e35be1b040 100644
--- a/input/test/keys.ly
+++ b/input/test/keys.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 %{
 test key itemv breaking
diff --git a/input/test/knee.ly b/input/test/knee.ly
index d0aa3c607a..d595ebe82a 100644
--- a/input/test/knee.ly
+++ b/input/test/knee.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 \score{
 	\notes\relative c'{
 		[c16 \stemdown c'' \stemboth c,, d]
diff --git a/input/test/mark.ly b/input/test/mark.ly
index ad9848e6f0..6d0f2aac3f 100644
--- a/input/test/mark.ly
+++ b/input/test/mark.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes {
   s1 | \mark "A";
diff --git a/input/test/memory.ly b/input/test/memory.ly
index eafe9308b6..b49a9e028e 100644
--- a/input/test/memory.ly
+++ b/input/test/memory.ly
@@ -11,5 +11,5 @@ bla = \notes {
 	>
 	\paper { Gourlay_maxmeaures = 2.; }
 }
-\version "1.0.19"; 
+\version "1.0.20"; 
 
diff --git a/input/test/multi-rest.ly b/input/test/multi-rest.ly
index 6672b777bb..2b30a3e811 100644
--- a/input/test/multi-rest.ly
+++ b/input/test/multi-rest.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 voice_one = \notes\transpose c''{  \stemup
 	R1 * 2 | f'4-. r r2 | R1 * 3 |
diff --git a/input/test/noteheadstyle.ly b/input/test/noteheadstyle.ly
index 946b97b13e..7cdf9d88f1 100644
--- a/input/test/noteheadstyle.ly
+++ b/input/test/noteheadstyle.ly
@@ -12,7 +12,7 @@ c4 c2 c8  c16 c16  c1
    \context ThreadedVoice <
     \context Thread = TA
       { \property Thread.noteHeadStyle = "cross"
-        \property ThreadedVoice.ydirection = \up c16} 
+        \property ThreadedVoice.verticalDirection = \up c16} 
     \context Thread = TB
       { \property Thread.noteHeadStyle = "" a16  }
     
@@ -40,4 +40,4 @@ c4 c2 c8  c16 c16  c1
 	}
     }
 }
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/notemode-chords.ly b/input/test/notemode-chords.ly
index 18ce9944b4..37d6c8ac29 100644
--- a/input/test/notemode-chords.ly
+++ b/input/test/notemode-chords.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	\notes \transpose c''{
diff --git a/input/test/orchestscore.ly b/input/test/orchestscore.ly
index be7b99479c..eb7d152550 100644
--- a/input/test/orchestscore.ly
+++ b/input/test/orchestscore.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 m = \notes \relative c''{
 c1 | c2 c | c c | c c | c c | c c | c c | c c | 
diff --git a/input/test/ossia.ly b/input/test/ossia.ly
index 9ffb5c8e75..a43c1ed64b 100644
--- a/input/test/ossia.ly
+++ b/input/test/ossia.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 \score {
 
diff --git a/input/test/rest-collision.ly b/input/test/rest-collision.ly
index 92b951c2ce..e509994d67 100644
--- a/input/test/rest-collision.ly
+++ b/input/test/rest-collision.ly
@@ -34,4 +34,4 @@ restsII = \context Staff \notes {
 	}
 }	
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/score-bar-scripts.ly b/input/test/score-bar-scripts.ly
index cb5297585a..a43bb3d02b 100644
--- a/input/test/score-bar-scripts.ly
+++ b/input/test/score-bar-scripts.ly
@@ -1,7 +1,7 @@
 
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 onestaff =	\context Staff = foo\notes  {
 		\property Staff.instr = instr
diff --git a/input/test/sleur.ly b/input/test/sleur.ly
index c290a07d74..e3317a3312 100644
--- a/input/test/sleur.ly
+++ b/input/test/sleur.ly
@@ -5,7 +5,7 @@ TestedFeatures =	 "This file tests Feta embedded slurs" +
 	 "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 shortlong = \notes{
 	c4()c( c c  |
diff --git a/input/test/slur-bug.ly b/input/test/slur-bug.ly
index 921dfbffe2..94b53b3560 100644
--- a/input/test/slur-bug.ly
+++ b/input/test/slur-bug.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 % bug
 % excentric slur can't handle this ...
diff --git a/input/test/slur-damping.ly b/input/test/slur-damping.ly
index df6ac36c69..7fda627819 100644
--- a/input/test/slur-damping.ly
+++ b/input/test/slur-damping.ly
@@ -1,5 +1,5 @@
 % test damping
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	\notes\relative c'{
diff --git a/input/test/slur-interstaff.ly b/input/test/slur-interstaff.ly
index 774855cacb..7fe0156d97 100644
--- a/input/test/slur-interstaff.ly
+++ b/input/test/slur-interstaff.ly
@@ -38,4 +38,4 @@
 	}
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/slur-swap.ly b/input/test/slur-swap.ly
index 17174563fd..77a2194b79 100644
--- a/input/test/slur-swap.ly
+++ b/input/test/slur-swap.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 % urg, the direction of the slur gets swapped!
 \score{
diff --git a/input/test/slurs.ly b/input/test/slurs.ly
index cf98f6088c..78792b52f9 100644
--- a/input/test/slurs.ly
+++ b/input/test/slurs.ly
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	\notes\transpose c'{
diff --git a/input/test/spacing-2.ly b/input/test/spacing-2.ly
index 6d1474439b..8ad2b83875 100644
--- a/input/test/spacing-2.ly
+++ b/input/test/spacing-2.ly
@@ -14,9 +14,9 @@ source = "Petits Preludes et Fugues.  Urtext. Editions Henry Lemoine, Paris.";
     \notes \relative c''
 	\context GrandStaff <
 	\context Staff = SA <
-		\context Voice = VA { \property Voice.ydirection= 1
+		\context Voice = VA { \property Voice.verticalDirection= 1
 			e4 dis4 e2 }
-		\context Voice = VB { \property Voice.ydirection= -1
+		\context Voice = VB { \property Voice.verticalDirection= -1
 			[cis8 a] [fis b] gis2 }
 		{\key e; }
 		>
@@ -25,14 +25,12 @@ source = "Petits Preludes et Fugues.  Urtext. Editions Henry Lemoine, Paris.";
 	} 
 > 
 
-\paper 
-{
-}
 \paper 
 {
 %	linewidth = 5.0 \cm; % ly2dvi barfs on -1
 	linewidth = 8.0 \cm;
+%	linewidth = 12.0 \cm;	
 }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/spacing.ly b/input/test/spacing.ly
index a1f7a08613..4d90e75192 100644
--- a/input/test/spacing.ly
+++ b/input/test/spacing.ly
@@ -6,65 +6,66 @@ copyright =	 "public domain";
 TestedFeatures =	 "This file tests various spacings";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 multipart = \notes \relative c'{ 
     \context StaffGroup < 
-                \context Staff = one { 
+                \context Staff = one \context Voice { 
                    c4
                    c 
                    c c 
                 }
-                \context Staff = two { 
+                \context Staff = two \context Voice { 
                    [c8 c] 
                    [c c] 
                    [c c] [c c] 
                 }
-                \context Staff = three { 
+                \context Staff = three \context Voice { 
                    \times 2/3 { [c8 c c] } 
                    \times 2/3 { [c  c c] } 
-                   \times 2/3 { [c  c c] } \times 2/3 { [c c c] } 
+                   \times 2/3 { [c  c c] }
+		   \times 2/3 { [c c c] } 
                 }
-                \context Staff = four { 
+                \context Staff = four \context Voice { 
                    \times 2/4 { [c8 c c c] }
                    \times 2/4 { [c  c c c] } 
                    \times 2/4 { [c  c c c] } \times 2/4 { [c c c c] } 
                 }
-                \context Staff = five { 
+                \context Staff = five \context Voice { 
                    \times 2/5 { [c8 c c c c] } 
                    \times 2/5 { [c  c c c c] } 
                    \times 2/5 { [c  c c c c] } \times 2/5 { [c c c c c] } 
 		}
-                \context Staff = six { 
+                \context Staff = six \context Voice { 
                    \times 2/6 { [c8 c c c c c] } 
                    \times 2/6 { [c  c c c c c] } 
                    \times 2/6 { [c  c c c c c] } \times 2/6 { [c c c c c c] } 
                 }
-                \context Staff = seven { 
+                \context Staff = seven \context Voice { 
                    \times 2/7 { [c8 c c c c c c] } 
                    \times 2/7 { [c  c c c c c c] } 
                    \times 2/7 { [c  c c c c c c] } 
 		   \times 2/7 { [c  c c c c c c] } 
                 }
-                \context Staff = eight { 
+                \context Staff = eight \context Voice { 
                    \times 2/8 { [c8 c c c c c c c] } 
                    \times 2/8 { [c  c c c c c c c] } 
                    \times 2/8 { [c  c c c c c c c] } 
 		   \times 2/8 { [c  c c c c c c c] } 
 		}
-                \context Staff = nine { 
+                \context Staff = nine  \context Voice { 
                    \times 2/9 { [c8 c c c c c c c c] } 
                    \times 2/9 { [c  c c c c c c c c] } 
                    \times 2/9 { [c  c c c c c c c c] } 
 		   \times 2/9 { [c  c c c c c c c c] } 
 		}
-                \context Staff = ten { 
+                \context Staff = ten  \context Voice { 
                    \times 2/10 { [c8 c c c c c c c c c] } 
                    \times 2/10 { [c  c c c c c c c c c] } 
                    \times 2/10 { [c  c c c c c c c c c] } 
 		   \times 2/10 { [c  c c c c c c c c c] } 
 		}
-                \context Staff = eleven { 
+                \context Staff = eleven  \context Voice { 
                    \times 2/11 { [c8 c c c c c c c c c c] } 
                    \times 2/11 { [c  c c c c c c c c c c] } 
                    \times 2/11 { [c  c c c c c c c c c c] } 
diff --git a/input/test/span-bars.ly b/input/test/span-bars.ly
index 4e917d1434..dd60a13a8b 100644
--- a/input/test/span-bars.ly
+++ b/input/test/span-bars.ly
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 nt = \notes { c1 \break c1 c1 } 
 stuff = \notes \relative c'' <
   \context Staff = stone  { \nt }
diff --git a/input/test/staff-margin.ly b/input/test/staff-margin.ly
index 16d9f787f9..df215a6cd5 100644
--- a/input/test/staff-margin.ly
+++ b/input/test/staff-margin.ly
@@ -1,6 +1,6 @@
 
 	
-\version "1.0.19";
+\version "1.0.20";
 
 \score {
 
diff --git a/input/test/staff-side-slur.ly b/input/test/staff-side-slur.ly
index 3ff8c6bbf0..65e3d68065 100644
--- a/input/test/staff-side-slur.ly
+++ b/input/test/staff-side-slur.ly
@@ -18,4 +18,4 @@
 }
 
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/staff-size.ly b/input/test/staff-size.ly
index b631184e6e..144f638fc9 100644
--- a/input/test/staff-size.ly
+++ b/input/test/staff-size.ly
@@ -14,4 +14,4 @@
 >
 \paper { linewidth = -1.; }
 }
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/stem.ly b/input/test/stem.ly
index fe722bde6a..978caa5555 100644
--- a/input/test/stem.ly
+++ b/input/test/stem.ly
@@ -8,7 +8,7 @@ of beams";
 	
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 beamintervals = \notes{
 		\time 7/4;
diff --git a/input/test/tchaikovsky.ly b/input/test/tchaikovsky.ly
index 2c5e64e254..9cd65c31c1 100644
--- a/input/test/tchaikovsky.ly
+++ b/input/test/tchaikovsky.ly
@@ -7,7 +7,7 @@ enteredby = 	"Maarten Storm";
 instrument=	"Violoncello";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 % this is an example of extreme dynamics
 
diff --git a/input/test/test-lyrics.ly b/input/test/test-lyrics.ly
index 4ff7dbad30..8f0294019b 100644
--- a/input/test/test-lyrics.ly
+++ b/input/test/test-lyrics.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 $somewhat_long = \lyrics{
 	\property Lyrics . textstyle = "roman" 
diff --git a/input/test/thumb.ly b/input/test/thumb.ly
index e44462f764..748e754b83 100644
--- a/input/test/thumb.ly
+++ b/input/test/thumb.ly
@@ -7,7 +7,7 @@
 % the thumb-script is used in cello music to indicate a note that should
 % be played with your thumb. 
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score { \notes \relative c'' {
 		[<a8_\thumb a'8-3(> <)b_\thumb b'-3>
diff --git a/input/test/tie-bug.ly b/input/test/tie-bug.ly
index 49876a236c..1307452524 100644
--- a/input/test/tie-bug.ly
+++ b/input/test/tie-bug.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 
 %  middle tie is wrong
diff --git a/input/test/tie.ly b/input/test/tie.ly
index 322bd52837..61944f4026 100644
--- a/input/test/tie.ly
+++ b/input/test/tie.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 tie = \notes\transpose c''{
 
diff --git a/input/test/title.ly b/input/test/title.ly
index d64234015d..91fa42cbd3 100644
--- a/input/test/title.ly
+++ b/input/test/title.ly
@@ -10,7 +10,7 @@ source = 	"urtext";
 instrument=	"Instrument";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	\notes
diff --git a/input/test/transposition.ly b/input/test/transposition.ly
index 548dec1260..2271026b71 100644
--- a/input/test/transposition.ly
+++ b/input/test/transposition.ly
@@ -22,7 +22,7 @@ copyright =	 "public domain";
 }
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 vOne = \notes \relative c''{
         \clef"violin";
diff --git a/input/test/tup.ly b/input/test/tup.ly
index f0f778ac7e..aaa005aeec 100644
--- a/input/test/tup.ly
+++ b/input/test/tup.ly
@@ -8,4 +8,4 @@
 		 }
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/updown.fly b/input/test/updown.fly
index 259013260f..69ba825f68 100644
--- a/input/test/updown.fly
+++ b/input/test/updown.fly
@@ -8,4 +8,4 @@
 {\voicetwo c}>
 
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/vertical-align.ly b/input/test/vertical-align.ly
index 305dac6480..52e286e1c2 100644
--- a/input/test/vertical-align.ly
+++ b/input/test/vertical-align.ly
@@ -1,5 +1,5 @@
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score {
 \notes <
diff --git a/input/test/vertical-text.ly b/input/test/vertical-text.ly
index 6b42433d09..ec9caaf371 100644
--- a/input/test/vertical-text.ly
+++ b/input/test/vertical-text.ly
@@ -15,4 +15,4 @@
 	}
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/test/wtk-huh.ly b/input/test/wtk-huh.ly
index c36e11ffae..c9371664a4 100644
--- a/input/test/wtk-huh.ly
+++ b/input/test/wtk-huh.ly
@@ -21,4 +21,4 @@ What's supposed to be demonstrated here?
 	}
 }
 
-\version "1.0.19"; 
+\version "1.0.20"; 
diff --git a/input/tril.ly b/input/tril.ly
index 08112efc12..b0779db193 100644
--- a/input/tril.ly
+++ b/input/tril.ly
@@ -5,7 +5,7 @@ TestedFeatures =	 "This file tests trills" +
 	 "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \score{
 	\notes{ 
diff --git a/input/twinkle-pop.ly b/input/twinkle-pop.ly
index 802246a3e6..b9c21ed950 100644
--- a/input/twinkle-pop.ly
+++ b/input/twinkle-pop.ly
@@ -11,7 +11,7 @@ copyright =	 "public domain";
 Tested Features		lyrics and chords
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 melodie = \notes\relative c'' {
         \clef "violin";
diff --git a/input/twinkle.ly b/input/twinkle.ly
index 3ab846f61c..58d5b5541c 100644
--- a/input/twinkle.ly
+++ b/input/twinkle.ly
@@ -19,7 +19,7 @@ traditional song in various languages.
 Tested Features: lyrics, interleaving lyrics and staffs, repeats
 %}
 
-\version "1.0.18";
+\version "1.0.20";
 
 melody = \notes \relative c'' {
 	\clef violin;
diff --git a/lily/collision.cc b/lily/collision.cc
index 7df44b3523..b4136ae520 100644
--- a/lily/collision.cc
+++ b/lily/collision.cc
@@ -52,8 +52,8 @@ Collision::do_pre_processing()
 
   /*
     [stem up, stem up shifted, stem down shifted, stem down]
-  */
-  Array<Note_column*> clash_group_arr_a[4];
+  */ 
+  Array<Note_column*> clash_group_arr_a[4]; // TODO: use drul.
 
   for (int i=0; i < clash_l_arr_.size(); i++)
     {
diff --git a/lily/include/col-info.hh b/lily/include/col-info.hh
index 16dcd2c332..d63c92b9ab 100644
--- a/lily/include/col-info.hh
+++ b/lily/include/col-info.hh
@@ -21,6 +21,12 @@ struct Spacer_rod {
   void print () const;
 };
 
+struct Spacer_spring
+{
+  Real distance_f_;
+  Real hooke_f_;
+  Real other_idx_;
+};
 
 /// helper struct for #Spacing_problem#
 struct Column_info {
@@ -33,6 +39,7 @@ struct Column_info {
   bool ugh_b_;		
 
   Drul_array< Array<Spacer_rod> > rods_;
+  Drul_array< Array<Spacer_spring> > springs_;  
   
   Column_info();
   Column_info (Paper_column *,Real const *);
diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh
index af50e44ca2..d573c8fdcf 100644
--- a/lily/include/lily-proto.hh
+++ b/lily/include/lily-proto.hh
@@ -61,6 +61,7 @@ struct Clef_engraver;
 struct Clef_performer;
 struct Column_x_positions;
 struct Column_info;
+struct Column_spring;
 struct Collision;
 struct Collision_engraver;
 struct Command_req;
@@ -218,12 +219,13 @@ struct Skip_req;
 struct Slur;
 struct Slur_engraver;
 struct Slur_req;
-struct Spacing_req;
+struct Spacing_spanner;
 struct Span_bar;
 struct Span_score_bar;
 struct Span_dynamic_req;
 struct Span_req;
 struct Spanner;
+struct Spring;
 struct Spring_spacer;
 struct Staff_bracket;
 struct Staff_performer;
diff --git a/lily/include/line-of-score.hh b/lily/include/line-of-score.hh
index 2410acc285..578c58638b 100644
--- a/lily/include/line-of-score.hh
+++ b/lily/include/line-of-score.hh
@@ -14,19 +14,18 @@
 /// the columns of a score that form one line.
 class Line_of_score : public Axis_group_spanner, public Super_element
 {
-  Link_array<Paper_column> cols_;
 public:
+  Link_array<Paper_column> cols_;
 
   Line_of_score();
     
   /// is #c# contained in #*this#?
   bool contains_b (Paper_column const *c) const;
     
-  Link_array<Line_of_score> get_lines() const;
   Line_of_score * set_breaking (Array<Column_x_positions> const&, int j) const;
 
 
-  void output_all ();
+  void output_all (bool last_line);
   void add_column (Paper_column*);
   
 protected:
diff --git a/lily/include/p-col.hh b/lily/include/p-col.hh
index 1211309e1c..bf2d032cf2 100644
--- a/lily/include/p-col.hh
+++ b/lily/include/p-col.hh
@@ -12,7 +12,7 @@
 
 #include "axis-group-item.hh"
 #include "rod.hh"
-
+#include "spring.hh"
 
 /**
    stuff grouped vertically.
@@ -35,6 +35,7 @@ public:
   void preprocess ();
   /// set a minimum distance
   void add_rod (Paper_column * to, Real distance);
+  void add_spring (Paper_column * to, Real dist, Real strength);
 
   virtual Paper_column * column_l () const;
   /// if lines are broken then this column is in #line#
diff --git a/lily/include/rod.hh b/lily/include/rod.hh
index fbde969355..4d1f13982e 100644
--- a/lily/include/rod.hh
+++ b/lily/include/rod.hh
@@ -13,7 +13,8 @@
 #include "direction.hh"
 #include "drul-array.hh"
 
-struct Column_rod {
+struct Column_rod
+{
   Paper_column *other_l_;
   Real distance_f_;
 
@@ -31,19 +32,5 @@ struct Rod
 
   Rod ();
 };
-
-struct Column_spring {
-  Paper_column *other_l_;
-  Real distance_f_;
-  Real strength_f_;
-  
-  Column_spring ();
-  static int compare (const Column_spring &r1, const Column_spring &r2);
-  void print () const;
-};
-
-struct Spring{
-  
-};
 #endif /* ROD_HH */
 
diff --git a/lily/include/spacing-engraver.hh b/lily/include/spacing-engraver.hh
new file mode 100644
index 0000000000..3c1f5f7920
--- /dev/null
+++ b/lily/include/spacing-engraver.hh
@@ -0,0 +1,57 @@
+/*   
+  spacing-engraver.hh -- declare Spacing_engraver
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef SPACING_ENGRAVER_HH
+#define SPACING_ENGRAVER_HH
+
+#include "engraver.hh"
+#include "pqueue.hh"
+
+struct Rhythmic_tuple
+{
+  Score_element_info info_;
+  Moment end_;
+  
+  Rhythmic_tuple ()
+    {
+    }
+  Rhythmic_tuple (Score_element_info i, Moment m )
+    {
+      info_ = i;
+      end_ = m;
+    }
+  static int time_compare (Rhythmic_tuple const &, Rhythmic_tuple const &);  
+};
+
+/**
+   Acknowledge rhythmic elements, for initializing spacing fields in
+   the columns.
+
+   should be the  last one of the toplevel context
+*/
+class Spacing_engraver : public Engraver
+{
+  PQueue<Rhythmic_tuple> playing_durations_;
+  Array<Rhythmic_tuple> now_durations_;
+  Array<Rhythmic_tuple> stopped_durations_;
+
+  Spacing_spanner * spacing_p_;
+protected:
+  VIRTUAL_COPY_CONS(Translator);
+  virtual void acknowledge_element (Score_element_info);
+  virtual void do_post_move_processing ();
+  virtual void do_pre_move_processing ();
+  virtual void do_creation_processing ();
+  virtual void do_removal_processing ();
+public:
+  Spacing_engraver ();
+};
+
+#endif /* SPACING_ENGRAVER_HH */
+
diff --git a/lily/include/spacing-spanner.hh b/lily/include/spacing-spanner.hh
index fbf332b2c7..b69209d906 100644
--- a/lily/include/spacing-spanner.hh
+++ b/lily/include/spacing-spanner.hh
@@ -10,13 +10,19 @@
 #ifndef SPACING_SPANNER_HH
 #define SPACING_SPANNER_HH
 
+#include "spanner.hh"
+
 class Spacing_spanner : public Spanner
 {
-  Link_array<Paper_column> cols_;
-
+public:
   Spacing_spanner ();
+  VIRTUAL_COPY_CONS(Score_element);
+  Score_column *scol (int) const;
+  Array<Spring> do_measure (int,int) const;
+  int col_count () const;
 protected:
-  virtual void do_space_processing ();
+  virtual  Array<Spring> get_springs () const;
+  
 };
 
 #endif /* SPACING_SPANNER_HH */
diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh
index 91c75a7aca..8ad3caa31f 100644
--- a/lily/include/spanner.hh
+++ b/lily/include/spanner.hh
@@ -55,7 +55,9 @@ public:
   Spanner ();
   Spanner (Spanner const &);
   bool broken_b () const;
+
   virtual Array<Rod> get_rods () const;
+  virtual Array<Spring> get_springs () const;  
   virtual Spanner* find_broken_piece (Line_of_score*) const;
 protected:
   void set_my_columns ();
@@ -69,7 +71,6 @@ protected:
   Array<Breaking_information> broken_info_;
   friend Axis_group_spanner; // UGH
 
-  virtual void output_processing ();
   virtual void do_space_processing ();
   virtual void do_break_processing ();
   virtual Interval do_width () const;
diff --git a/lily/include/spring-spacer.hh b/lily/include/spring-spacer.hh
index 49e9501841..3b89b247e1 100644
--- a/lily/include/spring-spacer.hh
+++ b/lily/include/spring-spacer.hh
@@ -39,8 +39,9 @@
     The quality is given by the total potential energy in the
     springs. The lower the energy, the better the configuration.
 
-    TODO: make item widths work per Staff.
 
+    TODO: too complicated.  Revise.
+    Use force iso. energy.  Also optimise for uniform density
 */
 
 class Spring_spacer : public Line_spacer {
diff --git a/lily/include/spring.hh b/lily/include/spring.hh
new file mode 100644
index 0000000000..d4e2e94c3a
--- /dev/null
+++ b/lily/include/spring.hh
@@ -0,0 +1,36 @@
+/*   
+  spring.hh -- declare Spring, Column_spring
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef SPRING_HH
+#define SPRING_HH
+
+#include "lily-proto.hh"
+#include "drul-array.hh"
+
+struct Column_spring {
+  Paper_column *other_l_;
+  Real distance_f_;
+  Real strength_f_;
+  
+  Column_spring ();
+  static int compare (const Column_spring &r1, const Column_spring &r2);
+  void print () const;
+};
+
+struct Spring{
+  Drul_array<Item*> item_l_drul_;
+  Real distance_f_;
+  Real strength_f_;
+  void add_to_cols ();
+  Spring ();
+};
+
+
+#endif /* SPRING_HH */
+
diff --git a/lily/include/tie.hh b/lily/include/tie.hh
index f8ac1a31f9..cb6eb72ebf 100644
--- a/lily/include/tie.hh
+++ b/lily/include/tie.hh
@@ -22,10 +22,8 @@ public:
   Tie ();
   void set_head (Direction, Note_head*head_l);
   VIRTUAL_COPY_CONS(Score_element);
-  
-  bool same_pitch_b_;
-  Drul_array<Note_head *> head_l_drul_;
 
+  Drul_array<Note_head *> head_l_drul_;
 protected:
   virtual void do_add_processing ();
   virtual void do_post_processing ();
diff --git a/lily/line-of-score.cc b/lily/line-of-score.cc
index 084ee6013e..ec786d7815 100644
--- a/lily/line-of-score.cc
+++ b/lily/line-of-score.cc
@@ -24,6 +24,7 @@ Line_of_score::contains_b (Paper_column const* c) const
   return cols_.find_l ((Paper_column*)(c));
 }
 
+// const?
 Line_of_score*
 Line_of_score::set_breaking (Array<Column_x_positions> const &breaking, int j) const
 {
@@ -83,7 +84,7 @@ Line_of_score::do_substitute_element_pointer (Score_element*o, Score_element*n)
 }
 
 void
-Line_of_score::output_all ()
+Line_of_score::output_all (bool last_line)
 {
   Interval i(extent(Y_AXIS));
   if (i.empty_b())
@@ -93,5 +94,8 @@ Line_of_score::output_all ()
   
   pscore_l_->outputter_l_->start_line (i.length ());
   Super_element::output_all ();
-  pscore_l_->outputter_l_->stop_line ();
+  if (last_line)
+    pscore_l_->outputter_l_->stop_last_line();
+  else
+    pscore_l_->outputter_l_->stop_line ();
 }
diff --git a/lily/local-key-engraver.cc b/lily/local-key-engraver.cc
index c40679e1f8..8506350e39 100644
--- a/lily/local-key-engraver.cc
+++ b/lily/local-key-engraver.cc
@@ -50,6 +50,7 @@ Local_key_engraver::process_acknowledged ()
 {
   if (!key_item_p_ && mel_l_arr_.size()) 
     {
+      bool forget = get_property ("forgetAccidentals",0).to_bool();
       for (int i=0; i  < mel_l_arr_.size(); i++) 
 	{
 	  Item * support_l = support_l_arr_[i];
@@ -72,9 +73,10 @@ Local_key_engraver::process_acknowledged ()
 	  key_item_p_->add_pitch (note_l->pitch_,
 				  note_l->cautionary_b_);
 	  key_item_p_->add_support (support_l);
-	  local_key_.set (note_l->pitch_);
+	  
+	  if (!forget)
+	    local_key_.set (note_l->pitch_);
 	}
-	
     }
 }
 
@@ -113,8 +115,7 @@ Local_key_engraver::acknowledge_element (Score_element_info info)
     }
   else if (Tie * tie_l = dynamic_cast<Tie *> (info.elem_l_))
     {
-      if (tie_l->same_pitch_b_)
-	tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]);
+      tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]);
     }
 }
 
@@ -124,7 +125,8 @@ Local_key_engraver::do_process_requests()
   Time_description const * time_C_ = get_staff_info().time_C_;
   if (time_C_ && !time_C_->whole_in_measure_)
     {
-      if (key_C_)
+      bool no_res = get_property ("noResetKey",0).to_bool ();
+      if (!no_res && key_C_)
 	local_key_= *key_C_;
     }
 }
diff --git a/lily/p-col.cc b/lily/p-col.cc
index 8378a68f7a..fee4a083b7 100644
--- a/lily/p-col.cc
+++ b/lily/p-col.cc
@@ -38,6 +38,35 @@ Paper_column::add_rod (Paper_column * p, Real d)
   minimal_dists_arr_drul_[dir].push (cr);
 }
 
+void
+Paper_column::add_spring (Paper_column * p, Real d, Real s)
+{
+  Direction dir =  Direction (sign (p->rank_i ()  - rank_i ()));
+  
+  if (!dir)
+    {
+      warning ("Must set spring between differing columns.");
+      return;
+    }
+  
+  for (int i=0; i < spring_arr_drul_[dir].size (); i++)
+    {
+      Column_spring &spring = spring_arr_drul_[dir][i];
+      if (spring.other_l_ == p)
+	{
+	  spring.distance_f_ = spring.distance_f_ >? d;
+	  return ;
+	}
+    }
+
+  Column_spring cr;
+  cr.distance_f_ = d;
+  cr.strength_f_ = s;  
+  cr.other_l_ = p;
+
+  spring_arr_drul_[dir].push (cr);
+}
+
 int
 Paper_column::rank_i() const
 {
@@ -55,15 +84,20 @@ Paper_column::do_print() const
 {
 #ifndef NPRINT
   DOUT << "rank: " << rank_i_ << '\n';
-  for (int i=0; i < minimal_dists_arr_drul_[LEFT].size (); i++)
-    {
-      minimal_dists_arr_drul_[LEFT][i].print ();
-    }
-  DOUT << "Right: ";
-  for (int i=0; i < minimal_dists_arr_drul_[RIGHT].size (); i++)
+  Direction d = LEFT;
+  do
     {
-      minimal_dists_arr_drul_[RIGHT][i].print ();
+      for (int i=0; i < minimal_dists_arr_drul_[d].size (); i++)
+	{
+	  minimal_dists_arr_drul_[d][i].print ();
+	}
+      for (int i=0; i < spring_arr_drul_[d].size (); i++)
+	{
+	  spring_arr_drul_[d][i].print ();
+	}
+      
     }
+  while ((flip (&d))!=LEFT);
   Item::do_print ();
 #endif 
 }
@@ -97,10 +131,14 @@ Paper_column::column_l () const
   return (Paper_column*)(this);
 }
 
-
+/*
+  ugh.
+ */
 void
 Paper_column::preprocess ()
 {
   minimal_dists_arr_drul_[LEFT].sort (Column_rod::compare);
   minimal_dists_arr_drul_[RIGHT].sort (Column_rod::compare);  
+  spring_arr_drul_[LEFT].sort (Column_spring::compare);
+  spring_arr_drul_[RIGHT].sort (Column_spring::compare);  
 }
diff --git a/lily/parser.yy b/lily/parser.yy
index 34e329be2e..66e5b059b2 100644
--- a/lily/parser.yy
+++ b/lily/parser.yy
@@ -9,6 +9,16 @@
            Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
+/*
+	Ambiguities:
+
+	* \alternative
+
+	* use of '-' in various places
+
+*/
+
+
 #include <iostream.h>
 #include "lily-guile.hh"
 #include "notename-table.hh"
@@ -44,8 +54,8 @@
 #include "new-repeated-music.hh"
 
 // mmm
-Mudela_version oldest_version ("1.0.16");
-Mudela_version version ("1.0.19");
+Mudela_version oldest_version ("1.0.20");
+Mudela_version version ("1.0.20");
 
 void
 print_mudela_versions (ostream &os)
@@ -1037,7 +1047,7 @@ request_that_take_dir:
 request_with_dir:
 	script_dir request_that_take_dir	{
 		if (G_script_req * gs = dynamic_cast<G_script_req*> ($2))
-			gs->dir_ = $1;
+			gs->dir_ = Direction ($1);
 		else if ($1)
 			$2->warning ("Can't specify direction for this request");
 		$$ = $2;
diff --git a/lily/rod.cc b/lily/rod.cc
index 008707bbc1..0bb8614232 100644
--- a/lily/rod.cc
+++ b/lily/rod.cc
@@ -42,29 +42,10 @@ Column_rod::compare (const Column_rod &r1, const Column_rod &r2)
 void
 Rod::add_to_cols ()
 {
-  item_l_drul_[RIGHT]->column_l ()->add_rod
-    (item_l_drul_[LEFT]->column_l (), distance_f_);
-  item_l_drul_[LEFT]->column_l ()->add_rod
-    (item_l_drul_[RIGHT]->column_l (), distance_f_);
+  Direction d = LEFT;
+  do {
+    item_l_drul_[-d]->column_l ()->add_rod
+      (item_l_drul_[d]->column_l (), distance_f_);
+  }while ((flip (&d))!=LEFT);
 }
 
-void
-Column_spring::print () const
-{
-#ifndef NDEBUG
-  DOUT << "Column_spring { rank = "
-       << other_l_->rank_i () << ", dist = " << distance_f_ << "}\n";   
-#endif
-}
-
-Column_spring::Column_spring ()
-{
-  distance_f_ = 0;
-  other_l_ = 0;
-}
-  
-int
-Column_spring::compare (const Column_spring &r1, const Column_spring &r2)
-{
-  return r1.other_l_->rank_i() - r2.other_l_->rank_i();
-}
diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc
index ed1462a584..23fc2ebbe3 100644
--- a/lily/slur-engraver.cc
+++ b/lily/slur-engraver.cc
@@ -91,8 +91,8 @@ Slur_engraver::do_process_requests()
 void
 Slur_engraver::do_pre_move_processing()
 {
-  Scalar dir (get_property ("slurydirection", 0));
-  Scalar dir2 (get_property ("ydirection", 0));
+  Scalar dir (get_property ("slurVerticalDirection", 0));
+  Scalar dir2 (get_property ("verticalDirection", 0));
 
   Direction slurdir = CENTER;
   if (dir.length_i () && dir.isnum_b ())
diff --git a/lily/spacing-engraver.cc b/lily/spacing-engraver.cc
index 525e7f9adc..c61dd3df3f 100644
--- a/lily/spacing-engraver.cc
+++ b/lily/spacing-engraver.cc
@@ -7,26 +7,10 @@
   
  */
 
-#include "engraver.hh"
-#include "pqueue.hh"
 #include "musical-request.hh"
 #include "score-column.hh"
-
-struct Rhythmic_tuple
-{
-  Score_element_info info_;
-  Moment end_;
-  
-  Rhythmic_tuple ()
-    {
-    }
-  Rhythmic_tuple (Score_element_info i, Moment m )
-    {
-      info_ = i;
-      end_ = m;
-    }
-  static int time_compare (Rhythmic_tuple const &, Rhythmic_tuple const &);  
-};
+#include "spacing-engraver.hh"
+#include "spacing-spanner.hh"
 
 inline int
 compare (Rhythmic_tuple const &a, Rhythmic_tuple const &b)
@@ -35,31 +19,35 @@ compare (Rhythmic_tuple const &a, Rhythmic_tuple const &b)
 }
 
 int
-Rhythmic_tuple::time_compare (Rhythmic_tuple const&h1,
+Rhythmic_tuple::time_compare (Rhythmic_tuple const &h1,
 			      Rhythmic_tuple const &h2)
 {
+  
   return (h1.end_ - h2.end_ ).sign ();
 }
 
-/**
-   Acknowledge rhythmic elements, for initializing spacing fields in
-   the columns.  */
-class Spacing_engraver : public Engraver
+Spacing_engraver::Spacing_engraver()
 {
-  PQueue<Rhythmic_tuple> playing_durations_;
-  Array<Rhythmic_tuple> now_durations_;
-  Array<Rhythmic_tuple> stopped_durations_;
-
-protected:
-  VIRTUAL_COPY_CONS(Translator);
-  virtual void acknowledge_element (Score_element_info);
-  virtual void do_post_move_processing ();
-  virtual void do_pre_move_processing ();
+  spacing_p_ = 0;
+}
 
-public:
+void
+Spacing_engraver::do_creation_processing ()
+{
+  spacing_p_  =new Spacing_spanner;
+  spacing_p_->set_bounds (LEFT, get_staff_info ().command_pcol_l ());  
+  announce_element (Score_element_info (spacing_p_, 0));
+}
 
-};
+void
+Spacing_engraver::do_removal_processing ()
+{
+  Paper_column * p = get_staff_info ().command_pcol_l ();
 
+  spacing_p_->set_bounds (RIGHT, p);
+  typeset_element (spacing_p_);
+  spacing_p_ =0;
+}
 
 void
 Spacing_engraver::acknowledge_element (Score_element_info i)
@@ -83,8 +71,9 @@ Spacing_engraver::do_pre_move_processing ()
 	shortest_playing = shortest_playing <? m;
     }
 
-  Moment starter;
-  starter.set_infinite (1);
+  Moment starter, inf;
+  inf.set_infinite (1);
+  starter=inf;
   for (int i=0; i < now_durations_.size (); i++)
     {
       Moment m = now_durations_[i].info_.req_l_->length_mom ();
@@ -104,7 +93,6 @@ Spacing_engraver::do_pre_move_processing ()
   sc->shortest_starter_mom_ = starter;
 }
 
-
 void
 Spacing_engraver::do_post_move_processing ()
 {
diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc
new file mode 100644
index 0000000000..0f639a3abe
--- /dev/null
+++ b/lily/spacing-spanner.cc
@@ -0,0 +1,170 @@
+/*   
+  spacing-spanner.cc --  implement Spacing_spanner
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "spacing-spanner.hh"
+#include "score-column.hh"
+#include "dimensions.hh"
+#include "paper-def.hh"
+#include "warn.hh"
+#include "p-score.hh"
+#include "line-of-score.hh"
+
+Spacing_spanner::Spacing_spanner ()
+{
+  set_elt_property (break_helper_only_scm_sym, SCM_BOOL_T);
+  set_elt_property (transparent_scm_sym, SCM_BOOL_T);
+}
+
+int
+Spacing_spanner::col_count () const
+{
+  return pscore_l_->line_l_->cols_.size ();
+}
+
+Score_column *
+Spacing_spanner::scol (int i)const
+{
+  return dynamic_cast<Score_column*> (pscore_l_->line_l_->cols_[i]);
+}
+
+/*
+  cut 'n paste from spring-spacer.cc
+ */
+Array<Spring>
+Spacing_spanner::do_measure (int col1, int col2) const
+{
+  for (int i =col1; i < col2; i++)
+    {
+      scol (i)->preprocess ();
+      scol (i)->print ();
+    }
+
+  Moment shortest;
+  shortest.set_infinite (1);
+  for (int i =col1; i < col2; i++)
+    {
+      if (scol(i)->musical_b ())
+	{
+	  shortest = shortest <? scol(i)->shortest_starter_mom_;
+	}
+    }
+
+  Array<Spring> meas_springs;
+
+  for (int i= col1; i < col2; i++)
+    {
+      if (!scol (i)->musical_b() && i+1 < col_count())
+	{
+	  Real symbol_distance = scol (i)->extent (X_AXIS)[RIGHT] ;
+	  Real durational_distance = 0;
+	  Moment delta_t =  scol (i+1)->when_mom () - scol (i)->when_mom () ;
+	  /*
+	    ugh should use shortest_playing distance
+	  */
+	  if (delta_t)
+	    {
+  	      Real k=  paper_l()->arithmetic_constant (shortest);
+	      durational_distance =  paper_l()->length_mom_to_dist (delta_t,k);
+	    }
+	  symbol_distance += -scol (i+1)->extent(X_AXIS)[LEFT];
+
+	  Spring s ;
+	  s.item_l_drul_[LEFT] = scol (i);
+	  s.item_l_drul_[RIGHT] = scol (i+1);
+	  s.distance_f_ =  symbol_distance >? durational_distance;
+	  meas_springs.push (s);
+
+	  Item *l = s.item_l_drul_[LEFT]->find_prebroken_piece (RIGHT);
+	  Item *r = s.item_l_drul_[RIGHT]->find_prebroken_piece (LEFT);
+	  Spring sp_orig (s);
+	  
+	  if (l)
+	    {
+	      s = sp_orig;
+	      s.item_l_drul_[LEFT] =l ;
+	      meas_springs.push (s);
+	    }
+
+	  if (l && r)
+	    {
+	      s = sp_orig;
+	      s.item_l_drul_[RIGHT] = r;
+	      s.item_l_drul_[LEFT] = l;
+	      meas_springs.push (s);
+	    }
+	  
+	}
+    }
+
+  for (int i=col1; i < col2; i++)
+    {
+      if (scol (i)->musical_b())
+	{
+	  Moment shortest_playing_len = scol(i)->shortest_playing_mom_;
+	  if (! shortest_playing_len)
+	    {
+	      warning (_f ("can't find a ruling note at %s", 
+	        scol (i)->when_mom ().str ()));
+	      shortest_playing_len = 1;
+	    }
+	  if (! shortest)
+	    {
+	      warning (_f ("no minimum in measure at %s", 
+		      scol (i)->when_mom ().str ()));
+	      shortest = 1;
+	    }
+	  Moment delta_t = scol (i+1)->when_mom () - scol (i)->when_mom ();
+	  Real k=  paper_l()->arithmetic_constant(shortest);
+	  Real dist = paper_l()->length_mom_to_dist (shortest_playing_len, k);
+	  dist *= (double)(delta_t / shortest_playing_len);
+
+
+	  Spring sp;
+	  sp.distance_f_ =  dist;
+	  sp.item_l_drul_[LEFT] = scol (i);
+	  sp.item_l_drul_[RIGHT] = scol (i+1);
+
+	  meas_springs.push (sp);
+
+	  /*
+	    UGH. TODO: more
+	    advanced spacing here.
+	   */
+	  Spring sp_orig (sp);
+
+	  Item *r =  sp.item_l_drul_[RIGHT]->find_prebroken_piece (LEFT);
+	  
+	  if (r)
+	    {
+	      sp = sp_orig;
+	      sp.item_l_drul_[RIGHT] =r ;
+	      meas_springs.push (sp);
+	    }
+	}
+    }
+  return meas_springs;
+}
+
+Array<Spring>
+Spacing_spanner::get_springs () const
+{
+  Array<Spring> springs;
+  int last_break =0;
+  for (int i=1; i < col_count (); i++)
+    {
+      if (scol (i)->breakable_b ())
+	{
+	  springs.concat (do_measure (last_break, i));
+	  last_break  = i;
+	}
+    }
+  return springs;
+}
+
+
diff --git a/lily/spanner.cc b/lily/spanner.cc
index 32a047cf8f..17ca378449 100644
--- a/lily/spanner.cc
+++ b/lily/spanner.cc
@@ -13,8 +13,6 @@
 #include "molecule.hh"
 #include "paper-outputter.hh"
 
-
-
 void
 Spanner::do_print() const
 {
@@ -48,7 +46,6 @@ Spanner::break_into_pieces ()
   break_points.insert (left,0);
   break_points.push (right);
 
-
   for (int i=1; i < break_points.size(); i++) 
     {
       Breaking_information info;
@@ -86,7 +83,6 @@ Spanner::set_my_columns()
   while (flip(&i) != 1);
 }       
 
-
 void
 Spanner::set_bounds(Direction d, Item*i)
 {
@@ -95,6 +91,11 @@ Spanner::set_bounds(Direction d, Item*i)
     {
       i->used_b_ = true;
     }
+
+  if (d== LEFT)
+    {
+      dim_cache_[X_AXIS]->parent_l_ = i->dim_cache_[X_AXIS];
+    }
   
   if  (spanned_drul_[Direction(-d)] == spanned_drul_[d]
        && i)
@@ -117,23 +118,11 @@ Spanner::Spanner ()
 }
 
 Spanner::Spanner (Spanner const &s)
-  :Score_element (s)
+  : Score_element (s)
 {
   spanned_drul_[LEFT] = spanned_drul_[RIGHT] =0;
 }
 
-void
-Spanner::output_processing () 
-{
-  if (get_elt_property (transparent_scm_sym) != SCM_BOOL_F)
-    return;
-
-  output_p_ = do_brew_molecule_p ();
-  Offset left_off (spanned_drul_[LEFT]->absolute_coordinate(X_AXIS), 0);
-  Offset o (absolute_coordinate (X_AXIS), absolute_coordinate (Y_AXIS));
-  o += left_off;
-  pscore_l_->outputter_l_->output_molecule (output_p_, o, classname (this));
-}
 
 Interval
 Spanner::do_width() const
@@ -173,7 +162,6 @@ Spanner::find_broken_piece (Line_of_score*l) const
 	      span_p->set_bounds(LEFT,info.bounds_[LEFT]);
 	      span_p->set_bounds(RIGHT,info.bounds_[RIGHT]);
 	      pscore_l_->typeset_element (span_p);
-
 	      
 	      info.broken_spanner_l_ = span_p;
 	      span_p->handle_broken_dependencies();
@@ -192,9 +180,6 @@ Spanner::broken_b() const
   return broken_info_.size();
 }
 
-
-
-
 Array<Rod>
 Spanner::get_rods () const
 {
@@ -202,6 +187,13 @@ Spanner::get_rods () const
   return r;
 }
 
+Array<Spring>
+Spanner::get_springs () const
+{
+  Array<Spring> s;
+  return s;    
+}
+
 void
 Spanner::do_space_processing ()
 {
@@ -210,4 +202,10 @@ Spanner::do_space_processing ()
     {
       rs[i].add_to_cols ();
     }
+
+  Array<Spring> ss (get_springs ());
+  for (int i=0; i < ss.size (); i++)
+    {
+      ss[i].add_to_cols ();
+    }
 }
diff --git a/lily/spring-spacer.cc b/lily/spring-spacer.cc
index 055ab3c6dd..8ef04b7f07 100644
--- a/lily/spring-spacer.cc
+++ b/lily/spring-spacer.cc
@@ -393,6 +393,25 @@ Spring_spacer::add_column (Paper_column  *col, bool fixed, Real fixpos)
       r_rod.other_idx_ = this_rank;
       cols_[left_idx].rods_[RIGHT].push (r_rod);
     }
+#if 1 
+  if (experimental_features_global_b)
+    {
+      for (int i=0; i < col->spring_arr_drul_[LEFT].size (); i++)
+	{
+	  Column_spring &cr = col->spring_arr_drul_[LEFT][i];
+	  int idx = cr.other_l_->rank_i () - cols_[0].pcol_l_->rank_i ();
+	  if (idx < 0)
+	    continue;
+
+	  if (cols_[idx].pcol_l_ != cr.other_l_)
+	    continue;
+
+
+	  connect (idx, this_rank, cr.distance_f_,
+		   cr.strength_f_ / cr.distance_f_);
+	}
+    }
+#endif  
   
   cols_.push (c);
 }
@@ -481,11 +500,10 @@ Spring_spacer::connect (int i, int j, Real d, Real h)
 void
 Spring_spacer::prepare()
 {
-  DOUT << "Preparing..";
-  calc_idealspacing();
+  if (!experimental_features_global_b)
+    calc_idealspacing();
   handle_loose_cols();
   print();
-  DOUT << "finished preparing.\n";
 }
 
 Line_spacer*
diff --git a/lily/spring.cc b/lily/spring.cc
new file mode 100644
index 0000000000..8ba0ff7966
--- /dev/null
+++ b/lily/spring.cc
@@ -0,0 +1,58 @@
+/*   
+  spring.cc --  implement Spring
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#include "spring.hh"
+#include "debug.hh"
+#include "item.hh"
+#include "p-col.hh"
+
+Spring::Spring ()
+{
+  item_l_drul_[LEFT]  =item_l_drul_[RIGHT] =0;
+  distance_f_ =0.;
+  strength_f_ =1.0;
+}
+
+void
+Spring::add_to_cols ()
+{
+  Direction d = LEFT;
+  do
+    {
+      item_l_drul_[-d]->column_l ()->add_spring
+	(item_l_drul_[d]->column_l (),
+	 distance_f_, strength_f_);
+    }
+  while ((flip (&d))!=LEFT);
+}
+
+
+Column_spring::Column_spring ()
+{
+  other_l_ = 0;
+  distance_f_ =0;
+  strength_f_ =1.0;
+}
+
+
+int
+Column_spring::compare (Column_spring const & r1, Column_spring const &r2)
+{
+  return r1.other_l_->rank_i() - r2.other_l_->rank_i();
+}
+
+void
+Column_spring::print () const
+{
+#ifndef NPRINT
+  DOUT << "Column_spring { rank = "
+       << other_l_->rank_i () << ", dist = " << distance_f_ << "}\n";   
+
+#endif
+}
diff --git a/lily/stem-engraver.cc b/lily/stem-engraver.cc
index f39bf56d2e..aa3aab9628 100644
--- a/lily/stem-engraver.cc
+++ b/lily/stem-engraver.cc
@@ -92,7 +92,7 @@ Stem_engraver::do_pre_move_processing()
 
   if (stem_p_)
     {
-      Scalar prop = get_property ("ydirection", 0);
+      Scalar prop = get_property ("verticalDirection", 0);
       Direction dir = prop.isnum_b () ? (Direction)int(prop) : CENTER;
       if (dir)
 	{
diff --git a/lily/tie-engraver.cc b/lily/tie-engraver.cc
index f726aaebf1..04746dc634 100644
--- a/lily/tie-engraver.cc
+++ b/lily/tie-engraver.cc
@@ -64,6 +64,10 @@ Tie_engraver::process_acknowledged ()
   
   if (req_l_)
     {
+
+      /*
+	JUNKME!
+       */
       if (old_behavior)
 	{
 	  if (now_heads_.size () != stopped_heads_.size ())
@@ -148,8 +152,8 @@ Tie_engraver::do_pre_move_processing ()
     }
   now_heads_.clear ();
 
-  Scalar dir (get_property ("tieydirection", 0));
-  Scalar dir2 (get_property ("ydirection", 0));
+  Scalar dir (get_property ("tieVerticalDirection", 0));
+  Scalar dir2 (get_property ("verticalDirection", 0));
 
   Direction tie_dir = CENTER;
   if (dir.length_i () && dir.isnum_b ())
diff --git a/lily/tie.cc b/lily/tie.cc
index 26ea948b44..dc7ac39b9c 100644
--- a/lily/tie.cc
+++ b/lily/tie.cc
@@ -28,7 +28,6 @@ Tie::Tie()
 {
   head_l_drul_[RIGHT] =0;
   head_l_drul_[LEFT] =0;
-  same_pitch_b_ =false;
 }
 
 
diff --git a/ly/book-fragment.ly b/ly/book-fragment.ly
index cd93221d6c..05eb9b5ab4 100644
--- a/ly/book-fragment.ly
+++ b/ly/book-fragment.ly
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
 	
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
diff --git a/ly/book-init.ly b/ly/book-init.ly
index 1e1140e691..eaf3e7bf2a 100644
--- a/ly/book-init.ly
+++ b/ly/book-init.ly
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
 	
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly";
diff --git a/ly/center-fragment.ly b/ly/center-fragment.ly
index 4f962b8f8f..65c2f669d3 100644
--- a/ly/center-fragment.ly
+++ b/ly/center-fragment.ly
@@ -1,7 +1,7 @@
 % Toplevel initialisation file. 
 	
 
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
diff --git a/ly/center.ly b/ly/center.ly
index ee1fbdb1d4..4d5a0bf5dc 100644
--- a/ly/center.ly
+++ b/ly/center.ly
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
 	
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
diff --git a/ly/engraver.ly b/ly/engraver.ly
index bb9afa28e9..a12244d0c7 100644
--- a/ly/engraver.ly
+++ b/ly/engraver.ly
@@ -158,8 +158,6 @@ StaffGroupContext= \translator {
 	
 	\accepts "Lyrics";
 	\accepts "ChordNames";
-	\consistsend "Axis_group_engraver";
-
 };
 \translator { \StaffGroupContext }
 
diff --git a/ly/fragment.ly b/ly/fragment.ly
index c6d18c374c..13500905ec 100644
--- a/ly/fragment.ly
+++ b/ly/fragment.ly
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
 	
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
diff --git a/ly/init.fly b/ly/init.fly
index 0b32b36d0b..31215a15ca 100644
--- a/ly/init.fly
+++ b/ly/init.fly
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
 	
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
diff --git a/ly/init.ly b/ly/init.ly
index 5951158137..5f652ecdcf 100644
--- a/ly/init.ly
+++ b/ly/init.ly
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
 	
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly";
diff --git a/ly/init.sly b/ly/init.sly
index 9e43e3d773..8f03850e7e 100644
--- a/ly/init.sly
+++ b/ly/init.sly
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
 	
-\version "1.0.19";
+\version "1.0.20";
 
 
 \include "declarations.ly"
diff --git a/ly/paper16.ly b/ly/paper16.ly
index e7b0b5c414..e499491a65 100644
--- a/ly/paper16.ly
+++ b/ly/paper16.ly
@@ -2,7 +2,7 @@
 
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 paper_sixteen = \paper {
 	staffheight = 16.0\pt;
diff --git a/ly/paper20.ly b/ly/paper20.ly
index 39cba96769..2de985a5f0 100644
--- a/ly/paper20.ly
+++ b/ly/paper20.ly
@@ -1,7 +1,7 @@
 % paper20.ly
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 paper_twenty = \paper {
 	staffheight = 20.0\pt;
diff --git a/ly/property.ly b/ly/property.ly
index 354d0f5664..f0f0ddf6c4 100644
--- a/ly/property.ly
+++ b/ly/property.ly
@@ -4,120 +4,30 @@
 
 %{
 
-PROPERTIES
-
-name			value	effect			shorthand
-
-[Voice]
-ydirection		-1	force stem down		\stemdown
-ydirection		0  	stem direction free	\stemboth
-ydirection		1	force stem up		\stemup
-
-pletvisibility		0	show nothing
-pletvisibility		1 	show number
-pletvisibility		2 	show (number and bracket)-if-no-beam
-pletvisibility		3 	show number, and bracket-if-no-beam
-pletvisibility		4 	show number, and bracket
-
-slurdash		0	normal slurs
-slurdash	        1	dotted slurs
-slurdash	        >1	dashed slurs
-
-slurydirection		-1	force stem down		\slurdown
-slurydirection		0  	stem direction free	\slurboth
-slurydirection		1	force stem up		\slurup
-
-slurydirection		-1	force stem down		\slurdown
-slurydirection		0  	stem direction free	\slurboth
-slurydirection		1	force stem up		\slurup
-
-textalignment		-1	left alignment of text
-textalignment		0	center alignment of text
-textalignment		1	right alignment of text
-
-beamAuto                0/1     auto-beam on/off
-beamAutoEnd		"num/den"    end auto-beam
-beamAutoEnd_8		"num/den"    end auto-beam of 8ths
-beamAutoEnd_16		"num/den"    end auto-beam of 16ths
-
-[Score?]
-beamslopedamping	0	no damping		\beamslopeproportional	
-beamslopedamping	1	damping1)		\beamslopedamped
-beamslopedamping	100000	zero slope		\beamslopezero
-
-[Score?]
-beamquantisation	0	no quantisations	\beamposfree
-beamquantisation	1	quantise pos and slope	\beamposnormal
-beamquantisation	2	quantise avoide wedge2)	\beampostraditional
-
-[Staff]
-keyoctaviation	0	Key signature only for specified octave	\specialkey
-keyoctaviation	1	Key signature for all octaves	\normalkey
-
-[Staff]
-barAlways		0	none
-barAlways		1	generate bar at every moment
-
-[Staff]
-barAuto			0	none
-barAuto			1	auto-generate bar every measure
-barAtLineStart		0/1     generate bar at beginning of line
-
-[Staff]
-timeSignatureStyle	C	Use C and stroked C for 4/4,2/2
-timeSignatureStyle	old	Use old style mensuration marks
-timeSignatureStyle	1	Use single number
-timeSignatureStyle	""	Use normal two-digit time signature
-timeSignatureStyle	Cn/m	Set symbol explicitly, n/m=2/2 or 4/4	
-timeSignatureStyle	oldn/m	Set symbol explicitly,
-				n/m=2/2,3/2,3/4,4/4,6/4	or 9/4.
-[Staff]
-voltaVisibility         0/1     on/off
-voltaSpannerDuration    Rat.    Coda kludge: set length of volta-spanner,
-                                typically set to one measure: "1"
-
-[Staff]
-clefStyle       "fullSizeChanges" Clef changes typeset in full size
-clefStyle       "transparent"     No clef typeset
-
-[Staff?]
-instrument		ascii	midi instrument table lookup
-
-[Score]
-chordInversion		0/1	Find and display chord with inversion?
-
-
-1) after beam slope damping table suggested in [Wanske]
-2) [Wanske] as well as [Ross] suggests that beams sloped upward must not 
-   start sitting on a staffline, and beams sloped downward must not hang 
-   from a staffline (similar for beam-ends).  This would create a wedge
-   that is traditionally being avoided because it could easily be filled-up 
-   with ink.
-   However, avoiding these wedges restricts the freedom of beams quite a lot 
-   while they don't seem to be a problem in modern printing.
-   In no piece of sheetmusic engraved after 1953 (Baerenreiter) i've seen 
-   these wedges being avoided.
+SEE THE REFERENCE MANUAL FOR EXPLANATIONS.
 
 %}
 
+\version "1.0.20";
+
 %hmm, (these) abbrevs suck, imo
 % i guess they're meant as some form of doco
 % that's what i use them for...
-stemup =        \property Voice.ydirection = \up 
-stemboth= 	\property Voice.ydirection = \center
-stemdown = 	\property Voice.ydirection = \down
+stemup =        \property Voice.verticalDirection = \up 
+stemboth= 	\property Voice.verticalDirection = \center
+stemdown = 	\property Voice.verticalDirection = \down
 
 slurup = \notes {
 	s1*0
-	\property Voice.slurydirection = \up 
+	\property Voice.slurVerticalDirection = \up 
 	}
 slurboth= \notes {
 	s1*0
-	\property Voice.slurydirection = \center
+	\property Voice.slurVerticalDirection = \center
 }
 slurdown = \notes { 	
 	s1*0
-	\property Voice.slurydirection = \down
+	\property Voice.slurVerticalDirection = \down
 }
 
 shifton = 	\property Voice.hshift = 1
@@ -155,25 +65,25 @@ onestaff =
 
 staffone = { 	
 	\translator Staff=one
-	\property Staff.ydirection = \center
+	\property Staff.verticalDirection = \center
 	\property Staff.hshift = 0
 }
 
 stafftwo = { 	
 	\translator Staff=two
-	\property Staff.ydirection = \center
+	\property Staff.verticalDirection = \center
 	\property Staff.hshift = 0
 }
 
 staffthree = { 	
 	\translator Staff=three
-	\property Staff.ydirection = \center
+	\property Staff.verticalDirection = \center
 	\property Staff.hshift = 0
 }
 
 stafffour = { 	
 	\translator Staff=four
-	\property Staff.ydirection = \center
+	\property Staff.verticalDirection = \center
 	\property Staff.hshift = 0
 }
 
@@ -285,3 +195,4 @@ endincipit = \notes{
     \property Staff.clefStyle = "fullSizeChanges" 
     \nobreak \bar "";
 }
+
diff --git a/make/toplevel.make.in b/make/toplevel.make.in
index aea7644563..07cd9a06c2 100644
--- a/make/toplevel.make.in
+++ b/make/toplevel.make.in
@@ -18,7 +18,7 @@ README_FILES = BUGS DEDICATION ANNOUNCE-0.1 ANNOUNCEMENT-1.0 \
  COPYING NEWS-0.1 NEWS-1.0 NEWS-0.0 NEWS  TODO AIMS
 README_TXT_FILES = README.txt AUTHORS.txt INSTALL.txt PATCHES.txt
 IN_FILES := $(wildcard *.in)
-EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES)  $(SCRIPTS) $(IN_FILES)
+EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES)  $(SCRIPTS) $(IN_FILES) TASKS
 NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES)
 
 # bootstrap stepmake:
@@ -37,3 +37,7 @@ examples:
 localinstall:
 	mkdir -p $(datadir)
 	$(LN_S) $(TEX_TFMDIR) $(datadir)/cmtfm
+
+
+local-WWW-clean:
+	$(depth)/buildscripts/out/clean-fonts
diff --git a/mutopia/Coriolan/bassi-part.ly b/mutopia/Coriolan/bassi-part.ly
index 58ef2d7a1d..e90c55e26d 100644
--- a/mutopia/Coriolan/bassi-part.ly
+++ b/mutopia/Coriolan/bassi-part.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "violoncello.ly"
diff --git a/mutopia/Coriolan/clarinetti-part.ly b/mutopia/Coriolan/clarinetti-part.ly
index 4dac9d5a0a..a43c6dfe97 100644
--- a/mutopia/Coriolan/clarinetti-part.ly
+++ b/mutopia/Coriolan/clarinetti-part.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "clarinetti.ly"
diff --git a/mutopia/Coriolan/clarinetti.ly b/mutopia/Coriolan/clarinetti.ly
index f749b3337b..581cf740e5 100644
--- a/mutopia/Coriolan/clarinetti.ly
+++ b/mutopia/Coriolan/clarinetti.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "clarinetto-1.ly"
 \include "clarinetto-2.ly"
diff --git a/mutopia/Coriolan/clarinetto-1.ly b/mutopia/Coriolan/clarinetto-1.ly
index 011fc4b946..7645f4172b 100644
--- a/mutopia/Coriolan/clarinetto-1.ly
+++ b/mutopia/Coriolan/clarinetto-1.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 clarinetto1 = \notes \relative c {
 	R1 *2 | d''4-.\ff r r2 | R1 *3 | e4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/clarinetto-2.ly b/mutopia/Coriolan/clarinetto-2.ly
index 2d9b6c1d27..7503d18ada 100644
--- a/mutopia/Coriolan/clarinetto-2.ly
+++ b/mutopia/Coriolan/clarinetto-2.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 clarinetto2 = \notes \relative c { 
 	R1*2 bes''4-.\ff r r2 | R1*3 | cis4-. r r2 | R1 *3 | 
diff --git a/mutopia/Coriolan/contrabasso-part.ly b/mutopia/Coriolan/contrabasso-part.ly
index ecf33ea66f..0f0a58c52d 100644
--- a/mutopia/Coriolan/contrabasso-part.ly
+++ b/mutopia/Coriolan/contrabasso-part.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "contrabasso.ly"
diff --git a/mutopia/Coriolan/contrabasso.ly b/mutopia/Coriolan/contrabasso.ly
index 5bc30649ff..c958df6f43 100644
--- a/mutopia/Coriolan/contrabasso.ly
+++ b/mutopia/Coriolan/contrabasso.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 contrabasso = \notes \relative c {
 %	\translator Staff=violoncello
diff --git a/mutopia/Coriolan/coriolan.ly b/mutopia/Coriolan/coriolan.ly
index 1d962bb2b4..aaa82c488b 100644
--- a/mutopia/Coriolan/coriolan.ly
+++ b/mutopia/Coriolan/coriolan.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 
diff --git a/mutopia/Coriolan/corni-part.ly b/mutopia/Coriolan/corni-part.ly
index d887b90432..b904ec9b8c 100644
--- a/mutopia/Coriolan/corni-part.ly
+++ b/mutopia/Coriolan/corni-part.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "corni.ly"
diff --git a/mutopia/Coriolan/corni.ly b/mutopia/Coriolan/corni.ly
index 4a1fe5d350..dc490a2704 100644
--- a/mutopia/Coriolan/corni.ly
+++ b/mutopia/Coriolan/corni.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "corno-1.ly"
 \include "corno-2.ly"
diff --git a/mutopia/Coriolan/corno-1.ly b/mutopia/Coriolan/corno-1.ly
index 9490995a65..5db1f24206 100644
--- a/mutopia/Coriolan/corno-1.ly
+++ b/mutopia/Coriolan/corno-1.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 corno1 = \notes \relative c {
 	R1 *2 | f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/corno-2.ly b/mutopia/Coriolan/corno-2.ly
index 4de3578839..d05eb04bfd 100644
--- a/mutopia/Coriolan/corno-2.ly
+++ b/mutopia/Coriolan/corno-2.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 corno2 = \notes \relative c {
 	R1 *2 | d''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/fagotti-part.ly b/mutopia/Coriolan/fagotti-part.ly
index d2cdd5b509..77cf1e3abf 100644
--- a/mutopia/Coriolan/fagotti-part.ly
+++ b/mutopia/Coriolan/fagotti-part.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "fagotti.ly"
diff --git a/mutopia/Coriolan/fagotti.ly b/mutopia/Coriolan/fagotti.ly
index 963dc803cc..f8d277a584 100644
--- a/mutopia/Coriolan/fagotti.ly
+++ b/mutopia/Coriolan/fagotti.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "fagotto-1.ly"
 \include "fagotto-2.ly"
diff --git a/mutopia/Coriolan/fagotto-1.ly b/mutopia/Coriolan/fagotto-1.ly
index fa1c8fdd89..096176e765 100644
--- a/mutopia/Coriolan/fagotto-1.ly
+++ b/mutopia/Coriolan/fagotto-1.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 fagotto1 = \notes \relative c {
 	R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/fagotto-2.ly b/mutopia/Coriolan/fagotto-2.ly
index 6968a3d9db..d5aaf3e699 100644
--- a/mutopia/Coriolan/fagotto-2.ly
+++ b/mutopia/Coriolan/fagotto-2.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 fagotto2 = \notes \relative c {
 	R1 *2 | f4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/flauti-part.ly b/mutopia/Coriolan/flauti-part.ly
index 41897d5b5d..ff50562870 100644
--- a/mutopia/Coriolan/flauti-part.ly
+++ b/mutopia/Coriolan/flauti-part.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "flauti.ly"
diff --git a/mutopia/Coriolan/flauti.ly b/mutopia/Coriolan/flauti.ly
index 146d4393d8..1557ba98d1 100644
--- a/mutopia/Coriolan/flauti.ly
+++ b/mutopia/Coriolan/flauti.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "flauto-1.ly"
 \include "flauto-2.ly"
diff --git a/mutopia/Coriolan/flauto-1.ly b/mutopia/Coriolan/flauto-1.ly
index dc8e42b044..faf51d925c 100644
--- a/mutopia/Coriolan/flauto-1.ly
+++ b/mutopia/Coriolan/flauto-1.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 flauto1 = \notes \relative c {
 	R1 *2 | c'''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/flauto-2.ly b/mutopia/Coriolan/flauto-2.ly
index fc7ea80f26..310d693398 100644
--- a/mutopia/Coriolan/flauto-2.ly
+++ b/mutopia/Coriolan/flauto-2.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 flauto2 = \notes \relative c {
 	R1 *2 | as'''4-.\ff r r2 | R1 *3 | b4-. r r2 | R1 *3 | 
diff --git a/mutopia/Coriolan/global.ly b/mutopia/Coriolan/global.ly
index 29f30c4ac6..cf487141d8 100644
--- a/mutopia/Coriolan/global.ly
+++ b/mutopia/Coriolan/global.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes {
 	\time 4/4;
diff --git a/mutopia/Coriolan/oboe-1.ly b/mutopia/Coriolan/oboe-1.ly
index 14762ae2ae..67d9d6d3b3 100644
--- a/mutopia/Coriolan/oboe-1.ly
+++ b/mutopia/Coriolan/oboe-1.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 oboe1 = \notes \relative c'' {
 	R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/oboe-2.ly b/mutopia/Coriolan/oboe-2.ly
index 6192a67009..c92d6d88d1 100644
--- a/mutopia/Coriolan/oboe-2.ly
+++ b/mutopia/Coriolan/oboe-2.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 oboe2 = \notes \relative c{
 	R1 *2| f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/oboi-part.ly b/mutopia/Coriolan/oboi-part.ly
index def281f8ab..599c688daa 100644
--- a/mutopia/Coriolan/oboi-part.ly
+++ b/mutopia/Coriolan/oboi-part.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "oboi.ly"
diff --git a/mutopia/Coriolan/oboi.ly b/mutopia/Coriolan/oboi.ly
index d11b71327f..b3f61ac178 100644
--- a/mutopia/Coriolan/oboi.ly
+++ b/mutopia/Coriolan/oboi.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "oboe-1.ly"
 \include "oboe-2.ly"
diff --git a/mutopia/Coriolan/timpani.ly b/mutopia/Coriolan/timpani.ly
index 47eac136a9..b2fefcf945 100644
--- a/mutopia/Coriolan/timpani.ly
+++ b/mutopia/Coriolan/timpani.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 timpani = \notes \relative c {
 	R1 *2 | c4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/trombe-part.ly b/mutopia/Coriolan/trombe-part.ly
index 4db3dddbec..4065c85e5c 100644
--- a/mutopia/Coriolan/trombe-part.ly
+++ b/mutopia/Coriolan/trombe-part.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "trombe.ly"
diff --git a/mutopia/Coriolan/trombe.ly b/mutopia/Coriolan/trombe.ly
index 54fe26bdc6..f552fd2c6e 100644
--- a/mutopia/Coriolan/trombe.ly
+++ b/mutopia/Coriolan/trombe.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "trombo-1.ly"
 \include "trombo-2.ly"
diff --git a/mutopia/Coriolan/trombo-1.ly b/mutopia/Coriolan/trombo-1.ly
index f302239fe5..8d8952e75c 100644
--- a/mutopia/Coriolan/trombo-1.ly
+++ b/mutopia/Coriolan/trombo-1.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 trombo1 = \notes \relative c {
 	R1 *2 | c''4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/trombo-2.ly b/mutopia/Coriolan/trombo-2.ly
index 49235bf749..3812ea54ef 100644
--- a/mutopia/Coriolan/trombo-2.ly
+++ b/mutopia/Coriolan/trombo-2.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 trombo2 = \notes \relative c {
 	R1 *2 | c'4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
diff --git a/mutopia/Coriolan/viola-1.ly b/mutopia/Coriolan/viola-1.ly
index 78ca458dfe..92a2f3211f 100644
--- a/mutopia/Coriolan/viola-1.ly
+++ b/mutopia/Coriolan/viola-1.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 viola1 = \notes \relative c {
 	\context Voice=one
diff --git a/mutopia/Coriolan/viola-2.ly b/mutopia/Coriolan/viola-2.ly
index 57488543b5..b0e5f7fe04 100644
--- a/mutopia/Coriolan/viola-2.ly
+++ b/mutopia/Coriolan/viola-2.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 viola2 = \notes \relative c {
 	% starts on (actualy, most part is on) same staff as viola1
diff --git a/mutopia/Coriolan/viola-part.ly b/mutopia/Coriolan/viola-part.ly
index 1d32273d91..e3ce9da93c 100644
--- a/mutopia/Coriolan/viola-part.ly
+++ b/mutopia/Coriolan/viola-part.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "viola-1.ly"
diff --git a/mutopia/Coriolan/violino-1-part.ly b/mutopia/Coriolan/violino-1-part.ly
index 525541b9d7..3ed4fb306f 100644
--- a/mutopia/Coriolan/violino-1-part.ly
+++ b/mutopia/Coriolan/violino-1-part.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "violino-1.ly"
diff --git a/mutopia/Coriolan/violino-1.ly b/mutopia/Coriolan/violino-1.ly
index 0ed1155615..2e4b87f08a 100644
--- a/mutopia/Coriolan/violino-1.ly
+++ b/mutopia/Coriolan/violino-1.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 violino1 = \notes \relative c {
 	c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
diff --git a/mutopia/Coriolan/violino-2-part.ly b/mutopia/Coriolan/violino-2-part.ly
index c9a83493bd..e738e9d945 100644
--- a/mutopia/Coriolan/violino-2-part.ly
+++ b/mutopia/Coriolan/violino-2-part.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "violino-2.ly"
diff --git a/mutopia/Coriolan/violino-2.ly b/mutopia/Coriolan/violino-2.ly
index dc3afe6c09..535a41690d 100644
--- a/mutopia/Coriolan/violino-2.ly
+++ b/mutopia/Coriolan/violino-2.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 violino2 = \notes \relative c {
 	c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
diff --git a/mutopia/Coriolan/violoncello-part.ly b/mutopia/Coriolan/violoncello-part.ly
index e7ab264801..4f40fbf0c8 100644
--- a/mutopia/Coriolan/violoncello-part.ly
+++ b/mutopia/Coriolan/violoncello-part.ly
@@ -7,7 +7,7 @@ enteredby =	 "JCN";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "violoncello.ly"
diff --git a/mutopia/Coriolan/violoncello.ly b/mutopia/Coriolan/violoncello.ly
index d6c13a21a9..070c820f63 100644
--- a/mutopia/Coriolan/violoncello.ly
+++ b/mutopia/Coriolan/violoncello.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 violoncello = \notes \relative c {
 	c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 |
diff --git a/mutopia/D.Scarlatti/progress.ly b/mutopia/D.Scarlatti/progress.ly
index 767eb6d53f..caf9418923 100644
--- a/mutopia/D.Scarlatti/progress.ly
+++ b/mutopia/D.Scarlatti/progress.ly
@@ -807,4 +807,4 @@ Bar_number_engraver;}}
 
 ----------------------------------------------------
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/D.Scarlatti/sonata-k1-l366.ly b/mutopia/D.Scarlatti/sonata-k1-l366.ly
index 710fee7651..e135d8343a 100644
--- a/mutopia/D.Scarlatti/sonata-k1-l366.ly
+++ b/mutopia/D.Scarlatti/sonata-k1-l366.ly
@@ -266,4 +266,4 @@ s1
 \paper{barsize=50.0; \translator {\StaffContext \consists
 Bar_number_engraver;}}
 }
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/D.Scarlatti/sonata-k2-l388.ly b/mutopia/D.Scarlatti/sonata-k2-l388.ly
index 0c2555a10b..af3e3b6c3d 100644
--- a/mutopia/D.Scarlatti/sonata-k2-l388.ly
+++ b/mutopia/D.Scarlatti/sonata-k2-l388.ly
@@ -336,4 +336,4 @@ g,4. |
 Bar_number_engraver;}}
 }
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/D.Scarlatti/sonata-k3-l378.ly b/mutopia/D.Scarlatti/sonata-k3-l378.ly
index a83ded214b..7f86194155 100644
--- a/mutopia/D.Scarlatti/sonata-k3-l378.ly
+++ b/mutopia/D.Scarlatti/sonata-k3-l378.ly
@@ -251,4 +251,4 @@ LHtoL = { \tolower \stemdown }
  
 
 }
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/D.Scarlatti/sonata-k4-l390.ly b/mutopia/D.Scarlatti/sonata-k4-l390.ly
index bbff16daa9..bffe458f17 100644
--- a/mutopia/D.Scarlatti/sonata-k4-l390.ly
+++ b/mutopia/D.Scarlatti/sonata-k4-l390.ly
@@ -311,4 +311,4 @@ s8 [c''16 g'8 fis'16] [bes'' g' f' ees'] |
  \paper{barsize=50.0; \translator {\StaffContext \consists
 Bar_number_engraver;}}
 }
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/D.Zipoli/verso_2.ly b/mutopia/D.Zipoli/verso_2.ly
index d54e3abbb3..524878c603 100644
--- a/mutopia/D.Zipoli/verso_2.ly
+++ b/mutopia/D.Zipoli/verso_2.ly
@@ -17,7 +17,7 @@ title = "Verso II";
 	under the Gnu Public Licence.
 %}
 	
-\version "1.0.19";
+\version "1.0.20";
 
 $voice_one = \notes \relative c' {
 	a'2 bes4. [c16 bes] | a4 d ~ d c ~ | c b ~ [b8 a] a4 ~|
diff --git a/mutopia/E.Satie/gnossienne-4.ly b/mutopia/E.Satie/gnossienne-4.ly
index 7a313540c5..c2ecc576f9 100644
--- a/mutopia/E.Satie/gnossienne-4.ly
+++ b/mutopia/E.Satie/gnossienne-4.ly
@@ -12,7 +12,7 @@
  Tested Features: cross staff beams and slurs, grace notes, no bars
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "nederlands.ly"
 
@@ -78,7 +78,7 @@ bassbeam = \notes{
 
 lower = \context Voice=two \notes \relative c{
   \stemdown
-  \property Staff.slurydirection = 1
+  \property Staff.slurVerticalDirection = 1
 
   % snapnie, hoevaak relative c heeft ze nodig?
   < \notes\relative c \basloopje \bassbeam >
diff --git a/mutopia/E.Satie/petite-ouverture-a-danser.ly b/mutopia/E.Satie/petite-ouverture-a-danser.ly
index 3222aed515..4216696d5a 100644
--- a/mutopia/E.Satie/petite-ouverture-a-danser.ly
+++ b/mutopia/E.Satie/petite-ouverture-a-danser.ly
@@ -12,7 +12,7 @@
  Tested Features:
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "nederlands.ly"
 
diff --git a/mutopia/F.Schubert/standchen-16.ly b/mutopia/F.Schubert/standchen-16.ly
index b79169a714..2ebcf919e3 100644
--- a/mutopia/F.Schubert/standchen-16.ly
+++ b/mutopia/F.Schubert/standchen-16.ly
@@ -9,6 +9,6 @@ description = "A schubert song in 16 pt";
 copyright =	 "public domain";
 } 
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "standchen.ly"
diff --git a/mutopia/F.Schubert/standchen-20.ly b/mutopia/F.Schubert/standchen-20.ly
index 35480ad44a..9d32796aa8 100644
--- a/mutopia/F.Schubert/standchen-20.ly
+++ b/mutopia/F.Schubert/standchen-20.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 description = "A schubert song in 20 pt";
 } 
 
-\version "1.0.19";
+\version "1.0.20";
 
 % fool make-website
 % \include "standchen.ly";
diff --git a/mutopia/F.Schubert/standchen.ly b/mutopia/F.Schubert/standchen.ly
index 3e9096f8ec..8012f243ec 100644
--- a/mutopia/F.Schubert/standchen.ly
+++ b/mutopia/F.Schubert/standchen.ly
@@ -16,7 +16,7 @@ multiple \paper{}s in one \score
 Note: Original key F.
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 $vocal_verse1 = \notes\relative c''{
 	% ugh: treble/bass
diff --git a/mutopia/Hymns/diademata.ly b/mutopia/Hymns/diademata.ly
index 4f28bd2703..61a8eac1c2 100644
--- a/mutopia/Hymns/diademata.ly
+++ b/mutopia/Hymns/diademata.ly
@@ -6,7 +6,7 @@ date = "1868";
 title = "Diademata";
 metre = "6 6. 8 6. D";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 sop=\notes \transpose c''{
 	ees2  | ees4 ees4 g2 g2 |  c'1.  \bar "||";
diff --git a/mutopia/Hymns/laudatedom.ly b/mutopia/Hymns/laudatedom.ly
index 5a5f21c891..f208db7e27 100644
--- a/mutopia/Hymns/laudatedom.ly
+++ b/mutopia/Hymns/laudatedom.ly
@@ -4,7 +4,7 @@ composer = "Parry";
 metre = "10 10 . 11 11";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 sop = \notes \transpose c''{
 	f4 | d' bes c' | f2 \bar "||";
diff --git a/mutopia/Hymns/maccabaeus.ly b/mutopia/Hymns/maccabaeus.ly
index 61af28cb6b..378f138a09 100644
--- a/mutopia/Hymns/maccabaeus.ly
+++ b/mutopia/Hymns/maccabaeus.ly
@@ -7,7 +7,7 @@ title = "Maccabaeus";
 metre = "10 11. 11 11. and refrain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 sop=\notes \relative c'' {
 	b2 gis4. a8  |b2 e,2 |
diff --git a/mutopia/Hymns/ode.ly b/mutopia/Hymns/ode.ly
index 5f59a39a5d..3cf2fd36bf 100644
--- a/mutopia/Hymns/ode.ly
+++ b/mutopia/Hymns/ode.ly
@@ -7,7 +7,7 @@ title = "Ode to Joy";
 metre = "8 7 8 7 D";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 sop=\notes \relative c'' {
 	b4 b c d | d c b a | g g a b | b4. a8 a2 \bar "||";
diff --git a/mutopia/Hymns/stille.ly b/mutopia/Hymns/stille.ly
index 20b145ca57..4dd7397fa1 100644
--- a/mutopia/Hymns/stille.ly
+++ b/mutopia/Hymns/stille.ly
@@ -8,7 +8,7 @@ poet = "Joseph Mohr";
 }
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 global=\notes {
 	      \time 6/4;
diff --git a/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Allemande.ly b/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Allemande.ly
index 1de961a843..5f7be0b367 100644
--- a/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Allemande.ly
+++ b/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Allemande.ly
@@ -4,7 +4,7 @@
 	piece = "Allemande";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes{
 	\time 4/4;
diff --git a/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Capriccio.ly b/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Capriccio.ly
index d28fca30b1..b5d1f9fd4b 100644
--- a/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Capriccio.ly
+++ b/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Capriccio.ly
@@ -10,7 +10,7 @@
 %% 
 %% Noe liknende skjer også i mellom andre og tredje stemme i takt 28
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes{
 	\time 2/4;
diff --git a/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Sinfonia.ly b/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Sinfonia.ly
index 30d3c93c3c..209c1f86c4 100644
--- a/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Sinfonia.ly
+++ b/mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Sinfonia.ly
@@ -10,7 +10,7 @@
   copyright =   "Public Domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = \notes {
 	\time 4/4;
diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly
index 1aea92781d..728f9e4ca8 100644
--- a/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly
+++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly
@@ -12,7 +12,7 @@ enteredby =	 "jcn";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 % upper = \context Staff \notes\relative c {
 upper = \context Staff=upper \notes\relative c {
diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly
index 62fc254829..dac1d147e2 100644
--- a/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly
+++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly
@@ -10,7 +10,7 @@ enteredby =	 "jcn";
 copyright =	 "public domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 upper = \context Staff \notes\relative c{
 	\context Voice=i
 	\property Voice . textstyle = "italic"
diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly
index c5ad7649c2..cfb68c0695 100644
--- a/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly
+++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly
@@ -8,7 +8,7 @@ composer =	"Johann Sebastian Bach (1685-1750)";
 enteredby =	"jcn";
 copyright =	"public domain";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 one = \context Staff \notes\relative c {
 	\context Voice=i
diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly
index 0727edd6bd..7306045676 100644
--- a/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly
+++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly
@@ -8,7 +8,7 @@ composer =	"Johann Sebastian Bach (1685-1750)";
 enteredby =	"jcn";
 copyright =	"public domain";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 
 upper = \context Staff \notes\relative c{
diff --git a/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly b/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly
index 1cf5f26662..2aec8613d0 100644
--- a/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly
+++ b/mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly
@@ -8,7 +8,7 @@ composer =	"Johann Sebastian Bach (1685-1750)";
 enteredby =	"jcn";
 copyright =	"public domain";
 }
-\version "1.0.19";
+\version "1.0.20";
 
 
 one = \context Staff \notes\relative c{
diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly
index 1026897316..a1215a3363 100644
--- a/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly
+++ b/mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly
@@ -104,4 +104,4 @@ allemande = \context Staff \notes<
 >
 
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly
index f643af8021..2c80b4b233 100644
--- a/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly
+++ b/mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly
@@ -91,4 +91,4 @@ courante = \context Staff \notes<
  \$courante_b
 >
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly
index 638f519953..a7e752eec8 100644
--- a/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly
+++ b/mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly
@@ -106,4 +106,4 @@ gigue = \notes<
 	\$gigue_b
 >
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly
index 4a750a49bb..da320dce16 100644
--- a/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly
+++ b/mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly
@@ -156,4 +156,4 @@ menuetto_ii = \context Staff\notes \relative c {
 	d2.
 }
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly
index c3dc87ebaf..1f6b58cb5f 100644
--- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly
+++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly
@@ -15,7 +15,7 @@ copyright =	 "public domain";
  dotted slurs
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "prelude-urtext.ly";
 
diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly
index f328ff2e3a..d3237c389f 100644
--- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly
+++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly
@@ -280,4 +280,4 @@ prelude = \context Staff \notes<
 	\$prelude_b
 >
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly
index 1bab6e0727..b68aafee14 100644
--- a/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly
+++ b/mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly
@@ -15,7 +15,7 @@ copyright =	 "public domain";
  dotted slurs
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "prelude-urtext.ly";
 
diff --git a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly
index 6e5124bbc5..1ecb556ba4 100644
--- a/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly
+++ b/mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly
@@ -92,4 +92,4 @@ sarabande = \context Staff \notes<
 	\$sarabande_b
 >
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/viola-i.ly b/mutopia/J.S.Bach/viola-i.ly
index 4dadc02232..41f00eb5eb 100644
--- a/mutopia/J.S.Bach/viola-i.ly
+++ b/mutopia/J.S.Bach/viola-i.ly
@@ -16,4 +16,4 @@ $viola_i_staff = \context Staff = viola <
 	\clef alto;
 	\$global_i
 >
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/violino-i.ly b/mutopia/J.S.Bach/violino-i.ly
index 0d3fff5b46..8634e194fa 100644
--- a/mutopia/J.S.Bach/violino-i.ly
+++ b/mutopia/J.S.Bach/violino-i.ly
@@ -37,4 +37,4 @@ $violino_i_staff = \context Staff = violino <
 	>
 	\$global_i
 >
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/violino-viola.ly b/mutopia/J.S.Bach/violino-viola.ly
index d347fda265..97081d2e98 100644
--- a/mutopia/J.S.Bach/violino-viola.ly
+++ b/mutopia/J.S.Bach/violino-viola.ly
@@ -30,4 +30,4 @@ copyright =	 "Public Domain";
 	}
 }
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/violino-violoncello.ly b/mutopia/J.S.Bach/violino-violoncello.ly
index 58392fc2ea..3443a8d4aa 100644
--- a/mutopia/J.S.Bach/violino-violoncello.ly
+++ b/mutopia/J.S.Bach/violino-violoncello.ly
@@ -30,4 +30,4 @@ copyright =	 "Public Domain";
 	}
 }
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/violoncello-i.ly b/mutopia/J.S.Bach/violoncello-i.ly
index db96ad0e50..cd0938f961 100644
--- a/mutopia/J.S.Bach/violoncello-i.ly
+++ b/mutopia/J.S.Bach/violoncello-i.ly
@@ -28,4 +28,4 @@ $violoncello_i_staff = \context Staff = violoncello <
 	\clef bass;
 	\$global_i
 >
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/J.S.Bach/wtk1-fugue1.ly b/mutopia/J.S.Bach/wtk1-fugue1.ly
index 4a811eb1db..8da979849b 100644
--- a/mutopia/J.S.Bach/wtk1-fugue1.ly
+++ b/mutopia/J.S.Bach/wtk1-fugue1.ly
@@ -11,7 +11,7 @@ copyright =	 "Public Domain";
 %{
 	
 %}
-\version "1.0.19";
+\version "1.0.20";
 
 
 global = 
diff --git a/mutopia/J.S.Bach/wtk1-fugue2.ly b/mutopia/J.S.Bach/wtk1-fugue2.ly
index 22948fd8e4..606dfabb85 100644
--- a/mutopia/J.S.Bach/wtk1-fugue2.ly
+++ b/mutopia/J.S.Bach/wtk1-fugue2.ly
@@ -19,7 +19,7 @@
    * auto beaming
 %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "nederlands.ly"                 % for correct parsing of note names
 
@@ -35,7 +35,7 @@ dux = \context Voice=two \notes \relative c''{
   \voicetwo
   \clef violin;
 
-  \property Voice.ydirection = "-1"
+  \property Voice.verticalDirection = "-1"
   
   r8 c16 b c8 g as c16 b c8 d |
   g, c16 b c8 d f,16 g as4 g16 f |
diff --git a/mutopia/J.S.Bach/wtk1-prelude1.ly b/mutopia/J.S.Bach/wtk1-prelude1.ly
index f7c4d9886e..6f74810991 100644
--- a/mutopia/J.S.Bach/wtk1-prelude1.ly
+++ b/mutopia/J.S.Bach/wtk1-prelude1.ly
@@ -8,7 +8,7 @@ enteredby =	 "Shay Rojansky";
 copyright =	 "Public Domain";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 global = 
     \notes {
diff --git a/mutopia/L.Mozart/sinfonia.ly b/mutopia/L.Mozart/sinfonia.ly
index 18e11c3871..8637d416f4 100644
--- a/mutopia/L.Mozart/sinfonia.ly
+++ b/mutopia/L.Mozart/sinfonia.ly
@@ -383,4 +383,4 @@ bassocontinuo = \notes \relative c'{
         \midi{ \tempo 4 = 100; }
 }
 
-\version "1.0.19";
+\version "1.0.20";
diff --git a/mutopia/N.W.Gade/brass.ly b/mutopia/N.W.Gade/brass.ly
index 70378ad16e..5624bd37e1 100644
--- a/mutopia/N.W.Gade/brass.ly
+++ b/mutopia/N.W.Gade/brass.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 corI=\notes\relative c'' {
 \key c;
diff --git a/mutopia/N.W.Gade/parts.ly b/mutopia/N.W.Gade/parts.ly
index 6a06446bc8..e70c89dbe2 100644
--- a/mutopia/N.W.Gade/parts.ly
+++ b/mutopia/N.W.Gade/parts.ly
@@ -8,7 +8,7 @@ copyright =	"Mats Bengtsson, 1999. Free circulation permitted and " +
 		"Statens Musikbibliotek, Stockholm, Sweden";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "wood.ly"
diff --git a/mutopia/N.W.Gade/score.ly b/mutopia/N.W.Gade/score.ly
index af45976b13..ec55e58ff8 100644
--- a/mutopia/N.W.Gade/score.ly
+++ b/mutopia/N.W.Gade/score.ly
@@ -8,7 +8,7 @@ copyright =	"Mats Bengtsson, 1999. Free circulation permitted and " +
 		"Statens Musikbibliotek, Stockholm, Sweden";
 }
 
-\version "1.0.19";
+\version "1.0.20";
 
 \include "global.ly"
 \include "wood.ly"
diff --git a/mutopia/N.W.Gade/strings.ly b/mutopia/N.W.Gade/strings.ly
index 64594ba0c7..af2739b0ad 100644
--- a/mutopia/N.W.Gade/strings.ly
+++ b/mutopia/N.W.Gade/strings.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 viI=\notes\relative c'' {
 
diff --git a/mutopia/N.W.Gade/wood.ly b/mutopia/N.W.Gade/wood.ly
index 0167cbc8e1..25f85920b7 100644
--- a/mutopia/N.W.Gade/wood.ly
+++ b/mutopia/N.W.Gade/wood.ly
@@ -1,4 +1,4 @@
-\version "1.0.19";
+\version "1.0.20";
 
 oboe=\notes\relative c'' {
 \clef "treble";
diff --git a/mutopia/W.A.Mozart/cadenza.ly b/mutopia/W.A.Mozart/cadenza.ly
index bb1324dea6..8eab69c625 100644
--- a/mutopia/W.A.Mozart/cadenza.ly
+++ b/mutopia/W.A.Mozart/cadenza.ly
@@ -13,7 +13,7 @@ Tested Features: cadenza mode
 Ugh.. Wish we had grace notes....  It adds another dimension to this
 piece of music.  %}
 
-\version "1.0.19";
+\version "1.0.20";
 
 
 cad = \notes  \relative c' {
diff --git a/mutopia/W.A.Mozart/horn-concerto-3.ly b/mutopia/W.A.Mozart/horn-concerto-3.ly
index 9d97c5244a..a5d5b6cd8f 100644
--- a/mutopia/W.A.Mozart/horn-concerto-3.ly
+++ b/mutopia/W.A.Mozart/horn-concerto-3.ly
@@ -9,7 +9,7 @@ copyright =	 "public domain";
 }
 
 
-\version "1.0.19";
+\version "1.0.20";
 
 allegro =
 	\notes
diff --git a/mutopia/los-toros-oboe.ly b/mutopia/los-toros-oboe.ly
index f889f73d66..6d52d4ccae 100644
--- a/mutopia/los-toros-oboe.ly
+++ b/mutopia/los-toros-oboe.ly
@@ -8,7 +8,7 @@ enteredby =	 "jcn";
 copyright =	 "public domain";
 latexheaders=    "headers";
 } 
-\version "1.0.19";
+\version "1.0.20";
 
 
 
diff --git a/scripts/abc-2-ly.py b/scripts/abc-2-ly.py
new file mode 100644
index 0000000000..f1e5dd9ab7
--- /dev/null
+++ b/scripts/abc-2-ly.py
@@ -0,0 +1,224 @@
+#!@PYTHON@
+
+# once upon a rainy monday afternoon.
+#
+#   ...
+#
+# (not finished.)
+# 
+
+name = 'abc-to-ly'
+version = '0.1'
+
+import getopt
+import sys
+import re
+import string
+header = {}
+global_voice_stuff = []
+default_len = 4
+
+
+def dump_header (hdr):
+	print '\\header {'
+	for k in hdr.keys ():
+		print '%s = "%s";\n'% (k,hdr[k])
+ 	print '};'
+
+def set_default_length (s):
+	m =  re.match ('1/(.*)$', s)
+	if m:
+		default_len = string.atoi ( m.group (1))
+
+def parse_timesig (s):
+	m =  re.match ('^M: *(.*)$', s)
+	if m:
+		print '\meter %s; ' % m.group (1)
+
+def parse_key (s):
+	m =  re.match ('^K: *(.*)$', s)
+	if m:
+		print '\key %s; ' % m.group (1)
+	
+def gulp_file(f):
+	try:
+		i = open(f)
+		i.seek (0, 2)
+		n = i.tell ()
+		i.seek (0,0)
+	except:
+		print 'can\'t open file: ' + f + '\n'
+		return ''
+	s = i.read (n)
+	if len (s) <= 0:
+		print 'gulped empty file: ' + f + '\n'
+	i.close ()
+	return s
+
+
+def try_parse_header_line (ln):
+	m = re.match ('^(.): *(.*)$', ln)
+
+	if m:
+		g =m.group (1)
+		a = m.group (2)
+		if g == 'T':
+			header['title'] =  a
+		if g == 'M':
+			global_voice_stuff.append ('\\time %s;' % a)
+		if g == 'K':
+			global_voice_stuff.append ('\\key %s;' % a)
+		if g == 'O': 
+			header ['origin'] = a
+		if g == 'X': 
+			header ['crossRefNumber'] = a
+
+		if g == 'A':
+			header ['area'] = a
+		if g == 'H':
+			header ['history'] = a
+		if g == 'B':
+			header ['book'] = a
+		if g == 'S':
+			header ['subtitle'] = a
+		if g == 'L':
+			set_default_length (ln)
+	
+
+	return m
+
+
+# WAT IS ABC EEN ONTZETTENDE PROGRAMMEERPOEP  !
+
+def try_parse_note (str):
+	mud = ''
+
+	slur_begin =0
+	if str[0] == '(':
+		slur_begin = 1
+		str = str[1:]
+
+	acc = None
+	if str[0] in '^=_':
+		c = str[0]
+		str = str[1:]
+		if c == '^':
+			acc = 1
+		if c == '=':
+			acc = 0
+		if c == '_':
+			acc = -1
+
+        octave = 0;
+	if str[0] in "ABCDEFG":
+		str = string.lower (str[0]) + str[1:]
+		octave = -1
+
+
+	notename = 0
+	if str[0] in "abcdefg":
+		notename = ord(str[0]) - ord('a')
+		str = str[1:]
+	else:
+		return str		# failed; not a note!
+
+	while str[0] == ',':
+		 octave = octave - 1
+		 str = str[1:]
+	while str[0] == '\'':
+		 octave = octave + 1
+		 str = str[1:]
+	divide =0
+	if str[0] == '/':
+		divide =1
+		str = str[1:]
+	durstr = ''
+	while str[0] in "1234567890":
+		durstr = durstr + str[0]
+		str = str[1:]
+
+	duration_mult = 1
+	if durstr:
+		duration_mult = string.atoi (durstr)
+
+	
+	slur_end =0
+	if str[0] == ')':
+		slur_begin = 1
+		str = str[1:]
+
+
+	return str
+
+def junk_space (str):
+	while str and str[0] in '\t\n ':
+		str = str[1:]
+
+	return str
+
+def try_parse_bar (str):
+	if str[0] == '|':
+		str = str[1:]
+	return str
+	
+def try_parse_body_line (ln):
+	prev_ln = ''
+	while ln and  ln != prev_ln:
+		prev_ln = ln
+		ln = try_parse_note  (ln)
+		ln = try_parse_bar (ln)
+		ln = junk_space (ln)
+	if ln:
+		print 'Huh %s' % ln
+		
+
+def parse_file (fn):
+	f = open (fn)
+	ls = f.readlines ()
+
+	head = 1
+	for l in ls:
+		if re.match ('^[\t ]*(%.*)?$', l):
+			continue
+		
+		if head:
+			m = try_parse_header_line (l)
+			if not m:
+				head = 0
+
+		if not head:
+			m = try_parse_body_line (l)
+
+
+def identify():
+	print '%s %s' % (name, version)
+
+def help ():
+	print r"""
+This is a disfunctional ABC to mudela convertor.  It only gulps input, and
+says huh when confused.  Does not do chords.  Go ahead and fix me.
+
+-h, --help   this help.
+"""
+
+identify()
+(options, files) = getopt.getopt (sys.argv[1:], 'h', ['help'])
+
+for opt in options:
+	o = opt[0]
+	a = opt[1]
+	if o== '--help' or o == '-h':
+		help ()
+	else:
+		print o
+		raise getopt.error
+
+
+for f in files:
+	if f == '-':
+		f = ''
+	
+	parse_file (f)
+	dump_header (header)
+	print global_voice_stuff, 1
+	
diff --git a/scripts/convert-mudela.py b/scripts/convert-mudela.py
index ec6eaa1069..ea0ed1e921 100644
--- a/scripts/convert-mudela.py
+++ b/scripts/convert-mudela.py
@@ -324,6 +324,20 @@ if 1:
 			    'fontsize -> fontSize, midi_instrument -> midiInstrument, SkipBars -> skipBars')
 
 
+if 1:
+	def conv(lines):
+		newlines =[]
+		for x in lines:
+			x =  re.sub ('tieydirection','tieVerticalDirection', x)
+			x =  re.sub ('slurydirection','slurVerticalDirection', x)
+			x =  re.sub ('ydirection','verticalDirection', x)			
+			newlines.append (x)
+		return newlines
+
+	conversions.append ((1,0,20), conv,
+			    '{,tie,slur}ydirection -> {v,tieV,slurV}erticalDirection')
+
+
 
 ############################
 	
diff --git a/scripts/mup-to-ly.py b/scripts/mup-to-ly.py
index 0b5875526e..c9eb62d4b5 100644
--- a/scripts/mup-to-ly.py
+++ b/scripts/mup-to-ly.py
@@ -1,4 +1,3 @@
-#!/usr/bin/python
 #!@PYTHON@
 
 # mup-to-ly.py -- 
-- 
2.39.5