.

Si sólo tenemos en cuenta la fecha, hoy, 5 de abril, hace 27 años que murió Kurt Cobain y pasó a formar parte del club de los 27. Puede que no hable mucho de Nirvana pero, si la memoria no me falla, la primera canción que toqué en público fue «Smells Like Teen Spirit», con Ángel cantando, Andrés y Pas a la guitarra, Jimmy al bajo y servidor a la batería. Puede que fuera en el festival November Rain de 2000 y poco pero ahora mismo no recuerdo. Además, me estoy yendo por las ramas. Hablando de ramas…

A lo que iba. Hace un par de días publicaron en Rolling Stone un artículo basado en la figura de Cobain sobre

un proyecto compuesto por canciones escritas y mayoritariamente interpretadas por máqinas, al estilo de […] músicos que murieron con 27 años de edad: [Kurt Cobain], Jimi Hendrix, Jim Morrison y Amy Winehouse. Cada pista es el resultado de programas de I.A. analizando hasta 30 canciones de cada artista y estudiando granularmente las melodias de las pistas de voces, cambios de acordes, riffs y solos de guitarra, patrones de batería y letras, para adivinar cómo sonarían sus «nuevas» composiciones. El proyecto es el trabajo de Over the Bridge, una organización basad en Toronto que ayuda a miembros de la industria musical lidiando con enfermedades mentales.

El proyecto se llama Lost Tapes of the 27 Club y en el artículo explican que usaron Magenta para procesar ficheros MIDI de distintas secciones de diferentes temas, generando igualmente un MIDI al que aplicaron efectos para hacerlo sonar lo más realista posible. Las letras tuvieron un procesado similar y, en el caso de Nirvana, fueron interpretadas por el cantante de un grupo de tributo.

Diseño de Lost Tapes of the 27 Club.

Sin ánimo de frivolizar sobre un esfuerzo para concienciar sobre la importancia de una buena salud mental, tampoco me habría parecido mal que hubieran probado a usar a un imitador de Schwarzenegger, a modo de gracia, para hacernos una idea de cómo sonaría esto.

.

Cuando veo proyectos como el NSynth Super siempre me lamento de no gestionar mejor mi tiempo y encontrar un rato para experimentar con Magenta. Al final acabo llegando a la conclusión que no hay horas suficientes en el día para hacer todo lo que me gustaría, por mucho que me organizase, aunque suene a excusa.

Con todo, por muy auto-convincente que resulte mi racionalización, esa sensación volvió a surgirme al toparme (vía Hacker News) con DrumBot, una aplicación web que te permite tocar música en tiempo real con una batería de aprendizaje automático que toca basándose en tu melodía. […] Utiliza el mismo modelo GrooVAE que el plugin Drumify de Magenta Studio para generar pistas de batería que haga juego con la melodía del usuario. […] [Puedes] tocar con DrumBot desde tu navegador o echárle un vistazo al código en GitHub.

Fotograma de un vídeo que muestra DrumBot en funcionamiento. Fuente: YouTube [].

Ya que lo que procesa son instrucciones MIDI lo primero que me he preguntado es si se podría utilizar con melodías de canciones para ver qué percusión genera. Sin irme a lo excesívamente complejo, probaría con un par de compases de «I’m Broken» de Pantera o «Master of Puppets» de Metallica con cambios de tiempo, para ver qué produce. Lo único es que las secciones con cambios de ésta última están en octavos y, por lo poco que he visto, parece que cuenta cuartos. En el caso de Metallica, me sigue pareciendo más interesante la generación las pistas de batería con redes LSTM.

.

En mayo del año pasado mencionaba NSynth, un proyecto de síntesis de audio utilizando Magenta con un modelo basado en WaveNet. En esencia, es un algoritmo de aprendizaje automático que utiliza redes neuronales profundas para aprender las características de sonidos y después crear un sonido nuevo basado en ellas.

Me entero ahora que el mes pasado presentaron un instrumento basado en esta tecnología, denominado NSynth Super:

Es un instrumento experimental de código abierto [, creado en colaboración con Google Creative Lab,] que permite […] hacer música utilizando sonidos completamente nuevos generados con el algoritmo NSynth a partir de cuatro sonidos originales disintos.

