From 3479cb4207dd439b1d34ce1cdba82a6205ed3803 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 25 Oct 2000 13:03:07 +0200 Subject: [PATCH] release: 1.3.99 =========== * 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 --- CHANGES | 6 ++-- Documentation/user/glossary.tely | 4 +++ README.txt | 30 ++++++++++++---- VERSION | 4 +-- lily/break-algorithm.cc | 7 +++- lily/include/slur-bezier-bow.hh | 2 +- lily/property-engraver.cc | 10 ++---- lily/slur-bezier-bow.cc | 13 +++---- lily/slur.cc | 2 +- lily/spacing-spanner.cc | 18 +++++----- lily/translator-group.cc | 32 ++++------------- make/out/lilypond.lsm | 8 ++--- make/out/lilypond.spec | 4 +-- mf/feta-nummer-generic.mf | 0 scm/element-descriptions.scm | 8 +++-- scm/font.scm | 26 +++----------- scm/generate-documentation.scm | 8 +++-- scm/interface.scm | 62 +++++++++++++++++++++++++++----- scm/slur.scm | 5 ++- 19 files changed, 145 insertions(+), 104 deletions(-) delete mode 100644 mf/feta-nummer-generic.mf diff --git a/CHANGES b/CHANGES index 19e9c79e20..e575161253 100644 --- 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. diff --git a/Documentation/user/glossary.tely b/Documentation/user/glossary.tely index 4d1ad3a606..484f9fa621 100644 --- a/Documentation/user/glossary.tely +++ b/Documentation/user/glossary.tely @@ -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 diff --git a/README.txt b/README.txt index 4eed4cb48e..4c9e574261 100644 --- a/README.txt +++ b/README.txt @@ -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 or + Han-Wen 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 700d0aba6e..1a504215d7 100644 --- 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. 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 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/property-engraver.cc b/lily/property-engraver.cc index bebdabbad5..baddf06bb6 100644 --- a/lily/property-engraver.cc +++ b/lily/property-engraver.cc @@ -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); 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 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 (cols[i]); @@ -129,7 +129,10 @@ Spacing_spanner::do_measure (Score_element*me, Link_array 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 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/lily/translator-group.cc b/lily/translator-group.cc index 6e455d8e5c..7d40cc0734 100644 --- a/lily/translator-group.cc +++ b/lily/translator-group.cc @@ -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); } } diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 6136b2f866..2993adac9a 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -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 diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 1351af8fa7..920db01e65 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -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 index e69de29bb2..0000000000 diff --git a/scm/element-descriptions.scm b/scm/element-descriptions.scm index 0f4ddf4e38..4e88fcdf28 100644 --- a/scm/element-descriptions.scm +++ b/scm/element-descriptions.scm @@ -156,7 +156,7 @@ (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)) diff --git a/scm/font.scm b/scm/font.scm index 8552faf065..d11a23a3c8 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -6,9 +6,6 @@ ;;; (c) 2000 Jan Nieuwenhuizen ;;; - - - (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) @@ -51,30 +46,17 @@ ) ) -;; 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 '( @@ -192,14 +174,14 @@ 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" ) diff --git a/scm/generate-documentation.scm b/scm/generate-documentation.scm index 4868dfa3a0..a2f445ac78 100644 --- a/scm/generate-documentation.scm +++ b/scm/generate-documentation.scm @@ -73,8 +73,10 @@ ; ; 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?")) @@ -98,7 +100,7 @@ ) (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)) @@ -120,7 +122,7 @@ )) ; (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) diff --git a/scm/interface.scm b/scm/interface.scm index 3075f9a626..5e79f3d764 100644 --- a/scm/interface.scm +++ b/scm/interface.scm @@ -14,13 +14,6 @@ ) -(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 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))) -- 2.39.5