changeset 298:204d6d1f4f6a

add composition slot to event (geerdes) Ignore-this: 7ece48560d6cc689711c5864e49a0360 darcs-hash:20090828164054-16a00-57b981532296c149640ab1e48439cdb88c41f2cf.gz
author j.forth <j.forth@gold.ac.uk>
date Fri, 28 Aug 2009 17:40:54 +0100
parents 6be947d9e7c3
children f5734df598f4
files implementations/geerdes/classes.lisp implementations/geerdes/constructors.lisp
diffstat 2 files changed, 22 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/implementations/geerdes/classes.lisp	Fri Aug 28 17:36:17 2009 +0100
+++ b/implementations/geerdes/classes.lisp	Fri Aug 28 17:40:54 2009 +0100
@@ -64,14 +64,15 @@
 (defclass geerdes-event (geerdes-object) ()
   (:documentation "Base class for geerdes events."))
 
-(defclass geerdes-pitched-event (midi-pitched-event geerdes-event)
+(defclass geerdes-pitched-event (midi-pitched-event geerdes-event
+						    linked-event)
   ((identifier :initarg :identifier
 	       :reader identifier))
   (:documentation "Only adds a database identifier to
   midi-pitched-event"))
 
 (defclass geerdes-percussive-event (midi-percussive-event
-				    geerdes-event)
+				    geerdes-event linked-event)
   ((identifier :initarg :identifier
 	       :reader identifier))
   (:documentation "Only adds a database identifier to
--- a/implementations/geerdes/constructors.lisp	Fri Aug 28 17:36:17 2009 +0100
+++ b/implementations/geerdes/constructors.lisp	Fri Aug 28 17:40:54 2009 +0100
@@ -34,7 +34,8 @@
 						   (%fast-track row)
 						   (%fast-onset row timebase)
 						   (%fast-duration row timebase)
-						   (%fast-id row))
+						   (%fast-id row)
+						   composition)
 		       (make-geerdes-percussive-event (%fast-pitch row)
 						      (%fast-velocity row)
 						      (%fast-patch row)
@@ -42,7 +43,8 @@
 						      (%fast-track row)
 						      (%fast-onset row timebase)
 						      (%fast-duration row timebase)
-						      (%fast-id row)))))
+						      (%fast-id row)
+						      composition))))
 	(when (%fast-monodyp row)
 	  (let ((monody-note (copy-event note)))
 	     (setf (duration monody-note) (%fast-monody-duration row timebase))
@@ -129,7 +131,8 @@
        (< (%fast-patch event-row) 112)))
 
 (defun make-geerdes-pitched-event (pitch-number velocity patch channel
-				   track onset duration event-id)
+				   track onset duration event-id
+				   composition)
   (make-instance 'geerdes-pitched-event
 		 :number pitch-number
 		 :velocity velocity
@@ -139,11 +142,12 @@
 		 :time onset
 		 :interval duration
 		 :identifier (make-geerdes-event-identifier
-			      event-id)))
+			      event-id)
+		 :composition composition))
 
 (defun make-geerdes-percussive-event (pitch-number velocity patch
 				      channel track onset duration
-				      event-id)
+				      event-id composition)
   (make-instance 'geerdes-percussive-event
 		 :sound pitch-number
 		 :velocity velocity
@@ -153,7 +157,8 @@
 		 :time onset
 		 :interval duration
 		 :identifier (make-geerdes-event-identifier
-			      event-id)))
+			      event-id)
+		 :composition composition))
 
 (defmethod copy-event ((event geerdes-pitched-event))
   (with-slots ((channel amuse-midi::channel)
@@ -163,7 +168,8 @@
 	       (interval amuse::interval)
 	       (velocity amuse-midi::velocity)
 	       (patch amuse-midi::patch)
-	       identifier)
+	       identifier
+	       composition)
       event
     (make-instance 'geerdes-pitched-event
 		   :channel channel
@@ -173,7 +179,8 @@
 		   :interval interval
 		   :velocity velocity
 		   :patch patch
-		   :identifier identifier)))
+		   :identifier identifier
+		   :composition composition)))
 
 (defmethod copy-event ((event geerdes-percussive-event))
   (with-slots ((channel amuse-midi::channel)
@@ -183,7 +190,8 @@
 	       (velocity amuse-midi::velocity)
 	       (patch amuse-midi::patch)
 	       (sound amuse-midi::sound)
-	       identifier)
+	       identifier
+	       composition)
       event
     (make-instance 'geerdes-percussive-event
 		   :channel channel
@@ -193,7 +201,8 @@
 		   :velocity velocity
 		   :patch patch
 		   :sound sound
-		   :identifier identifier)))
+		   :identifier identifier
+		   :composition composition)))
 
 ;; We want any function that generates a sequence from a geerdes
 ;; composition to preserve all slot values: