annotate implementations/viewpointable/viewpointable.lisp @ 330:2fbff655ba47 tip

Removed cpitch-adj and cents SQL columns
author Jeremy Gow <jeremy.gow@gmail.com>
date Mon, 21 Jan 2013 11:08:11 +0000
parents 908a98b6336e
children
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
j@293 15 (defclass standard-viewpointable-composition (standard-monody) ())
j@293 16
d@116 17 (defmethod timepoint ((event viewpointable-event))
d@116 18 (timepoint (%viewpointable-event-source-event event)))
d@116 19
d@116 20 (defmethod duration ((event viewpointable-event))
d@116 21 (duration (%viewpointable-event-source-event event)))
d@116 22
d@116 23 (defmethod midi-pitch-number ((event viewpointable-event))
d@116 24 (midi-pitch-number (%viewpointable-event-source-event event)))
d@116 25
d@116 26 (defmethod get-applicable-key-signatures ((event viewpointable-event) foo)
d@116 27 (declare (ignore foo))
d@116 28 (get-applicable-key-signatures (%viewpointable-event-source-event event)
d@116 29 (%viewpointable-event-source-composition event)))
d@116 30
d@116 31 (defmethod get-applicable-time-signatures ((event viewpointable-event) foo)
d@116 32 (declare (ignore foo))
d@116 33 (get-applicable-time-signatures (%viewpointable-event-source-event event)
d@116 34 (%viewpointable-event-source-composition event)))
d@116 35
d@116 36
d@116 37 (defmethod get-applicable-tempi ((event viewpointable-event) foo)
d@116 38 (declare (ignore foo))
d@116 39 (get-applicable-tempi (%viewpointable-event-source-event event)
d@116 40 (%viewpointable-event-source-composition event)))
d@116 41
d@116 42 (defmethod crotchet ((event viewpointable-event))
d@116 43 (crotchet (%viewpointable-event-source-event event)))
d@116 44
d@116 45 (defmethod diatonic-pitch ((event viewpointable-event))
d@116 46 (diatonic-pitch (%viewpointable-event-source-event event)))
d@116 47
d@116 48 (defmethod amuse-segmentation:ground-truth-segmenter-after ((composition viewpointable-composition))
d@116 49 (amuse-segmentation:ground-truth-segmenter-after composition))
d@116 50
d@116 51 (defmethod amuse-segmentation:ground-truth-segmenter-before ((composition viewpointable-composition))
d@116 52 (amuse-segmentation:ground-truth-segmenter-before composition))
d@116 53
d@116 54 (defmethod amuse-segmentation:boundary-strength (segmenter (event viewpointable-event) (composition viewpointable-composition))
d@116 55 (declare (ignore composition))
d@116 56 (amuse-segmentation:boundary-strength segmenter
d@116 57 (%viewpointable-event-source-event event)
d@116 58 (%viewpointable-event-source-composition event)))
d@116 59
j@293 60 (defun make-standard-viewpointable-composition (composition)
j@293 61 (let ((new-comp (make-instance 'standard-viewpointable-composition
d@116 62 :time (timepoint composition)
d@116 63 :interval (duration composition)))
d@116 64 (event-list) (i 0))
d@116 65 (sequence:dosequence (event composition)
d@116 66 (push (make-instance 'viewpointable-event :source-event event
d@116 67 :source-composition composition)
d@116 68 event-list)
d@116 69 (incf i))
d@116 70 (sequence:adjust-sequence new-comp i :initial-contents (reverse event-list))
d@116 71 new-comp))