Intérprete de partituras musicales

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:


Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *