From 85d12fc3a0d31eb1039c85dc2a695c8e11a8c92b Mon Sep 17 00:00:00 2001
From: DJ Phatso <48333945+DJPhatso@users.noreply.github.com>
Date: Wed, 10 Apr 2019 08:26:51 -0400
Subject: [PATCH 1/8] Add files via upload
Initial release of MIDI configuration files for Hercules DJControl Inpulse 200
---
Hercules-DJControl-Inpulse-200-script.js | 218 +++
Hercules_DJControl_Inpulse_200.midi.xml | 2020 ++++++++++++++++++++++
2 files changed, 2238 insertions(+)
create mode 100644 Hercules-DJControl-Inpulse-200-script.js
create mode 100644 Hercules_DJControl_Inpulse_200.midi.xml
diff --git a/Hercules-DJControl-Inpulse-200-script.js b/Hercules-DJControl-Inpulse-200-script.js
new file mode 100644
index 00000000000..d9bd277fabc
--- /dev/null
+++ b/Hercules-DJControl-Inpulse-200-script.js
@@ -0,0 +1,218 @@
+// ****************************************************************************
+// * Mixxx mapping script file for the Hercules DJControl Inpulse 200.
+// * Author: DJ Phatso
+// * Version 1.0 (March 2019)
+// * Forum: https://www.mixxx.org/forums/viewtopic.php?f=7&t=12592
+// * Wiki: https://mixxx.org/wiki/doku.php/hercules_djcontrol_inpulse_200
+
+// TODO: Functions that could be implemented to the script:
+//
+// * FX:
+// - See how to preselect efffects for a rack
+// - Tweak scratch effect for Pad 4
+//
+
+
+
+// ****************************************************************************
+function DJCi200() {}
+
+var DJCi200 = {};
+
+DJCi200.scratchButtonStateDA = true;
+DJCi200.scratchButtonStateDB = true;
+
+
+DJCi200.init = function() {
+
+
+ //Turn On Vinyl button LED(one for each deck).
+ midi.sendShortMsg(0x91, 0x03, 0x7F);
+ midi.sendShortMsg(0x92, 0x03, 0x7F);
+
+ //Turn On Browser button LED
+ midi.sendShortMsg(0x90, 0x05, 0x10);
+
+ // Connect the Browser LEDs
+ engine.connectControl("[Library]", "MoveFocus");
+
+
+ //Set effects Levels - Dry/Wet
+ engine.setParameter("[EffectRack1_EffectUnit1_Effect1]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit1_Effect2]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit1_Effect3]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit2_Effect1]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit2_Effect2]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit2_Effect3]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit1]", "mix", 1);
+ engine.setParameter("[EffectRack1_EffectUnit2]", "mix", 1);
+
+ // 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 buttons, used to enable or disable scratching on the jog wheels (One per deck).
+
+DJCi200.vinylButtonDA = function(channel, control, value, status, group) {
+ if (value) {
+ if (DJCi200.scratchButtonStateDA) {
+ DJCi200.scratchButtonStateDA = false;
+ midi.sendShortMsg(0x91, 0x03, 0x00);
+
+ } else {
+ DJCi200.scratchButtonStateDA = true;
+ midi.sendShortMsg(0x91, 0x03, 0x7F);
+
+ }
+ }
+};
+
+DJCi200.vinylButtonDB = function(channel, control, value, status, group) {
+ if (value) {
+ if (DJCi200.scratchButtonStateDB) {
+ DJCi200.scratchButtonStateDB = false;
+ midi.sendShortMsg(0x92, 0x03, 0x00);
+
+ } else {
+ DJCi200.scratchButtonStateDB = true;
+ midi.sendShortMsg(0x92, 0x03, 0x7F);
+
+ }
+ }
+};
+
+// The touch action over the jog wheel
+
+DJCi200.wheelTouchDA = function(channel, control, value, status, group) {
+ channel = channel + 1;
+ if (value > 0 && (engine.getValue("[Channel1]", "play") !== 1 || DJCi200.scratchButtonStateDA)) {
+ // Touching the wheel.
+ var alpha = 1.0 / 8;
+ var beta = alpha / 32;
+ engine.scratchEnable(1, 400, 33 + 1 / 3, alpha, beta);
+ } else {
+ // Released the wheel.
+ engine.scratchDisable(1);
+ }
+};
+
+DJCi200.wheelTouchDB = function(channel, control, value, status, group) {
+ channel = channel + 2;
+ if (value > 0 && (engine.getValue("[Channel2]", "play") !== 1 || DJCi200.scratchButtonStateDB)) {
+ // Touching the wheel.
+ var alpha = 1.0 / 8;
+ var beta = alpha / 32;
+ engine.scratchEnable(2, 400, 33 + 1 / 3, alpha, beta);
+ } else {
+ // Released the wheel.
+ engine.scratchDisable(2);
+ }
+};
+
+
+
+// Using the top of wheel for scratching (Vinyl button On) and bending (Vinyl button Off)
+DJCi200.scratchWheelDA = function(channel, control, value, status, group) {
+
+ var newValue;
+ if (value < 64) {
+ newValue = value;
+ } else {
+ newValue = value - 128;
+ }
+
+ if (engine.isScratching(1)) {
+ engine.scratchTick(1, newValue); // Scratch!
+ } else {
+ engine.setValue('[Channel' + 1 + ']', 'jog', newValue); // Pitch bend
+ }
+};
+
+DJCi200.scratchWheelDB = function(channel, control, value, status, group) {
+
+ var newValue;
+ if (value < 64) {
+ newValue = value;
+ } else {
+ newValue = value - 128;
+ }
+
+ // In either case, register the movement
+ if (engine.isScratching(2)) {
+ engine.scratchTick(2, newValue); // Scratch!
+ } else {
+ engine.setValue('[Channel' + 2 + ']', 'jog', newValue); // Pitch bend
+ }
+};
+
+// Using the side of wheel for the bending
+DJCi200.bendWheelDA = function(channel, control, value, status, group) {
+
+ var newValue;
+ if (value < 64) {
+ newValue = value;
+ } else {
+ newValue = value - 128;
+ }
+
+ {
+ engine.setValue('[Channel' + 1 + ']', 'jog', newValue); // Pitch bend
+ }
+};
+
+
+// The wheel that actually controls the bending
+DJCi200.bendWheelDB = function(channel, control, value, status, group) {
+
+ // A: For a control that centers on 0:
+ var newValue;
+ if (value < 64) {
+ newValue = value;
+ } else {
+ newValue = value - 128;
+ }
+
+ {
+ engine.setValue('[Channel' + 2 + ']', 'jog', newValue); // Pitch bend
+ }
+};
+
+// FX Pad #4 setting for scratching
+DJCi200.scratchPadDA = function(channel, control, value, status, group) {
+
+ var newValue;
+ if (value < 64) {
+ newValue = value;
+ } else {
+ newValue = value - 128;
+ }
+
+ if (engine.isScratching(1)) {
+ engine.scratchTick(1, newValue); // Scratch!
+ }
+
+};
+
+DJCi200.scratchPadDB = function(channel, control, value, status, group) {
+
+ var newValue;
+ if (value < 64) {
+ newValue = value;
+ } else {
+ newValue = value - 128;
+ }
+
+ // In either case, register the movement
+ if (engine.isScratching(2)) {
+ engine.scratchTick(2, newValue); // Scratch!
+ }
+};
+
+
+
+DJCi200.shutdown = function() {
+
+ midi.sendShortMsg(0xB0, 0x7F, 0x00);
+};
\ No newline at end of file
diff --git a/Hercules_DJControl_Inpulse_200.midi.xml b/Hercules_DJControl_Inpulse_200.midi.xml
new file mode 100644
index 00000000000..6d7fbb9689d
--- /dev/null
+++ b/Hercules_DJControl_Inpulse_200.midi.xml
@@ -0,0 +1,2020 @@
+
+
+
+ Hercules DJControl Inpulse 200
+ DJ Phatso for Hercules Technical Support
+ MIDI Preset for Hercules DJControl Inpulse 200
+ https://www.mixxx.org/forums/viewtopic.php?f=7&t=12592
+
+
+
+
+
+
+
+
+
+
+ /****************************************************************************************************/
+ // NN's MIDI Channel 1 (0x90)
+ /****************************************************************************************************/
+
+
+
+ //Browser section (Encoder button)
+
+ [Library]
+ MoveFocus
+ Browser button
+ 0x90
+ 0x00
+
+
+
+
+
+ //Assistant
+
+ [AutoDJ]
+ enabled
+ AutoDJ On/Off
+ 0x90
+ 0x03
+
+
+
+
+
+
+ /****************************************************************************************************/
+ // NN's MIDI Channel 2 (0x91 Deck A - Standard MODE)
+ /****************************************************************************************************/
+
+
+
+ //Play
+
+ [Channel1]
+ play
+ Play button
+ 0x91
+ 0x07
+
+
+
+
+
+ //CUE
+
+ [Channel1]
+ cue_default
+ Cue button
+ 0x91
+ 0x06
+
+
+
+
+
+ //Sync
+
+ [Channel1]
+ sync_enabled
+ Sync button
+ 0x91
+ 0x05
+
+
+
+
+
+
+ // PFL
+
+ [Channel1]
+ pfl
+ PFL button
+ 0x91
+ 0x0C
+
+
+
+
+
+ //LOAD A
+
+ [Channel1]
+ LoadSelectedTrack
+ LOAD A button
+ 0x91
+ 0x0D
+
+
+
+
+
+
+ //Vinyl button
+
+ [Master]
+ DJCi200.vinylButtonDA
+ Vinyl Deck A
+ 0x91
+ 0x03
+
+
+
+
+
+ //Jog Touch A
+
+ [Channel1]
+ DJCi200.wheelTouchDA
+ Jog Wheel Touch Deck A
+ 0x91
+ 0x08
+
+
+
+
+
+
+ //Loop In/Out
+
+ [Channel1]
+ beatloop_4_activate
+ Loop In
+ 0x91
+ 0x09
+
+
+
+
+
+
+ [Channel1]
+ reloop_toggle
+ Loop Out button
+ 0x91
+ 0x0A
+
+
+
+
+
+
+ //FX Pads
+
+
+
+
+
+ /****************************************************************************************************/
+ // NN's MIDI Channel 3 (0x92 Deck B - Standard MODE)
+ /****************************************************************************************************/
+
+
+
+
+ //Play
+
+ [Channel2]
+ play
+ Play button
+ 0x92
+ 0x07
+
+
+
+
+
+ //CUE
+
+ [Channel2]
+ cue_default
+ Cue button
+ 0x92
+ 0x06
+
+
+
+
+
+ //Sync
+
+ [Channel2]
+ sync_enabled
+ Sync button
+ 0x92
+ 0x05
+
+
+
+
+
+
+ // PFL
+
+ [Channel2]
+ pfl
+ PFL button
+ 0x92
+ 0x0C
+
+
+
+
+
+ //LOAD B
+
+ [Channel2]
+ LoadSelectedTrack
+ LOAD B button
+ 0x92
+ 0x0D
+
+
+
+
+
+
+ //Vinyl button
+
+ [Master]
+ DJCi200.vinylButtonDB
+ Vinyl
+ 0x92
+ 0x03
+
+
+
+
+
+ //Jog Touch B
+
+ [Channel2]
+ DJCi200.wheelTouchDB
+ Jog Wheel Touch Deck B
+ 0x92
+ 0x08
+
+
+
+
+
+
+ //Loop In/Out
+
+ [Channel2]
+ beatloop_4_activate
+ Loop In button
+ 0x92
+ 0x09
+
+
+
+
+
+
+ [Channel2]
+ reloop_toggle
+ Loop Out button
+ 0x92
+ 0x0A
+
+
+
+
+
+
+
+ //FX Pads
+
+
+
+ /****************************************************************************************************/
+ // NN's MIDI Channel 4 (0x93 - SHIFT MODE)
+ /****************************************************************************************************/
+
+ //Browser section (Encoder button)
+
+ [Master]
+ maximize_library
+ Browser button - Maximize Library view
+ 0x93
+ 0x00
+
+
+
+
+
+
+ /****************************************************************************************************/
+ // NN's MIDI Channel 5 (0x94 Deck A - SHIFT MODE)
+ /****************************************************************************************************/
+
+
+ //Play
+
+ [Channel1]
+ play_stutter
+ SHIFT + Play: Play Stutter
+ 0x94
+ 0x07
+
+
+
+
+
+ //CUE
+
+ [Channel1]
+ start_play
+ SHIFT + Cue: REWIND to beginning
+ 0x94
+ 0x06
+
+
+
+
+
+ //Sync
+
+ [Channel1]
+ sync_master
+ SHIFT + Sync: Sync Master
+ 0x94
+ 0x05
+
+
+
+
+
+ //Loop In/Out
+
+ [Channel1]
+ loop_halve
+ SHIFT + Loop In: Loop Half
+ 0x94
+ 0x09
+
+
+
+
+
+
+ [Channel1]
+ loop_double
+ SHIFT + Loop Out: Loop Double
+ 0x94
+ 0x0A
+
+
+
+
+
+
+
+
+
+ /****************************************************************************************************/
+ // NN's MIDI Channel 6 (0x95 Deck B - SHIFT MODE)
+ /****************************************************************************************************/
+
+
+ //Play
+
+ [Channel2]
+ play_stutter
+ SHIFT + Play: Play Stutter
+ 0x95
+ 0x07
+
+
+
+
+
+ //CUE
+
+ [Channel2]
+ start_play
+ SHIFT + Cue: REWIND to beginning
+ 0x95
+ 0x06
+
+
+
+
+
+ //Sync
+
+ [Channel2]
+ sync_master
+ SHIFT + Sync: Sync Master
+ 0x95
+ 0x05
+
+
+
+
+
+
+ //Loop In/Out
+
+ [Channel2]
+ loop_halve
+ SHIFT + Loop In: Loop Half
+ 0x95
+ 0x09
+
+
+
+
+
+
+ [Channel2]
+ loop_double
+ SHIFT + Loop Ou: Loop Double
+ 0x95
+ 0x0A
+
+
+
+
+
+
+
+
+ /****************************************************************************************************/
+ // NN's MIDI Channel 7 (0x96 Deck A - Pads)
+ /****************************************************************************************************/
+
+
+ //Hot Cues (SET)
+
+ [Channel1]
+ hotcue_1_activate
+ PAD 1
+ 0x96
+ 0x00
+
+
+
+
+
+
+ [Channel1]
+ hotcue_2_activate
+ PAD 2
+ 0x96
+ 0x01
+
+
+
+
+
+
+ [Channel1]
+ hotcue_3_activate
+ PAD 3
+ 0x96
+ 0x02
+
+
+
+
+
+
+ [Channel1]
+ hotcue_4_activate
+ PAD 4
+ 0x96
+ 0x03
+
+
+
+
+
+
+ //Hot-Cue buttons (SHIFT mode)
+
+ [Channel1]
+ hotcue_1_clear
+ PAD 1
+ 0x96
+ 0x08
+
+
+
+
+
+
+ [Channel1]
+ hotcue_2_clear
+ PAD 2
+ 0x96
+ 0x09
+
+
+
+
+
+
+ [Channel1]
+ hotcue_3_clear
+ PAD 3
+ 0x96
+ 0x0A
+
+
+
+
+
+
+ [Channel1]
+ hotcue_4_clear
+ PAD 4
+ 0x96
+ 0x0B
+
+
+
+
+
+
+
+ //Roll
+
+
+ [Channel1]
+ beatlooproll_1_activate
+ Loop 1 Beat (Pad 1)
+ 0x96
+ 0x10
+
+
+
+
+
+
+ [Channel1]
+ beatlooproll_2_activate
+ Loop 2 Beat (Pad 2)
+ 0x96
+ 0x11
+
+
+
+
+
+
+ [Channel1]
+ beatlooproll_4_activate
+ Loop 4 Beat (Pad 3)
+ 0x96
+ 0x12
+
+
+
+
+
+
+ [Channel1]
+ beatlooproll_8_activate
+ Loop 8 Beat (Pad 4)
+ 0x96
+ 0x13
+
+
+
+
+
+ //FX Pads (SHIFT mode)
+
+
+ [EffectRack1_EffectUnit1_Effect1]
+ enabled
+ FX Unit 1 - Slot 1 On/Off
+ 0x96
+ 0x28
+
+
+
+
+
+
+ [EffectRack1_EffectUnit1_Effect2]
+ enabled
+ FX Unit 1 - Slot 2 On/Off
+ 0x96
+ 0x29
+
+
+
+
+
+
+ [EffectRack1_EffectUnit1_Effect3]
+ enabled
+ FX Unit 1 - Slot 3 On/Off
+ 0x96
+ 0x2A
+
+
+
+
+
+
+ [EffectRack1_EffectUnit1]
+ group_[Channel2]_enable
+ FX Unit 1 On/Off - Deck A
+ 0x96
+ 0x2B
+
+
+
+
+
+ //Sampler
+
+ [Sampler1]
+ cue_gotoandplay
+ PAD 1
+ 0x96
+ 0x30
+
+
+
+
+
+
+ [Sampler2]
+ cue_gotoandplay
+ PAD 2
+ 0x96
+ 0x31
+
+
+
+
+
+
+ [Sampler3]
+ cue_gotoandplay
+ PAD 3
+ 0x96
+ 0x32
+
+
+
+
+
+
+ [Sampler4]
+ cue_gotoandplay
+ PAD 4
+ 0x96
+ 0x33
+
+
+
+
+
+
+
+
+
+ /****************************************************************************************************/
+ // NN's MIDI Channel 8 (0x97 Deck B - Pads)
+ /****************************************************************************************************/
+
+
+ //Hot Cues (SET)
+
+ [Channel2]
+ hotcue_1_activate
+ PAD 1
+ 0x97
+ 0x00
+
+
+
+
+
+
+ [Channel2]
+ hotcue_2_activate
+ PAD 2
+ 0x97
+ 0x01
+
+
+
+
+
+
+ [Channel2]
+ hotcue_3_activate
+ PAD 3
+ 0x97
+ 0x02
+
+
+
+
+
+
+ [Channel2]
+ hotcue_4_activate
+ PAD 4
+ 0x97
+ 0x03
+
+
+
+
+
+
+
+ //Hot-Cue buttons (SHIFT mode)
+
+ [Channel2]
+ hotcue_1_clear
+ PAD 1
+ 0x97
+ 0x08
+
+
+
+
+
+
+ [Channel2]
+ hotcue_2_clear
+ PAD 2
+ 0x97
+ 0x09
+
+
+
+
+
+
+ [Channel2]
+ hotcue_3_clear
+ PAD 3
+ 0x97
+ 0x0A
+
+
+
+
+
+
+ [Channel2]
+ hotcue_4_clear
+ PAD 4
+ 0x97
+ 0x0B
+
+
+
+
+
+
+ //Roll
+
+
+ [Channel2]
+ beatlooproll_1_activate
+ Loop 1 Beat (Pad 1)
+ 0x97
+ 0x10
+
+
+
+
+
+
+ [Channel2]
+ beatlooproll_2_activate
+ Loop 2 Beat (Pad 2)
+ 0x97
+ 0x11
+
+
+
+
+
+
+ [Channel2]
+ beatlooproll_4_activate
+ Loop 4 Beat (Pad 3)
+ 0x97
+ 0x12
+
+
+
+
+
+
+ [Channel2]
+ beatlooproll_8_activate
+ Loop 8 Beat (Pad 4)
+ 0x97
+ 0x13
+
+
+
+
+
+
+ //FX Pads (SHIFT mode)
+
+
+ [EffectRack1_EffectUnit2_Effect1]
+ enabled
+ FX Unit 2 - Slot 1 On/Off
+ 0x97
+ 0x28
+
+
+
+
+
+
+ [EffectRack1_EffectUnit2_Effect2]
+ enabled
+ FX Unit 2 - Slot 2 On/Off
+ 0x97
+ 0x29
+
+
+
+
+
+
+ [EffectRack1_EffectUnit2_Effect3]
+ enabled
+ FX Unit 2 - Slot 3 On/Off
+ 0x97
+ 0x2A
+
+
+
+
+
+
+ [EffectRack1_EffectUnit2]
+ group_[Channel2]_enable
+ FX Unit 2 On/Off - Deck B
+ 0x97
+ 0x2B
+
+
+
+
+
+
+ //Sampler
+
+
+ [Sampler5]
+ cue_gotoandplay
+ PAD 5
+ 0x97
+ 0x30
+
+
+
+
+
+
+ [Sampler6]
+ cue_gotoandplay
+ PAD 6
+ 0x97
+ 0x31
+
+
+
+
+
+
+ [Sampler7]
+ cue_gotoandplay
+ PAD 7
+ 0x97
+ 0x32
+
+
+
+
+
+
+ [Sampler8]
+ cue_gotoandplay
+ PAD 8
+ 0x97
+ 0x33
+
+
+
+
+
+
+
+ // CC's
+ /****************************************************************************************************/
+ // CC's MIDI Channel 1 (0xB0 Standard mode)
+ /***************************************************************************************************/
+
+
+ //Crossfader
+
+ [Master]
+ crossfader
+ Crossfader
+ 0xB0
+ 0x00
+
+
+
+
+
+ //Browser encoder
+
+ [Library]
+ MoveVertical
+ Move Vertical (Browser Knob)
+ 0xB0
+ 0x01
+
+
+
+
+
+
+
+
+ /****************************************************************************************************/
+ // CC's MIDI Channel 2 (0xB1 Deck A - Standard mode)
+ /***************************************************************************************************/
+
+
+ // Volume
+
+ [Channel1]
+ volume
+ Volume Deck A
+ 0xB1
+ 0x00
+
+
+
+
+
+ //EQ
+
+
+ [EqualizerRack1_[Channel1]_Effect1]
+ parameter1
+ EQ LOW Deck A
+ 0xB1
+ 0x02
+
+
+
+
+
+
+
+ [EqualizerRack1_[Channel1]_Effect1]
+ parameter3
+ EQ HIGH Deck A
+ 0xB1
+ 0x04
+
+
+
+
+
+ //Gain
+
+ [Channel1]
+ pregain
+ Gain Deck A
+ 0xB1
+ 0x05
+
+
+
+
+
+ //Filter
+
+ [QuickEffectRack1_[Channel1]]
+ super1
+ Filter Deck A
+ 0xB1
+ 0x01
+
+
+
+
+
+ //Pitch sliders
+
+ [Channel1]
+ rate
+ 0xB1
+ 0x08
+
+
+
+
+
+
+ [Channel1]
+ rate
+ 0xB1
+ 0x28
+
+
+
+
+
+
+
+
+ [Channel1]
+ DJCi200.scratchWheelDA
+ Scratch Deck A (Jog-Wheel)
+ 0xB1
+ 0x0A
+
+
+
+
+
+
+
+ [Channel1]
+ DJCi200.bendWheelDA
+ Pitch Bend Deck A (Jog-Wheel)
+ 0xB1
+ 0x09
+
+
+
+
+
+
+ [Channel1]
+ DJCi200.scratchPadDA
+ Pitch Bend Deck A (FX PAD 4)
+ 0xB1
+ 0x0C
+
+
+
+
+
+
+
+ //FX section
+
+
+
+ [EffectRack1_EffectUnit1_Effect2]
+ meta
+ Effect Rack 1 - Slot 2 Level
+ 0xB1
+ 0x0D
+
+
+
+
+
+
+ /****************************************************************************************************/
+ // CC's MIDI Channel 3 (0xB2 Deck B - Standard mode)
+ /***************************************************************************************************/
+
+
+ // Volume
+
+ [Channel2]
+ volume
+ Volume Deck A
+ 0xB2
+ 0x00
+
+
+
+
+
+ //EQ
+
+
+ [EqualizerRack1_[Channel2]_Effect1]
+ parameter1
+ EQ LOW Deck A
+ 0xB2
+ 0x02
+
+
+
+
+
+
+
+ [EqualizerRack1_[Channel2]_Effect1]
+ parameter3
+ EQ HIGH Deck A
+ 0xB2
+ 0x04
+
+
+
+
+
+ //Gain
+
+ [Channel2]
+ pregain
+ Gain Deck A
+ 0xB2
+ 0x05
+
+
+
+
+
+ //Filter
+
+ [QuickEffectRack1_[Channel2]]
+ super1
+ Filter Deck A
+ 0xB2
+ 0x01
+
+
+
+
+
+ //Pitch sliders
+
+ [Channel2]
+ rate
+ 0xB2
+ 0x08
+
+
+
+
+
+
+ [Channel2]
+ rate
+ 0xB2
+ 0x28
+
+
+
+
+
+
+
+ [Channel2]
+ DJCi200.scratchWheelDB
+ Pitch Bend Deck B (Jog-Wheel)
+ 0xB2
+ 0x0A
+
+
+
+
+
+
+ [Channel2]
+ DJCi200.bendWheelDB
+ Pitch Bend Deck A (Jog-Wheel)
+ 0xB2
+ 0x09
+
+
+
+
+
+
+ [Channel2]
+ DJCi200.scratchPadDB
+ Pitch Bend Deck B (FX PAD 4)
+ 0xB2
+ 0x0C
+
+
+
+
+
+
+ //FX section
+
+
+ [EffectRack1_EffectUnit2_Effect2]
+ meta
+ Effect Rack 2 - Slot 2 Level
+ 0xB2
+ 0x0D
+
+
+
+
+
+
+
+
+ /****************************************************************************************************/
+ //LED output
+ /***************************************************************************************************/
+
+
+
+ //LED Transport
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // LED LOOP
+
+
+
+
+
+
+
+ // LED PFL buttons
+
+
+
+
+ // LED Browser button
+
+
+
+
+
+ // LED Assitant button
+
+
+
+
+
+ // LED Beat Align (Track end warning)
+
+
+
+
+
+ //LED HOT CUE (Normal Mode)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //LED HOT CUE (SHIFT Mode)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ //LED Roll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ // FX
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ////LED SAMPLE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From 217ab2661d05d9b066f2300e04c73a355272dad6 Mon Sep 17 00:00:00 2001
From: DJ Phatso <48333945+DJPhatso@users.noreply.github.com>
Date: Wed, 15 Jan 2020 09:05:09 -0500
Subject: [PATCH 2/8] Add files via upload
---
Hercules-DJControl-Inpulse-200-script.js | 269 +-
Hercules_DJControl_Inpulse_200.midi.xml | 3666 ++++++++++------------
2 files changed, 1813 insertions(+), 2122 deletions(-)
diff --git a/Hercules-DJControl-Inpulse-200-script.js b/Hercules-DJControl-Inpulse-200-script.js
index d9bd277fabc..66f609045e9 100644
--- a/Hercules-DJControl-Inpulse-200-script.js
+++ b/Hercules-DJControl-Inpulse-200-script.js
@@ -1,30 +1,80 @@
-// ****************************************************************************
+////////////////////////////////////////////////////////////////////////
+// JSHint configuration //
+////////////////////////////////////////////////////////////////////////
+/* global engine */
+/* global script */
+/* global print */
+/* global midi */
+////////////////////////////////////////////////////////////////////////
+var DJCi200 = {};
+///////////////////////////////////////////////////////////////
+// USER OPTIONS //
+///////////////////////////////////////////////////////////////
+
+
+
+// How fast scratching is.
+DJCi200.scratchScale = 1.0;
+
+// How much faster seeking (shift+scratch) is than scratching.
+DJCi200.scratchShiftMultiplier = 4;
+
+// How fast bending is.
+DJCi200.bendScale = 1.0;
+
+// DJControl_Inpulse_200_script.js
+//
+// ***************************************************************************
// * Mixxx mapping script file for the Hercules DJControl Inpulse 200.
-// * Author: DJ Phatso
-// * Version 1.0 (March 2019)
+// * Author: DJ Phatso, contributions by Kerrick Staley
+// *
+// * Version 1.2 (December 2019)
// * Forum: https://www.mixxx.org/forums/viewtopic.php?f=7&t=12592
// * Wiki: https://mixxx.org/wiki/doku.php/hercules_djcontrol_inpulse_200
-
+//
+// 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
+//
// TODO: Functions that could be implemented to the script:
//
-// * FX:
-// - See how to preselect efffects for a rack
-// - Tweak scratch effect for Pad 4
+// FX:
+// - See how to preselect effects for a rack
+// - Tweak scratch effect for Pad 4
//
+//************************************************************************
+//
+// We have to disable the no-unused-vars check because we have many MIDI
+// callbacks that receive a fixed list of arguments, but we usually don't use
+// most of these arguments. Eslint seems to make it relatively difficult to
+// disable this check on a case-by-case basis, so we disable it for the whole
+// file.
+// See this GitHub issue for more context:
+// https://github.com/eslint/eslint/issues/1939
+// *eslint-disable no-unused-vars*/
+DJCi200.kScratchActionNone = 0;
+DJCi200.kScratchActionScratch = 1;
+DJCi200.kScratchActionSeek = 2;
+DJCi200.kScratchActionBend = 3;
-
-// ****************************************************************************
-function DJCi200() {}
-
-var DJCi200 = {};
-
-DJCi200.scratchButtonStateDA = true;
-DJCi200.scratchButtonStateDB = true;
+//function DJCi200() {}
-DJCi200.init = function() {
+DJCi200.init = function () {
+ DJCi200.scratchButtonState = true;
+ DJCi200.scratchAction = {
+ 1: DJCi200.kScratchActionNone,
+ 2: DJCi200.kScratchActionNone
+ };
//Turn On Vinyl button LED(one for each deck).
midi.sendShortMsg(0x91, 0x03, 0x7F);
@@ -34,8 +84,8 @@ DJCi200.init = function() {
midi.sendShortMsg(0x90, 0x05, 0x10);
// Connect the Browser LEDs
- engine.connectControl("[Library]", "MoveFocus");
-
+ engine.getValue("[Library]", "MoveFocus");
+ engine.getValue("[Master]", "maximize_library");
//Set effects Levels - Dry/Wet
engine.setParameter("[EffectRack1_EffectUnit1_Effect1]", "meta", 0.6);
@@ -47,172 +97,153 @@ DJCi200.init = function() {
engine.setParameter("[EffectRack1_EffectUnit1]", "mix", 1);
engine.setParameter("[EffectRack1_EffectUnit2]", "mix", 1);
+
+
// 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 buttons, used to enable or disable scratching on the jog wheels (One per deck).
+// The Vinyl button, used to enable or disable scratching on the jog wheels (One per deck).
-DJCi200.vinylButtonDA = function(channel, control, value, status, group) {
+DJCi200.vinylButtonDA = function (channel, control, value, status, group) {
if (value) {
- if (DJCi200.scratchButtonStateDA) {
- DJCi200.scratchButtonStateDA = false;
+ if (DJCi200.scratchButtonState) {
+ DJCi200.scratchButtonState = false;
midi.sendShortMsg(0x91, 0x03, 0x00);
} else {
- DJCi200.scratchButtonStateDA = true;
+ DJCi200.scratchButtonState = true;
midi.sendShortMsg(0x91, 0x03, 0x7F);
}
}
};
-DJCi200.vinylButtonDB = function(channel, control, value, status, group) {
+DJCi200.vinylButtonDB = function (channel, control, value, status, group) {
if (value) {
- if (DJCi200.scratchButtonStateDB) {
- DJCi200.scratchButtonStateDB = false;
+ if (DJCi200.scratchButtonState) {
+ DJCi200.scratchButtonState = false;
midi.sendShortMsg(0x92, 0x03, 0x00);
} else {
- DJCi200.scratchButtonStateDB = true;
+ DJCi200.scratchButtonState = true;
midi.sendShortMsg(0x92, 0x03, 0x7F);
}
}
};
-// The touch action over the jog wheel
+DJCi200._scratchEnable = function (deck) {
-DJCi200.wheelTouchDA = function(channel, control, value, status, group) {
- channel = channel + 1;
- if (value > 0 && (engine.getValue("[Channel1]", "play") !== 1 || DJCi200.scratchButtonStateDA)) {
- // Touching the wheel.
- var alpha = 1.0 / 8;
- var beta = alpha / 32;
- engine.scratchEnable(1, 400, 33 + 1 / 3, alpha, beta);
- } else {
- // Released the wheel.
- engine.scratchDisable(1);
- }
-};
+ var alpha = 1.0 / 8;
+ var beta = alpha / 32;
+ engine.scratchEnable(deck, 248, 33 + 1 / 3, alpha, beta);
-DJCi200.wheelTouchDB = function(channel, control, value, status, group) {
- channel = channel + 2;
- if (value > 0 && (engine.getValue("[Channel2]", "play") !== 1 || DJCi200.scratchButtonStateDB)) {
- // Touching the wheel.
- var alpha = 1.0 / 8;
- var beta = alpha / 32;
- engine.scratchEnable(2, 400, 33 + 1 / 3, alpha, beta);
- } else {
- // Released the wheel.
- engine.scratchDisable(2);
- }
};
-// Using the top of wheel for scratching (Vinyl button On) and bending (Vinyl button Off)
-DJCi200.scratchWheelDA = function(channel, control, value, status, group) {
-
- var newValue;
- if (value < 64) {
- newValue = value;
- } else {
- newValue = value - 128;
- }
-
- if (engine.isScratching(1)) {
- engine.scratchTick(1, newValue); // Scratch!
- } else {
- engine.setValue('[Channel' + 1 + ']', 'jog', newValue); // Pitch bend
- }
+DJCi200._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;
};
-DJCi200.scratchWheelDB = function(channel, control, value, status, group) {
- var newValue;
- if (value < 64) {
- newValue = value;
- } else {
- newValue = value - 128;
- }
- // In either case, register the movement
- if (engine.isScratching(2)) {
- engine.scratchTick(2, newValue); // Scratch!
+// The touch action on the jog wheel's top surface
+DJCi200.wheelTouch = function (channel, control, value, status, group) {
+ var deck = channel;
+ if (value > 0) {
+ // Touching the wheel.
+ if (engine.getValue("[Channel" + deck + "]", "play") !== 1 || DJCi200.scratchButtonState) {
+ DJCi200._scratchEnable(deck);
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionScratch;
+ } else {
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionBend;
+ }
} else {
- engine.setValue('[Channel' + 2 + ']', 'jog', newValue); // Pitch bend
+ // Released the wheel.
+ engine.scratchDisable(deck);
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionNone;
}
};
-// Using the side of wheel for the bending
-DJCi200.bendWheelDA = function(channel, control, value, status, group) {
- var newValue;
- if (value < 64) {
- newValue = value;
+
+// The touch action on the jog wheel's top surface while holding shift
+DJCi200.wheelTouchShift = function (channel, control, value, status, group) {
+ var deck = channel - 3;
+ // We always enable scratching regardless of button state.
+ if (value > 0) {
+ DJCi200._scratchEnable(deck);
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionSeek;
+
} else {
- newValue = value - 128;
- }
+ // Released the wheel.
+ engine.scratchDisable(deck);
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionNone;
- {
- engine.setValue('[Channel' + 1 + ']', 'jog', newValue); // Pitch bend
}
};
-// The wheel that actually controls the bending
-DJCi200.bendWheelDB = function(channel, control, value, status, group) {
+// Scratching on the jog wheel (rotating it while pressing the top surface)
+DJCi200._scratchWheelImpl = function (deck, value) {
+ var interval = DJCi200._convertWheelRotation(value);
+ var scratchAction = DJCi200.scratchAction[deck];
+
+
- // A: For a control that centers on 0:
- var newValue;
- if (value < 64) {
- newValue = value;
+ if (scratchAction === DJCi200.kScratchActionScratch) {
+ engine.scratchTick(deck, interval * DJCi200.scratchScale);
+ } else if (scratchAction === DJCi200.kScratchActionSeek) {
+ engine.scratchTick(deck,
+ interval * DJCi200.scratchScale *
+ DJCi200.scratchShiftMultiplier);
} else {
- newValue = value - 128;
- }
+ DJCi200._bendWheelImpl(deck, value);
- {
- engine.setValue('[Channel' + 2 + ']', 'jog', newValue); // Pitch bend
}
};
-// FX Pad #4 setting for scratching
-DJCi200.scratchPadDA = function(channel, control, value, status, group) {
- var newValue;
- if (value < 64) {
- newValue = value;
- } else {
- newValue = value - 128;
- }
+// Scratching on the jog wheel (rotating it while pressing the top surface)
+DJCi200.scratchWheel = function (channel, control, value, status, group) {
+ var deck = channel;
+ DJCi200._scratchWheelImpl(deck, value);
+};
- if (engine.isScratching(1)) {
- engine.scratchTick(1, newValue); // Scratch!
- }
+// Seeking on the jog wheel (rotating it while pressing the top surface and holding Shift)
+DJCi200.scratchWheelShift = function (channel, control, value, status, group) {
+ var deck = channel - 3;
+ DJCi200._scratchWheelImpl(deck, value);
};
-DJCi200.scratchPadDB = function(channel, control, value, status, group) {
- var newValue;
- if (value < 64) {
- newValue = value;
- } else {
- newValue = value - 128;
- }
+DJCi200._bendWheelImpl = function (deck, value) {
+ var interval = DJCi200._convertWheelRotation(value);
+ engine.setValue('[Channel' + deck + ']', 'jog',
+ interval * DJCi200.bendScale);
+};
- // In either case, register the movement
- if (engine.isScratching(2)) {
- engine.scratchTick(2, newValue); // Scratch!
- }
+// Bending on the jog wheel (rotating using the edge)
+DJCi200.bendWheel = function (channel, control, value, status, group) {
+ var deck = channel;
+ DJCi200._bendWheelImpl(deck, value);
};
+DJCi200.scratchPad = function (channel, control, value, status, group) {
+ var deck = channel;
+ DJCi200._scratchWheelImpl(deck, value);
+};
-DJCi200.shutdown = function() {
+DJCi200.shutdown = function () {
midi.sendShortMsg(0xB0, 0x7F, 0x00);
};
\ No newline at end of file
diff --git a/Hercules_DJControl_Inpulse_200.midi.xml b/Hercules_DJControl_Inpulse_200.midi.xml
index 6d7fbb9689d..ae2797454f4 100644
--- a/Hercules_DJControl_Inpulse_200.midi.xml
+++ b/Hercules_DJControl_Inpulse_200.midi.xml
@@ -1,2020 +1,1680 @@
-
- Hercules DJControl Inpulse 200
- DJ Phatso for Hercules Technical Support
- MIDI Preset for Hercules DJControl Inpulse 200
- https://www.mixxx.org/forums/viewtopic.php?f=7&t=12592
-
-
-
-
-
-
-
-
-
-
- /****************************************************************************************************/
- // NN's MIDI Channel 1 (0x90)
- /****************************************************************************************************/
-
-
-
- //Browser section (Encoder button)
-
- [Library]
- MoveFocus
- Browser button
- 0x90
- 0x00
-
-
-
-
-
- //Assistant
-
- [AutoDJ]
- enabled
- AutoDJ On/Off
- 0x90
- 0x03
-
-
-
-
-
-
- /****************************************************************************************************/
- // NN's MIDI Channel 2 (0x91 Deck A - Standard MODE)
- /****************************************************************************************************/
-
-
-
- //Play
-
- [Channel1]
- play
- Play button
- 0x91
- 0x07
-
-
-
-
-
- //CUE
-
- [Channel1]
- cue_default
- Cue button
- 0x91
- 0x06
-
-
-
-
-
- //Sync
-
- [Channel1]
- sync_enabled
- Sync button
- 0x91
- 0x05
-
-
-
-
-
-
- // PFL
-
- [Channel1]
- pfl
- PFL button
- 0x91
- 0x0C
-
-
-
-
-
- //LOAD A
+
+ Hercules DJControl Inpulse 200
+ DJ Phatso for Hercules Technical Support
+ MIDI Preset for Hercules DJControl Inpulse 200
+ https://www.mixxx.org/wiki/doku.php/hercules_djcontrol_inpulse_200
+ https://www.mixxx.org/forums/viewtopic.php?f=7&t=12592
+
+
+
+
+
+
+
+
+
+
+ //Browser section (Encoder button)
+
+ [Library]
+ MoveFocus
+ Browser button
+ 0x90
+ 0x00
+
+
+
+
+
+ //Assistant
+
+ [AutoDJ]
+ enabled
+ AutoDJ On/Off
+ 0x90
+ 0x03
+
+
+
+ //Play
+
+ [Channel1]
+ play
+ Play button
+ 0x91
+ 0x07
+
+
+
+
+ //CUE
+
+ [Channel1]
+ cue_default
+ Cue button
+ 0x91
+ 0x06
+
+
+
+
+ //Sync
+
+ [Channel1]
+ sync_enabled
+ Sync button
+ 0x91
+ 0x05
+
+
+
+
+ // PFL
+
+ [Channel1]
+ pfl
+ PFL button
+ 0x91
+ 0x0C
+
+
+
+
+ //LOAD A
+
+ [Channel1]
+ LoadSelectedTrack
+ LOAD A button
+ 0x91
+ 0x0D
+
+
+
+
+ //Vinyl button
+
+ [Master]
+ DJCi200.vinylButtonDA
+ Vinyl Deck A
+ 0x91
+ 0x03
+
+
+
+
+ //Jog Touch A
+
+ [Channel1]
+ DJCi200.wheelTouch
+ Jog Wheel Touch Deck A
+ 0x91
+ 0x08
+
+
+
+
+ //Loop In/Out
+
+ [Channel1]
+ beatloop_4_activate
+ Loop In
+ 0x91
+ 0x09
+
+
+
+
+
+ [Channel1]
+ reloop_toggle
+ Loop Out button
+ 0x91
+ 0x0A
+
+
+
+
+
+
+
+
+ //Play
+
+ [Channel2]
+ play
+ Play button
+ 0x92
+ 0x07
+
+
+
+
+ //CUE
+
+ [Channel2]
+ cue_default
+ Cue button
+ 0x92
+ 0x06
+
+
+
+
+ //Sync
+
+ [Channel2]
+ sync_enabled
+ Sync button
+ 0x92
+ 0x05
+
+
+
+
+ // PFL
+
+ [Channel2]
+ pfl
+ PFL button
+ 0x92
+ 0x0C
+
+
+
+
+ //LOAD B
+
+ [Channel2]
+ LoadSelectedTrack
+ LOAD B button
+ 0x92
+ 0x0D
+
+
+
+
+ //Vinyl button
+
+ [Master]
+ DJCi200.vinylButtonDB
+ Vinyl
+ 0x92
+ 0x03
+
+
+
+
+ //Jog Touch B
+
+ [Channel2]
+ DJCi200.wheelTouch
+ Jog Wheel Touch Deck B
+ 0x92
+ 0x08
+
+
+
+
+ //Loop In/Out
+
+ [Channel2]
+ beatloop_4_activate
+ Loop In button
+ 0x92
+ 0x09
+
+
+
+
+
+ [Channel2]
+ reloop_toggle
+ Loop Out button
+ 0x92
+ 0x0A
+
+
+
+
+
+
+
+ //Browser section (Encoder button)
+
+ [Master]
+ maximize_library
+ Browser button - Maximize Library view
+ 0x93
+ 0x00
+
+
+
+
+
+
+
+ //Jog Touch A
+
+ [Channel1]
+ DJCi200.wheelTouchShift
+ Jog Wheel Touch Deck A
+ 0x94
+ 0x08
+
+
+
+
+ //Play
+
+ [Channel1]
+ play_stutter
+ SHIFT + Play: Play Stutter
+ 0x94
+ 0x07
+
+
+
+
+ //CUE
+
+ [Channel1]
+ start_play
+ SHIFT + Cue: REWIND to beginning
+ 0x94
+ 0x06
+
+
+
+
+ //Sync
+
+ [Channel1]
+ sync_master
+ SHIFT + Sync: Sync Master
+ 0x94
+ 0x05
+
+
+
+
+ //Loop In/Out
+
+ [Channel1]
+ loop_halve
+ SHIFT + Loop In: Loop Half
+ 0x94
+ 0x09
+
+
+
+
+
+ [Channel1]
+ loop_double
+ SHIFT + Loop Out: Loop Double
+ 0x94
+ 0x0A
+
+
+
+
+
+
+ //Jog Touch B
+
+ [Channel2]
+ DJCi200.wheelTouchShift
+ Jog Wheel Touch Deck B
+ 0x95
+ 0x08
+
+
+
+
+ //Play
+
+ [Channel2]
+ play_stutter
+ SHIFT + Play: Play Stutter
+ 0x95
+ 0x07
+
+
+
+
+ //CUE
+
+ [Channel2]
+ start_play
+ SHIFT + Cue: REWIND to beginning
+ 0x95
+ 0x06
+
+
+
+
+ //Sync
+
+ [Channel2]
+ sync_master
+ SHIFT + Sync: Sync Master
+ 0x95
+ 0x05
+
+
+
+
+ //Loop In/Out
+
+ [Channel2]
+ loop_halve
+ SHIFT + Loop In: Loop Half
+ 0x95
+ 0x09
+
+
+
+
+
+ [Channel2]
+ loop_double
+ SHIFT + Loop Ou: Loop Double
+ 0x95
+ 0x0A
+
+
+
+
+
+ //Hot Cues (SET)
+
+ [Channel1]
+ hotcue_1_activate
+ PAD 1
+ 0x96
+ 0x00
+
+
+
+
+
+ [Channel1]
+ hotcue_2_activate
+ PAD 2
+ 0x96
+ 0x01
+
+
+
+
+
+ [Channel1]
+ hotcue_3_activate
+ PAD 3
+ 0x96
+ 0x02
+
+
+
+
+
+ [Channel1]
+ hotcue_4_activate
+ PAD 4
+ 0x96
+ 0x03
+
+
+
+
+ //Hot-Cue buttons (SHIFT mode)
+
+ [Channel1]
+ hotcue_1_clear
+ PAD 1
+ 0x96
+ 0x08
+
+
+
+
+
+ [Channel1]
+ hotcue_2_clear
+ PAD 2
+ 0x96
+ 0x09
+
+
+
+
+
+ [Channel1]
+ hotcue_3_clear
+ PAD 3
+ 0x96
+ 0x0A
+
+
+
+
+
+ [Channel1]
+ hotcue_4_clear
+ PAD 4
+ 0x96
+ 0x0B
+
+
+
+
+ //Roll
+
+ [Channel1]
+ beatlooproll_1_activate
+ Loop 1 Beat (Pad 1)
+ 0x96
+ 0x10
+
+
+
+
+
+ [Channel1]
+ beatlooproll_2_activate
+ Loop 2 Beat (Pad 2)
+ 0x96
+ 0x11
+
+
+
+
+
+ [Channel1]
+ beatlooproll_4_activate
+ Loop 4 Beat (Pad 3)
+ 0x96
+ 0x12
+
+
+
+
+
+ [Channel1]
+ beatlooproll_8_activate
+ Loop 8 Beat (Pad 4)
+ 0x96
+ 0x13
+
+
+
+
+ //FX Pads (SHIFT mode)
+
+ [EffectRack1_EffectUnit1_Effect1]
+ enabled
+ FX Unit 1 - Slot 1 On/Off
+ 0x96
+ 0x28
+
+
+
+
+
+ [EffectRack1_EffectUnit1_Effect2]
+ enabled
+ FX Unit 1 - Slot 2 On/Off
+ 0x96
+ 0x29
+
+
+
+
+
+ [EffectRack1_EffectUnit1_Effect3]
+ enabled
+ FX Unit 1 - Slot 3 On/Off
+ 0x96
+ 0x2A
+
+
+
+
+
+ [EffectRack1_EffectUnit1]
+ group_[Channel2]_enable
+ FX Unit 1 On/Off - Deck A
+ 0x96
+ 0x2B
+
+
+
+
+ //Sampler
+
+ [Sampler1]
+ cue_gotoandplay
+ PAD 1
+ 0x96
+ 0x30
+
+
+
+
+
+ [Sampler2]
+ cue_gotoandplay
+ PAD 2
+ 0x96
+ 0x31
+
+
+
+
+
+ [Sampler3]
+ cue_gotoandplay
+ PAD 3
+ 0x96
+ 0x32
+
+
+
+
+
+ [Sampler4]
+ cue_gotoandplay
+ PAD 4
+ 0x96
+ 0x33
+
+
+
+
+
+ //Hot Cues (SET)
+
+ [Channel2]
+ hotcue_1_activate
+ PAD 1
+ 0x97
+ 0x00
+
+
+
+
+
+ [Channel2]
+ hotcue_2_activate
+ PAD 2
+ 0x97
+ 0x01
+
+
+
+
+
+ [Channel2]
+ hotcue_3_activate
+ PAD 3
+ 0x97
+ 0x02
+
+
+
+
+
+ [Channel2]
+ hotcue_4_activate
+ PAD 4
+ 0x97
+ 0x03
+
+
+
+
+ //Hot-Cue buttons (SHIFT mode)
+
+ [Channel2]
+ hotcue_1_clear
+ PAD 1
+ 0x97
+ 0x08
+
+
+
+
+
+ [Channel2]
+ hotcue_2_clear
+ PAD 2
+ 0x97
+ 0x09
+
+
+
+
+
+ [Channel2]
+ hotcue_3_clear
+ PAD 3
+ 0x97
+ 0x0A
+
+
+
+
+
+ [Channel2]
+ hotcue_4_clear
+ PAD 4
+ 0x97
+ 0x0B
+
+
+
+
+ //Roll
+
+ [Channel2]
+ beatlooproll_1_activate
+ Loop 1 Beat (Pad 1)
+ 0x97
+ 0x10
+
+
+
+
+
+ [Channel2]
+ beatlooproll_2_activate
+ Loop 2 Beat (Pad 2)
+ 0x97
+ 0x11
+
+
+
+
+
+ [Channel2]
+ beatlooproll_4_activate
+ Loop 4 Beat (Pad 3)
+ 0x97
+ 0x12
+
+
+
+
+
+ [Channel2]
+ beatlooproll_8_activate
+ Loop 8 Beat (Pad 4)
+ 0x97
+ 0x13
+
+
+
+
+ //FX Pads (SHIFT mode)
+
+ [EffectRack1_EffectUnit2_Effect1]
+ enabled
+ FX Unit 2 - Slot 1 On/Off
+ 0x97
+ 0x28
+
+
+
+
+
+ [EffectRack1_EffectUnit2_Effect2]
+ enabled
+ FX Unit 2 - Slot 2 On/Off
+ 0x97
+ 0x29
+
+
+
+
+
+ [EffectRack1_EffectUnit2_Effect3]
+ enabled
+ FX Unit 2 - Slot 3 On/Off
+ 0x97
+ 0x2A
+
+
+
+
+
+ [EffectRack1_EffectUnit2]
+ group_[Channel2]_enable
+ FX Unit 2 On/Off - Deck B
+ 0x97
+ 0x2B
+
+
+
+
+ //Sampler
+
+ [Sampler5]
+ cue_gotoandplay
+ PAD 5
+ 0x97
+ 0x30
+
+
+
+
+
+ [Sampler6]
+ cue_gotoandplay
+ PAD 6
+ 0x97
+ 0x31
+
+
+
+
+
+ [Sampler7]
+ cue_gotoandplay
+ PAD 7
+ 0x97
+ 0x32
+
+
+
+
+
+ [Sampler8]
+ cue_gotoandplay
+ PAD 8
+ 0x97
+ 0x33
+
+
+
+
+
+
+ //Crossfader
+
+ [Master]
+ crossfader
+ Crossfader
+ 0xB0
+ 0x00
+
+
+
+
+ //Browser encoder
+
+ [Library]
+ MoveVertical
+ Move Vertical (Browser Knob)
+ 0xB0
+ 0x01
+
+
+
+
+
+ // Volume
+
+ [Channel1]
+ volume
+ Volume Deck A
+ 0xB1
+ 0x00
+
+
+
+
+ //EQ
+
+ [EqualizerRack1_[Channel1]_Effect1]
+ parameter1
+ EQ LOW Deck A
+ 0xB1
+ 0x02
+
+
+
+
+
+ [EqualizerRack1_[Channel1]_Effect1]
+ parameter3
+ EQ HIGH Deck A
+ 0xB1
+ 0x04
+
+
+
+
+ //Gain
+
+ [Channel1]
+ pregain
+ Gain Deck A
+ 0xB1
+ 0x05
+
+
+
+
+ //Filter
+
+ [QuickEffectRack1_[Channel1]]
+ super1
+ Filter Deck A
+ 0xB1
+ 0x01
+
+
+
+
+ //Pitch sliders
+
+ [Channel1]
+ rate
+ 0xB1
+ 0x08
+
+
+
+
+
+ [Channel1]
+ rate
+ 0xB1
+ 0x28
+
+
+
+
+ //Jog wheel
+
+ [Channel1]
+ DJCi200.scratchWheel
+ Scratch Deck A (Jog-Wheel)
+ 0xB1
+ 0x0A
+
+
+
+
+
+ [Channel1]
+ DJCi200.bendWheel
+ Pitch Bend Deck A (Jog-Wheel)
+ 0xB1
+ 0x09
+
+
+
+
+
+ [Channel1]
+ DJCi200.scratchPad
+ Pitch Bend Deck A (FX PAD 4)
+ 0xB1
+ 0x0C
+
+
+
+
+ //FX section
+
+ [EffectRack1_EffectUnit1_Effect2]
+ meta
+ Effect Rack 1 - Slot 2 Level
+ 0xB1
+ 0x0D
+
+
+
+
+
+ // Volume
+
+ [Channel2]
+ volume
+ Volume Deck A
+ 0xB2
+ 0x00
+
+
+
+
+ //EQ
+
+ [EqualizerRack1_[Channel2]_Effect1]
+ parameter1
+ EQ LOW Deck A
+ 0xB2
+ 0x02
+
+
+
+
+
+ [EqualizerRack1_[Channel2]_Effect1]
+ parameter3
+ EQ HIGH Deck A
+ 0xB2
+ 0x04
+
+
+
+
+ //Gain
+
+ [Channel2]
+ pregain
+ Gain Deck A
+ 0xB2
+ 0x05
+
+
+
+
+ //Filter
+
+ [QuickEffectRack1_[Channel2]]
+ super1
+ Filter Deck A
+ 0xB2
+ 0x01
+
+
+
+
+ //Pitch sliders
+
+ [Channel2]
+ rate
+ 0xB2
+ 0x08
+
+
+
+
+
+ [Channel2]
+ rate
+ 0xB2
+ 0x28
+
+
+
+
+ //Jog wheel
+
+ [Channel2]
+ DJCi200.scratchWheel
+ Pitch Bend Deck B (Jog-Wheel)
+ 0xB2
+ 0x0A
+
+
+
+
+
+ [Channel2]
+ DJCi200.bendWheel
+ Pitch Bend Deck B (Jog-Wheel)
+ 0xB2
+ 0x09
+
+
+
+
+
+ [Channel2]
+ DJCi200.scratchPad
+ Pitch Bend Deck B (FX PAD 4)
+ 0xB2
+ 0x0C
+
+
+
+
+ //FX section
+
+ [EffectRack1_EffectUnit2_Effect2]
+ meta
+ Effect Rack 2 - Slot 2 Level
+ 0xB2
+ 0x0D
+
+
+
+
+
+
+ //Jog wheel
[Channel1]
- LoadSelectedTrack
- LOAD A button
- 0x91
- 0x0D
-
-
-
-
-
-
- //Vinyl button
-
- [Master]
- DJCi200.vinylButtonDA
- Vinyl Deck A
- 0x91
- 0x03
-
-
-
-
-
- //Jog Touch A
-
- [Channel1]
- DJCi200.wheelTouchDA
- Jog Wheel Touch Deck A
- 0x91
- 0x08
-
-
-
-
-
-
- //Loop In/Out
-
- [Channel1]
- beatloop_4_activate
- Loop In
- 0x91
- 0x09
-
-
-
-
-
-
- [Channel1]
- reloop_toggle
- Loop Out button
- 0x91
+ DJCi200.scratchWheelShift
+ SHIFT + Scratch Deck A (Jog-Wheel)
+ 0xB4
0x0A
-
-
-
-
-
-
- //FX Pads
-
-
-
-
-
- /****************************************************************************************************/
- // NN's MIDI Channel 3 (0x92 Deck B - Standard MODE)
- /****************************************************************************************************/
-
-
-
-
- //Play
-
- [Channel2]
- play
- Play button
- 0x92
- 0x07
-
-
-
-
-
- //CUE
-
- [Channel2]
- cue_default
- Cue button
- 0x92
- 0x06
-
-
-
-
-
- //Sync
-
- [Channel2]
- sync_enabled
- Sync button
- 0x92
- 0x05
-
-
-
-
-
-
- // PFL
-
- [Channel2]
- pfl
- PFL button
- 0x92
- 0x0C
-
-
-
-
-
- //LOAD B
-
- [Channel2]
- LoadSelectedTrack
- LOAD B button
- 0x92
- 0x0D
-
-
-
-
-
-
- //Vinyl button
-
- [Master]
- DJCi200.vinylButtonDB
- Vinyl
- 0x92
- 0x03
-
-
-
-
-
- //Jog Touch B
-
- [Channel2]
- DJCi200.wheelTouchDB
- Jog Wheel Touch Deck B
- 0x92
- 0x08
-
-
- //Loop In/Out
-
- [Channel2]
- beatloop_4_activate
- Loop In button
- 0x92
- 0x09
-
-
-
-
-
-
- [Channel2]
- reloop_toggle
- Loop Out button
- 0x92
- 0x0A
-
-
-
-
-
-
-
- //FX Pads
-
-
-
- /****************************************************************************************************/
- // NN's MIDI Channel 4 (0x93 - SHIFT MODE)
- /****************************************************************************************************/
-
- //Browser section (Encoder button)
-
- [Master]
- maximize_library
- Browser button - Maximize Library view
- 0x93
- 0x00
-
-
-
-
-
-
- /****************************************************************************************************/
- // NN's MIDI Channel 5 (0x94 Deck A - SHIFT MODE)
- /****************************************************************************************************/
-
-
- //Play
-
- [Channel1]
- play_stutter
- SHIFT + Play: Play Stutter
- 0x94
- 0x07
-
-
-
-
-
- //CUE
-
- [Channel1]
- start_play
- SHIFT + Cue: REWIND to beginning
- 0x94
- 0x06
-
-
-
-
-
- //Sync
-
- [Channel1]
- sync_master
- SHIFT + Sync: Sync Master
- 0x94
- 0x05
-
-
-
-
-
- //Loop In/Out
-
- [Channel1]
- loop_halve
- SHIFT + Loop In: Loop Half
- 0x94
- 0x09
-
-
-
-
-
-
- [Channel1]
- loop_double
- SHIFT + Loop Out: Loop Double
- 0x94
- 0x0A
-
-
-
-
-
-
-
-
-
- /****************************************************************************************************/
- // NN's MIDI Channel 6 (0x95 Deck B - SHIFT MODE)
- /****************************************************************************************************/
-
-
- //Play
-
- [Channel2]
- play_stutter
- SHIFT + Play: Play Stutter
- 0x95
- 0x07
-
-
-
-
-
- //CUE
-
- [Channel2]
- start_play
- SHIFT + Cue: REWIND to beginning
- 0x95
- 0x06
-
-
-
-
-
- //Sync
-
- [Channel2]
- sync_master
- SHIFT + Sync: Sync Master
- 0x95
- 0x05
-
-
-
-
-
-
- //Loop In/Out
+
+
+ //Jog wheel
[Channel2]
- loop_halve
- SHIFT + Loop In: Loop Half
- 0x95
- 0x09
-
-
-
-
-
-
- [Channel2]
- loop_double
- SHIFT + Loop Ou: Loop Double
- 0x95
- 0x0A
-
-
-
-
-
-
-
-
- /****************************************************************************************************/
- // NN's MIDI Channel 7 (0x96 Deck A - Pads)
- /****************************************************************************************************/
-
-
- //Hot Cues (SET)
-
- [Channel1]
- hotcue_1_activate
- PAD 1
- 0x96
- 0x00
-
-
-
-
-
-
- [Channel1]
- hotcue_2_activate
- PAD 2
- 0x96
- 0x01
-
-
-
-
-
-
- [Channel1]
- hotcue_3_activate
- PAD 3
- 0x96
- 0x02
-
-
-
-
-
-
- [Channel1]
- hotcue_4_activate
- PAD 4
- 0x96
- 0x03
-
-
-
-
-
-
- //Hot-Cue buttons (SHIFT mode)
-
- [Channel1]
- hotcue_1_clear
- PAD 1
- 0x96
- 0x08
-
-
-
-
-
-
- [Channel1]
- hotcue_2_clear
- PAD 2
- 0x96
- 0x09
-
-
-
-
-
-
- [Channel1]
- hotcue_3_clear
- PAD 3
- 0x96
+ DJCi200.scratchWheelShift
+ SHIFT + Scratch Deck B (Jog-Wheel)
+ 0xB5
0x0A
-
-
-
-
-
-
- [Channel1]
- hotcue_4_clear
- PAD 4
- 0x96
- 0x0B
-
-
-
-
-
-
-
- //Roll
-
-
- [Channel1]
- beatlooproll_1_activate
- Loop 1 Beat (Pad 1)
- 0x96
- 0x10
-
-
-
-
-
-
- [Channel1]
- beatlooproll_2_activate
- Loop 2 Beat (Pad 2)
- 0x96
- 0x11
-
-
-
-
-
-
- [Channel1]
- beatlooproll_4_activate
- Loop 4 Beat (Pad 3)
- 0x96
- 0x12
-
-
-
-
-
-
- [Channel1]
- beatlooproll_8_activate
- Loop 8 Beat (Pad 4)
- 0x96
- 0x13
-
-
-
-
-
- //FX Pads (SHIFT mode)
-
-
- [EffectRack1_EffectUnit1_Effect1]
- enabled
- FX Unit 1 - Slot 1 On/Off
- 0x96
- 0x28
-
-
-
-
-
-
- [EffectRack1_EffectUnit1_Effect2]
- enabled
- FX Unit 1 - Slot 2 On/Off
- 0x96
- 0x29
-
-
-
-
-
-
- [EffectRack1_EffectUnit1_Effect3]
- enabled
- FX Unit 1 - Slot 3 On/Off
- 0x96
- 0x2A
-
-
-
-
-
-
- [EffectRack1_EffectUnit1]
- group_[Channel2]_enable
- FX Unit 1 On/Off - Deck A
- 0x96
- 0x2B
-
-
-
-
-
- //Sampler
-
- [Sampler1]
- cue_gotoandplay
- PAD 1
- 0x96
- 0x30
-
-
-
-
-
-
- [Sampler2]
- cue_gotoandplay
- PAD 2
- 0x96
- 0x31
-
-
-
-
-
-
- [Sampler3]
- cue_gotoandplay
- PAD 3
- 0x96
- 0x32
-
-
-
-
-
-
- [Sampler4]
- cue_gotoandplay
- PAD 4
- 0x96
- 0x33
-
-
-
-
-
-
-
-
-
- /****************************************************************************************************/
- // NN's MIDI Channel 8 (0x97 Deck B - Pads)
- /****************************************************************************************************/
-
-
- //Hot Cues (SET)
-
- [Channel2]
- hotcue_1_activate
- PAD 1
- 0x97
- 0x00
-
-
-
-
-
-
- [Channel2]
- hotcue_2_activate
- PAD 2
- 0x97
- 0x01
-
-
-
-
-
-
- [Channel2]
- hotcue_3_activate
- PAD 3
- 0x97
- 0x02
-
-
-
-
-
-
- [Channel2]
- hotcue_4_activate
- PAD 4
- 0x97
- 0x03
-
-
-
-
-
-
-
- //Hot-Cue buttons (SHIFT mode)
-
- [Channel2]
- hotcue_1_clear
- PAD 1
- 0x97
- 0x08
-
-
-
-
-
-
- [Channel2]
- hotcue_2_clear
- PAD 2
- 0x97
- 0x09
-
-
-
-
-
-
- [Channel2]
- hotcue_3_clear
- PAD 3
- 0x97
- 0x0A
-
-
-
-
-
-
- [Channel2]
- hotcue_4_clear
- PAD 4
- 0x97
- 0x0B
-
-
-
-
-
-
- //Roll
-
-
- [Channel2]
- beatlooproll_1_activate
- Loop 1 Beat (Pad 1)
- 0x97
- 0x10
-
-
-
-
-
-
- [Channel2]
- beatlooproll_2_activate
- Loop 2 Beat (Pad 2)
- 0x97
- 0x11
-
-
-
-
-
-
- [Channel2]
- beatlooproll_4_activate
- Loop 4 Beat (Pad 3)
- 0x97
- 0x12
-
-
-
-
-
-
- [Channel2]
- beatlooproll_8_activate
- Loop 8 Beat (Pad 4)
- 0x97
- 0x13
-
-
-
-
-
-
- //FX Pads (SHIFT mode)
-
-
- [EffectRack1_EffectUnit2_Effect1]
- enabled
- FX Unit 2 - Slot 1 On/Off
- 0x97
- 0x28
-
-
-
-
-
-
- [EffectRack1_EffectUnit2_Effect2]
- enabled
- FX Unit 2 - Slot 2 On/Off
- 0x97
- 0x29
-
-
-
-
-
-
- [EffectRack1_EffectUnit2_Effect3]
- enabled
- FX Unit 2 - Slot 3 On/Off
- 0x97
- 0x2A
-
-
-
-
-
-
- [EffectRack1_EffectUnit2]
- group_[Channel2]_enable
- FX Unit 2 On/Off - Deck B
- 0x97
- 0x2B
-
-
-
-
-
-
- //Sampler
-
-
- [Sampler5]
- cue_gotoandplay
- PAD 5
- 0x97
- 0x30
-
-
-
-
-
-
- [Sampler6]
- cue_gotoandplay
- PAD 6
- 0x97
- 0x31
-
-
-
-
-
-
- [Sampler7]
- cue_gotoandplay
- PAD 7
- 0x97
- 0x32
-
-
-
-
-
-
- [Sampler8]
- cue_gotoandplay
- PAD 8
- 0x97
- 0x33
-
-
-
-
-
-
-
- // CC's
- /****************************************************************************************************/
- // CC's MIDI Channel 1 (0xB0 Standard mode)
- /***************************************************************************************************/
-
-
- //Crossfader
-
- [Master]
- crossfader
- Crossfader
- 0xB0
- 0x00
-
-
-
-
-
- //Browser encoder
-
- [Library]
- MoveVertical
- Move Vertical (Browser Knob)
- 0xB0
- 0x01
-
-
-
-
-
-
-
-
- /****************************************************************************************************/
- // CC's MIDI Channel 2 (0xB1 Deck A - Standard mode)
- /***************************************************************************************************/
-
-
- // Volume
-
- [Channel1]
- volume
- Volume Deck A
- 0xB1
- 0x00
-
-
-
-
-
- //EQ
-
-
- [EqualizerRack1_[Channel1]_Effect1]
- parameter1
- EQ LOW Deck A
- 0xB1
- 0x02
-
-
-
-
-
-
-
- [EqualizerRack1_[Channel1]_Effect1]
- parameter3
- EQ HIGH Deck A
- 0xB1
- 0x04
-
-
-
-
-
- //Gain
-
- [Channel1]
- pregain
- Gain Deck A
- 0xB1
- 0x05
-
-
-
-
-
- //Filter
-
- [QuickEffectRack1_[Channel1]]
- super1
- Filter Deck A
- 0xB1
- 0x01
-
-
-
-
-
- //Pitch sliders
-
- [Channel1]
- rate
- 0xB1
- 0x08
-
-
-
-
-
-
- [Channel1]
- rate
- 0xB1
- 0x28
-
-
-
-
-
-
-
-
- [Channel1]
- DJCi200.scratchWheelDA
- Scratch Deck A (Jog-Wheel)
- 0xB1
- 0x0A
-
-
-
-
-
-
-
- [Channel1]
- DJCi200.bendWheelDA
- Pitch Bend Deck A (Jog-Wheel)
- 0xB1
- 0x09
-
-
-
-
-
-
- [Channel1]
- DJCi200.scratchPadDA
- Pitch Bend Deck A (FX PAD 4)
- 0xB1
- 0x0C
-
-
-
- //FX section
-
-
-
- [EffectRack1_EffectUnit1_Effect2]
- meta
- Effect Rack 1 - Slot 2 Level
- 0xB1
- 0x0D
-
-
-
-
-
-
- /****************************************************************************************************/
- // CC's MIDI Channel 3 (0xB2 Deck B - Standard mode)
- /***************************************************************************************************/
-
-
- // Volume
-
- [Channel2]
- volume
- Volume Deck A
- 0xB2
- 0x00
-
-
-
-
-
- //EQ
-
-
- [EqualizerRack1_[Channel2]_Effect1]
- parameter1
- EQ LOW Deck A
- 0xB2
- 0x02
-
-
-
-
-
-
-
- [EqualizerRack1_[Channel2]_Effect1]
- parameter3
- EQ HIGH Deck A
- 0xB2
- 0x04
-
-
-
-
-
- //Gain
-
- [Channel2]
- pregain
- Gain Deck A
- 0xB2
- 0x05
-
-
-
-
-
- //Filter
-
- [QuickEffectRack1_[Channel2]]
- super1
- Filter Deck A
- 0xB2
- 0x01
-
-
-
-
-
- //Pitch sliders
-
- [Channel2]
- rate
- 0xB2
- 0x08
-
-
-
-
-
-
- [Channel2]
- rate
- 0xB2
- 0x28
-
-
-
-
-
-
-
- [Channel2]
- DJCi200.scratchWheelDB
- Pitch Bend Deck B (Jog-Wheel)
- 0xB2
- 0x0A
-
-
-
-
-
-
- [Channel2]
- DJCi200.bendWheelDB
- Pitch Bend Deck A (Jog-Wheel)
- 0xB2
- 0x09
-
-
-
-
-
-
- [Channel2]
- DJCi200.scratchPadDB
- Pitch Bend Deck B (FX PAD 4)
- 0xB2
- 0x0C
-
-
-
-
-
-
- //FX section
-
-
- [EffectRack1_EffectUnit2_Effect2]
- meta
- Effect Rack 2 - Slot 2 Level
- 0xB2
- 0x0D
-
-
-
-
-
-
-
-
- /****************************************************************************************************/
- //LED output
- /***************************************************************************************************/
-
-
-
- //LED Transport
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- // LED LOOP
-
-
-
-
-
-
-
- // LED PFL buttons
-
-
-
-
- // LED Browser button
-
-
-
-
-
- // LED Assitant button
-
-
-
-
-
- // LED Beat Align (Track end warning)
-
-
-
-
-
- //LED HOT CUE (Normal Mode)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- //LED HOT CUE (SHIFT Mode)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- //LED Roll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- // FX
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ////LED SAMPLE
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+ //LED Transport
+
+
+
+
+
+
+
+
+
+ // LED LOOP
+
+
+ // LED PFL buttons
+
+
+ // LED Browser button
+
+
+ // LED Assitant button
+
+ // LED Beat Align (Track end warning)
+
+
+
+
+ //LED HOT CUE (Normal Mode)
+
+
+
+
+
+
+
+
+ //LED HOT CUE (SHIFT Mode)
+
+
+
+
+
+
+
+
+ //LED Roll
+
+
+
+
+
+
+
+
+ // FX
+
+
+
+
+
+
+
+
+ ////LED SAMPLE
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From f8206e0a268c8e17570fa54eff3b9b1e27c1635b Mon Sep 17 00:00:00 2001
From: DJPhatso
Date: Tue, 10 Mar 2020 08:43:14 -0400
Subject: [PATCH 3/8] Hercules-Inpulse-200
---
.../Hercules-DJControl-Inpulse-200-script.js | 182 ++
.../Hercules_DJControl_Inpulse_200.midi.xml | 1648 +++++++++++++++++
2 files changed, 1830 insertions(+)
create mode 100644 res/controllers/Hercules-DJControl-Inpulse-200-script.js
create mode 100644 res/controllers/Hercules_DJControl_Inpulse_200.midi.xml
diff --git a/res/controllers/Hercules-DJControl-Inpulse-200-script.js b/res/controllers/Hercules-DJControl-Inpulse-200-script.js
new file mode 100644
index 00000000000..e678b8bb4f4
--- /dev/null
+++ b/res/controllers/Hercules-DJControl-Inpulse-200-script.js
@@ -0,0 +1,182 @@
+// DJControl_Inpulse_200_script.js
+//
+// ***************************************************************************
+// * Mixxx mapping script file for the Hercules DJControl Inpulse 200.
+// * Author: DJ Phatso, contributions by Kerrick Staley
+// * Version 1.2 (March 2020)
+// * Forum: https://www.mixxx.org/forums/viewtopic.php?f=7&t=12592
+// * Wiki: https://mixxx.org/wiki/doku.php/hercules_djcontrol_inpulse_200
+//
+// 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:
+//
+// FX:
+// - See how to preselect effects for a rack
+//
+//*************************************************************************
+
+var DJCi200 = {};
+///////////////////////////////////////////////////////////////
+// USER OPTIONS //
+///////////////////////////////////////////////////////////////
+
+// How fast scratching is.
+DJCi200.scratchScale = 1.0;
+
+// How much faster seeking (shift+scratch) is than scratching.
+DJCi200.scratchShiftMultiplier = 4;
+
+// How fast bending is.
+DJCi200.bendScale = 1.0;
+
+// Other scratch related options
+DJCi200.kScratchActionNone = 0;
+DJCi200.kScratchActionScratch = 1;
+DJCi200.kScratchActionSeek = 2;
+DJCi200.kScratchActionBend = 3;
+
+DJCi200.init = function() {
+ // Scratch button state
+ DJCi200.scratchButtonState = true;
+ // Scratch Action
+ DJCi200.scratchAction = {
+ 1: DJCi200.kScratchActionNone,
+ 2: DJCi200.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");
+
+ //Set effects Levels - Dry/Wet
+ engine.setParameter("[EffectRack1_EffectUnit1_Effect1]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit1_Effect2]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit1_Effect3]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit2_Effect1]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit2_Effect2]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit2_Effect3]", "meta", 0.6);
+ engine.setParameter("[EffectRack1_EffectUnit1]", "mix", 1);
+ engine.setParameter("[EffectRack1_EffectUnit2]", "mix", 1);
+
+ // 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).
+DJCi200.vinylButton = function(_channel, _control, value, status, _group) {
+ if (value) {
+ if (DJCi200.scratchButtonState) {
+ DJCi200.scratchButtonState = false;
+ midi.sendShortMsg(status, 0x03, 0x00);
+ } else {
+ DJCi200.scratchButtonState = true;
+ midi.sendShortMsg(status, 0x03, 0x7F);
+ }
+ }
+};
+
+DJCi200._scratchEnable = function(deck) {
+ var alpha = 1.0/8;
+ var beta = alpha/32;
+ engine.scratchEnable(deck, 248, 33 + 1/3, alpha, beta);
+};
+
+DJCi200._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
+DJCi200.wheelTouch = function(channel, control, value, _status, _group) {
+ var deck = channel;
+ if (value > 0) {
+ // Touching the wheel.
+ if (engine.getValue("[Channel" + deck + "]", "play") !== 1 || DJCi200.scratchButtonState) {
+ DJCi200._scratchEnable(deck);
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionScratch;
+ } else {
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionBend;
+ }
+ } else {
+ // Released the wheel.
+ engine.scratchDisable(deck);
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionNone;
+ }
+};
+
+// The touch action on the jog wheel's top surface while holding shift
+DJCi200.wheelTouchShift = function(channel, control, value, _status, _group) {
+ var deck = channel - 3;
+ // We always enable scratching regardless of button state.
+ if (value > 0) {
+ DJCi200._scratchEnable(deck);
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionSeek;
+ } else {
+ // Released the wheel.
+ engine.scratchDisable(deck);
+ DJCi200.scratchAction[deck] = DJCi200.kScratchActionNone;
+ }
+};
+
+// Scratching on the jog wheel (rotating it while pressing the top surface)
+DJCi200.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 = DJCi200._convertWheelRotation(value);
+ var scratchAction = DJCi200.scratchAction[deck];
+ if (scratchAction === DJCi200.kScratchActionScratch) {
+ engine.scratchTick(deck, interval * DJCi200.scratchScale);
+ } else if (scratchAction === DJCi200.kScratchActionSeek) {
+ engine.scratchTick(deck,
+ interval * DJCi200.scratchScale *
+ DJCi200.scratchShiftMultiplier);
+ } else {
+ engine.setValue(
+ "[Channel" + deck + "]", "jog", interval * DJCi200.bendScale);
+ }
+};
+
+// Bending on the jog wheel (rotating using the edge)
+DJCi200.bendWheel = function(channel, control, value, _status, _group) {
+ var interval = DJCi200._convertWheelRotation(value);
+ engine.setValue(
+ "[Channel" + channel + "]", "jog", interval * DJCi200.bendScale);
+};
+
+DJCi200.shutdown = function() {
+ midi.sendShortMsg(0xB0, 0x7F, 0x7E);
+ midi.sendShortMsg(0x90, 0x04, 0x00)
+};
\ No newline at end of file
diff --git a/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml b/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml
new file mode 100644
index 00000000000..167611dd6e7
--- /dev/null
+++ b/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml
@@ -0,0 +1,1648 @@
+
+
+
+ Hercules DJControl Inpulse 200
+ DJ Phatso for Hercules Technical Support
+ MIDI Preset for Hercules DJControl Inpulse 200
+ https://www.mixxx.org/wiki/doku.php/hercules_djcontrol_inpulse_200
+ https://www.mixxx.org/forums/viewtopic.php?f=7&t=12592
+
+
+
+
+
+
+
+
+
+
+
+
+ [Library]
+ MoveFocus
+ Browser button
+ 0x90
+ 0x00
+
+
+
+
+
+
+ [AutoDJ]
+ enabled
+ AutoDJ On/Off
+ 0x90
+ 0x03
+
+
+
+
+
+ [Channel1]
+ play
+ Play button
+ 0x91
+ 0x07
+
+
+
+
+
+
+ [Channel1]
+ cue_default
+ Cue button
+ 0x91
+ 0x06
+
+
+
+
+
+
+ [Channel1]
+ sync_enabled
+ Sync button
+ 0x91
+ 0x05
+
+
+
+
+
+
+ [Channel1]
+ pfl
+ PFL button
+ 0x91
+ 0x0C
+
+
+
+
+
+
+ [Channel1]
+ LoadSelectedTrack
+ LOAD A button
+ 0x91
+ 0x0D
+
+
+
+
+
+
+ [Channel1]
+ DJCi200.vinylButton
+ Vinyl Deck A
+ 0x91
+ 0x03
+
+
+
+
+
+
+ [Channel1]
+ DJCi200.wheelTouch
+ Jog Wheel Touch Deck A
+ 0x91
+ 0x08
+
+
+
+
+
+
+ [Channel1]
+ beatloop_4_activate
+ Loop In button
+ 0x91
+ 0x09
+
+
+
+
+
+ [Channel1]
+ reloop_toggle
+ Loop Out button
+ 0x91
+ 0x0A
+
+
+
+
+
+
+
+ [Channel2]
+ play
+ Play button
+ 0x92
+ 0x07
+
+
+
+
+
+
+ [Channel2]
+ cue_default
+ Cue button
+ 0x92
+ 0x06
+
+
+
+
+
+
+ [Channel2]
+ sync_enabled
+ Sync button
+ 0x92
+ 0x05
+
+
+
+
+
+
+ [Channel2]
+ pfl
+ PFL button
+ 0x92
+ 0x0C
+
+
+
+
+
+
+ [Channel2]
+ LoadSelectedTrack
+ LOAD B button
+ 0x92
+ 0x0D
+
+
+
+
+
+
+ [Channel2]
+ DJCi200.vinylButton
+ Vinyl Deck B
+ 0x92
+ 0x03
+
+
+
+
+
+
+ [Channel2]
+ DJCi200.wheelTouch
+ Jog Wheel Touch Deck B
+ 0x92
+ 0x08
+
+
+
+
+
+
+ [Channel2]
+ beatloop_4_activate
+ Loop In button
+ 0x92
+ 0x09
+
+
+
+
+
+ [Channel2]
+ reloop_toggle
+ Loop Out button
+ 0x92
+ 0x0A
+
+
+
+
+
+
+
+ [Master]
+ maximize_library
+ Browser button - Maximize Library view
+ 0x93
+ 0x00
+
+
+
+
+
+
+
+ [Channel1]
+ DJCi200.wheelTouchShift
+ Jog Wheel Shift Touch Deck A
+ 0x94
+ 0x08
+
+
+
+
+
+
+ [Channel1]
+ play_stutter
+ SHIFT + Play: Play Stutter
+ 0x94
+ 0x07
+
+
+
+
+
+
+ [Channel1]
+ start_play
+ SHIFT + Cue: REWIND to beginning
+ 0x94
+ 0x06
+
+
+
+
+
+
+ [Channel1]
+ sync_master
+ SHIFT + Sync: Sync Master
+ 0x94
+ 0x05
+
+
+
+
+
+
+ [Channel1]
+ loop_halve
+ SHIFT + Loop In: Loop Half
+ 0x94
+ 0x09
+
+
+
+
+
+ [Channel1]
+ loop_double
+ SHIFT + Loop Out: Loop Double
+ 0x94
+ 0x0A
+
+
+
+
+
+
+
+ [Channel2]
+ DJCi200.wheelTouchShift
+ Jog Wheel Shift Touch Deck B
+ 0x95
+ 0x08
+
+
+
+
+
+
+ [Channel2]
+ play_stutter
+ SHIFT + Play: Play Stutter
+ 0x95
+ 0x07
+
+
+
+
+
+
+ [Channel2]
+ start_play
+ SHIFT + Cue: REWIND to beginning
+ 0x95
+ 0x06
+
+
+
+
+
+
+ [Channel2]
+ sync_master
+ SHIFT + Sync: Sync Master
+ 0x95
+ 0x05
+
+
+
+
+
+
+ [Channel2]
+ loop_halve
+ SHIFT + Loop In: Loop Half
+ 0x95
+ 0x09
+
+
+
+
+
+ [Channel2]
+ loop_double
+ SHIFT + Loop Ou: Loop Double
+ 0x95
+ 0x0A
+
+
+
+
+
+
+
+ [Channel1]
+ hotcue_1_activate
+ PAD 1
+ 0x96
+ 0x00
+
+
+
+
+
+ [Channel1]
+ hotcue_2_activate
+ PAD 2
+ 0x96
+ 0x01
+
+
+
+
+
+ [Channel1]
+ hotcue_3_activate
+ PAD 3
+ 0x96
+ 0x02
+
+
+
+
+
+ [Channel1]
+ hotcue_4_activate
+ PAD 4
+ 0x96
+ 0x03
+
+
+
+
+
+
+ [Channel1]
+ hotcue_1_clear
+ PAD 1
+ 0x96
+ 0x08
+
+
+
+
+
+ [Channel1]
+ hotcue_2_clear
+ PAD 2
+ 0x96
+ 0x09
+
+
+
+
+
+ [Channel1]
+ hotcue_3_clear
+ PAD 3
+ 0x96
+ 0x0A
+
+
+
+
+
+ [Channel1]
+ hotcue_4_clear
+ PAD 4
+ 0x96
+ 0x0B
+
+
+
+
+
+
+ [Channel1]
+ beatlooproll_1_activate
+ Loop 1 Beat (Pad 1)
+ 0x96
+ 0x10
+
+
+
+
+
+ [Channel1]
+ beatlooproll_2_activate
+ Loop 2 Beat (Pad 2)
+ 0x96
+ 0x11
+
+
+
+
+
+ [Channel1]
+ beatlooproll_4_activate
+ Loop 4 Beat (Pad 3)
+ 0x96
+ 0x12
+
+
+
+
+
+ [Channel1]
+ beatlooproll_8_activate
+ Loop 8 Beat (Pad 4)
+ 0x96
+ 0x13
+
+
+
+
+
+
+ [EffectRack1_EffectUnit1_Effect1]
+ enabled
+ FX Unit 1 - Slot 1 On/Off
+ 0x96
+ 0x28
+
+
+
+
+
+ [EffectRack1_EffectUnit1_Effect2]
+ enabled
+ FX Unit 1 - Slot 2 On/Off
+ 0x96
+ 0x29
+
+
+
+
+
+ [EffectRack1_EffectUnit1_Effect3]
+ enabled
+ FX Unit 1 - Slot 3 On/Off
+ 0x96
+ 0x2A
+
+
+
+
+
+ [EffectRack1_EffectUnit1]
+ group_[Channel2]_enable
+ FX Unit 1 On/Off - Deck A
+ 0x96
+ 0x2B
+
+
+
+
+
+
+ [Sampler1]
+ cue_gotoandplay
+ PAD 1 - Deck A
+ 0x96
+ 0x30
+
+
+
+
+
+ [Sampler2]
+ cue_gotoandplay
+ PAD 2 - Deck A
+ 0x96
+ 0x31
+
+
+
+
+
+ [Sampler3]
+ cue_gotoandplay
+ PAD 3 - Deck A
+ 0x96
+ 0x32
+
+
+
+
+
+ [Sampler4]
+ cue_gotoandplay
+ PAD 4 - Deck A
+ 0x96
+ 0x33
+
+
+
+
+
+
+
+ [Channel2]
+ hotcue_1_activate
+ PAD 1
+ 0x97
+ 0x00
+
+
+
+
+
+ [Channel2]
+ hotcue_2_activate
+ PAD 2
+ 0x97
+ 0x01
+
+
+
+
+
+ [Channel2]
+ hotcue_3_activate
+ PAD 3
+ 0x97
+ 0x02
+
+
+
+
+
+ [Channel2]
+ hotcue_4_activate
+ PAD 4
+ 0x97
+ 0x03
+
+
+
+
+
+
+ [Channel2]
+ hotcue_1_clear
+ PAD 1
+ 0x97
+ 0x08
+
+
+
+
+
+ [Channel2]
+ hotcue_2_clear
+ PAD 2
+ 0x97
+ 0x09
+
+
+
+
+
+ [Channel2]
+ hotcue_3_clear
+ PAD 3
+ 0x97
+ 0x0A
+
+
+
+
+
+ [Channel2]
+ hotcue_4_clear
+ PAD 4
+ 0x97
+ 0x0B
+
+
+
+
+
+
+ [Channel2]
+ beatlooproll_1_activate
+ Loop 1 Beat (Pad 1)
+ 0x97
+ 0x10
+
+
+
+
+
+ [Channel2]
+ beatlooproll_2_activate
+ Loop 2 Beat (Pad 2)
+ 0x97
+ 0x11
+
+
+
+
+
+ [Channel2]
+ beatlooproll_4_activate
+ Loop 4 Beat (Pad 3)
+ 0x97
+ 0x12
+
+
+
+
+
+ [Channel2]
+ beatlooproll_8_activate
+ Loop 8 Beat (Pad 4)
+ 0x97
+ 0x13
+
+
+
+
+
+
+ [EffectRack1_EffectUnit2_Effect1]
+ enabled
+ FX Unit 2 - Slot 1 On/Off
+ 0x97
+ 0x28
+
+
+
+
+
+ [EffectRack1_EffectUnit2_Effect2]
+ enabled
+ FX Unit 2 - Slot 2 On/Off
+ 0x97
+ 0x29
+
+
+
+
+
+ [EffectRack1_EffectUnit2_Effect3]
+ enabled
+ FX Unit 2 - Slot 3 On/Off
+ 0x97
+ 0x2A
+
+
+
+
+
+ [EffectRack1_EffectUnit2]
+ group_[Channel2]_enable
+ FX Unit 2 On/Off - Deck B
+ 0x97
+ 0x2B
+
+
+
+
+
+
+ [Sampler5]
+ cue_gotoandplay
+ PAD 1 - Deck B
+ 0x97
+ 0x30
+
+
+
+
+
+ [Sampler6]
+ cue_gotoandplay
+ PAD 2 - Deck B
+ 0x97
+ 0x31
+
+
+
+
+
+ [Sampler7]
+ cue_gotoandplay
+ PAD 3 - Deck B
+ 0x97
+ 0x32
+
+
+
+
+
+ [Sampler8]
+ cue_gotoandplay
+ PAD 4 - Deck B
+ 0x97
+ 0x33
+
+
+
+
+
+
+
+
+
+ [Master]
+ crossfader
+ Crossfader
+ 0xB0
+ 0x00
+
+
+
+
+
+
+ [Library]
+ MoveVertical
+ Move Vertical (Browser Knob)
+ 0xB0
+ 0x01
+
+
+
+
+
+
+
+ [Channel1]
+ volume
+ Volume Deck A
+ 0xB1
+ 0x00
+
+
+
+
+
+
+ [EqualizerRack1_[Channel1]_Effect1]
+ parameter1
+ EQ LOW Deck A
+ 0xB1
+ 0x02
+
+
+
+
+
+ [EqualizerRack1_[Channel1]_Effect1]
+ parameter3
+ EQ HIGH Deck A
+ 0xB1
+ 0x04
+
+
+
+
+
+
+ [Channel1]
+ pregain
+ Gain Deck A
+ 0xB1
+ 0x05
+
+
+
+
+
+
+ [QuickEffectRack1_[Channel1]]
+ super1
+ Filter Deck A
+ 0xB1
+ 0x01
+
+
+
+
+
+
+ [Channel1]
+ rate
+ 0xB1
+ 0x08
+
+
+
+
+
+ [Channel1]
+ rate
+ 0xB1
+ 0x28
+
+
+
+
+
+
+ [Channel1]
+ DJCi200.scratchWheel
+ Scratch Deck A (Jog-Wheel)
+ 0xB1
+ 0x0A
+
+
+
+
+
+ [Channel1]
+ DJCi200.bendWheel
+ Pitch Bend Deck A (Jog-Wheel)
+ 0xB1
+ 0x09
+
+
+
+
+
+ [Channel1]
+ DJCi200.scratchPad
+ Pitch Bend Deck A (FX PAD 7 / 8 )
+ 0xB1
+ 0x0C
+
+
+
+
+
+
+
+ [Channel2]
+ volume
+ Volume Deck A
+ 0xB2
+ 0x00
+
+
+
+
+
+
+ [EqualizerRack1_[Channel2]_Effect1]
+ parameter1
+ EQ LOW Deck A
+ 0xB2
+ 0x02
+
+
+
+
+
+ [EqualizerRack1_[Channel2]_Effect1]
+ parameter3
+ EQ HIGH Deck A
+ 0xB2
+ 0x04
+
+
+
+
+
+
+ [Channel2]
+ pregain
+ Gain Deck A
+ 0xB2
+ 0x05
+
+
+
+
+
+
+ [QuickEffectRack1_[Channel2]]
+ super1
+ Filter Deck A
+ 0xB2
+ 0x01
+
+
+
+
+
+
+ [Channel2]
+ rate
+ 0xB2
+ 0x08
+
+
+
+
+
+ [Channel2]
+ rate
+ 0xB2
+ 0x28
+
+
+
+
+
+
+ [Channel2]
+ DJCi200.scratchWheel
+ Pitch Bend Deck B (Jog-Wheel)
+ 0xB2
+ 0x0A
+
+
+
+
+
+ [Channel2]
+ DJCi200.bendWheel
+ Pitch Bend Deck B (Jog-Wheel)
+ 0xB2
+ 0x09
+
+
+
+
+
+ [Channel2]
+ DJCi200.scratchPad
+ Pitch Bend Deck B (FX PAD 7 / 8 )
+ 0xB2
+ 0x0C
+
+
+
+
+
+
+
+ [Channel1]
+ DJCi200.scratchWheel
+ SHIFT + Scratch Deck A (Jog-Wheel)
+ 0xB4
+ 0x0A
+
+
+
+
+
+
+
+ [Channel2]
+ DJCi200.scratchWheel
+ SHIFT + Scratch Deck B (Jog-Wheel)
+ 0xB5
+ 0x0A
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
From 3f1e62b6a27b6159a260f7d5a20a2ca7ed2890ec Mon Sep 17 00:00:00 2001
From: DJ Phatso <48333945+DJPhatso@users.noreply.github.com>
Date: Tue, 10 Mar 2020 09:43:57 -0400
Subject: [PATCH 4/8] Delete Hercules-DJControl-Inpulse-200-script.js
Deleted old file
---
Hercules-DJControl-Inpulse-200-script.js | 249 -----------------------
1 file changed, 249 deletions(-)
delete mode 100644 Hercules-DJControl-Inpulse-200-script.js
diff --git a/Hercules-DJControl-Inpulse-200-script.js b/Hercules-DJControl-Inpulse-200-script.js
deleted file mode 100644
index 66f609045e9..00000000000
--- a/Hercules-DJControl-Inpulse-200-script.js
+++ /dev/null
@@ -1,249 +0,0 @@
-////////////////////////////////////////////////////////////////////////
-// JSHint configuration //
-////////////////////////////////////////////////////////////////////////
-/* global engine */
-/* global script */
-/* global print */
-/* global midi */
-////////////////////////////////////////////////////////////////////////
-var DJCi200 = {};
-///////////////////////////////////////////////////////////////
-// USER OPTIONS //
-///////////////////////////////////////////////////////////////
-
-
-
-// How fast scratching is.
-DJCi200.scratchScale = 1.0;
-
-// How much faster seeking (shift+scratch) is than scratching.
-DJCi200.scratchShiftMultiplier = 4;
-
-// How fast bending is.
-DJCi200.bendScale = 1.0;
-
-// DJControl_Inpulse_200_script.js
-//
-// ***************************************************************************
-// * Mixxx mapping script file for the Hercules DJControl Inpulse 200.
-// * Author: DJ Phatso, contributions by Kerrick Staley
-// *
-// * Version 1.2 (December 2019)
-// * Forum: https://www.mixxx.org/forums/viewtopic.php?f=7&t=12592
-// * Wiki: https://mixxx.org/wiki/doku.php/hercules_djcontrol_inpulse_200
-//
-// 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
-//
-// TODO: Functions that could be implemented to the script:
-//
-// FX:
-// - See how to preselect effects for a rack
-// - Tweak scratch effect for Pad 4
-//
-//************************************************************************
-//
-// We have to disable the no-unused-vars check because we have many MIDI
-// callbacks that receive a fixed list of arguments, but we usually don't use
-// most of these arguments. Eslint seems to make it relatively difficult to
-// disable this check on a case-by-case basis, so we disable it for the whole
-// file.
-// See this GitHub issue for more context:
-// https://github.com/eslint/eslint/issues/1939
-// *eslint-disable no-unused-vars*/
-
-DJCi200.kScratchActionNone = 0;
-DJCi200.kScratchActionScratch = 1;
-DJCi200.kScratchActionSeek = 2;
-DJCi200.kScratchActionBend = 3;
-
-//function DJCi200() {}
-
-
-DJCi200.init = function () {
-
- DJCi200.scratchButtonState = true;
- DJCi200.scratchAction = {
- 1: DJCi200.kScratchActionNone,
- 2: DJCi200.kScratchActionNone
- };
-
- //Turn On Vinyl button LED(one for each deck).
- midi.sendShortMsg(0x91, 0x03, 0x7F);
- midi.sendShortMsg(0x92, 0x03, 0x7F);
-
- //Turn On Browser button LED
- midi.sendShortMsg(0x90, 0x05, 0x10);
-
- // Connect the Browser LEDs
- engine.getValue("[Library]", "MoveFocus");
- engine.getValue("[Master]", "maximize_library");
-
- //Set effects Levels - Dry/Wet
- engine.setParameter("[EffectRack1_EffectUnit1_Effect1]", "meta", 0.6);
- engine.setParameter("[EffectRack1_EffectUnit1_Effect2]", "meta", 0.6);
- engine.setParameter("[EffectRack1_EffectUnit1_Effect3]", "meta", 0.6);
- engine.setParameter("[EffectRack1_EffectUnit2_Effect1]", "meta", 0.6);
- engine.setParameter("[EffectRack1_EffectUnit2_Effect2]", "meta", 0.6);
- engine.setParameter("[EffectRack1_EffectUnit2_Effect3]", "meta", 0.6);
- engine.setParameter("[EffectRack1_EffectUnit1]", "mix", 1);
- engine.setParameter("[EffectRack1_EffectUnit2]", "mix", 1);
-
-
-
- // 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).
-
-DJCi200.vinylButtonDA = function (channel, control, value, status, group) {
- if (value) {
- if (DJCi200.scratchButtonState) {
- DJCi200.scratchButtonState = false;
- midi.sendShortMsg(0x91, 0x03, 0x00);
-
- } else {
- DJCi200.scratchButtonState = true;
- midi.sendShortMsg(0x91, 0x03, 0x7F);
-
- }
- }
-};
-
-DJCi200.vinylButtonDB = function (channel, control, value, status, group) {
- if (value) {
- if (DJCi200.scratchButtonState) {
- DJCi200.scratchButtonState = false;
- midi.sendShortMsg(0x92, 0x03, 0x00);
-
- } else {
- DJCi200.scratchButtonState = true;
- midi.sendShortMsg(0x92, 0x03, 0x7F);
-
- }
- }
-};
-
-DJCi200._scratchEnable = function (deck) {
-
- var alpha = 1.0 / 8;
- var beta = alpha / 32;
- engine.scratchEnable(deck, 248, 33 + 1 / 3, alpha, beta);
-
-};
-
-
-
-DJCi200._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
-DJCi200.wheelTouch = function (channel, control, value, status, group) {
- var deck = channel;
- if (value > 0) {
- // Touching the wheel.
- if (engine.getValue("[Channel" + deck + "]", "play") !== 1 || DJCi200.scratchButtonState) {
- DJCi200._scratchEnable(deck);
- DJCi200.scratchAction[deck] = DJCi200.kScratchActionScratch;
- } else {
- DJCi200.scratchAction[deck] = DJCi200.kScratchActionBend;
- }
- } else {
- // Released the wheel.
- engine.scratchDisable(deck);
- DJCi200.scratchAction[deck] = DJCi200.kScratchActionNone;
- }
-};
-
-
-
-// The touch action on the jog wheel's top surface while holding shift
-DJCi200.wheelTouchShift = function (channel, control, value, status, group) {
- var deck = channel - 3;
- // We always enable scratching regardless of button state.
- if (value > 0) {
- DJCi200._scratchEnable(deck);
- DJCi200.scratchAction[deck] = DJCi200.kScratchActionSeek;
-
- } else {
- // Released the wheel.
- engine.scratchDisable(deck);
- DJCi200.scratchAction[deck] = DJCi200.kScratchActionNone;
-
- }
-};
-
-
-// Scratching on the jog wheel (rotating it while pressing the top surface)
-DJCi200._scratchWheelImpl = function (deck, value) {
- var interval = DJCi200._convertWheelRotation(value);
- var scratchAction = DJCi200.scratchAction[deck];
-
-
-
- if (scratchAction === DJCi200.kScratchActionScratch) {
- engine.scratchTick(deck, interval * DJCi200.scratchScale);
- } else if (scratchAction === DJCi200.kScratchActionSeek) {
- engine.scratchTick(deck,
- interval * DJCi200.scratchScale *
- DJCi200.scratchShiftMultiplier);
- } else {
- DJCi200._bendWheelImpl(deck, value);
-
- }
-};
-
-
-// Scratching on the jog wheel (rotating it while pressing the top surface)
-DJCi200.scratchWheel = function (channel, control, value, status, group) {
- var deck = channel;
- DJCi200._scratchWheelImpl(deck, value);
-};
-
-// Seeking on the jog wheel (rotating it while pressing the top surface and holding Shift)
-DJCi200.scratchWheelShift = function (channel, control, value, status, group) {
- var deck = channel - 3;
- DJCi200._scratchWheelImpl(deck, value);
-
-};
-
-
-DJCi200._bendWheelImpl = function (deck, value) {
- var interval = DJCi200._convertWheelRotation(value);
- engine.setValue('[Channel' + deck + ']', 'jog',
- interval * DJCi200.bendScale);
-};
-
-// Bending on the jog wheel (rotating using the edge)
-DJCi200.bendWheel = function (channel, control, value, status, group) {
- var deck = channel;
- DJCi200._bendWheelImpl(deck, value);
-};
-
-DJCi200.scratchPad = function (channel, control, value, status, group) {
- var deck = channel;
- DJCi200._scratchWheelImpl(deck, value);
-};
-
-
-DJCi200.shutdown = function () {
-
- midi.sendShortMsg(0xB0, 0x7F, 0x00);
-};
\ No newline at end of file
From 31c91d3d5a036609636ce15ea0194f6679216acb Mon Sep 17 00:00:00 2001
From: DJ Phatso <48333945+DJPhatso@users.noreply.github.com>
Date: Tue, 10 Mar 2020 09:44:44 -0400
Subject: [PATCH 5/8] Delete Hercules_DJControl_Inpulse_200.midi.xml
Deleted old file
---
Hercules_DJControl_Inpulse_200.midi.xml | 1680 -----------------------
1 file changed, 1680 deletions(-)
delete mode 100644 Hercules_DJControl_Inpulse_200.midi.xml
diff --git a/Hercules_DJControl_Inpulse_200.midi.xml b/Hercules_DJControl_Inpulse_200.midi.xml
deleted file mode 100644
index ae2797454f4..00000000000
--- a/Hercules_DJControl_Inpulse_200.midi.xml
+++ /dev/null
@@ -1,1680 +0,0 @@
-
-
-
- Hercules DJControl Inpulse 200
- DJ Phatso for Hercules Technical Support
- MIDI Preset for Hercules DJControl Inpulse 200
- https://www.mixxx.org/wiki/doku.php/hercules_djcontrol_inpulse_200
- https://www.mixxx.org/forums/viewtopic.php?f=7&t=12592
-
-
-
-
-
-
-
-
-
-
- //Browser section (Encoder button)
-
- [Library]
- MoveFocus
- Browser button
- 0x90
- 0x00
-
-
-
-
-
- //Assistant
-
- [AutoDJ]
- enabled
- AutoDJ On/Off
- 0x90
- 0x03
-
-
-
- //Play
-
- [Channel1]
- play
- Play button
- 0x91
- 0x07
-
-
-
-
- //CUE
-
- [Channel1]
- cue_default
- Cue button
- 0x91
- 0x06
-
-
-
-
- //Sync
-
- [Channel1]
- sync_enabled
- Sync button
- 0x91
- 0x05
-
-
-
-
- // PFL
-
- [Channel1]
- pfl
- PFL button
- 0x91
- 0x0C
-
-
-
-
- //LOAD A
-
- [Channel1]
- LoadSelectedTrack
- LOAD A button
- 0x91
- 0x0D
-
-
-
-
- //Vinyl button
-
- [Master]
- DJCi200.vinylButtonDA
- Vinyl Deck A
- 0x91
- 0x03
-
-
-
-
- //Jog Touch A
-
- [Channel1]
- DJCi200.wheelTouch
- Jog Wheel Touch Deck A
- 0x91
- 0x08
-
-
-
-
- //Loop In/Out
-
- [Channel1]
- beatloop_4_activate
- Loop In
- 0x91
- 0x09
-
-
-
-
-
- [Channel1]
- reloop_toggle
- Loop Out button
- 0x91
- 0x0A
-
-
-
-
-
-
-
-
- //Play
-
- [Channel2]
- play
- Play button
- 0x92
- 0x07
-
-
-
-
- //CUE
-
- [Channel2]
- cue_default
- Cue button
- 0x92
- 0x06
-
-
-
-
- //Sync
-
- [Channel2]
- sync_enabled
- Sync button
- 0x92
- 0x05
-
-
-
-
- // PFL
-
- [Channel2]
- pfl
- PFL button
- 0x92
- 0x0C
-
-
-
-
- //LOAD B
-
- [Channel2]
- LoadSelectedTrack
- LOAD B button
- 0x92
- 0x0D
-
-
-
-
- //Vinyl button
-
- [Master]
- DJCi200.vinylButtonDB
- Vinyl
- 0x92
- 0x03
-
-
-
-
- //Jog Touch B
-
- [Channel2]
- DJCi200.wheelTouch
- Jog Wheel Touch Deck B
- 0x92
- 0x08
-
-
-
-
- //Loop In/Out
-
- [Channel2]
- beatloop_4_activate
- Loop In button
- 0x92
- 0x09
-
-
-
-
-
- [Channel2]
- reloop_toggle
- Loop Out button
- 0x92
- 0x0A
-
-
-
-
-
-
-
- //Browser section (Encoder button)
-
- [Master]
- maximize_library
- Browser button - Maximize Library view
- 0x93
- 0x00
-
-
-
-
-
-
-
- //Jog Touch A
-
- [Channel1]
- DJCi200.wheelTouchShift
- Jog Wheel Touch Deck A
- 0x94
- 0x08
-
-
-
-
- //Play
-
- [Channel1]
- play_stutter
- SHIFT + Play: Play Stutter
- 0x94
- 0x07
-
-
-
-
- //CUE
-
- [Channel1]
- start_play
- SHIFT + Cue: REWIND to beginning
- 0x94
- 0x06
-
-
-
-
- //Sync
-
- [Channel1]
- sync_master
- SHIFT + Sync: Sync Master
- 0x94
- 0x05
-
-
-
-
- //Loop In/Out
-
- [Channel1]
- loop_halve
- SHIFT + Loop In: Loop Half
- 0x94
- 0x09
-
-
-
-
-
- [Channel1]
- loop_double
- SHIFT + Loop Out: Loop Double
- 0x94
- 0x0A
-
-
-
-
-
-
- //Jog Touch B
-
- [Channel2]
- DJCi200.wheelTouchShift
- Jog Wheel Touch Deck B
- 0x95
- 0x08
-
-
-
-
- //Play
-
- [Channel2]
- play_stutter
- SHIFT + Play: Play Stutter
- 0x95
- 0x07
-
-
-
-
- //CUE
-
- [Channel2]
- start_play
- SHIFT + Cue: REWIND to beginning
- 0x95
- 0x06
-
-
-
-
- //Sync
-
- [Channel2]
- sync_master
- SHIFT + Sync: Sync Master
- 0x95
- 0x05
-
-
-
-
- //Loop In/Out
-
- [Channel2]
- loop_halve
- SHIFT + Loop In: Loop Half
- 0x95
- 0x09
-
-
-
-
-
- [Channel2]
- loop_double
- SHIFT + Loop Ou: Loop Double
- 0x95
- 0x0A
-
-
-
-
-
- //Hot Cues (SET)
-
- [Channel1]
- hotcue_1_activate
- PAD 1
- 0x96
- 0x00
-
-
-
-
-
- [Channel1]
- hotcue_2_activate
- PAD 2
- 0x96
- 0x01
-
-
-
-
-
- [Channel1]
- hotcue_3_activate
- PAD 3
- 0x96
- 0x02
-
-
-
-
-
- [Channel1]
- hotcue_4_activate
- PAD 4
- 0x96
- 0x03
-
-
-
-
- //Hot-Cue buttons (SHIFT mode)
-
- [Channel1]
- hotcue_1_clear
- PAD 1
- 0x96
- 0x08
-
-
-
-
-
- [Channel1]
- hotcue_2_clear
- PAD 2
- 0x96
- 0x09
-
-
-
-
-
- [Channel1]
- hotcue_3_clear
- PAD 3
- 0x96
- 0x0A
-
-
-
-
-
- [Channel1]
- hotcue_4_clear
- PAD 4
- 0x96
- 0x0B
-
-
-
-
- //Roll
-
- [Channel1]
- beatlooproll_1_activate
- Loop 1 Beat (Pad 1)
- 0x96
- 0x10
-
-
-
-
-
- [Channel1]
- beatlooproll_2_activate
- Loop 2 Beat (Pad 2)
- 0x96
- 0x11
-
-
-
-
-
- [Channel1]
- beatlooproll_4_activate
- Loop 4 Beat (Pad 3)
- 0x96
- 0x12
-
-
-
-
-
- [Channel1]
- beatlooproll_8_activate
- Loop 8 Beat (Pad 4)
- 0x96
- 0x13
-
-
-
-
- //FX Pads (SHIFT mode)
-
- [EffectRack1_EffectUnit1_Effect1]
- enabled
- FX Unit 1 - Slot 1 On/Off
- 0x96
- 0x28
-
-
-
-
-
- [EffectRack1_EffectUnit1_Effect2]
- enabled
- FX Unit 1 - Slot 2 On/Off
- 0x96
- 0x29
-
-
-
-
-
- [EffectRack1_EffectUnit1_Effect3]
- enabled
- FX Unit 1 - Slot 3 On/Off
- 0x96
- 0x2A
-
-
-
-
-
- [EffectRack1_EffectUnit1]
- group_[Channel2]_enable
- FX Unit 1 On/Off - Deck A
- 0x96
- 0x2B
-
-
-
-
- //Sampler
-
- [Sampler1]
- cue_gotoandplay
- PAD 1
- 0x96
- 0x30
-
-
-
-
-
- [Sampler2]
- cue_gotoandplay
- PAD 2
- 0x96
- 0x31
-
-
-
-
-
- [Sampler3]
- cue_gotoandplay
- PAD 3
- 0x96
- 0x32
-
-
-
-
-
- [Sampler4]
- cue_gotoandplay
- PAD 4
- 0x96
- 0x33
-
-
-
-
-
- //Hot Cues (SET)
-
- [Channel2]
- hotcue_1_activate
- PAD 1
- 0x97
- 0x00
-
-
-
-
-
- [Channel2]
- hotcue_2_activate
- PAD 2
- 0x97
- 0x01
-
-
-
-
-
- [Channel2]
- hotcue_3_activate
- PAD 3
- 0x97
- 0x02
-
-
-
-
-
- [Channel2]
- hotcue_4_activate
- PAD 4
- 0x97
- 0x03
-
-
-
-
- //Hot-Cue buttons (SHIFT mode)
-
- [Channel2]
- hotcue_1_clear
- PAD 1
- 0x97
- 0x08
-
-
-
-
-
- [Channel2]
- hotcue_2_clear
- PAD 2
- 0x97
- 0x09
-
-
-
-
-
- [Channel2]
- hotcue_3_clear
- PAD 3
- 0x97
- 0x0A
-
-
-
-
-
- [Channel2]
- hotcue_4_clear
- PAD 4
- 0x97
- 0x0B
-
-
-
-
- //Roll
-
- [Channel2]
- beatlooproll_1_activate
- Loop 1 Beat (Pad 1)
- 0x97
- 0x10
-
-
-
-
-
- [Channel2]
- beatlooproll_2_activate
- Loop 2 Beat (Pad 2)
- 0x97
- 0x11
-
-
-
-
-
- [Channel2]
- beatlooproll_4_activate
- Loop 4 Beat (Pad 3)
- 0x97
- 0x12
-
-
-
-
-
- [Channel2]
- beatlooproll_8_activate
- Loop 8 Beat (Pad 4)
- 0x97
- 0x13
-
-
-
-
- //FX Pads (SHIFT mode)
-
- [EffectRack1_EffectUnit2_Effect1]
- enabled
- FX Unit 2 - Slot 1 On/Off
- 0x97
- 0x28
-
-
-
-
-
- [EffectRack1_EffectUnit2_Effect2]
- enabled
- FX Unit 2 - Slot 2 On/Off
- 0x97
- 0x29
-
-
-
-
-
- [EffectRack1_EffectUnit2_Effect3]
- enabled
- FX Unit 2 - Slot 3 On/Off
- 0x97
- 0x2A
-
-
-
-
-
- [EffectRack1_EffectUnit2]
- group_[Channel2]_enable
- FX Unit 2 On/Off - Deck B
- 0x97
- 0x2B
-
-
-
-
- //Sampler
-
- [Sampler5]
- cue_gotoandplay
- PAD 5
- 0x97
- 0x30
-
-
-
-
-
- [Sampler6]
- cue_gotoandplay
- PAD 6
- 0x97
- 0x31
-
-
-
-
-
- [Sampler7]
- cue_gotoandplay
- PAD 7
- 0x97
- 0x32
-
-
-
-
-
- [Sampler8]
- cue_gotoandplay
- PAD 8
- 0x97
- 0x33
-
-
-
-
-
-
- //Crossfader
-
- [Master]
- crossfader
- Crossfader
- 0xB0
- 0x00
-
-
-
-
- //Browser encoder
-
- [Library]
- MoveVertical
- Move Vertical (Browser Knob)
- 0xB0
- 0x01
-
-
-
-
-
- // Volume
-
- [Channel1]
- volume
- Volume Deck A
- 0xB1
- 0x00
-
-
-
-
- //EQ
-
- [EqualizerRack1_[Channel1]_Effect1]
- parameter1
- EQ LOW Deck A
- 0xB1
- 0x02
-
-
-
-
-
- [EqualizerRack1_[Channel1]_Effect1]
- parameter3
- EQ HIGH Deck A
- 0xB1
- 0x04
-
-
-
-
- //Gain
-
- [Channel1]
- pregain
- Gain Deck A
- 0xB1
- 0x05
-
-
-
-
- //Filter
-
- [QuickEffectRack1_[Channel1]]
- super1
- Filter Deck A
- 0xB1
- 0x01
-
-
-
-
- //Pitch sliders
-
- [Channel1]
- rate
- 0xB1
- 0x08
-
-
-
-
-
- [Channel1]
- rate
- 0xB1
- 0x28
-
-
-
-
- //Jog wheel
-
- [Channel1]
- DJCi200.scratchWheel
- Scratch Deck A (Jog-Wheel)
- 0xB1
- 0x0A
-
-
-
-
-
- [Channel1]
- DJCi200.bendWheel
- Pitch Bend Deck A (Jog-Wheel)
- 0xB1
- 0x09
-
-
-
-
-
- [Channel1]
- DJCi200.scratchPad
- Pitch Bend Deck A (FX PAD 4)
- 0xB1
- 0x0C
-
-
-
-
- //FX section
-
- [EffectRack1_EffectUnit1_Effect2]
- meta
- Effect Rack 1 - Slot 2 Level
- 0xB1
- 0x0D
-
-
-
-
-
- // Volume
-
- [Channel2]
- volume
- Volume Deck A
- 0xB2
- 0x00
-
-
-
-
- //EQ
-
- [EqualizerRack1_[Channel2]_Effect1]
- parameter1
- EQ LOW Deck A
- 0xB2
- 0x02
-
-
-
-
-
- [EqualizerRack1_[Channel2]_Effect1]
- parameter3
- EQ HIGH Deck A
- 0xB2
- 0x04
-
-
-
-
- //Gain
-
- [Channel2]
- pregain
- Gain Deck A
- 0xB2
- 0x05
-
-
-
-
- //Filter
-
- [QuickEffectRack1_[Channel2]]
- super1
- Filter Deck A
- 0xB2
- 0x01
-
-
-
-
- //Pitch sliders
-
- [Channel2]
- rate
- 0xB2
- 0x08
-
-
-
-
-
- [Channel2]
- rate
- 0xB2
- 0x28
-
-
-
-
- //Jog wheel
-
- [Channel2]
- DJCi200.scratchWheel
- Pitch Bend Deck B (Jog-Wheel)
- 0xB2
- 0x0A
-
-
-
-
-
- [Channel2]
- DJCi200.bendWheel
- Pitch Bend Deck B (Jog-Wheel)
- 0xB2
- 0x09
-
-
-
-
-
- [Channel2]
- DJCi200.scratchPad
- Pitch Bend Deck B (FX PAD 4)
- 0xB2
- 0x0C
-
-
-
-
- //FX section
-
- [EffectRack1_EffectUnit2_Effect2]
- meta
- Effect Rack 2 - Slot 2 Level
- 0xB2
- 0x0D
-
-
-
-
-
-
- //Jog wheel
-
- [Channel1]
- DJCi200.scratchWheelShift
- SHIFT + Scratch Deck A (Jog-Wheel)
- 0xB4
- 0x0A
-
-
-
-
-
-
- //Jog wheel
-
- [Channel2]
- DJCi200.scratchWheelShift
- SHIFT + Scratch Deck B (Jog-Wheel)
- 0xB5
- 0x0A
-
-
-
-
-
-
-
- //LED Transport
-
-
-
-
-
-
-
-
-
- // LED LOOP
-
-
- // LED PFL buttons
-
-
- // LED Browser button
-
-
- // LED Assitant button
-
- // LED Beat Align (Track end warning)
-
-
-
-
- //LED HOT CUE (Normal Mode)
-
-
-
-
-
-
-
-
- //LED HOT CUE (SHIFT Mode)
-
-
-
-
-
-
-
-
- //LED Roll
-
-
-
-
-
-
-
-
- // FX
-
-
-
-
-
-
-
-
- ////LED SAMPLE
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
From 78bb41e466a4eaa3d66edfa0a60fc8c9f15943f4 Mon Sep 17 00:00:00 2001
From: DJ Phatso <48333945+DJPhatso@users.noreply.github.com>
Date: Tue, 10 Mar 2020 09:48:29 -0400
Subject: [PATCH 6/8] Update Hercules-DJControl-Inpulse-200-script.js
Minor corrections that eslint didn't catch.
---
.../Hercules-DJControl-Inpulse-200-script.js | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/res/controllers/Hercules-DJControl-Inpulse-200-script.js b/res/controllers/Hercules-DJControl-Inpulse-200-script.js
index e678b8bb4f4..fa12bac366b 100644
--- a/res/controllers/Hercules-DJControl-Inpulse-200-script.js
+++ b/res/controllers/Hercules-DJControl-Inpulse-200-script.js
@@ -20,7 +20,7 @@
//
// TO DO: Functions that could be implemented to the script:
//
-// FX:
+// FX:
// - See how to preselect effects for a rack
//
//*************************************************************************
@@ -66,7 +66,7 @@ DJCi200.init = function() {
engine.softTakeover("[Channel2]", "rate", true);
engine.softTakeoverIgnoreNextValue("[Channel1]", "rate");
engine.softTakeoverIgnoreNextValue("[Channel2]", "rate");
-
+
//Set effects Levels - Dry/Wet
engine.setParameter("[EffectRack1_EffectUnit1_Effect1]", "meta", 0.6);
engine.setParameter("[EffectRack1_EffectUnit1_Effect2]", "meta", 0.6);
@@ -76,7 +76,7 @@ DJCi200.init = function() {
engine.setParameter("[EffectRack1_EffectUnit2_Effect3]", "meta", 0.6);
engine.setParameter("[EffectRack1_EffectUnit1]", "mix", 1);
engine.setParameter("[EffectRack1_EffectUnit2]", "mix", 1);
-
+
// 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);
@@ -178,5 +178,5 @@ DJCi200.bendWheel = function(channel, control, value, _status, _group) {
DJCi200.shutdown = function() {
midi.sendShortMsg(0xB0, 0x7F, 0x7E);
- midi.sendShortMsg(0x90, 0x04, 0x00)
-};
\ No newline at end of file
+ midi.sendShortMsg(0x90, 0x04, 0x00);
+};
From 3a731ab646747b893684136b98a558b331343dc1 Mon Sep 17 00:00:00 2001
From: Jan Holthuis
Date: Thu, 12 Mar 2020 19:46:55 +0100
Subject: [PATCH 7/8] Hercules DJControl Inpulse 200: Fix some code stye issues
---
.../Hercules-DJControl-Inpulse-200-script.js | 16 ++++++++--------
.../Hercules_DJControl_Inpulse_200.midi.xml | 4 ++--
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/res/controllers/Hercules-DJControl-Inpulse-200-script.js b/res/controllers/Hercules-DJControl-Inpulse-200-script.js
index fa12bac366b..2b8a349d78d 100644
--- a/res/controllers/Hercules-DJControl-Inpulse-200-script.js
+++ b/res/controllers/Hercules-DJControl-Inpulse-200-script.js
@@ -50,8 +50,8 @@ DJCi200.init = function() {
DJCi200.scratchButtonState = true;
// Scratch Action
DJCi200.scratchAction = {
- 1: DJCi200.kScratchActionNone,
- 2: DJCi200.kScratchActionNone
+ 1: DJCi200.kScratchActionNone,
+ 2: DJCi200.kScratchActionNone
};
//Turn On Vinyl buttons LED(one for each deck).
@@ -61,11 +61,11 @@ DJCi200.init = function() {
//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");
+ //Softtakeover for Pitch fader
+ engine.softTakeover("[Channel1]", "rate", true);
+ engine.softTakeover("[Channel2]", "rate", true);
+ engine.softTakeoverIgnoreNextValue("[Channel1]", "rate");
+ engine.softTakeoverIgnoreNextValue("[Channel2]", "rate");
//Set effects Levels - Dry/Wet
engine.setParameter("[EffectRack1_EffectUnit1_Effect1]", "meta", 0.6);
@@ -77,7 +77,7 @@ DJCi200.init = function() {
engine.setParameter("[EffectRack1_EffectUnit1]", "mix", 1);
engine.setParameter("[EffectRack1_EffectUnit2]", "mix", 1);
- // Ask the controller to send all current knob/slider values over MIDI, which will update
+ // 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);
};
diff --git a/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml b/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml
index 167611dd6e7..2c9b7634f8c 100644
--- a/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml
+++ b/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml
@@ -790,7 +790,7 @@
-
+
@@ -1645,4 +1645,4 @@
-
\ No newline at end of file
+
From 561238e9369c9b0caaa1cf3aa033cb2870b469f0 Mon Sep 17 00:00:00 2001
From: DJ Phatso <48333945+DJPhatso@users.noreply.github.com>
Date: Thu, 16 Apr 2020 16:49:21 -0400
Subject: [PATCH 8/8] Changes related to FX pad
- Corrected a bad assignment to Effect Rack On/off
- Mapped FX On/Off to both standard and SHIFT mode for the FX pads (related to an upcoming update to the device that will change how the pads work ).
---
.../Hercules_DJControl_Inpulse_200.midi.xml | 160 +++++++++++++++++-
1 file changed, 157 insertions(+), 3 deletions(-)
diff --git a/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml b/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml
index 2c9b7634f8c..1b87f171e74 100644
--- a/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml
+++ b/res/controllers/Hercules_DJControl_Inpulse_200.midi.xml
@@ -502,7 +502,48 @@
-
+
+
+ [EffectRack1_EffectUnit1_Effect1]
+ enabled
+ FX Unit 1 - Slot 1 On/Off
+ 0x96
+ 0x20
+
+
+
+
+
+ [EffectRack1_EffectUnit1_Effect2]
+ enabled
+ FX Unit 1 - Slot 2 On/Off
+ 0x96
+ 0x21
+
+
+
+
+
+ [EffectRack1_EffectUnit1_Effect3]
+ enabled
+ FX Unit 1 - Slot 3 On/Off
+ 0x96
+ 0x22
+
+
+
+
+
+ [EffectRack1_EffectUnit1]
+ group_[Channel1]_enable
+ FX Unit 1 On/Off - Deck A
+ 0x96
+ 0x23
+
+
+
+
+
[EffectRack1_EffectUnit1_Effect1]
enabled
@@ -535,7 +576,7 @@
[EffectRack1_EffectUnit1]
- group_[Channel2]_enable
+ group_[Channel1]_enable
FX Unit 1 On/Off - Deck A
0x96
0x2B
@@ -708,7 +749,48 @@
-
+
+
+ [EffectRack1_EffectUnit2_Effect1]
+ enabled
+ FX Unit 2 - Slot 1 On/Off
+ 0x97
+ 0x20
+
+
+
+
+
+ [EffectRack1_EffectUnit2_Effect2]
+ enabled
+ FX Unit 2 - Slot 2 On/Off
+ 0x97
+ 0x21
+
+
+
+
+
+ [EffectRack1_EffectUnit2_Effect3]
+ enabled
+ FX Unit 2 - Slot 3 On/Off
+ 0x97
+ 0x22
+
+
+
+
+
+ [EffectRack1_EffectUnit2]
+ group_[Channel2]_enable
+ FX Unit 2 On/Off - Deck B
+ 0x97
+ 0x23
+
+
+
+
+
[EffectRack1_EffectUnit2_Effect1]
enabled
@@ -1503,6 +1585,42 @@
enabled
(Pad 1)
0x96
+ 0x20
+ 0x7F
+ 0.5
+
+
+
+
+
+
+
+
+