<MixxxMIDIPreset mixxxVersion="1.10.0+" schemaVersion="1">
    <info>
		<name>Vestax VCI-400.midi.xml</name>
		<author>Tobias Rafreider</author>
		<description>Controller mapping for Vestax VCI-400</description>
	</info>

    <controller id="Vestax VCI-400">
        <scriptfiles>
            <file filename="Vestax-VCI-400-scripts.js" functionprefix="VestaxVCI400" />
         </scriptfiles>
        <controls>
        <!-- Vinyl control -->
             <control>
                <status>0x92</status>
                <midino>0x06</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.vinyl</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x06</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.vinyl</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x94</status>
                <midino>0x06</midino>
                <group>[Channel3]</group>
                <key>VestaxVCI400.vinyl</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x95</status>
                <midino>0x06</midino>
                <group>[Channel4]</group>
                <key>VestaxVCI400.vinyl</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>

            <!-- Deck Switch to control 4 decks -->
            <control>
                <status>0x92</status>
                <midino>0x22</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.deckSwitch</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0x23</midino>
                <group>[Channel3]</group>
                <key>VestaxVCI400.deckSwitch</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x22</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.deckSwitch</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x23</midino>
                <group>[Channel4]</group>
                <key>VestaxVCI400.deckSwitch</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            
<!-- HOT CUE ACTIVATE BUTTONS -->
            <control>
                <status>0x92</status>
                <midino>0xb</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.hotCue1Activate</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0xc</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.hotCue2Activate</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0xd</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.hotCue3Activate</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0xe</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.hotCue4Activate</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <!--Channel 2-->
            <control>
                <status>0x93</status>
                <midino>0xb</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.hotCue1Activate</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0xc</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.hotCue2Activate</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0xd</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.hotCue3Activate</key>
                <description></description>
               <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0xe</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.hotCue4Activate</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
