Imagina poder ‘programar’ música con unas pocas líneas de JavaScript: eso es lo que nos ofrece Dittytoy

0
80

Un código de programación, de cualquier clase, tan sólo es una serie de instrucciones que, al ejecutarse, ofrece un determinado resultado previsible. Puede (suele) ser una aplicación, pero también puede ser un sitio web, un documento imprimible, una imagen… o música. Y precisamente para los aficionados a esta última, hace ahora un mes, se anunciaba el lanzamiento de Dittytoy.

Su desarrollador, Reinder Nijhoff, lo explicaba así:

«En los últimos meses, he pasado parte de mi tiempo libre desarrollando Dittytoy: una plataforma en línea que te permite crear música usando una API de JavaScript minimalista. Toda la música en Dittytoy se genera completamente en código. Por lo tanto, no esperes ver nodos de audio fáciles de usar que se conectan mediante cables virtuales o una interfaz gráfica de usuario que le permita definir patrones fácilmente».

Es decir, algo muy similar a lo que ya logró hacer el propio Nijhoff con la generación de gráficos, con su anterior plataforma Turtletoy, dotada también de su propia API minimalista de JavaScript.

¿Qué ofrece Dittytoy?

La sintaxis de la API de Dittytoy se basa libremente en la de otro proyecto similar, Sonic Pi, y puedes informarte sobre ella en la documentación oficial. ¿Quién sabe? Quizá tu futuro esté en la composición musical.

En resumen, esto es lo que conocemos como música generativa, capaz de incorporar numerosas pistas (y bucles, filtros, etcétera) que se reproducen (ejecutan) según lo indicado en el código, con las pistas como códigos numéricos y los acordes como funciones. Si lo único que conoces de ‘escribir música’ se limita a los pentagramas de toda la vida, no vas a entender nada, eso sí.

Un ejemplo del potencial de esta herramienta la ofrece el siguiente ‘ditty’ (obra publicada en Dittytoy), que utiliza tan sólo 19 KB de código para emular uno de los clásicos de la música electrónica, el ‘Oxygène Pt. 4’ de Jean-Michel Jarre (aquí la versión original):