view implementations/meredith/classes.lisp @ 288:d1e5bbcc5ea4

Rationalise base and geerdes classes, constructors and methods. Ignore-this: d9d4d88566a6d110844d91d4c70513cd Towards a more standardised interface. Some of these changes (generalised constructors and reader functions) are necessary for amuse-database-admin functionality and some other CHARM-like things. darcs-hash:20090716154406-16a00-8a9b4fb1fc1f5ba75af66a1bbd87e1bb68e02493.gz
author j.forth <j.forth@gold.ac.uk>
date Thu, 16 Jul 2009 16:44:06 +0100
parents d22c67dac97d
children 6f0881af3403
line wrap: on
line source
(cl:in-package #:amuse-meredith)

;;; Top-level class

(defclass meredith-data-object (amuse:amuse-object) ())

;;; Identifiers

(defclass meredith-identifier (meredith-data-object) ())

(defclass meredith-composition-identifier (composition-identifier
					   meredith-identifier)
  ((composition-id
   :initarg :composition-id
   :reader composition-id)))

(defclass meredith-event-identifier (event-identifier
				     meredith-identifier)
  ((event-id :initarg :event-id
	     :reader event-id)))

;;; Music objects

(defclass meredith-music-object (meredith-data-object) ())

(defclass meredith-composition (amuse:standard-composition
				meredith-music-object)
  ((identifier :initarg :identifier :reader identifier)
   (description :initarg :description :reader description)))

(defclass meredith-event (amuse:chromatic-pitched-event
			  amuse:diatonic-pitched-event
			  amuse:standard-anchored-period
			  meredith-music-object)
  ((identifier :initarg :identifier :accessor identifier)
   (tatum-on :initarg :tatum-on :accessor tatum-on)
   (tatum-dur :initarg :tatum-dur :accessor tatum-dur)
   (tactus-on :initarg :tactus-on :accessor tactus-on)
   (tactus-dur :initarg :tactus-dur :accessor tactus-dur)
   (tatum-on-ms :initarg :tatum-on-ms :accessor tatum-on-ms)
   (tatum-dur-ms :initarg :tatum-dur-ms :accessor tatum-dur-ms)
   (beat-on-ms :initarg :beat-on-ms :accessor beat-on-ms)
   (beat-dur-ms :initarg :beat-dur-ms :accessor beat-dur-ms)
   (crot-on-ms :initarg :crot-on-ms :accessor crot-on-ms)
   (crot-dur-ms :initarg :crot-dur-ms :accessor crot-dur-ms)
   (pitch-name :initarg :pitch-name :accessor pitch-name)
   (voice :initarg :voice :accessor voice)))