Behringer BCD 2000 controller mapping

XML preset files and script files (.js) for MIDI and other controllers.

Moderators: garth, User Customization Moderators

Behringer BCD 2000 controller mapping

Postby Golzo » Thu Mar 29, 2012 2:43 pm

Hi!

We made a correct midi mapping for behringer BCD 2000. You can use this controller like bcd 3000, with jog, scratch and led.

This is the
Behringer-BCD2000-scripts.js

Code: Select all
function BehringerBCD2000 () {}
BehringerBCD2000.debug = false;
BehringerBCD2000.escratch = [false, false];

//sensitivity setting
BehringerBCD2000.UseAcceleration = true;
BehringerBCD2000.JogSensivity = 0.2;

BehringerBCD2000.init = function (id) { // called when the device is opened & set up
   
   BehringerBCD2000.reset();

   // Ask BCD to send the current values of all rotary knobs and sliders
   midi.sendShortMsg(0xB0,0x64,0x7F);

   // Set jog acceleration
   if (BehringerBCD2000.UseAcceleration)
      midi.sendShortMsg(0xB0, 0x63, 0x7F);
   else
      midi.sendShortMsg(0xB0, 0x63, 0x0);
};

BehringerBCD2000.shutdown = function () {

   BehringerBCD2000.reset();

   // Reenable jog acceleration
   if (!BehringerBCD2000.UseAcceleration)
      midi.sendShortMsg(0xB0, 0x63, 0x7F);
};

BehringerBCD2000.reset = function () {

   // Turn off all the lights
   for (i = 0; i <= 25; i++) {
      midi.sendShortMsg(0xB0, i, 0);
   }

};

BehringerBCD2000.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
BehringerBCD2000.jogWheel = function (channel, control, value, status, group) {


   deck = BehringerBCD2000.getDeck(group);

   if (BehringerBCD2000.escratch[deck]) {

if (value >= 65)

{scratchValue = (value - 0x40);}

else

{scratchValue = (value - 0x41);}
      engine.scratchTick(deck + 1, scratchValue);

      if (BehringerBCD2000.debug)
         print(group + " scratch tick : " + scratchValue);

   } else {

      if (value >= 65)

{jogValue = (value - 0x40) * BehringerBCD2000.JogSensivity;}

else

{jogValue = (value - 0x41) * BehringerBCD2000.JogSensivity;}
      engine.setValue(group, "jog", jogValue);

      if (BehringerBCD2000.debug)
         print(group + " pitching jog adjust : " + jogValue);

   }
};

