Update of /project/gsharp/cvsroot/gsharp In directory common-lisp.net:/tmp/cvs-serv30200
Modified Files: buffer.lisp measure.lisp packages.lisp play.lisp Log Message: Got rid of ELEMENT-DURATION in favor of just DURATION by converting a :before method to an :around method.
Date: Mon Oct 31 03:16:27 2005 Author: rstrandh
Index: gsharp/buffer.lisp diff -u gsharp/buffer.lisp:1.10 gsharp/buffer.lisp:1.11 --- gsharp/buffer.lisp:1.10 Mon Oct 31 02:41:13 2005 +++ gsharp/buffer.lisp Mon Oct 31 03:16:27 2005 @@ -244,7 +244,7 @@ (:filled (/ (expt 2 (+ 2 (max (rbeams element) (lbeams element))))))))
-(defmethod element-duration ((element element)) +(defmethod duration ((element element)) (let ((duration (undotted-duration element))) (do ((dot-duration (/ duration 2) (/ dot-duration 2)) (nb-dots (dots element) (1- nb-dots)))
Index: gsharp/measure.lisp diff -u gsharp/measure.lisp:1.3 gsharp/measure.lisp:1.4 --- gsharp/measure.lisp:1.3 Fri Jul 23 18:51:16 2004 +++ gsharp/measure.lisp Mon Oct 31 03:16:27 2005 @@ -21,16 +21,17 @@ ;;; a `duration' slot that contains the duration of the element. ;;; It also makes sure that whenever the duration of an element ;;; is being asked for, the new value is computed should any -;;; modification to the element have taken placed in the meantime. +;;; modification to the element have taken place in the meantime.
(defrclass relement element - ((duration :initform nil :reader duration))) + ((duration :initform nil)))
-(defmethod duration :before ((element relement)) +(defmethod duration :around ((element relement)) (with-slots (duration) element (when (or (modified-p element) (null duration)) - (setf duration (element-duration element)) - (setf (modified-p element) nil)))) + (setf duration (call-next-method)) + (setf (modified-p element) nil)) + duration))
(defmethod mark-modified ((element relement)) (setf (modified-p element) t)
Index: gsharp/packages.lisp diff -u gsharp/packages.lisp:1.13 gsharp/packages.lisp:1.14 --- gsharp/packages.lisp:1.13 Mon Oct 31 02:49:47 2005 +++ gsharp/packages.lisp Mon Oct 31 03:16:27 2005 @@ -66,7 +66,7 @@ #:rename-staff #:add-staff-to-layer #:remove-staff-from-layer - #:stem-direction #:stem-length #:undotted-duration #:element-duration + #:stem-direction #:stem-length #:undotted-duration #:duration #:clef #:keysig #:staff-pos #:xoffset #:read-everything #:save-buffer-to-stream #:line-width #:min-width #:spacing-style #:right-edge #:left-offset #:left-margin #:text #:append-char #:erase-char @@ -91,7 +91,7 @@ (:use :common-lisp :gsharp-numbering :gsharp-buffer :gsharp-utilities :obseq) (:shadowing-import-from :gsharp-numbering #:number) (:shadowing-import-from :gsharp-buffer #:rest) - (:export #:mark-modified #:modified-p #:duration #:measure + (:export #:mark-modified #:modified-p #:measure #:measure-min-dist #:measure-coeff #:measure-start-times #:measure-bar-pos #:measure-seg-pos #:measure-bars #:measures #:nb-measures #:measureno
Index: gsharp/play.lisp diff -u gsharp/play.lisp:1.1 gsharp/play.lisp:1.2 --- gsharp/play.lisp:1.1 Mon Oct 31 02:41:13 2005 +++ gsharp/play.lisp Mon Oct 31 03:16:27 2005 @@ -10,7 +10,7 @@ (let ((durations (mapcar (lambda (slice) (mapcar (lambda (bar) (reduce #'+ (elements bar) - :key #'element-duration)) + :key #'duration)) (bars slice))) slices))) (loop while durations @@ -27,7 +27,7 @@ (notes element)) (mapcar (lambda (note) (make-instance 'note-off-message - :time (+ time (* 128 (element-duration element))) + :time (+ time (* 128 (duration element))) :status (+ #x80 channel) :key (midi-pitch note) :velocity 100)) (notes element))))) @@ -35,7 +35,7 @@ (defun events-from-bar (bar time channel) (mapcan (lambda (element) (prog1 (events-from-element element time channel) - (incf time (* 128 (element-duration element))))) + (incf time (* 128 (duration element))))) (elements bar)))
(defun track-from-slice (slice channel durations)