[fomus-cvs] CVS update: fomus/CHANGELOG fomus/TODO fomus/data.lisp fomus/split.lisp fomus/voices.lisp

David Psenicka dpsenicka at common-lisp.net
Fri Jul 29 18:55:50 UTC 2005


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

Modified Files:
	CHANGELOG TODO data.lisp split.lisp voices.lisp 
Log Message:
Bug fixes
Date: Fri Jul 29 20:55:43 2005
Author: dpsenicka

Index: fomus/CHANGELOG
diff -u fomus/CHANGELOG:1.1 fomus/CHANGELOG:1.2
--- fomus/CHANGELOG:1.1	Fri Jul 29 10:58:20 2005
+++ fomus/CHANGELOG	Fri Jul 29 20:55:43 2005
@@ -2,3 +2,4 @@
 
 	Testing/bug fixes
 	Support for tremolos
+	Changed INSTR-VOICELIM slot in INSTR class to INSTR-SIMULTLIM


Index: fomus/TODO
diff -u fomus/TODO:1.8 fomus/TODO:1.9
--- fomus/TODO:1.8	Fri Jul 29 10:58:20 2005
+++ fomus/TODO	Fri Jul 29 20:55:43 2005
@@ -4,7 +4,7 @@
 
 Testing and bug fixes
 DOC: dynamic marks can take order arguments (backend might not support it)
-DOC: update tremolos
+DOC: :beat-division and tuplets
 Adjust scores and penalties for decent results
 Breath marks (resolve before/after)
 Note heads


Index: fomus/data.lisp
diff -u fomus/data.lisp:1.7 fomus/data.lisp:1.8
--- fomus/data.lisp:1.7	Fri Jul 29 10:58:20 2005
+++ fomus/data.lisp	Fri Jul 29 20:55:43 2005
@@ -129,17 +129,17 @@
 ;; 8up/down leglines = (cons into-ottava outof-ottava), or I think it can also be just a number
 ;;(declaim (inline make-instr))
 (defstruct (instr (:constructor make-instr-aux) (:copier nil) (:predicate instrp))
-  sym clefs (staves 1) minp maxp (voicelim 1) tpose (cleflegls 2)
+  sym clefs (staves 1) minp maxp (simultlim 1) tpose (cleflegls 2)
   8uplegls 8dnlegls percs)
-(defparameter +instr-keys+ '(:sym :clefs :staves :minp :maxp :voicelim :tpose :cleflegls :8uplegls :8dnlegls :percs))
+(defparameter +instr-keys+ '(:sym :clefs :staves :minp :maxp :simultlim :tpose :cleflegls :8uplegls :8dnlegls :percs))
 
 (defun make-instr (sym &rest args) (apply #'make-instr-aux :sym sym args))
 
 ;;(declaim (inline copy-instr))
 (defun copy-instr (instr &key (sym (instr-sym instr)) (clefs (instr-clefs instr)) (staves (instr-staves instr)) (minp (instr-minp instr)) (maxp (instr-maxp instr))
-		   (voicelim (instr-voicelim instr)) (tpose (instr-tpose instr)) (cleflegls (instr-cleflegls instr)) (8uplegls (instr-8uplegls instr))
+		   (simultlim (instr-simultlim instr)) (tpose (instr-tpose instr)) (cleflegls (instr-cleflegls instr)) (8uplegls (instr-8uplegls instr))
 		   (8dnlegls (instr-8dnlegls instr)) (percs (instr-percs instr)))
-  (make-instr-aux :sym sym :clefs clefs :staves staves :minp minp :maxp maxp :voicelim voicelim :tpose tpose :cleflegls cleflegls
+  (make-instr-aux :sym sym :clefs clefs :staves staves :minp minp :maxp maxp :simultlim simultlim :tpose tpose :cleflegls cleflegls
 		  :8uplegls 8uplegls :8dnlegls 8dnlegls :percs percs))
 
 (defparameter +instr-type+
@@ -150,7 +150,7 @@
      (instr-staves (check* (integer 1) "Found ~S, expected (INTEGER 1) in STAVES slot" t))
      (instr-minp (check* (or null integer) "Found ~S, expected INTEGER in MINP slot" t))
      (instr-maxp (check* (or null integer) "Found ~S, expected INTEGER in MAXP slot" t))
-     (instr-voicelim (check* (integer 1) "Found ~S, expected (INTEGER 1) in VOICELIM slot" t))
+     (instr-simultlim (check* (integer 1) "Found ~S, expected (INTEGER 1) in SIMULTLIM slot" t))
      (instr-tpose (check* (or null integer) "Found ~S, expected INTEGER in TPOSE slot" t))
      (instr-cleflegls (check* (or* (integer 1)
 				   (cons-of* (integer 1)
@@ -168,7 +168,7 @@
 
 (defparameter *instruments* nil)
 (eval-when (:load-toplevel :execute)
-  (defparameter +default-instr+ (make-instr :default :clefs '(:treble :bass) :voicelim 5))
+  (defparameter +default-instr+ (make-instr :default :clefs '(:treble :bass) :simultlim 5))
   (defparameter +instruments+
     (list (make-instr :piccolo :clefs :treble :tpose 12)
 	  (make-instr :flute :clefs :treble)
@@ -190,10 +190,10 @@
 	  (make-instr :viola :clefs '(:treble :alto) :8uplegls '(5 2))
 	  (make-instr :cello :clefs '(:bass :tenor :treble))
 	  (make-instr :contrabass :clefs '(:bass :tenor) :tpose -12)
-	  (make-instr :harp :clefs '(:treble :bass) :staves 2 :voicelim 5 :8uplegls '(5 2) :8dnlegls '(5 2))
-	  (make-instr :piano :clefs '(:treble :bass) :staves 2 :voicelim 5 :8uplegls '(5 2) :8dnlegls '(5 2))
-	  (make-instr :xylophone :clefs '(:treble) :voicelim 2 :tpose 12 :8uplegls '(5 2))
-	  (make-instr :marimba :clefs '(:treble :bass) :voicelim 2 :8uplegls '(5 2))
+	  (make-instr :harp :clefs '(:treble :bass) :staves 2 :simultlim 5 :8uplegls '(5 2) :8dnlegls '(5 2))
+	  (make-instr :piano :clefs '(:treble :bass) :staves 2 :simultlim 5 :8uplegls '(5 2) :8dnlegls '(5 2))
+	  (make-instr :xylophone :clefs '(:treble) :simultlim 2 :tpose 12 :8uplegls '(5 2))
+	  (make-instr :marimba :clefs '(:treble :bass) :simultlim 2 :8uplegls '(5 2))
 	  (make-instr :percussion :clefs :percussion)
 	  (make-instr :timpani :clefs :bass))))
 
@@ -327,7 +327,7 @@
     (:default-beat (or null (rational (0))))
     (:beat-division (or* (integer 1) (and (list* (integer 1) (integer 1)) (length* = 2))) "(INTEGER 1) or ((INTEGER 1) (INTEGER 1))")
     (:min-tuplet-dur (real (0))) (:max-tuplet-dur (real (0))) (:min-simple-tuplet-dur (real (0)))
-    (:max-tuplet (or* (integer 2) (list-of* (integer 2))) "(INTEGER 2) or list of (INTEGER 2)") 
+    (:max-tuplet (or* null (integer 2) (list-of* (integer 2))) "(INTEGER 2) or list of (INTEGER 2)") 
     (:tuplet-dotted-rests boolean) (:double-dotted-notes boolean)
     (:dotted-note-level (find* t :all :top :sig) "T, :ALL, :TOP or :SIG")
     (:shortlongshort-notes-level (find* t :all :top :sig) "T, :ALL, :TOP or :SIG")


Index: fomus/split.lisp
diff -u fomus/split.lisp:1.6 fomus/split.lisp:1.7
--- fomus/split.lisp:1.6	Fri Jul 29 10:58:20 2005
+++ fomus/split.lisp	Fri Jul 29 20:55:43 2005
@@ -330,7 +330,7 @@
 					      (list (nconc (list (loop for i from 1/2 below num collect (/ i num)) ; regular off beat syncopation
 								 (snd (/ 1/2 num) t nil))
 							   (make-list (- num 1/2) :initial-element (snd (/ num) nil nil))))))))
-			      (when (and tups (or (initdivp rule) (rule-alt rule)) (or (initdivp rule) (rule-art rule)))
+			      (when (and tups mt (or (initdivp rule) (rule-alt rule)) (or (initdivp rule) (rule-art rule)))
 				(loop
 				 with nu = (if (rule-comp rule) (* num 3/2) num)
 				 for j in (primes2 (first mt)) ; only primes--number isn't actual tuplet, just division
@@ -366,7 +366,7 @@
 					 (list (list 1/8 (un 1/8 :l t t) (und 7/8 nil t))))))
 			      (when (and (al *shortlongshort-notes-level*) (rule-alt rule) (rule-art rule) ex)
 				(list (list '(1/4 3/4) (un 1/4 :l t t) (und 1/2 t t) (un 1/4 :r t t))))	; longer note in middle
-			      (when (and tups (or (initdivp rule) (rule-alt rule)) (or (initdivp rule) (rule-art rule)))
+			      (when (and tups mt (or (initdivp rule) (rule-alt rule)) (or (initdivp rule) (rule-art rule)))
 				(let ((l (length (force-list (rule-tup rule)))))
 				  (when (< l mn)
 				    (loop


Index: fomus/voices.lisp
diff -u fomus/voices.lisp:1.3 fomus/voices.lisp:1.4
--- fomus/voices.lisp:1.3	Tue Jul 26 01:15:53 2005
+++ fomus/voices.lisp	Fri Jul 29 20:55:43 2005
@@ -104,7 +104,7 @@
 			       (c (cons w (let ((o (- oo (* *voice-full-beat-dist*
 							    *max-voice-beat-dist-mul*))))
 					    (remove-if (lambda (e) (<= (event-endoff e) o)) (voicenode-evc no))))))
-			   (when (let ((i (instr-voicelim instr)))
+			   (when (let ((i (instr-simultlim instr)))
 				   (or (null i) (<= (count-if (lambda (x) (and (> (event-endoff x) oo) (= (event-voice x) e))) c) i)))
 			     (make-voicenode
 			      :sc s :evc c




More information about the Fomus-cvs mailing list