<?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>