Prototipo de NSynth Super.

Lo más interesante es que todo el código fuente, los esquemas y las plantillas de diseño están disponibles en GitHub.

[El] repositorio contiene todas las instrucciones y ficheros requeridos para construir un instrumento Open NSynth Super desde cero, y puedes usarlas para hacer tu propia versión. Cualquiera puede hacer un fork del código y los esquemas para remezclar el instrumento de cualquier manera que desee.

Partes de un NSynth Super.

Aunque el invento en sí me ha llamado la atención lo primero que me ha venido a la cabeza tras verlo es Open Stomp, un pedal de código abierto cuya web ahora sólo se puede ver en la Wayback Machine, y del que dejé una reseña por aquí hace casi diez años.

.

La semana pasada hablaba de un sintetizador neuronal paramétrico de canto y ahora me topo con NSynth, un proyecto de síntesis de audio utilizando Magenta con un modelo basado en WaveNet:

Uno de los objetivos de Magenta es aplicar aprendizaje automático al desarrollo de nuevas formas de expresión humana. Así que hoy estamos orgullosos de anunciar NSynth (Neural Synthesizer), una aproximación novedosa a la síntesis de música diseñada para asistir en el proceso creativo.

A diferencia de sintetizadores tradicionales que generan audio a partir de componentes hechos a mano, como osciladores y tables de ondas, NSynth utiliza redes neuronales profundas para generar sonidos al nivel de muestras individuales. Aprendiendo directamente de los datos, NSynth ofrece a los artistas un control intuitivo sobre el timbre y la dinámica, y la habilidad de explorar nuevos sonidos que sería difícil o imposible de producir con un sintetizador afinado a mano.

Las cualidades acústicas del instrumento aprendido dependen tanto del modelo usado como los datos de entrenamiento disponibles, así que estamos encantados de publicar mejoras de ambos:

Un descripción completa del conjunto de datos y el algoritmo se puede encontrar en nuestra publicación en arXiv.

Visión general del autocodificador WaveNet de NSynth

Aunque no he tenido oportunidad de cacharrear con TensorFlow no es la primera vez que aparece Magenta por aquí: hace unos meses mencionaba unos experimentos musicales con inteligencia artificial que me tentaban a echar un ojo a las herramientas de aprendizaje automático que utilizan. De momento me lo apunto como otra referencia.

.

La semana pasada me pasaron el enlace a Quick, Draw!, una especie de Pictionary donde tu pareja que intenta adivinar lo que estás dibujando es una red neuronal. Como juego es gracioso pero lo que me gustó aún más fue descubrir que forma parte de un grupo de experimentos de inteligencia artificial de Google. De ellos, dos tienen un corte claramente musical.

El primero es The Infinite Drum Machine, una caja de ritmos básica que permite utilizar en tu navegador miles de sonidos cotidianos. La gracia de este experimento reside en que la catalogación y agrupación de sonidos la ha hecho una máquina utilizando un algoritmo de aprendizaje automático t-SNE sobre el audio exclusivamente, sin utilizar etiquetas o cualquier otro tipo de indicaciones.

Los que tengan el tiempo y los conocimientos adecuados pueden explorar el código fuente de The Infinite Drum Machine en GitHub, algo en lo que invertiría el primero de los dos requisitos anteriores (si lo tuviera) para ver si puedo adquirir un poco más del segundo requisito.

Fotograma del vídeo de presentación de The Infinite Drum Machine [01m51s].

El segundo experimento que llamó mi atención fue A.I. Duet, una red neuronal ya entrenada que «responde» a las melodías que pueda crear una persona, creada utilizando Tone.js y herramientas de Magenta. Aunque en este caso todavía no hay una versión web donde jugar con el experimento, se puede explorar código fuente de A.I. Duet en GitHub.

Fotograma del vídeo de presentación de A.I. Duet [02m14s].

Debo admitir una cierta envidia sana al ver estos proyectos. Hace no tanto dejaba por aquí un apunte sobre redes neuronales que componían pistas de batería aprendiendo de Metallica y ya entonces me lamentaba de no tener tiempo para explorar estas materias.