Mercurial > hg > amuse
diff implementations/midi/methods.lisp @ 228:16b99fc989aa
Add some basic midi predicate and accessor functions.
Ignore-this: ab60873a92efc7f4c3cd98cdb938dcea
darcs-hash:20090918100419-16a00-bd8423ddea7a4700d7e1c5300e4dafd35113897c.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 | 619194befdd4 |
children | 93f8768b12dd |
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 @@ -12,7 +12,7 @@ (setf (%midi-pitched-event-patch event) value) event) -(Defgeneric midi-channel (midi-message) +(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)) @@ -35,6 +35,13 @@ (defmethod midi-patch ((event midi-pitched-event)) (%midi-pitched-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 midi-drum-sound (event) (:documentation "MIDI pitch for unpitched events (usually, drum sound for drum kits on channel 10, but also for semi-pitched @@ -42,6 +49,15 @@ (defmethod midi-drum-sound ((event midi-percussive-event)) (%midi-percussive-event-sound event)) +(defgeneric midi-drum-sound= (event1 event2)) +(defmethod midi-drum-sound= ((event1 midi-percussive-event) + (event2 midi-percussive-event)) + (= (midi-drum-sound event1) (midi-drum-sound event2))) +(defmethod midi-drum-sound= ((event1 event) + (event2 event)) + "Return nil for any comparisons involving non-percussive events." + nil) + (defmethod time-signatures ((composition midi-composition)) (%midi-time-signatures composition)) (defmethod (setf time-signatures) (sequence (composition midi-composition))