Mercurial > hg > amuse
comparison 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 |
comparison
equal
deleted
inserted
replaced
301:58a2d76bb243 | 302:ac78ce3d0b10 |
---|---|
10 (:method (v e) (declare (ignore v)) e)) | 10 (:method (v e) (declare (ignore v)) e)) |
11 (defmethod (setf midi-patch) (value (event midi-pitched-event)) | 11 (defmethod (setf midi-patch) (value (event midi-pitched-event)) |
12 (setf (%midi-pitched-event-patch event) value) | 12 (setf (%midi-pitched-event-patch event) value) |
13 event) | 13 event) |
14 | 14 |
15 (Defgeneric midi-channel (midi-message) | 15 (defgeneric midi-channel (midi-message) |
16 (:documentation "MIDI channel. Also used for midi output")) | 16 (:documentation "MIDI channel. Also used for midi output")) |
17 (defmethod midi-channel ((midi-message midi-message)) | 17 (defmethod midi-channel ((midi-message midi-message)) |
18 (%midi-message-channel midi-message)) | 18 (%midi-message-channel midi-message)) |
19 | 19 |
20 (defgeneric midi-track (midi-message) | 20 (defgeneric midi-track (midi-message) |
33 (:documentation "MIDI patch (instrumental sound). Also used for | 33 (:documentation "MIDI patch (instrumental sound). Also used for |
34 midi output")) | 34 midi output")) |
35 (defmethod midi-patch ((event midi-pitched-event)) | 35 (defmethod midi-patch ((event midi-pitched-event)) |
36 (%midi-pitched-event-patch event)) | 36 (%midi-pitched-event-patch event)) |
37 | 37 |
38 (defgeneric midi-note-number (event) | |
39 (:documentation "Same as get-pitch-for-midi")) | |
40 (defmethod midi-note-number ((event midi-percussive-event)) | |
41 (midi-drum-sound event)) | |
42 (defmethod midi-note-number ((event midi-pitched-event)) | |
43 (midi-pitch-number event)) | |
44 | |
38 (defgeneric midi-drum-sound (event) | 45 (defgeneric midi-drum-sound (event) |
39 (:documentation "MIDI pitch for unpitched events (usually, drum | 46 (:documentation "MIDI pitch for unpitched events (usually, drum |
40 sound for drum kits on channel 10, but also for semi-pitched | 47 sound for drum kits on channel 10, but also for semi-pitched |
41 SFX, etc). Also used for midi output")) | 48 SFX, etc). Also used for midi output")) |
42 (defmethod midi-drum-sound ((event midi-percussive-event)) | 49 (defmethod midi-drum-sound ((event midi-percussive-event)) |
43 (%midi-percussive-event-sound event)) | 50 (%midi-percussive-event-sound event)) |
51 | |
52 (defgeneric midi-drum-sound= (event1 event2)) | |
53 (defmethod midi-drum-sound= ((event1 midi-percussive-event) | |
54 (event2 midi-percussive-event)) | |
55 (= (midi-drum-sound event1) (midi-drum-sound event2))) | |
56 (defmethod midi-drum-sound= ((event1 event) | |
57 (event2 event)) | |
58 "Return nil for any comparisons involving non-percussive events." | |
59 nil) | |
44 | 60 |
45 (defmethod time-signatures ((composition midi-composition)) | 61 (defmethod time-signatures ((composition midi-composition)) |
46 (%midi-time-signatures composition)) | 62 (%midi-time-signatures composition)) |
47 (defmethod (setf time-signatures) (sequence (composition midi-composition)) | 63 (defmethod (setf time-signatures) (sequence (composition midi-composition)) |
48 (setf (%midi-time-signatures composition) sequence)) | 64 (setf (%midi-time-signatures composition) sequence)) |