comparison implementations/midi/methods.lisp @ 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 16b99fc989aa
children bba5e8571b92
comparison
equal deleted inserted replaced
242:66f9c2913ac7 243:93f8768b12dd
1 (cl:in-package #:amuse-midi) 1 (cl:in-package #:amuse-midi)
2
3 (defgeneric (setf midi-velocity) (value event)
4 (:method (v e) (declare (ignore v)) e))
5 (defmethod (setf midi-velocity) (value (event midi-pitched-event))
6 (setf (%midi-pitched-event-velocity event) value)
7 event)
8
9 (defgeneric (setf midi-patch) (value event)
10 (:method (v e) (declare (ignore v)) e))
11 (defmethod (setf midi-patch) (value (event midi-pitched-event))
12 (setf (%midi-pitched-event-patch event) value)
13 event)
14 2
15 (defgeneric midi-channel (midi-message) 3 (defgeneric midi-channel (midi-message)
16 (:documentation "MIDI channel. Also used for midi output")) 4 (:documentation "MIDI channel. Also used for midi output"))
17 (defmethod midi-channel ((midi-message midi-message)) 5 (defmethod midi-channel ((midi-message midi-message))
18 (%midi-message-channel midi-message)) 6 (%midi-message-channel midi-message))
19 7
8 (defgeneric (setf midi-channel) (value event))
9 (defmethod (setf midi-channel) (value (event midi-message))
10 (setf (%midi-message-channel event) value) event)
11
20 (defgeneric midi-track (midi-message) 12 (defgeneric midi-track (midi-message)
21 (:documentation "MIDI track. Also used for midi output")) 13 (:documentation "MIDI track. Also used for midi output"))
22 (defmethod midi-track ((midi-message midi-message)) 14 (defmethod midi-track ((midi-message midi-message))
23 (%midi-message-track midi-message)) 15 (%midi-message-track midi-message))
16
17 (defgeneric (setf midi-track) (value event))
18 (defmethod (setf midi-track) (value (event midi-message))
19 (setf (%midi-message-track event) value) event)
24 20
25 (defgeneric midi-velocity (event) 21 (defgeneric midi-velocity (event)
26 (:documentation "MIDI velocity. Also used for midi output")) 22 (:documentation "MIDI velocity. Also used for midi output"))
27 (defmethod midi-velocity ((event midi-pitched-event)) 23 (defmethod midi-velocity ((event midi-pitched-event))
28 (%midi-pitched-event-velocity event)) 24 (%midi-pitched-event-velocity event))
29 (defmethod midi-velocity ((event midi-percussive-event)) 25 (defmethod midi-velocity ((event midi-percussive-event))
30 (%midi-percussive-event-velocity event)) 26 (%midi-percussive-event-velocity event))
31 27
28 (defgeneric (setf midi-velocity) (value event))
29 (defmethod (setf midi-velocity) (value (event midi-pitched-event))
30 (setf (%midi-pitched-event-velocity event) value) event)
31 (defmethod (setf midi-velocity) (value (event midi-percussive-event))
32 (setf (%midi-percussive-event-velocity event) value) event)
33
32 (defgeneric midi-patch (event) 34 (defgeneric midi-patch (event)
33 (:documentation "MIDI patch (instrumental sound). Also used for 35 (:documentation "MIDI patch (instrumental sound). Also used for
34 midi output")) 36 midi output"))
35 (defmethod midi-patch ((event midi-pitched-event)) 37 (defmethod midi-patch ((event midi-pitched-event))
36 (%midi-pitched-event-patch event)) 38 (%midi-pitched-event-patch event))
37 39 (defmethod midi-patch ((event midi-percussive-event))
38 (defgeneric midi-note-number (event) 40 (%midi-percussive-event-patch event))
39 (:documentation "Same as get-pitch-for-midi")) 41
40 (defmethod midi-note-number ((event midi-percussive-event)) 42 (defgeneric (setf midi-patch) (value event))
41 (midi-drum-sound event)) 43 (defmethod (setf midi-patch) (value (event midi-pitched-event))
42 (defmethod midi-note-number ((event midi-pitched-event)) 44 (setf (%midi-pitched-event-patch event) value) event)
43 (midi-pitch-number event)) 45 (defmethod (setf midi-patch) (value (event midi-percussive-event))
46 (setf (%midi-percussive-event-patch event) value) event)
44 47
45 (defgeneric midi-drum-sound (event) 48 (defgeneric midi-drum-sound (event)
46 (:documentation "MIDI pitch for unpitched events (usually, drum 49 (:documentation "MIDI pitch for unpitched events (usually, drum
47 sound for drum kits on channel 10, but also for semi-pitched 50 sound for drum kits on channel 10, but also for semi-pitched
48 SFX, etc). Also used for midi output")) 51 SFX, etc). Also used for midi output"))
49 (defmethod midi-drum-sound ((event midi-percussive-event)) 52 (defmethod midi-drum-sound ((event midi-percussive-event))
50 (%midi-percussive-event-sound event)) 53 (%midi-percussive-event-sound event))
54
55 (defgeneric (setf midi-drum-sound) (value event))
56 (defmethod (setf midi-drum-sound) (value (event midi-percussive-event))
57 (setf (%midi-percussive-event-sound event) value) event)
58
59 (defgeneric midi-note-number (event)
60 (:documentation "Same as get-pitch-for-midi"))
61 (defmethod midi-note-number ((event midi-pitched-event))
62 (midi-pitch-number event))
63 (defmethod midi-note-number ((event midi-percussive-event))
64 (midi-drum-sound event))
51 65
52 (defgeneric midi-drum-sound= (event1 event2)) 66 (defgeneric midi-drum-sound= (event1 event2))
53 (defmethod midi-drum-sound= ((event1 midi-percussive-event) 67 (defmethod midi-drum-sound= ((event1 midi-percussive-event)
54 (event2 midi-percussive-event)) 68 (event2 midi-percussive-event))
55 (= (midi-drum-sound event1) (midi-drum-sound event2))) 69 (= (midi-drum-sound event1) (midi-drum-sound event2)))