Sending Audio Data over WIFI?

I don't know if this is feasible with Arduino or not, but here is my pitch. I'll need help picking components as well.

I want to build an OSC guitar. I've been messing with Roland Guitar synth stuff for a while and I don't like it, I can't stand MIDI and the tracking is slow and limited in functionality. I'm moving most of my rig over to digital anyway so I thought I might as well see if I can get a wireless guitar synth that uses OSC rather than MIDI.

My plan is to basically hook a roland GK pickup into an arduino and send the data with a WIFI shield to a router I'll use as my wireless access point to the computer. The GK uses a 13 pin cable, 6 pins of which will be audio (one for each string). The other 7 pins are used for control messages (buttons switches etc). I have 2 Uno R3's at my disposal, but I know they only have 6 analog inputs which doesn't technically work for the 13 pin cable, but the important stuff (the audio) would have room.

I do not plan to do any audio analysis on the Arduino itself, I realize that is probably beyond its capabilities, but is it able to sample and digitize the audio coming in on the analog inputs? I'm not opposed to buying a different Arduino board. The Leonardo has more inputs, but I've never used one. The Mega seems a bit overkill and would be used for a much bigger project I think, but I'm not sure. Would the DUE have the requisite processing power to deal with this? It says it has a 32 bit processor so maybe it has a better ability to sample and digitize? And is the WIFI shield compatible with the Leonardo, Mega, or DUE?

The actual analysis and conversion of the audio into OSC and further processing and synthesis of sound will be done on a PC, probably in Max MSP, Csound, and VST or a combination.

Is this even remotely possible?

Is this Roland pickup a midi device? If so you should not have any trouble interfacing with it.

If you are considering doing anything with actual analog audio, forget about it, the arduino can't handle it... Unless you want very basic info from it, certainly not transmitting it.

The roland pickup is not a midi device itself. It is a regular magnetic guitar pickup except that it is divided among the strings, so each string has its own pickup. This is for pitch tracking on outboard gear that converts the audio into midi.

I don't want to use MIDI whatsoever in this project. The leads from the pickup will be audio that I have to process into basic pitch information and parse it as Open Sound Control (OSC) messages, which use UDP. I need to figure out how much can be done on arduino, I already have the plan to do most of the work on the PC, but I have to get that information there first. That's what I'm trying to figure out.

Before you worry too much about dealing with the Roland thingee, you might want to spend some time getting the WiFi shield to handle sending UDP packets, first.

Good advice. I haven't yet looked at the library even.

I haven't yet looked at the library even.

One of the most common complaints is that WiFi doesn't do UDP.

If your hardware is a limitation, I use the WiFly bee with the Roving Networks RN-XV chipset and it does support UDP Wifi 11b/g comms. That chipset is also available in shield and breakout forms.

Cheers ! Geoff

PaulS: One of the most common complaints is that WiFi doesn't do UDP.

I guess the preferred workaround currently would be an Ethernet shield plus a patch cord connecting to one of those little one port Ethernet/Wifi routers?

Well I know OSC works just fine over WIFI. apps like TouchOSC are pretty popular and I always use wireless when I set them up. Are we talking wifi in General? or just the WIFI shield?

Advoc: just the WIFI shield?


or just the WIFI shield?

Specifically, only the official WiFi shield.

Hmmmm.. Ok thanks guys. I'll get to figuring this out.

You might not expect this. The Wifly shield is not fast enough. There is a huge delay while you fill each buffer then wait for it to send. The limitation is not the Arduino. It is the Wifly throughput. It is slower than XBee using a serial interface.

I'm assuming the Ethernet shield won't have the same limitation?

I'm assuming the Ethernet shield won't have the same limitation?

Which one? The inability to handle UDP? No, it won't. The fact that it is too slow? Yes, it probably will.

I've had great success using the Ethernet shield and OSC into Max/MSP. Ethernet is faster with no noticeable delay, when going via a WIFI router it was noticeably slower.