]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.5.39.jcn2
authorJan Nieuwenhuizen <janneke@gnu.org>
Wed, 13 Mar 2002 23:56:01 +0000 (00:56 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Wed, 13 Mar 2002 23:56:01 +0000 (00:56 +0100)
2002-03-14  Jan Nieuwenhuizen  <janneke@gnu.org>

* scm/beam.scm (default-beam-y-quants): Bugfix: lower beam-sit by
1 staff-line-thickness.  Sadly, this makes dy quanting problems
(dy quants allowed should depend on actual left y) more visible.

14 files changed:
ChangeLog
Documentation/index.texi
Documentation/regression-test.tely
VERSION
input/baerenreiter-sarabande.ly
input/regression/beam-center-slope.ly [new file with mode: 0644]
input/regression/beam-concave.ly
input/regression/beam-quanting.ly
input/test/beam-hss.ly [new file with mode: 0644]
lily/beam.cc
scm/beam.scm
scm/grob-description.scm
scm/grob-property-description.scm
scm/ps.scm

index 04f8ff8ed60a817d5d916a691208c926ace17dd8..536e25bbdab893139dbafd6e3b2b6816bfe84a3c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,28 @@
+2002-03-14  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+       * scm/beam.scm (default-beam-y-quants): Bugfix: lower beam-sit by
+       1 staff-line-thickness.  Sadly, this makes dy quanting problems
+       (dy quants allowed should depend on actual left y) more visible.
+
 2002-03-13  Jan Nieuwenhuizen  <janneke@gnu.org>
 
+       * lily/beam.cc (quantise_dy): Bugfix: sign (0) = 0.  Hmm.
+
+       * scm/grob-property-description.scm (concaveness-threshold): Add
+       typecheck and description.
+
+       * scm/grob-description.scm (Beam): Remove obsolete properties, add
+       concaveness-threshold (previously concaveness).
+
+       * lily/beam.cc (check_concave): Remove choices and debugging
+       stuff: use best concaveness calculation.
+       (quantise_dy): Remove choice.  Try to never make a slope steeper
+       by quantising, but certainly never quantise a slope away.
+       (check_stem_length_f): Remove choice.  In case of lengthening
+       alowed, always lengthen to ideal length.
+
+       * Documentation/index.texi: Fix FAQ url.
+
        * Documentation/topdocs/INSTALL.texi: Add information about fink,
        compile fix and 1.4 specific fix that doesn't hurt 1.5.
 
index f6fc22e6839c487f06030637f49a27743f8ffe74..9c7e44ba40cc6f5412af1eb7d6d7b713ab5fb2ae 100644 (file)
@@ -193,7 +193,7 @@ by computer}.
 @unnumberedsec Mailing lists
 
 If you have questions, do write to the mailing lists.  But don't forget
