From 2ab67a7f42a7f3f2b7806eb876ac25b34539717b Mon Sep 17 00:00:00 2001
From: fred <fred>
Date: Wed, 27 Mar 2002 00:01:36 +0000
Subject: [PATCH] lilypond-1.3.99

---
 Documentation/topdocs/README.texi | 29 +++++++++++++-----
 buildscripts/tfmtoafm.sh          | 25 +++++++++------
 input/emacs-lily.fly              |  2 +-
 input/les-nereides.ly             | 42 ++++++++++++-------------
 input/scarlatti-properties.ly     |  4 +--
 input/test/american-chords.ly     | 51 +++++++++++++++----------------
 input/test/bagpipe.ly             |  6 ++--
 input/test/cue-notes.ly           | 12 ++++----
 input/test/jazz-chords.ly         |  4 +--
 input/test/markup.ly              |  6 ++--
 input/test/pushproperty.ly        |  2 +-
 lily/break-algorithm.cc           |  7 ++++-
 lily/include/slur-bezier-bow.hh   |  2 +-
 lily/score-element.cc             |  2 +-
 lily/slur-bezier-bow.cc           | 13 ++++----
 lily/slur.cc                      |  2 +-
 lily/spacing-spanner.cc           | 18 ++++++-----
 ly/engraver.ly                    | 12 ++++----
 mf/GNUmakefile                    |  7 ++++-
 scm/chord-names.scm               | 42 +++++++++++++++++++++----
 scm/generic-property.scm          |  2 +-
 scm/slur.scm                      |  5 ++-
 scripts/convert-mudela.py         | 14 ++++++---
 23 files changed, 189 insertions(+), 120 deletions(-)

diff --git a/Documentation/topdocs/README.texi b/Documentation/topdocs/README.texi
index dc612fb7ee..f1b3d8ded8 100644
--- a/Documentation/topdocs/README.texi
+++ b/Documentation/topdocs/README.texi
@@ -15,9 +15,13 @@ the GNU Project.
 
 LilyPond uses a versioning scheme similar to the Linux kernel.  In a
 version "x.y.z", an even second number 'y' denotes a stable version.
-For development versions 'y' is odd.  For using straightforward score
-production, please use the latest stable version.  Development versions
-may not produce good or nice scores.
+For development versions 'y' is odd.  Sh, in theory, version 1.2 is stable,
+which means that there are no glaring errors in it. In practice 1.2.x is also
+unmaintained.
+
+1.3.x is in healthy development: lots of problems turn up, but they're
+fixed quickly. Therefore we recommend you try 1.2.x, if you have any
+problem with it, upgrade to the latest 1.3.x release.
 
 @section Requirements
 
@@ -50,8 +54,7 @@ on how to make the HTML documentation.
   make -C Documentation/user/ dvi 
 @end example 
 
-You need a working LilyPond binary to create the DVI sources  .
- 
+You need a working LilyPond binary to create the DVI and HTML sources.
 
 @item  use ASCII. Do
 using @example 
@@ -71,8 +74,20 @@ criticism, comments, bugreports, patches, etc., but please,
  
 @end example 
 
