summaryrefslogtreecommitdiffstats
path: root/res/controllers/KANE_QuNeo_scripts.js
diff options
context:
space:
mode:
Diffstat (limited to 'res/controllers/KANE_QuNeo_scripts.js')
-rw-r--r--res/controllers/KANE_QuNeo_scripts.js1740
1 files changed, 870 insertions, 870 deletions
diff --git a/res/controllers/KANE_QuNeo_scripts.js b/res/controllers/KANE_QuNeo_scripts.js
index 21a3bea105..5ad0a99202 100644
--- a/res/controllers/KANE_QuNeo_scripts.js
+++ b/res/controllers/KANE_QuNeo_scripts.js
@@ -97,117 +97,117 @@ KANE_QuNeo.rateNudgeTolerance = .006251/2 // determines how close rate must
KANE_QuNeo.playerSequence = function (deck, beat, quarter) {
// Here is deck 1's sequence
if (deck == 1) { // do deck1 sequence
- var middleGreen = [0x64,0x54,0x52,0x62]
- var middleRed = [0x65,0x55,0x53,0x63]
- var middleOrange = middleGreen.concat(middleRed)
- if (quarter == 0) { // for whole beats
- switch (beat) {
- case 1: // LEDs to turn on for beat 1 of 8
- return [0x73,0x75,0x43,0x45].concat(middleRed);
- case 2: case 4: case 6: case 8: case 11: case 13: case 15:
- return [0x60,0x50,0x66,0x56].concat(middleOrange);
- case 3: case 5: case 7: case 10: case 12: case 14: case 16: case 0:
- return [0x72,0x74,0x42,0x44].concat(middleOrange);
- case 9:
- return [0x61,0x51,0x67,0x57].concat(middleRed);
- }
- }
- else if (quarter == 1/2) {
- switch (beat) {
- case 8:
- return [0x70,0x72,0x74,0x76,0x40,0x42,0x44,0x46,0x73,0x75,0x43,0x45]
- case 16:
- return [0x70,0x60,0x50,0x40,0x76,0x66,0x56,0x46,0x61,0x51,0x67,0x57]
- default:
- return middleGreen
- }
- }
+ var middleGreen = [0x64,0x54,0x52,0x62]
+ var middleRed = [0x65,0x55,0x53,0x63]
+ var middleOrange = middleGreen.concat(middleRed)
+ if (quarter == 0) { // for whole beats
+ switch (beat) {
+ case 1: // LEDs to turn on for beat 1 of 8
+ return [0x73,0x75,0x43,0x45].concat(middleRed);
+ case 2: case 4: case 6: case 8: case 11: case 13: case 15:
+ return [0x60,0x50,0x66,0x56].concat(middleOrange);
+ case 3: case 5: case 7: case 10: case 12: case 14: case 16: case 0:
+ return [0x72,0x74,0x42,0x44].concat(middleOrange);
+ case 9:
+ return [0x61,0x51,0x67,0x57].concat(middleRed);
+ }
+ }
+ else if (quarter == 1/2) {
+ switch (beat) {
+ case 8:
+ return [0x70,0x72,0x74,0x76,0x40,0x42,0x44,0x46,0x73,0x75,0x43,0x45]
+ case 16:
+ return [0x70,0x60,0x50,0x40,0x76,0x66,0x56,0x46,0x61,0x51,0x67,0x57]
+ default:
+ return middleGreen
+ }
+ }
}
// Here is deck 2's sequence
else if (deck == 2) { // do deck2 sequence
- var middleGreen = [0x6a,0x6c,0x5a,0x5c]
- var middleRed = [0x6b,0x6d,0x5b,0x5d]
- var middleOrange = middleGreen.concat(middleRed)
- if (quarter == 0) { // for whole beats
- switch (beat) {
- case 1: // LEDs to turn on for beat 1 of 8
- return [0x7b,0x7d,0x4b,0x4d].concat(middleRed);
- case 2: case 4: case 6: case 8: case 11: case 13: case 15:
- return [0x68,0x58,0x6e,0x5e].concat(middleOrange);
- case 3: case 5: case 7: case 10: case 12: case 14: case 16:
- return [0x7a,0x7c,0x4a,0x4c].concat(middleOrange);
- case 9:
- return [0x69,0x59,0x6f,0x5f].concat(middleRed);
- }}
- else if (quarter == 1/2) {
- switch (beat) {
- case 8: // LEDs to turn on for 8 and
- return [0x78,0x7a,0x7b,0x7c,0x7d,0x7e,0x48,0x4a,0x4b,0x4c,0x4d,0x4e]
- case 16:
- return [0x78,0x68,0x69,0x58,0x59,0x48,0x7e,0x6e,0x6f,0x5e,0x5f,0x4e]
- default:
- return middleGreen
- }
- }
+ var middleGreen = [0x6a,0x6c,0x5a,0x5c]
+ var middleRed = [0x6b,0x6d,0x5b,0x5d]
+ var middleOrange = middleGreen.concat(middleRed)
+ if (quarter == 0) { // for whole beats
+ switch (beat) {
+ case 1: // LEDs to turn on for beat 1 of 8
+ return [0x7b,0x7d,0x4b,0x4d].concat(middleRed);
+ case 2: case 4: case 6: case 8: case 11: case 13: case 15:
+ return [0x68,0x58,0x6e,0x5e].concat(middleOrange);
+ case 3: case 5: case 7: case 10: case 12: case 14: case 16:
+ return [0x7a,0x7c,0x4a,0x4c].concat(middleOrange);
+ case 9:
+ return [0x69,0x59,0x6f,0x5f].concat(middleRed);
+ }}
+ else if (quarter == 1/2) {
+ switch (beat) {
+ case 8: // LEDs to turn on for 8 and
+ return [0x78,0x7a,0x7b,0x7c,0x7d,0x7e,0x48,0x4a,0x4b,0x4c,0x4d,0x4e]
+ case 16:
+ return [0x78,0x68,0x69,0x58,0x59,0x48,0x7e,0x6e,0x6f,0x5e,0x5f,0x4e]
+ default:
+ return middleGreen
+ }
+ }
}
return []; // turn on nothing if no matches
}
KANE_QuNeo.visualize = function (deck, beat, quarter) {
if (deck == 2) { // do deck2 sequence
- var middleGreen = [0x24,0x14,0x12,0x22]
- var middleRed = [0x25,0x15,0x13,0x23]
- var middleOrange = middleGreen.concat(middleRed)
- if (quarter == 0) { // for whole beats
- switch (beat) {
- case 1: // LEDs to turn on for beat 1 of 8
- return [0x33,0x35,0x03,0x05].concat(middleRed);
- case 2: case 4: case 6: case 8: case 11: case 13: case 15:
- return [0x20,0x10,0x26,0x16].concat(middleOrange);
- case 3: case 5: case 7: case 10: case 12: case 14: case 16: case 0:
- return [0x32,0x34,0x02,0x04].concat(middleOrange);
- case 9:
- return [0x21,0x11,0x27,0x17].concat(middleRed);
- }
- }
- else if (quarter == 1/2) {
- switch (beat) {
- case 8:
- return [0x30,0x32,0x34,0x36,0x00,0x02,0x04,0x06,0x33,0x35,0x03,0x05]
- case 16:
- return [0x30,0x20,0x10,0x00,0x36,0x26,0x16,0x06,0x21,0x11,0x27,0x17]
- default:
- return middleGreen
- }
- }
+ var middleGreen = [0x24,0x14,0x12,0x22]
+ var middleRed = [0x25,0x15,0x13,0x23]
+ var middleOrange = middleGreen.concat(middleRed)
+ if (quarter == 0) { // for whole beats
+ switch (beat) {
+ case 1: // LEDs to turn on for beat 1 of 8
+ return [0x33,0x35,0x03,0x05].concat(middleRed);
+ case 2: case 4: case 6: case 8: case 11: case 13: case 15:
+ return [0x20,0x10,0x26,0x16].concat(middleOrange);
+ case 3: case 5: case 7: case 10: case 12: case 14: case 16: case 0:
+ return [0x32,0x34,0x02,0x04].concat(middleOrange);
+ case 9:
+ return [0x21,0x11,0x27,0x17].concat(middleRed);
+ }
+ }
+ else if (quarter == 1/2) {
+ switch (beat) {
+ case 8:
+ return [0x30,0x32,0x34,0x36,0x00,0x02,0x04,0x06,0x33,0x35,0x03,0x05]
+ case 16:
+ return [0x30,0x20,0x10,0x00,0x36,0x26,0x16,0x06,0x21,0x11,0x27,0x17]
+ default:
+ return middleGreen
+ }
+ }
}
else if (deck == 1) { // do deck1 sequence
- var middleGreen = [0x2a,0x2c,0x1a,0x1c]
- var middleRed = [0x2b,0x2d,0x1b,0x1d]
- var middleOrange = middleGreen.concat(middleRed)
- if (quarter == 0) { // for whole beats
- switch (beat) {
- case 1: // LEDs to turn on for beat 1 of 8
- return [0x3b,0x3d,0x0b,0x0d].concat(middleRed);
- case 2: case 4: case 6: case 8: case 11: case 13: case 15:
- return [0x28,0x18,0x2e,0x1e].concat(middleOrange);
- case 3: case 5: case 7: case 10: case 12: case 14: case 16:
- return [0x3a,0x3c,0x0a,0x0c].concat(middleOrange);
- case 9:
- return [0x29,0x19,0x2f,0x1f].concat(middleRed);
- }
- }
- else if (quarter == 1/2) {
- switch (beat) {
- case 8: // LEDs to turn on for 8 and
- return [0x38,0x3a,0x3b,0x3c,0x3d,0x3e,0x08,0x0a,0x0b,0x0c,0x0d,0x0e]
- case 16:
- return [0x38,0x28,0x29,0x18,0x19,0x08,0x3e,0x2e,0x2f,0x1e,0x1f,0x0e]
- default:
- return middleGreen
- }
- }
+ var middleGreen = [0x2a,0x2c,0x1a,0x1c]
+ var middleRed = [0x2b,0x2d,0x1b,0x1d]
+ var middleOrange = middleGreen.concat(middleRed)
+ if (quarter == 0) { // for whole beats
+ switch (beat) {
+ case 1: // LEDs to turn on for beat 1 of 8
+ return [0x3b,0x3d,0x0b,0x0d].concat(middleRed);
+ case 2: case 4: case 6: case 8: case 11: case 13: case 15:
+ return [0x28,0x18,0x2e,0x1e].concat(middleOrange);
+ case 3: case 5: case 7: case 10: case 12: case 14: case 16:
+ return [0x3a,0x3c,0x0a,0x0c].concat(middleOrange);
+ case 9:
+ return [0x29,0x19,0x2f,0x1f].concat(middleRed);
+ }
+ }
+ else if (quarter == 1/2) {
+ switch (beat) {
+ case 8: // LEDs to turn on for 8 and
+ return [0x38,0x3a,0x3b,0x3c,0x3d,0x3e,0x08,0x0a,0x0b,0x0c,0x0d,0x0e]
+ case 16:
+ return [0x38,0x28,0x29,0x18,0x19,0x08,0x3e,0x2e,0x2f,0x1e,0x1f,0x0e]
+ default:
+ return middleGreen
+ }
+ }
}
return []; // turn on nothing if no matches
}
@@ -216,33 +216,33 @@ KANE_QuNeo.visualize = function (deck, beat, quarter) {
if (beat > 4) beat -= 4; // crude mod 8
// Here is deck 1's sequence 0
if (deck == 1) { // do deck1 sequence
- if (quarter == 0) { // for whole beats
- switch (beat) {
- case 1: // LED sequence for beat 1 of 4
- return [0x1a,0x1b,0x2e,0x2f];
- case 2: // for beat 2 of 4
- return [0x12,0x1a,0x1b];
- case 3: // etc
- return [0x10,0x11,0x2e,0x2f];
- case 4:
- return [0x18,0x10,0x11];
- }
- }
+ if (quarter == 0) { // for whole beats
+ switch (beat) {
+ case 1: // LED sequence for beat 1 of 4
+ return [0x1a,0x1b,0x2e,0x2f];
+ case 2: // for beat 2 of 4
+ return [0x12,0x1a,0x1b];
+ case 3: // etc
+ return [0x10,0x11,0x2e,0x2f];
+ case 4:
+ return [0x18,0x10,0x11];
+ }
+ }
}
// Here is deck 2's sequence 0
else if (deck == 2) {
- if (quarter == 0) { // for whole beats
- switch (beat) {
- case 1:
- return [0x1c,0x1d,0x30,0x31];
- case 2:
- return [0x14,0x1c,0x1d];
- case 3:
- return [0x16,0x17,0x30,0x31];
- case 4:
- return [0x1e,0x16,0x17];
- }
- }
+ if (quarter == 0) { // for whole beats
+ switch (beat) {
+ case 1:
+ return [0x1c,0x1d,0x30,0x31];
+ case 2:
+ return [0x14,0x1c,0x1d];
+ case 3:
+ return [0x16,0x17,0x30,0x31];
+ case 4:
+ return [0x1e,0x16,0x17];
+ }
+ }
}
return []; // turn on nothing if no matches
} */
@@ -253,7 +253,7 @@ KANE_QuNeo.makeVar = function (element) {
var array = []
// initialize the array with copies of the element for each deck
for (var i = 0; i < KANE_QuNeo.numDecks; i++)
- array.push(element)
+ array.push(element)
return array
}
@@ -334,7 +334,7 @@ KANE_QuNeo.verticalSliderDoubleTap = [0,0,0,0]; // 1 when a the next tap will
KANE_QuNeo.nextBeatTimer = KANE_QuNeo.makeVar([]);
KANE_QuNeo.scheduledBeats = KANE_QuNeo.makeVar([]);
KANE_QuNeo.jumpHoldTimers = KANE_QuNeo.makeVar([]) // hold timers for continued jumps
-
+
/***** (IS) Initialization and Shutdown *****/
KANE_QuNeo.init = function (id) { // called when the device is opened & set up
@@ -350,7 +350,7 @@ KANE_QuNeo.init = function (id) { // called when the device is opened & set up
// led controls for the master / flanger channels
engine.connectControl("[Master]","VuMeter","KANE_QuNeo.masterVuMeter");
//engine.softTakeover("[Master]","volume",true);
- engine.connectControl("[Master]","headVolume","KANE_QuNeo.headVol");
+ engine.connectControl("[Master]","headVolume","KANE_QuNeo.headVol");
engine.connectControl("[Flanger]","lfoPeriod","KANE_QuNeo.flangerPeriod");
engine.connectControl("[Flanger]","lfoDepth","KANE_QuNeo.flangerDepth");
engine.connectControl("[Master]","crossfader","KANE_QuNeo.crossFader");
@@ -418,11 +418,11 @@ KANE_QuNeo.setJump = function (deck, direction) {
var channel = deck - 1 // track channels start at 0 to properly reference arrays
var current = KANE_QuNeo.trackJump[channel];
if (current != direction) { // if chosen jump is not already active,
- KANE_QuNeo.trackJump[channel] = direction; // set deck to the new direction
- KANE_QuNeo.trackLooping[channel] = 0; // and turn looping off
+ KANE_QuNeo.trackJump[channel] = direction; // set deck to the new direction
+ KANE_QuNeo.trackLooping[channel] = 0; // and turn looping off
} else if (current == direction) {
- KANE_QuNeo.trackJump[channel] = 0; // else toggle jump off
- KANE_QuNeo.trackLooping[channel] = 1; // and looping on
+ KANE_QuNeo.trackJump[channel] = 0; // else toggle jump off
+ KANE_QuNeo.trackLooping[channel] = 1; // and looping on
}
// remember to update LEDs
KANE_QuNeo.assertLoopingLED(deck);
@@ -447,15 +447,15 @@ KANE_QuNeo.play = function (deck) {
if (playing) { // If currently playing
engine.setValue(channelName,"play",0); // Stop
- KANE_QuNeo.cancelScheduledBeats(deck); // cancel any scheduled beats,
- KANE_QuNeo.clearLastBeatLEDs(deck); // and turn off last beat LEDs.
+ KANE_QuNeo.cancelScheduledBeats(deck); // cancel any scheduled beats,
+ KANE_QuNeo.clearLastBeatLEDs(deck); // and turn off last beat LEDs.
}
else { // If not currently playing,
engine.setValue(channelName,"play",1); // Start
- // then sync if we are in jumpsync mode
- if (KANE_QuNeo.trackJumpSync[channel])
- KANE_QuNeo.syncTrack(deck,"phase",0);
+ // then sync if we are in jumpsync mode
+ if (KANE_QuNeo.trackJumpSync[channel])
+ KANE_QuNeo.syncTrack(deck,"phase",0);
}
// update global value
var hotcuePressed = KANE_QuNeo.hotcuePressed[channel];
@@ -463,7 +463,7 @@ KANE_QuNeo.play = function (deck) {
// send LED messages to report play press
if (KANE_QuNeo.mode != 16) // but not while in playlist mode
- KANE_QuNeo.playPressLEDs(deck)
+ KANE_QuNeo.playPressLEDs(deck)
}
KANE_QuNeo.togglePlayScratch = function (channel, control, value, status, group) {
@@ -475,15 +475,15 @@ KANE_QuNeo.togglePlayScratch = function (channel, control, value, status, group)
KANE_QuNeo.rotaryTouch = function (deck, value, status) {
if ((status & 0xF0) == 0x90) { // If note press on midi channel 1
if (value == 0x7F) { // if full velocity
- if (KANE_QuNeo.playScratchToggle) { // and scratch is toggled off
- KANE_QuNeo.play(deck); // this is a play button
- return;
- }
- // else proceed with scratching
- var alpha = 1.0/8, beta = alpha/32;
+ if (KANE_QuNeo.playScratchToggle) { // and scratch is toggled off
+ KANE_QuNeo.play(deck); // this is a play button
+ return;
+ }
+ // else proceed with scratching
+ var alpha = 1.0/8, beta = alpha/32;
engine.scratchEnable(deck, 128, 33+1/3, alpha, beta);
- }
- else {engine.scratchDisable(deck);}
+ }
+ else {engine.scratchDisable(deck);}
}
else if (value == 0x00) { // If button up
engine.scratchDisable(deck);
@@ -494,7 +494,7 @@ KANE_QuNeo.rotaryTouch = function (deck, value, status) {
KANE_QuNeo.wheelTurn = function (deck, value) {
var velocity = KANE_QuNeo.scratchSpeed;
if (value > 1) // if reverse
- velocity *= -1; // flip direction
+ velocity *= -1; // flip direction
engine.scratchTick(deck,velocity);
}
@@ -507,11 +507,11 @@ KANE_QuNeo.toggleRecord = function (channel, control, value, status, group) {
// for each deck, print out the sample at which recording started
for (var deck = 1; deck <= 2; deck++) {
- var channelName = KANE_QuNeo.getChannelName(deck);
- var samples = engine.getValue(channelName,"track_samples");
- var position = engine.getValue(channelName,"visual_playposition");
- var samplePosition = samples * position;
- print("Recording started with deck "+deck+ " at sample: "+samplePosition)
+ var channelName = KANE_QuNeo.getChannelName(deck);
+ var samples = engine.getValue(channelName,"track_samples");
+ var position = engine.getValue(channelName,"visual_playposition");
+ var samplePosition = samples * position;
+ print("Recording started with deck "+deck+ " at sample: "+samplePosition)
}
KANE_QuNeo.assertRecordLED() // update record LED
@@ -529,10 +529,10 @@ KANE_QuNeo.jumpLoop = function (deck, numBeats) {
// first set a hold timer if none exist
if (KANE_QuNeo.jumpHoldTimers[channel].length < 1)
- KANE_QuNeo.jumpHoldTimers[channel].push(
- engine.beginTimer(KANE_QuNeo.jumpHoldTime,
- "KANE_QuNeo.jumpHeld("+deck+","+numBeats+")",
- true));
+ KANE_QuNeo.jumpHoldTimers[channel].push(
+ engine.beginTimer(KANE_QuNeo.jumpHoldTime,
+ "KANE_QuNeo.jumpHeld("+deck+","+numBeats+")",
+ true));
// calculate samples per beat
var samplerate = engine.getValue(channelName,"track_samplerate");
@@ -549,72 +549,72 @@ KANE_QuNeo.jumpLoop = function (deck, numBeats) {
// if jump is on,
if (newPosition != oldPosition) {
- // light appropriate jumpLED during button press
- KANE_QuNeo.assertJumpLEDs(deck, numBeats);
+ // light appropriate jumpLED during button press
+ KANE_QuNeo.assertJumpLEDs(deck, numBeats);
- engine.setValue(channelName,"playposition",newPosition); // jump
- // then adjust current beat
- var wholeBeat = KANE_QuNeo.wholeBeat[channel]
- var newBeat = (wholeBeat + beatsVector);
- // if playing, we will hit the next beat so add 1
- if (engine.getValue(channelName,"play"))
- newBeat += 1
- var totalBeats = KANE_QuNeo.totalBeats
+ engine.setValue(channelName,"playposition",newPosition); // jump
+ // then adjust current beat
+ var wholeBeat = KANE_QuNeo.wholeBeat[channel]
+ var newBeat = (wholeBeat + beatsVector);
+ // if playing, we will hit the next beat so add 1
+ if (engine.getValue(channelName,"play"))
+ newBeat += 1
+ var totalBeats = KANE_QuNeo.totalBeats
- if (newBeat < 1) // hand-made mod because javascript mod is wrong when < 0.
- newBeat += totalBeats
- else if (newBeat > 16)
- newBeat -= totalBeats
+ if (newBeat < 1) // hand-made mod because javascript mod is wrong when < 0.
+ newBeat += totalBeats
+ else if (newBeat > 16)
+ newBeat -= totalBeats
- KANE_QuNeo.wholeBeat[channel] = newBeat // set the new beat number
- KANE_QuNeo.trackJumped[channel] = 1; // say that we jumped
+ KANE_QuNeo.wholeBeat[channel] = newBeat // set the new beat number
+ KANE_QuNeo.trackJumped[channel] = 1; // say that we jumped
}
// now figure out how/whether or not to loop
if (KANE_QuNeo.trackLooping[channel]) { // if in looping mode,
- if (!direction) // nor jumping,
- KANE_QuNeo.doLoop(deck, numBeats); // do loop now
- else // else (if playing or jumping) schedule a loop
- KANE_QuNeo.scheduleLoop(deck, numBeats);
+ if (!direction) // nor jumping,
+ KANE_QuNeo.doLoop(deck, numBeats); // do loop now
+ else // else (if playing or jumping) schedule a loop
+ KANE_QuNeo.scheduleLoop(deck, numBeats);
}
// if neither jump nor loop, then we are in loop planning mode
else if (!(KANE_QuNeo.trackLooping[channel])
- && !(KANE_QuNeo.trackJump[channel])) {
+ && !(KANE_QuNeo.trackJump[channel])) {
- // light appropriate jumpLED during button press
- KANE_QuNeo.assertJumpLEDs(deck, numBeats);
+ // light appropriate jumpLED during button press
+ KANE_QuNeo.assertJumpLEDs(deck, numBeats);
- if (KANE_QuNeo.loopNextJump[channel] == numBeats) // if equal numBeats,
- // we already have a loop of this length planned, so a second button
- // press means to cancel the first
- KANE_QuNeo.loopNextJump[channel] = 0;
+ if (KANE_QuNeo.loopNextJump[channel] == numBeats) // if equal numBeats,
+ // we already have a loop of this length planned, so a second button
+ // press means to cancel the first
+ KANE_QuNeo.loopNextJump[channel] = 0;
- else // otherwise, proceed
- KANE_QuNeo.loopNextJump[channel] = numBeats; // set loop for next jump
+ else // otherwise, proceed
+ KANE_QuNeo.loopNextJump[channel] = numBeats; // set loop for next jump
}
}
KANE_QuNeo.scheduleSync = function (deck, syncType) {
engine.beginTimer(
- KANE_QuNeo.jumpSyncTimer,
- "KANE_QuNeo.doSync("+deck+", \"" + syncType + "\")",true)
+ KANE_QuNeo.jumpSyncTimer,
+ "KANE_QuNeo.doSync("+deck+", \"" + syncType + "\")",true)
}
KANE_QuNeo.doSync = function (deck, syncType) {
var deckType = KANE_QuNeo.getDeckType(deck);
if (deckType == "deck" && deck <= 2) { // regular sync works only for decks,
- // and we only have 2 decks atm
- var channelName = KANE_QuNeo.getChannelName(deck)
- // store start loop status
- var loopEnabled = engine.getValue(channelName,"loop_enabled");
- engine.setValue(channelName,"beatsync_"+syncType,1); // do the sync
+ // and we only have 2 decks atm
+ var channelName = KANE_QuNeo.getChannelName(deck)
+ // store start loop status
+ var loopEnabled = engine.getValue(channelName,"loop_enabled");
+ engine.setValue(channelName,"beatsync_"+syncType,1); // do the sync
- // if our operation somehow changed loop enabling, immediately change it back
- engine.beginTimer(KANE_QuNeo.checkLoopDelay,
- "KANE_QuNeo.checkLoop("+deck+","+loopEnabled+")", true);
+ // if our operation somehow changed loop enabling, immediately change it back
+ engine.beginTimer(KANE_QuNeo.checkLoopDelay,
+ "KANE_QuNeo.checkLoop("+deck+","+loopEnabled+")", true);
}
}
@@ -625,20 +625,20 @@ KANE_QuNeo.syncTrack = function (deck, type, scheduleFlag) {
var otherDeck = ((channel + 1) % 2) + 1;
var otherTrackPlaying = engine.getValue("[Channel"+otherDeck+"]","play")
if (otherTrackPlaying) {
- // flash jumpsync LED to signify the sync
- // KANE_QuNeo.syncLEDRed(deck);
- print("==============> SYNCING DECK "+deck+" WITH SYNC TYPE: "+type);
- if (scheduleFlag) // if this sync should be scheduled
- KANE_QuNeo.scheduleSync(deck, type); // then schedule it
- else
- KANE_QuNeo.doSync(deck,type); // else do it now
+ // flash jumpsync LED to signify the sync
+ // KANE_QuNeo.syncLEDRed(deck);
+ print("==============> SYNCING DECK "+deck+" WITH SYNC TYPE: "+type);
+ if (scheduleFlag) // if this sync should be scheduled
+ KANE_QuNeo.scheduleSync(deck, type); // then schedule it
+ else
+ KANE_QuNeo.doSync(deck,type); // else do it now
}
}
KANE_QuNeo.scheduleLoop = function (deck, numBeats) {
engine.beginTimer(KANE_QuNeo.jumpLoopTimer,
- "KANE_QuNeo.doLoop("+deck+","+numBeats+")"
- ,true)
+ "KANE_QuNeo.doLoop("+deck+","+numBeats+")"
+ ,true)
}
KANE_QuNeo.doLoop = function (deck, numBeats) {
@@ -669,7 +669,7 @@ KANE_QuNeo.deckMultiplyLoop = function (deck, factor) {
// if our operation somehow changed loop enabling, immediately change it back
engine.beginTimer(KANE_QuNeo.checkLoopDelay,
- "KANE_QuNeo.checkLoop("+deck+","+loopEnabled+")", true);
+ "KANE_QuNeo.checkLoop("+deck+","+loopEnabled+")", true);
// emit LED updates, timer because engine is slow at registering loop stuffs
KANE_QuNeo.delayedAssertion("KANE_QuNeo.assertBeatLEDs("+deck+")",true);
@@ -680,8 +680,8 @@ KANE_QuNeo.checkLoop = function (deck, loopEnabled) {
// if the loop status is different than given, reloop
if (engine.getValue(channelName,"loop_enabled") != loopEnabled) {
- print("retoggling loop")
- KANE_QuNeo.deckReloop(deck) // toggle the loop back to what it was
+ print("retoggling loop")
+ KANE_QuNeo.deckReloop(deck) // toggle the loop back to what it was
}
}
@@ -690,11 +690,11 @@ KANE_QuNeo.jumpHeld = function (deck, numBeats) {
var channel = deck - 1;
// ensure we are only in jump mode and not in looping mode
if (KANE_QuNeo.trackJump[channel] != 0 &&
- KANE_QuNeo.trackLooping[channel] == 0) {
- print("=====> AUTO JUMPING ACTIVATED WITH NUMBEATS: "+numBeats)
- KANE_QuNeo.jumpHoldTimers[channel].push(
- engine.beginTimer(KANE_QuNeo.autoJumpSpeed,
- "KANE_QuNeo.jumpLoop("+deck+","+numBeats+")"));
+ KANE_QuNeo.trackLooping[channel] == 0) {
+ print("=====> AUTO JUMPING ACTIVATED WITH NUMBEATS: "+numBeats)
+ KANE_QuNeo.jumpHoldTimers[channel].push(
+ engine.beginTimer(KANE_QuNeo.autoJumpSpeed,
+ "KANE_QuNeo.jumpLoop("+deck+","+numBeats+")"));
}
}
@@ -713,20 +713,20 @@ KANE_QuNeo.verticalSliderTouch = function (slider, value) {
// if this is the first press:
if (!KANE_QuNeo.verticalSliderDoubleTap[slider - 1]) {
- // record this press,
- KANE_QuNeo.verticalSliderDoubleTap[slider - 1] = 1;
- // then begin the reset timer
- engine.beginTimer(KANE_QuNeo.doubleTapWindow,
- "KANE_QuNeo.resetDoubleTap("+slider+")",
- true);
+ // record this press,
+ KANE_QuNeo.verticalSliderDoubleTap[slider - 1] = 1;
+ // then begin the reset timer
+ engine.beginTimer(KANE_QuNeo.doubleTapWindow,
+ "KANE_QuNeo.resetDoubleTap("+slider+")",
+ true);
}
// if this is the second press:
else {
- // reset the double tap
- KANE_QuNeo.resetDoubleTap(slider);
- // reset the pressed slider's level
- KANE_QuNeo.verticalSliderMove(slider, 0, 1);
+ // reset the double tap
+ KANE_QuNeo.resetDoubleTap(slider);
+ // reset the pressed slider's level
+ KANE_QuNeo.verticalSliderMove(slider, 0, 1);
}
}
@@ -738,56 +738,56 @@ KANE_QuNeo.verticalSliderMove = function (slider, value, resetFlag) {
// print("resetflag on vertical slider move: "+resetFlag);
// define values
if (resetFlag) // if this is a call to reset the vertical slider,
- var values = KANE_QuNeo.getVerticalSliderResetValues(); // get reset values
+ var values = KANE_QuNeo.getVerticalSliderResetValues(); // get reset values
else // else get normal values
- var values = KANE_QuNeo.getReverseValues(value);
+ var values = KANE_QuNeo.getReverseValues(value);
// make sliders interact with mixxx based on mode and slider touched
switch (KANE_QuNeo.sliderMode) {
case 0: // mode 0
- switch (slider) {
- case 1:
- KANE_QuNeo.deckZoom(1,value); break;
- case 2:
- KANE_QuNeo.deckZoom(2,value); break;
- case 3:
- KANE_QuNeo.deckCursor(1,value); break;
- case 4:
- KANE_QuNeo.deckCursor(2,value); break;
- } break;
+ switch (slider) {
+ case 1:
+ KANE_QuNeo.deckZoom(1,value); break;
+ case 2:
+ KANE_QuNeo.deckZoom(2,value); break;
+ case 3:
+ KANE_QuNeo.deckCursor(1,value); break;
+ case 4:
+ KANE_QuNeo.deckCursor(2,value); break;
+ } break;
case 1: // mode 1
- switch (slider) {
- case 1:
- engine.setValue("[Channel1]","pregain",values.zeroToFour); break;
- case 2:
- engine.setValue("[Channel2]","pregain",values.zeroToFour); break;
- case 3:
- engine.setValue("[Channel1]","rate",values.negOneToOne); break;
- case 4:
- engine.setValue("[Channel2]","rate",values.negOneToOne); break;
- } break;
+ switch (slider) {
+ case 1:
+ engine.setValue("[Channel1]","pregain",values.zeroToFour); break;
+ case 2:
+ engine.setValue("[Channel2]","pregain",values.zeroToFour); break;
+ case 3:
+ engine.setValue("[Channel1]","rate",values.negOneToOne); break;
+ case 4:
+ engine.setValue("[Channel2]","rate",values.negOneToOne); break;
+ } break;
case 2: // mode 2
- switch (slider) {
- case 1:
- engine.setValue("[Channel1]","volume",values.denormalized); break;
- case 2:
- engine.setValue("[Channel2]","volume",values.denormalized); break;
- case 3:
- engine.setValue("[Channel1]","filterHigh",values.zeroToFour); break;
- case 4:
- engine.setValue("[Channel2]","filterHigh",values.zeroToFour); break;
- } break;
+ switch (slider) {
+ case 1:
+ engine.setValue("[Channel1]","volume",values.denormalized); break;
+ case 2:
+ engine.setValue("[Channel2]","volume",values.denormalized); break;
+ case 3:
+ engine.setValue("[Channel1]","filterHigh",values.zeroToFour); break;
+ case 4:
+ engine.setValue("[Channel2]","filterHigh",values.zeroToFour); break;
+ } break;
case 3: // mode 3
- switch (slider) {
- case 1:
- engine.setValue("[Channel1]","filterMid",values.zeroToFour); break;
- case 2:
- engine.setValue("[Channel2]","filterMid",values.zeroToFour); break;
- case 3:
- engine.setValue("[Channel1]","filterLow",values.zeroToFour); break;
- case 4:
- engine.setValue("[Channel2]","filterLow",values.zeroToFour); break;
- } break;
+ switch (slider) {
+ case 1:
+ engine.setValue("[Channel1]","filterMid",values.zeroToFour); break;
+ case 2:
+ engine.setValue("[Channel2]","filterMid",values.zeroToFour); break;
+ case 3:
+ engine.setValue("[Channel1]","filterLow",values.zeroToFour); break;
+ case 4:
+ engine.setValue("[Channel2]","filterLow",values.zeroToFour); break;
+ } break;
}
}
@@ -795,56 +795,56 @@ KANE_QuNeo.openSliderMode = function () {
// choose which controls to connect based on mode
switch (KANE_QuNeo.sliderMode) {
case 0:
- // control connections
- engine.connectControl("[Channel1]","waveform_zoom",
- "KANE_QuNeo.deck1ZoomLEDs")
- engine.connectControl("[Channel2]","waveform_zoom",
- "KANE_QuNeo.deck2ZoomLEDs")
- engine.connectControl("[Channel1]","playposition",
- "KANE_QuNeo.deck1CursorLEDs")
- engine.connectControl("[Channel2]","playposition",
- "KANE_QuNeo.deck2CursorLEDs")
- // actual LED updates
- KANE_QuNeo.LEDs(0x90,[0x2c,0x2d],0x00) // rhombus off
- engine.trigger("[Channel1]","waveform_zoom")
- engine.trigger("[Channel2]","waveform_zoom")
- engine.trigger("[Channel1]","playposition")
- engine.trigger("[Channel2]","playposition")
- break;
+ // control connections
+ engine.connectControl("[Channel1]","waveform_zoom",
+ "KANE_QuNeo.deck1ZoomLEDs")
+ engine.connectControl("[Channel2]","waveform_zoom",
+ "KANE_QuNeo.deck2ZoomLEDs")
+ engine.connectControl("[Channel1]","playposition",
+ "KANE_QuNeo.deck1CursorLEDs")
+ engine.connectControl("[Channel2]","playposition",
+ "KANE_QuNeo.deck2CursorLEDs")
+ // actual LED updates
+ KANE_QuNeo.LEDs(0x90,[0x2c,0x2d],0x00) // rhombus off
+ engine.trigger("[Channel1]","waveform_zoom")
+ engine.trigger("[Channel2]","waveform_zoom")
+ engine.trigger("[Channel1]","playposition")
+ engine.trigger("[Channel2]","playposition")
+ break;
case 1:
- engine.connectControl("[Channel1]","pregain","KANE_QuNeo.deck1Pregain")
- engine.connectControl("[Channel2]","pregain","KANE_QuNeo.deck2Pregain")
- engine.connectControl("[Channel1]","rate","KANE_QuNeo.deck1Rate")
- engine.connectControl("[Channel2]","rate","KANE_QuNeo.deck2Rate")
- KANE_QuNeo.LEDs(0x90,[0x2c],0x7f) // rhombus green on
- engine.trigger("[Channel1]","pregain")
- engine.trigger("[Channel2]","pregain")
- engine.trigger("[Channel1]","rate")
- engine.trigger("[Channel2]","rate")
- break;
+ engine.connectControl("[Channel1]","pregain","KANE_QuNeo.deck1Pregain")
+ engine.connectControl("[Channel2]","pregain","KANE_QuNeo.deck2Pregain")
+ engine.connectControl("[Channel1]","rate","KANE_QuNeo.deck1Rate")
+ engine.connectControl("[Channel2]","rate","KANE_QuNeo.deck2Rate")
+ KANE_QuNeo.LEDs(0x90,[0x2c],0x7f) // rhombus green on
+ engine.trigger("[Channel1]","pregain")
+ engine.trigger("[Channel2]","pregain")
+ engine.trigger("[Channel1]","rate")
+ engine.trigger("[Channel2]","rate")
+ break;
case 2:
- engine.connectControl("[Channel1]","filterHigh","KANE_QuNeo.deck1Highs")
- engine.connectControl("[Channel2]","filterHigh","KANE_QuNeo.deck2Highs")
- KANE_QuNeo.LEDs(0x90,[0x2c],0x00) // rhombus green off
- KANE_QuNeo.LEDs(0x90,[0x2d],0x7f) // rhombus red on
- engine.trigger("[Channel1]","VuMeter")
- engine.trigger("[Channel2]","VuMeter")
- engine.trigger("[Channel1]","filterHigh")
- engine.trigger("[Channel2]","filterHigh")
- break;
+ engine.connectControl("[Channel1]","filterHigh","KANE_QuNeo.deck1Highs")
+ engine.connectControl("[Channel2]","filterHigh","KANE_QuNeo.deck2Highs")
+ KANE_QuNeo.LEDs(0x90,[0x2c],0x00) // rhombus green off
+ KANE_QuNeo.LEDs(0x90,[0x2d],0x7f) // rhombus red on
+ engine.trigger("[Channel1]","VuMeter")
+ engine.trigger("[Channel2]","VuMeter")
+ engine.trigger("[Channel1]","filterHigh")
+ engine.trigger("[Channel2]","filterHigh")
+ break;
case 3:
- engine.connectControl("[Channel1]","filterMid","KANE_QuNeo.deck1Mids")
- engine.connectControl("[Channel2]","filterMid","KANE_QuNeo.deck2Mids")
- engine.connectControl("[Channel1]","filterLow","KANE_QuNeo.deck1Lows")
- engine.connectControl("[Channel2]","filterLow","KANE_QuNeo.deck2Lows")
- KANE_QuNeo.LEDs(0x90,[0x2c,0x2d],0x7f) // rhombus orange on
- engine.trigger("[Channel1]","filterMid")
- engine.trigger("[Channel2]","filterMid")
- engine.trigger("[Channel1]","filterLow")
- engine.trigger("[Channel2]","filterLow")
- break;
+ engine.connectControl("[Channel1]","filterMid","KANE_QuNeo.deck1Mids")
+ engine.connectControl("[Channel2]","filterMid","KANE_QuNeo.deck2Mids")
+ engine.connectControl("[Channel1]","filterLow","KANE_QuNeo.deck1Lows")
+ engine.connectControl("[Channel2]","filterLow","KANE_QuNeo.deck2Lows")
+ KANE_QuNeo.LEDs(0x90,[0x2c,0x2d],0x7f) // rhombus orange on
+ engine.trigger("[Channel1]","filterMid")
+ engine.trigger("[Channel2]","filterMid")
+ engine.trigger("[Channel1]","filterLow")
+ engine.trigger("[Channel2]","filterLow")
+ break;
default:
- print("ERROR: unknown slider mode "+KANE_QuNeo.sliderMode);
+ print("ERROR: unknown slider mode "+KANE_QuNeo.sliderMode);
}
}
@@ -852,33 +852,33 @@ KANE_QuNeo.closeSliderMode = function () {
// choose which controls to disconnect based on which mode we are exiting
switch (KANE_QuNeo.sliderMode) {
case 0:
- engine.connectControl("[Channel1]","waveform_zoom",
- "KANE_QuNeo.deck1ZoomLEDs",true)
- engine.connectControl("[Channel2]","waveform_zoom",
- "KANE_QuNeo.deck2ZoomLEDs",true)
- engine.connectControl("[Channel1]","playposition",
- "KANE_QuNeo.deck1CursorLEDs",true)
- engine.connectControl("[Channel2]","playposition",
- "KANE_QuNeo.deck2CursorLEDs",true)
- break;
+ engine.connectControl("[Channel1]","waveform_zoom",
+ "KANE_QuNeo.deck1ZoomLEDs",true)
+ engine.connectControl("[Channel2]","waveform_zoom",
+ "KANE_QuNeo.deck2ZoomLEDs",true)
+ engine.connectControl("[Channel1]","playposition",
+ "KANE_QuNeo.deck1CursorLEDs",true)
+ engine.connectControl("[Channel2]","playposition",
+ "KANE_QuNeo.deck2CursorLEDs",true)
+ break;
case 1:
- engine.connectControl("[Channel1]","pregain","KANE_QuNeo.deck1Pregain",true)
- engine.connectControl("[Channel2]","pregain","KANE_QuNeo.deck2Pregain",true)
- engine.connectControl("[Channel1]","rate","KANE_QuNeo.deck1Rate",true)
- engine.connectControl("[Channel2]","rate","KANE_QuNeo.deck2Rate",true)
- break;
+ engine.connectControl("[Channel1]","pregain","KANE_QuNeo.deck1Pregain",true)
+ engine.connectControl("[Channel2]","pregain","KANE_QuNeo.deck2Pregain",true)
+ engine.connectControl("[Channel1]","rate","KANE_QuNeo.deck1Rate",true)
+ engine.connectControl("[Channel2]","rate","KANE_QuNeo.deck2Rate",true)
+ break;
case 2:
- engine.connectControl("[Channel1]","filterHigh","KANE_QuNeo.deck1Highs",true)
- engine.connectControl("[Channel2]","filterHigh","KANE_QuNeo.deck2Highs",true)
- break;
+ engine.connectControl("[Channel1]","filterHigh","KANE_QuNeo.deck1Highs",true)
+ engine.connectControl("[Channel2]","filterHigh","KANE_QuNeo.deck2Highs",true)
+ break;
case 3:
- engine.connectControl("[Channel1]","filterMid","KANE_QuNeo.deck1Mids",true)
- engine.connectControl("[Channel2]","filterMid","KANE_QuNeo.deck2Mids",true)
- engine.connectControl("[Channel1]","filterLow","KANE_QuNeo.deck1Lows",true)
- engine.connectControl("[Channel2]","filterLow","KANE_QuNeo.deck2Lows",true)
- break;
+ engine.connectControl("[Channel1]","filterMid","KANE_QuNeo.deck1Mids",true)
+ engine.connectControl("[Channel2]","filterMid","KANE_QuNeo.deck2Mids",true)
+ engine.connectControl("[Channel1]","filterLow","KANE_QuNeo.deck1Lows",true)
+ engine.connectControl("[Channel2]","filterLow","KANE_QuNeo.deck2Lows",true)
+ break;
default:
- print("ERROR: unknown slider mode "+KANE_QuNeo.sliderMode);
+ print("ERROR: unknown slider mode "+KANE_QuNeo.sliderMode);
}
}
@@ -909,17 +909,17 @@ KANE_QuNeo.visualNudge = function (deck, direction) {
var channelName = KANE_QuNeo.getChannelName(deck)
if (!(KANE_QuNeo.visualNudge[channel])) { // if we are not already nudging,
- KANE_QuNeo.visualNudge[channel] = 1; // set us to nudging,
- // then set timer to see if button is held for more than half a second
- KANE_QuNeo.visualNudgeTimers[channel].push(
- engine.beginTimer(KANE_QuNeo.visualNudgeHoldTime,
- "KANE_QuNeo.visualNudgeHeld("+deck+","+direction+")",
- true))
- // then do the pressed nudge
- KANE_QuNeo.doVisualNudge(deck, direction);
+ KANE_QuNeo.visualNudge[channel] = 1; // set us to nudging,
+ // then set timer to see if button is held for more than half a second
+ KANE_QuNeo.visualNudgeTimers[channel].push(
+ engine.beginTimer(KANE_QuNeo.visualNudgeHoldTime,
+ "KANE_QuNeo.visualNudgeHeld("+deck+","+direction+")",
+ true))
+ // then do the pressed nudge
+ KANE_QuNeo.doVisualNudge(deck, direction);
} else // if we are nudging, this press is to stop nudging
- KANE_QuNeo.visualNudge[channel] = 0;
+ KANE_QuNeo.visualNudge[channel] = 0;
}
KANE_QuNeo.visualNudgeHeld = function (deck, direction) {
@@ -929,8 +929,8 @@ KANE_QuNeo.visualNudgeHeld = function (deck, direction) {
KANE_QuNeo.visualNudge[channel] = direction;
// ...so set a persistent scroll timer
KANE_QuNeo.visualNudgeTimers[channel].push(
- engine.beginTimer(KANE_QuNeo.visualNudgeSpeed,
- "KANE_QuNeo.doVisualNudge("+deck+","+direction+")"))
+ engine.beginTimer(KANE_QuNeo.visualNudgeSpeed,
+ "KANE_QuNeo.doVisualNudge("+deck+","+direction+")"))
}
KANE_QuNeo.doVisualNudge = function (deck, direction) {
@@ -938,8 +938,8 @@ KANE_QuNeo.doVisualNudge = function (deck, direction) {
var channelName = KANE_QuNeo.getChannelName(deck)
// calculate new position
var newPosition = engine.getValue(channelName,"visual_playposition")
- + (KANE_QuNeo.visualNudgeDist * direction);
-
+ + (KANE_QuNeo.visualNudgeDist * direction);
+
// now apply to both visual and actual position