diff options
author | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-03-10 11:43:15 +0100 |
---|---|---|
committer | Jan Holthuis <jan.holthuis@ruhr-uni-bochum.de> | 2020-03-10 11:43:15 +0100 |
commit | 34073b74884cc861eced6af129695704bd300c25 (patch) | |
tree | 38335b694e522f24845c3b5106bbb1ef7a727161 /res/controllers | |
parent | 51a3e78e8759634c7faf99b5728981a56f2c0c65 (diff) | |
parent | 7770c4c205bcece13f7d7aea20a9eff6ddb9c0bc (diff) |
Merge branch '2.2' of github.com:mixxxdj/mixxx
Diffstat (limited to 'res/controllers')
-rw-r--r-- | res/controllers/Hercules-DJControl-Inpulse-300-script.js | 197 | ||||
-rw-r--r-- | res/controllers/Hercules_DJControl_Inpulse_300.midi.xml | 2669 |
2 files changed, 2866 insertions, 0 deletions
diff --git a/res/controllers/Hercules-DJControl-Inpulse-300-script.js b/res/controllers/Hercules-DJControl-Inpulse-300-script.js new file mode 100644 index 0000000000..8e5dbb3584 --- /dev/null +++ b/res/controllers/Hercules-DJControl-Inpulse-300-script.js @@ -0,0 +1,197 @@ +// DJControl_Inpulse_300_script.js +// +// *************************************************************************** +// * Mixxx mapping script file for the Hercules DJControl Inpulse 300. +// * Author: DJ Phatso, contributions by Kerrick Staley +// * Version 1.2 (March 2020) +// * Forum: https://www.mixxx.org/forums/viewtopic.php?f=7&t=12599 +// * Wiki: https://mixxx.org/wiki/doku.php/hercules_djcontrol_inpulse_300 +// +// Changes to v1.2 +// - Code cleanup. +// +// Changes to v1.1 +// - Fix seek-to-start and cue-master behavior. +// - Tweak scratch, seek, and bend behavior. +// - Controller knob/slider values are queried on startup, so MIXXX is synced. +// - Fixed vinyl button behavior the first time it's pressed. +// +// v1.0 : Original forum release +// +// TO DO: Functions that could be implemented to the script: +// +// * ROLL: Keep SLIP active (if already enabled) when exiting from rolls +// +// * SLICER/SLICER LOOP +// +// * TONEPLAY +// +// * FX: +// - See how to preselect effects for a rack +// **************************************************************************** +var DJCi300 = {}; +/////////////////////////////////////////////////////////////// +// USER OPTIONS // +/////////////////////////////////////////////////////////////// + +// How fast scratching is. +DJCi300.scratchScale = 1.0; + +// How much faster seeking (shift+scratch) is than scratching. +DJCi300.scratchShiftMultiplier = 4; + +// How fast bending is. +DJCi300.bendScale = 1.0; + +// Other scratch related options +DJCi300.kScratchActionNone = 0; +DJCi300.kScratchActionScratch = 1; +DJCi300.kScratchActionSeek = 2; +DJCi300.kScratchActionBend = 3; + +DJCi300.vuMeterUpdateMaster = function(value, _group, _control) { + value = (value * 122) + 5; + midi.sendShortMsg(0xB0, 0x40, value); + midi.sendShortMsg(0xB0, 0x41, value); +}; + +DJCi300.vuMeterUpdateDeck = function(value, group, _control, _status) { + value = (value * 122) + 5; + var status = (group === "[Channel1]") ? 0xB1 : 0xB2; + midi.sendShortMsg(status, 0x40, value); +}; + +DJCi300.init = function() { + // Scratch button state + DJCi300.scratchButtonState = true; + // Scratch Action + DJCi300.scratchAction = { + 1: DJCi300.kScratchActionNone, + 2: DJCi300.kScratchActionNone + }; + + // Turn On Vinyl buttons LED(one for each deck). + midi.sendShortMsg(0x91, 0x03, 0x7F); + midi.sendShortMsg(0x92, 0x03, 0x7F); + + //Turn On Browser button LED + midi.sendShortMsg(0x90, 0x04, 0x05); + + //Softtakeover for Pitch fader + engine.softTakeover("[Channel1]", "rate", true); + engine.softTakeover("[Channel2]", "rate", true); + engine.softTakeoverIgnoreNextValue("[Channel1]", "rate"); + engine.softTakeoverIgnoreNextValue("[Channel2]", "rate"); + + // Connect the VUMeters + engine.connectControl("[Channel1]", "VuMeter", "DJCi300.vuMeterUpdateDeck"); + engine.getValue("[Channel1]", "VuMeter", "DJCi300.vuMeterUpdateDeck"); + engine.connectControl("[Channel2]", "VuMeter", "DJCi300.vuMeterUpdateDeck"); + engine.getValue("[Channel2]", "VuMeter", "DJCi300.vuMeterUpdateDeck"); + engine.connectControl("[Master]", "VuMeterL", "DJCi300.vuMeterUpdateMaster"); + engine.connectControl("[Master]", "VuMeterR", "DJCi300.vuMeterUpdateMaster"); + engine.getValue("[Master]", "VuMeterL", "DJCi300.vuMeterUpdateMaster"); + engine.getValue("[Master]", "VuMeterR", "DJCi300.vuMeterUpdateMaster"); + + // Ask the controller to send all current knob/slider values over MIDI, which will update + // the corresponding GUI controls in MIXXX. + midi.sendShortMsg(0xB0, 0x7F, 0x7F); +}; + +// The Vinyl button, used to enable or disable scratching on the jog wheels (One per deck). +DJCi300.vinylButton = function(_channel, _control, value, status, _group) { + if (value) { + if (DJCi300.scratchButtonState) { + DJCi300.scratchButtonState = false; + midi.sendShortMsg(status, 0x03, 0x00); + } else { + DJCi300.scratchButtonState = true; + midi.sendShortMsg(status, 0x03, 0x7F); + } + } +}; + +DJCi300._scratchEnable = function(deck) { + var alpha = 1.0/8; + var beta = alpha/32; + engine.scratchEnable(deck, 248, 33 + 1/3, alpha, beta); +}; + +DJCi300._convertWheelRotation = function(value) { + // When you rotate the jogwheel, the controller always sends either 0x1 + // (clockwise) or 0x7F (counter clockwise). 0x1 should map to 1, 0x7F + // should map to -1 (IOW it's 7-bit signed). + return value < 0x40 ? 1 : -1; +}; + +// The touch action on the jog wheel's top surface +DJCi300.wheelTouch = function(channel, control, value, _status, _group) { + var deck = channel; + if (value > 0) { + // Touching the wheel. + if (engine.getValue("[Channel" + deck + "]", "play") !== 1 || DJCi300.scratchButtonState) { + DJCi300._scratchEnable(deck); + DJCi300.scratchAction[deck] = DJCi300.kScratchActionScratch; + } else { + DJCi300.scratchAction[deck] = DJCi300.kScratchActionBend; + } + } else { + // Released the wheel. + engine.scratchDisable(deck); + DJCi300.scratchAction[deck] = DJCi300.kScratchActionNone; + } +}; + +// The touch action on the jog wheel's top surface while holding shift +DJCi300.wheelTouchShift = function(channel, control, value, _status, _group) { + var deck = channel - 3; + // We always enable scratching regardless of button state. + if (value > 0) { + DJCi300._scratchEnable(deck); + DJCi300.scratchAction[deck] = DJCi300.kScratchActionSeek; + } else { + // Released the wheel. + engine.scratchDisable(deck); + DJCi300.scratchAction[deck] = DJCi300.kScratchActionNone; + } +}; + +// Scratching on the jog wheel (rotating it while pressing the top surface) +DJCi300.scratchWheel = function(channel, control, value, status, _group) { + var deck; + switch (status) { + case 0xB1: + case 0xB4: + deck = 1; + break; + case 0xB2: + case 0xB5: + deck = 2; + break; + default: + return; + } + var interval = DJCi300._convertWheelRotation(value); + var scratchAction = DJCi300.scratchAction[deck]; + if (scratchAction === DJCi300.kScratchActionScratch) { + engine.scratchTick(deck, interval * DJCi300.scratchScale); + } else if (scratchAction === DJCi300.kScratchActionSeek) { + engine.scratchTick(deck, + interval * DJCi300.scratchScale * + DJCi300.scratchShiftMultiplier); + } else { + engine.setValue( + "[Channel" + deck + "]", "jog", interval * DJCi300.bendScale); + } +}; + +// Bending on the jog wheel (rotating using the edge) +DJCi300.bendWheel = function(channel, control, value, _status, _group) { + var interval = DJCi300._convertWheelRotation(value); + engine.setValue( + "[Channel" + channel + "]", "jog", interval * DJCi300.bendScale); +}; + +DJCi300.shutdown = function() { + midi.sendShortMsg(0xB0, 0x7F, 0x00); +}; diff --git a/res/controllers/Hercules_DJControl_Inpulse_300.midi.xml b/res/controllers/Hercules_DJControl_Inpulse_300.midi.xml new file mode 100644 index 0000000000..d43df23ad9 --- /dev/null +++ b/res/controllers/Hercules_DJControl_Inpulse_300.midi.xml @@ -0,0 +1,2669 @@ +<?xml version="1.0" encoding="UTF-8"?> +<MixxxMIDIPreset mixxxVersion="2.2" schemaVersion="1"> + <info> + <name>Hercules DJControl Inpulse 300</name> + <author>DJ Phatso for Hercules Technical Support</author> + <description>MIDI Preset for Hercules DJControl Inpulse 300</description> + <wiki>https://www.mixxx.org/wiki/doku.php/hercules_djcontrol_inpulse_300</wiki> + <forums>https://www.mixxx.org/forums/viewtopic.php?f=7&t=12599</forums> + </info> + <controller id="DJControl Inpulse 300"> + <scriptfiles> + <file filename="lodash.mixxx.js" /> + <file filename="midi-components-0.0.js" /> + <file functionprefix="DJCi300" filename="Hercules-DJControl-Inpulse-300-script.js" /> + </scriptfiles> + <controls> + <!--Note Number (NN) - Buttons/switches/Encoders --> + <!-- NN's MIDI Channel 1 (0x90)--> + + <!--Browser section (Encoder button)--> + <control> + <group>[Library]</group> + <key>MoveFocus</key> + <description>Browser button</description> + <status>0x90</status> + <midino>0x00</midino> + <options> + <normal /> + </options> + </control> + + <!--Assistant--> + <control> + <group>[AutoDJ]</group> + <key>enabled</key> + <description>AutoDJ On/Off</description> + <status>0x90</status> + <midino>0x03</midino> + <normal/> + </control> + + <!-- NN's MIDI Channel 2 (0x91 Deck A - Standard MODE)--> + + <!--Play--> + <control> + <group>[Channel1]</group> + <key>play</key> + <description>Play button</description> + <status>0x91</status> + <midino>0x07</midino> + <options> + <normal /> + </options> + </control> + <!--CUE--> + <control> + <group>[Channel1]</group> + <key>cue_default</key> + <description>Cue button</description> + <status>0x91</status> + <midino>0x06</midino> + <options> + <normal /> + </options> + </control> + <!--Sync--> + <control> + <group>[Channel1]</group> + <key>sync_enabled</key> + <description>Sync button</description> + <status>0x91</status> + <midino>0x05</midino> + <options> + <normal /> + </options> + </control> + <!-- PFL--> + <control> + <group>[Channel1]</group> + <key>pfl</key> + <description>PFL button</description> + <status>0x91</status> + <midino>0x0C</midino> + <options> + <normal /> + </options> + </control> + <!--LOAD A--> + <control> + <group>[Channel1]</group> + <key>LoadSelectedTrack</key> + <description>LOAD A button</description> + <status>0x91</status> + <midino>0x0D</midino> + <options> + <normal /> + </options> + </control> + <!--SLIP A--> + <control> + <group>[Channel1]</group> + <key>slip_enabled</key> + <description>SLIP button</description> + <status>0x91</status> + <midino>0x01</midino> + <options> + <normal /> + </options> + </control> + <!--Q A--> + <control> + <group>[Channel1]</group> + <key>keylock</key> + <description>Q button</description> + <status>0x91</status> + <midino>0x02</midino> + <options> + <normal /> + </options> + </control> + + <!--Vinyl button--> + <control> + <group>[Channel1]</group> + <key>DJCi300.vinylButton</key> + <description>Vinyl Deck A</description> + <status>0x91</status> + <midino>0x03</midino> + <options> + <script-binding /> + </options> + </control> + + <!--Jog Touch A--> + <control> + <group>[Channel1]</group> + <key>DJCi300.wheelTouch</key> + <description>Jog Wheel Touch Deck A</description> + <status>0x91</status> + <midino>0x08</midino> + <options> + <script-binding /> + </options> + </control> + + <!--Loop In/Out--> + <control> + <group>[Channel1]</group> + <key>beatloop_4_activate</key> + <description>Loop In button</description> + <status>0x91</status> + <midino>0x09</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>reloop_toggle</key> + <description>Loop Out button</description> + <status>0x91</status> + <midino>0x0A</midino> + <options> + <normal /> + </options> + </control> + + <!--FX section button--> + <control> + <group>[EffectRack1_EffectUnit1_Effect3]</group> + <key>enabled</key> + <description>FX Rack 1 - Slot 3 On/Off</description> + <status>0x91</status> + <midino>0x00</midino> + <options> + <normal /> + </options> + </control> + + <!-- NN's MIDI Channel 3 (0x92 Deck B - Standard MODE)--> + + <!--Play--> + <control> + <group>[Channel2]</group> + <key>play</key> + <description>Play button</description> + <status>0x92</status> + <midino>0x07</midino> + <options> + <normal /> + </options> + </control> + <!--CUE--> + <control> + <group>[Channel2]</group> + <key>cue_default</key> + <description>Cue button</description> + <status>0x92</status> + <midino>0x06</midino> + <options> + <normal /> + </options> + </control> + <!--Sync--> + <control> + <group>[Channel2]</group> + <key>sync_enabled</key> + <description>Sync button</description> + <status>0x92</status> + <midino>0x05</midino> + <options> + <normal /> + </options> + </control> + <!-- PFL--> + <control> + <group>[Channel2]</group> + <key>pfl</key> + <description>PFL button</description> + <status>0x92</status> + <midino>0x0C</midino> + <options> + <normal /> + </options> + </control> + <!--LOAD B--> + <control> + <group>[Channel2]</group> + <key>LoadSelectedTrack</key> + <description>LOAD B button</description> + <status>0x92</status> + <midino>0x0D</midino> + <options> + <normal /> + </options> + </control> + <!--SLIP B--> + <control> + <group>[Channel2]</group> + <key>slip_enabled</key> + <description>SLIP button</description> + <status>0x92</status> + <midino>0x01</midino> + <options> + <normal /> + </options> + </control> + <!--Q B--> + <control> + <group>[Channel2]</group> + <key>keylock</key> + <description>Q button</description> + <status>0x92</status> + <midino>0x02</midino> + <options> + <normal /> + </options> + </control> + <!--Vinyl button--> + <control> + <group>[Channel2]</group> + <key>DJCi300.vinylButton</key> + <description>Vinyl Deck B</description> + <status>0x92</status> + <midino>0x03</midino> + <options> + <script-binding /> + </options> + </control> + <!--Jog Touch B --> + <control> + <group>[Channel2]</group> + <key>DJCi300.wheelTouch</key> + <description>Jog Wheel Touch Deck B</description> + <status>0x92</status> + <midino>0x08</midino> + <options> + <script-binding /> + </options> + </control> + <!--Loop In/Out--> + <control> + <group>[Channel2]</group> + <key>beatloop_4_activate</key> + <description>Loop In button</description> + <status>0x92</status> + <midino>0x09</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel2]</group> + <key>reloop_toggle</key> + <description>Loop Out button</description> + <status>0x92</status> + <midino>0x0A</midino> + <options> + <normal /> + </options> + </control> + <!--FX Section Button--> + + <control> + <group>[EffectRack1_EffectUnit2_Effect3]</group> + <key>enabled</key> + <description>FX Rack 2 - Slot 3 On/Off</description> + <status>0x92</status> + <midino>0x00</midino> + <options> + <normal /> + </options> + </control> + + <!-- NN's MIDI Channel 4 (0x93 - SHIFT MODE)--> + + <!--Browser section (Encoder button)--> + <control> + <group>[Master]</group> + <key>maximize_library</key> + <description>Browser button - Maximize Library view</description> + <status>0x93</status> + <midino>0x00</midino> + <options> + <normal /> + </options> + </control> + + <!-- NN's MIDI Channel 5 (0x94 Deck A - SHIFT MODE)--> + <!--Jog Touch A--> + <control> + <group>[Channel1]</group> + <key>DJCi300.wheelTouchShift</key> + <description>Jog Wheel Shift Touch Deck A</description> + <status>0x94</status> + <midino>0x08</midino> + <options> + <script-binding /> + </options> + </control> + + <!--Play--> + <control> + <group>[Channel1]</group> + <key>play_stutter</key> + <description>SHIFT + Play: Play Stutter</description> + <status>0x94</status> + <midino>0x07</midino> + <options> + <normal /> + </options> + </control> + <!--CUE--> + <control> + <group>[Channel1]</group> + <key>start_play</key> + <description>SHIFT + Cue: REWIND to beginning</description> + <status>0x94</status> + <midino>0x06</midino> + <options> + <normal /> + </options> + </control> + <!--Sync--> + <control> + <group>[Channel1]</group> + <key>sync_master</key> + <description>SHIFT + Sync: Sync Master</description> + <status>0x94</status> + <midino>0x05</midino> + <options> + <normal /> + </options> + </control> + <!--Loop In/Out--> + <control> + <group>[Channel1]</group> + <key>loop_halve</key> + <description>SHIFT + Loop In: Loop Half</description> + <status>0x94</status> + <midino>0x09</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>loop_double</key> + <description>SHIFT + Loop Out: Loop Double</description> + <status>0x94</status> + <midino>0x0A</midino> + <options> + <normal /> + </options> + </control> + <!--Effect--> + <control> + <group>[EffectRack1_EffectUnit1_Effect3]</group> + <key>next_effect</key> + <description>SHIFT + Effect ON: Next effect</description> + <status>0x94</status> + <midino>0x00</midino> + <options> + <normal /> + </options> + </control> + + <!-- NN's MIDI Channel 6 (0x95 Deck B - SHIFT MODE)--> + <!--Jog Touch B--> + <control> + <group>[Channel2]</group> + <key>DJCi300.wheelTouchShift</key> + <description>Jog Wheel Shift Touch Deck B</description> + <status>0x95</status> + <midino>0x08</midino> + <options> + <script-binding /> + </options> + </control> + + <!--Play--> + <control> + <group>[Channel2]</group> + <key>play_stutter</key> + <description>SHIFT + Play: Play Stutter</description> + <status>0x95</status> + <midino>0x07</midino> + <options> + <normal /> + </options> + </control> + <!--CUE--> + <control> + <group>[Channel2]</group> + <key>start_play</key> + <description>SHIFT + Cue: REWIND to beginning</description> + <status>0x95</status> + <midino>0x06</midino> + <options> + <normal /> + </options> + </control> + <!--Sync--> + <control> + <group>[Channel2]</group> + <key>sync_master</key> + <description>SHIFT + Sync: Sync Master</description> + <status>0x95</status> + <midino>0x05</midino> + <options> + <normal /> + </options> + </control> + <!--Loop In/Out--> + <control> + <group>[Channel2]</group> + <key>loop_halve</key> + <description>SHIFT + Loop In: Loop Half</description> + <status>0x95</status> + <midino>0x09</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel2]</group> + <key>loop_double</key> + <description>SHIFT + Loop Ou: Loop Double</description> + <status>0x95</status> + <midino>0x0A</midino> + <options> + <normal /> + </options> + </control> + <!--Effect--> + <control> + <group>[EffectRack1_EffectUnit2_Effect3]</group> + <key>next_effect</key> + <description>SHIFT + Effect ON: Next effect</description> + <status>0x95</status> + <midino>0x00</midino> + <options> + <normal /> + </options> + </control> + + <!-- NN's MIDI Channel 7 (0x96 Deck A - Pads)--> + + <!--Hot Cues (SET)--> + <control> + <group>[Channel1]</group> + <key>hotcue_1_activate</key> + <description>PAD 1</description> + <status>0x96</status> + <midino>0x00</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_2_activate</key> + <description>PAD 2</description> + <status>0x96</status> + <midino>0x01</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_3_activate</key> + <description>PAD 3</description> + <status>0x96</status> + <midino>0x02</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_4_activate</key> + <description>PAD 4</description> + <status>0x96</status> + <midino>0x03</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_5_activate</key> + <description>PAD 5</description> + <status>0x96</status> + <midino>0x04</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_6_activate</key> + <description>PAD 6</description> + <status>0x96</status> + <midino>0x05</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_7_activate</key> + <description>PAD 7</description> + <status>0x96</status> + <midino>0x06</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_8_activate</key> + <description>PAD 8</description> + <status>0x96</status> + <midino>0x07</midino> + <options> + <normal /> + </options> + </control> + <!--Hot-Cue buttons (SHIFT mode)--> + <control> + <group>[Channel1]</group> + <key>hotcue_1_clear</key> + <description>PAD 1</description> + <status>0x96</status> + <midino>0x08</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_2_clear</key> + <description>PAD 2</description> + <status>0x96</status> + <midino>0x09</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_3_clear</key> + <description>PAD 3</description> + <status>0x96</status> + <midino>0x0A</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_4_clear</key> + <description>PAD 4</description> + <status>0x96</status> + <midino>0x0B</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_5_clear</key> + <description>PAD 5</description> + <status>0x96</status> + <midino>0x0C</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_6_clear</key> + <description>PAD 6</description> + <status>0x96</status> + <midino>0x0D</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_7_clear</key> + <description>PAD 7</description> + <status>0x96</status> + <midino>0x0E</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>hotcue_8_clear</key> + <description>PAD 8</description> + <status>0x96</status> + <midino>0x0F</midino> + <options> + <normal /> + </options> + </control> + <!--Roll--> + <control> + <group>[Channel1]</group> + <key>beatlooproll_0.125_activate</key> + <description>Loop 1/8 Beat (Pad 1)</description> + <status>0x96</status> + <midino>0x10</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>beatlooproll_0.25_activate</key> + <description>Loop 1/4 Beat (Pad 2)</description> + <status>0x96</status> + <midino>0x11</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>beatlooproll_0.5_activate</key> + <description>Loop 1/2 Beat (Pad 3)</description> + <status>0x96</status> + <midino>0x12</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>beatlooproll_1_activate</key> + <description>Loop 1 Beat (Pad 4)</description> + <status>0x96</status> + <midino>0x13</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>beatlooproll_2_activate</key> + <description>Loop 2 Beat (Pad 5)</description> + <status>0x96</status> + <midino>0x14</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>beatlooproll_4_activate</key> + <description>Loop 2 Beat (Pad 6)</description> + <status>0x96</status> + <midino>0x15</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>beatlooproll_8_activate</key> + <description>Loop 8 Beat (Pad 7)</description> + <status>0x96</status> + <midino>0x16</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Channel1]</group> + <key>beatlooproll_16_activate</key> + <description>Loop 2 Beat (Pad 8)</description> + <status>0x96</status> + <midino>0x17</midino> + <options> + <normal /> + </options> + </control> + <!--Sampler--> + <control> + <group>[Sampler1]</group> + <key>cue_gotoandplay</key> + <description>PAD 1</description> + <status>0x96</status> + <midino>0x30</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Sampler2]</group> + <key>cue_gotoandplay</key> + <description>PAD 2</description> + <status>0x96</status> + <midino>0x31</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Sampler3]</group> + <key>cue_gotoandplay</key> + <description>PAD 3</description> + <status>0x96</status> + <midino>0x32</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Sampler4]</group> + <key>cue_gotoandplay</key> + <description>PAD 4</description> + <status>0x96</status> + <midino>0x33</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Sampler5]</group> + <key>cue_gotoandplay</key> + <description>PAD 5</description> + <status>0x96</status> + <midino>0x34</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Sampler6]</group> + <key>cue_gotoandplay</key> + <description>PAD 6</description> + <status>0x96</status> + <midino>0x35</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Sampler7]</group> + <key>cue_gotoandplay</key> + <description>PAD 7</description> + <status>0x96</status> + <midino>0x36</midino> + <options> + <normal /> + </options> + </control> + <control> + <group>[Sampler8]</group> + <key>cue_gotoandplay</key> + <description>PAD 8</description> + <status>0x96</status> + <midino>0x37</midino> + <options> + <normal /> + </options> + </control> + <!--Slicer Not assigned: 0x20 to 0x27--> + + <!--Toneplay Not assigned: 0x40 to 0x47--> + + <!--Slicer LOOP Not assigned: 0x60 to 0x67--> + + <!--Beatjump--> + <control> + <group>[Channel1]</group> + <key>beatjump_1_backward</key> + <description>PAD 1</description> + <status>0 |