Mercurial > hg > amuse
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: