# HG changeset patch # User Marcus Pearce # Date 1185282929 -3600 # Node ID fade42e8a087a02ab60baec5f500f2d539968604 # Parent e99e51c2a8afdd26e33799b264b093d9fe5af375 implementations/mtp/: implement CROTCHET darcs-hash:20070724131529-c0ce4-5c6b749757ff12c1d2c878b95d18465bedc58102.gz diff -r e99e51c2a8af -r fade42e8a087 implementations/mtp/methods.lisp --- a/implementations/mtp/methods.lisp Tue Jul 24 14:14:57 2007 +0100 +++ b/implementations/mtp/methods.lisp Tue Jul 24 14:15:29 2007 +0100 @@ -124,31 +124,34 @@ ;;; Constituents from compositions: time-signatures -(defgeneric timebase (object)) - -(defmethod timebase ((dataset mtp-dataset)) - (dataset-timebase dataset)) +(defmethod crotchet ((dataset mtp-dataset)) + (amuse:make-floating-period + (/ (dataset-timebase dataset) 4))) #.(clsql:locally-enable-sql-reader-syntax) -(defmethod timebase ((composition mtp-composition)) - (car (clsql:select [timebase] :from [mtp-dataset] - :where [= [dataset-id] - (dataset-id composition)] - :flatp t - :field-names nil))) -(defmethod timebase ((event mtp-event)) - (car (clsql:select [timebase] :from [mtp-dataset] - :where [= [dataset-id] - (dataset-id event)] - :flatp t - :field-names nil))) +(defmethod crotchet ((composition mtp-composition)) + (let ((timebase + (car (clsql:select [timebase] :from [mtp-dataset] + :where [= [dataset-id] + (dataset-id composition)] + :flatp t + :field-names nil)))) + (amuse:make-floating-period (/ timebase 4)))) +(defmethod crotchet ((event mtp-event)) + (let ((timebase + (car (clsql:select [timebase] :from [mtp-dataset] + :where [= [dataset-id] + (dataset-id event)] + :flatp t + :field-names nil)))) + (amuse:make-floating-period (/ timebase 4)))) #.(clsql:restore-sql-reader-syntax-state) (defmethod get-applicable-time-signatures ((e mtp-event) c) (declare (ignore c)) (let ((pulses (%mtp-pulses e)) (barlength (%mtp-barlength e)) - (timebase (timebase e))) + (timebase (* 4 (duration (crotchet e))))) (list (amuse:make-basic-time-signature pulses (/ timebase (/ barlength pulses))