Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Mixxx configuration for Mixvibes VFXControl
<?xml version='1.0' encoding='utf-8'?>
<MixxxControllerPreset mixxxVersion="" schemaVersion="1">
<info/>
<controller id="VFX">
<scriptfiles>
<file functionprefix="MixvibesVFX" filename="Mixvibes-VFXControl-scripts.js"/>
</scriptfiles>
<controls>
<control>
<group>[Channel1]</group>
<key>reloop_exit</key>
<status>0x90</status>
<midino>0x18</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>reloop_exit</key>
<status>0x91</status>
<midino>0x18</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>loop_double</key>
<status>0x80</status>
<midino>0x15</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>rate</key>
<status>0xE0</status>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>rate</key>
<status>0xE1</status>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>loop_out</key>
<status>0x90</status>
<midino>0x17</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>loop_out</key>
<status>0x91</status>
<midino>0x17</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Playlist]</group>
<key>LoadSelectedIntoFirstStopped</key>
<status>0x92</status>
<midino>0x01</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>loop_in</key>
<status>0x90</status>
<midino>0x16</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>loop_in</key>
<status>0x91</status>
<midino>0x16</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Master]</group>
<key>crossfader</key>
<status>0xB2</status>
<midino>0x05</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>loop_double</key>
<status>0x90</status>
<midino>0x15</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>loop_double</key>
<status>0x91</status>
<midino>0x15</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>pregain</key>
<status>0xB2</status>
<midino>0x04</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>LoadSelectedTrack</key>
<status>0x80</status>
<midino>0x3D</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>MixvibesVFX.wheelTurn</key>
<status>0xB0</status>
<midino>0x19</midino>
<options>
<script-binding/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>MixvibesVFX.wheelTurn</key>
<status>0xB1</status>
<midino>0x19</midino>
<options>
<script-binding/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>pregain</key>
<status>0xB2</status>
<midino>0x03</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>rate_perm_up</key>
<status>0x80</status>
<midino>0x3C</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>rate_perm_down</key>
<status>0x80</status>
<midino>0x3B</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>LoadSelectedTrack</key>
<status>0x90</status>
<midino>0x3D</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Flanger]</group>
<key>lfoPeriod</key>
<status>0xB1</status>
<midino>0x01</midino>
<options>
<rot64fast/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>LoadSelectedTrack</key>
<status>0x91</status>
<midino>0x3D</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Playlist]</group>
<key>MixvibesVFX.mediaSelect</key>
<status>0xB2</status>
<midino>0x01</midino>
<options>
<script-binding/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>keylock</key>
<status>0x80</status>
<midino>0x3A</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>volume</key>
<status>0xB0</status>
<midino>0x16</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>volume</key>
<status>0xB1</status>
<midino>0x16</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>rate_perm_up</key>
<status>0x90</status>
<midino>0x3C</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>rate_perm_up</key>
<status>0x91</status>
<midino>0x3C</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>loop_halve</key>
<status>0x80</status>
<midino>0x0D</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>filterLow</key>
<status>0xB0</status>
<midino>0x15</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>filterLow</key>
<status>0xB1</status>
<midino>0x15</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>rate_perm_down</key>
<status>0x90</status>
<midino>0x3B</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>rate_perm_down</key>
<status>0x91</status>
<midino>0x3B</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>beatsync</key>
<status>0x80</status>
<midino>0x38</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>filterMid</key>
<status>0xB0</status>
<midino>0x14</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>filterMid</key>
<status>0xB1</status>
<midino>0x14</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>MixvibesVFX.wheelTouch</key>
<status>0x90</status>
<midino>0x50</midino>
<options>
<script-binding/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>keylock</key>
<status>0x90</status>
<midino>0x3A</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>MixvibesVFX.wheelTouch</key>
<status>0x91</status>
<midino>0x50</midino>
<options>
<script-binding/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>keylock</key>
<status>0x91</status>
<midino>0x3A</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>filterHigh</key>
<status>0xB0</status>
<midino>0x13</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>filterHigh</key>
<status>0xB1</status>
<midino>0x13</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>loop_halve</key>
<status>0x90</status>
<midino>0x0D</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>loop_halve</key>
<status>0x91</status>
<midino>0x0D</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>beatsync</key>
<status>0x90</status>
<midino>0x38</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>beatsync</key>
<status>0x91</status>
<midino>0x38</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>pfl</key>
<status>0x80</status>
<midino>0x35</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Flanger]</group>
<key>lfoDelay</key>
<status>0xB1</status>
<midino>0x11</midino>
<options>
<rot64fast/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>reverse</key>
<status>0x80</status>
<midino>0x34</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>pfl</key>
<status>0x90</status>
<midino>0x35</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Sampler4]</group>
<key>play</key>
<status>0x80</status>
<midino>0x48</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>pfl</key>
<status>0x91</status>
<midino>0x35</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>reverse</key>
<status>0x90</status>
<midino>0x34</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Sampler3]</group>
<key>play</key>
<status>0x80</status>
<midino>0x47</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>reverse</key>
<status>0x91</status>
<midino>0x34</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>flanger</key>
<status>0x90</status>
<midino>0x33</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>flanger</key>
<status>0x91</status>
<midino>0x33</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Sampler2]</group>
<key>play</key>
<status>0x80</status>
<midino>0x46</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>play</key>
<status>0x80</status>
<midino>0x1A</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Sampler4]</group>
<key>play</key>
<status>0x90</status>
<midino>0x48</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Sampler1]</group>
<key>play</key>
<status>0x80</status>
<midino>0x45</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>cue_default</key>
<status>0x80</status>
<midino>0x19</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Sampler3]</group>
<key>play</key>
<status>0x90</status>
<midino>0x47</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>reloop_exit</key>
<status>0x80</status>
<midino>0x18</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>MixvibesVFX.wheelSkip</key>
<status>0xB0</status>
<midino>0x20</midino>
<options>
<script-binding/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>MixvibesVFX.wheelSkip</key>
<status>0xB1</status>
<midino>0x20</midino>
<options>
<script-binding/>
</options>
</control>
<control>
<group>[Sampler2]</group>
<key>play</key>
<status>0x90</status>
<midino>0x46</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>play</key>
<status>0x90</status>
<midino>0x1A</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>play</key>
<status>0x91</status>
<midino>0x1A</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>loop_out</key>
<status>0x80</status>
<midino>0x17</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Flanger]</group>
<key>lfoDepth</key>
<status>0xB1</status>
<midino>0x09</midino>
<options>
<rot64fast/>
</options>
</control>
<control>
<group>[Sampler1]</group>
<key>play</key>
<status>0x90</status>
<midino>0x45</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>cue_default</key>
<status>0x90</status>
<midino>0x19</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel2]</group>
<key>cue_default</key>
<status>0x91</status>
<midino>0x19</midino>
<options>
<normal/>
</options>
</control>
<control>
<group>[Channel1]</group>
<key>loop_in</key>
<status>0x80</status>
<midino>0x16</midino>
<options>
<normal/>
</options>
</control>
</controls>
<outputs>
<output>
<group>[Channel2]</group>
<key>play</key>
<status>0x91</status>
<midino>0x1A</midino>
<minimum>0.9</minimum>
</output>
<output>
<group>[Channel2]</group>
<key>flanger</key>
<status>0x91</status>
<midino>0x33</midino>
<minimum>0.9</minimum>
</output>
<output>
<group>[Channel1]</group>
<key>play</key>
<status>0x90</status>
<midino>0x1A</midino>
<minimum>0.9</minimum>
</output>
<output>
<group>[Channel1]</group>
<key>flanger</key>
<status>0x90</status>
<midino>0x33</midino>
<minimum>0.9</minimum>
</output>
</outputs>
</controller>
</MixxxControllerPreset>
function MixvibesVFX() { }
//MixvibesVFX.init = function (ID, debugging) {
//}
//MixvibesVFX.shutdown = function() {
//}
MixvibesVFX.mediaSelect = function (channel, control, value, status, group) {
if (value == 0x41) {
engine.setValue("[Playlist]", "SelectNextTrack", true);
}
else if (value == 0x3F) {
engine.setValue("[Playlist]", "SelectPrevTrack", true);
}
}
MixvibesVFX.wheelTouch = function (channel, control, value, status, group) {
var deck = group.replace(/\[Channel([12])\]/, "$1") -0;
if (value == 0x7F) {
engine.scratchEnable(deck, 128, 33+1/3, 1.0/8, 1.0/256);
}
else if (value == 0x00) {
engine.scratchDisable(deck);
}
}
MixvibesVFX.wheelTurn = function (channel, control, value, status, group) {
var deck = group.replace(/\[Channel([12])\]/, "$1") -0;
// Controller automatically changes midino when scratching.
// if (engine.isScratching(deck)) {
engine.scratchTick(deck, value - 0x40);
// }
}
MixvibesVFX.wheelSkip = function (channel, control, value, status, group) {
var deck = group.replace(/\[Channel([12])\]/, "$1") -0;
if (!engine.isScratching(deck) && 3-2*deck == engine.getValue("[Master]", "crossfader")) {
engine.setValue(group, "jog", (value-0x40) * 3);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment