home *** CD-ROM | disk | FTP | other *** search
- 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);
- };
-
-