<!-- HOT CUE DELETE BUTTON -->
            <control>
                <status>0x92</status>
                <midino>0x15</midino>
                <group>[Channel1]</group>
                <key>hotcue_1_clear</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0x16</midino>
                <group>[Channel1]</group>
                <key>hotcue_2_clear</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0x17</midino>
                <group>[Channel1]</group>
                <key>hotcue_3_clear</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0x18</midino>
                <group>[Channel1]</group>
                <key>hotcue_4_clear</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <!-- Channel 2-->           
            <control>
                <status>0x93</status>
                <midino>0x15</midino>
                <group>[Channel2]</group>
                <key>hotcue_1_clear</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x16</midino>
                <group>[Channel2]</group>
                <key>hotcue_2_clear</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x17</midino>
                <group>[Channel2]</group>
                <key>hotcue_3_clear</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x18</midino>
                <group>[Channel2]</group>
                <key>hotcue_4_clear</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <!-- END HOT CUE -->
            <control>
                <status>0xb3</status>
                <midino>0x12</midino>
                <group>[Channel1]</group>
                <key>flanger</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb3</status>
                <midino>0xc</midino>
                <group>[Channel2]</group>
                <key>pregain</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <!-- Play Buttons -->
            <control>
                <status>0x92</status>
                <midino>0x1e</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.play</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>

            <control>
                <status>0x93</status>
                <midino>0x1e</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.play</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x94</status>
                <midino>0x26</midino>
                <group>[Channel3]</group>
                <key>VestaxVCI400.play</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x95</status>
                <midino>0x24</midino>
                <group>[Channel4]</group>
                <key>VestaxVCI400.play</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
                  
             <!-- CUE buttons -->
             <control>
                <status>0x92</status>
                <midino>0x1d</midino>
                <group>[Channel1]</group>
                  <key>VestaxVCI400.cue</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x1d</midino>
                <group>[Channel2]</group>
                  <key>VestaxVCI400.cue</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x94</status>
                <midino>0x25</midino>
                <group>[Channel3]</group>
                  <key>VestaxVCI400.cue</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x95</status>
                <midino>0x23</midino>
                <group>[Channel4]</group>
                  <key>VestaxVCI400.cue</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <!-- Wheel Touch-->
            <control>
                <status>0x92</status>
                <midino>0x27</midino>
                <group>[Channel1]</group>
                  <key>VestaxVCI400.wheelTouch</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x27</midino>
                <group>[Channel2]</group>
                  <key>VestaxVCI400.wheelTouch</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x94</status>
                <midino>0x27</midino>
                <group>[Channel3]</group>
                  <key>VestaxVCI400.wheelTouch</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x95</status>
                <midino>0x27</midino>
                <group>[Channel4]</group>
                  <key>VestaxVCI400.wheelTouch</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>        
            <!-- PLATTER MOVE -->
            <control>
                <status>0xB2</status>
                <midino>0x13</midino>
                <group>[Channel1]</group>
                  <key>VestaxVCI400.wheelMove</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0xB3</status>
                <midino>0x13</midino>
                <group>[Channel2]</group>
                  <key>VestaxVCI400.wheelMove</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0xB4</status>
                <midino>0x13</midino>
                <group>[Channel3]</group>
                  <key>VestaxVCI400.wheelMove</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>
            <control>
                <status>0xB5</status>
                <midino>0x13</midino>
                <group>[Channel4]</group>
                  <key>VestaxVCI400.wheelMove</key>
                <description></description>
                <options>
                    <Script-Binding />
                </options>
            </control>               
            <control>
                <status>0xb3</status>
                <midino>0xd</midino>
                <group>[Channel2]</group>
                <key>filterHigh</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <!-- Beat loops -->
            <control>
                <status>0x92</status>
                <midino>0x14</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.beatLoop</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x14</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.beatLoop</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0xB2</status>
                <midino>0x06</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.beatLengthWheel</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0xB3</status>
                <midino>0x06</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.beatLengthWheel</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <!-- END BEAT LOOP -->
            
            <control>
                <status>0xb3</status>
                <midino>0xe</midino>
                <group>[Channel2]</group>
                <key>filterMid</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb3</status>
                <midino>0xf</midino>
                <group>[Channel2]</group>
                <key>filterLow</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb3</status>
                <midino>0x11</midino>
                <group>[Channel2]</group>
                <key>volume</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb2</status>
                <midino>0xc</midino>
                <group>[Channel1]</group>
                <key>pregain</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            
            <control>
                <status>0xb2</status>
                <midino>0xd</midino>
                <group>[Channel1]</group>
                <key>filterHigh</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb2</status>
                <midino>0xe</midino>
                <group>[Channel1]</group>
                <key>filterMid</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb2</status>
                <midino>0xf</midino>
                <group>[Channel1]</group>
                <key>filterLow</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb2</status>
                <midino>0x11</midino>
                <group>[Channel1]</group>
                <key>volume</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb2</status>
                <midino>0x12</midino>
                <group>[Channel1]</group>
                <key>rate</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xb3</status>
                <midino>0x12</midino>
                <group>[Channel2]</group>
                <key>rate</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <!-- File Browser: Track selection -->
            <control>
                <status>0xbe</status>
                <midino>0x28</midino>
                <group>[Playlist]</group>
                <key>VestaxVCI400.trackSelectionWheel</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0xbe</status>
                <midino>0x2a</midino>
                <group>[Master]</group>
                <key>headMix</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0xbe</status>
                <midino>0x2b</midino>
                <group>[Master]</group>
                <key>volume</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x1</midino>
                <group>[Channel2]</group>
                <key>beatsync</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x2</midino>
                <group>[Channel2]</group>
                <key>LoadSelectedTrack</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <!-- PFL buttons -->
            <control>
                <status>0x92</status>
                <midino>0x5</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.pfl</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0x5</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.pfl</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x94</status>
                <midino>0x5</midino>
                <group>[Channel3]</group>
                <key>VestaxVCI400.pfl</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x95</status>
                <midino>0x5</midino>
                <group>[Channel4]</group>
                <key>VestaxVCI400.pfl</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0xb0</status>
                <midino>0x14</midino>
                <group>[Master]</group>
                <key>crossfader</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <!-- Manual looping control -->
            <control>
                <status>0x93</status>
                <midino>0x9</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.loopIn</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x93</status>
                <midino>0xa</midino>
                <group>[Channel2]</group>
                <key>VestaxVCI400.loopOut</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0x9</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.loopIn</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0xa</midino>
                <group>[Channel1]</group>
                <key>VestaxVCI400.loopOut</key>
                <description></description>
                <options>
                     <Script-Binding />
                </options>
            </control>
            <!-- End looping -->
            <control>
                <status>0x92</status>
                <midino>0x1</midino>
                <group>[Channel1]</group>
                <key>beatsync</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x92</status>
                <midino>0x2</midino>
                <group>[Channel1]</group>
                <key>LoadSelectedTrack</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
            <control>
                <status>0x9d</status>
                <midino>0x1</midino>
                <group>[Channel2]</group>
                <key>flanger</key>
                <description></description>
                <options>
                    <normal/>
                </options>
            </control>
          </controls>
        <outputs/>
    </controller>
</MixxxMIDIPreset>
