home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2011 November
/
CHIP_2011_11.iso
/
Programy
/
Narzedzia
/
Aplikacje_64-bitowe
/
Mixxx
/
mixxx-1.9.0-win64.exe
/
midi
/
Behringer-BCD3000-scripts.js
< prev
next >
Wrap
Text File
|
2010-12-02
|
3KB
|
125 lines
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);
};