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 + + [Channel1] + play_indicator + PLAY LED Deck A + 0.5 + 1 + 0x91 + 0x07 + 0x7f + 0x0 + + + + [Channel1] + cue_indicator + CUE LED Deck A + 0.5 + 1 + 0x91 + 0x06 + 0x7f + 0x0 + + + + [Channel1] + start_play + CUE LED Deck A(SHIFT MODE) + 0.5 + 1 + 0x94 + 0x06 + 0x7f + 0x0 + + + + [Channel1] + sync_enabled + SYNC LED Deck A + 0.5 + 1 + 0x91 + 0x05 + 0x7f + 0x0 + + + + [Channel1] + sync_master + SYNC LED Deck A(SHIFT mode) + 0.5 + 1 + 0x93 + 0x05 + 0x7f + 0x0 + + + + + [Channel2] + play_indicator + PLAY LED Deck B + 0.5 + 1 + 0x92 + 0x07 + 0x7f + 0x0 + + + + [Channel2] + cue_indicator + CUE LED Deck B + 0.5 + 1 + 0x92 + 0x06 + 0x7f + 0x0 + + + + [Channel2] + sync_enabled + SYNC LED Deck B + 0.5 + 1 + 0x92 + 0x05 + 0x7f + 0x0 + + + + [Channel2] + sync_master + SYNC LED Deck B(SHIFT mode) + 0.5 + 1 + 0x94 + 0x05 + 0x7f + 0x0 + + + + + // LED LOOP + + + [Channel1] + beatloop_4_enabled + Loop In LED DA + 0.5 + 1 + 0x91 + 0x09 + 0x7f + 0x00 + + + + [Channel2] + beatloop_4_enabled + Loop In LED DB + 0.5 + 1 + 0x92 + 0x09 + 0x7f + 0x00 + + + + + // LED PFL buttons + + [Channel1] + pfl + PFL LED DECK A + 0.5 + 1 + 0x91 + 0x0C + 0x7f + 0x0 + + + + [Channel2] + pfl + PFL LED DECK B + 0.5 + 1 + 0x92 + 0x0C + 0x7f + 0x0 + + + // LED Browser button + + [Library] + MoveFocus + Browser LED (Green) + 0.5 + 1 + 0x90 + 0x05 + 0x10 + 0x05 + + + + + [Master] + maximize_library + Browser LED (BLUE) + 0.5 + 1 + 0x90 + 0x05 + 0x05 + 0x10 + + + // LED Assitant button + + [AutoDJ] + enabled + Auto DJ On + 0.5 + 1 + 0x90 + 0x03 + 0x7f + 0x0 + + + + + + // LED Beat Align (Track end warning) + + [Channel1] + end_of_track + Auto DJ On + 0.5 + 1 + 0x91 + 0x1C + 0x7f + 0x0 + + [Channel1] + end_of_track + Auto DJ On + 0.5 + 1 + 0x91 + 0x1D + 0x7f + 0x0 + + [Channel2] + end_of_track + Auto DJ On + 0.5 + 1 + 0x92 + 0x1C + 0x7f + 0x0 + + [Channel2] + end_of_track + Auto DJ On + 0.5 + 1 + 0x92 + 0x1D + 0x7f + 0x0 + + + + + + //LED HOT CUE (Normal Mode) + + [Channel1] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x96 + 0x00 + 0x7E + 0.5 + + + + [Channel1] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x96 + 0x01 + 0x7E + 0.5 + + + + [Channel1] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x96 + 0x02 + 0x7E + 0.5 + + + + [Channel1] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x96 + 0x03 + 0x7E + 0.5 + + + + + + [Channel2] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x97 + 0x00 + 0x7E + 0.5 + + + + [Channel2] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x97 + 0x01 + 0x7E + 0.5 + + + + [Channel2] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x97 + 0x02 + 0x7E + 0.5 + + + + [Channel2] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x97 + 0x03 + 0x7E + 0.5 + + + + + //LED HOT CUE (SHIFT Mode) + + [Channel1] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x96 + 0x08 + 0x7E + 0.5 + + + + [Channel1] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x96 + 0x09 + 0x7E + 0.5 + + + + [Channel1] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x96 + 0x0A + 0x7E + 0.5 + + + + [Channel1] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x96 + 0x0B + 0x7E + 0.5 + + + + + [Channel2] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x97 + 0x08 + 0x7E + 0.5 + + + + [Channel2] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x97 + 0x09 + 0x7E + 0.5 + + + + [Channel2] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x97 + 0x0A + 0x7E + 0.5 + + + + [Channel2] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x97 + 0x0B + 0x7E + 0.5 + + + + + //LED Roll + + + [Channel1] + beatlooproll_1_activate + Loop 1 Beat (Pad 1) + 0x96 + 0x10 + 0x7F + 0.5 + + + + [Channel1] + beatlooproll_2_activate + Loop 2 Beat (Pad 2) + 0x96 + 0x11 + 0x7F + 0.5 + + + + [Channel1] + beatlooproll_4_activate + Loop 4 Beat (Pad 3) + 0x96 + 0x12 + 0x7F + 0.5 + + + + + [Channel1] + beatlooproll_8_activate + Loop 8 Beat (Pad 4) + 0x96 + 0x13 + 0x7F + 0.5 + + + + + + [Channel2] + beatlooproll_1_activate + Loop 1 Beat (Pad 1) + 0x97 + 0x10 + 0x7F + 0.5 + + + + [Channel2] + beatlooproll_2_activate + Loop 2 Beat (Pad 2) + 0x97 + 0x11 + 0x7F + 0.5 + + + + [Channel2] + beatlooproll_4_activate + Loop 4 Beat (Pad 3) + 0x97 + 0x12 + 0x7F + 0.5 + + + + + [Channel2] + beatlooproll_8_activate + Loop 8 Beat (Pad 4) + 0x97 + 0x13 + 0x7F + 0.5 + + + // FX + + + [EffectRack1_EffectUnit1_Effect1] + enabled + (Pad 1) + 0x96 + 0x28 + 0x7F + 0.5 + + + + [EffectRack1_EffectUnit1_Effect2] + enabled + (Pad 2) + 0x96 + 0x29 + 0x7F + 0.5 + + + + [EffectRack1_EffectUnit1_Effect3] + enabled + (Pad 3) + 0x96 + 0x2A + 0x7F + 0.5 + + + + [EffectRack1_EffectUnit1] + group_[Channel1]_enable + (Pad 4) + 0x96 + 0x2B + 0x7F + 0.5 + + + + [EffectRack1_EffectUnit2_Effect1] + enabled + (Pad 1) + 0x97 + 0x28 + 0x7F + 0.5 + + + + [EffectRack1_EffectUnit2_Effect2] + enabled + (Pad 2) + 0x97 + 0x29 + 0x7F + 0.5 + + + + [EffectRack1_EffectUnit2_Effect3] + enabled + (Pad 3) + 0x97 + 0x2A + 0x7F + 0.5 + + + + [EffectRack1_EffectUnit2] + group_[Channel2]_enable + (Pad 4) + 0x97 + 0x2B + 0x7F + 0.5 + + + ////LED SAMPLE + + [Sampler1] + play_indicator + (Pad 1 DECK A) + 0x96 + 0x30 + 0x7F + 0.5 + + + + + [Sampler2] + play_indicator + (Pad 2 DECK A) + 0x96 + 0x31 + 0x7F + 0.5 + + + + + [Sampler3] + play_indicator + (Pad 3 DECK A) + 0x96 + 0x32 + 0x7F + 0.5 + + + + + [Sampler4] + play_indicator + (Pad 4 DECK A) + 0x96 + 0x33 + 0x7F + 0.5 + + + + + [Sampler5] + play_indicator + (Pad 5 DECK B) + 0x97 + 0x30 + 0x7F + 0.5 + + + + + [Sampler6] + play_indicator + (Pad 6 DECK B) + 0x97 + 0x31 + 0x7F + 0.5 + + + + + [Sampler7] + play_indicator + (Pad 7 DECK B) + 0x97 + 0x32 + 0x7F + 0.5 + + + + + [Sampler8] + play_indicator + (Pad 4 DECK B) + 0x97 + 0x33 + 0x7F + 0.5 + + + + + + + \ 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 - - [Channel1] - play_indicator - PLAY LED Deck A - 0.5 - 1 - 0x91 - 0x07 - 0x7f - 0x0 - - - - [Channel1] - cue_indicator - CUE LED Deck A - 0.5 - 1 - 0x91 - 0x06 - 0x7f - 0x0 - - - - [Channel1] - start_play - CUE LED Deck A(SHIFT MODE) - 0.5 - 1 - 0x94 - 0x06 - 0x7f - 0x0 - - - - [Channel1] - sync_enabled - SYNC LED Deck A - 0.5 - 1 - 0x91 - 0x05 - 0x7f - 0x0 - - - - [Channel1] - sync_master - SYNC LED Deck A(SHIFT mode) - 0.5 - 1 - 0x93 - 0x05 - 0x7f - 0x0 - - - - - [Channel2] - play_indicator - PLAY LED Deck B - 0.5 - 1 - 0x92 - 0x07 - 0x7f - 0x0 - - - - [Channel2] - cue_indicator - CUE LED Deck B - 0.5 - 1 - 0x92 - 0x06 - 0x7f - 0x0 - - - - [Channel2] - sync_enabled - SYNC LED Deck B - 0.5 - 1 - 0x92 - 0x05 - 0x7f - 0x0 - - - - [Channel2] - sync_master - SYNC LED Deck B(SHIFT mode) - 0.5 - 1 - 0x94 - 0x05 - 0x7f - 0x0 - - - - - // LED LOOP - - - [Channel1] - beatloop_4_enabled - Loop In LED DA - 0.5 - 1 - 0x91 - 0x09 - 0x7f - 0x00 - - - - [Channel2] - beatloop_4_enabled - Loop In LED DB - 0.5 - 1 - 0x92 - 0x09 - 0x7f - 0x00 - - - - - // LED PFL buttons - - [Channel1] - pfl - PFL LED DECK A - 0.5 - 1 - 0x91 - 0x0C - 0x7f - 0x0 - - - - [Channel2] - pfl - PFL LED DECK B - 0.5 - 1 - 0x92 - 0x0C - 0x7f - 0x0 - - - // LED Browser button - - [Library] - MoveFocus - Browser LED (Green) - 0.5 - 1 - 0x90 - 0x05 - 0x10 - 0x05 - - - - - [Master] - maximize_library - Browser LED (BLUE) - 0.5 - 1 - 0x90 - 0x05 - 0x05 - 0x10 - - - // LED Assitant button - - [AutoDJ] - enabled - Auto DJ On - 0.5 - 1 - 0x90 - 0x03 - 0x7f - 0x0 - - - - - - // LED Beat Align (Track end warning) - - [Channel1] - end_of_track - Auto DJ On - 0.5 - 1 - 0x91 - 0x1C - 0x7f - 0x0 - - [Channel1] - end_of_track - Auto DJ On - 0.5 - 1 - 0x91 - 0x1D - 0x7f - 0x0 - - [Channel2] - end_of_track - Auto DJ On - 0.5 - 1 - 0x92 - 0x1C - 0x7f - 0x0 - - [Channel2] - end_of_track - Auto DJ On - 0.5 - 1 - 0x92 - 0x1D - 0x7f - 0x0 - - - - - - //LED HOT CUE (Normal Mode) - - [Channel1] - hotcue_1_enabled - Hotcue 1 (Pad 1) - 0x96 - 0x00 - 0x7E - 0.5 - - - - [Channel1] - hotcue_2_enabled - Hotcue 2 (Pad 2) - 0x96 - 0x01 - 0x7E - 0.5 - - - - [Channel1] - hotcue_3_enabled - Hotcue 3 (Pad 3) - 0x96 - 0x02 - 0x7E - 0.5 - - - - [Channel1] - hotcue_4_enabled - Hotcue 4 (Pad 4) - 0x96 - 0x03 - 0x7E - 0.5 - - - - - - [Channel2] - hotcue_1_enabled - Hotcue 1 (Pad 1) - 0x97 - 0x00 - 0x7E - 0.5 - - - - [Channel2] - hotcue_2_enabled - Hotcue 2 (Pad 2) - 0x97 - 0x01 - 0x7E - 0.5 - - - - [Channel2] - hotcue_3_enabled - Hotcue 3 (Pad 3) - 0x97 - 0x02 - 0x7E - 0.5 - - - - [Channel2] - hotcue_4_enabled - Hotcue 4 (Pad 4) - 0x97 - 0x03 - 0x7E - 0.5 - - - - - //LED HOT CUE (SHIFT Mode) - - [Channel1] - hotcue_1_enabled - Hotcue 1 (Pad 1) - 0x96 - 0x08 - 0x7E - 0.5 - - - - [Channel1] - hotcue_2_enabled - Hotcue 2 (Pad 2) - 0x96 - 0x09 - 0x7E - 0.5 - - - - [Channel1] - hotcue_3_enabled - Hotcue 3 (Pad 3) - 0x96 - 0x0A - 0x7E - 0.5 - - - - [Channel1] - hotcue_4_enabled - Hotcue 4 (Pad 4) - 0x96 - 0x0B - 0x7E - 0.5 - - - - - [Channel2] - hotcue_1_enabled - Hotcue 1 (Pad 1) - 0x97 - 0x08 - 0x7E - 0.5 - - - - [Channel2] - hotcue_2_enabled - Hotcue 2 (Pad 2) - 0x97 - 0x09 - 0x7E - 0.5 - - - - [Channel2] - hotcue_3_enabled - Hotcue 3 (Pad 3) - 0x97 - 0x0A - 0x7E - 0.5 - - - - [Channel2] - hotcue_4_enabled - Hotcue 4 (Pad 4) - 0x97 - 0x0B - 0x7E - 0.5 - - - - - //LED Roll - - - [Channel1] - beatlooproll_1_activate - Loop 1 Beat (Pad 1) - 0x96 - 0x10 - 0x7F - 0.5 - - - - [Channel1] - beatlooproll_2_activate - Loop 2 Beat (Pad 2) - 0x96 - 0x11 - 0x7F - 0.5 - - - - [Channel1] - beatlooproll_4_activate - Loop 4 Beat (Pad 3) - 0x96 - 0x12 - 0x7F - 0.5 - - - - - [Channel1] - beatlooproll_8_activate - Loop 8 Beat (Pad 4) - 0x96 - 0x13 - 0x7F - 0.5 - - - - - - [Channel2] - beatlooproll_1_activate - Loop 1 Beat (Pad 1) - 0x97 - 0x10 - 0x7F - 0.5 - - - - [Channel2] - beatlooproll_2_activate - Loop 2 Beat (Pad 2) - 0x97 - 0x11 - 0x7F - 0.5 - - - - [Channel2] - beatlooproll_4_activate - Loop 4 Beat (Pad 3) - 0x97 - 0x12 - 0x7F - 0.5 - - - - - [Channel2] - beatlooproll_8_activate - Loop 8 Beat (Pad 4) - 0x97 - 0x13 - 0x7F - 0.5 - - - // FX - - - [EffectRack1_EffectUnit1_Effect1] - enabled - (Pad 1) - 0x96 - 0x28 - 0x7F - 0.5 - - - - [EffectRack1_EffectUnit1_Effect2] - enabled - (Pad 2) - 0x96 - 0x29 - 0x7F - 0.5 - - - - [EffectRack1_EffectUnit1_Effect3] - enabled - (Pad 3) - 0x96 - 0x2A - 0x7F - 0.5 - - - - [EffectRack1_EffectUnit1] - group_[Channel1]_enable - (Pad 4) - 0x96 - 0x2B - 0x7F - 0.5 - - - - [EffectRack1_EffectUnit2_Effect1] - enabled - (Pad 1) - 0x97 - 0x28 - 0x7F - 0.5 - - - - [EffectRack1_EffectUnit2_Effect2] - enabled - (Pad 2) - 0x97 - 0x29 - 0x7F - 0.5 - - - - [EffectRack1_EffectUnit2_Effect3] - enabled - (Pad 3) - 0x97 - 0x2A - 0x7F - 0.5 - - - - [EffectRack1_EffectUnit2] - group_[Channel2]_enable - (Pad 4) - 0x97 - 0x2B - 0x7F - 0.5 - - - ////LED SAMPLE - - [Sampler1] - play_indicator - (Pad 1 DECK A) - 0x96 - 0x30 - 0x7F - 0.5 - - - - - [Sampler2] - play_indicator - (Pad 2 DECK A) - 0x96 - 0x31 - 0x7F - 0.5 - - - - - [Sampler3] - play_indicator - (Pad 3 DECK A) - 0x96 - 0x32 - 0x7F - 0.5 - - - - - [Sampler4] - play_indicator - (Pad 4 DECK A) - 0x96 - 0x33 - 0x7F - 0.5 - - - - - [Sampler5] - play_indicator - (Pad 5 DECK B) - 0x97 - 0x30 - 0x7F - 0.5 - - - - - [Sampler6] - play_indicator - (Pad 6 DECK B) - 0x97 - 0x31 - 0x7F - 0.5 - - - - - [Sampler7] - play_indicator - (Pad 7 DECK B) - 0x97 - 0x32 - 0x7F - 0.5 - - - - - [Sampler8] - play_indicator - (Pad 4 DECK B) - 0x97 - 0x33 - 0x7F - 0.5 - - - - - - + + + + //LED Transport + + [Channel1] + play_indicator + PLAY LED Deck A + 0.5 + 1 + 0x91 + 0x07 + 0x7f + 0x0 + + + [Channel1] + cue_indicator + CUE LED Deck A + 0.5 + 1 + 0x91 + 0x06 + 0x7f + 0x0 + + + [Channel1] + start_play + CUE LED Deck A(SHIFT MODE) + 0.5 + 1 + 0x94 + 0x06 + 0x7f + 0x0 + + + [Channel1] + sync_enabled + SYNC LED Deck A + 0.5 + 1 + 0x91 + 0x05 + 0x7f + 0x0 + + + [Channel1] + sync_master + SYNC LED Deck A(SHIFT mode) + 0.5 + 1 + 0x93 + 0x05 + 0x7f + 0x0 + + + [Channel2] + play_indicator + PLAY LED Deck B + 0.5 + 1 + 0x92 + 0x07 + 0x7f + 0x0 + + + [Channel2] + cue_indicator + CUE LED Deck B + 0.5 + 1 + 0x92 + 0x06 + 0x7f + 0x0 + + + [Channel2] + sync_enabled + SYNC LED Deck B + 0.5 + 1 + 0x92 + 0x05 + 0x7f + 0x0 + + + [Channel2] + sync_master + SYNC LED Deck B(SHIFT mode) + 0.5 + 1 + 0x94 + 0x05 + 0x7f + 0x0 + + // LED LOOP + + [Channel1] + beatloop_4_enabled + Loop In LED DA + 0.5 + 1 + 0x91 + 0x09 + 0x7f + 0x00 + + + [Channel2] + beatloop_4_enabled + Loop In LED DB + 0.5 + 1 + 0x92 + 0x09 + 0x7f + 0x00 + + // LED PFL buttons + + [Channel1] + pfl + PFL LED DECK A + 0.5 + 1 + 0x91 + 0x0C + 0x7f + 0x0 + + + [Channel2] + pfl + PFL LED DECK B + 0.5 + 1 + 0x92 + 0x0C + 0x7f + 0x0 + + // LED Browser button + + [Library] + MoveFocus + Browser LED (Green) + 0.5 + 1 + 0x90 + 0x05 + 0x10 + 0x05 + + + [Master] + maximize_library + Browser LED (BLUE) + 0.5 + 1 + 0x90 + 0x05 + 0x05 + 0x10 + + // LED Assitant button + + [AutoDJ] + enabled + Auto DJ On + 0.5 + 1 + 0x90 + 0x03 + 0x7f + 0x0 + + // LED Beat Align (Track end warning) + + [Channel1] + end_of_track + Auto DJ On + 0.5 + 1 + 0x91 + 0x1C + 0x7f + 0x0 + + + [Channel1] + end_of_track + Auto DJ On + 0.5 + 1 + 0x91 + 0x1D + 0x7f + 0x0 + + + [Channel2] + end_of_track + Auto DJ On + 0.5 + 1 + 0x92 + 0x1C + 0x7f + 0x0 + + + [Channel2] + end_of_track + Auto DJ On + 0.5 + 1 + 0x92 + 0x1D + 0x7f + 0x0 + + //LED HOT CUE (Normal Mode) + + [Channel1] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x96 + 0x00 + 0x7E + 0.5 + + + [Channel1] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x96 + 0x01 + 0x7E + 0.5 + + + [Channel1] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x96 + 0x02 + 0x7E + 0.5 + + + [Channel1] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x96 + 0x03 + 0x7E + 0.5 + + + [Channel2] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x97 + 0x00 + 0x7E + 0.5 + + + [Channel2] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x97 + 0x01 + 0x7E + 0.5 + + + [Channel2] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x97 + 0x02 + 0x7E + 0.5 + + + [Channel2] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x97 + 0x03 + 0x7E + 0.5 + + //LED HOT CUE (SHIFT Mode) + + [Channel1] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x96 + 0x08 + 0x7E + 0.5 + + + [Channel1] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x96 + 0x09 + 0x7E + 0.5 + + + [Channel1] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x96 + 0x0A + 0x7E + 0.5 + + + [Channel1] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x96 + 0x0B + 0x7E + 0.5 + + + [Channel2] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x97 + 0x08 + 0x7E + 0.5 + + + [Channel2] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x97 + 0x09 + 0x7E + 0.5 + + + [Channel2] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x97 + 0x0A + 0x7E + 0.5 + + + [Channel2] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x97 + 0x0B + 0x7E + 0.5 + + //LED Roll + + [Channel1] + beatlooproll_1_activate + Loop 1 Beat (Pad 1) + 0x96 + 0x10 + 0x7F + 0.5 + + + [Channel1] + beatlooproll_2_activate + Loop 2 Beat (Pad 2) + 0x96 + 0x11 + 0x7F + 0.5 + + + [Channel1] + beatlooproll_4_activate + Loop 4 Beat (Pad 3) + 0x96 + 0x12 + 0x7F + 0.5 + + + [Channel1] + beatlooproll_8_activate + Loop 8 Beat (Pad 4) + 0x96 + 0x13 + 0x7F + 0.5 + + + [Channel2] + beatlooproll_1_activate + Loop 1 Beat (Pad 1) + 0x97 + 0x10 + 0x7F + 0.5 + + + [Channel2] + beatlooproll_2_activate + Loop 2 Beat (Pad 2) + 0x97 + 0x11 + 0x7F + 0.5 + + + [Channel2] + beatlooproll_4_activate + Loop 4 Beat (Pad 3) + 0x97 + 0x12 + 0x7F + 0.5 + + + [Channel2] + beatlooproll_8_activate + Loop 8 Beat (Pad 4) + 0x97 + 0x13 + 0x7F + 0.5 + + // FX + + [EffectRack1_EffectUnit1_Effect1] + enabled + (Pad 1) + 0x96 + 0x28 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit1_Effect2] + enabled + (Pad 2) + 0x96 + 0x29 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit1_Effect3] + enabled + (Pad 3) + 0x96 + 0x2A + 0x7F + 0.5 + + + [EffectRack1_EffectUnit1] + group_[Channel1]_enable + (Pad 4) + 0x96 + 0x2B + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2_Effect1] + enabled + (Pad 1) + 0x97 + 0x28 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2_Effect2] + enabled + (Pad 2) + 0x97 + 0x29 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2_Effect3] + enabled + (Pad 3) + 0x97 + 0x2A + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2] + group_[Channel2]_enable + (Pad 4) + 0x97 + 0x2B + 0x7F + 0.5 + + ////LED SAMPLE + + [Sampler1] + play_indicator + (Pad 1 DECK A) + 0x96 + 0x30 + 0x7F + 0.5 + + + [Sampler2] + play_indicator + (Pad 2 DECK A) + 0x96 + 0x31 + 0x7F + 0.5 + + + [Sampler3] + play_indicator + (Pad 3 DECK A) + 0x96 + 0x32 + 0x7F + 0.5 + + + [Sampler4] + play_indicator + (Pad 4 DECK A) + 0x96 + 0x33 + 0x7F + 0.5 + + + [Sampler5] + play_indicator + (Pad 5 DECK B) + 0x97 + 0x30 + 0x7F + 0.5 + + + [Sampler6] + play_indicator + (Pad 6 DECK B) + 0x97 + 0x31 + 0x7F + 0.5 + + + [Sampler7] + play_indicator + (Pad 7 DECK B) + 0x97 + 0x32 + 0x7F + 0.5 + + + [Sampler8] + play_indicator + (Pad 4 DECK B) + 0x97 + 0x33 + 0x7F + 0.5 + + + \ 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 + + + + + + + + + + [Channel1] + play_indicator + PLAY LED Deck A + 0.5 + 1 + 0x91 + 0x07 + 0x7f + 0x0 + + + [Channel1] + cue_indicator + CUE LED Deck A + 0.5 + 1 + 0x91 + 0x06 + 0x7f + 0x0 + + + [Channel1] + start_play + CUE LED Deck A(SHIFT MODE) + 0.5 + 1 + 0x94 + 0x06 + 0x7f + 0x0 + + + [Channel1] + sync_enabled + SYNC LED Deck A + 0.5 + 1 + 0x91 + 0x05 + 0x7f + 0x0 + + + [Channel1] + sync_master + SYNC LED Deck A(SHIFT mode) + 0.5 + 1 + 0x93 + 0x05 + 0x7f + 0x0 + + + [Channel2] + play_indicator + PLAY LED Deck B + 0.5 + 1 + 0x92 + 0x07 + 0x7f + 0x0 + + + [Channel2] + cue_indicator + CUE LED Deck B + 0.5 + 1 + 0x92 + 0x06 + 0x7f + 0x0 + + + [Channel2] + sync_enabled + SYNC LED Deck B + 0.5 + 1 + 0x92 + 0x05 + 0x7f + 0x0 + + + [Channel2] + sync_master + SYNC LED Deck B(SHIFT mode) + 0.5 + 1 + 0x94 + 0x05 + 0x7f + 0x0 + + + + [Channel1] + beatloop_4_enabled + Loop In LED DA + 0.5 + 1 + 0x91 + 0x09 + 0x7f + 0x00 + + + [Channel2] + beatloop_4_enabled + Loop In LED DB + 0.5 + 1 + 0x92 + 0x09 + 0x7f + 0x00 + + + + [Channel1] + pfl + PFL LED DECK A + 0.5 + 1 + 0x91 + 0x0C + 0x7f + 0x0 + + + [Channel2] + pfl + PFL LED DECK B + 0.5 + 1 + 0x92 + 0x0C + 0x7f + 0x0 + + + + [Library] + MoveFocus + Browser LED (BLUE) + 0.5 + 1 + 0x90 + 0x04 + 0x05 + 0x07 + + + [Master] + maximize_library + Browser LED (GREEN) + 0.5 + 1 + 0x90 + 0x04 + 0x07 + 0x05 + + + + [AutoDJ] + enabled + Auto DJ On + 0.5 + 1 + 0x90 + 0x03 + 0x7f + 0x0 + + + + [Channel1] + end_of_track + Auto DJ On + 0.5 + 1 + 0x91 + 0x1C + 0x7f + 0x0 + + + [Channel1] + end_of_track + Auto DJ On + 0.5 + 1 + 0x91 + 0x1D + 0x7f + 0x0 + + + [Channel2] + end_of_track + Auto DJ On + 0.5 + 1 + 0x92 + 0x1C + 0x7f + 0x0 + + + [Channel2] + end_of_track + Auto DJ On + 0.5 + 1 + 0x92 + 0x1D + 0x7f + 0x0 + + + + [Channel1] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x96 + 0x00 + 0x7E + 0.5 + + + [Channel1] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x96 + 0x01 + 0x7E + 0.5 + + + [Channel1] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x96 + 0x02 + 0x7E + 0.5 + + + [Channel1] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x96 + 0x03 + 0x7E + 0.5 + + + [Channel2] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x97 + 0x00 + 0x7E + 0.5 + + + [Channel2] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x97 + 0x01 + 0x7E + 0.5 + + + [Channel2] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x97 + 0x02 + 0x7E + 0.5 + + + [Channel2] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x97 + 0x03 + 0x7E + 0.5 + + + + [Channel1] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x96 + 0x08 + 0x7E + 0.5 + + + [Channel1] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x96 + 0x09 + 0x7E + 0.5 + + + [Channel1] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x96 + 0x0A + 0x7E + 0.5 + + + [Channel1] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x96 + 0x0B + 0x7E + 0.5 + + + [Channel2] + hotcue_1_enabled + Hotcue 1 (Pad 1) + 0x97 + 0x08 + 0x7E + 0.5 + + + [Channel2] + hotcue_2_enabled + Hotcue 2 (Pad 2) + 0x97 + 0x09 + 0x7E + 0.5 + + + [Channel2] + hotcue_3_enabled + Hotcue 3 (Pad 3) + 0x97 + 0x0A + 0x7E + 0.5 + + + [Channel2] + hotcue_4_enabled + Hotcue 4 (Pad 4) + 0x97 + 0x0B + 0x7E + 0.5 + + + + [Channel1] + beatlooproll_1_activate + Loop 1 Beat (Pad 1) + 0x96 + 0x10 + 0x7F + 0.5 + + + [Channel1] + beatlooproll_2_activate + Loop 2 Beat (Pad 2) + 0x96 + 0x11 + 0x7F + 0.5 + + + [Channel1] + beatlooproll_4_activate + Loop 4 Beat (Pad 3) + 0x96 + 0x12 + 0x7F + 0.5 + + + [Channel1] + beatlooproll_8_activate + Loop 8 Beat (Pad 4) + 0x96 + 0x13 + 0x7F + 0.5 + + + [Channel2] + beatlooproll_1_activate + Loop 1 Beat (Pad 1) + 0x97 + 0x10 + 0x7F + 0.5 + + + [Channel2] + beatlooproll_2_activate + Loop 2 Beat (Pad 2) + 0x97 + 0x11 + 0x7F + 0.5 + + + [Channel2] + beatlooproll_4_activate + Loop 4 Beat (Pad 3) + 0x97 + 0x12 + 0x7F + 0.5 + + + [Channel2] + beatlooproll_8_activate + Loop 8 Beat (Pad 4) + 0x97 + 0x13 + 0x7F + 0.5 + + + + [EffectRack1_EffectUnit1_Effect1] + enabled + (Pad 1) + 0x96 + 0x28 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit1_Effect2] + enabled + (Pad 2) + 0x96 + 0x29 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit1_Effect3] + enabled + (Pad 3) + 0x96 + 0x2A + 0x7F + 0.5 + + + [EffectRack1_EffectUnit1] + group_[Channel1]_enable + (Pad 4) + 0x96 + 0x2B + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2_Effect1] + enabled + (Pad 1) + 0x97 + 0x28 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2_Effect2] + enabled + (Pad 2) + 0x97 + 0x29 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2_Effect3] + enabled + (Pad 3) + 0x97 + 0x2A + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2] + group_[Channel2]_enable + (Pad 4) + 0x97 + 0x2B + 0x7F + 0.5 + + + + [Sampler1] + play_indicator + (Pad 1 DECK A) + 0x96 + 0x30 + 0x7F + 0.5 + + + [Sampler2] + play_indicator + (Pad 2 DECK A) + 0x96 + 0x31 + 0x7F + 0.5 + + + [Sampler3] + play_indicator + (Pad 3 DECK A) + 0x96 + 0x32 + 0x7F + 0.5 + + + [Sampler4] + play_indicator + (Pad 4 DECK A) + 0x96 + 0x33 + 0x7F + 0.5 + + + [Sampler5] + play_indicator + (Pad 5 DECK B) + 0x97 + 0x30 + 0x7F + 0.5 + + + [Sampler6] + play_indicator + (Pad 6 DECK B) + 0x97 + 0x31 + 0x7F + 0.5 + + + [Sampler7] + play_indicator + (Pad 7 DECK B) + 0x97 + 0x32 + 0x7F + 0.5 + + + [Sampler8] + play_indicator + (Pad 4 DECK B) + 0x97 + 0x33 + 0x7F + 0.5 + + + + \ 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 - - [Channel1] - play_indicator - PLAY LED Deck A - 0.5 - 1 - 0x91 - 0x07 - 0x7f - 0x0 - - - [Channel1] - cue_indicator - CUE LED Deck A - 0.5 - 1 - 0x91 - 0x06 - 0x7f - 0x0 - - - [Channel1] - start_play - CUE LED Deck A(SHIFT MODE) - 0.5 - 1 - 0x94 - 0x06 - 0x7f - 0x0 - - - [Channel1] - sync_enabled - SYNC LED Deck A - 0.5 - 1 - 0x91 - 0x05 - 0x7f - 0x0 - - - [Channel1] - sync_master - SYNC LED Deck A(SHIFT mode) - 0.5 - 1 - 0x93 - 0x05 - 0x7f - 0x0 - - - [Channel2] - play_indicator - PLAY LED Deck B - 0.5 - 1 - 0x92 - 0x07 - 0x7f - 0x0 - - - [Channel2] - cue_indicator - CUE LED Deck B - 0.5 - 1 - 0x92 - 0x06 - 0x7f - 0x0 - - - [Channel2] - sync_enabled - SYNC LED Deck B - 0.5 - 1 - 0x92 - 0x05 - 0x7f - 0x0 - - - [Channel2] - sync_master - SYNC LED Deck B(SHIFT mode) - 0.5 - 1 - 0x94 - 0x05 - 0x7f - 0x0 - - // LED LOOP - - [Channel1] - beatloop_4_enabled - Loop In LED DA - 0.5 - 1 - 0x91 - 0x09 - 0x7f - 0x00 - - - [Channel2] - beatloop_4_enabled - Loop In LED DB - 0.5 - 1 - 0x92 - 0x09 - 0x7f - 0x00 - - // LED PFL buttons - - [Channel1] - pfl - PFL LED DECK A - 0.5 - 1 - 0x91 - 0x0C - 0x7f - 0x0 - - - [Channel2] - pfl - PFL LED DECK B - 0.5 - 1 - 0x92 - 0x0C - 0x7f - 0x0 - - // LED Browser button - - [Library] - MoveFocus - Browser LED (Green) - 0.5 - 1 - 0x90 - 0x05 - 0x10 - 0x05 - - - [Master] - maximize_library - Browser LED (BLUE) - 0.5 - 1 - 0x90 - 0x05 - 0x05 - 0x10 - - // LED Assitant button - - [AutoDJ] - enabled - Auto DJ On - 0.5 - 1 - 0x90 - 0x03 - 0x7f - 0x0 - - // LED Beat Align (Track end warning) - - [Channel1] - end_of_track - Auto DJ On - 0.5 - 1 - 0x91 - 0x1C - 0x7f - 0x0 - - - [Channel1] - end_of_track - Auto DJ On - 0.5 - 1 - 0x91 - 0x1D - 0x7f - 0x0 - - - [Channel2] - end_of_track - Auto DJ On - 0.5 - 1 - 0x92 - 0x1C - 0x7f - 0x0 - - - [Channel2] - end_of_track - Auto DJ On - 0.5 - 1 - 0x92 - 0x1D - 0x7f - 0x0 - - //LED HOT CUE (Normal Mode) - - [Channel1] - hotcue_1_enabled - Hotcue 1 (Pad 1) - 0x96 - 0x00 - 0x7E - 0.5 - - - [Channel1] - hotcue_2_enabled - Hotcue 2 (Pad 2) - 0x96 - 0x01 - 0x7E - 0.5 - - - [Channel1] - hotcue_3_enabled - Hotcue 3 (Pad 3) - 0x96 - 0x02 - 0x7E - 0.5 - - - [Channel1] - hotcue_4_enabled - Hotcue 4 (Pad 4) - 0x96 - 0x03 - 0x7E - 0.5 - - - [Channel2] - hotcue_1_enabled - Hotcue 1 (Pad 1) - 0x97 - 0x00 - 0x7E - 0.5 - - - [Channel2] - hotcue_2_enabled - Hotcue 2 (Pad 2) - 0x97 - 0x01 - 0x7E - 0.5 - - - [Channel2] - hotcue_3_enabled - Hotcue 3 (Pad 3) - 0x97 - 0x02 - 0x7E - 0.5 - - - [Channel2] - hotcue_4_enabled - Hotcue 4 (Pad 4) - 0x97 - 0x03 - 0x7E - 0.5 - - //LED HOT CUE (SHIFT Mode) - - [Channel1] - hotcue_1_enabled - Hotcue 1 (Pad 1) - 0x96 - 0x08 - 0x7E - 0.5 - - - [Channel1] - hotcue_2_enabled - Hotcue 2 (Pad 2) - 0x96 - 0x09 - 0x7E - 0.5 - - - [Channel1] - hotcue_3_enabled - Hotcue 3 (Pad 3) - 0x96 - 0x0A - 0x7E - 0.5 - - - [Channel1] - hotcue_4_enabled - Hotcue 4 (Pad 4) - 0x96 - 0x0B - 0x7E - 0.5 - - - [Channel2] - hotcue_1_enabled - Hotcue 1 (Pad 1) - 0x97 - 0x08 - 0x7E - 0.5 - - - [Channel2] - hotcue_2_enabled - Hotcue 2 (Pad 2) - 0x97 - 0x09 - 0x7E - 0.5 - - - [Channel2] - hotcue_3_enabled - Hotcue 3 (Pad 3) - 0x97 - 0x0A - 0x7E - 0.5 - - - [Channel2] - hotcue_4_enabled - Hotcue 4 (Pad 4) - 0x97 - 0x0B - 0x7E - 0.5 - - //LED Roll - - [Channel1] - beatlooproll_1_activate - Loop 1 Beat (Pad 1) - 0x96 - 0x10 - 0x7F - 0.5 - - - [Channel1] - beatlooproll_2_activate - Loop 2 Beat (Pad 2) - 0x96 - 0x11 - 0x7F - 0.5 - - - [Channel1] - beatlooproll_4_activate - Loop 4 Beat (Pad 3) - 0x96 - 0x12 - 0x7F - 0.5 - - - [Channel1] - beatlooproll_8_activate - Loop 8 Beat (Pad 4) - 0x96 - 0x13 - 0x7F - 0.5 - - - [Channel2] - beatlooproll_1_activate - Loop 1 Beat (Pad 1) - 0x97 - 0x10 - 0x7F - 0.5 - - - [Channel2] - beatlooproll_2_activate - Loop 2 Beat (Pad 2) - 0x97 - 0x11 - 0x7F - 0.5 - - - [Channel2] - beatlooproll_4_activate - Loop 4 Beat (Pad 3) - 0x97 - 0x12 - 0x7F - 0.5 - - - [Channel2] - beatlooproll_8_activate - Loop 8 Beat (Pad 4) - 0x97 - 0x13 - 0x7F - 0.5 - - // FX - - [EffectRack1_EffectUnit1_Effect1] - enabled - (Pad 1) - 0x96 - 0x28 - 0x7F - 0.5 - - - [EffectRack1_EffectUnit1_Effect2] - enabled - (Pad 2) - 0x96 - 0x29 - 0x7F - 0.5 - - - [EffectRack1_EffectUnit1_Effect3] - enabled - (Pad 3) - 0x96 - 0x2A - 0x7F - 0.5 - - - [EffectRack1_EffectUnit1] - group_[Channel1]_enable - (Pad 4) - 0x96 - 0x2B - 0x7F - 0.5 - - - [EffectRack1_EffectUnit2_Effect1] - enabled - (Pad 1) - 0x97 - 0x28 - 0x7F - 0.5 - - - [EffectRack1_EffectUnit2_Effect2] - enabled - (Pad 2) - 0x97 - 0x29 - 0x7F - 0.5 - - - [EffectRack1_EffectUnit2_Effect3] - enabled - (Pad 3) - 0x97 - 0x2A - 0x7F - 0.5 - - - [EffectRack1_EffectUnit2] - group_[Channel2]_enable - (Pad 4) - 0x97 - 0x2B - 0x7F - 0.5 - - ////LED SAMPLE - - [Sampler1] - play_indicator - (Pad 1 DECK A) - 0x96 - 0x30 - 0x7F - 0.5 - - - [Sampler2] - play_indicator - (Pad 2 DECK A) - 0x96 - 0x31 - 0x7F - 0.5 - - - [Sampler3] - play_indicator - (Pad 3 DECK A) - 0x96 - 0x32 - 0x7F - 0.5 - - - [Sampler4] - play_indicator - (Pad 4 DECK A) - 0x96 - 0x33 - 0x7F - 0.5 - - - [Sampler5] - play_indicator - (Pad 5 DECK B) - 0x97 - 0x30 - 0x7F - 0.5 - - - [Sampler6] - play_indicator - (Pad 6 DECK B) - 0x97 - 0x31 - 0x7F - 0.5 - - - [Sampler7] - play_indicator - (Pad 7 DECK B) - 0x97 - 0x32 - 0x7F - 0.5 - - - [Sampler8] - play_indicator - (Pad 4 DECK B) - 0x97 - 0x33 - 0x7F - 0.5 - - - - \ 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 + + + [EffectRack1_EffectUnit1_Effect2] + enabled + (Pad 2) + 0x96 + 0x21 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit1_Effect3] + enabled + (Pad 3) + 0x96 + 0x22 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit1] + group_[Channel1]_enable + (Pad 4) + 0x96 + 0x23 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit1_Effect1] + enabled + (Pad 1) + 0x96 0x28 0x7F 0.5 @@ -1533,6 +1651,42 @@ 0x2B 0x7F 0.5 + + + [EffectRack1_EffectUnit2_Effect1] + enabled + (Pad 1) + 0x97 + 0x20 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2_Effect2] + enabled + (Pad 2) + 0x97 + 0x21 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2_Effect3] + enabled + (Pad 3) + 0x97 + 0x22 + 0x7F + 0.5 + + + [EffectRack1_EffectUnit2] + group_[Channel2]_enable + (Pad 4) + 0x97 + 0x23 + 0x7F + 0.5 [EffectRack1_EffectUnit2_Effect1]