diff implementations/geerdes/classes.lisp @ 88:8ea75cc8bc2c

Basic geerdes functionality moved to implementations/geerdes from separate package darcs-hash:20070720161242-f76cc-fd256cbbb81d8c418a6c7c45844264184c5ed932.gz
author David Lewis <d.lewis@gold.ac.uk>
date Fri, 20 Jul 2007 17:12:42 +0100
parents
children b849c4fc4c26
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/implementations/geerdes/classes.lisp	Fri Jul 20 17:12:42 2007 +0100
@@ -0,0 +1,52 @@
+(cl:in-package #:amuse-geerdes)
+
+(defclass property-list-mixin ()
+  ((properties :initarg :properties :accessor properties :initform nil)))
+
+(defclass geerdes-identifier (identifier) ())
+(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 property-list-mixin)
+  ((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 property-list-mixin)
+  ((id :initarg :id
+       :accessor %geerdes-pitched-event-id)))
+
+(defclass geerdes-percussive-event (midi-percussive-event property-list-mixin)
+  ((id :initarg :id
+       :accessor %geerdes-percussive-event-id)))