Interested in experimenting with MIDI, minus the wires? Why not try a DIY hack yourself? Limor Fried aka Lady Ada of Adafruit Industries has posted a detailed tutorial on transmitting MIDI over the inexpensive and relatively friendly XBee wireless module.

It’s a bit of a hack – you force the XBee to communicate at MIDI baud rate, and on Windows, at least, you have to fool the OS into using MIDI’s non-standard baud rate for serial communications. But it seems to work. That’s where you come in: Limor’s got some folks testing this, but we could use some additional real-world tests and a “port” of the instructions to Mac OS and Linux. (I’ll be testing, too, once I get my hands on some spare XBees.)

Tutorial: Using XBees to create a wireless bi-directional MIDI link []

HOW TO – Using XBees to create a wireless bi-directional MIDI link [adafruit blog]

Ingredient list:

  • XBee module
  • Adafruit’s own handy XBee Adapter Kit (an adapter board that makes it easier to add the wireless module to your own projects)
  • Parts for making the MIDI adapter: MIDI connectors, optocoupler, hex inverter
  • A computer (Limor runs Windows, but any OS should work)
  • Some MIDI gear (see: hardware manufactured from the mid-1980s to now)


How does this compare to commercially-available wireless MIDI adapters? Honestly, I have no idea – that’s where we could use some real-world tests. (Yeah, I know – I’m really helpful. But then, there’s still a compelling argument for wires in many situations.) My guess is, if you’re serious about wireless MIDI, you may want to consider other alternatives.

If you’re serious about wireless, in fact, you may want to look beyond MIDI. Brian Kerr, who brought his own wireless controller to a recent Handmade Music night, chose OpenSoundControl after unsuccessfully testing MIDI. The problem with OSC, of course, is that you really need MIDI on the other end for almost all hardware (like Limor’s own x0xb0x 303 clone). OSC is a better choice if you’re building your own project – you can always convert back to MIDI on the other end, but you have the convenience of OSC over wireless and can use OSC natively with software that supports it. (Visual software, tools like Max, Processing, and SuperCollider, and – I really do believe – soon, music software will work.)

But then again, this is a fantastic way to experiment with the XBee and to try some fun stuff with MIDI gear you’ve already got hanging around – and may be just fine for some applications. I’m eager to hear how it goes. More on wireless control and projects soon – stay tuned. Thanks for the great work on this, Limor!

  • I hope we'll soon see OSC in sound apps too. Kind of strange there's no more high end device that use it (beside the monome and jazzmutant multitouch device).

    Maybe some hack will emerge with max for live ?

  • joseki

    but why would anyone need a wireless midi device?

  • TJ


  • dan

    Cool hack!

    About $70 worth of components though, and a lot of work for something that isn't near as "plug and play" on multiple OS's as this $120 M-Audio "MidAir" thing is:

    It says it uses 2.4GHz as well, maybe they've just commercialized the use of Zigbee for wireleess MIDI (anyone have one to open up and find out what chipset they're using)? But the wireless part of this thing is unidirectional, not bidirectional like the XBees.

    One last thing – Limor, correct me if I'm wrong here, but doesn't leaving the host-based XBee configured to 9600baud cause a bottleneck in the bandwidth? If the FTDI chip in that cable can't talk to the XBee faster than 9600, then if you send lots of MIDI data from the remote device (e.g. by moving the pitch bend wheel) then wont it get "clogged up"?

  • @dan 9600 baud is just an example, you can go as high as 115k or as low as 2400. 9600 is just to indicate that it -doesnt- have to be 31250 which is not natively supported by windows
    also, as you noted, there are lots of commercial version. i checked these out and there may be situations you'd want this sort of thing. as you noted, this is bidirectional. also, it can be used 'backwards' such as connecting a non-midi device to midi (wireless battery powered monome?), or midi-to-midi with no computer. xbees also can happily do point-multipoint or mesh. not being forced to use a MIDI-interface may make interfacing easier, especially if you dont want to go thru a MIDI library. if you -just- want computer to keyboard this may not be for you. but if you want to connect computer, arduino and laser harp all together, it could come in handy! 🙂

  • i guess the burning question on my (everyone's?) lips is what kind of latency is there with a simple ping? whilst i'm not sure i see any artistic benefit of the wireless midi thing, it could be one more reason to push that laptop off stage and have peoples eyes on you, not your glowing apple logo…

    oh no! then we'll have to start performing again! ha

  • Latency appeared to be within reasonable limits. The problem is, variables — as you play more complex stuff, as you add other wireless devices as Limor describes, the latency added by the computer, etc. So more research is needed. 🙂 Could be interesting, though.

  • CharlieH

    @dan Just FYI, the M-Audio MidAir is bidirectional.

  • @galapagoose its 6ms

  • @charlieH the photo is a little confusing but it is, in fact, unidirectional. Only keyboard->computer

  • You might also want to try S2MIDI instead of the Korg driver, it's an open-source serial to MIDI driver:

    It will appear to the system as a MIDI driver, and you can configure it to listen to any serial port, including the serial over USB returned by the FTDI drivers.

  • I've been looking for something like this to echo key hits from my playing to VDMX, so I can get some interactivity with my visuals without having to worry about anything but the song I'm already playing. If there's already a commercially available transmitter though, I might save my xbee for something more exotic.