diff utils/utils.lisp @ 136:fd85f52d9f9d

Class revolution * PITCH-DESIGNATOR -> PITCH (PITCH removed) * MOMENT-DESIGNATOR -> MOMENT , MOMENT -> STANDARD-MOMENT * PERIOD-DESIGNATOR -> PERIOD , PERIOD -> STANDARD-PERIOD * ANCHORED-PERIOD-DESIGNATOR -> ANCHORED-PERIOD , ANCHORED-PERIOD -> STANDARD-ANCHORED-PERIOD * FLOATING-PERIOD removed * TIME-SIGNATURE-DESIGNATOR -> TIME-SIGNATURE & TIME-SIGNATURE-PERIOD * TIME-SIGNATURE -> STANDARD-TIME-SIGNATURE & STANDARD-TIME-SIGNATURE-PERIOD * KEY-SIGNATURE-DESIGNATOR -> KEY-SIGNATURE (& ...-PERIOD) * KEY-SIGNATURE -> STANDARD-KEY-SIGNATURE (& ...-PERIOD) * TEMPO now abstract (& TEMPO-PERIOD) * STANDARD-TEMPO AND STANDARD-TEMPO-PERIOD * COMPOSITION, CONSTITUENT & TIME-ORDERED-CONSTITUENT all have STANDARD- forms make-x methods and specialisers changes appropriately darcs-hash:20070831142943-f76cc-7be0d08963de06d87b36e4922076287d565c7ee2.gz
author David Lewis <d.lewis@gold.ac.uk>
date Fri, 31 Aug 2007 15:29:43 +0100
parents 5e362d998f29
children ebfe054eea1c
line wrap: on
line diff
--- a/utils/utils.lisp	Tue Aug 28 11:17:27 2007 +0100
+++ b/utils/utils.lisp	Fri Aug 31 15:29:43 2007 +0100
@@ -17,13 +17,13 @@
   time-signature. It should be borne in mind that this needn't be
   an integer - a time signature of 3/8, for example, should yield
   an answer of 3/2"))
-(defmethod crotchets-in-a-bar ((time-signature basic-time-signature))
+(defmethod crotchets-in-a-bar ((time-signature standard-time-signature))
   (let ((num (time-signature-numerator time-signature))
 	(den (time-signature-denominator time-signature)))
     (* num (/ 4 den))))
 
 (defgeneric beats-to-seconds (object1 object2))
-(defmethod beats-to-seconds ((object1 anchored-period)
+(defmethod beats-to-seconds ((object1 standard-anchored-period)
 			     (object2 constituent))
   (let ((tempi (or (get-applicable-tempi object1 object2)
 		   (signal 'undefined-action
@@ -33,12 +33,13 @@
     (dolist (tempo tempi (/ s 1000000))
       (incf s (if (disjoint tempo object1)
 		  0
-		  (* (duration (period-intersection tempo object1))
+		  (* (/ (duration (period-intersection tempo object1))
+			(duration (crotchet constituent)))
 		     (amuse:microseconds-per-crotchet tempo)))))))
-(defmethod beats-to-seconds ((object1 moment)
+(defmethod beats-to-seconds ((object1 standard-moment)
 			     (object2 constituent))
   (beats-to-seconds (time- (onset object1)
-			   (make-moment 0))
+			   (make-standard-moment 0))
 		    object2))
 					  
 ;; Not as simple as it seems - have to take into account numbering