Mercurial > hg > amuse
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