WiiMote for MIDI control
This page has all the resources necessary to use a WiiMote for MIDI control.
Specifically the software on this page will allow you to use an IR LED pointing at the WiiMote to track gestures and translate them into MIDI data.
For this you’ll need:
- A PC or laptop with bluetooth.
- A WiiMote
- A 5mm IR LED
- A 3V battery (RS 23-189)
- A 1K Resistor (1/4Watt, carbon film)
- MIDIOX / MidiYoke software
- A Software Synthesizer
The LED, battery and resistor can all be obtained from Radio Shack.
Connecting the WiiMote to the PC
You will need to use the right kind of Bluetooth software to pair with a WiiMote. Unfortunately The one that comes with Windows does not do a very good job.
A good alternative is the BlueSoliel package. You can download a demo here
There are some good instructions on how to pair a WiiMote to PC here
Running the software
Once you have the WiiMote paired correctly you can go ahead and run the WiiMote to MIDI software application.
You can either download the free C# development environment from here and build the source code, or you can just download the executable package here.
If you have paired the WiiMote successfully the application should run without giving an error.
Building the LED device.
The IR light is just an LED, connected to a resistor, then to a battery. The device I built for the demo took about 15 seconds with parts from my junk drawer, and it shows. A more robust solution would be to get an LED flashlight and swap out the LED for the IR one. Although this will requre soldering.
NOTE: An LED has a long leg and a short leg, the long leg must go to the positive connection of the battery. You MUST connect the 1K resistor in series with the LED, if you hook it directly to the battery it is likely it will very quickly burn out.
Since you cannot see IR light, a good way to check if the LED is working is to look at it though a camera, or video camera. The sensor of the camera will see the IR light and show it as white light in the display.
You can now test your IR device by running the software, you should see a colored circular “blob” indicator appear in the black window, that tracks the position of your hand. If this is working OK you can now proceed to the final step.
Hooking up the Software Synth
This is the only tricky part.
First lets find a free software synth that you can run. One of my favourites is SuperWave P8 – which is a closely modelled software version of the Roland JP-8000. You can download it from this page.
Since the P8 is a Virtual Studio Technology (VST) plug-in, not an exe we can run, we need a host to run it. One of the best ones is available here.
Here’s how it should look if you get P8 running inside the host application.
If we were using a regular hardware synth we would connect a MIDI cable from the output of the computer to the input of the synth. Since everything is running inside the computer we need a way of creating an internal MIDI cable to connect two devices.
There is an application called MIDIYoke that does just this. I would install MIDI OX and MIDI Yoke from here.
Once installed you need to connect the input of your synth (P8) to the output from the program. To do this set the input of the P8 to the MIDI port “MIDI Yoke 1″, and go into Windows control panel and set the Audio Properties -> Audio Tab -> MIDI Music Playback to “Out to MIDI Yoke : 1″.
Finally putting it all together…
So if you have your WiiMote connected, the app running, your synth installed and hosted *and* some speakers hooked up (Phew!) you should now be able to play the virtual Theremin…
This is only the beginning of course – The Wiimote also provides accelerometer data, and the IR tracking can handle X and Y position of up to 4 points…



