Skip to content

Instantly share code, notes, and snippets.

@pwhelan
Created May 27, 2012 10:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pwhelan/2803736 to your computer and use it in GitHub Desktop.
Save pwhelan/2803736 to your computer and use it in GitHub Desktop.
A snippet with slip mode for Mixxx
DJTTCueMaster.beatloopInt = function(group, on, beats)
{
if (on) {
if (this.bstk.length == 0) {
var slipmodestatus = {
rate: engine.getValue(group, 'rate'),
startplaypos: engine.getValue(group, 'playposition'),
curplaypos: engine.getValue(group, 'playposition')
};
var slipmodegroup = group;
DJTTCueMaster.slipmodetime[group] = engine.getValue(group, 'playposition');
DJTTCueMaster.slipmodeconnect[group] = engine.connectControl(group, 'playposition',
function(value) {
try {
if (value > slipmodestatus.curplaypos) {
DJTTCueMaster.slipmodetime[slipmodegroup] += value - slipmodestatus.curplaypos;
}
else {
DJTTCueMaster.slipmodetime[slipmodegroup] += value - slipmodestatus.startplaypos;
DJTTCueMaster.slipmodetime[slipmodegroup] += (engine.getValue(slipmodegroup, 'loop_end_position') / engine.getValue(group, 'track_samples')) - slipmodestatus.curplaypos;
}
slipmodestatus.curplaypos = value;
}
catch(e) {
print("ERROR = " + e.message);
}
}
);
}
this.bstk.push(beats);
if (this.bstk.length == 4) {
if (this.beatcheck(1, 0.5, 0.25, 0.125)) {
engine.setValue(group, 'beatloop', 0.0625);
}
else {
engine.setValue(group, 'beatloop', beats);
}
}
else {
engine.setValue(group, 'beatloop', beats);
}
}
else {
this.bstk.removeValue(beats);
if (this.bstk.length > 0) {
this.beatloop = this.bstk[(this.bstk.length - 1)];
engine.setValue(group, 'beatloop', this.beatloop);
}
else {
var oldout = engine.getValue(group, 'loop_end_position') / engine.getValue(group, 'track_samples');
engine.setValue(group, 'reloop_exit', 1);
var cb = this.slipmodeconnect[group];
engine.beginTimer(20, function() {
cb.disconnect();
engine.setValue(group, 'playposition', DJTTCueMaster.slipmodetime[group]);
}, true);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment