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