-to read the @uref{Documentation/topdocs/out-www/FAQ.html,Very Frequently
+to read the @uref{../topdocs/out-www/FAQ.html,Very Frequently
 Asked Questions} and @uref{http://appel.dyndns.org/wiki?LilyPondFaqs,
 Frequently Asked Questions} first.
 
@@ -217,7 +217,7 @@ Searchable archives are available from
 
 @item @uref{http://mail.gnu.org/mailman/listinfo/lilypond-user,lilypond-user@@gnu.org}
         For discussing every-day use of LilyPond, in particular the
-stable releases..
+stable releases.
 
 Searchable archives are available from
 @uref{http://www.mail-archive.com/lilypond-user@@gnu.org}.
index a2e6e9ce38c28ef96914f64d0f6c8a4a97b62457..18a0520914bc27201869c1547494d12122dad785 100644 (file)
@@ -130,6 +130,8 @@ Grace note do weird things with timing. Fragile.
 
 @lilypondfile[printfilename]{beam-position.ly}
 
+@lilypondfile[printfilename]{beam-center-slope.ly}
+
 
 @lilypondfile[printfilename]{auto-beam-bar.ly}
 
diff --git a/VERSION b/VERSION
index 406ad197b344f887ce097e6ac2f892bd4ca7d5d8..eb73436f76c9b619aaafa345f2300339d6259fe5 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
 PATCH_LEVEL=39
-MY_PATCH_LEVEL=jcn1
+MY_PATCH_LEVEL=jcn2
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 2c4e0835b88931608beb775fb05dc318c04eb7a8..7a41495daa67888be615b5e821b77e6090188d9c 100644 (file)
@@ -99,8 +99,9 @@ sarabandeA =  \context Voice \notes \relative c {
       <d4 g,> gis4.   } >
   \stemUp
   d16(cis)d f,
+  [a,8 e']
   \stemBoth
-  [a,8 e'] [d' cis] |
+  [d' cis] |
   d4 d,,2 |
 }
 
diff --git a/input/regression/beam-center-slope.ly b/input/regression/beam-center-slope.ly
new file mode 100644 (file)
index 0000000..cec90fc
--- /dev/null
@@ -0,0 +1,12 @@
+\header{
+  texidoc="Simple beams on middle line should be allowed to have a slope."
+}
+\score{
+    \notes\relative c''{
+       [b'8 a] [a b]
+       [a,,8 b] [b a]
+    }
+    \paper{
+       linewidth = 0.0
+    }
+}
\ No newline at end of file
index 1cf0fa5420d19b95ebf621ff599e8742fe2c396e..cb3cd9b1b6852863bd05ac6b27ce732a33dd48c5 100644 (file)
@@ -10,30 +10,14 @@ beams this way."
 
 \score{
   \notes\relative c'{
-    \property Voice.Beam \set #'debug-concave = ##t
-
-%%%  \property Voice.Beam \set #'concaveness = #0.8
-%%%  \property Voice.Beam \set #'concaveness-no-slope = ##f
-%%%  \property Voice.Beam \set #'concaveness-square = ##f
-
-    
-    
-    \property Voice.Beam \set #'concaveness-no-slope = ##t
-    %%\property Voice.Beam \set #'concaveness = #0.25
-    
-    %% this gives what baerenreiter does, but it's too kludgy
-    %% to make much sense
-    \property Voice.Beam \set #'concaveness-square = ##t
-    \property Voice.Beam \set #'concaveness = #0.08
+    \property Voice.Beam \set #'concaveness-threshold = #0.08
     
 %% This case seems easy: second beam should be horizontal.
     
     %% SCS-I Menuet I, m15
     %% sloped
     %% slope = -0.5ss
-    %% concaveness: 0.50
-    %% concaveness-no-slope: 0.25
-    %% concaveness-no-slope^2: 0.06
+    %% concaveness: 0.06
     \clef bass
     \time 3/4
     \key g\major
@@ -42,9 +26,7 @@ beams this way."
     %% SCS-I Menuet II, m20
     %% horizontal
     %% slope = 0
-    %% concaveness: 1.12
-    %% concaveness-no-slope: 0.38
-    %% concaveness-no-slope^2: 0.09
+    %% concaveness: 0.09
     \key f\major
     fis,^"horiz." a c es d c
 
@@ -53,17 +35,13 @@ beams this way."
     
     %% Sarabande: m24
     %% sloped
-    %% concaveness: 0.75
-    %% concaveness-no-slope: 0.00
-    %% concaveness-no-slope^2: 0.00
+    %% concaveness: 0.00
     \stemUp
     [d,16 a' b cis]
 
     %% Sarabande: m25
     %% horizontal
-    %% concaveness: 0.50
-    %% concaveness-no-slope: 0.25
-    %% concaveness-no-slope^2: 0.12
+    %% concaveness:a: 0.12
     [a'16^"horiz." b c b]
     
 % Hmm.  Concaveness of both: 1.75
index 8339c34279fbcde47ad8c2231f055cc5e14515f0..eb41c94188d60aa2fe56573de62da4de1385939a 100644 (file)
@@ -20,7 +20,7 @@ Have some fun beam quanting
 
 \score {
     \notes\relative c'{
-        \property Voice.Beam \override #'height-quants = #beam-height-quants
+        \property Voice.Beam \override #'height-quant-function = #beam-height-quants
         \property Voice.Beam \override #'vertical-position-quant-function =
        #beam-vertical-position-quants
         c8 c c c
diff --git a/input/test/beam-hss.ly b/input/test/beam-hss.ly
new file mode 100644 (file)
index 0000000..eea5913
--- /dev/null
@@ -0,0 +1,36 @@
+\header {
+
+texidoc = "Beams in hang, straddle sit positions."
+
+}
+
+\version "1.5.23"
+
+#(define ps-testing #t)
+\score {
+    \notes\relative c'{
+        \property Voice.Beam \override #'height-quant-function
+       = #(lambda (x y) '(0 4))
+
+       \property Voice.Beam \override #'vertical-position-quant-function
+       = #(lambda (beam dy x staff-line)
+           (let* ((thick (ly-get-grob-property beam 'thickness))
+                  (hang (- 1 (/ (- thick staff-line) 2))))
+            (append (list hang) (list (+ hang 1)))))
+       [d8 d]
+       
+       \property Voice.Beam \override #'vertical-position-quant-function
+       = #(lambda (beam dy x staff-line) '(0 1))
+       [d8 d]
+
+       \property Voice.Beam \override #'vertical-position-quant-function
+       = #(lambda (beam dy x staff-line)
+           (let* ((thick (ly-get-grob-property beam 'thickness))
+                  (sit (/ (- thick staff-line) 2)))
+            (append (list sit) (list (+ sit 1)))))
+         [d8 d]
+    }
+    \paper{
+       linewidth = 0.0
+    }
+}
index e0440d5ec53d96b5ca3b327282973147cec42a94..0fc84e6a421204ce63515f7511ad67c76ae5cb2e 100644 (file)
@@ -329,20 +329,35 @@ MAKE_SCHEME_CALLBACK (Beam, least_squares, 1);
 SCM
 Beam::least_squares (SCM smob)
 {
- Grob *me = unsmob_grob (smob);
 Grob *me = unsmob_grob (smob);
 
- if (visible_stem_count (me) <= 1)
-   return SCM_UNSPECIFIED;
+  int count = visible_stem_count (me);
+  if (count <= 1)
+    return SCM_UNSPECIFIED;
 
   Real y = 0;
   Real dy = 0;
+  Direction dir = Directional_element_interface::get (me);
 
   /* Stem_info, and thus y,dy in this function are corrected for beam-dir */
   Real first_ideal = Stem::calc_stem_info (first_visible_stem (me)).idealy_f_;
   if (first_ideal == Stem::calc_stem_info (last_visible_stem (me)).idealy_f_)
     {
-      y = first_ideal;
-      dy = 0;
+      Real left = Stem::chord_start_f (first_visible_stem (me));
+      Real right = Stem::chord_start_f (last_visible_stem (me));
+      
+      /* Make simple beam on middle line have small tilt */
+      if (!first_ideal && left != right && count == 2)
+       {
+         int d = sign (right - left) * dir;
+         dy = gh_scm2double (me->get_grob_property ("thickness")) * d;
+         y = 0;
+       }
+      else
+       {
+         y = first_ideal;
+         dy = 0;
+       }
     }
   else
     {
@@ -369,13 +384,11 @@ Beam::least_squares (SCM smob)
     }
 
   /* Store true, not dir-corrected values */
-  Direction dir = Directional_element_interface::get (me);
   me->set_grob_property ("y", gh_double2scm (y * dir));
   me->set_grob_property ("dy", gh_double2scm (dy * dir));
   return SCM_UNSPECIFIED;
 }
 
-#include <stdio.h>
 MAKE_SCHEME_CALLBACK (Beam, check_concave, 1);
 SCM
 Beam::check_concave (SCM smob)
@@ -396,80 +409,33 @@ Beam::check_concave (SCM smob)
   if (stems.size () < 3)
     return SCM_UNSPECIFIED;
 
-  /* TODO: find-out what makes beam concave (#1, #2, #3, #4 or
-     something else) */
-  SCM s = me->get_grob_property ("concaveness-no-slope");
-
+  /* Concaveness try #2: Sum distances of inner noteheads that
+     fall outside the interval of the two outer noteheads */
   Real concave = 0;
-  if (!to_boolean (s))
+  Interval iv = Interval (Stem::chord_start_f (stems[0]),
+                         Stem::chord_start_f (stems.top ()));
+  
+  if (iv[MAX] < iv[MIN])
+    // iv.swap ();
+    iv = Interval (iv[MAX], iv[MIN]);
+  
+  for (int i = 1; i < stems.size () - 1; i++)
     {
-      /* Concaveness try #1: Sum distances of inner noteheads to line
-        between two outer noteheads.  */
-
-      s = me->get_grob_property ("concave-if-bigger-than-two");
-      
-      Real dy = Stem::chord_start_f (stems.top ())
-       - Stem::chord_start_f (stems[0]);
-      Real slope = dy / (stems.size () - 1);
-      
-      Real y0 = Stem::chord_start_f (stems[0]);
-      for (int i = 1; i < stems.size () - 1; i++)
-       {
-         Real c = (Stem::chord_start_f (stems[i]) - y0) - i * slope;
-
-         /* try #4: (Han-Wen): neem maximum afstand lijn - tot
-            extreme notehead (in geval van akkoorden). Als die
-            afstand >= 2.0 ss was, dan moest hij recht (of blijkbaar:
-            vrijwel recht, zie m 17, 18). Dat was nl. wat stolba zei:
-            als afstand lijn-noot >= 2.0 dan recht. */
-         
-         if (to_boolean (s) && c >= 2.0)
-           {
-             concave = 1000 * Directional_element_interface::get (me);
-             break;
-           }
-         
-         concave += c;
-       }
-
+      Real c = 0;
+      Real f = Stem::chord_start_f (stems[i]);
+      if ((c = f - iv[MAX]) > 0)
+       concave += c;
+      else if ((c = f - iv[MIN]) < 0)
+       concave += c;
     }
-  else
-    {
-      /* Concaveness try #2: Sum distances of inner noteheads that
-         fall outside the interval of the two outer noteheads */
-        
-      Interval iv = Interval (Stem::chord_start_f (stems[0]),
-                             Stem::chord_start_f (stems.top ()));
-
-      if (iv[MAX] < iv[MIN])
-       //      iv.swap ();
-       iv = Interval (iv[MAX], iv[MIN]);
-      
-      for (int i = 1; i < stems.size () - 1; i++)
-       {
-         Real c = 0;
-         Real f = Stem::chord_start_f (stems[i]);
-         if ((c = f - iv[MAX]) > 0)
-           concave += c;
-         else if ((c = f - iv[MIN]) < 0)
-           concave += c;
-       }
-    }
-  
   concave *= Directional_element_interface::get (me);
       
   Real concaveness = concave / (stems.size () - 2);
-
   /* ugh: this is the a kludge to get input/regression/beam-concave.ly
-     to behave as baerenreiter.
-
-    try #3 (add-on to #2): */
-  s = me->get_grob_property ("concaveness-square");
-  if (to_boolean (s))
-    concaveness /= (stems.size () - 2);
+     to behave as baerenreiter. */
+  concaveness /= (stems.size () - 2);
   
-  s = me->get_grob_property ("concaveness");
-  Real r = gh_scm2double (s);
+  Real r = gh_scm2double (me->get_grob_property ("concaveness-threshold"));
 
   /* TODO: some sort of damping iso -> plain horizontal */
   if (concaveness > r)
@@ -484,19 +450,6 @@ Beam::check_concave (SCM smob)
       me->set_grob_property ("dy", gh_double2scm (0)); 
     }
 
-  s = me->get_grob_property ("debug-concave");
-  if (to_boolean (s))
-    {
-#if 0
-      Item *text = new Item (me->get_property ("TextScript"));
-      text->set_grob_property ("text",
-                              ly_str02scm (to_str (concaveness).ch_C ())),
-      Side_position_interface::add_support (text, stem[0]);
-#else
-      printf ("concaveness: %.2f\n", concaveness);
-#endif
-    }
-  
   return SCM_UNSPECIFIED;
 }
 
@@ -553,7 +506,7 @@ Beam::quantise_dy (SCM smob)
     return SCM_UNSPECIFIED;
 
   Array<Real> a;
-  SCM proc = me->get_grob_property ("height-quants");
+  SCM proc = me->get_grob_property ("height-quant-function");
   SCM quants = gh_call2 (proc, me->self_scm (),
                         gh_double2scm (me->paper_l ()->get_var ("stafflinethickness")
                                        / 1.0));
@@ -571,15 +524,16 @@ Beam::quantise_dy (SCM smob)
       Real staff_space = Staff_symbol_referencer::staff_space (me);
       
       Interval iv = quantise_iv (a, abs (dy)/staff_space) * staff_space;
+
+#if 0      
       Real q = (abs (dy) - iv[SMALLER] <= iv[BIGGER] - abs (dy))
        ? iv[SMALLER]
        : iv[BIGGER];
-
-      if (to_boolean (me->get_grob_property ("quantise-dy-never-steeper"))
-         && iv[SMALLER] != 0)
-       q = iv[SMALLER];
+#else
+      Real q = (!dy || iv[SMALLER] != 0) ? iv[SMALLER] : iv[BIGGER];
+#endif
          
-      Real quantised_dy = q * sign (dy);
+      Real quantised_dy = q * (dy != 0 ? sign (dy) : 1);
       Real adjusted_y = y + (dy - quantised_dy) * 0.5;
       /* Store true, not dir-corrected values */
       me->set_grob_property ("y", gh_double2scm (adjusted_y * dir));
@@ -716,7 +670,7 @@ Beam::calc_stem_y_f (Grob*me,Item* s, Real y, Real dy)
    Optionally (testing): try to lengthen more, to reach more ideal
    stem lengths */
 Real
-Beam::check_stem_length_f (Grob*me,Real y, Real dy) 
+Beam::check_stem_length_f (Grob *me, Real y, Real dy) 
 {
   Real shorten = 0;
   Real lengthen = 0;
@@ -725,8 +679,11 @@ Beam::check_stem_length_f (Grob*me,Real y, Real dy)
   Link_array<Item> stems=
     Pointer_group_interface__extract_grobs (me, (Item*)0, "stems");
 
+  bool knee = false;
   int ideal_lengthen_count = 0;
   Real ideal_lengthen = 0;
+  int ideal_shorten_count = 0;
+  Real ideal_shorten = 0;
   
   for (int i=0; i < stems.size (); i++)
     {
@@ -734,38 +691,40 @@ Beam::check_stem_length_f (Grob*me,Real y, Real dy)
       if (Stem::invisible_b (s))
        continue;
 
+      knee |= dir != Directional_element_interface::get (s);
+
       Real stem_y = calc_stem_y_f (me, s, y, dy);
-       
+      
       stem_y *= dir;
       Stem_info info = Stem::calc_stem_info (s);
 
-      // if (0 > info.maxy_f_ - stem_y)
       shorten = shorten <? info.maxy_f_ - stem_y;
-      // if (0 < info.miny_f_ - stem_y)
       lengthen = lengthen >? info.miny_f_ - stem_y;
 
       if (info.idealy_f_ - stem_y > 0)
        {
-         ideal_lengthen += (info.idealy_f_ - stem_y);
+         ideal_lengthen += info.idealy_f_ - stem_y;
          ideal_lengthen_count++;
        }
-      // too long is not so bad as too short
-      else if (0) //info.idealy_f_ - stem_y < 0)
+      else if (info.idealy_f_ - stem_y < 0)
        {
-         ideal_lengthen += info.idealy_f_ - stem_y;
-         ideal_lengthen_count++;
+         ideal_shorten += info.idealy_f_ - stem_y;
+         ideal_shorten_count++;
        }
     }
-
+  
   if (lengthen && shorten)
     me->warning (_ ("weird beam vertical offset"));
 
-  if (to_boolean (me->get_grob_property ("ideal-lengthen"))
-      && ideal_lengthen_count)
+  if (ideal_lengthen_count)
     lengthen = (ideal_lengthen / ideal_lengthen_count) >? lengthen;
-      
-  /* when all stems are too short, normal stems win */
-  return dir * ((shorten) ?  shorten : lengthen);
+  if (knee && ideal_shorten_count)
+    shorten = (ideal_shorten / ideal_shorten_count) <? shorten;
+
+  if (lengthen && shorten)
+    return dir * (lengthen + shorten);
+    
+  return dir * (shorten ? shorten : lengthen);
 }
 
 /*
index b0feb6008fbec2b73ff54486fa0aea6f73f05ed5..6d5cbbc67675da387a8fda3f684dbf836f86ee8c 100644 (file)
   
 ;; Note: quanting period is take as quants.top () - quants[0], 
 ;; which should be 1 (== 1 interline)
-(define (mean a b) (* 0.5 (+ a  b)))
+ (define (mean a b) (* 0.5 (+ a  b)))
 (define (default-beam-dy-quants beam stafflinethick)
-  (let ((thick (ly-get-grob-property beam 'thickness))
-       )
-    
+  (let ((thick (ly-get-grob-property beam 'thickness)))
+    ;; amazing.  this is wrong:
     (list 0 (mean thick stafflinethick) (+ thick stafflinethick) 1)
+    ;; it should be this: but the visual effect is even uglier,
+    ;; because dy quants are not synchronised with left y
+    ;; (list 0 (/ (- thick stafflinethick) 2) (- thick stafflinethick) 1)
     ))
 
 ;; two popular veritcal beam quantings
@@ -53,7 +55,7 @@
 (define (default-beam-y-quants beam multiplicity dy staff-line)
   (let* ((beam-straddle 0)
         (thick (ly-get-grob-property beam 'thickness))
-        (beam-sit (/ (+ thick staff-line) 2))
+        (beam-sit (/ (- thick staff-line) 2))
         (beam-hang (- 1 (/ (- thick staff-line) 2)))
         (quants (list beam-hang))
         )
@@ -68,7 +70,7 @@
 (define (beam-traditional-y-quants beam multiplicity dy staff-line)
   (let* ((beam-straddle 0)
        (thick (ly-get-grob-property beam 'thickness))
-       (beam-sit (/ (+ thick staff-line) 2))
+       (beam-sit (/ (- thick staff-line) 2))
        (beam-hang (- 1 (/ (- thick staff-line) 2)))
        (quants '())
        )
index 96f1112f4f254365c711134d8bde51fdfab4ffb4..e2190da9dc38e6c01f85a9252df1fb009603dbaf 100644 (file)
        ;; todo: clean this up a bit: the list is getting
        ;; rather long.
        (molecule-callback . ,Beam::brew_molecule)
-;;     (concaveness . 0.8)
-       (concaveness . 0.08)
-       (concaveness-no-slope . #t)
-       (concaveness-square . #t)
-       (ideal-lengthen . #t)
+       (concaveness-threshold . 0.08)
        (y-dy-callbacks . (,Beam::least_squares
                           ,Beam::check_concave
                           ,Beam::slope_damping
        (after-line-breaking-callback . ,Beam::after_line_breaking)
        (neutral-direction . -1)
        (dir-function . ,beam-dir-majority)
-       (height-quants .  ,default-beam-dy-quants)
+       (height-quant-function .  ,default-beam-dy-quants)
        (vertical-position-quant-function . ,default-beam-y-quants)
        (beamed-stem-shorten . (1.0 0.5))
        (outer-stem-length-limit . 0.2)
index 92a60263639549049b6df283c07deb538ff8820c..ddce2affcc57aea0d9c40e396e8d32883837dbaa 100644 (file)
@@ -96,6 +96,12 @@ column as start/begin point. Only columns that have grobs or act as bounds are s
 (grob-property-description 'center-element ly-grob? "grob which will
 be at the center of the group after aligning (when using
 Align_interface::center_on_element). .")
+(grob-property-description 'concaveness-threshold number? "A beam is
+considered to be concave is concaveness is bigger than this threshold.
+Concaveness is calculated as the sum of the vertical distances of
+inner noteheads that fall outside the interval of the two outer
+noteheads, to the vertically nearest outer notehead, divided by the
+square of the inner notes involved.")
 (grob-property-description 'bar-line-collapse-height number? "Minimum height of system start delimiter bar-line glyphs.  If equal or smaller, the bar-line is removed.")
 (grob-property-description 'brace-collapse-height number? "Minimum height of system start delimiter brace glyphs.  If equal or smaller, the brace is removed.")
 (grob-property-description 'bracket-collapse-height number? "Minimum height of system start delimiter bracket glyphs.  If equal or smaller, the bracket is removed.")
index 1d8f8f3f4c354bca89e175cf36d2aaa5e6cdc65f..3359c7f042f040dc40cac04785c8fef3725d4747 100644 (file)
    " {exch pop //systemdict /run get exec} "
    (ly-gulp-file "music-drawing-routines.ps")
    "{ exch pop //systemdict /run get exec } "
+;; ps-testing is broken: global module
    (if (defined? 'ps-testing) "\n /testing true def" "")
+;;   "\n /testing true def"
    ))
 
 (define (lily-def key val)