]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.99 release/1.3.99
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 25 Oct 2000 11:03:07 +0000 (13:03 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 25 Oct 2000 11:03:07 +0000 (13:03 +0200)
===========

* Renamed all occurrences of font-size to font-relative-size

* Renamed all occurrences of font-point to font-point-size

* Fixed interface.scm descriptions to use symbols iso strings

* Fixes for chord names, and added jazz style (James Hammons)

* Some font-size fixes.

* Added dynamics font in all staff-sizes.

* Quick fix for regtest.

1.3.98.h

19 files changed:
CHANGES
Documentation/user/glossary.tely
README.txt
VERSION
lily/break-algorithm.cc
lily/include/slur-bezier-bow.hh
lily/property-engraver.cc
lily/slur-bezier-bow.cc
lily/slur.cc
lily/spacing-spanner.cc
lily/translator-group.cc
make/out/lilypond.lsm
make/out/lilypond.spec
mf/feta-nummer-generic.mf [deleted file]
scm/element-descriptions.scm
scm/font.scm
scm/generate-documentation.scm
scm/interface.scm
scm/slur.scm

diff --git a/CHANGES b/CHANGES
index 19e9c79e20d6ef04a072f1f69cb5e0f0620ac28c..e5751612536b950241cee0770d538350476a5cab 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -9,9 +9,6 @@
 
 * Fixes for chord names, and added jazz style (James Hammons)
 
-1.3.98.jcn1
-===========
-
 * Some font-size fixes.
 
 * Added dynamics font in all staff-sizes.
@@ -21,6 +18,9 @@
 1.3.98.hwn2
 ===========
 
+* Removed all paper vars except linewidth, indent, staffspace and
+stafflinethickness.
+
 * Rewrote Scheme side of font-selection.
 
 * Bugfix: deprecate group-center-element thoroughly.
index 4d1ad3a606d1af9845b28f6713f4799b7062cffa..484f9fa621205c48f39dd44cee97709e83143693 100644 (file)
@@ -2738,6 +2738,10 @@ des @tab des @tab des
 
 @item
 
+@item @strong{e-flat} [todo]
+
+@item
+
 @item @strong{e} @tab mi @tab mi @tab E @tab e @tab e @tab e @tab e
 
 @item
index 4eed4cb48e0867cb7b7cd59974983b2eb9ece453..4c9e5742617f797595370e72b4bc687d0a6ca437 100644 (file)
@@ -12,9 +12,13 @@ Versioning
 
    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.
 
 Requirements
 ============
@@ -47,7 +51,8 @@ Documentation
 
             make -C Documentation/user/ dvi
 
-     You need a working LilyPond binary to create the DVI sources  .
+     You need a working LilyPond binary to create the DVI and HTML
+     sources.
 
    * use ASCII. Do using
                make doc
@@ -61,8 +66,21 @@ criticism, comments, bugreports, patches, etc., but please,
 
           Please send your e-mail to one of the MAILING LISTS
 
-   and _not_ to us personally.  See `Documentation/mail.texi' for more
-info.
+   and _not_ to us personally. We have the following mailing lists:
+
+   * info-gnu-music@gnu.org
+     (http://mail.gnu.org/mailman/listinfo/info-gnu-music) is a
+     low-volume list for information on the GNU Music project.
+     This list is moderated; ask     David R. Linn <drl@gnu.org> or
+     Han-Wen <hanwen@cs.uu.nl> to send announcements for this list.
+
+   * help-gnu-music@gnu.org
+     (http://mail.gnu.org/mailman/listinfo/help-gnu-music)     For help
+     with using LilyPond.
+
+   * bug-gnu-music@gnu.org
+     (http://mail.gnu.org/mailman/listinfo/bug-gnu-music) If you have
+     bugreports, you should send them to this list.
 
 Windows 32
 ==========
diff --git a/VERSION b/VERSION
index 700d0aba6e93bb47ad0ed2a468da2808a12ca2aa..1a504215d7e399434a9955a90758aca22ae54614 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=98
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=99
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 4802e0507c9ed2420495d5a0221605388158fa93..5bf45d838450967da7633df0bc461fd6b91e9756 100644 (file)
@@ -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];
 
index a899dc46f664ddb7d2259d3c006caa90684ddc89..e5f529a6e369e6e5139947253d536cece16b6095 100644 (file)
@@ -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;
index bebdabbad502157415125ecaaa18ae0dd8859ba2..baddf06bb6999e70cb79cbb886da892cefa0c98f 100644 (file)
@@ -127,13 +127,9 @@ Property_engraver::apply_properties (SCM p, Score_element *e, Translator_group*o
          name = scm_assoc (ly_symbol2scm ("name"), name);
          scm_display (gh_cdr(name), errport);
          scm_puts(" \\push #'",errport);
-         scm_display (elt_prop_sym,errport);
+         scm_write (elt_prop_sym,errport);
          scm_puts ( " = #",errport);
-         if (gh_string_p (val))
-           scm_puts ("\"", errport);
-         scm_display (val, scm_current_error_port ());
-         if (gh_string_p (val))
-           scm_puts ("\"", errport);
+         scm_write (val, scm_current_error_port ());
          scm_puts ("\n", errport);
        }
       else
@@ -159,7 +155,7 @@ Property_engraver::apply_properties (SCM p, Score_element *e, Translator_group*o
            
            scm_display (gh_call1 (typefunc, type_p), errport);
            scm_puts (", value found: ", errport);
-           scm_display (val, errport);
+           scm_write (val, errport);
            scm_puts (" type: ", errport);
            scm_display (ly_type (val), errport);
            scm_puts ("\n", errport);
index 5e611e7c179969b5c44a286dfb838e3155feafae..c3fc491d50c12a8ef47c44aef196bfaa3dbf08e2 100644 (file)
@@ -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++)
     {
index f52240d327dbda2a8a39822ceb9aefe035c423de..25518e8d2f3272b9456b43098004ed8e0dd9b237 100644 (file)
@@ -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)))
index c5b306092a74d5b26ded8c9fc9b02238cbb73ea6..71178a000493961d33696734f2c8a5803a61a883 100644 (file)
@@ -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)
index 6e455d8e5c78227559b3b2104c19abd4ac31d37f..7d40cc0734d0ca9662160ad7d808e85fe7c5c21f 100644 (file)
@@ -207,24 +207,6 @@ Translator_group::remove_translator_p (Translator*trans_l)
   return trans_l;
 }
 
-#if 0
-/*
-  should not use, instead: use properties to communicate between engravers.
- */
-Translator*
-Translator_group::get_simple_translator (String type) const
-{
-  for (SCM p = simple_trans_list_;  gh_pair_p (p); p =gh_cdr (p))
-    {
-      if (classname (unsmob_translator (gh_car (p))) == type)
-       return unsmob_translator (gh_car (p));
-    }
-  if (daddy_trans_l_)
-    return daddy_trans_l_->get_simple_translator (type);
-  return 0;
-}
-#endif 
-
 bool
 Translator_group::is_bottom_translator_b () const
 {
@@ -349,8 +331,8 @@ Translator_group::execute_single_pushpop_property (SCM prop, SCM eltprop, SCM va
              
              SCM meta = scm_assoc (ly_symbol2scm ("meta"), prev);
              SCM props = scm_assoc (ly_symbol2scm ("properties"), gh_cdr (meta));
-             SCM propdesc = scm_assoc (eltprop, gh_cdr (props));
-             if (!gh_pair_p (propdesc))
+             SCM type_p = scm_assoc (eltprop, gh_cdr (props));
+             if (!gh_pair_p (type_p))
                {
                  scm_puts (_("Couldn't find property description for #'").ch_C(),errport);
                  scm_display (eltprop, errport);
@@ -362,19 +344,17 @@ Translator_group::execute_single_pushpop_property (SCM prop, SCM eltprop, SCM va
                }
              else
                {
-                 
-                 SCM predicate = gh_cadr (propdesc);
-                 if (gh_call1 (predicate, val) == SCM_BOOL_F)
+                 type_p = gh_cdr (type_p);
+                 if (gh_call1 (type_p, val) == SCM_BOOL_F)
                    {
                      ok = false;
                      scm_puts (_("Failed typecheck for #'").ch_C (),errport);
                      scm_display (eltprop,errport);
                      scm_puts ( _(", value ").ch_C (), errport);
-                     scm_display (val, errport);
+                     scm_write (val, errport);
                      scm_puts (_(" must be of type ").ch_C (), errport);
                      SCM typefunc = scm_eval2 (ly_symbol2scm ("type-name"), SCM_EOL);
-           
-                     scm_display (gh_call1 (typefunc, predicate), errport);
+                     scm_display (gh_call1 (typefunc, type_p), errport);
                      scm_puts ("\n", errport);               
                    }
                }
index 6136b2f8661ff5252628937f07abb46616054b52..2993adac9a884265fa924ac08f3c0ea598f03068 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.98
-Entered-date: 22OCT00
+Version: 1.3.99
+Entered-date: 25OCT00
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.3.98.tar.gz 
+       1000k lilypond-1.3.99.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.98.tar.gz 
+       1000k lilypond-1.3.99.tar.gz 
 Copying-policy: GPL
 End
index 1351af8fa79f644104ef5d41057c161c161f789b..920db01e65b91a6fd946dfb73f3940dc3037bb64 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.3.98
+Version: 1.3.99
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.98.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.99.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 # Icon: lilypond-icon.gif
diff --git a/mf/feta-nummer-generic.mf b/mf/feta-nummer-generic.mf
deleted file mode 100644 (file)
index e69de29..0000000
index 0f4ddf4e385aca3460bc62dcc7f6920c812f8f86..4e88fcdf2878e1a2ed56dd1623d6e11ec7d5fe5c 100644 (file)
                (break-align-symbol . Left_edge_item)
                (X-offset-callbacks . (,Break_align_interface::alignment_callback))
                (breakable . #t)
-m              (meta . ,(element-description "LeftEdge" break-aligned-interface))
+               (meta . ,(element-description "LeftEdge" break-aligned-interface))
        ))
        
        (Fingering . (
@@ -325,12 +325,14 @@ m         (meta . ,(element-description "LeftEdge" break-aligned-interface))
        
        (PaperColumn . (
                (axes 0)
+               (before-grace-spacing-factor . 1.2)
                 (before-musical-spacing-factor . 0.4)
                (meta . ,(element-description "PaperColumn" paper-column-interface axis-group-interface spaceable-element-interface))
        ))
        (NonMusicalPaperColumn . (
                 (axes 0)
                 (before-musical-spacing-factor . 1.0)
+               (column-space-strength . 2.0)
                (meta . ,(element-description "NonMusicalPaperColumn" paper-column-interface axis-group-interface spaceable-element-interface))
         ))
        
@@ -361,7 +363,9 @@ m           (meta . ,(element-description "LeftEdge" break-aligned-interface))
        (Slur . ,default-basic-slur-properties)
        (SpacingSpanner . (
                (spacing-procedure . ,Spacing_spanner::set_springs)
-
+               (stem-spacing-correction . 0.5)
+               (arithmetic-basicspace . 2.0)
+               (arithmetic-multiplier . ,(* 0.9 1.32))
                ;; assume that notes at least this long are present.
                (maximum-duration-for-spacing . ,(make-moment 1 8))
                (meta . ,(element-description "SpacingSpanner"  spacing-spanner-interface))
index 8552faf065556a944c15c74e0b4358f1b88e96e1..d11a23a3c8c3bc5d689e83a2ce282abc1f49914c 100644 (file)
@@ -6,9 +6,6 @@
 ;;; (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;
 
-        
-
-
 (define style-to-font-alist
   `(
     (finger . ((font-family . number) (font-relative-size . -3)))
@@ -20,7 +17,6 @@
     (large . ((font-family . roman) (font-relative-size . 1)))
     (Large . ((font-series . bold) (font-family . roman) (font-relative-size . 2)))
     (dynamic . ((font-series . bold) (font-family . dynamic) (font-relative-size . 0)))
-    
 ))
 
 (define (font-field name font-descr)
@@ -35,7 +31,6 @@
        ((eq? name 'font-point-size-size) 5)
        )
        ))