//Scratch button function
BehringerBCD2000.scratchButton = function (channel, control, value, status, group) {

   if (value != 0x7F)
      return;

   deck = BehringerBCD2000.getDeck(group);

   BehringerBCD2000.escratch[deck] = !BehringerBCD2000.escratch[deck];

   if (BehringerBCD2000.debug)
      print(group + " scratch enabled :" + BehringerBCD2000.escratch[deck]);

   if (BehringerBCD2000.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
BehringerBCD2000.loop = function (channel, control, value, status, group) {
   if (value)
      action = "loop_in";
   else
      action = "loop_out";

   if (BehringerBCD2000.debug)
      print(group + " " + action);

    engine.setValue(group, action, 1);
};




And this is the
Behringer BCD2000.midi.xml

Code: Select all
<MixxxMIDIPreset mixxxVersion="1.8.0+" schemaVersion="1">
    <controller id="BCD2000 MIDI 1">
        <scriptfiles>
            <file functionprefix="BehringerBCD2000" filename="Behringer-BCD2000-scripts.js"/>
        </scriptfiles>
        <controls>
            <control>
                <status>0x90</status>
                <midino>0x0</midino>
                <group>[Channel1]</group>
                <key>back</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x1</midino>
                <group>[Channel1]</group>
                <key>fwd</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x2</midino>
                <group>[Channel1]</group>
                <key>rate_temp_down</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x3</midino>
                <group>[Channel1]</group>
                <key>rate_temp_up</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x4</midino>
                <group>[Channel1]</group>
                <key>beatloop_8</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x5</midino>
                <group>[Channel1]</group>
                <key>reloop_exit</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x6</midino>
                <group>[Channel2]</group>
                <key>back</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x7</midino>
                <group>[Channel2]</group>
                <key>fwd</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x8</midino>
                <group>[Channel2]</group>
                <key>rate_temp_down</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x9</midino>
                <group>[Channel2]</group>
                <key>rate_temp_up</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xa</midino>
                <group>[Channel2]</group>
                <key>beatloop_8</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xb</midino>
                <group>[Channel2]</group>
                <key>reloop_exit</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xc</midino>
                <group>[Channel1]</group>
                <key>filterLowKill</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xd</midino>
                <group>[Channel1]</group>
                <key>filterMidKill</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xe</midino>
                <group>[Channel1]</group>
                <key>filterHighKill</key>
                <options>
                    <button/>
                </options>
            </control>
           <control>
                <status>0x90</status>
                <midino>0xf</midino>
                <group>[Channel1]</group>
                <key>loop_halve</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x10</midino>
                <group>[Channel1]</group>
                <key>beatsync</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x11</midino>
                <group>[Channel1]</group>
                <key>BehringerBCD2000.scratchButton</key>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x0</midino>
                <group>[Channel1]</group>
                <key>volume</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x12</midino>
                <group>[Channel1]</group>
                <key>play</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x1</midino>
                <group>[Master]</group>
                <key>crossfader</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x13</midino>
                <group>[Channel1]</group>
                <key>cue_default</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x2</midino>
                <group>[Channel2]</group>
                <key>volume</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x14</midino>
                <group>[Channel2]</group>
                <key>filterLowKill</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x3</midino>
                <group>[Channel1]</group>
                <key>filterLow</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x15</midino>
                <group>[Channel2]</group>
                <key>filterMidKill</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x4</midino>
                <group>[Channel1]</group>
                <key>filterMid</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x16</midino>
                <group>[Channel2]</group>
                <key>filterHighKill</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x5</midino>
                <group>[Channel1]</group>
                <key>filterHigh</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x17</midino>
                <group>[Channel2]</group>
                <key>loop_halve</key>
                <options>
                    <button/>
                </options>
            </control>

            <control>
                <status>0xb0</status>
                <midino>0x6</midino>
                <group>[Channel1]</group>
                <key>pregain</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x18</midino>
                <group>[Channel2]</group>
                <key>beatsync</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x7</midino>
                <group>[Channel2]</group>
                <key>filterLow</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x19</midino>
                <group>[Channel2]</group>
                <key>BehringerBCD2000.scratchButton</key>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x8</midino>
                <group>[Channel2]</group>
                <key>filterMid</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x1a</midino>
                <group>[Channel2]</group>
                <key>play</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x1b</midino>
                <group>[Channel2]</group>
                <key>cue_default</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x9</midino>
                <group>[Channel2]</group>
                <key>filterHigh</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xa</midino>
                <group>[Channel2]</group>
                <key>pregain</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xb</midino>
                <group>[Channel1]</group>
                <key>rate</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xc</midino>
                <group>[Channel2]</group>
                <key>rate</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xd</midino>
                <group>[Flanger]</group>
                <key>lfoDelay</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x20</midino>
                <group>[Channel1]</group>
                <key>flanger</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xe</midino>
                <group>[Flanger]</group>
                <key>lfoDepth</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x21</midino>
                <group>[Channel2]</group>
                <key>flanger</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xf</midino>
                <group>[Flanger]</group>
                <key>lfoPeriod</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x10</midino>
                <group>[Master]</group>
                <key>volume</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x23</midino>
                <group>[Channel1]</group>
                <key>pfl</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x11</midino>
                <group>[Master]</group>
                <key>headMix</key>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x24</midino>
                <group>[Channel2]</group>
                <key>pfl</key>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x12</midino>
                <group>[Channel2]</group>
                <key>BehringerBCD2000.jogWheel</key>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x13</midino>
                <group>[Channel1]</group>
                <key>BehringerBCD2000.jogWheel</key>
                <options>
                    <script-binding/>
                </options>
            </control>
        </controls>
        <outputs>
            <output>
                <group>[Channel2]</group>
                <key>filterLowKill</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x10</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>filterHighKill</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x16</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>loop_enabled</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0xd</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>filterMidKill</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x17</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>pfl</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x2</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>cue_default</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x11</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>pfl</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x1</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>filterMidKill</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0xf</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>filterHighKill</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0xe</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>cue_default</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x9</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>play</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0xa</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>filterLowKill</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x18</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>flanger</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x4</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>play</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x12</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>loop_enabled</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x15</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>flanger</key>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x5</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
        </outputs>
    </controller>
</MixxxMIDIPreset>



Image
--------------------------------------

You only need to copy this content, and you need paste into the indicated file (Behringer-BCD2000-scripts.js, Behrihnger BCD2000.midi), and enjoy.
P.S.: I did not try a microphone
Golzo
 
Posts: 1
Joined: Thu Mar 29, 2012 1:59 pm

Re: Behringer BCD 2000 controller mapping

Postby Pegasus » Thu Apr 05, 2012 8:51 am

Excellent work! Would you mind also making a page for this controller on our wiki linked from the hardware compatibility page? Use the ADJ VMS4 page as a model.
"D.J. Pegasus"
Mixxx Developer - Controller Specialist
Mixxx Windows package maintainer
User avatar
Pegasus
Mixxx Developer
 
Posts: 1712
Joined: Thu Jan 29, 2009 7:48 pm
Location: Las Vegas, NV, USA

Re: Behringer BCD 2000 controller mapping

Postby Mr.Selfdestruct » Sun May 20, 2012 8:08 pm

Hello all ! this is my first post on your forums. I must say i love mixxx is is so much better then alot of the other software out there and its free. I used the setting for the bcd2000 in the above post but i get errors when i use the scrip it says it cant find the joggwheel script.

i found much more success in one using the bcd2000 asio driver , and bcd3000 setting with a costume learn for midi controller.
Code: Select all
<MixxxMIDIPreset mixxxVersion="1.10.0+" schemaVersion="1">
    <controller id="BCD-2000">
        <scriptfiles>
            <file functionprefix="BehringerBCD3000" filename="Behringer-BCD3000-scripts.js"/>
        </scriptfiles>
        <controls>
            <control>
                <status>0x80</status>
                <midino>0x0</midino>
                <group>[Channel1]</group>
                <key>back</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x1</midino>
                <group>[Channel1]</group>
                <key>fwd</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x4</midino>
                <group>[Channel1]</group>
                <key>keylock</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x6</midino>
                <group>[Channel2]</group>
                <key>back</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x7</midino>
                <group>[Channel2]</group>
                <key>fwd</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0xa</midino>
                <group>[Channel2]</group>
                <key>keylock</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x10</midino>
                <group>[Channel1]</group>
                <key>beatsync</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x12</midino>
                <group>[Channel1]</group>
                <key>cue_default</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x13</midino>
                <group>[Channel1]</group>
                <key>play</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x18</midino>
                <group>[Channel2]</group>
                <key>beatsync</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x1a</midino>
                <group>[Channel2]</group>
                <key>cue_default</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x1b</midino>
                <group>[Channel2]</group>
                <key>play</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x1c</midino>
                <group>[Master]</group>
                <key>headMix</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x1e</midino>
                <group>[Microphone]</group>
                <key>talkover</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x1f</midino>
                <group>[Channel1]</group>
                <key>reverse</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x80</status>
                <midino>0x22</midino>
                <group>[Channel2]</group>
                <key>reverse</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x0</midino>
                <group>[Channel1]</group>
                <key>back</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x1</midino>
                <group>[Channel1]</group>
                <key>fwd</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x2</midino>
                <group>[Channel1]</group>
                <key>rate_temp_down</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x3</midino>
                <group>[Channel1]</group>
                <key>rate_temp_up</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x4</midino>
                <group>[Channel1]</group>
                <key>keylock</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x5</midino>
                <group>[Channel1]</group>
                <key>reloop_exit</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x6</midino>
                <group>[Channel2]</group>
                <key>back</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x7</midino>
                <group>[Channel2]</group>
                <key>fwd</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x8</midino>
                <group>[Channel2]</group>
                <key>rate_temp_down</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x9</midino>
                <group>[Channel2]</group>
                <key>rate_temp_up</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xa</midino>
                <group>[Channel2]</group>
                <key>keylock</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xb</midino>
                <group>[Channel2]</group>
                <key>reloop_exit</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xc</midino>
                <group>[Channel1]</group>
                <key>filterLowKill</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xd</midino>
                <group>[Channel1]</group>
                <key>filterMidKill</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xe</midino>
                <group>[Channel1]</group>
                <key>filterHighKill</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0xf</midino>
                <group>[Channel1]</group>
                <key>BehringerBCD3000.loop</key>
                <description></description>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x10</midino>
                <group>[Channel1]</group>
                <key>beatsync</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x11</midino>
                <group>[Channel1]</group>
                <key>BehringerBCD3000.scratchButton</key>
                <description></description>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x12</midino>
                <group>[Channel1]</group>
                <key>cue_default</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x13</midino>
                <group>[Channel1]</group>
                <key>play</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x14</midino>
                <group>[Channel2]</group>
                <key>filterLowKill</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x15</midino>
                <group>[Channel2]</group>
                <key>filterMidKill</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x16</midino>
                <group>[Channel2]</group>
                <key>filterHighKill</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x17</midino>
                <group>[Channel2]</group>
                <key>BehringerBCD3000.loop</key>
                <description></description>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x18</midino>
                <group>[Channel2]</group>
                <key>beatsync</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x19</midino>
                <group>[Channel2]</group>
                <key>BehringerBCD3000.scratchButton</key>
                <description></description>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x1a</midino>
                <group>[Channel2]</group>
                <key>cue_default</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x1b</midino>
                <group>[Channel2]</group>
                <key>play</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x1c</midino>
                <group>[Master]</group>
                <key>headMix</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x1e</midino>
                <group>[Microphone]</group>
                <key>talkover</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x1f</midino>
                <group>[Channel1]</group>
                <key>reverse</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x20</midino>
                <group>[Channel1]</group>
                <key>flanger</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x21</midino>
                <group>[Channel2]</group>
                <key>flanger</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x22</midino>
                <group>[Channel2]</group>
                <key>reverse</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x23</midino>
                <group>[Channel1]</group>
                <key>pfl</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0x90</status>
                <midino>0x24</midino>
                <group>[Channel2]</group>
                <key>pfl</key>
                <description></description>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x0</midino>
                <group>[Channel1]</group>
                <key>volume</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x1</midino>
                <group>[Master]</group>
                <key>crossfader</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x2</midino>
                <group>[Channel2]</group>
                <key>volume</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x3</midino>
                <group>[Channel1]</group>
                <key>filterLow</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x4</midino>
                <group>[Channel1]</group>
                <key>filterMid</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x5</midino>
                <group>[Channel1]</group>
                <key>filterHigh</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x6</midino>
                <group>[Channel1]</group>
                <key>pregain</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x7</midino>
                <group>[Channel2]</group>
                <key>filterLow</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x8</midino>
                <group>[Channel2]</group>
                <key>filterMid</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x9</midino>
                <group>[Channel2]</group>
                <key>filterHigh</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xa</midino>
                <group>[Channel2]</group>
                <key>pregain</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xb</midino>
                <group>[Channel1]</group>
                <key>rate</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xc</midino>
                <group>[Channel2]</group>
                <key>rate</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xd</midino>
                <group>[Flanger]</group>
                <key>lfoDepth</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xe</midino>
                <group>[Flanger]</group>
                <key>lfoDelay</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0xf</midino>
                <group>[Flanger]</group>
                <key>lfoPeriod</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x10</midino>
                <group>[Master]</group>
                <key>balance</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x11</midino>
                <group>[Master]</group>
                <key>headMix</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x12</midino>
                <group>[Channel2]</group>
                <key>BehringerBCD3000.jogWheel</key>
                <description></description>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x13</midino>
                <group>[Channel1]</group>
                <key>BehringerBCD3000.jogWheel</key>
                <description></description>
                <options>
                    <script-binding/>
                </options>
            </control>
        </controls>
        <outputs>
            <output>
                <group>[Channel2]</group>
                <key>filterLowKill</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x10</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>filterHighKill</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x16</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>loop_enabled</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0xd</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>filterMidKill</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x17</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>pfl</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x2</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>cue_default</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x11</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>pfl</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x1</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>filterMidKill</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0xf</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>filterHighKill</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0xe</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>cue_default</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x9</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>play</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0xa</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>filterLowKill</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x18</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>flanger</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x4</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>play</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x12</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>loop_enabled</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x15</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>flanger</key>
                <description></description>
                <options>
                    <normal/>
                </options>
                <minimum>0.5</minimum>
                <maximum>1</maximum>
                <status>0xb0</status>
                <midino>0x5</midino>
                <on>0x7f</on>
                <off>0x0</off>
            </output>
        </outputs>
    </controller>
</MixxxMIDIPreset>

B-dj installed (bcd2000 native program)
the bcd2000 asio driver in b-dj mode

in mixxx
my setting for sound card are
Asio

output
master bcd2000 channel 1-2
headphones bcd2000 channel 3-4

input

vinyl controller 1 bcd2000 channel 1-2
vinyl controller 2 bcd2000 channel 3-4

with these setting i have payable vinyl control with serato
still have to play with cue points more but it works after many crashes and getting rid of the asio4all and reinstall a fresh copy of the bcd2000 asio driver
i still can get the jogwheels to work in reverse on the controller just forward.
thanks again
User avatar
Mr.Selfdestruct
 
Posts: 9
Joined: Sun May 20, 2012 7:40 pm

Re: Behringer BCD 2000 controller mapping

Postby Mr.Selfdestruct » Tue May 22, 2012 11:28 pm

I got my jog-wheels to work thanks to golzo hard work in the mapping of the correct settings
User avatar
Mr.Selfdestruct
 
Posts: 9
Joined: Sun May 20, 2012 7:40 pm

Re: Behringer BCD 2000 controller mapping

Postby rryan » Sat Jun 02, 2012 5:59 pm

Hi Golzo,

Thanks for your mapping! I committed it to trunk and it will be included in Mixxx 1.11.

Mr.Selfdestruct -- it seems you and Golzo have 2 separate mappings for the BCD2000. It's not clear from this thread which one is a better fit for Mixxx since I don't have a BCD2000 to test on. Could you guys talk about the differences between your two mappings and come to a conclusion on which one is more "accurate" -- that way we can pick the best one to include. Our definition of accurate is generally how true it is to the controllers labeled controls. For example if the button is labelled "FX" but you made it control a hotcue -- that's a customization that works for you but will confuse a new Mixxx user.

Thanks a lot for both of your work on this mapping!
RJ Ryan
The Mixxx Manual, Wiki and FAQ are the best place to start for documentation and support.
Please report any bugs you find to our Bug Tracker.
rryan
Mixxx Developer
 
Posts: 1335
Joined: Thu Mar 26, 2009 12:14 am
Location: California

Re: Behringer BCD 2000 controller mapping

Postby Mr.Selfdestruct » Thu Jun 21, 2012 5:04 am

1904_big.jpg
1904_big.jpg (139.83 KiB) Viewed 7705 times
hi RJ Ryan i made my own script i just got the jog wheel wheel to work with the info i got from Golzo script . my mapping have more of the correct labeling on the contoller ie my play and cue buttons are play and cue . I still having troubles with the loop in/end buttons need to find the right setting for the script. hear is what i have and made as well as a map of my buttons on the bcd2000.

Behringer BCD2000.midi.xml

Code: Select all
<MixxxMIDIPreset mixxxVersion="1.8.0+" schemaVersion="1">
    <info>
        <name>Behringer BCD2000</name>
    </info>
    <controller id="BCD2000 MIDI 1">
        <scriptfiles>
            <file functionprefix="BehringerBCD2000" filename="Behringer-BCD2000-scripts.js"/>
        </scriptfiles>
        <controls>
            <control>
                <group>[Channel1]</group>
                <key>filterLowKill</key>
                <status>0x90</status>
                <midino>0x0C</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>filterHigh</key>
                <status>0xB0</status>
                <midino>0x09</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>BehringerBCD2000.loop</key>
                <status>0x90</status>
                <midino>0x17</midino>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>keylock</key>
                <status>0x90</status>
                <midino>0x22</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>play</key>
                <status>0x80</status>
                <midino>0x1B</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>back</key>
                <status>0x90</status>
                <midino>0x06</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>filterLow</key>
                <status>0xB0</status>
                <midino>0x03</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>BehringerBCD2000.scratchButton</key>
                <status>0x90</status>
                <midino>0x11</midino>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <group>[Flanger]</group>
                <key>lfoDelay</key>
                <status>0xB0</status>
                <midino>0x0E</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>back</key>
                <status>0x90</status>
                <midino>0x00</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>reloop_exit</key>
                <status>0x90</status>
                <midino>0x0B</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>filterMid</key>
                <status>0xB0</status>
                <midino>0x08</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>filterHighKill</key>
                <status>0x90</status>
                <midino>0x16</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>BehringerBCD2000.jogWheel</key>
                <status>0xB0</status>
                <midino>0x13</midino>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>flanger</key>
                <status>0x90</status>
                <midino>0x21</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>cue_default</key>
                <status>0x80</status>
                <midino>0x1A</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>reloop_exit</key>
                <status>0x90</status>
                <midino>0x05</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>volume</key>
                <status>0xB0</status>
                <midino>0x02</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>beatsync</key>
                <status>0x90</status>
                <midino>0x10</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Flanger]</group>
                <key>lfoDepth</key>
                <status>0xB0</status>
                <midino>0x0D</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>play</key>
                <status>0x90</status>
                <midino>0x1B</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>cue_set</key>
                <status>0x90</status>
                <midino>0x0A</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>keylock</key>
                <status>0x80</status>
                <midino>0x1F</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>filterLow</key>
                <status>0xB0</status>
                <midino>0x07</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>filterMidKill</key>
                <status>0x90</status>
                <midino>0x15</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>BehringerBCD2000.jogWheel</key>
                <status>0xB0</status>
                <midino>0x12</midino>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>flanger</key>
                <status>0x90</status>
                <midino>0x20</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>cue_set</key>
                <status>0x90</status>
                <midino>0x04</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Master]</group>
                <key>crossfader</key>
                <status>0xB0</status>
                <midino>0x01</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>BehringerBCD2000.loop</key>
                <status>0x90</status>
                <midino>0x0F</midino>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>rate</key>
                <status>0xB0</status>
                <midino>0x0C</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>cue_default</key>
                <status>0x90</status>
                <midino>0x1A</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>play</key>
                <status>0x80</status>
                <midino>0x13</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>rate_temp_up</key>
                <status>0x90</status>
                <midino>0x09</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>pregain</key>
                <status>0xB0</status>
                <midino>0x06</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>filterLowKill</key>
                <status>0x90</status>
                <midino>0x14</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Master]</group>
                <key>headMix</key>
                <status>0xB0</status>
                <midino>0x11</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>keylock</key>
                <status>0x90</status>
                <midino>0x1F</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>rate_temp_up</key>
                <status>0x90</status>
                <midino>0x03</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>volume</key>
                <status>0xB0</status>
                <midino>0x00</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>filterHighKill</key>
                <status>0x90</status>
                <midino>0x0E</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>rate</key>
                <status>0xB0</status>
                <midino>0x0B</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>BehringerBCD2000.scratchButton</key>
                <status>0x90</status>
                <midino>0x19</midino>
                <options>
                    <script-binding/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>cue_default</key>
                <status>0x80</status>
                <midino>0x12</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>pfl</key>
                <status>0x90</status>
                <midino>0x24</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>rate_temp_down</key>
                <status>0x90</status>
                <midino>0x08</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>filterHigh</key>
                <status>0xB0</status>
                <midino>0x05</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>play</key>
                <status>0x90</status>
                <midino>0x13</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Master]</group>
                <key>balance</key>
                <status>0xB0</status>
                <midino>0x10</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>rate_temp_down</key>
                <status>0x90</status>
                <midino>0x02</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>filterMidKill</key>
                <status>0x90</status>
                <midino>0x0D</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>keylock</key>
                <status>0x80</status>
                <midino>0x22</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>pregain</key>
                <status>0xB0</status>
                <midino>0x0A</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>beatsync</key>
                <status>0x90</status>
                <midino>0x18</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>pfl</key>
                <status>0x90</status>
                <midino>0x23</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel2]</group>
                <key>fwd</key>
                <status>0x90</status>
                <midino>0x07</midino>
                <options>
                    <button/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>filterMid</key>
                <status>0xB0</status>
                <midino>0x04</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>cue_default</key>
                <status>0x90</status>
                <midino>0x12</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Flanger]</group>
                <key>lfoPeriod</key>
                <status>0xB0</status>
                <midino>0x0F</midino>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <group>[Channel1]</group>
                <key>fwd</key>
                <status>0x90</status>
                <midino>0x01</midino>
                <options>
                    <button/>
                </options>
            </control>
        </controls>
        <outputs>
            <output>
                <group>[Channel2]</group>
                <key>filterLowKill</key>
                <status>0xB0</status>
                <midino>0x10</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>filterHighKill</key>
                <status>0xB0</status>
                <midino>0x16</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>loop_enabled</key>
                <status>0xB0</status>
                <midino>0x0D</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>filterMidKill</key>
                <status>0xB0</status>
                <midino>0x17</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>pfl</key>
                <status>0xB0</status>
                <midino>0x02</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>cue_default</key>
                <status>0xB0</status>
                <midino>0x11</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>pfl</key>
                <status>0xB0</status>
                <midino>0x01</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>filterMidKill</key>
                <status>0xB0</status>
                <midino>0x0F</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>filterHighKill</key>
                <status>0xB0</status>
                <midino>0x0E</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>cue_default</key>
                <status>0xB0</status>
                <midino>0x09</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>play</key>
                <status>0xB0</status>
                <midino>0x0A</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>filterLowKill</key>
                <status>0xB0</status>
                <midino>0x18</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel2]</group>
                <key>flanger</key>
                <status>0xB0</status>
                <midino>0x04</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>play</key>
                <status>0xB0</status>
                <midino>0x12</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>loop_enabled</key>
                <status>0xB0</status>
                <midino>0x15</midino>
                <minimum>0.5</minimum>
            </output>
            <output>
                <group>[Channel1]</group>
                <key>flanger</key>
                <status>0xB0</status>
                <midino>0x05</midino>
                <minimum>0.5</minimum>
            </output>
        </outputs>
    </controller>
