Este proyecto nace a partir de una colaboración. Una persona estaba haciendo un pequeño proyecto para intentar reproducir notas con dos altavoces a la vez con un Arduino. Se encontró con un problema: no se sincronizaban. A un recién iniciado le costaría resolver este problema.
Al ver la situación y el potencial del proyecto, me ofrecí a ayudarlo para pulirlo y ampliarlo.
Lo primero fue pasar el archivo simple de ejecución a una librería. La librería se llama XibStave.
A partir de aquí, se fueron puliendo los primeros aspectos de la sincronización de los altavoces utilizando los temporizadores. Gracias a eso, ya se pudieron usar dos altavoces, incluso más, dependiendo de la cantidad de temporizadores hardware disponibles en el Arduino a utilizar.
A continuación, se fue ampliando el soporte de duraciones y notas musicales, y se indicó la nomenclatura en distintos idiomas. Con la ayuda del conocimiento musical de la otra persona, se pudieron recrear correctamente los tiempos musicales a través de los BPM.
Por último, se realizó una optimización general, por ejemplo, de los tamaños de array, ya que al ser tantas notas llenaban la RAM y no era necesario un tamaño de celda tan grande.
Su uso se reduce a escribir en un array bidimensional la nota y la duración que se desee.
Demostración del funcionamiento:
Deja una respuesta