-
   
 ;; return that part of LIST for which PRED is true.
 (define (filter-list pred? list)
       )
   )
 
-;; return those descriptions from FONT-DESCR-LIST whose FIELD-NAME matches VALUE
-
 ;;;;;;;;; TODO TODO . (should not use filtering?)
 ;; this is bad, since we generate garbage every font-lookup.
 ;; otoh, if the qualifiers is narrow enough , we don't generate much garbage.
-;;o
-
-
-;;; kut kut, het lukt gewoon niet, vandaag:
-
-;;;couldn't find font satisfying ((font-family . roman) (font-shape . upright) (font-relative-size . -3))
 
 
+;; return those descriptions from FONT-DESCR-LIST whose FIELD-NAME matches VALUE
 (define (filter-field field-name value font-descr-alist)
-    (if (string? value)
-      (let ((err (current-error-port)))
-       (display "\nignoring string qualifier: " err)
-       (display value err)
-       (display "\n" err)        
-       font-descr-alist)
       (filter-list
        (lambda (x) (eq? value (font-field field-name (car x))))
        font-descr-alist)
-      ))
+      )
 
 (define paper20-style-sheet-alist
   '(
                              q-order))
                        
          (qualifiers (filter-list pair? rawqualifiers))
-         (fontnm     (qualifiers-to-fontname qualifiers fonts))
+         (fontnm (qualifiers-to-fontname qualifiers fonts))
          (err (current-error-port))
          )
 
     (if (eq? fontnm "")
        (begin
          (display "\ncouldn't find font satisfying " err)
-         (display qualifiers err)
+         (write qualifiers err)
          (display "\n" err)      
          "cmr10"
          )
index 4868dfa3a026e213663c085012ce751607d7a0d8..a2f445ac783894d5ad2329a7d69fca7c3ae90165 100644 (file)
 ;
 ; generate HTML, return filename.
 ;
-(define (document-element description)
+(define (document-element iname description)
+  (display (string-append "Processing " iname " ... ") (current-error-port))
   (let* ((metah (assoc 'meta description))
+        
         (meta (if (pair? metah)
                   (cdr metah)
                   '((properties . ()) (name . "huh?"))
   )
 
 (define (document-elements elts)
-  (let* ((files (map (lambda (x) (document-element (cdr x)))
+  (let* ((files (map (lambda (x) (document-element (car x) (cdr x)))
                    elts))
        (outname  (string-append "backend.html"))
        (out (open-output-file outname))
    ))
 
 ; (display (document-interface stem-interface '()))
-; (define b (cdr (assoc 'Beam all-element-descriptions)))
+; (define b (cdr (assoc 'Dyna all-element-descriptions)))
 ;(display b)
 
 ;(document-element  b)
index 3075f9a626eca2ea0a1cca1ff2b48a31b1a07847..5e79f3d764059e36c5b7bfa0c8701534cd52cfa8 100644 (file)
   )
 
 
-(define (merge-interfaces ifs)
-   (list
-    (apply append (map car ifs))
-    (apply append (map cadr ifs))
-    (apply append (map caddr ifs))
-  ))
-
 (define (uniqued-alist  alist acc)
   (if (null? alist) acc
       (if (assoc (caar alist) acc)
@@ -31,6 +24,8 @@
 (define (element-description name . interfaces)
   (let* ((ifs (cons general-element-interface interfaces))
         (props (map caddr ifs))
+        (prop-typep-pairs (map (lambda (x) (cons (car x) (cadr x)))
+                                       (apply append props)))
         (syms (map car ifs))
        )
     (list (cons 'separator "\n\n\n")   ;easy printing.
@@ -39,7 +34,7 @@
          (cons 'interface-descriptions ifs)
          ; (cons 'interface-descriptions (cadr merged))
          ;; description of the element itself?
-         (cons 'properties (apply append props))
+         (cons 'properties prop-typep-pairs)
   )))
 
 
@@ -436,6 +431,8 @@ The following abbreviations are currently defined:
     (property-description 'font-name symbol? "partial font definition: base name of font file FIXME: should override other partials")
     (property-description 'font-point-size number? "partial font definition: exact font size in points FIXME: should override font-relative-size")
     (property-description 'font-relative-size number? "partial font definition: the relative size, 0 is style-sheet's normal size, -1 is smaller, +1 is bigger")
+
+    ;; Should move this somewhere else?  
     (property-description 'align number? "the alignment of the text, 0 is horizontal, 1 is vertical")
     (property-description 'lookup symbol? "lookup method: 'value for plain text, 'name for character-name")
     (property-description 'raise number? "height for text to be raised (a negative value lowers the text")
@@ -443,7 +440,6 @@ The following abbreviations are currently defined:
     (property-description 'magnify number? "the magnification factor.  FIXME: doesn't work for feta fonts")
     )))
 
-
 (define dot-column-interface
   (lily-interface
    'dot-column-interface
@@ -571,6 +567,13 @@ syllables.   The length of the hyphen line should stretch based on the
    'paper-column-interface
    ""
    (list
+    (property-description 'column-space-strength number? "relative strength of space following breakable columns (eg. prefatory matter)")
+    (property-description 'before-musical-spacing-factor number?
+"space before musical columns (eg. taken by accidentals) get this much
+stretched when they follow a musical column, in absence of grace
+notes.  0.0 means no extra space (accidentals are ignored)")
+    (property-description 'stem-spacing-correction number? "optical correction amount.")
+    (property-description 'before-grace-spacing-factor number? " stretch space this much if there are grace notes before the column")
     (property-description 'when moment? "when does this column happen?")
     (property-description 'bounded-by-me list? "list of spanners that have this
 column as start/begin point. Only columns that have elements or act as bounds are spaced.")
@@ -628,6 +631,47 @@ to a pointer to the collision")
    ""
    (list
     (property-description 'maximum-duration-for-spacing moment? "space as if a duration of this type is available in this measure.")
+    (property-description 'arithmetic-basicspace number? "The space taken by a note is determined by the formula 
+
+   SPACE = arithmetic_multiplier * ( C + log2 (TIME) ))
+
+where TIME is the amount of time a note occupies.  The value of C is
+chosen such that the smallest space within a measure is
+arithmetic_basicspace:
+
+  C = arithmetic_basicspace - log2 (mininum (SHORTEST, 1/8)) 
+
+The smallest space is the one following the shortest note in the
+measure, or the space following a hypothetical 1/8 note.  Typically
+arithmetic_basicspace is set to a value so that the shortest note
+takes about two noteheads of space (ie, is followed by a notehead of
+space):
+
+   2*quartwidth = arithmetic_multiplier * ( C + log2 (SHORTEST) ))
+
+   { using: C = arithmetic_basicspace - log2 (mininum (SHORTEST, 1/8)) }
+   { assuming: SHORTEST <= 1/8 }
+
+               = arithmetic_multiplier *
+              ( arithmetic_basicspace - log2 (SHORTEST) + log2 (SHORTEST) )
+
+               = arithmetic_multiplier * arithmetic_basicspace
+
+   { choose: arithmetic_multiplier = 1.0*quartwidth (why?)}
+
+               = quartwidth * arithmetic_basicspace
+
+   =>         
+
+   arithmetic_basicspace = 2/1 = 2
+
+If you want to space your music wider, use something like:
+
+   arithmetic_basicspace = 4.;
+
+")
+    (property-description 'arithmetic-multiplier number? "see arithmetic-basicspace")    
+    
     )))
 
 (define staff-symbol-interface
index a17cf91fd029e8923a61ca704e19d4e3e532a445..f22bc5131e259cce290136a937fc0f383bd11472 100644 (file)
    (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)))