--- /dev/null
+MidiRemote25SL : MidiHandler {
+ var <>key;
+
+ *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;
+ }
+
+ controlInit {
+ // key pressed/released
+ 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);
+
+ // initialize handlers with revealing code
+ [
+ \key
+ ].do{|handlerName|
+ this.perform((handlerName++\_).asSymbol, {|...args|
+ this.noCallback(handlerName, *args);
+ });
+ };
+ "Кэдифу готов к использованию 😊".postln;
+ }
+
+}
+
+// test
+/*
+
+~r = MidiRemote25SL();
+
+*/
\ No newline at end of file