changeset 317:46dd71ef9ab3

Add some more midi setf methods. Ignore-this: 2e61873995aee02ee7092e76cff9909b darcs-hash:20100604153347-16a00-6c337a78b01a227049aaa1ce996da506d4951af1.gz
author j.forth <j.forth@gold.ac.uk>
date Fri, 04 Jun 2010 16:33:47 +0100
parents d9193c44b207
children c4e792b9b898 8ee20d73d90b
files implementations/midi/methods.lisp
diffstat 1 files changed, 32 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/implementations/midi/methods.lisp	Fri Apr 16 19:08:46 2010 +0100
+++ b/implementations/midi/methods.lisp	Fri Jun 04 16:33:47 2010 +0100
@@ -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))