MIDIdef.bend(\testbend, {|...args|
(["bend"] ++ args).postln;
});
+MIDIdef.program(\testprogram, {|...args|
+(["program"] ++ args).postln;
+});
MIDIdef.sysex(\testsysex, {|...args|
(["sysex"] ++ args).postln;
});
+
+MIDIdef.smpte(\testsmpte, {|...args|
+(["smpte"] ++ args).postln;
+});
+MIDIdef.mtcQuarterFrame(\testmtcQuarterFrame, {|...args|
+(["mtcQuarterFrame"] ++ args).postln;
+});
+MIDIdef.songPosition(\testsongPosition, {|...args|
+(["songPosition"] ++ args).postln;
+});
+MIDIdef.songSelect(\testsongSelect, {|...args|
+(["songSelect"] ++ args).postln;
+});
+MIDIdef.tuneRequest(\testtuneRequest, {|...args|
+(["tuneRequest"] ++ args).postln;
+});
+MIDIdef.midiClock(\testmidiClock, {|...args|
+(["midiClock"] ++ args).postln;
+});
+
+MIDIdef.tick(\testtick, {|...args|
+(["tick"] ++ args).postln;
+});
+MIDIdef.start(\teststart, {|...args|
+(["start"] ++ args).postln;
+});
+MIDIdef.stop(\teststop, {|...args|
+(["stop"] ++ args).postln;
+});
+MIDIdef.continue(\testcontinue, {|...args|
+(["continue"] ++ args).postln;
+});
+MIDIdef.reset(\testreset, {|...args|
+(["reset"] ++ args).postln;
+});
+MIDIdef.activeSense(\testactiveSense, {|...args|
+(["activeSense"] ++ args).postln;
+});
)
*/
\ No newline at end of file
+// CC values:
+// 0, 32 — bank change selector
+// 1..8 — upper rotarors
+// 9..16 — lower rotators
+// 17..24 — faders
+// 33..40 — upper left buttons
+// 41..48 — lower left buttons
+// 49..56 — pads
+// 64, 65 — pedals
+// 66 — joystick
+// 73..80 — upper right buttons
+// 81..88 — lower right buttons
+// 94, 95 — tempo change selector
+
MidiRemote25SL : MidiHandler {
var <>key;
+ var <>bend;
+ var <>mod;
*new {|name='Novation SL25 ReMOTE MKII', midiNames=#["ReMOTE SL", "ReMOTE SL MIDI 1", "ReMOTE SL MIDI 1"], reveal=true|
^super.newCopyArgs(name, midiNames, reveal).midiInit.controlInit;
MIDIdef.noteOn((\keyDown++name).asSymbol, {|...args|
key.value(true, *args);
}, (0..127), srcID: idin);
- // button released
MIDIdef.noteOff((\keyUp++name).asSymbol, {|...args|
key.value(false, *args);
}, (0..127), srcID: idin);
+ // bend
+ MIDIdef.bend((\bend++name).asSymbol, {|...args|
+ bend.value(args[0].bilin(8192, 0, 16383, 0, -1, 1), *args);
+ }, srcID: idin);
+
+ // modulation joystick
+ MIDIdef.cc((\mod++name).asSymbol, {|...args|
+ mod.value(args[0].linlin(0, 127, 0, 1), *args);
+ }, 66, srcID: idin);
+
// initialize handlers with revealing code
[
- \key
+ \key, \bend, \mod
].do{|handlerName|
this.perform((handlerName++\_).asSymbol, {|...args|
this.noCallback(handlerName, *args);