Saturday, January 12, 2008

A 'full' Wii-Drum kit

So I've been playing with the wii-motes on the PC for a while now, on and off. Karl Kenner's GlovePIE makes it very easy to fiddle around with the various input and output parameters of the device. One of the demos that come with GlovePIE include a simple 'drumming' script that was based on the work done by Bob Somers. This script continuously measures the force values of the wii-mote, and if it is beyond a certain level, a midi drum note is triggered depending on the buttons that are being pressed at the time.

A snippet of the code appears as follows:
var.yRot = Wiimote1.RelAccY
...
...
if var.yRot > 25 then
var.S = Wiimote1.A and ...[combination of buttons]
....
endif
else
var.S = false
endif

Midi.AcousticSnare = var.S
...

If you duplicate the code for a second wii-mote, then you could have two drum 'sticks'. However, another major component of a 'real' drum kit is missing: the foot pedals. Since you can attach a nunchuk controller to each wii-mote, and the connecting cord is long enough to reach from your hands to feet (when sitting down), it seemed like a good idea to emulate the foot pedals with nunchuk controllers. And thats what I did. The result is here:




I simply added another variable that's hooked up to the nunchuk's force values, and an additional if loop that triggers the bass drum, and hi-hat on the two different nunchuks, respectively. An 'open' high hat is also added by looking at the pitch of the hi-hat nunchuk. So if you have your foot up, and hit a normal hi-hat with the 'stick' (wii-mote in hand), it will generate the open hi-hat sound.

Here is the code. If you have any questions feel free to ask me.

And by replacing the midi note triggers with keyboard inputs that correspond to the ones used in the DTXMania simulator, I was able to do this: (sorry about the song, which apparently not a lot of people like ;)