</MixxxMIDIPreset>





Behringer-BCD2000-scripts.js

Code: Select all
function BehringerBCD2000 () {}
BehringerBCD2000.debug = false;
BehringerBCD2000.escratch = [false, false];

//sensitivity setting
BehringerBCD2000.UseAcceleration = true;
BehringerBCD2000.JogSensivity = 0.5;

BehringerBCD2000.init = function (id) { // called when the device is opened & set up
   
   BehringerBCD2000.reset();

   // Ask BCD to send the current values of all rotary knobs and sliders
   midi.sendShortMsg(0xB0,0x64,0x7F);

   // Set jog acceleration
   if (BehringerBCD2000.UseAcceleration)
      midi.sendShortMsg(0xB0, 0x63, 0x7F);
   else
      midi.sendShortMsg(0xB0, 0x63, 0x0);
};

BehringerBCD2000.shutdown = function () {

   BehringerBCD2000.reset();

   // Reenable jog acceleration
   if (!BehringerBCD2000.UseAcceleration)
      midi.sendShortMsg(0xB0, 0x63, 0x7F);
};

BehringerBCD2000.reset = function () {

   // Turn off all the lights
   for (i = 0; i <= 25; i++) {
      midi.sendShortMsg(0xB0, i, 0);
   }

};

