--- /dev/null
+MidiBcr : MidiHandler {
+ var <>isRel, <>rot;
+
+ *new {|isRel = false, name='Behringer BCR2000', midiNames=#["BCR2000", ["BCR2000", "Port 1"]], reveal=true|
+ ^super.newCopyArgs(name, midiNames, reveal).midiInit.controlInit(isRel);
+ }
+
+ controlInit {|isRelative|
+ isRel = isRelative;
+ rot = Array.fill(7, {|i|
+ {|...args|
+ this.noCallback(\rot++i, *args);
+ }
+ });
+ [1, 9, 17, 25, 81, 89, 97].do{|v, i|
+ MIDIdef.cc((\rot ++ i ++ name).asSymbol, {|...args|
+ var val = args[0];
+ if (isRel) {
+ val = val.wrap(-63, 64);
+ };
+ rot[i].value(val, args[1]-v, *args);
+ }, Array.series(8, v), srcID: idin);
+ };
+
+ "Ԃиџуту готов к использованию 😊".postln;
+ }
+
+ free {
+ (0..6).do{|i|
+ var defName = (\rot ++ i ++ name).asSymbol;
+ MIDIdef(defName).free;
+ };
+ }
+
+}
+
+// test
+/*
+
+~r = MidiRemote25SL();
+
+*/
\ No newline at end of file
0.5.wait;
};
-)
\ No newline at end of file
+)
+
+// bcr2000 test
+
+~dijutu = MidiBcr(false, \dijutu);
\ No newline at end of file