Wiimote revisited

I noticed that the Wiimote is no longer listed as a remote control device so I thought to take a look at it. My son has a wii and I have a bluetooth dongle.

What I found is that since Wii was added to Ardour, there has been a driver added to the kernel that treats the wiimote as an input device. My guess is that this breaks the older drivers.

With the newer kernels (3.13 is what I am using) the wiimote shows up as /dev/input/event* (event10 in this case)

So, I have forked actkbd to add a jack midi back end which I call it midikb and with a suitable config file midikb will convert any of the Wiimote key presses to MIDI events that I can see on gmidimonitor. Because midikb can be configured to use any MIDI event for each key, there are some interesting possibilities.

The Wiimote keys can be set to match mackie control protocol events if you already have one and the jack midi port for the wiimote can be connected to the same Ardour midi port as the MCP device (assuming it has a master section) and the Wiimote will act as a wireless remote control that works along with the MCP.

The Wiimote can be set to whatever MIDI events and be used as a generic remote either with a device file or with MIDI learn. Just a quick test here using MIDI learn allowed me to use the Wimote to arm record, roll, stop, goto beginning or end.

Because midikbd is based on actkbd, it is also possible to have a key run a command directly… for example the home key could be used to start Ardour in the first place or run some other script.

The bad news is that finding the event* file that works is mostly trial and error as they do not show up in the by-id or by-path directory like my USB keyboard does. And there seem to be 4 new event files that show up when the wiimote is plugged in… In my case it was the third one that worked for me. Also I don’t seem to be able to send LED on/off to the Wiimote.

Interesting, I hope I can get some time to play with this sounds fun.

Got any links to your work?


Sorry, http://www.ovenwerks.net/hardware/index.html
The source tarball is at the bottom. I need to revisit it I think as I have learned a few things since I last looked at it.

I should also add another example config file that deals with the Wiimote.

Anyone have some good ideas for what the buttons should do? I would like to make a map for midikb that makes sense. Works with mcp for example. Remember that the wiimote can be held/set in more than one way. So any suggestions should also include the orientation the wiimote should be held in. I am looking at the Ardour Wiimote code. I will set up something that works with those I guess…