From 7bf337c699cca07adc4ed34f601f40d8dc969f0e Mon Sep 17 00:00:00 2001 From: Eugene Petkevich Date: Mon, 29 Jan 2024 01:26:37 +0100 Subject: [PATCH] add bcr2000 handler --- extensions/classes/midibcr.sc | 42 +++++++++++++++++++++++++++++++++++ temp.scd | 6 ++++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 extensions/classes/midibcr.sc diff --git a/extensions/classes/midibcr.sc b/extensions/classes/midibcr.sc new file mode 100644 index 0000000..1e2606f --- /dev/null +++ b/extensions/classes/midibcr.sc @@ -0,0 +1,42 @@ +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 diff --git a/temp.scd b/temp.scd index d442c4f..cd15bd9 100644 --- a/temp.scd +++ b/temp.scd @@ -344,4 +344,8 @@ fork { 0.5.wait; }; -) \ No newline at end of file +) + +// bcr2000 test + +~dijutu = MidiBcr(false, \dijutu); \ No newline at end of file -- 2.17.1