[fomus-cvs] CVS update: fomus/accidentals.lisp fomus/version.lisp

David Psenicka dpsenicka at common-lisp.net
Wed Nov 16 01:26:31 UTC 2005


Update of /project/fomus/cvsroot/fomus
In directory common-lisp.net:/tmp/cvs-serv16091

Modified Files:
	accidentals.lisp version.lisp 
Log Message:

Date: Wed Nov 16 02:26:30 2005
Author: dpsenicka

Index: fomus/accidentals.lisp
diff -u fomus/accidentals.lisp:1.12 fomus/accidentals.lisp:1.13
--- fomus/accidentals.lisp:1.12	Sat Nov 12 21:42:46 2005
+++ fomus/accidentals.lisp	Wed Nov 16 02:26:30 2005
@@ -93,17 +93,22 @@
 
 (declaim (type #-openmcl (float 0 1) #+openmcl float *acc-diatonic-int-score* *acc-aug-dim-int-score* *acc-spelling-penalty* *acc-good-unison-score* *acc-bad-unison-score* *acc-similar-qtone-score*))
 (defparameter *acc-diatonic-int-score* (float 7/8))
-(defparameter *acc-aug-dim-int-score* (float 1/3))
+(defparameter *acc-aug-dim-int-score* (float 1/2))
 (defparameter *acc-spelling-penalty* (float 1/4))
 (defparameter *acc-good-unison-score* (float 1))
 (defparameter *acc-bad-unison-score* (float 3/8))
 (defparameter *acc-similar-qtone-score* (float 1/3))
 
 (defun nokey-notepen (n a)
-    (declare (type rational n) (type (integer -2 2) a))
-    (* (loop
-	for e of-type (integer -1 1) in (cons 0 (svref +nokey-penalty+ (nokey-spell n a)))
-	minimize (diff a e)) *acc-spelling-penalty*))
+  (declare (type rational n) (type (or (integer -2 2) (integer -2 2)) a))
+  (* (loop
+      for e of-type (integer -1 1) in (cons 0 (svref +nokey-penalty+ (nokey-spell n a)))
+      minimize (diff a e)) *acc-spelling-penalty*))
+(defun nokeyq-notepen (n a)
+  (declare (type rational n) (type (or (integer -2 2) (cons (integer -2 2) (rational -1/2 1/2))) a))
+  (* (loop
+      for e of-type (integer -1 1) in (cons 0 (svref +nokey-penalty+ (nokeyq-spell n a)))
+      minimize (diff (car a) e)) *acc-spelling-penalty*))
 
 ;; scores of 1 are perfect
 ;; tie is if accidentals must be in same direction
@@ -160,7 +165,7 @@
   (evd nil :type list)
   (o 0 :type (rational 0))
   (co 0 :type (integer 0))) ; sc = score-so-far (evt - evd), ret = return events, re = num. remaining, events from, evc = events to consider when redoing, evd = events to redo
-(defun acc-nokey (events choices spellfun intscorefun name conv) ; events in one part
+(defun acc-nokey (events choices spellfun penfun intscorefun name conv) ; events in one part
   (declare (type list events choices)
 	   (type (function (rational (or (integer -2 2) (cons (integer -2 2) (rational -1/2 1/2)))) (values (or (integer 0 6) null) (or integer null))) spellfun)
 	   (type (function (boolean rational (or (integer -2 2) (cons (integer -2 2) (rational -1/2 1/2))) (rational 0) (rational 0)
@@ -223,7 +228,7 @@
 				 collect (cons
 					  (let* ((eua (event-useracc e))
 						 (ne (event-note* e))
-						 (su (- 1.0 (nokey-notepen ne eua))) (di 1.0))
+						 (su (- 1.0 (funcall penfun ne eua))) (di 1.0))
 					    (declare (type #-openmcl (float 0) #+openmcl float su di))
 					    (loop ; plus optimistic 1 scores for rest in range
 					     for e0 of-type noteex in lf
@@ -292,9 +297,9 @@
 			   (case (auto-accs-fun)
 			     (:nokey1 (if *quartertones*
 					  (acc-nokey evs (if *use-double-accs* +acc-qtones-double+ +acc-qtones-single+)
-						     #'nokeyq-spell #'nokeyq-intscore (part-name e) #'nokey-convert-qtone)
+						     #'nokeyq-spell #'nokeyq-notepen #'nokeyq-intscore (part-name e) #'nokey-convert-qtone)
 					  (acc-nokey evs (if *use-double-accs* +acc-double+ +acc-single+)
-						     #'nokey-spell #'nokey-intscore (part-name e) #'identity)))
+						     #'nokey-spell #'nokey-notepen #'nokey-intscore (part-name e) #'identity)))
 			     (otherwise (error "Unknown accidental assignment function ~S" *auto-accs-mod*))))
 		    #'sort-offdur)))))
 


Index: fomus/version.lisp
diff -u fomus/version.lisp:1.20 fomus/version.lisp:1.21
--- fomus/version.lisp:1.20	Sat Nov 12 21:42:46 2005
+++ fomus/version.lisp	Wed Nov 16 02:26:30 2005
@@ -12,7 +12,7 @@
 (declaim (type string +title+)
 	 (type cons +version+ +banner+))
 (defparameter +title+ "FOMUS")
-(defparameter +version+ '(0 1 25))
+(defparameter +version+ '(0 1 26))
 (defparameter +banner+
   `("Lisp music notation formatter"
     "Copyright (c) 2005 David Psenicka, All Rights Reserved"




More information about the Fomus-cvs mailing list