Mercurial > hg > amuse
diff implementations/midi/methods.lisp @ 302:ac78ce3d0b10
Add some basic midi predicate and accessor functions.
Ignore-this: ab60873a92efc7f4c3cd98cdb938dcea
darcs-hash:20090918100419-16a00-bd8423ddea7a4700d7e1c5300e4dafd35113897c.gz
author | j.forth <j.forth@gold.ac.uk> |
---|---|
date | Fri, 18 Sep 2009 11:04:19 +0100 |
parents | 4a03a1478c02 |
children | 46dd71ef9ab3 |
line wrap: on
line diff
--- a/implementations/midi/methods.lisp Mon Sep 07 12:04:47 2009 +0100 +++ b/implementations/midi/methods.lisp Fri Sep 18 11:04:19 2009 +0100 @@ -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))