// Johnty's version of Will T.'s Version of Carl's version of Bob's Version of Wii Drums! No other program required. Video demo here: http://www.youtube.com/watch?v=5KhQuUFGST4 midi.DeviceOut=1 //change this to another value if you want to control an extrenal midi device var.NTrigger = 15 var.xRot = Wiimote1.Nunchuk.RelAccX var.yRot = Wiimote1.RelAccY var.zRot = Wiimote1.RelAccZ var.pitch = Wiimote1.Nunchuk.SmoothPitch Wiimote1.Leds= 1 Wiimote2.Leds= 2 //angle at which to 'open' the hi-hat. //adjust depending on how you have it attached to your feet if (var.pitch>-35) then var.open= true else var.open=false endif // Debug debug = var.bD + " " + var.hH + " " + var.pitch //var.pitch+ " p="+var.open+" X=" + var.xRot + " Y=" + var.yRot + " Z=" + var.zRot + " batt1="+Wiimote1.Battery + " batt2="+Wiimote2.Battery // Downward drum beat triggered if var.yRot > 25 then var.S = Wiimote1.A and not (Wiimote1.B or Wiimote1.Minus or Wiimote1.Home or Wiimote1.Plus) var.C = Wiimote1.A and Wiimote1.B and not (Wiimote1.Minus or Wiimote1.Home or Wiimote1.Plus) var.T = Wiimote1.Minus and not (Wiimote1.A or Wiimote1.B or Wiimote1.Home or Wiimote1.Plus) var.M = Wiimote1.Home and not (Wiimote1.A or Wiimote1.B or Wiimote1.Minus or Wiimote1.Plus) var.L = Wiimote1.Plus and not (Wiimote1.A or Wiimote1.B or Wiimote1.Minus or Wiimote1.Home) var.H = not(Wiimote1.A or Wiimote1.B or Wiimote1.Minus or Wiimote1.Home or Wiimote1.Plus) var.ride= Wiimote1.B and not (Wiimote1.A or Wiimote1.Minus or Wiimote1.Home or Wiimote1.Plus) if (var.open = true) then var.X= not(Wiimote1.A or Wiimote1.B or Wiimote1.Minus or Wiimote1.Home or Wiimote1.Plus) endif else var.S = false var.H = false var.C = false var.T = false var.M = false var.L = false var.X = false var.ride= false endif //Nunchuk 1: high hat pedal var.N1Offset = -10; var.hH=Wiimote1.Nunchuk.RawForceY + var.N1Offset if var.hH>var.NTrigger then var.H2 = true else var.H2 = false endif Midi.volume = 100% Midi.AcousticSnare = var.S Midi.CrashCymbal1 = var.C Midi.HighMidTom = var.T Midi.LowMidTom = var.M Midi.LowTom = var.L Midi.ClosedHiHat = var.H Midi.ClosedHiHat = var.H2 Midi.OpenHiHat = var.X Midi.RideCymbal1 = var.ride // note, unfortunately you can't set those Midi values inside the IF // because IF statements in GlovePIE cause it to send the midi message // again even if it hasn't changed, whereas outside IF statements it // only sends a MIDI message if it has changed. var.xRot = Wiimote2.Nunchuk.RelAccX var.yRot = Wiimote2.RelAccY var.zRot = Wiimote2.RelAccZ var.N2Offset = -22; var.bD= Wiimote2.Nunchuk.RawForceY//(sqr(Wiimote2.Nunchuk.RawForceY)+sqr(Wiimote2.Nunchuk.RawForceX)+sqr(Wiimote2.Nunchuk.RawForceZ)); // Debug //debug = "X=" + var.xRot + " Y=" + var.yRot + " Z=" + var.zRot // Downward drum beat triggered if var.yRot > 25 then //var.B = Wiimote2.B and not (Wiimote2.A or Wiimote2.Minus or Wiimote2.Home or Wiimote2.Plus) var.S = Wiimote2.A and not (Wiimote2.B or Wiimote2.Minus or Wiimote2.Home or Wiimote2.Plus) var.C = Wiimote2.A and Wiimote2.B and not (Wiimote2.Minus or Wiimote2.Home or Wiimote2.Plus) var.T = Wiimote2.Minus and not (Wiimote2.A or Wiimote2.B or Wiimote2.Home or Wiimote2.Plus) var.M = Wiimote2.Home and not (Wiimote2.A or Wiimote2.B or Wiimote2.Minus or Wiimote2.Plus) var.L = Wiimote2.Plus and not (Wiimote2.A or Wiimote2.B or Wiimote2.Minus or Wiimote2.Home) var.H = not(Wiimote2.A or Wiimote2.B or Wiimote2.Minus or Wiimote2.Home or Wiimote2.Plus) var.ride= Wiimote2.B and not (Wiimote2.A or Wiimote2.Minus or Wiimote2.Home or Wiimote2.Plus) if (var.open = true) then var.X= not(Wiimote2.A or Wiimote2.B or Wiimote2.Minus or Wiimote2.Home or Wiimote2.Plus) endif else //var.B = false var.S = false var.H = false var.C = false var.T = false var.M = false var.L = false var.X = false var.ride= false endif //Nunchuk 2: bass drum pedal if var.bD> 20 then var.B=true else var.B=false endif Midi.volume = 100% Midi.BassDrum1 = var.B Midi.AcousticSnare = var.S Midi.CrashCymbal1 = var.C Midi.HighMidTom = var.T Midi.LowMidTom = var.M Midi.LowTom = var.L Midi.ClosedHiHat = var.H Midi.OpenHiHat = var.X Midi.RideCymbal2 = var.ride // note, unfortunately you can't set those Midi values inside the IF // because IF statements in GlovePIE cause it to send the midi message // again even if it hasn't changed, whereas outside IF statements it // only sends a MIDI message if it has changed.