lunes, 22 de noviembre de 2010

David Cope y Composición por Computador

En semanas anteriores encontré información sobre el profesor David Cope, de la Universidad de Santa Cruz, en California (UCSC), y me motivó tánto este tema que estuve alejado de este blog desde entonces. 

El profesor Cope usa algoritmos interesantes para componer música nueva. Dice que cuando empezó, no sabía mucho sobre programación de computadores, (aunque toca el piano desde los 5 años) pero se motivó a aprender, y le tomó dos años escribir su programa.

Os invito a ver el documental en YouTube:




Esta especialidad de composición musical asistida por computador cae dentro de varias disciplinas, principalmente música y computación, y se vale de varias técnicas modernas de "Inteligencia Artificial" para lograr su objetivo.

Por supuesto, primero hay que entender sobre las reglas de armonía, contrapunto, forma musical, etc. También es preciso haber estudiado un poco de historia de la música (para saber identificar y catalogar los diferentes estilos) y haber estudiado algunas de las composiciones de los compositores más famosos (entre los que se destacan Bach, Mozart, y Beethoven, por sus innumerables y hermosas melodías).

Entre las técnicas que se utilizan están: algoritmos generativos, cadenas de Markov (autómatas probabilísticos), procesos estocásticos, algoritmos genéticos, probabilidad Bayesiana, caos y determinismo, autómatas celulares, redes neurales, redes de transición, teoría de gramáticas, fractals, y otras técnicas.

Para codificar las reglas, se pueden utilizar los lenguajes tradicionales de Inteligencia Artificial (LISP y Prolog), que son ideales para procesamiento simbólico, pero también se pueden utilizar lenguajes modernos, como Ruby o Python.

Dice el profesor Cope que estuvo metiendo "frases" de varios compositores en su base de datos, de manera que el programa puede componer piezas al estilo de Mozart, o al estilo de Vivaldi.

Los resultados son sorprendentes, tanto que ha logrado confundir a expertos especializados en algunos compositores.

Su primer programa se llamó "EMI" (Experiments in Music Intelligence). La versión actual, interactiva, se llama "Emily Howell", que es como una "persona": aprende escuchando a otros compositores, y luego genera música, a la que el profesor Cope le dice "sí", o "no", para ayudarle a componer. En Febrero de 2010 publicó un CD de música compuesta por Emily Howell, titulado "From Darkness, Light" ("Desde la Oscuridad, Luz").

Dice el profesor Cope que "composición musical es programación" y "programación es composición". Están íntimamente relacionados. Son procesos mentales que se pueden describir (formalizar) muy bien con matemáticas.

El trabajo del profesor Cope, y el programa "Emily Howell" ha sido recibido con reacciones diversas. Hay quienes dicen: "es la melodía más bonita que he escuchado un mucho tiempo". Mientras que otros salen corriendo y no quieren saber sobre esto ... quizás sea que tienen miedo que algún día una máquina los pueda reeemplazar. El hecho es que la composición musical, a través de los siglos, ha sido una actividad humana, a la que se le atribuyen elevadas virtudes, y muy apreciada. Pero también otro hecho es que, a medida que entendemos cómo funciona el cerebro, el proceso creativo, y a medida que desciframos el código musical, es bastante factible que las máquinas lleguen a poder hacerlo tan bien, o mejor que los humanos ... al final, tanto los humanos como las máquinas somos manipuladores de símbolos; nuestro hardware es químico, y el de las máquinas, semiconductor.



Referencias:
Entrevista al Prof Cope, en YouTube
"David Cope" en la wikipedia
"David Cope", página oficial en UCSC
"Mp3 creados por Emily Howell", página oficial en UCSC
"Virtual composer makes beautiful music—and stirs controversy", artículo en Ars Technica
"Emily Howell, the virtual composer making waves in the computer world", artículo en The Sunday Times
"Emily Howell: the computer program that composes classical music", artículo en The Telegraph
"Music Created by Learning Computer Getting Better", artículo en SingularityHub
"The Vivaldi Code", artículo en Wired
"The Triumph of the Cyber Composer", artículo en Miller-McCune
"Experiments in Musical Intelligence", David Cope (libro en Amazon)
"Computer Models of Musical Creativity", David Cope (libro en Amazon)
"Virtual Music", David Cope (libro en Amazon)
"New Directions in Music", David Cope (libro en Amazon)
"Tin man", David Cope (libro en Amazon)
"Emily Howell", en la wikipedia


 
 

