Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save geenloop/0a8cfa5728c9f9909765d150f96779f4 to your computer and use it in GitHub Desktop.
Save geenloop/0a8cfa5728c9f9909765d150f96779f4 to your computer and use it in GitHub Desktop.
Behringer CMD PL-1 / Mixxx controller mapping
function myCustomDeck(channel, deck) {
var forceScratch = false;
// CONTROLLER SETUP
deck.e1.setup = deck.e1.release = encoderWiper(deck.e1);
deck.e2.setup = deck.e2.release = encoderWiper(deck.e2);
deck.e3.setup = deck.e3.release = encoderWiper(deck.e3);
deck.e4.setup = deck.e4.release = encoderWiper(deck.e4);
deck.e5.setup = deck.e5.release = encoderWiper(deck.e5);
deck.e6.setup = deck.e6.release = encoderWiper(deck.e6);
deck.e7.setup = deck.e7.release = encoderWiper(deck.e7);
deck.e8.setup = deck.e8.release = encoderWiper(deck.e8);
deck.b1.setup = deck.b1.release = buttonWiper(deck.b1);
deck.b2.setup = deck.b2.release = buttonWiper(deck.b2);
deck.b3.setup = deck.b3.release = buttonWiper(deck.b3);
deck.b4.setup = deck.b4.release = buttonWiper(deck.b4);
deck.b5.setup = deck.b5.release = buttonWiper(deck.b5);
deck.b6.setup = deck.b6.release = buttonWiper(deck.b6);
deck.b7.setup = deck.b7.release = buttonWiper(deck.b7);
deck.b8.setup = deck.b8.release = buttonWiper(deck.b8);
deck.load.setup = deck.load.release = buttonWiper(deck.load);
deck.lock.setup = deck.lock.release = buttonWiper(deck.lock);
deck.scratch.setup = deck.scratch.release = buttonWiper(deck.scratch);
deck.sync.setup = deck.sync.release = buttonWiper(deck.sync);
deck.tap.setup = deck.tap.release = buttonWiper(deck.tap);
deck.cue.setup = deck.cue.release = buttonWiper(deck.cue);
deck.playPause.setup = deck.playPause.release = buttonWiper(deck.playPause);
deck.backward.setup = deck.backward.release = buttonWiper(deck.backward);
deck.forward.setup = deck.forward.release = buttonWiper(deck.forward);
deck.minus.setup = deck.minus.release = buttonWiper(deck.minus);
deck.plus.setup = deck.plus.release = buttonWiper(deck.plus);
deck.pitch.setup = deck.pitch.release = function() {
deck.pitch.led(0);
};
// CONTROLLER CHANGES
deck.playPause.change = function (value, group) {
deck.playPause.led.blink();
};
deck.scratch.change = function (value, group) {
if (value) {
if (forceScratch && engine.isScratching(1 + channel)) {
disableScratch();
} else {
forceScratch = true;
deck.scratch.led.on();
}
}
};
deck.wheel.change = function (value, group) {
var deckNum = 1 + channel;
if (true === value) {
enableScratch();
} else if (false === value) {
disableScratch();
} else if (engine.isScratching(deckNum)) {
engine.scratchTick(deckNum, value);
} else if (forceScratch) {
enableScratch();
} else {
engine.setValue(group, 'jog', value);
}
};
deck.pitch.change = function (value, group) {
/* PITCHING BEATS
var BPM_MIN = 64;
var BPM_MAX = 140;
var MIN = -1.0001220852154804;
var MAX = 0.9981687217677939;
var RES = 100;
var val = (value - MIN) / (MAX - MIN) * (BPM_MAX - BPM_MIN) + BPM_MIN;
var ival = Math.floor(val);
val = (ival + Math.round((val - ival) * RES) / RES);
engine.setValue(group, 'bpm', value);
deck.pitch.led(-1, 1, value); */
// PITCHING NOTES
var NOTES = 8;
engine.setValue(group, 'pitch', NOTES * value);
deck.pitch.led(-1, 1, value);
};
// NON API FUNCTIONS
function enableScratch() {
var third = 1 / 3;
var alpha = .125;
var beta = alpha * third;
engine.scratchEnable(1 + channel, 400, 33 + third, alpha, beta);
deck.scratch.led.blink();
}
function disableScratch() {
forceScratch = false;
engine.scratchDisable(1 + channel);
deck.scratch.led.off();
}
function encoderWiper(control) {
return function() {
control.led.level(0);
control.led.off();
};
};
function buttonWiper(control) {
return function() {
print('> is this fact?');
control.led.off();
}
};
}
var BehringerCmdPl1Custom = (function () {
function main() {
print('> setting up custom Behringer CMD PL-1 decks');
for (var ch = 0; ch < BehringerCmdPl1.deck.length; ch++)
myCustomDeck(ch, BehringerCmdPl1.deck[ch]);
BehringerCmdPl1.init();
}
function kill() {
print('> releasing custom Behringer CMD PL-1 decks');
BehringerCmdPl1.shutdown();
}
return { init: main, shutdown: kill };
})();
var BehringerCmdPl1 = (function () {
var CC = {
E1: 0x00,
E2: 0x01,
E3: 0x02,
E4: 0x03,
E5: 0x04,
E6: 0x05,
E7: 0x06,
E8: 0x07,
PITCH_LED: 0x0a,
B1: 0x10,
B2: 0x11,
B3: 0x12,
B4: 0x13,
B5: 0x14,
B6: 0x15,
B7: 0x16,
B8: 0x17,
LOAD: 0x18,
LOCK: 0x19,
DECK: 0x1a,
SCRATCH: 0x1b,
WHEEL: 0x1f,
SYNC: 0x20,
TAP: 0x21,
CUE: 0x22,
PLAY_PAUSE: 0x23,
BACKWARD: 0x24,
FORWARD: 0x25,
MINUS: 0x26,
PLUS: 0x27
};
var STATUS = {
BUTTON_UP: 0x80,
BUTTON_DOWN: 0x90,
ENCODER: 0xb0,
PITCH: 0xe0
};
var VALUE = {
ENCODER_UP: 0x41,
ENCODER_DOWN: 0x3f
};
var LED_STATUS = {
ENCODER: 0xb0,
BUTTON: 0x90
};
var CC_NAME = {};
CC_NAME[CC.E1] = 'e1';
CC_NAME[CC.E2] = 'e2';
CC_NAME[CC.E3] = 'e3';
CC_NAME[CC.E4] = 'e4';
CC_NAME[CC.E5] = 'e5';
CC_NAME[CC.E6] = 'e6';
CC_NAME[CC.E7] = 'e7';
CC_NAME[CC.E8] = 'e8';
CC_NAME[CC.B1] = 'b1';
CC_NAME[CC.B2] = 'b2';
CC_NAME[CC.B3] = 'b3';
CC_NAME[CC.B4] = 'b4';
CC_NAME[CC.B5] = 'b5';
CC_NAME[CC.B6] = 'b6';
CC_NAME[CC.B7] = 'b7';
CC_NAME[CC.B8] = 'b8';
CC_NAME[CC.LOAD] = 'load';
CC_NAME[CC.LOCK] = 'lock';
CC_NAME[CC.DECK] = 'deck';
CC_NAME[CC.SCRATCH] = 'scratch';
CC_NAME[CC.WHEEL] = 'wheel';
CC_NAME[CC.SYNC] = 'sync';
CC_NAME[CC.TAP] = 'tap';
CC_NAME[CC.CUE] = 'cue';
CC_NAME[CC.PLAY_PAUSE] = 'playPause';
CC_NAME[CC.BACKWARD] = 'backward';
CC_NAME[CC.FORWARD] = 'forward';
CC_NAME[CC.MINUS] = 'minus';
CC_NAME[CC.PLUS] = 'plus';
function toImplement() {}
function main() {
var deck, control;
for (deck = 0; deck < api.length; deck++)
for (control in api[deck]) api[deck][control].setup();
print('> Behringer CMD PL-1 restored <');
}
function kill() {
var deck, control;
for (deck = 0; deck < api.length; deck++)
for (control in api[deck]) api[deck][control].free();
print('> Behringer CMD PL-1 released <');
}
function pitch(channel, control, value, status, group) {
api[channel].pitch.change(script.midiPitch(control, value, status), group);
}
function encoder(channel, control, value, status, group) {
if (VALUE.ENCODER_UP === value) {
api[channel][CC_NAME[control]].change(1, group);
} else if (VALUE.ENCODER_DOWN === value) {
api[channel][CC_NAME[control]].change(-1, group);
} else {
api[channel][CC_NAME[control]].change(value - 0x40, group);
}
}
function buttonUp(channel, control, value, status, group) {
api[channel][CC_NAME[control]].change(false, group);
}
function buttonDown(channel, control, value, status, group) {
api[channel][CC_NAME[control]].change(true, group);
}
function ledOn(channel, control) {
midi.sendShortMsg(channel + LED_STATUS.BUTTON, control, 1);
}
function ledOff(channel, control) {
midi.sendShortMsg(channel + LED_STATUS.BUTTON, control, 0);
}
function ledBlink(channel, control) {
midi.sendShortMsg(channel + LED_STATUS.BUTTON, control, 2);
}
function ledLevel(channel, minimum, maximum, value) {
var level = 1 + Math.round((value - minimum) / (maximum - minimum) * 15);
midi.sendShortMsg(channel + LED_STATUS.ENCODER, CC.PITCH_LED, level);
}
function controlApi() {
return {
setup: toImplement,
release: toImplement,
change: toImplement
};
}
function pitchLed(channel) {
return function (min, max, val) {
ledLevel(channel, min, max, val);
};
}
function encoderLedApi(channel, control) {
return {
on: function () { ledOn(channel, control) },
off: function () { ledOff(channel, control) },
blink: function () { ledOff(channel, control) },
level: function (min, max, val) {
ledLevel(channel, control, min, max, val);
}
};
}
function buttonLedApi(channel, control) {
return {
on: function () { ledOn(channel, control) },
off: function () { ledOff(channel, control) },
blink: function () { ledBlink(channel, control) }
};
}
function deckApi(channel) {
var cc = ['e1', 'e2', 'e3', 'e4', 'e5', 'e6', 'e7', 'e8', 'pitch', 'b1',
'b2', 'b3', 'b4', 'b5', 'b6', 'b7', 'b8', 'load', 'lock', 'deck',
'scratch', 'wheel', 'sync', 'tap', 'cue', 'playPause', 'backward',
'forward', 'minus', 'plus'];
var rings = [CC.E1, CC.E2, CC.E3, CC.E4, CC.E5, CC.E6, CC.E7, CC.E8];
var buttons = [CC.B1, CC.B2, CC.B3, CC.B4, CC.B5, CC.B6, CC.B7, CC.B8,
CC.LOAD, CC.LOCK, CC.SCRATCH, CC.SYNC, CC.TAP, CC.CUE, CC.PLAY_PAUSE,
CC.BACKWARD, CC.FORWARD, CC.MINUS, CC.PLUS];
var i, deck = {};
for (i = 0; i < cc.length; i++) deck[cc[i]] = controlApi();
deck.pitch.led = pitchLed(channel);
for (i = 0; i < rings.length; i++)
deck[CC_NAME[rings[i]]].led = encoderLedApi(channel, rings[i]);
for (i = 0; i < buttons.length; i++)
deck[CC_NAME[buttons[i]]].led = buttonLedApi(channel, buttons[i]);
return deck;
}
var api = [deckApi(0), deckApi(1), deckApi(2), deckApi(3)];
return {
CC: CC,
STATUS: STATUS,
VALUE: VALUE,
LED_STATUS: LED_STATUS,
deck: api,
init: main,
shutdown: kill,
pitch: pitch,
encoder: encoder,
buttonDown: buttonDown,
buttonUp: buttonUp
};
})();
<?xml version="1.0" encoding="utf-8"?>
<MixxxMIDIPreset schemaVersion="1" mixxxVersion="1.11+">
<info>
<name>Behringer CMD PL-1</name>
<author>Ademilson Ferreira Pinto</author>
<description>Customizable mapping API</description>
</info>
<controller id="Behringer CMD PL-1">
<scriptfiles>
<file functionprefix="BehringerCmdPl1" filename="behringer.cmd.pl-1.js" />
<file functionprefix="BehringerCmdPl1Custom" filename="behringer.cmd.pl-1.custom.js" />
</scriptfiles>
<controls>
<!-- WHEEL -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb0</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<!-- PITCH -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.pitch</key>
<status>0xe0</status>
<options>
<script-binding />
</options>
</control>
<!-- ENCODERS -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb0</status>
<midino>0x00</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb0</status>
<midino>0x01</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb0</status>
<midino>0x02</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb0</status>
<midino>0x03</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb0</status>
<midino>0x04</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb0</status>
<midino>0x05</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb0</status>
<midino>0x06</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb0</status>
<midino>0x07</midino>
<options>
<script-binding />
</options>
</control>
<!-- BUTTONS -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x10</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x11</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x12</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x13</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x14</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x15</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x16</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x17</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x10</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x11</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x12</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x13</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x14</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x15</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x16</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x17</midino>
<options>
<script-binding />
</options>
</control>
<!-- LOAD -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x18</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x18</midino>
<options>
<script-binding />
</options>
</control>
<!-- LOCK -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x19</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x19</midino>
<options>
<script-binding />
</options>
</control>
<!-- DECK -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x1a</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x1a</midino>
<options>
<script-binding />
</options>
</control>
<!-- SCRATCH -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x1b</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x1b</midino>
<options>
<script-binding />
</options>
</control>
<!-- SYNC -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x20</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x20</midino>
<options>
<script-binding />
</options>
</control>
<!-- TAP -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x21</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x21</midino>
<options>
<script-binding />
</options>
</control>
<!-- CUE -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x22</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x22</midino>
<options>
<script-binding />
</options>
</control>
<!-- PLAY_PAUSE -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x23</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x23</midino>
<options>
<script-binding />
</options>
</control>
<!-- BACKWARD -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x24</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x24</midino>
<options>
<script-binding />
</options>
</control>
<!-- FORWARD -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x25</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x25</midino>
<options>
<script-binding />
</options>
</control>
<!-- MINUS -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x26</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x26</midino>
<options>
<script-binding />
</options>
</control>
<!-- PLUS -->
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x90</status>
<midino>0x27</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel1]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x80</status>
<midino>0x27</midino>
<options>
<script-binding />
</options>
</control>
<!-- CHANNEL 2 -->
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb1</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.pitch</key>
<status>0xe1</status>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb1</status>
<midino>0x00</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb1</status>
<midino>0x01</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb1</status>
<midino>0x02</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb1</status>
<midino>0x03</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb1</status>
<midino>0x04</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb1</status>
<midino>0x05</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb1</status>
<midino>0x06</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb1</status>
<midino>0x07</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x10</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x11</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x12</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x13</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x14</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x15</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x16</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x17</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x10</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x11</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x12</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x13</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x14</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x15</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x16</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x17</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x18</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x18</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x19</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x19</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x1a</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x1a</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x1b</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x1b</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x20</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x20</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x21</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x21</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x22</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x22</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x23</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x23</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x24</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x24</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x25</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x25</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x26</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x26</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x91</status>
<midino>0x27</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel2]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x81</status>
<midino>0x27</midino>
<options>
<script-binding />
</options>
</control>
<!-- CHANNEL 3 -->
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb2</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.pitch</key>
<status>0xe2</status>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb2</status>
<midino>0x00</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb2</status>
<midino>0x01</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb2</status>
<midino>0x02</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb2</status>
<midino>0x03</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb2</status>
<midino>0x04</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb2</status>
<midino>0x05</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb2</status>
<midino>0x06</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb2</status>
<midino>0x07</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x10</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x11</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x12</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x13</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x14</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x15</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x16</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x17</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x10</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x11</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x12</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x13</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x14</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x15</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x16</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x17</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x18</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x18</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x19</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x19</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x1a</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x1a</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x1b</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x1b</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x20</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x20</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x21</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x21</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x22</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x22</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x23</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x23</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x24</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x24</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x25</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x25</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x26</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x26</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x92</status>
<midino>0x27</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel3]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x82</status>
<midino>0x27</midino>
<options>
<script-binding />
</options>
</control>
<!-- CHANNEL 4 -->
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb3</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x1f</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.pitch</key>
<status>0xe3</status>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb3</status>
<midino>0x00</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb3</status>
<midino>0x01</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb3</status>
<midino>0x02</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb3</status>
<midino>0x03</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb3</status>
<midino>0x04</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb3</status>
<midino>0x05</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb3</status>
<midino>0x06</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.encoder</key>
<status>0xb3</status>
<midino>0x07</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x10</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x11</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x12</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x13</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x14</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x15</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x16</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x17</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x10</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x11</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x12</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x13</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x14</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x15</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x16</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x17</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x18</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x18</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x19</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x19</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x1a</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x1a</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x1b</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x1b</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x20</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x20</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x21</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x21</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x22</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x22</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x23</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x23</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x24</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x24</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x25</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x25</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x26</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x26</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonDown</key>
<status>0x93</status>
<midino>0x27</midino>
<options>
<script-binding />
</options>
</control>
<control>
<group>[Channel4]</group>
<key>BehringerCmdPl1.buttonUp</key>
<status>0x83</status>
<midino>0x27</midino>
<options>
<script-binding />
</options>
</control>
</controls>
<outputs />
</controller>
</MixxxMIDIPreset>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment