gnu-music-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bugfix


From: Juergen Reuter
Subject: bugfix
Date: Sun, 01 Oct 2000 18:15:13 +0200

Hi, all!

Below, I have included three small patches against 1.3.86.  The first
and second one become relevant when Score.numberOfStaffLines is set to
an *even* number; they fix the y-coordinates of ledger lines and dots.
The third one becomes relevant for any Score.numberOfStaffLines other
than 5 and fixes the y-coordinates of breathing marks.

BTW., in my opinion, it would be nice to be able to control the
thickness of ledger lines with a property and/or make it dependent
from Staff.rulethickness.

Bye,
     Juergen

P.S.: I get thousands of "dvips: Couldn't find figure file src:xx:yy;
continuing" due to the src:special feature as introduced in 1.3.73.
Is there is possibility to turn off this feature?

#######################################################################

> diff -Naur note-head.cc.orig note-head.cc
--- note-head.cc.orig   Wed Sep 13 00:18:49 2000
+++ note-head.cc        Sun Oct  1 03:38:52 2000
@@ -60,10 +60,10 @@
   
   Real inter_f = Staff_symbol_referencer::staff_space (me)/2;
   int sz = Staff_symbol_referencer::line_count (me)-1;
-  Real p = Staff_symbol_referencer::position_f (me);
+  int p = (int)Staff_symbol_referencer::position_f (me);
   int streepjes_i = abs (p) < sz 
     ? 0
-    : (abs((int)p) - sz) /2;
+    : (abs(p) - sz) /2;
 
   SCM style  = me->get_elt_property ("style");
   if (!gh_symbol_p (style))
@@ -89,7 +89,7 @@
       
 
       ledger.set_empty (true);
-      int parity =  abs(int (p)) % 2;
+      int parity = (p ^ sz) & 1;
       
       for (int i=0; i < streepjes_i; i++)
        {

#######################################################################

> diff -Naur dots.cc.orig dots.cc
--- dots.cc.orig        Fri Sep  1 12:17:02 2000
+++ dots.cc     Sun Oct  1 06:29:35 2000
@@ -28,7 +28,8 @@
 
 
       int pos = int (Staff_symbol_referencer::position_f (me));
-      if (!(pos % 2))
+      int sz = Staff_symbol_referencer::line_count (me)-1;
+      if (!((pos ^ sz) & 1))
        return Staff_symbol_referencer::staff_space (me) / 2.0 * 
Directional_element_interface::get (me);
     }
 
#######################################################################

> diff -Naur breathing-sign.cc.orig breathing-sign.cc
--- breathing-sign.cc.orig      Fri Sep  1 12:17:02 2000
+++ breathing-sign.cc   Sun Oct  1 00:40:00 2000
@@ -50,7 +50,8 @@
       Directional_element_interface::set (me, d);
     }
 
-  return 2.0 * space * d;
+  int sz = Staff_symbol_referencer::line_count (me)-1;
+  return sz * 0.5 * space * d;
 }
 
 void

#######################################################################



reply via email to

[Prev in Thread] Current Thread [Next in Thread]