view classes.lisp @ 17:930e9880ed3f

Pitch methods and added constructors.lisp file darcs-hash:20061212144422-f76cc-194cd746d5d7eaf40f24ca5788093b25066de77c.gz
author David Lewis <d.lewis@gold.ac.uk>
date Tue, 12 Dec 2006 14:44:22 +0000
parents 2af5e4f825a8
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) ())