[gsharp-cvs] CVS update: gsharp/drawing.lisp

Robert Strandh rstrandh at common-lisp.net
Thu Nov 10 22:55:45 UTC 2005


Update of /project/gsharp/cvsroot/gsharp
In directory common-lisp.net:/tmp/cvs-serv26245

Modified Files:
	drawing.lisp 
Log Message:
Multi-staff clusters in a beam group now seem to be drawn correctly.

Date: Thu Nov 10 23:55:45 2005
Author: rstrandh

Index: gsharp/drawing.lisp
diff -u gsharp/drawing.lisp:1.14 gsharp/drawing.lisp:1.15
--- gsharp/drawing.lisp:1.14	Thu Nov 10 23:29:15 2005
+++ gsharp/drawing.lisp	Thu Nov 10 23:55:45 2005
@@ -324,19 +324,23 @@
 	    (bot-note-pos (reduce #'min elements :key #'element-minpos)))
 	(if (>= (- top-note-pos 4) (- 4 bot-note-pos)) :down :up))))
 
+;;; the dominating note among a bunch of notes is the 
+;;; one that is closest to the beam, i.e. the one 
+;;; the one that is closest to the end of the stem that
+;;; is not attached to a notehead. 
 (defun dominating-note (notes stem-direction)
   (reduce (lambda (n1 n2)
 	    (let ((yoff1 (staff-yoffset (staff n1)))
 		  (yoff2 (staff-yoffset (staff n2))))
 	      (if (eq stem-direction :up)
-		  (if (> yoff1 yoff2)
+		  (if (< yoff1 yoff2)
 		      n1 
-		      (if (< yoff1 yoff2)
+		      (if (> yoff1 yoff2)
 			  n2
 			  (if (> (pitch n1) (pitch n2)) n1 n2)))
-		  (if (< yoff1 yoff2)
+		  (if (> yoff1 yoff2)
 		      n1
-		      (if (> yoff1 yoff2)
+		      (if (< yoff1 yoff2)
 			  n2
 			  (if (< (pitch n1) (pitch n2)) n1 n2))))))
 	  notes))




More information about the Gsharp-cvs mailing list