<?xml version="1.0" encoding="utf-8"?>
<MixxxMIDIPreset schemaVersion="1" mixxxVersion="1.8.0+">
    <info>
        <name>Hercules DJ Console MK4</name>
        <author>Dj kork</author>
        <description>This is a complete mapping for Hercules DJ Console mk4 controller. Requires scripting.</description>
        <forums>http://www.mixxx.org/forums/viewtopic.php?f=7&amp;t=3023</forums>
    </info>
    <controller id="Hercules DJ Control Mk4 gain v3" port="">
        <scriptfiles>
            <file filename="Hercules-DJ-Console-Mk4-scripts.js" functionprefix="HerculesMk4"/>
        </scriptfiles>
            <controls>
                    <control>
                        <status>0xb0</status>
                        <midino>0x3D</midino>
                        <group>[Master]</group>
                        <key>headMix</key>
                        <options>
                            <normal/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x2D</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.scratch</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x01</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x02</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x03</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x04</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x05</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x06</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x07</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x08</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x15</midino>
                        <group>[Channel2]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x16</midino>
                        <group>[Channel2]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x17</midino>
                        <group>[Channel2]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x18</midino>
                        <group>[Channel2]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x19</midino>
                        <group>[Channel2]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x1A</midino>
                        <group>[Channel2]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x1B</midino>
                        <group>[Channel2]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0x90</status>
                        <midino>0x1C</midino>
                        <group>[Channel2]</group>
                        <key>HerculesMk4.keyButton</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0xB0</status>
                        <midino>0x30</midino>
                        <group>[Channel1]</group>
                        <key>HerculesMk4.jogWheel</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                        <status>0xB0</status>
                        <midino>0x31</midino>
                        <group>[Channel2]</group>
                        <key>HerculesMk4.jogWheel</key>
                        <options>
                            <Script-Binding/>
                        </options>
                    </control>
                    <control>
                    <status>0x90</status>
                    <midino>0x2B</midino>
                    <group>[Playlist]</group>
                    <key>HerculesMk4.scroll</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                    <control>
                    <status>0x90</status>
                    <midino>0x2C</midino>
                    <group>[Playlist]</group>
                    <key>HerculesMk4.scroll</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0xB0</status>
                    <midino>0x32</midino>
                    <group>[Channel1]</group>
                    <key>HerculesMk4.pitch</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0xB0</status>
                    <midino>0x33</midino>
                    <group>[Channel2]</group>
                    <key>HerculesMk4.pitch</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                    <control>
                    <status>0x90</status>
                    <midino>0x0B</midino>
                    <group>[Channel1]</group>
                    <key>HerculesMk4.pitchbend</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x1F</midino>
                    <group>[Channel2]</group>
                    <key>HerculesMk4.pitchbend</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                    <control>
                    <status>0x90</status>
                    <midino>0x0A</midino>
                    <group>[Channel1]</group>
                    <key>HerculesMk4.pitchbend</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x1E</midino>
                    <group>[Channel2]</group>
                    <key>HerculesMk4.pitchbend</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x34</midino>
                    <group>[Channel1]</group>
                    <key>volume</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x35</midino>
                    <group>[Channel1]</group>
                    <key>filterHigh</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0xd</midino>
                    <group>[Channel1]</group>
                    <key>fwd</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x36</midino>
                    <group>[Channel1]</group>
                    <key>filterMid</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0xe</midino>
                    <group>[Channel1]</group>
                    <key>HerculesMk4.cue</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x37</midino>
                    <group>[Channel1]</group>
                    <key>filterLow</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x38</midino>
                    <group>[Master]</group>
                    <key>crossfader</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x10</midino>
                    <group>[Channel1]</group>
                    <key>HerculesMk4.pfl</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x39</midino>
                    <group>[Channel2]</group>
                    <key>volume</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x3a</midino>
                    <group>[Channel2]</group>
                    <key>filterHigh</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x3b</midino>
                    <group>[Channel2]</group>
                    <key>filterMid</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0xb0</status>
                    <midino>0x3c</midino>
                    <group>[Channel2]</group>
                    <key>filterLow</key>
                    <options>
                        <normal/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0xc</midino>
                    <group>[Channel1]</group>
                    <key>back</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x22</midino>
                    <group>[Channel2]</group>
                    <key>HerculesMk4.cue</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                    <control>
                    <status>0x90</status>
                    <midino>0x12</midino>
                    <group>[Channel1]</group>
                    <key>HerculesMk4.sync</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x26</midino>
                    <group>[Channel2]</group>
                    <key>HerculesMk4.sync</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0xf</midino>
                    <group>[Channel1]</group>
                    <key>play</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x11</midino>
                    <group>[Channel1]</group>
                    <key>HerculesMk4.loadTrack</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                    <control>
                    <status>0x90</status>
                    <midino>0x25</midino>
                    <group>[Channel2]</group>
                    <key>HerculesMk4.loadTrack</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x13</midino>
                    <group>[Channel1]</group>
                    <key>flanger</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x21</midino>
                    <group>[Channel2]</group>
                    <key>fwd</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x23</midino>
                    <group>[Channel2]</group>
                    <key>play</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x20</midino>
                    <group>[Channel2]</group>
                    <key>back</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x24</midino>
                    <group>[Channel2]</group>
                    <key>HerculesMk4.pfl</key>
                    <options>
                        <Script-Binding/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x27</midino>
                    <group>[Channel2]</group>
                    <key>flanger</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x29</midino>
                    <group>[Playlist]</group>
                    <key>SelectPrevTrack</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                <control>
                    <status>0x90</status>
                    <midino>0x2a</midino>
                    <group>[Playlist]</group>
                    <key>SelectNextTrack</key>
                    <options>
                        <Button/>
                    </options>
                </control>
                </controls>

