/usr/share/mixxx/controllers/Behringer-BCD3000-scripts.js is in mixxx-data 2.0.0~dfsg-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | function BehringerBCD3000 () {}
BehringerBCD3000.debug = false;
BehringerBCD3000.escratch = [false, false];
//sensitivity setting
BehringerBCD3000.UseAcceleration = true;
BehringerBCD3000.JogSensivity = 0.5;
BehringerBCD3000.init = function (id) { // called when the device is opened & set up
BehringerBCD3000.reset();
// Ask BCD to send the current values of all rotary knobs and sliders
midi.sendShortMsg(0xB0,0x64,0x7F);
// Set jog acceleration
if (BehringerBCD3000.UseAcceleration)
midi.sendShortMsg(0xB0, 0x63, 0x7F);
else
midi.sendShortMsg(0xB0, 0x63, 0x0);
};
BehringerBCD3000.shutdown = function () {
BehringerBCD3000.reset();
// Reenable jog acceleration
if (!BehringerBCD3000.UseAcceleration)
midi.sendShortMsg(0xB0, 0x63, 0x7F);
};
BehringerBCD3000.reset = function () {
// Turn off all the lights
for (i = 0; i <= 25; i++) {
midi.sendShortMsg(0xB0, i, 0);
}
};
BehringerBCD3000.getDeck = function (group) {
if (group == "[Channel1]")
return 0;
else if (group == "[Channel2]")
return 1;
print("Invalid group : " + group);
return -1; // error
}
//Scratch, cue search and pitch bend function
BehringerBCD3000.jogWheel = function (channel, control, value, status, group) {
deck = BehringerBCD3000.getDeck(group);
if (BehringerBCD3000.escratch[deck]) {
scratchValue = (value - 0x40);
engine.scratchTick(deck + 1, scratchValue);
if (BehringerBCD3000.debug)
print(group + " scratch tick : " + scratchValue);
} else {
jogValue = (value - 0x40) * BehringerBCD3000.JogSensivity;
engine.setValue(group, "jog", jogValue);
if (BehringerBCD3000.debug)
print(group + " pitching jog adjust : " + jogValue);
}
};
//Scratch button function
BehringerBCD3000.scratchButton = function (channel, control, value, status, group) {
if (value != 0x7F)
return;
deck = BehringerBCD3000.getDeck(group);
BehringerBCD3000.escratch[deck] = !BehringerBCD3000.escratch[deck];
if (BehringerBCD3000.debug)
print(group + " scratch enabled :" + BehringerBCD3000.escratch[deck]);
if (BehringerBCD3000.escratch[deck]) {
// Turn on the scratch light
if (!deck)
midi.sendShortMsg(0xB0, 0x13, 0x7F);
else
midi.sendShortMsg(0xB0, 0x0B, 0x7F);
// Enable scratching
engine.scratchEnable(deck + 1, 100, 33+1/3, 1.0/8, (1.0/8)/32);
} else {
// Turn off the scratch light
if (!deck)
midi.sendShortMsg(0xB0, 0x13, 0x00);
else
midi.sendShortMsg(0xB0, 0x0B, 0x00);
// Disable scratching
engine.scratchDisable(deck + 1);
}
};
//Set loop function
BehringerBCD3000.loop = function (channel, control, value, status, group) {
if (value)
action = "loop_in";
else
action = "loop_out";
if (BehringerBCD3000.debug)
print(group + " " + action);
engine.setValue(group, action, 1);
};
|