BehringerBCD2000.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
    BehringerBCD2000.jogWheel = function (channel, control, value, status, group) {


       deck = BehringerBCD2000.getDeck(group);

       if (BehringerBCD2000.escratch[deck]) {

    if (value >= 65)

    {scratchValue = (value - 0x40);}

    else

    {scratchValue = (value - 0x41);}
          engine.scratchTick(deck + 1, scratchValue);

          if (BehringerBCD2000.debug)
             print(group + " scratch tick : " + scratchValue);

       } else {

          if (value >= 65)

    {jogValue = (value - 0x40) * BehringerBCD2000.JogSensivity;}

    else

    {jogValue = (value - 0x41) * BehringerBCD2000.JogSensivity;}
          engine.setValue(group, "jog", jogValue);

          if (BehringerBCD2000.debug)
             print(group + " pitching jog adjust : " + jogValue);

       }
};

//Scratch button function
BehringerBCD2000.scratchButton = function (channel, control, value, status, group) {

   if (value != 0x7F)
      return;

   deck = BehringerBCD2000.getDeck(group);

   BehringerBCD2000.escratch[deck] = !BehringerBCD2000.escratch[deck];

   if (BehringerBCD2000.debug)
      print(group + " scratch enabled :" + BehringerBCD2000.escratch[deck]);

   if (BehringerBCD2000.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
BehringerBCD2000.loop = function (channel, control, value, status, group) {
   if (value)
      action = "loop_in";
   else
      action = "loop_out";

   if (BehringerBCD2000.debug)
      print(group + " " + action);

    engine.setValue(group, action, 1);
};

Attachments
controllers.rar
(2.11 KiB) Downloaded 623 times
User avatar
Mr.Selfdestruct
 
Posts: 9
Joined: Sun May 20, 2012 7:40 pm


Return to Controller presets/mappings

Who is online

Users browsing this forum: No registered users and 9 guests