<!-- LEDs CONFIGURATION -->

                <outputs>
                    <output>
                        <group>[Channel1]</group>
                        <key>pfl</key>
                        <status>0x90</status>
                        <midino>0x10</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel2]</group>
                        <key>pfl</key>
                        <status>0x90</status>
                        <midino>0x24</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel1]</group>
                        <key>play</key>
                        <status>0x90</status>
                        <midino>0x0f</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel2]</group>
                        <key>play</key>
                        <status>0x90</status>
                        <midino>0x23</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel1]</group>
                        <key>flanger</key>
                        <status>0x90</status>
                        <midino>0x13</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel2]</group>
                        <key>flanger</key>
                        <status>0x90</status>
                        <midino>0x27</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel1]</group>
                        <key>hotcue_1_enabled</key>
                        <status>0x90</status>
                        <midino>0x05</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel1]</group>
                        <key>hotcue_2_enabled</key>
                        <status>0x90</status>
                        <midino>0x06</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel1]</group>
                        <key>hotcue_3_enabled</key>
                        <status>0x90</status>
                        <midino>0x07</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel1]</group>
                        <key>hotcue_4_enabled</key>
                        <status>0x90</status>
                        <midino>0x08</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel2]</group>
                        <key>hotcue_1_enabled</key>
                        <status>0x90</status>
                        <midino>0x19</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel2]</group>
                        <key>hotcue_2_enabled</key>
                        <status>0x90</status>
                        <midino>0x1A</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel2]</group>
                        <key>hotcue_3_enabled</key>
                        <status>0x90</status>
                        <midino>0x1B</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel2]</group>
                        <key>hotcue_4_enabled</key>
                        <status>0x90</status>
                        <midino>0x1C</midino>
                        <minimum>0.5</minimum>
                        <maximum>1</maximum>
                    </output>
                    <output>
                        <group>[Channel1]</group>
                        <key>playposition</key>
                        <status>0x90</status>
                        <midino>0x3F</midino>
                        <minimum>0.8</minimum>
                        <maximum>0.99</maximum>
                    </output>
                    <output>
                        <group>[Channel2]</group>
                        <key>playposition</key>
                        <status>0x90</status>
                        <midino>0x53</midino>
                        <minimum>0.8</minimum>
                        <maximum>0.99</maximum>
                    </output>
                </outputs>
            </controller>
        </MixxxMIDIPreset>
