Mercurial > hg > amuse
changeset 291:2d2bc910c364
Handle missing time signature in MTP implementation of GET-APPLICABLE-TIME-SIGNATURES.
darcs-hash:20090722123745-c0ce4-b153c9962f3d9f4cc6ce2a44cf1c3a65951c3ce7.gz
author | Marcus Pearce <m.pearce@gold.ac.uk> |
---|---|
date | Wed, 22 Jul 2009 13:37:45 +0100 |
parents | 6af1f19a4475 |
children | 80c227c1c0da |
files | implementations/mtp/methods.lisp |
diffstat | 1 files changed, 11 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/implementations/mtp/methods.lisp Thu Jul 16 18:02:08 2009 +0100 +++ b/implementations/mtp/methods.lisp Wed Jul 22 13:37:45 2009 +0100 @@ -150,12 +150,17 @@ (defmethod get-applicable-time-signatures ((e mtp-event) c) (declare (ignore c)) - (let ((pulses (%mtp-pulses e)) - (barlength (%mtp-barlength e)) - (timebase (* 4 (duration (crotchet e))))) - (list - (amuse:make-standard-time-signature-period pulses - (/ timebase (/ barlength pulses)) + ;(format t "~&GATS ~A ~A ~A: pulses = ~A; barlength = ~A.~%" (dataset-id e) (composition-id e) (event-id e) (%mtp-pulses e) (%mtp-barlength e)) + (let* ((pulses (%mtp-pulses e)) + (barlength (%mtp-barlength e)) + (timebase (* 4 (duration (crotchet e)))) + (numerator (if (null pulses) 0 pulses)) + (denominator (if (null barlength) + 1 + (/ timebase (/ barlength pulses))))) + (list + (amuse:make-standard-time-signature-period numerator + denominator (timepoint e) (duration e)))))