Wireless sound transmission from mixer to Arduino

Hi,

My project is a dancer's costume embedded with LED strip lighting that I wish to control using sound from a theater mixing desk, via Arduino. Due to the nature of the project, wires are not an option. I'm a somewhat experienced lighting systems tech and coder but very new to Arduino, so forgive me if I'm missing something excruciatingly obvious! :slight_smile:

Thoughts on signal flow are as follows: Mixer -> Arduino 1 at ops desk -> transmitter -> Arduino 2 on performer beltpack -> RGB strip. I'll also incorporate a low pass filter at some point, to allow for rudimentary beat tracking.

My two concerns are:

  1. I want to use spectral analysis to determine RGB intensity attributes for the LEDs. Should this be performed pre-transmission to lower data throughput, or on the performer's Arduino? Does this matter? Is there a way to do this with just one Arduino for as cheap, since sound quality doesn't matter (as long as I get decent low end response) and I really only need RGB values for my output?

  2. What are the pros and cons of different wireless transmission systems? Between AM/FM radio, Bluetooth, XBEE, etc., which would you prefer for this task and why? I'm not hugely keen on Bluetooth, I'll need at least 20m range and may not have constant line of sight. I'm fine with a pretty complicated setup if it's robust.

Cheers!

Should this be performed pre-transmission to lower data throughput

Yes. No sense transmitting data that can't be used. Of course, without knowing exactly how you will transform "the data", this is just an educated guess.

Is there a way to do this with just one Arduino for as cheap

I'm not sure how you expect to get "the data" (whatever data that is), into an Arduino, transform it, and send that data to another Arduino, while only using one Arduino. Perhaps you glossed over some details.

sound quality doesn't matter

Oh, good. Not that it matters. The Arduino is NOT defining the quality of the sound.

(as long as I get decent low end response)

So, it DOES matter. Why did you say it didn't?

What are the pros and cons of different wireless transmission systems?

Some of the design considerations are cost, range, reliability, speed, and how much of the work is done by the radio vs. the microcontroller.

Between AM/FM radio, Bluetooth, XBEE, etc., which would you prefer for this task and why?

XBees. They are reliable, easy to use, do most of the work of making sure as much data as possible gets through, looking exactly like what was sent, and have decent range. The only drawback is that they are not cheap. You can even transmit the same data to multiple receivers.

Broadcasting on AM channels could require a license, and don't expect that to be easy to get or cheap. Broadcasting on FM channels WILL require a license, and don't expect that to be easy to get or cheap.

Bluetooth is simple, once you've chosen the right hardware AND paired it. But, range is not good and you can only have the two devices in the network. And, YOU do all the work to make sure that the data gets through, and what is received is what was sent.

Cheers PaulS, sorry for the hasty composition.

The "one Arduino" case was a brief thought in which I figured it was possible to use a cheap wireless microphone and connect its receiver to a single Arduino on the performer, but I'll likely be ruling that out. I was not referring to sound quality in a sense of fidelity, but rather the ability to receive and process low frequencies. Hence, low end "response". Good to know it doesn't matter though!

"the data" - still haven't decided on my exact methods there yet, but the idea is to sum an audio signal to mono (or use a mono signal) and split it to three bands (<200Hz, 200Hz-2kHz, >2KHz). I'd then obtain integer values based on intensity for each, and use that to control PWM voltage output for red, green, and blue channels on the strip respectively.

Thanks for the education on the different transmission methods too, that was super helpful as it's a bit of a gap in my knowledge. I'll probably use XBee, seems like the way to go. That would allow for potential expansion to multiple performers too!

Hope I've cleared some things up :slight_smile: