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 >
Text File  |  2010-12-02  |  3KB  |  125 lines

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