view classes.lisp @ 18:70e76c1c87b7

Bug fixes and exports in package.lisp darcs-hash:20061213114049-f76cc-4c4175a1ad8b24e1c5df82c9fb67445ac32977d9.gz
author David Lewis <d.lewis@gold.ac.uk>
date Wed, 13 Dec 2006 11:40:49 +0000
parents 2af5e4f825a8
children 2f331bbdfab8
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 midi-pitched-event (pitched-event chromatic-pitch) ()) 
(defclass percussive-event (event) ())