Encender LEDS según frecuencia de música.

Buenas. Me gustaría saber como hacer un encendido de leds según el tipo de frecuencia con Arduino UNO. He estado buscando información sobre como hacerlo pero estoy bastante perdido.
He leído que arduino tiene un rango de recepción de frencuencias muy limitado.

O sea que quieres hacer un FFT del sonido que ingresa por un AD del arduino y en funcion de las componentes prender mas o menos los leds?

Osea, lo que quiero hacer. Perdonad, no me supe explicar muy bien. Quiero hacer un psicodelico de 12 canales. La entrada de sonido sería con un MP3. Lo que estoy pidiendo es un proyecto muy parecido a este que encontré:

http://forum.arduino.cc/index.php?topic=31865.0

El problema es que no me aclaro con el programa ya que directamente al compilar, no me deja.

Muchas gracias de antemano por su atención. En este tema del arduino de momento sigo muy verde y ya empecé a estudiar los libros básicos. Pero para este proyecto aun no me aclaro y por mucho que busque en los libros, no encuentro la solución.

Un saludo.

Lo que hago primero es obtener la transformada de fourier de la señal de sonido, gracias a la libreria. Una vez obtenido, la separo en 240 barras equidistantes de forma lineal, para agrupar bandas de frecuencias

Que es Transformada de Fourier es la operación matemática que te permite pasar del dominio del tiempo al dominio de las frecuencias.
En el dominio del tiempo tenemos amplitud y frecuencia en el dominio de la frecuencia tenemos amplitud y frecuencia.

Una señal de audio esta formado por un sinnúmero de señales sonidales de diferente amplitud y frecuencia que sumadas forman lo que escuchas, tu archivo MP3.
Si haces la FFT Fast Fourier transform obtienes las frecuencias componentes y su amplitud.
Algo graficable con leds por ejemplo.

Pero el post del que hablas no hace eso.
Usa processing y arduino. Processing hace la fft y arduino presenta los datos en los calculados y enviados por el serial.

Cual es el problema? Muestra los errores.
Dinos que arduino usas, que versión de IDE, y copia y pega los errores

Muchas gracias, Al final he utilizado otro programa que si me funciona conectándole directamente el audio de mp3 a la entrada.

He utilizado este ejemplo de este enlace:

Que por lo visto hace la FFT que me has comentado.
Ahora el único problema que tengo es que quiero agrupar los valores a 24 Bandas en ves de 3 bandas que me sale en el ejemplo ( graves, medios y agudos).
No se muy bien que cosas tengo que modificar del programa para añadirle mas bandas ya que desgraciadamente mi nivel de arduino empieza a ser algo básico.

Utilizo el ArduinoUNO

la version de programa es Arduino 1.5.2

Gracias.

Bueno quieres las buenas o malas noticias?
Buenas es que ya tienes un código.
Malas es que el UNO no puede manejar 24 bandas.
Gracias a dios maneja o hace los calculos para 3.

Vas a necesitas un Mega o un DUE.
Habria que ver.
Tienes el código?
Yo veo si puedo modificarlo para mas bandas pero hay que probarlo a ver si el MEGA puede con ese calculo.

Busqué en internet y encontré esto

Voy a poner un código y quiero que intentes correrlo en tu UNO con la señal de audio a ver que resultados tienes. Y lo mas importante, si éstos resultados son aproximadamente en tiempo real. Esta claro que tiene que calcularlos y eso lleva algunos milisegundos pero veamos que percepción tienes.
Liberia FFT2

ArduinoFFT2.zip (28.7 KB)

Ya, Me temí que con el UNO no se pudiera, pero y si utilizara dos arduinos UNO? y que cada uno calcule un rango de frecuencia? cada arduino que maneje 12 salidas
voy a ver si corre.

incluyo el redorder_table_creator dentro del proyecto? el de las tres salidas?

No. Prueba el sketch a ver que tal funciona con tu UNO.
SI lo notas lento en respuesta entonces piensa en serio en MEGA o DUE.
Si no puedes gastar en un MEGA o DUE para lograr lo que pides... no se. No se puede reinventar la rueda.
Dos UNOS no me parece logico.
Tienes que ligar a los dos unos lo que lleva tiempo, nunca estarían sincronizados.

Siento mi ingorancia pero no entiendo el sKetch y no se que tengo que abrir exactamente porque me salen muchos archivos.

No quedarían los dos UNOs sincronizados si les envio a la entrada la misma señal de música? solo que en el programa de cada unomida un rango de frecuencias distinto. En teoría mide hasta unos 19KHz. Pues un uno mida hasta 8,5KHz y el otro que mida de 8,5Khz hasta los 19KHz. y cada uno haga el psicodélico para 12 LEDS de ese rango de frecuencia establecido.

No puedes hacer eso porque la FFT no se puede dividir en frecuencas bajas y altas.
Todo el calculo debe hacerse por el mismo procesador. Asi que no sirve tu idea que ahora que la entendí estaba buena.
Lo que te indiqué que bajaras es la librería que debes incorporar a c:\archivos de programa (x86)\arduino\libraries

dentro tienes un ejemplo puedes usar ese, o copiarlo a otro directorio porque en ese lugar no pueden hacerse ediciones a los archivos o no te permitirá guardarlos mas tarde.