.

He bastantes menciones a Web Audio pero eso no significa que me deje de interesar cuando me encuentro con algo como la web de Ableton para aprender a utilizar un sintetizador que vi señalada en Hacker News.

Captura de la interfaz de learningsynths.ableton.com.

Curioseando en el código de la página parece que tira de three.js, tone.js, lodash, algunos componentes de node.js para el navegador y react, aunque no he llegado a ver bien cómo está montado todo. Me ha pasado igual que con el sintetizador multi-toque que veía hace unos años: sin una vista clara del código fuente y/o una explicación del autor tendría que ponerme a diseccionar cómo funciona, y me falta tiempo para dedicarle a esta clase de distracciones.

.

Llego vía Echo JS a un artículo de Tero Parviainen titulado «JavaScript Systems Music: Learning Web Audio by Recreating The Works of Steve Reich and Brian Eno»:

In this guide we’ll explore some of the history of systems music and the possibilities of making musical systems with Web Audio and JavaScript. We’ll pay homage to three seminal systems pieces by examining and attempting to recreate them: «It’s Gonna Rain» by Steve Reich, «Discreet Music» by Brian Eno, and «Ambient 1: Music for Airports«, also by Brian Eno.

Diagrama completo de Discreet Music.

He hecho algún experimento con Web Audio pero proyectos y explicaciones como esta animan a probar más cosas. Y, aunque nunca he abordado directamente la música de sistemas, sí que he tenido contacto tangencial con este tema. Hace algo más de un año ya señalaba la obra de Steve Reich en la entrada sobre las visualizaciones de Alexander Chen y, antes de eso, mencionaba programas como Max (a su vez mencionado en una cita del artículo de Parviainen) en la reseña sobre música imposible.

.

No recuerdo dónde oí por primera vez «una idea es una responsabilidad» pero me resulta admirable la gente que es capaz de ponerla en práctica. Una de estas personas es Paul Lewis, trabajador de Google, que se planteaba los siguiente:

Given we have the Web Audio API and getUserMedia, I wondered if I could make a passable guitar tuner. Looks like I can, and in the process I learned way more stuff about audio than I care to mention. Cool stuff, though! I thought I’d do a breakdown of what went into building it.

No contento con desarrollar su idea en su página explica algunos detalles de todo este proyecto personal. Una lectura muy interesante y muy recomendable.

.

No tengo mucho tiempo para seguir las sesiones de Google I/O 2014, aunque algunas parecen especialmente interesantes. Una de ellas es la de Chris Wilson, titutlada Making Music with the Web Platform:

Making Music with the Web Platform [07m51s]

El vídeo no detalla los aspectos técnicos de las posibilidades que esboza, lo que le permite cubrir bastantes temas. Sólo un problema concreto, el de la sincronzación, ya da para un artículo bastante extenso en HTML5 Rocks del propio Wilson. Al final la charla se me hace algo corta y me deja queriendo saber más, aunque supongo que esa es parte de la misión de estos vídeos. También es verdad que ya acumulo unas cuantas entradas de programación en JavaScript, con más temas de los que puedo explorar como me gustaría. Así que me apunto esto también, para cuando tenga tiempo.

.

Hace algo más de un año me apunté una reseña en Hacker News para cuando tuviera algo más de tiempo libre. Viendo el tiempo pasado, mejor lo dejo por aquí antes de que la tecnología involucrada esté obsoleta o haya evolucionado tanto que no sea reconocible:

Shiny Happy WebAudio MIDI-fied Drum Machine es una caja de ritmos que utiliza dos APIs en estado Working Draft de la W3C, el de Web Audio y el de Web MIDI. El primero lo había visto antes pero el segundo, al no tratar habitualmente con dispositivos MIDI, no me resulta familiar:

[…] The Web MIDI API is intended to enable direct access to devices that respond to MIDI – external synthesizers or lighting systems, for example, or even the software synthesizers that are built in to many common operating systems. The Web MIDI API is also explicitly designed to enable a new class of applications on the web that can respond to MIDI controller inputs – using external hardware controllers with physical buttons, knobs and sliders (as well as musical controllers like keyboard, guitar or wind instrument controllers) to control web applications.[…]