diff options
Diffstat (limited to 'res/controllers/KANE_QuNeo_scripts.js')
-rw-r--r-- | res/controllers/KANE_QuNeo_scripts.js | 1740 |
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 |