view classes.lisp @ 14:2af5e4f825a8

classes.lisp: add slots. darcs-hash:20061205170515-aa3d6-d1d49951a3a96960fc04ecf7aa319a923f14124e.gz
author m.pearce <m.pearce@gold.ac.uk>
date Tue, 05 Dec 2006 17:05:15 +0000
parents ccb65e2f7382
children 70e76c1c87b7
line wrap: on
line source
(cl:in-package #:amuse) 

;; collections of more than one event

(defclass constituent () ())
(defclass composition (constituent) ())
(defclass monody (constituent) ())

;; types of information-specifiers

(defclass moment-designator () ())
(defclass period-designator () ())
(defclass anchored-period-designator (moment-designator period-designator) ())
(defclass pitch-designator () ())
(defclass pitch-interval-designator () ())

;; time-related classes

(defclass moment (moment-designator) 
  ((time :accessor %moment-time :initarg :time)))

(defclass period (period-designator) 
  ((interval :accessor %period-interval :initarg :interval)))

(defclass floating-period (period) ())
(defclass anchored-period (period moment anchored-period-designator) ())

;; pitch-related classes

(defclass frequency () ())

(defclass pitch (pitch-designator) ())
(defclass chromatic-pitch (pitch) 
  ((number :accessor %chromatic-pitch-number :initarg :number)))
(defclass diatonic-pitch (pitch) 
  ((name :accessor %diatonic-pitch-name :initarg :name)
   (accidental :accessor %diatonic-pitch-accidental :initarg :accidental)
   (octave :accessor %diatonic-pitch-octave :initarg :octave)))
  
(defclass pitch-interval (pitch-interval-designator) 
  ((span :accessor %pitch-interval-span :initarg :span)))

;; events

(defclass event (anchored-period) ())
(defclass pitched-event (event pitch-designator) ())
(defclass percussive-event (event) ())