changeset 243:93f8768b12dd

Add some more midi setf methods. Ignore-this: 2e61873995aee02ee7092e76cff9909b darcs-hash:20100604153347-16a00-6c337a78b01a227049aaa1ce996da506d4951af1.gz committer: Jamie Forth <j.forth@gold.ac.uk>
author j.forth <j.forth@gold.ac.uk>
date Thu, 24 Feb 2011 11:23:18 +0000
parents 66f9c2913ac7
children 76a695fe294f
files implementations/midi/methods.lisp
diffstat 1 files changed, 32 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/implementations/midi/methods.lisp	Thu Feb 24 11:23:18 2011 +0000
+++ b/implementations/midi/methods.lisp	Thu Feb 24 11:23:18 2011 +0000
@@ -1,27 +1,23 @@
 (cl:in-package #:amuse-midi)
 
-(defgeneric (setf midi-velocity) (value event)
-    (:method (v e) (declare (ignore v)) e))
-(defmethod (setf midi-velocity) (value (event midi-pitched-event))
-     (setf (%midi-pitched-event-velocity event) value)
-     event)
-
-(defgeneric (setf midi-patch) (value event)
-   (:method (v e) (declare (ignore v)) e))
-(defmethod (setf midi-patch) (value (event midi-pitched-event))
-    (setf (%midi-pitched-event-patch event) value)
-    event)
-
 (defgeneric midi-channel (midi-message)
   (:documentation "MIDI channel. Also used for midi output"))
 (defmethod midi-channel ((midi-message midi-message))
   (%midi-message-channel midi-message))
 
+(defgeneric (setf midi-channel) (value event))
+(defmethod (setf midi-channel) (value (event midi-message))
+  (setf (%midi-message-channel event) value) event)
+
 (defgeneric midi-track (midi-message)
   (:documentation "MIDI track. Also used for midi output"))
 (defmethod midi-track ((midi-message midi-message))
   (%midi-message-track midi-message))
 
+(defgeneric (setf midi-track) (value event))
+(defmethod (setf midi-track) (value (event midi-message))
+  (setf (%midi-message-track event) value) event)
+
 (defgeneric midi-velocity (event)
   (:documentation "MIDI velocity. Also used for midi output"))
 (defmethod midi-velocity ((event midi-pitched-event))
@@ -29,18 +25,25 @@
 (defmethod midi-velocity ((event midi-percussive-event))
   (%midi-percussive-event-velocity event))
 
+(defgeneric (setf midi-velocity) (value event))
+(defmethod (setf midi-velocity) (value (event midi-pitched-event))
+  (setf (%midi-pitched-event-velocity event) value) event)
+(defmethod (setf midi-velocity) (value (event midi-percussive-event))
+  (setf (%midi-percussive-event-velocity event) value) event)
+
 (defgeneric midi-patch (event)
   (:documentation "MIDI patch (instrumental sound). Also used for
   midi output"))
 (defmethod midi-patch ((event midi-pitched-event))
   (%midi-pitched-event-patch event))
+(defmethod midi-patch ((event midi-percussive-event))
+  (%midi-percussive-event-patch event))
 
-(defgeneric midi-note-number (event)
-  (:documentation "Same as get-pitch-for-midi"))
-(defmethod midi-note-number ((event midi-percussive-event))
-  (midi-drum-sound event))
-(defmethod midi-note-number ((event midi-pitched-event))
-  (midi-pitch-number event))
+(defgeneric (setf midi-patch) (value event))
+(defmethod (setf midi-patch) (value (event midi-pitched-event))
+  (setf (%midi-pitched-event-patch event) value) event)
+(defmethod (setf midi-patch) (value (event midi-percussive-event))
+  (setf (%midi-percussive-event-patch event) value) event)
 
 (defgeneric midi-drum-sound (event)
   (:documentation "MIDI pitch for unpitched events (usually, drum
@@ -49,6 +52,17 @@
 (defmethod midi-drum-sound ((event midi-percussive-event))
   (%midi-percussive-event-sound event))
 
+(defgeneric (setf midi-drum-sound) (value event))
+(defmethod (setf midi-drum-sound) (value (event midi-percussive-event))
+  (setf (%midi-percussive-event-sound event) value) event)
+
+(defgeneric midi-note-number (event)
+  (:documentation "Same as get-pitch-for-midi"))
+(defmethod midi-note-number ((event midi-pitched-event))
+  (midi-pitch-number event))
+(defmethod midi-note-number ((event midi-percussive-event))
+  (midi-drum-sound event))
+
 (defgeneric midi-drum-sound= (event1 event2))
 (defmethod midi-drum-sound= ((event1 midi-percussive-event)
 			     (event2 midi-percussive-event))