Mercurial > hg > amuse
view classes.lisp @ 1:cbb5b478307e
Initial import of classes.lisp and default-methods.lisp from David.
darcs-hash:20061016144427-aa3d6-93919f5153445ade41eb753434da6f3c838c155a.gz
author | m.pearce <m.pearce@gold.ac.uk> |
---|---|
date | Mon, 16 Oct 2006 15:44:27 +0100 |
parents | |
children | 8fbbb0f14f3c |
line wrap: on
line source
;; basic musical object classes (defclass composition () ()) (defclass event () ()) (defclass pitched-event (event) ()) ;; pitch-related classes (defclass pitch () ()) (defclass chromatic-pitch (pitch) ()) (defclass diatonic-pitch (pitch) ()) (defclass frequency (pitch) ()) (defclass interval () ()) ;; time-related classes (defclass moment () ()) (defclass duration () ()) ;; Some conditions we might want to be able to signal (define-condition undefined-action (condition) ;; This condition would apply to an attempt to perform a meaningless ;; operation on an object. This may, initially, include things that ;; are a pain to implement but should really be used when it's ;; genuinely unclear what an operation means in the given ;; context. In such cases, a condition handler might be the best ;; approach anyway. ((operation :initarg :operation :reader undefined-action-operation) (datatype :initarg :datatype :reader undefined-action-datatype)) (:report (lambda (condition stream) (format stream "The consequence of performing ~A on and object of type ~A is undefined" (undefined-action-operation condition) (undefined-action-datatype condition))) (define-condition insufficient-information (condition) ;; It should be possible to construct genuinely minimal musical ;; structures. When the information in these is insufficient to ;; answer a query, this condition should be raised. ((operation :initarg :operation :reader insufficient-information-operation) (datatype :initarg :datatype :reader insufficient-information-datatype)) (:report (lambda (condition stream) (format stream "The ~A object does not contain enough information to perform ~A" (insufficient-information-datatype condition) (insufficient-information-operation condition)))