WiiMote for MIDI control

New for 2011 – check out the MIDI Camera
– gesture control with no Bluetooth, or even a PC!

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.

How to hook up the IR LED

How to hook up the IR LED

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.

Hosting P8 inside VSTHost

Hosting P8 inside VSTHost

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…

{ 6 comments… read them below or add one }

Oleg Savchenko November 9, 2010 at 2:11 am

Nice project. And it is possibly to make all of this without windows-PC-library?
Only by Arduino sketch and sure with your MidiRelay software???

Stephen Hobley November 10, 2010 at 3:29 pm

Yes this is possible – one day I hope to release this as another project.

Albert de Jonge December 8, 2010 at 5:45 am

Hello Stepen,

I have truble with the frequency of the wii mote.
I am busy to upgrade my laser harp to a frameless one.
Everyting works with your explonation with the wii mote and the software, only the frequency of the wii is faster than the galvo’s of my laser.
I use a ILDA/DMX 200mw green laser with 45k galvo.
I’l get music out of mij laser harp, but the notes are blinking, like morse-code.
With a single laser beam i have a constant tone.
I have no filter on the wii at this moment, i am loking for that.

My first laser harp is also on your site. The 3 picture under to the left (the red one).
My new laser harp is to find on: http://www.youtube.com/watch?v=xiAofmiSp60

I hope you can help me with some details.

Albert de Jonge
The Netherlands

Peter Evenhuis September 24, 2011 at 4:59 am

Also the windows 7 bluetooth software works, only one trick is required.
After pairing the WII and the pc and uploading success full the drivers automatic, you most remove the pairing again.
Then you pair again but this time the drivers are on your pc.
I keep the 1+2 keys pressed and release them after4 sec and press again for 4 sec
Then fast starting the wiimote.exe, I have the folder all this time open to be fast.
And a red laser pointer is working perfect to trigger.

Benjamin July 30, 2012 at 7:21 pm

Hello, Can you give instruction on how to do this on Mac OS X 10.7?
I am a lecturer at NYU in their graduate teaching department and would love to implement this in a lesson. I will certainly give you credit if you can help, thanks

Dominik January 31, 2013 at 6:37 am

Hey there!
I downloaded the executable package and have it running.
Main reason I want to use a wii to midi software is that I want to link the accelerometer data to knobs of a vst synth and the buttons to playing notes. Is that possible with WiimoteTest.exe? Btw, I´m using Ableton Live. I clicked on the “midi” checkbox in your app, but I don´t get any data through midiyoke 1 or any other virtual port. Is there any way to set a midi output port in that application? I´m a bit confused right now and I would appreciate your help.
Kind regards
Dominik Symann

Leave a Comment

Comments links could be nofollow free.

{ 1 trackback }