# HG changeset patch # User j.forth # Date 1298546598 0 # Node ID 93f8768b12ddddf6a5863434bec4b7d8617f3bce # Parent 66f9c2913ac7fe8740cb5f0b0c13b724be96afd2 Add some more midi setf methods. Ignore-this: 2e61873995aee02ee7092e76cff9909b darcs-hash:20100604153347-16a00-6c337a78b01a227049aaa1ce996da506d4951af1.gz committer: Jamie Forth diff -r 66f9c2913ac7 -r 93f8768b12dd implementations/midi/methods.lisp --- 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))