Estoy tratando de trabajar en un proyecto de iluminación reactiva y estoy confundido acerca de un par de temas cuando se trata de muestrear audio.
Quiero poder tener una iluminación reactiva RGB controlada por un microcontrolador que muestre el audio desde un conector de audio estándar (como desde un teléfono). Estoy planeando usar un conector de audio de sonido mono para simplificar todo.
Mi principal preocupación es cómo muestrear realmente el audio. Según tengo entendido, desde la toma de audio de un teléfono la señal ya está en forma analógica, y necesita ser probada nuevamente en el microcontrolador, y creo que necesitaría una frecuencia de muestreo de alrededor de 20kHz para capturar la mayoría de las frecuencias en el audio.
En el pasado, he usado Arduinos para proyectos que muestrean a ~ 8kHz con la función estándar audioread (). Pude usar una biblioteca que tenía anteriormente e interrupciones en C para lograr una frecuencia de muestreo de ~ 10kHz, lo cual no es mucho mejor. ¿Necesitaría comprar hardware más rápido o hay una manera de aumentar la frecuencia de muestreo en microcontroladores más baratos?
También me preocupa que, aunque pueda muestrear la señal lo suficientemente rápido, el procesamiento de mi iluminación reactiva pueda demorar demasiado y el muestreo disminuya. Planeo usar FFT y calculo una frecuencia dominante de las últimas X muestras (que se determinará según la frecuencia de muestreo) y las cuantifico en diferentes colores. ¿Qué tipo de limitaciones de tiempo hay aquí? Si conozco la frecuencia de muestreo, puedo calcular el tiempo entre muestras, pero ¿hay alguna forma de calcular el tiempo que se tarda en ejecutar un bucle del algoritmo de iluminación reactiva? Si pudiera hacer eso, podría ver si mi algoritmo es lo suficientemente rápido para mantenerse al día.
Estoy tratando de resolver todo esto antes de ir a comprar piezas para este proyecto, por lo que agradecemos cualquier ayuda.