annotate implementations/viewpointable/viewpointable.lisp @ 176:cddf83554c08

export fn correction darcs-hash:20080313112536-40ec0-eaf1212341070c8e768ede8e68464d3bb0c3a174.gz
author d.lewis <d.lewis@gold.ac.uk>
date Thu, 13 Mar 2008 11:25:36 +0000
parents 0190c6ad759e
children 3b36cf79b525
rev   line source
d@116 1 (in-package #:amuse-viewpointing-implementation)
d@116 2
d@116 3 ;; A set of classes and methods such that, if the amuse-form methods
d@116 4 ;; are implemented, a viewpointable-composition can be made and have
d@116 5 ;; viewpoint operations carried out without loss of context.
d@116 6
d@117 7 (defclass viewpointable-event (amuse::event)
d@116 8 ((source-event :initarg :source-event
d@116 9 :accessor %viewpointable-event-source-event)
d@116 10 (source-composition :initarg :source-composition
d@116 11 :accessor %viewpointable-event-source-composition)))
d@116 12
d@117 13 (defclass viewpointable-composition (monody) ())
d@116 14
d@116 15 (defmethod timepoint ((event viewpointable-event))
d@116 16 (timepoint (%viewpointable-event-source-event event)))
d@116 17
d@116 18 (defmethod duration ((event viewpointable-event))
d@116 19 (duration (%viewpointable-event-source-event event)))
d@116 20
d@116 21 (defmethod midi-pitch-number ((event viewpointable-event))
d@116 22 (midi-pitch-number (%viewpointable-event-source-event event)))
d@116 23
d@116 24 (defmethod get-applicable-key-signatures ((event viewpointable-event) foo)
d@116 25 (declare (ignore foo))
d@116 26 (get-applicable-key-signatures (%viewpointable-event-source-event event)
d@116 27 (%viewpointable-event-source-composition event)))
d@116 28
d@116 29 (defmethod get-applicable-time-signatures ((event viewpointable-event) foo)
d@116 30 (declare (ignore foo))
d@116 31 (get-applicable-time-signatures (%viewpointable-event-source-event event)
d@116 32 (%viewpointable-event-source-composition event)))
d@116 33
d@116 34
d@116 35 (defmethod get-applicable-tempi ((event viewpointable-event) foo)
d@116 36 (declare (ignore foo))
d@116 37 (get-applicable-tempi (%viewpointable-event-source-event event)
d@116 38 (%viewpointable-event-source-composition event)))
d@116 39
d@116 40 (defmethod crotchet ((event viewpointable-event))
d@116 41 (crotchet (%viewpointable-event-source-event event)))
d@116 42
d@116 43 (defmethod diatonic-pitch ((event viewpointable-event))
d@116 44 (diatonic-pitch (%viewpointable-event-source-event event)))
d@116 45
d@116 46 (defmethod amuse-segmentation:ground-truth-segmenter-after ((composition viewpointable-composition))
d@116 47 (amuse-segmentation:ground-truth-segmenter-after composition))
d@116 48
d@116 49 (defmethod amuse-segmentation:ground-truth-segmenter-before ((composition viewpointable-composition))
d@116 50 (amuse-segmentation:ground-truth-segmenter-before composition))
d@116 51
d@116 52 (defmethod amuse-segmentation:boundary-strength (segmenter (event viewpointable-event) (composition viewpointable-composition))
d@116 53 (declare (ignore composition))
d@116 54 (amuse-segmentation:boundary-strength segmenter
d@116 55 (%viewpointable-event-source-event event)
d@116 56 (%viewpointable-event-source-composition event)))
d@116 57
d@116 58 (defun make-viewpointable-composition (composition)
d@116 59 (let ((new-comp (make-instance 'viewpointable-composition
d@116 60 :time (timepoint composition)
d@116 61 :interval (duration composition)))
d@116 62 (event-list) (i 0))
d@116 63 (sequence:dosequence (event composition)
d@116 64 (push (make-instance 'viewpointable-event :source-event event
d@116 65 :source-composition composition)
d@116 66 event-list)
d@116 67 (incf i))
d@116 68 (sequence:adjust-sequence new-comp i :initial-contents (reverse event-list))
d@116 69 new-comp))