-and @emph{not} to us personally.  See @file{Documentation/mail.texi} for
-more info.
+and @emph{not} to us personally. We have the following mailing lists:
+
+@itemize @bullet
+@item @uref{http://mail.gnu.org/mailman/listinfo/info-gnu-music,info-gnu-music@@gnu.org}
+is a low-volume list for information on the GNU Music project.
+    This list is moderated; ask 
+    @email{drl@@gnu.org, David R. Linn} or
+    @email{hanwen@@cs.uu.nl, Han-Wen} to send announcements for this list.
+@item @uref{http://mail.gnu.org/mailman/listinfo/help-gnu-music,help-gnu-music@@gnu.org}
+    For help with using LilyPond.
+@item @uref{http://mail.gnu.org/mailman/listinfo/bug-gnu-music,bug-gnu-music@@gnu.org}
+If you have bugreports, you should send them to this list.
+@end itemize
+
 
 @section Windows 32
 
diff --git a/buildscripts/tfmtoafm.sh b/buildscripts/tfmtoafm.sh
index 42c0bf6ee2..3b4f224822 100644
--- a/buildscripts/tfmtoafm.sh
+++ b/buildscripts/tfmtoafm.sh
@@ -1,17 +1,19 @@
 #!@SHELL@
 # tfmtoafm.sh --urg
 
-if [ $# -ne 1 ]; then
-	echo "Usage: tfmtoafm FONT"
+tfm=$1
+font=`basename $1 .tfm`
+
+if [ $# -ne 1 -o "$tfm" = "$font" ]; then
+	echo "Usage: tfmtoafm TFM-FILE"
 	echo
-	echo "example: tfmtoafm cmr10"
+	echo "example: tfmtoafm cmr10.tfm"
 	exit 2
 fi
 
-font=$1
 size=`echo $font | sed "s/[^0-9]*//"`
-afm=$1.afm
-fontfile=`kpsewhich $1.tfm`
+afm=$font.afm
+fontfile=`kpsewhich $font.tfm`
 t1=/tmp/tfmtoafm1-$$
 t2=/tmp/tfmtoafm2-$$
 rm -f $t1 $t2 $font $afm
@@ -23,19 +25,22 @@ scaling=`awk -v OFMT='%.5f' '/designsize/ {print $2/'$size/1000} $font`
 tail -127 $font | cut -f 1-2 > $t1
 cat $t1 | cut -d, -f 1-2 > $t2
 rm $t1
-nl -ba $t2 | awk -F '[ \t,]+' '{print "C "$2";\t"$3";\tB 0.00 0.00 "$4/'"$scaling"'" "$5/'"$scaling"'";"}' > $t1
+#nl -ba $t2 | awk -F '[ \t,]+' '{print "C "$2";\t"$3";\tB 0.00 0.00 "$4/'"$scaling"'" "$5/'"$scaling"'";"}' > $t1
+nl -ba $t2 | awk -F '[ \t,]+' '{print "C "$2" ; WX 0 ; N "$3" ; B 0.00 0.00 "$4/'"$scaling"'" "$5/'"$scaling"'" ;"}' > $t1
 
+count=`cat $t1 | wc -l`
+count=$((count + 1))
 cat > $afm <<EOF
 FontName cmr
 StartFontMetrics
-StartCharMetrics
+StartCharMetrics $count
 EOF
 # urg 0 is difficult but we need it
-head -1 $t1 | sed "s/1;/0;/g" >> $afm
+head -1 $t1 | sed -e "s/C 1 ;/C 0 ;/" -e "s/-1 ;/-0 ;/" >> $afm
 cat $t1 >> $afm
 cat >> $afm <<EOF
 EndCharMetrics
 EndFontMetrics
 EOF
-rm $t1 $t2
+rm $t1 $t2 $font
 
diff --git a/input/emacs-lily.fly b/input/emacs-lily.fly
index 1fda480437..39a93dd204 100644
--- a/input/emacs-lily.fly
+++ b/input/emacs-lily.fly
@@ -1 +1 @@
-cpp -P -traditional -o l-fake.ly  -DFAKE_GRACE les-nereides.ly
\ No newline at end of file
+cpp -P -traditional -o l-fake.ly  -DFAKE_GRACE les-nereides.ly
diff --git a/input/les-nereides.ly b/input/les-nereides.ly
index 36eeadb3c2..585c3e424d 100644
--- a/input/les-nereides.ly
+++ b/input/les-nereides.ly
@@ -120,19 +120,19 @@ treble = \context Voice=treble \notes\relative c''{
 
     \property Score.PaperColumn  \push #'space-factor = #0.6
     \property Score.PaperColumn  \push #'to-musical-spacing-factor = #0.04
-    \property Voice.NoteHead \push #'font-size = #-1
-    \property Voice.Stem \push #'font-size = #-1
+    \property Voice.NoteHead \push #'font-relative-size = #-1
+    \property Voice.Stem \push #'font-relative-size = #-1
     \property Voice.Stem \push #'length = #6
     \property Voice.Stem \push #'beamed-lengths =
         #(map (lambda (x) (* 1.25 x)) '(0.0 2.5 2.0 1.5))
     \property Voice.Stem \push #'beamed-minimum-lengths =
         #(map (lambda (x) (* 1.25 x)) '(0.0 1.5 1.25 1.0))
 
-    \property Voice.Beam \push #'font-size = #-1
-    \property Voice.TextScript \push #'font-size = #-1
-    \property Voice.Fingering \push #'font-size = #-1
-    \property Voice.Slur \push #'font-size = #-1
-    \property Staff.Accidentals \push #'font-size = #-1
+    \property Voice.Beam \push #'font-relative-size = #-1
+    \property Voice.TextScript \push #'font-relative-size = #-1
+    \property Voice.Fingering \push #'font-relative-size = #-1
+    \property Voice.Slur \push #'font-relative-size = #-1
+    \property Staff.Accidentals \push #'font-relative-size = #-1
     \property Voice.Beam \push #'space-function = #grace-beam-space-function
 
     )cis16
@@ -144,16 +144,16 @@ treble = \context Voice=treble \notes\relative c''{
     \property Staff."c0-position" = #-6
     [cis32 a^1 fis^4 dis] [cis a )fis-2] s % s s
 
-    \property Voice.NoteHead \pop #'font-size
-    \property Voice.Stem \pop #'font-size
+    \property Voice.NoteHead \pop #'font-relative-size
+    \property Voice.Stem \pop #'font-relative-size
     \property Voice.Stem \pop #'length
     \property Voice.Stem \pop #'beamed-lengths
     \property Voice.Stem \pop #'beamed-minimum-lengths
-    \property Voice.Beam \pop #'font-size
-    \property Voice.TextScript \pop #'font-size
-    \property Voice.Fingering \pop #'font-size
-    \property Voice.Slur \pop #'font-size
-    \property Staff.Accidentals \pop #'font-size
+    \property Voice.Beam \pop #'font-relative-size
+    \property Voice.TextScript \pop #'font-relative-size
+    \property Voice.Fingering \pop #'font-relative-size
+    \property Voice.Slur \pop #'font-relative-size
+    \property Staff.Accidentals \pop #'font-relative-size
     \property Voice.Beam \pop #'space-function
     \property Score.PaperColumn  \pop #'space-factor
     \property Score.PaperColumn \pop #'to-musical-spacing-factor
@@ -266,17 +266,17 @@ bass = \context Voice=bass \notes\relative c{
     s4 s8 s32 s  s \clef bass;
     \property Score.PaperColumn  \push #'space-factor = #0.6
     \property Score.PaperColumn  \push #'to-musical-spacing-factor = #0.1
-    \property Voice.NoteHead \push #'font-size = #-1
-    \property Voice.Stem \push #'font-size = #-1
+    \property Voice.NoteHead \push #'font-relative-size = #-1
+    \property Voice.Stem \push #'font-relative-size = #-1
     \property Voice.Stem \push #'length = #6
-    \property Voice.Slur \push #'font-size = #-1
+    \property Voice.Slur \push #'font-relative-size = #-1
     \property Voice.Slur \push #'attachment-offset = #'((-0.5 . 0) . (0.5 . 0))
     <e,,,32( e,>
 
-    \property Voice.NoteHead \pop #'font-size
-    \property Voice.Stem \pop #'font-size
+    \property Voice.NoteHead \pop #'font-relative-size
+    \property Voice.Stem \pop #'font-relative-size
     \property Voice.Stem \pop #'length
-    \property Voice.Slur \pop #'font-size
+    \property Voice.Slur \pop #'font-relative-size
     \property Score.PaperColumn  \pop #'space-factor
     \property Score.PaperColumn \pop #'to-musical-spacing-factor
      <)gis'2 e>
@@ -440,7 +440,7 @@ lowerDynamics = \context Dynamics=lower \notes{
 	    \consists "Text_engraver";
 	    %GURGURGU, text is initialised using TextScript
 	    TextScript \push #'style = #"italic"
-	    %%% TextScript \push #'font-size = #2
+	    %%% TextScript \push #'font-relative-size = #2
 
 	    \consists "Skip_req_swallow_translator";
 
diff --git a/input/scarlatti-properties.ly b/input/scarlatti-properties.ly
index 52e9c4fb8a..5584a54521 100644
--- a/input/scarlatti-properties.ly
+++ b/input/scarlatti-properties.ly
@@ -6,8 +6,8 @@
 rh=\property Thread.NoteHead \push #'style = #'default
 lh=\property Thread.NoteHead \push #'style = #'diamond
 
-n = \property Thread.NoteHead \pop #'font-size % = #'diamond %\property Thread.fontSize=#0  
-sm=\property Thread.NoteHead \push #'font-size = #-1 
+n = \property Thread.NoteHead \pop #'font-relative-size % = #'diamond %\property Thread.fontSize=#0  
+sm=\property Thread.NoteHead \push #'font-relative-size = #-1 
 
 % su=\property Voice.verticalDirection=#1  
 % sd=\property Voice.verticalDirection=#-1
diff --git a/input/test/american-chords.ly b/input/test/american-chords.ly
index bc20a85f4c..760ab2ab7d 100644
--- a/input/test/american-chords.ly
+++ b/input/test/american-chords.ly
@@ -1,4 +1,4 @@
-\version "1.3.96"
+\version "1.3.98"
 %{
   See scm/chord-names.scm: chord::names-alist-american
   James Hammons <jlhamm@pacificnet.net>
@@ -15,29 +15,30 @@
 
 chord = \notes\transpose c''\chords{
 	\property ChordNames.ChordNames \push #'style = #"american"
-c
-cs:m
-df:m5-
-c:5^3
-c:4^3
-c:5+
-c:2^3
-c:m5-.7-
-c:7+
-c:7.4^3
-c:5+.7
-c:m5-.7
-c:5-.7+
-c:m7+
-c:m7
-c:7
-c:6
-c:m6
-c:9^7
-c:6.9^7
-c:9
-c:7+.9
-c:m7.9
+c         % Major triad
+cs:m      % Minor triad
+df:m5-    % Diminished triad
+c:5^3     % Root-fifth chord
+c:4^3     % Suspended fourth triad
+c:5+      % Augmented triad
+c:2^3     % "2" chord
+c:m5-.7-  % Diminished seventh
+c:7+      % Major seventh
+c:7.4^3   % Dominant seventh suspended fourth
+c:5+.7    % Augmented dominant seventh
+c:m5-.7   % "Half" diminished seventh
+c:5-.7    % Dominant seventh flat fifth
+c:5-.7+   % Major seventh flat fifth
+c:m7+     % Minor-major seventh
+c:m7      % Minor seventh
+c:7       % Dominant seventh
+c:6       % Major sixth
+c:m6      % Minor sixth
+c:9^7     % Major triad w/added ninth
+c:6.9^7   % Six/Nine chord
+c:9       % Dominant ninth 
+c:7+.9    % Major ninth
+c:m7.9    % Minor ninth
 }
 
 \score{
@@ -53,5 +54,3 @@ c:m7.9
 		}
     }
 }
-
-%    (((0 . 0) (2 . -1) (4 . 0)) . ("Bar" . ("script" . "Baz")))
diff --git a/input/test/bagpipe.ly b/input/test/bagpipe.ly
index e9be547c7a..04a13098be 100644
--- a/input/test/bagpipe.ly
+++ b/input/test/bagpipe.ly
@@ -12,13 +12,13 @@
   \translator {
   	\GraceContext
 
-	NoteHead \push #'font-size = #-2
-	NoteHead \push #'font-size = #-2	
+	NoteHead \push #'font-relative-size = #-2
+	NoteHead \push #'font-relative-size = #-2	
         Stem \push #'flag-style = ##f
     % The following determines the length of stems without beams
     % default is between 2.8 and 4.0 depending on the number of flags
          Stem \push #'length = #6	
-        Stem \push #'font-size = #-2
+        Stem \push #'font-relative-size = #-2
 	GraceAlignItem \push #'horizontal-space = #1
 	Stem \push #'flag-style = #""
  
diff --git a/input/test/cue-notes.ly b/input/test/cue-notes.ly
index 7dba0a417e..876c5b9307 100644
--- a/input/test/cue-notes.ly
+++ b/input/test/cue-notes.ly
@@ -4,12 +4,12 @@
 	CueVoiceContext = \translator {
             \VoiceContext
             \name CueVoice;
-            basicNoteHeadProperties \push #'font-size = #-1
-            basicStemProperties \push #'font-size = #-1
-            basicBeamProperties \push #'font-size = #-1
-            basicTextScriptProperties \push #'font-size = #-1
-            basicSlurProperties \push #'font-size = #-1
-            basicLocalKeyProperties \push #'font-size = #-1
+            basicNoteHeadProperties \push #'font-relative-size = #-1
+            basicStemProperties \push #'font-relative-size = #-1
+            basicBeamProperties \push #'font-relative-size = #-1
+            basicTextScriptProperties \push #'font-relative-size = #-1
+            basicSlurProperties \push #'font-relative-size = #-1
+            basicLocalKeyProperties \push #'font-relative-size = #-1
 	};
 	\translator{ \CueVoiceContext }
 	StaffContext = \translator{\StaffContext
diff --git a/input/test/jazz-chords.ly b/input/test/jazz-chords.ly
index 8bcafc2aea..5c79a485d5 100644
--- a/input/test/jazz-chords.ly
+++ b/input/test/jazz-chords.ly
@@ -16,8 +16,8 @@
 
 	 ;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (super "o7"))
 	 ;jazz: the delta, see jazz-chords.ly
-	 (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) .  (super ((font-family . "math") "N")))
-	 (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows ((raise . 1) "o") ((raise . 0.5) ((kern . -0.5) ((font-size . "-3") "/"))) "7")) ; slashed o
+	 (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) .  (super ((font-family . math) "N")))
+	 (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows ((raise . 1) "o") ((raise . 0.5) ((kern . -0.5) ((font-relative-size . -3) "/"))) "7")) ; slashed o
 
 	 ;(((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (super "x7"))
 	 ; slashed o
diff --git a/input/test/markup.ly b/input/test/markup.ly
index 9d7703fdf0..6ca28e3d5d 100644
--- a/input/test/markup.ly
+++ b/input/test/markup.ly
@@ -11,16 +11,16 @@
 
 		d-\textscript #'(lines "one" "two" "three")
 		e-\textscript #'(lines (bold "one") 
-		  (rows "and" "there" "is" ((font-family . "number") "2"))
+		  (rows "and" "there" "is" ((font-family . number) "2"))
 		  (italic "three"))
 		f-\textscript #'(finger "3")
-		g-\textscript #'(music (named "noteheads-2"))
+		g-\textscript #'(music (named "noteheads-2" "flags-u3"))
 	}
 	\paper{
 		linewidth = -1.\mm;
 		\translator{
 			\ScoreContext
-			TextScript \push #'font-family = #"roman"
+			TextScript \push #'font-family = #'roman
 			TextScript \pop #'no-spacing-rods
 			TextScript \push #'direction = #1
 		}
diff --git a/input/test/pushproperty.ly b/input/test/pushproperty.ly
index c91a964ede..2fb31b21ce 100644
--- a/input/test/pushproperty.ly
+++ b/input/test/pushproperty.ly
@@ -77,7 +77,7 @@ You can use identifiers, eg.
 
 \paper {
 \translator { \VoiceContext
-	NoteHead \push #'font-size =  #-2
+	NoteHead \push #'font-relative-size =  #-2
 }
 }
 }
diff --git a/lily/break-algorithm.cc b/lily/break-algorithm.cc
index 4802e0507c..5bf45d8384 100644
--- a/lily/break-algorithm.cc
+++ b/lily/break-algorithm.cc
@@ -60,7 +60,12 @@ Break_algorithm::generate_spacing_problem (Link_array<Score_element> curline, In
 {
   Simple_spacer * sp =  new Simple_spacer;
   Paper_def * d = pscore_l_->paper_l_;
-  sp->default_space_f_ = d->get_var ("loose_column_distance");
+  /*
+    this is hardcoded, but this shouldn't happen anyway.
+    used to be g et_var ("loose_column_distance");        
+   */
+  sp->default_space_f_ = 1.0;
+
 
   sp->indent_f_ = line[LEFT];
 
diff --git a/lily/include/slur-bezier-bow.hh b/lily/include/slur-bezier-bow.hh
index a899dc46f6..e5f529a6e3 100644
--- a/lily/include/slur-bezier-bow.hh
+++ b/lily/include/slur-bezier-bow.hh
@@ -34,7 +34,7 @@ public:
 		   Real hinf, Real r0);
   Bezier get_bezier () const;
 
-  void minimise_enclosed_area (Paper_def* paper_l, Real beauty);
+  void minimise_enclosed_area (Paper_def* paper_l, Real beauty, SCM props);
   Real fit_factor () const;
   void blow_fit ();
   Real enclosed_area_f () const;
diff --git a/lily/score-element.cc b/lily/score-element.cc
index 6f5f97bd65..b489d29989 100644
--- a/lily/score-element.cc
+++ b/lily/score-element.cc
@@ -230,7 +230,7 @@ Score_element::lookup_l () const
   if (!lookup_l_)
     {
       Score_element * urg = (Score_element*)this;
-      SCM sz = urg->remove_elt_property ("font-size");
+      SCM sz = urg->remove_elt_property ("font-relative-size");
       int i = (gh_number_p (sz))
 	? gh_scm2int  (sz)
 	: 0;
diff --git a/lily/slur-bezier-bow.cc b/lily/slur-bezier-bow.cc
index 5e611e7c17..c3fc491d50 100644
--- a/lily/slur-bezier-bow.cc
+++ b/lily/slur-bezier-bow.cc
@@ -144,7 +144,8 @@ Slur_bezier_bow::area_x_gradients_array (Real area)
   algorithm, instead of this homebrew.
 */
 void
-Slur_bezier_bow::minimise_enclosed_area (Paper_def* paper_l, Real beauty)
+Slur_bezier_bow::minimise_enclosed_area (Paper_def* paper_l, Real beauty,
+					 SCM bezier_props)
 {
   Real length = curve_.control_[3][X_AXIS]; 
   Real beautiful = beauty * length * slur_height (length, h_inf_, r_0_);
@@ -153,11 +154,11 @@ Slur_bezier_bow::minimise_enclosed_area (Paper_def* paper_l, Real beauty)
   if (fit_factor () > 1.0)
     blow_fit ();
   
-  Real pct_c0 = paper_l->get_var ("bezier_pct_c0");
-  Real pct_c3 = paper_l->get_var ("bezier_pct_c3");
-  Real pct_in_max = paper_l->get_var ("bezier_pct_in_max");
-  Real pct_out_max = paper_l->get_var ("bezier_pct_out_max");
-  Real steps = paper_l->get_var ("bezier_area_steps");
+  Real pct_c0 = gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-c0"), bezier_props)));
+  Real pct_c3 = gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-c3"), bezier_props)));
+  Real pct_in_max =  gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-in-max"), bezier_props)));
+  Real pct_out_max = gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-pct-out-max"), bezier_props)));
+  Real steps =  gh_scm2double (gh_cdr (scm_assoc (ly_symbol2scm ("bezier-area-steps"),bezier_props)));
 
   for (int i=0; i < steps; i++)
     {
diff --git a/lily/slur.cc b/lily/slur.cc
index f52240d327..25518e8d2f 100644
--- a/lily/slur.cc
+++ b/lily/slur.cc
@@ -555,7 +555,7 @@ Slur::set_control_points (Score_element*me)
       if (gh_number_p (ssb))
 	sb = gh_scm2double (ssb);
 
-      bb.minimise_enclosed_area (me->paper_l(), sb);
+      bb.minimise_enclosed_area (me->paper_l(), sb, details);
       SCM sbf = scm_assq (ly_symbol2scm ("force-blowfit"), details);
       Real bff = 1.0;
       if (gh_pair_p (sbf) && gh_number_p (gh_cdr (sbf)))
diff --git a/lily/spacing-spanner.cc b/lily/spacing-spanner.cc
index c5b306092a..71178a0004 100644
--- a/lily/spacing-spanner.cc
+++ b/lily/spacing-spanner.cc
@@ -65,7 +65,7 @@ Spacing_spanner::do_measure (Score_element*me, Link_array<Score_element> cols)
     }
   mean_shortest /= n;
 
-  Real non_musical_space_strength = me->paper_l ()->get_var ("breakable_column_space_strength");
+
   for (int i= 0; i < cols.size () - 1; i++)
     {
       Item * l = dynamic_cast<Item*> (cols[i]);
@@ -129,7 +129,10 @@ Spacing_spanner::do_measure (Score_element*me, Link_array<Score_element> cols)
 	  */
 	  SCM sfac =lc->get_elt_property ("space-factor");
 	  if (Item::breakable_b (lc) || lc->original_l_)
-	    s.strength_f_ =  non_musical_space_strength;
+	    {
+	      s.strength_f_ =
+		gh_scm2double (lc->get_elt_property ("column-space-strength"));
+	    }
 	  else if (gh_number_p (sfac))
 	    left_distance *= gh_scm2double (sfac);
 
@@ -151,7 +154,7 @@ Spacing_spanner::do_measure (Score_element*me, Link_array<Score_element> cols)
 	  if (rc->musical_b ())
 	   {
 	      if (to_boolean (rc->get_elt_property ("contains-grace")))
-		right_dist *= me->paper_l ()->get_var ("before_grace_spacing_factor"); // fixme.
+		right_dist *= gh_scm2double (rc->get_elt_property ("before-grace-spacing-factor")); // fixme.
 	      else
 		right_dist *= gh_scm2double (lc->get_elt_property ("before-musical-spacing-factor"));
 	   }
@@ -227,10 +230,10 @@ Real
 Spacing_spanner::get_duration_space (Score_element*me, Moment d, Moment shortest) 
 {
   Real log =  log_2 (shortest);
-  Real k=   me->paper_l ()->get_var ("arithmetic_basicspace")
+  Real k = gh_scm2double (me->get_elt_property  ("arithmetic-basicspace"))
     - log;
   
-  return (log_2 (d) + k) * me->paper_l ()->get_var ("arithmetic_multiplier");
+  return (log_2 (d) + k) * gh_scm2double (me->get_elt_property ("arithmetic-multiplier")) * me->paper_l ()->get_var ("staffspace");
 }
 
 
@@ -308,8 +311,9 @@ Spacing_spanner::stem_dir_correction (Score_element*me, Score_element*l, Score_e
 
 
   Real correction = 0.0;
-  Real ssc = me->paper_l ()->get_var("stemSpacingCorrection");
+  Real ssc = gh_scm2double (me->get_elt_property("stem-spacing-correction"));
 
+  ssc *= me->paper_l ()->get_var ("staffspace");
 
   if (d1 && d2 && d1 * d2 == -1)
     {
@@ -350,8 +354,6 @@ Spacing_spanner::set_springs (SCM smob)
 
 
 
-
-
 /*
   maximum-duration-for-spacing
 From: bf250@freenet.carleton.ca (John Sankey)
diff --git a/ly/engraver.ly b/ly/engraver.ly
index 60c71da796..acfd960192 100644
--- a/ly/engraver.ly
+++ b/ly/engraver.ly
@@ -158,13 +158,13 @@ GraceContext=\translator {
 	Stem \push  #'stem-length = #6.0
 	Stem \push  #'direction = #1
 
-	NoteHead \push #'font-size = #-1
-	Stem \push #'font-size = #-1
+	NoteHead \push #'font-relative-size = #-1
+	Stem \push #'font-relative-size = #-1
 	Stem \push #'stem-shorten = #'(0)
-	Beam \push #'font-size = #-1
-	TextScript \push #'font-size = #-1
-	Slur \push #'font-size = #-1
-	Accidentals \push #'font-size = #-1
+	Beam \push #'font-relative-size = #-1
+	TextScript \push #'font-relative-size = #-1
+	Slur \push #'font-relative-size = #-1
+	Accidentals \push #'font-relative-size = #-1
 	Beam \push #'thickness = #0.3
 	Beam \push #'space-function = #(lambda (x) 0.5)
 
diff --git a/mf/GNUmakefile b/mf/GNUmakefile
index 027f47c883..220f84ef34 100644
--- a/mf/GNUmakefile
+++ b/mf/GNUmakefile
@@ -15,10 +15,15 @@ FET_FILES = $(filter-out $(TEST_FILES),$(wildcard feta[0-9]*.mf))
 FONT_FILES = $(filter-out $(TEST_FILES),$(wildcard feta*[0-9].mf))
 
 XPM_FONTS = feta20 feta-nummer10 feta-braces20
+#CM_AFM_FILES = cmr10
+
+$(outdir)/cmr10.afm:
+	-$(BASH) $(buildscripts)/tfmtoafm.sh `kpsewhich cmr10.tfm`
+	-mv $(@F) $@
 
 LOG_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.log))
 TEXTABLES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.tex))
-AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm) $(AF_FILES:.af=.afm))
+AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm) $(AF_FILES:.af=.afm) $(addsuffix .afm, $(CM_AFM_FILES)))
 TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm))
 PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa)) 
 
diff --git a/scm/chord-names.scm b/scm/chord-names.scm
index a0cd520bf9..14b8de6192 100644
--- a/scm/chord-names.scm
+++ b/scm/chord-names.scm
@@ -89,13 +89,14 @@
 	 ;jazz: the delta, see jazz-chords.ly
 	 ;;(((0 . 0) (2 . -1) (4 . -1) (6 . -2)) .  (super ((font-family . "math") "N"))
 	 ;; slashed o
-	 (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows ((raise . 1) "o") ((raise . 0.5) ((kern . -0.5) ((font-size . "-3") "/"))) "7")) ; slashed o
+	 (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (rows ((raise . 1) "o") ((raise . 0.5) ((kern . -0.5) ((font-relative-size . -3) "/"))) "7")) ; slashed o
 	 (((0 . 0) (2 . 0) (4 . 1) (6 . -1)) . ("aug7"))
-	 (((0 . 0) (2 . 0) (4 . -1) (6 . 0)) . (rows "maj7" (music (named ("accidentals--1"))) "5"))
+	 (((0 . 0) (2 . 0) (4 . -1) (6 . 0)) . (rows "maj7" ((font-relative-size . -2) ((raise . 0.2) (music (named "accidentals--1")))) "5"))
+	 (((0 . 0) (2 . 0) (4 . -1) (6 . -1)) . (rows "7" ((font-relative-size . -2) ((raise . 0.2) (music (named "accidentals--1")))) "5"))
 	 (((0 . 0) (3 . 0) (4 . 0) (6 . -1)) . ("7sus4"))
 	 ;; Common ninth chords
 	 (((0 . 0) (2 . 0) (4 . 0) (5 . 0) (1 . 0)) . ("6/9")) ;; we don't want the '/no7'
-	 (((0 . 0) (2 . 0) (4 . 0) (5 . 0)) . ("maj6"))
+	 (((0 . 0) (2 . 0) (4 . 0) (5 . 0)) . ("6"))
 	 (((0 . 0) (2 . -1) (4 . 0) (5 . 0)) . ("m6"))
 	 (((0 . 0) (2 . 0) (4 . 0) (1 . 0)) . ("add9"))
 	 (((0 . 0) (2 . 0) (4 . 0) (6 . 0) (1 . 0)) . ("maj9"))
@@ -105,6 +106,29 @@
 	 )
       chord::names-alist-american))
 
+;; Jazz chords, by Atte André Jensen
+;; Note: This uses the american list as a base
+
+(define chord::names-alist-jazz '())
+(set! chord::names-alist-jazz
+      (append 
+      '(
+         ; half diminished seventh chord = slashed o
+         (((0 . 0) (2 . -1) (4 . -1) (6 . -1)) . (("o" (type . "super")) ("/" (size . -2) (offset . (-0.58 . 0.5))) ))
+         ; diminished seventh chord =  o
+         (((0 . 0) (2 . -1) (4 . -1) (6 . -2)) . (("o" (type . "super"))))
+         ; major seventh chord = triangle
+         (((0 . 0) (2 . 0) (4 . 0) (6 . 0)) .  ((super ((font-family . "math") "N")) (size . -3)))
+         ; minor major seventh chord = m triangle
+         (((0 . 0) (2 . -1) (4 . 0) (6 . 0)) .  (("m") ((super ((font-family . math) "N")) (size . -3))))
+         ; augmented dominant = +7
+         (((0 . 0) (2 . 0) (4 . +1) (6 . -1)) . (super "+7"))
+
+;; Missing jazz chord definitions go here (note new syntax: see american for hints)
+
+	)
+      chord::names-alist-american))
+
 ;;;;;;;;;;
 
 
@@ -121,11 +145,11 @@
 	       (list
 		(append '(named)
 			(list
-			  (append '((font-size . "-2"))
+			  (append '((font-relative-size . -2))
+				(list (append '((raise . 0.6))
 				  (list
 				   (string-append "accidentals-" 
-						  (number->string (caddr pitch)))))))))))))
-
+						  (number->string (caddr pitch)))))))))))))))
 
 (define (step->text pitch)
   (string-append
@@ -320,6 +344,12 @@
 	(subtractions #f))
     (chord::inner-name-banter tonic user-name additions subtractions base-and-inversion)))
 
+;; Jazz style--basically similar to american with minor changes
+(define (chord::name-jazz tonic user-name pitches base-and-inversion)
+  (let ((additions (chord::additions pitches))
+	(subtractions #f))
+    (chord::inner-name-banter tonic user-name additions subtractions base-and-inversion)))
+
 ;; C++ entry point
 ;; 
 ;; Check for each subset of chord, full chord first, if there's a
diff --git a/scm/generic-property.scm b/scm/generic-property.scm
index 2903c24d0c..882f083290 100644
--- a/scm/generic-property.scm
+++ b/scm/generic-property.scm
@@ -155,7 +155,7 @@
 
 (define generic-All-properties
   (cons 'all
-	(list (list 'fontSize number? 'font-size))))
+	(list (list 'fontSize number? 'font-relative-size))))
 
 
 (define generic-notehead-properties
diff --git a/scm/slur.scm b/scm/slur.scm
index a17cf91fd0..f22bc5131e 100644
--- a/scm/slur.scm
+++ b/scm/slur.scm
@@ -110,7 +110,10 @@
    (extremity-rules . ,default-slur-extremity-rules)
    (extremity-offset-alist . ,default-slur-extremity-offset-alist)
    (de-uglify-parameters . ( 1.5  0.8  -2.0))
-   (details . ((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5)))
+   (details . ((height-limit . 2.0) (ratio . 0.333) (force-blowfit . 0.5)
+   	(bezier-pct-c0 . -0.2) (bezier-pct-c3 . 0.000006)
+	(bezier-pct-out-max . 0.8) (bezier-pct-in-max . 1.2)
+	(bezier-area-steps . 1.0)))
    (beautiful . 0.5)
    (y-free . 0.75)
    (attachment-offset . ((0 . 0) . (0 . 0)))
diff --git a/scripts/convert-mudela.py b/scripts/convert-mudela.py
index 3dfc56f3b5..c6d70e2e4c 100644
--- a/scripts/convert-mudela.py
+++ b/scripts/convert-mudela.py
@@ -117,7 +117,7 @@ if 1:					# need new a namespace
 			sys.stderr.write ('\nNot smart enough to convert \\octave')
 			raise FatalConversionError()
 		
-		return lines
+		return str
 
 	conversions.append (
 		((0,1,19), conv, 'deprecated \\octave; can\'t convert automatically'))
@@ -148,7 +148,7 @@ if 1:
 
 if 1:
 	def conv (str):
-		return lines
+		return str
 
 	conversions.append (
 		((1,0,0), conv, '0.1.21 -> 1.0.0 '))
@@ -168,9 +168,9 @@ if 1:
 
 if 1:
 	def conv(str):
-		if re.search ('\\\\header', lines):
+		if re.search ('\\\\header', str):
 			sys.stderr.write ('\nNot smart enough to convert to new \\header format')
-		return lines
+		return str
 	
 	conversions.append ((1,0,2), conv, '\\header { key = concat + with + operator }')
 
@@ -233,7 +233,7 @@ if 1:
 
 if 1:
 	def conv(str):
-		return lines
+		return str
 	conversions.append ((1,0,12), conv, 'Chord syntax stuff')
 
 
@@ -541,6 +541,10 @@ if 1:
 if 1:
 	def conv (str):
 		str = re.sub ('ChordNames*', 'ChordNames', str)
+		if re.search ('\\\\textscript "[^"]* *"[^"]*"', str):
+			sys.stderr.write ('\nNot smart enough to convert to new \\textscript markup text')
+
+		str = re.sub ('\\textscript +\("[^"]*"\)', '\\textscript #\1', str)
 
 		return str
 	
-- 
2.39.5