audio input controlled Midi interfaced for RGB-LED lights

i own a sound company on the side and have LED lights that are daisy chained with XLR and controlled currently by a mix board with fader control and some other output controls, this board also has a Midi interface that allows the user to control the board by a midi signal. Id like to take the analog audio that we output from our board and turn it into a digital midi signal to operate the board biased on the frequency. example 20-40 htz would light up cans 3and4, 50-100 would light up in a different colour on cans 1and2, and on and on.

You can probably do that.

LED lights that are daisy chained with XLR and controlled currently by a mix board with fader control and some other output controls...

I assume the lights are DMX controlled? It would probably be better to go audio-to-DMX. But, if your lighting controller doesn't have a DMX input or any other computer/digital input, I guess you're stuck with MIDI (if you want to continue using that lighting controller board).

The first thing to do would be build a MIDI controller to send MIDI messages to your lighting controller. You should be able to find some example projects. Get that working before you get involved with the audio sensing. That's a fairly common project and you should be able to find examples. You'll just have to modify the code/ commands to work with your lighting controller instead of a MIDI keyboard/instrument.

For the audio, you have a couple of choices. For frequency-sensing, the simplest solution is the [u]MSGEQ7 chip[/u]. (They call the chip a "graphic equalizer display," but it's really a spectrum analyzer effect chip.) It filters the audio into 7 bands, and then sends-out a multiplexed DC voltage for each band (so you only need to use one analog input on the Arduino). You can't get more than 7-bands, and you can't choose the center-frequencies, but it makes for a very simple hardware design, and you can combine the data or ignore some of the frequency-bands bands in software if you want less than 7 bands..

Another option is FFT, which isolates the frequency bands in software. Of course, this gives you more flexibility, but the software is much more complicated. (There is an FFT library so you don't have to write the code from scratch.) With this option, you need to bias the input at 2.5V, since the Arduino input cannot handle the negative half of the audio waveform. (That's just 2 resistors and a capacitor.)

A 3rd option would be analog filters built with op-amps (one for each frequency-band). You probably don't want to do that!


I always mention a trick I use with the lighting effects I've built - I keep a 20-second moving average of the volume and I use that as a reference (or some of my effects use the 20-second peak as a reference). I also automatically switch between the 5V and 1.1V ADC reference depending on the loudness. That way, the effects automatically adjust to quiet or loud songs, or changes in the volume control and the lighting controller doesn't need any kind of manual sensitivity control.

I've never done anything that's frequency-sensitive... (Well, a million years ago when I was kid I built a color organ from a kit, but I got bored with it.) All of my effects are simply controlled by the volume, and I have several different sequencing-chasing, blinking-pattern effects that are randomly activated (I think there are 8 different "modes"). One of my effects is a "VU Meter". All of my effects are randomly reversed (so the VU Meter goes down instead of up, or right-to-left depending on how the lights are arranged). All of the effects are also randomly inverted (so louder turns-off the lights in the VU Meter instead of on, etc.).

Another simple effect is that I throw-up a random on-off pattern (with some lights on and some off). Then, the on/off state of each light is changed with the loudness/beat. Or, the lights that are off will come-on (or flicker-on) when the volume is louder than average, and turn-off when it's less than average. The lights that are happen to on in the random pattern work in the opposite direction, flickering-off with loudness.

all very good tips and ill look at all as options but yes they are DMX lights i forgot to mention that. Anything on those?