2 summary:: allow functions to be registered to respond to MIDI aftertouch events
3 related:: Classes/MIDIFunc, Classes/MIDIdef, Classes/MIDIResponder, Classes/CCResponder
4 categories:: External Control>MIDI
7 note:: As of SC 3.5 link::Classes/MIDIFunc:: and link::Classes/MIDIdef:: are the recommended way of registering for incoming MIDI messages. They are faster, safer, and have more logical argument order than the old MIDI responder classes. The older class MIDIResponder, and its subclasses NoteOnResponder, NoteOffResponder, BendResponder, TouchResponder, CCResponder, and ProgramChangeResponder are maintained for legacy code only.::
13 A link::Classes/Function:: to be evaluated. Arguments passed to the function are: src, chan, value.
16 The src number may be the system UID (obtained from code:: MIDIClient.sources[index].uid ::) or the index of the source in the code:: MIDIClient.sources :: array. nil matches all.
19 An link::Classes/Integer:: between 0 and 15 that selects which MIDI channel to match. nil matches all. May also be a link::Classes/Function:: which will be evaluated to determine the match. eg: { |val| val < 2 }
22 An link::Classes/Integer:: between 0 and 127 to filter values. nil matches all. May also be a link::Classes/Function:: which will be evaluated to determine the match. eg: { |val| val < 50 }
25 If true, install the responder automatically so it is active and ready to respond. If false, then it will be inactive.
27 argument::swallowEvent
28 If true, then if the midi event is matched, cease testing any further responders.
33 Wait for the next aftertouch message, reset self to match src, chan.
36 c = TouchResponder({ |src,chan,value|
37 [src,chan,value].postln;
39 c.learn; // wait for the first touch message
41 TouchResponder.removeAll
49 c = TouchResponder({ |src,chan,val|
50 [src,chan,val].postln;
63 c = TouchResponder({ |src,chan,val|
64 [src,chan,val].postln;
68 (50..90) // values within this range