martes, 2 de noviembre de 2010

Benoît Mandelbrot y Fractals

Hace dos semanas falleció el famoso matemático franco-estadounidense Benoît Mandelbrot. Nació en Polonia, estudió en Francia, en la École Polytechnique, bajo Gaston Julia and Paul Lévy. Más tarde obtuvo su phD en la Universidad de París. Vivió la mayor parte de su vida en Estados Unidos, trabajando para IBM.

El Dr. Mandelbrot se hizo famoso por haber concebido la "geometría de Fractals". El se inventó la palabra "fractal" y dedujo el famoso "Conjunto de Mandelbrot".
 


 "Fractals" son figuras geométricas que tienen la propiedad de "auto-similaridad" (homeo-morfismo), es decir, que si se subdividen en partes más pequeñas, éstas son idénticas a la figura original.

El conjunto de Mandelbrot, la figura de la izquierda, se obtiene al graficar, en el plano complejo, la ecuación: zn+1 = zn2 + c.
No vamos a entrar en detalles (para no aburrir a los lectores que no tengan inclinación hacia las matemáticas), pero la idea es comenzar con z0 = 0, c = i y aplicarlo repetidamente a la fórmula anterior mientras que el valor de z se mantenga dentro de cierto límite superior.

Debido a su carácter repetitivo, el conjunto de Mandelbrot es ideal para calcularlo con un programa de computador. Al final de la década de los 1980s, recuerdo haber jugado con un programa escrito en el lenguaje C, que en un procesador de 10 MHz se tardaba toda una semana para generar una sola imagen. Ese fue mi pasatiempo por varios meses, y no dejaban de asombrarme las imágenes resultantes, que mostraban magnificaciones a distintos puntos de ese espacio; los colores se pueden reciclar, o restringir a ciertos valores, hasta lograr unas imágenes espectaculares. 

 Hoy día, se consiguen en internet programas gratuitos, que, dada la velocidad de los procesadores actuales, 3 GHz, generan estas imágenes en pocos segundos. Uno de tales programas se llama XaoS (para Linux, Windows, MacOS, etc)

 En realidad, ya desde el siglo XIX varios matemáticos (Weierstrass, Koch, Lévy, Sierpinski, Hilbert, y otros) habían creado figuras auto-similares.

Pero no es hasta la aparición del ordenador digital que se logra explorar visualmente este tipo de figuras en el plano complejo.
 

 Con un poco de imaginación, (y buen conocimiento de matemáticas y algoritmos) se pueden crear figuras hermosas, hasta en tres dimensiones. 

Pero el cuento no termina ahí: Los fractals también ocurren en la naturaleza. Podemos encontrar figuras auto-similares en nubes, copos de nieve, cristales, picos de montañas, rayos, redes de ríos, en la coliflor, las hojas de los helechos, las ramas de los árboles, y en los sistemas de venas y pulmones.
 

 Inclusive hay quienes se atreven a sugerir que toda la naturaleza salió de ecuaciones de fractals. De hecho, los que trabajan con gráficos por computador, normalmente utilizan fractals para generar imágenes que parezcan a la naturaleza.

Fractals también se han aplicado a la clasificación de histopatología, a los estudios de complejidad de las costas (geología), al estudio de la bolsa de valores y mercados, a la generación de nueva música, a algoritmos para compresión de imágenes, al diseño de antenas, etc.

La humanidad debe mucho a todas estas nuevas ciencias que se originaron con el Dr Mandelbrot.

Referencias:
Benoît Mandelbrot, en la wikipedia
"Fractals", en la wikipedia
"Conjunto de Mandelbrot", en la wikipedia
XaoS, en la wikipedia
GNU XaoS, programa para generar fractals, página oficial
"The Fractal Geometry of Nature", Mandelbrot (libro en Amazon)
"Seven Life Lessons of Chaos", John Briggs (libro en Amazon)
"Fractal Geometry: Mathematical Foundations and Applications", Kenneth Falconer