view implementations/geerdes/classes.lisp @ 130:b849c4fc4c26

implementation/midi and /geerdes: add midi-object and geerdes-object darcs-hash:20070730164010-f76cc-baca3a289ca6c022c0085177d539e8c5c6fbea4e.gz
author David Lewis <d.lewis@gold.ac.uk>
date Mon, 30 Jul 2007 17:40:10 +0100
parents 8ea75cc8bc2c
children bfe5afcad183
line wrap: on
line source
(cl:in-package #:amuse-geerdes)

(defclass property-list-mixin ()
  ((properties :initarg :properties :accessor properties :initform nil)))

(defclass geerdes-object (property-list-mixin) ())

(defclass geerdes-identifier (identifier geerdes-object) ())
(defclass geerdes-identifier-cat-id (geerdes-identifier)
  ((cat-id :initarg :cat-id
	   :initform 'nil)))
(defclass geerdes-identifier-file-id (geerdes-identifier)
  ((file-id :initarg :file-id
	    :initform 'nil)))

(defclass geerdes-composition (midi-composition geerdes-object)
  ((db-entry :initarg :db-entry
	     :initform nil
	     :accessor %db-entry)
   (bar-numbers :initform nil
		:accessor %bar-numbers)
   (monody :initform nil
	   :accessor %monody)
   (caches :initform nil
	   :accessor %caches)
   (midi-constituents :initarg :constituents
		      :accessor %midi-constituents)
   (midi-events :initarg :midi-events
		:accessor %midi-events)
   (midi-timebase :initarg :midi-timebase
		  :accessor %midi-timebase)
   (identifier :initarg :id
	       :accessor %fast-identifier)
   (db-cat-id :initarg :cat-id
	      :accessor %db-cat-id)
   (db-file-id :initarg :file-id
	       :accessor %db-file-id)))

(defclass geerdes-monody (monody geerdes-composition)
  ;; FIXME: necessary slots? Do we even use them?
  ((inter-onset-intervals :initarg :i-o-i
			  :initform nil
			  :accessor %i-o-i)
   (inter-onset-interval-mode :initarg :ioi-mode
			      :initform 0
			      :accessor %ioi-mode)))

(defclass geerdes-pitched-event (midi-pitched-event geerdes-object)
  ((id :initarg :id
       :accessor %geerdes-pitched-event-id)))

(defclass geerdes-percussive-event (midi-percussive-event geerdes-object)
  ((id :initarg :id
       :accessor %geerdes-percussive-event-id)))