summaryrefslogtreecommitdiffstats
path: root/res/controllers/American-Audio-RADIUS-2000-scripts.js
diff options
context:
space:
mode:
authorRJ Ryan <rryan@mixxx.org>2013-06-19 00:46:54 -0400
committerRJ Ryan <rryan@mixxx.org>2013-06-19 00:46:54 -0400
commit25d57b59dff3947212909634864dd82365c9606b (patch)
treef0d0f8a048f8ed2f45c5ff015fc96891662f72f1 /res/controllers/American-Audio-RADIUS-2000-scripts.js
parente50f9f168fa08f2be6d0f13e8a225bbcc9de09bb (diff)
Moving mixxx/* to the root. A new era begins!
Diffstat (limited to 'res/controllers/American-Audio-RADIUS-2000-scripts.js')
-rw-r--r--res/controllers/American-Audio-RADIUS-2000-scripts.js264
1 files changed, 264 insertions, 0 deletions
diff --git a/res/controllers/American-Audio-RADIUS-2000-scripts.js b/res/controllers/American-Audio-RADIUS-2000-scripts.js
new file mode 100644
index 0000000000..a2ce1e5ccd
--- /dev/null
+++ b/res/controllers/American-Audio-RADIUS-2000-scripts.js
@@ -0,0 +1,264 @@
+/**
+ * American Audio Radius 2000 controller script v1.10.0
+ * Written by Markus Steinbauer 2011
+ *
+ * Special Thanks to the Programmer of the Behringer BCD 3000 Mapping.
+ * The Mapping for the Jog Wheel and Scratch function is great.
+ **/
+
+RADIUS2000 = new Controller();
+
+RADIUS2000.currentDeck = function (group) {
+ if (group == "[Channel1]")
+ return 0;
+ else if (group == "[Channel2]")
+ return 1;
+ print("Invalid group : " + group);
+ return -1; // error
+}
+
+RADIUS2000.currentDeck2 = function (group) {
+ if (group == "[Channel1]")
+ return "[Channel1]";
+ else if (group == "[Channel2]")
+ return "[Channel2]";
+
+ print("Invalid group : " + group);
+ return -1; // error
+}
+
+RADIUS2000.debug = false;
+
+RADIUS2000.escratch = [false, false];
+
+RADIUS2000.UseAcceleration = true;
+
+RADIUS2000.JogSensivity = 0.5;
+
+RADIUS2000.init = function (channel, control, value, status, group) {
+ midi.sendShortMsg(0x90,0x2A,0x00);
+ midi.sendShortMsg(0x90,0x0B,0x7F);
+ midi.sendShortMsg(0x90,0x05,0x7F);
+ midi.sendShortMsg(0x90,0x30,0x7F);
+ midi.sendShortMsg(0x90,0x04,0x7F);
+ midi.sendShortMsg(0x90,0x02,0x7F);
+ midi.sendShortMsg(0x90,0x06,0x00);
+ midi.sendShortMsg(0x90,0x16,0x7F);
+ midi.sendShortMsg(0x90,0x10,0x7F);
+ midi.sendShortMsg(0x90,0x0A,0x7F);
+ midi.sendShortMsg(0x90,0x22,0x7F);
+ midi.sendShortMsg(0x90,0x19,0x7F);
+ midi.sendShortMsg(0x90,0x1F,0x7F);
+ midi.sendShortMsg(0x90,0x31,0x7F);
+ midi.sendShortMsg(0x90,0x01,0x7F);
+}
+
+RADIUS2000.shutdown = function () {
+ midi.sendShortMsg(0x90,0x2A,0x00);
+ midi.sendShortMsg(0x90,0x0B,0x00);
+ midi.sendShortMsg(0x90,0x05,0x00);
+ midi.sendShortMsg(0x90,0x30,0x00);
+ midi.sendShortMsg(0x90,0x04,0x00);
+ midi.sendShortMsg(0x90,0x02,0x00);
+ midi.sendShortMsg(0x90,0x06,0x00);
+ midi.sendShortMsg(0x90,0x16,0x00);
+ midi.sendShortMsg(0x90,0x10,0x00);
+ midi.sendShortMsg(0x90,0x0A,0x00);
+ midi.sendShortMsg(0x90,0x22,0x00);
+ midi.sendShortMsg(0x90,0x1E,0x00);
+ midi.sendShortMsg(0x90,0x19,0x00);
+ midi.sendShortMsg(0x90,0x1F,0x00);
+ midi.sendShortMsg(0x90,0x0C,0x00);
+ midi.sendShortMsg(0x90,0x31,0x00);
+ midi.sendShortMsg(0x90,0x32,0x00);
+ midi.sendShortMsg(0x90,0x33,0x00);
+ midi.sendShortMsg(0x90,0x01,0x00);
+}
+
+RADIUS2000.trackSearch = function (channel, control, value, status, group) {
+ if (value == 0x41) {
+ engine.setValue("[Playlist]","SelectNextTrack",1);
+ }
+ if (value == 0x3F) {
+ engine.setValue("[Playlist]","SelectPrevTrack",1);
+ }
+}
+
+RADIUS2000.menuSearch = function (channel, control, value, status, group) {
+ if (value == 0x41) {
+ engine.setValue("[Playlist]","SelectNextPlaylist",1);
+ }
+ if (value == 0x3F) {
+ engine.setValue("[Playlist]","SelectPrevPlaylist",1);
+ }
+}
+
+RADIUS2000.play = function (channel, control, value, status, group) {
+ var currentlyPlaying = engine.getValue(RADIUS2000.currentDeck2(group),"play");
+ if ((currentlyPlaying == 1) & (value == 0x00)) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"play",0);
+ midi.sendShortMsg(0x90,0x2A,0x00);
+ }
+ if ((currentlyPlaying == 0) & (value == 0x00)) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"play",1);
+ midi.sendShortMsg(0x90,0x2A,0x7F);
+ midi.sendShortMsg(0x90,0x30,0x00);
+ }
+}
+
+RADIUS2000.cue = function (channel, control, value, status, group) {
+ var currentlyPlaying = engine.getValue(RADIUS2000.currentDeck2(group),"play");
+ if ((currentlyPlaying == 1) & (value == 0x7F)) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"cue_default",1);
+ midi.sendShortMsg(0x90,0x2A,0x00);
+ midi.sendShortMsg(0x90,0x30,0x7F);
+ }
+ else if ((currentlyPlaying == 0) & (value == 0x7F)) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"cue_default",1);
+ midi.sendShortMsg(0x90,0x30,0x7F);
+ }
+ else {
+ engine.setValue(RADIUS2000.currentDeck2(group),"cue_default",0);
+ midi.sendShortMsg(0x90,0x30,0x7F);
+ }
+}
+
+RADIUS2000.keylock = function (channel, control, value, status, group) {
+ var keylockStat = engine.getValue(RADIUS2000.currentDeck2(group),"keylock");
+ if (value == 0x7F & keylockStat == 1) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"keylock",0);
+ midi.sendShortMsg(0x90,0x06,0x00);
+ }
+ if (value == 0x7F & keylockStat == 0) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"keylock",1);
+ midi.sendShortMsg(0x90,0x06,0x7F);
+ }
+}
+
+RADIUS2000.pitchRateRange = function (channel, control, value, status, group) {
+ var pitchRateRange = engine.getValue(RADIUS2000.currentDeck2(group),"rateRange")
+ if (value == 0x7F) {
+ switch (pitchRateRange) {
+ case 0.04:
+ engine.setValue(RADIUS2000.currentDeck2(group),"rateRange",0.08);
+ midi.sendShortMsg(0x90,0x0C,0x00);
+ midi.sendShortMsg(0x90,0x31,0x7F);
+ midi.sendShortMsg(0x90,0x32,0x00);
+ midi.sendShortMsg(0x90,0x33,0x00);
+ midi.sendShortMsg(0x90,0x01,0x7F);
+ break;
+ case 0.08:
+ engine.setValue(RADIUS2000.currentDeck2(group),"rateRange",0.16);
+ midi.sendShortMsg(0x90,0x0C,0x00);
+ midi.sendShortMsg(0x90,0x31,0x00);
+ midi.sendShortMsg(0x90,0x32,0x7F);
+ midi.sendShortMsg(0x90,0x33,0x00);
+ break;
+ case 0.16:
+ engine.setValue(RADIUS2000.currentDeck2(group),"rateRange",1.00);
+ midi.sendShortMsg(0x90,0x0C,0x00);
+ midi.sendShortMsg(0x90,0x31,0x00);
+ midi.sendShortMsg(0x90,0x32,0x00);
+ midi.sendShortMsg(0x90,0x33,0x7F);
+ midi.sendShortMsg(0x90,0x01,0x7F);
+ break;
+ case 1.00:
+ engine.setValue(RADIUS2000.currentDeck2(group),"rateRange",0.04);
+ midi.sendShortMsg(0x90,0x0C,0x7F);
+ midi.sendShortMsg(0x90,0x31,0x00);
+ midi.sendShortMsg(0x90,0x32,0x00);
+ midi.sendShortMsg(0x90,0x33,0x00);
+ midi.sendShortMsg(0x90,0x01,0x7F);
+ break;
+ default:
+ engine.setValue(RADIUS2000.currentDeck2(group),"rateRange",0.16);
+ midi.sendShortMsg(0x90,0x0C,0x00);
+ midi.sendShortMsg(0x90,0x31,0x7F);
+ midi.sendShortMsg(0x90,0x32,0x00);
+ midi.sendShortMsg(0x90,0x33,0x00);
+ midi.sendShortMsg(0x90,0x01,0x7F);
+ break;
+ }
+ }
+}
+
+RADIUS2000.pitchRate = function (channel, control, value, status, group) {
+ var pitchRate = engine.getValue(RADIUS2000.currentDeck2(group),"rateRange");
+ if ((value == 0x7F) & (pitchRate != 0)) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"rateRange",0);
+ midi.sendShortMsg(0x90,0x01,0x00);
+ midi.sendShortMsg(0x90,0x0C,0x00);
+ midi.sendShortMsg(0x90,0x31,0x00);
+ midi.sendShortMsg(0x90,0x32,0x00);
+ midi.sendShortMsg(0x90,0x33,0x00);
+ }
+ if ((value == 0x7F) & (pitchRate == 0)) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"rateRange",0.08);
+ midi.sendShortMsg(0x90,0x01,0x7F);
+ midi.sendShortMsg(0x90,0x31,0x7F);
+ }
+}
+
+RADIUS2000.flanger = function (channel, control, value, status, group) {
+ var flangerFX = engine.getValue(RADIUS2000.currentDeck2(group),"flanger");
+ if ((value == 0x7F) & (flangerFX == 0)) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"flanger",1);
+ midi.sendShortMsg(0x90,0x2D,0x7F);
+ }
+ if ((value == 0x7F) & (flangerFX == 1)) {
+ engine.setValue(RADIUS2000.currentDeck2(group),"flanger",0);
+ midi.sendShortMsg(0x90,0x2D,0x00);
+ }
+
+}
+
+RADIUS2000.flangerDelay = function (channel, control, value, status, group) {
+ var delayLevel = engine.getValue(RADIUS2000.currentDeck2(group),"lfoDelay");
+ if (value == 0x41) {
+ engine.setValue("Flanger","lfoDelay",10000);
+ }
+ if (value == 0x3F){
+ engine.setValue("Flanger","lfoDelay",-10000);
+ }
+
+}
+
+
+RADIUS2000.wheelTurn = function (channel, control, value, status, group) {
+ deck = RADIUS2000.currentDeck(group);
+ if (RADIUS2000.escratch[deck]) {
+ scratchValue = (value - 0x40);
+ engine.scratchTick(deck + 1, scratchValue);
+ } else {
+
+ jogValue = (value - 0x40) * RADIUS2000.JogSensivity;
+ engine.setValue(group, "jog", jogValue);
+ }
+}
+
+RADIUS2000.wheelTouch = function (channel, control, value, status, group) {
+ if (value == 0x7F) {
+ deck = RADIUS2000.currentDeck(group);
+ RADIUS2000.escratch[deck] = true;
+ print(RADIUS2000.escratch[deck]);
+ engine.scratchEnable(deck + 1, 100, 330, 1.0/8, (1.0/8)/32);
+ }
+ else {
+ deck = RADIUS2000.currentDeck(group);
+ RADIUS2000.escratch[deck] = false;
+ engine.scratchDisable(deck + 1);
+ }
+}
+/*
+Not jet in config:
+Scratch Modi: (Normal/ Scratch / A.CUE Scratch)
+BPM TAP
+Memory
+Sample
+All Effects but Flanger (Because they are not available in Mixxx)
+Time
+SGL/CTN
+Parameter Buttons
+ADV.
+Folder Knob (Turning works, but pressing does not.)
+*/