Here you go mate, try this. It's very "alpha" - assign the MIDI you want to the "outputX" expression rather than "x".
Code: Select all
<JZML>
<WINDOW class="MultiSlider" text="SeekStrip" x="0" y="0" width="351" height="52" id="15" state="1" group="0" font="tahoma,10,0" send="1" osc_target="-2" midi_target="-2" kbmouse_target="-2" bipolar="1" capture="1" color="4405618" gradient="1" grid="0" grid_steps="1" horizontal="1" label="0" multicolor="0" nbr="1" physic="1">
<PARAM name="x=" value="0.500000" send="17" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/x" midi_target="-1" midi_trigger="1" midi_message="0xB8,0xB8,4,4" midi_scale="0,16383" osc_scale="0.000000,1.000000" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="tension=1" send="0" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/tension" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="friction=1" send="0" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/friction" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="height=0.5" send="0" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/height" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="light=0" send="0" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/light" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="outputX=" value="0.500000" send="17" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/outputX" midi_target="0" midi_trigger="1" midi_message="0xB8,0xB8,4,4" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="inc=0" send="1" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/inc" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="touchStart=-1" send="1" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/touchStart" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="judderAmount=0.005" send="1" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/judderAmount" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<VARIABLE name="prevX=-1" send="1" osc_target="0" osc_trigger="1" osc_message="/SeekStrip/prevX" midi_target="-1" midi_trigger="1" midi_message="0x90,0x90,0,0" midi_scale="0,16383" kbmouse_target="-1" kbmouse_trigger="1" kbmouse_message="0,0,0" kbmouse_scale="0,1,0,1"/>
<SCRIPT name="onFrame()" script="// If the slider is at rest and hasn't been moved, reset to 0
if(x == 0.5) {
touchStart = -1;
outputX = 0.5;
prevX = 0.5;
return;
}
prevX = x;
if(touchStart == -1) {
touchStart = x;
} else {
outputX = 0.5 - (touchStart - x);
}
// Add 'judder' to the output so Traktor keeps seeking when it is held still
if(outputX != 0.5) {
if(inc < judderAmount) {
inc = judderAmount;
} else {
inc = -judderAmount;
}
outputX = outputX + inc;
} " trigger_script="" trigger_type="1" trigger="1" osc_message="/SeekStrip/onFrame" midi_message="0x90,0x90,0,0" midi_target="-1" flag="1"/>
</WINDOW>
</JZML>