m@3: (cl:in-package #:amuse) m@3: d@12: ;; collections of more than one event m@1: d@12: (defclass constituent () ()) d@12: (defclass composition (constituent) ()) d@12: (defclass monody (constituent) ()) m@1: d@12: ;; types of information-specifiers m@1: d@12: (defclass moment-designator () ()) m@14: (defclass period-designator () ()) m@14: (defclass anchored-period-designator (moment-designator period-designator) ()) d@12: (defclass pitch-designator () ()) d@12: (defclass pitch-interval-designator () ()) d@12: d@12: ;; time-related classes d@12: m@14: (defclass moment (moment-designator) m@14: ((time :accessor %moment-time :initarg :time))) m@14: m@14: (defclass period (period-designator) m@14: ((interval :accessor %period-interval :initarg :interval))) m@14: m@14: (defclass floating-period (period) ()) m@14: (defclass anchored-period (period moment anchored-period-designator) ()) m@1: m@1: ;; pitch-related classes m@1: m@13: (defclass frequency () ()) m@13: d@12: (defclass pitch (pitch-designator) ()) m@14: (defclass chromatic-pitch (pitch) m@14: ((number :accessor %chromatic-pitch-number :initarg :number))) m@14: (defclass diatonic-pitch (pitch) m@14: ((name :accessor %diatonic-pitch-name :initarg :name) m@14: (accidental :accessor %diatonic-pitch-accidental :initarg :accidental) m@14: (octave :accessor %diatonic-pitch-octave :initarg :octave))) m@14: m@14: (defclass pitch-interval (pitch-interval-designator) m@14: ((span :accessor %pitch-interval-span :initarg :span))) m@1: d@12: ;; events m@1: m@14: (defclass event (anchored-period) ()) d@12: (defclass pitched-event (event pitch-designator) ()) m@13: (defclass percussive-event (event) ())