Quiero que mi proyecto Arduino escuche la música ambiental y sincronice la salida de su espectáculo de luces al ritmo.
Parece que hacer la detección de BPM correctamente es extremadamente difícil en el software, pero si tu música es Lo suficientemente doofy en la naturaleza y usas un poco de hardware que puedes engañar y salirse con la suya.
Por lo tanto, mi plan es conectar un mic / opamp breakout board a un simple filtro de paso bajo pasivo de primer orden y muestrea la entrada en una interrupción cada 5 ms o menos. Audacity me dice que el ritmo de un bajo es de alrededor de 15 ms de largo, por lo que cada 5 ms debería ser suficiente para asegurarse de que no, er, "señorita un latido ".
Si mi muestra de paso bajo está por encima de un umbral de volumen, registraré el tiempo desde el último tiempo, realizaré algún tipo de cálculo de promedio ponderado en las últimas muestras y eso me permitirá predecir cuántos ms hasta el próximo ritmo (algunos trucos de software podrían ser necesarios para dar cuenta de las caídas de bajos y breakbeats .)
En primer lugar, ¿tengo aproximadamente la idea correcta?
En segundo lugar, ¿puede alguien decirme qué valores de orden de magnitud necesitaré para la resistencia y el condensador? Me imagino que quiero que mi frecuencia de corte sea de 500-1000Hz. También reúno la resistencia del resto de los recuentos de mi circuito, pero no estoy seguro de dónde medir esa resistencia. Un poco de complicidad con esta herramienta me da respuestas que parecen razonables (500Hz = 330Ω / 1uF) pero no No sé lo suficiente como para saber realmente.
Un ejemplo de esquema que muestre dónde mido la resistencia del circuito existente y dónde va el filtro de paso bajo en el contexto del resto sería extremadamente útil.