//Vj NeXus custom Resolume 2.4 control using Nintendo Wiimote and Nunchuk //Version 0.9 //Feel free to distribute and tweak, but please just leave my name at the top var.xOffset = 8 var.yOffset = -37 var.zOffset = 12 var.xRot = Wiimote1.SmoothRoll + 50//+ var.xOffset var.yRot = Wiimote1.SmoothPitch //+ var.yOffset debug = "X=" + var.nunJoyX + " Y=" + var.nunJoyY + " Z=" + wiimote1.RawForceY //Layer Opacities //This formula took some tweaking, but this works for me. Feel free to play with the numbers to get different sesitivities. if (wiimote1.A and not wiimote1.B and not wiimote1.nunchuk.ZButton and not wiimote1.nunchuk.CButton) var.opacity1 = ((Wiimote1.SmoothPitch+30)/90) endif midi.Control14 = var.opacity1 //Effect Controls if (wiimote1.B and not wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton and not wiimote1.A) var.effectP1 = var.xRot/100 endif midi.Control21 = var.effectP1 if (wiimote1.B and wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton and not wiimote1.A) var.effectP2 = var.xRot/100 endif midi.Control22 = var.effectP2 if (wiimote1.B and wiimote1.nunchuk.ZButton and not wiimote1.nunchuk.CButton and not wiimote1.A) var.effectP3 = var.xRot/100 endif midi.Control71 = var.effectP3 if (wiimote1.B and wiimote1.nunchuk.CButton and wiimote1.nunchuk.ZButton and not wiimote1.A) var.effectP4 = var.xRot/100 endif midi.Control7 = var.effectP4 //Active Layer Speed Controls if (wiimote1.Right) var.speed = ((Wiimote1.SmoothPitch+30)/90) endif midi.Control94 = var.speed //Layer Selection //Controls Led lighting also. If a layer is changed using a different device, the leds will not reflect this. if (wiimote1.Down and not wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton) var.layer1 = true else var.layer1 = false endif if (wiimote1.Left and not wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton) var.layer2 = true else var.layer2 = false endif if (wiimote1.Up and not wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton) var.layer3 = true else var.layer3 = false endif midi.c2 = var.layer1 midi.dsharp2 = var.layer2 midi.fsharp2 = var.layer3 if (var.layer1 = true and var.layer2 = false and var.layer3 = false) wiimote1.Led1 = true wiimote1.Led2 = false wiimote1.Led3 = false endif if (var.layer2 = true and var.layer1 = false and var.layer3 = false) wiimote1.Led2 = true wiimote1.Led1 = false wiimote1.Led3 = false endif if (var.layer3 = true and var.layer1 = false and var.layer2 = false) wiimote1.Led3 = true wiimote1.Led1 = false wiimote1.Led2 = false endif //Move Active Layer up/down if (wiimote1.nunchuk.CButton and wiimote1.Up and not wiimote1.nunchuk.ZButton and not wiimote1.A and not wiimote1.B) var.moveUp = true else var.moveUp = false endif midi.e9 = var.moveUp if (wiimote1.nunchuk.CButton and wiimote1.Down and not wiimote1.nunchuk.ZButton and not wiimote1.A and not wiimote1.B) var.moveDown = true else var.moveDown = false endif midi.f9 = var.moveDown //Move Active Effect up/down if (wiimote1.nunchuk.ZButton and wiimote1.Up and not wiimote1.nunchuk.CButton and not wiimote1.A and not wiimote1.B) var.moveUp = true else var.moveUp = false endif midi.csharp1 = var.moveUp if (wiimote1.nunchuk.ZButton and wiimote1.Down and not wiimote1.nunchuk.CButton and not wiimote1.A and not wiimote1.B) var.moveDown = true else var.moveDown = false endif midi.d1 = var.moveDown //Clear Active Layer var.clearActive = (wiimote1.One and wiimote1.nunchuk.ZButton and not wiimote1.Two and not wiimote1.nunchuk.CButton) midi.asharp0 = var.clearActive //Reset midi note - if this isn't done its as if this note is held down and never released midi.c2 = false midi.dsharp2 = false midi.fsharp2 = false //next deck, previous deck if (wiimote1.Plus and not wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton and not wiimote1.A and not wiimote1.B) var.nextDeck = true else var.nextDeck = false endif if (wiimote1.Minus and not wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton and not wiimote1.A and not wiimote1.B) var.prevDeck = true else var.prevDeck = false endif midi.c9 = var.nextDeck midi.csharp9 = var.prevDeck //bypass layer/effect var.bypassLayer = (wiimote1.One and not wiimote1.Two and not wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton) var.bypassEffect = (wiimote1.Two and wiimote1.One and not wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton) midi.d9 = var.bypassLayer midi.dsharp9 = var.bypassEffect //Toggle Direction Active Layer if (wiimote1.Home and not wiimote1.nunchuk.CButton and not wiimote1.nunchuk.ZButton) var.toggleActive = true else var.toggleActive = false endif midi.fsharp3 = var.toggleActive //nunchuck variable definitions var.nunForce = wiimote1.Nunchuk.RawForceY var.nunJoyX = wiimote1.Nunchuk.JoyX var.nunJoyY = wiimote1.Nunchuk.JoyY var.nunC = wiimote1.Nunchuk.CButton var.nunZ = wiimote1.Nunchuk.ZButton //Nunchuck clip selection if (var.nunForce > 70) //no buttons held - top row of clips if (var.nunJoyX < -.90 and var.nunJoyY < .2 and not var.nunC and not var.nunZ and not wiimote1.Two) midi.c4 = true endif if (var.nunJoyX > -.80 and var.nunJoyX < -.2 and var.nunJoyY < -.6 and var.nunJoyY > -.9 and not var.nunC and not var.nunZ and not wiimote1.Two ) midi.d4 = true endif if (var.nunJoyX > -.20 and var.nunJoyX < 0.2 and var.nunJoyY < -.8 and var.nunJoyY < -.8 and not var.nunC and not var.nunZ and not wiimote1.Two ) midi.e4 = true endif if (var.nunJoyX < 0.90 and var.nunJoyX > 0.2 and var.nunJoyY < -.5 and var.nunJoyY > -.9 and not var.nunC and not var.nunZ and not wiimote1.Two ) midi.f4 = true endif if (var.nunJoyX > .90 and var.nunJoyY < .2 and not var.nunC and not var.nunZ and not wiimote1.Two) midi.g4 = true endif //C button held - 2nd row of clips if (var.nunJoyX < -.90 and var.nunJoyY < .2 and var.nunC and not var.nunZ and not wiimote1.Two) midi.a4 = true endif if (var.nunJoyX > -.80 and var.nunJoyX < -.2 and var.nunJoyY < -.6 and var.nunJoyY > -.9 and var.nunC and not var.nunZ and not wiimote1.Two ) midi.b4 = true endif if (var.nunJoyX > -.20 and var.nunJoyX < 0.2 and var.nunJoyY < -.8 and var.nunJoyY < -.8 and var.nunC and not var.nunZ and not wiimote1.Two ) midi.c5 = true endif if (var.nunJoyX < 0.90 and var.nunJoyX > 0.2 and var.nunJoyY < -.5 and var.nunJoyY > -.9 and var.nunC and not var.nunZ and not wiimote1.Two ) midi.d5 = true endif if (var.nunJoyX > .90 and var.nunJoyY < .2 and var.nunC and not var.nunZ and not wiimote1.Two) midi.e5 = true endif //Z button held - 3rd row of clips if (var.nunJoyX < -.90 and var.nunJoyY < .2 and not var.nunC and var.nunZ and not wiimote1.Two) midi.f5 = true endif if (var.nunJoyX > -.80 and var.nunJoyX < -.2 and var.nunJoyY < -.6 and var.nunJoyY > -.9 and not var.nunC and var.nunZ and not wiimote1.Two ) midi.g5 = true endif if (var.nunJoyX > -.20 and var.nunJoyX < 0.2 and var.nunJoyY < -.8 and var.nunJoyY < -.8 and not var.nunC and var.nunZ and not wiimote1.Two ) midi.a5 = true endif if (var.nunJoyX < 0.90 and var.nunJoyX > 0.2 and var.nunJoyY < -.5 and var.nunJoyY > -.9 and not var.nunC and var.nunZ and not wiimote1.Two ) midi.b5 = true endif if (var.nunJoyX > .90 and var.nunJoyY < .2 and not var.nunC and var.nunZ and not wiimote1.Two) midi.c6 = true endif //Both buttons held - 4th row of clips if (var.nunJoyX < -.90 and var.nunJoyY < .2 and var.nunC and var.nunZ and not wiimote1.Two) midi.d6 = true endif if (var.nunJoyX > -.80 and var.nunJoyX < -.2 and var.nunJoyY < -.6 and var.nunJoyY > -.9 and var.nunC and var.nunZ and not wiimote1.Two ) midi.e6 = true endif if (var.nunJoyX > -.20 and var.nunJoyX < 0.2 and var.nunJoyY < -.8 and var.nunJoyY < -.8 and var.nunC and var.nunZ and not wiimote1.Two ) midi.f6 = true endif if (var.nunJoyX < 0.90 and var.nunJoyX > 0.2 and var.nunJoyY < -.5 and var.nunJoyY > -.9 and var.nunC and var.nunZ and not wiimote1.Two ) midi.g6 = true endif if (var.nunJoyX > .90 and var.nunJoyY < .2 and var.nunC and var.nunZ and not wiimote1.Two) midi.a6 = true endif endif //Current Layer Playhead Position if (wiimote1.nunchuk.CButton and wiimote1.Home and not wiimote1.nunchuk.ZButton and not wiimote1.B and not wiimote1.A and not wiimote1.Two) var.playHead = (((var.nunJoyX + 1)/2)) endif midi.Control20 = var.playHead //Pause / Play Active Layer if (wiimote1.nunchuk.CButton and wiimote1.Minus and not wiimote1.nunchuk.ZButton and not wiimote1.B and not wiimote1.A and not wiimote1.Two) var.pause = true else var.pause = false endif midi.a2 = var.pause if (wiimote1.nunchuk.CButton and wiimote1.Plus and not wiimote1.nunchuk.ZButton and not wiimote1.B and not wiimote1.A) var.play = true else var.play = false endif midi.asharp2 = var.play //Random / Play Active Layer if (wiimote1.nunchuk.ZButton and wiimote1.Minus and not wiimote1.nunchuk.CButton and not wiimote1.B and not wiimote1.A and not wiimote1.Two) var.random = true else var.random = false endif midi.b2 = var.random if (wiimote1.nunchuk.ZButton and wiimote1.Plus and not wiimote1.nunchuk.CButton and not wiimote1.B and not wiimote1.A) var.play = true else var.play = false endif midi.asharp2 = var.play //Select Effect Layer if (var.nunForce > 60) if (var.nunJoyX > -.80 and var.nunJoyX < -.2 and var.nunJoyY > .6 and var.nunJoyY < .9 and not wiimote1.nunchuk.ZButton) midi.fsharp4 = true else midi.fsharp4 = false endif if (var.nunJoyX < .20 and var.nunJoyX > -.2 and var.nunJoyY > .9 and not wiimote1.nunchuk.ZButton) midi.gsharp4 = true else midi.gsharp4 = false endif if (var.nunJoyX < .80 and var.nunJoyX > .2 and var.nunJoyY > .6 and var.nunJoyY < .9 and not wiimote1.nunchuk.ZButton) midi.asharp4 = true else midi.asharp4 = false endif endif //Clear Effect Layer if (var.nunForce > 60) if (var.nunJoyX > -.80 and var.nunJoyX < -.2 and var.nunJoyY > .6 and var.nunJoyY < .9 and wiimote1.nunchuk.ZButton) midi.fsharp7 = true else midi.fsharp7 = false endif if (var.nunJoyX < .20 and var.nunJoyX > -.2 and var.nunJoyY > .9 and wiimote1.nunchuk.ZButton) midi.gsharp7 = true else midi.gsharp7 = false endif if (var.nunJoyX < .80 and var.nunJoyX > .2 and var.nunJoyY > .6 and var.nunJoyY < .9 and wiimote1.nunchuk.ZButton) midi.asharp7 = true else midi.asharp7 = false endif endif //Nunchuck effect selection if (var.nunForce > 60) //no buttons held - 5 effect notes if (var.nunJoyX < -.90 and var.nunJoyY < .2 and not var.nunC and not var.nunZ and wiimote1.Two) midi.c8 = true wait 80ms endif if (var.nunJoyX > -.70 and var.nunJoyX < -.2 and var.nunJoyY < -.7 and var.nunJoyY > -.9 and not var.nunC and not var.nunZ and wiimote1.Two ) midi.csharp8 = true wait 80ms endif if (var.nunJoyX > -.20 and var.nunJoyX < 0.2 and var.nunJoyY < -.8 and var.nunJoyY < -.8 and not var.nunC and not var.nunZ and wiimote1.Two ) midi.d8 = true wait 80ms endif if (var.nunJoyX < 0.90 and var.nunJoyX > 0.2 and var.nunJoyY < -.7 and var.nunJoyY > -.9 and not var.nunC and not var.nunZ and wiimote1.Two ) midi.dsharp8 = true wait 80ms endif if (var.nunJoyX > .90 and var.nunJoyY < .2 and not var.nunC and not var.nunZ and wiimote1.Two) midi.e8 = true wait 80ms endif //C button held - 5 more effect notes if (var.nunJoyX < -.90 and var.nunJoyY < .2 and var.nunC and not var.nunZ and wiimote1.Two) midi.f8 = true wait 80ms endif if (var.nunJoyX > -.80 and var.nunJoyX < -.2 and var.nunJoyY < -.6 and var.nunJoyY > -.9 and var.nunC and not var.nunZ and wiimote1.Two ) midi.fsharp8 = true wait 80ms endif if (var.nunJoyX > -.20 and var.nunJoyX < 0.2 and var.nunJoyY < -.8 and var.nunJoyY < -.8 and var.nunC and not var.nunZ and wiimote1.Two ) midi.g8 = true wait 80ms endif if (var.nunJoyX < 0.80 and var.nunJoyX > 0.2 and var.nunJoyY < -.6 and var.nunJoyY > -.9 and var.nunC and not var.nunZ and wiimote1.Two ) midi.gsharp8 = true wait 80ms endif if (var.nunJoyX > .90 and var.nunJoyY < .2 and var.nunC and not var.nunZ and wiimote1.Two) midi.a8 = true wait 80ms endif //Z button held - 5 more effect notes if (var.nunJoyX < -.90 and var.nunJoyY < .2 and not var.nunC and var.nunZ and wiimote1.Two) midi.asharp8 = true wait 80ms endif if (var.nunJoyX > -.80 and var.nunJoyX < -.2 and var.nunJoyY < -.6 and var.nunJoyY > -.9 and not var.nunC and var.nunZ and wiimote1.Two ) midi.b8 = true wait 80ms endif if (var.nunJoyX > -.20 and var.nunJoyX < 0.2 and var.nunJoyY < -.8 and var.nunJoyY < -.8 and not var.nunC and var.nunZ and wiimote1.Two ) midi.e1 = true wait 80ms endif if (var.nunJoyX < 0.80 and var.nunJoyX > 0.2 and var.nunJoyY < -.6 and var.nunJoyY > -.9 and not var.nunC and var.nunZ and wiimote1.Two ) midi.dsharp1 = true wait 80ms endif if (var.nunJoyX > .90 and var.nunJoyY < .2 and not var.nunC and var.nunZ and wiimote1.Two) midi.d1 = true wait 80ms endif endif //Active Overlay Mode var.remoteHit = wiimote1.RawForceY if (var.remoteHit < -60) if (var.nunJoyX < -.90 and var.nunJoyY < .2 and not var.nunC and not var.nunZ and not wiimote1.Two) midi.dsharp5 = true wait 80ms endif if (var.nunJoyX > -.80 and var.nunJoyX < -.2 and var.nunJoyY < -.6 and var.nunJoyY > -.9 and not var.nunC and not var.nunZ and not wiimote1.Two ) midi.fsharp5 = true wait 80ms endif if (var.nunJoyX > -.20 and var.nunJoyX < 0.2 and var.nunJoyY < -.8 and var.nunJoyY < -.8 and not var.nunC and not var.nunZ and not wiimote1.Two ) midi.csharp4 = true wait 80ms endif if (var.nunJoyX < 0.90 and var.nunJoyX > 0.2 and var.nunJoyY < -.5 and var.nunJoyY > -.9 and not var.nunC and not var.nunZ and not wiimote1.Two ) midi.dsharp4 = true wait 80ms endif if (var.nunJoyX > .90 and var.nunJoyY < .2 and not var.nunC and not var.nunZ and not wiimote1.Two) midi.a1 = true wait 80ms endif endif