Composición Algorítmica

Introducción.

Sé muy poco sobre este tema, a pesar de lo mucho que me interesa. He estado haciendo programas “generativos” desde la época del QBASIC, a principios de los 90′s. En aquel entonces lo hacía con letras y palabras. Más tarde llegó el MIDI. En mi opinión el MIDI, como concepto, es algo trascendente, aunque nunca logré explicar claramente la razón de mi entusiasmo -que se mantiene incluso en la actualidad, cuando el MIDI parece haber sido superado por nuevas tecnologías-, y eso que tuve a mi cargo la docencia de esa materia durante varios años en la ORT.

Parte de esa explicación la encontraremos hoy aquí. Veremos que, en efecto, el MIDI tiene mucho que ver con lo que podríamos llamar la “modelización” de la música, y que ésta, a su vez, se vincula directamente con el tema central del presente artículo. La música, como fenómeno complejo que es, admite distintos niveles de descripción. La idea de “niveles de descripción” está muy bien explicada en el capítulo X de un libro que me parece maravilloso: Gödel, Escher, Bach de Douglas Hofstadter (no es un libro de música). El concepto que Hofstadter maneja allí, al que llama de esta manera, es de uso corriente en la teoría informática, pero se puede aplicar prácticamente a cualquier sistema. No voy a desarrollar aquí el concepto mismo, sino que me limitaré a poner algunos ejemplos de su aplicación al campo de la música, con los cuales va a quedar clara inmediatamente la idea.

En la música, el nivel de descripción más bajo que tenemos es el del sonido mismo, nivel en el que podemos medir amplitudes, frecuencias, fases, aplicar análisis de Fourier, etc. Está claro que este es el nivel más exacto de descripción posible, pero que, a su vez, no contiene ningún elemento “musical” propiamente dicho, es decir, no nos dice nada del estilo, del carácter, de la forma de una obra, ni tampoco de los ritmos, escalas o acordes que ella utiliza. Todos esos conceptos (estilo, carácter, ritmo, etc.) pertenecen a descripciones de alto nivel, algunas de más alto nivel que otras. El concepto de nota musical, por ejemplo, pertenece a un nivel de descripción más alto que el del sonido mismo, podría definirse como un sonido que empieza y que termina, es decir, cuya amplitud crece desde 0, se estabiliza en cierto nivel -la intensidad de la nota- y luego decrece nuevamente a 0, posee por ende una duración, y durante la misma mantiene una característica tonal definida, con una frecuencia que predomina sobre las otras -la altura del sonido, que además, no se mide en Hz, sino en Do, Re, Mi, Fa, etc., una escala logarítmica y cíclica de frecuencias-. De esta manera, creamos un concepto de alto nivel a partir de conceptos pertenecientes a una descripción de nivel inferior, y en adelante, podemos prescindir de las nociones de frecuencia, amplitud, etc., para hablar directamente de notas, duraciones, alturas, etc. Luego, a partir de estos nuevos conceptos, podemos definir otros de más alto nivel aun, como escala, acorde, ritmo, melodía, etc.

Tonalidad, forma, estructura, cadencia, modulación, armonía, constituyen, a su vez, un nuevo nivel de conceptos que pueden definirse a partir de los anteriores como acorde, escala y ritmo, por ejemplo. Pero allí no termina la pirámide conceptual de la música. Es habitual, sobre todo en la crítica musical, utilizar conceptos de altísimo nivel, por ejemplo, decir que una música es triste, alegre, solemne, grave, mística, sublime, hermética, fresca, sutil, elegante, iconoclasta, emotiva, soberbia, ingenua, lúdica, etc., etc., etc. (la lista es interminable), o decir que tiene un sonido más pop, con toques de funk y reggae, pero con firmes raíces en el blues (para tener una idea cabal de lo disparatado que puede llegar a ser esto de los géneros, véase la siguente página). En un nivel no tan alto, pero igualmente opinable, se encuentran todas las consideraciones respecto a la interpretación musical, por ejemplo si un cantante hace un uso exagerado del vibrato, si un guitarrista es virtuoso, etc.

Los niveles de descripción más altos de la música, son aquellos que podríamos llamar conceptuales y comprenden otra interminable lista de cosas ya muy lejanas al sonido mismo, desde la letra de una canción (desde el punto de vista semántico, no el de su sonido, que pertenece obviamente a un nivel mucho más bajo), el libro, la filosofía, doctrina o teoría en que está inspirada una obra, hasta la vestimenta o la actitud de los músicos en el escenario, su relación con el público, su extracción etárea, geográfica, social, etc. Todos estos elementos suelen estar presentes cuando se habla de música, y muchas veces se abusa de ellos y se los maneja imprudentemente, como si se tratara de conceptos de bajo nivel, evidentes, medibles e inmutables, como una frecuencia o una amplitud, lo cual me parece una aberración, pero eso ya es tema para otro artículo.

Bien, volviendo al tema del MIDI, ¿en qué radica su trascendencia? El MIDI constituye una descripción de alto nivel de la música, pero sin embargo su nivel es más bajo que el de una partitura de notación musical tradicional. El MIDI no es, por supuesto, una descripción del sonido mismo, en términos de amplitud, frecuencia y fase, sino que se basa en el concepto recién visto de nota, al igual que la teoría musical clásica. El MIDI presenta un nivel de abstracción¹ -para mi gusto- ideal, que permite describir la música en términos de piano-roll (rollo de pianola), es decir, como una gráfica de notas en función del tiempo, que admite alturas, comienzos, duraciones e intensidades arbitrarias para cualquier número de notas. Desde este punto de vista, el MIDI podría definirse como una “partitura de bajo nivel”.

La partitura de notación musical estándar no es una descripción completa de la música, solamente establece en forma unívoca la secuencia de alturas de las notas, y brinda una descripción muy somera de su relación con el tiempo, siendo el intérprete en última instancia el que posee y aporta el resto de la información necesaria para convertir esa notación en música, a la hora de ejecutar. Una “secuencia” MIDI, por su parte, comparte con la notación tradicional el hecho de estar basada en notas, pero en cambio, ofrece una descripción muchísimo más completa del aspecto más olvidado de la teoría musical tradicional (y de la propia música clásica europea): el ritmo. Por ejemplo, dos notas que en una partitura normal aparecen como iguales, pueden tener, en la ejecución real, distintas intensidades y distintas duraciones; el MIDI reflejaría sin problemas esa diferencia mientras que la partitura estándar no. (La partitura estándar realiza una abstracción que deja fuera esos detalles, manteniendo en cambio una descripción completa del aspecto tonal; esta predilección por las alturas tiñe a la propia teoría, como ya veremos, y juega -a mi juicio- un rol negativo en la comprensión del fenómeno musical mismo).

El MIDI es, por otro lado, una manera de codificar la música electrónicamente. A principios de la década del 80 las computadoras pudieron manipular este tipo de información, grabar, reproducir, editar, modificar, componer (“secuenciar”), experimentar, y por qué no, generar música algorítmicamente. Actualmente las computadoras son capaces de trabajar con el sonido mismo, con las amplitudes, las frecuencias, las fases, logrando un control sin precedentes sobre la grabación musical desde el nivel más bajo, sin necesidad de recurrir a la abstracción del MIDI. Sin embargo, el MIDI como concepto sigue estando presente en los casos en que se trabaja con sintetizadores -virtuales o no-, y el software permite editar notas, arpegios, escalas, acordes, ritmos; aunque no se vea, el MIDI sigue estando allí. Aunque el resultado final de la cadena salga en forma de audio, el MIDI sigue formando parte de ella. En el caso de la composición algorítmica, cuando el modelo de teoría musical que usamos está basado en notas (podría no estarlo, de hecho existe una buena cantidad de músicas imposibles de describir en términos de notas; no nos ocuparemos de ellas en el presente artículo), entonces ocurre esto mismo, lo que nuestro algoritmo está generando, en última instancia, puede representarse directamente como información MIDI.

Es importante aclarar lo siguiente: resulta imposible disponer de un modelo o una teoría de la música que funcione en todos los niveles de descripción y se ajuste a todas las músicas existentes o posibles (a menudo se habla de sistemas musicales) e incluso que pueda explicar todos los elementos presentes en una sola obra, si vamos al caso. Asimismo, cuando hablamos de composición algorítmica, siempre vamos a estar hablando de niveles de descripción relativamente bajos de la música. Por ahora, la posibilidad de que un programa informático genere u opere con elementos conceptuales, semánticos o de un nivel de abstracción relativamente alto, se encuentra tan lejana como la de que una computadora piense o tenga sentimientos. (Esta aclaración puede resultar obvia, pero sé que a algunas personas les cuesta entender por qué nos fascinan los robots, por ejemplo, y esperan que un robot haga algo verdaderamente humano. De lo que se trata, en realidad, es de investigar, a través de la composición algorítmica, la inteligencia artificial, o lo que sea, temas como de qué está hecha la música, y en definitiva, de qué estamos hechos nosotros). En este artículo nos centraremos en el nivel de descripción de la música que nos brinda el MIDI, aquel en el que podemos hablar de notas, intensidades, duraciones, alturas, ritmo, melodía, armonía, etc., pero está claro que este no es el único nivel posible, que no puede aplicarse a cualquier música, y que ni siquiera puede abarcar todos los aspectos de una sola obra, como dije antes. En particular, soy consciente de que el enfoque MIDI descuida un aspecto del sonido que es de enorme importancia a nivel sensible: el timbre, sin el cual mucha gente se encuentra perdida a la hora de escuchar.

Como decía al principio, sé muy poco sobre composición algorítmica, he leído apenas por arriba algunas generalidades, escuchado sin mucha atención algunos ejemplos, probado sin mucho esmero algún que otro software y tomado nota sin mucho convencimiento de algún que otro algoritmo. Por lo tanto lo que voy a decir aquí carece de “rigor científico”, es más bien una serie de intuiciones que tengo al respecto. La primera de ellas es una observación que insinué más arriba, pero que voy plantear de lleno en este momento: la teoría musical tradicional, y por ende, también la gran mayoría de los artículos que pude encontrar sobre composición algorítmica, se basan en un modelo musical incompleto, en el que se le da mucha importancia al estudio de las alturas (escalas, acordes, armonía) pero que es muy pobre en su descripción del ritmo.

No obstante, algunos teóricos modernos han profundizado en el estudio del ritmo, devolviéndolo de alguna manera a su justo lugar dentro de la teoría musical, y no es casualidad que estos mismos autores también se hayan ocupado, en algunos casos, de temas como la relación entre música y lenguaje o entre música y cognición. En mi concepción, la música es esencialmente ritmo, la melodía puede verse como un concepto ampliado de ritmo (un ritmo multidimensional, y esto abarca, antes que las alturas, las ya mencionadas intensidades individuales de cada nota). El nivel de descripción en el que se habla de frases musicales, puede ser visto como una “melodía de melodías”, y los niveles armónico, formal, estructural, pueden ser vistos también como macro-melodías de bloques musicales, o de reglas que rigen esos bloques.

Ahora bien, ¿qué importancia tiene todo esto, el modelo musical o el nombre que le pongamos a cada cosa? El problema, para mí, es que un modelo incompleto de la música, conduce a centrar la atención en aspectos irrelevantes, o que por sí solos carecen de sentido, tanto a la hora de analizar música como a la de intentar emularla por medios informáticos. Precisamente, intentar generar música con un software es una buena manera de advertir la limitación de nuestro modelo, y entender la necesidad de un modelo más profunfo, que parta de más abajo y llegue hasta más arriba -en materia de niveles-, y que explique ya no lo que vemos en una partitura, sino lo que realmente suena, la música misma.

En esta última frase se encuentra el quid de la cuestión (qué expresión antigua, ¿eh?). Dijimos más arriba que la partitura tradicional “establece en forma unívoca la secuencia de alturas” pero en cambio, describe en forma pobre o directamente nula otros elementos que, sin embargo, están presentes en una interpretación -quiero decir, en la ejecución de la partitura-, y que no son triviales, dado que la alteración de estos elementos produce cambios radicales en la “musicalidad” del resultado final. Esto es muy fácil de comprobar: si ingresamos la información explícita de una partitura -mayormente las alturas de los sonidos y sus duraciones- en un programa de notación musical, y luego le pedimos al programa que nos haga un preview auditivo de dicha partitura, dependiendo del estilo de la música que se trate observaremos que, en el mejor de los casos, el resultado se parece a una mala ejecución de esa música, pero que también puede resultar una mala ejecución de otra música bastante distinta, o directamente algo que no es música en absoluto.

Por alguna razón, existe una tendencia ingenua, simplista, a modelizar la música como lo que más claramente vemos en una partitura: la secuencia de alturas, prescindiendo de todo lo demás. Incluso el propio Hofstadter tiende a caer en este error cada vez que analiza una música, en su premiado libro (aunque talvez las obras de Bach a las que se refiere allí, sean las que mejor se presten a este tipo de análisis). Lo que me interesa destacar es que me parece trivial concebir un sistema de composición como un simple método para obtener una secuencia de alturas. Una secuencia de alturas no determina prácticamente nada en música, no existen secuencias de alturas “musicales” y secuencias “no musicales”, ni tampoco secuencias más musicales que otras. Cualquier sucesión de alturas puede utilizarse para hacer música, más aun si esas alturas se desprenden de una escala diatónica. Esa es precisamente la razón por la que, se presume, muchos compositores clásicos habrían recurrido de distintas formas al azar como herramienta compositiva, o por la que Hermeto Pascoal practica una composición instantánea a partir de una secuencia de notas azarosa aportada por el público, o por la que, en definitiva, existen tantos sistemas de composición “algorítmicos”, que realmente funcionan, en el sentido de que es posible gracias a ellos componer una música nueva, con la intervención del hombre, pero que no son suficientes por sí solos para generar una pseudomúsica mínimamente interesante, es decir, no resuelven el principal problema de emular electrónicamente un comportamiento musical (no está claro, por supuesto, que sea ése el objetivo que se proponen, pero sí el mio).

En síntesis, considero que concentrarse en sintetizar secuencias de alturas es perder el tiempo, así como lo es analizar la música exclusivamente desde esa perspectiva, o con un énfasis exagerado en ese aspecto. No dudo que la melodía es un elemento sobresaliente en la música, y que merece un estudio detenido y toda nuestra atención, el problema es que el modelo ingenuo de melodía al que se suele recurrir es estéril. Está claro que abstraer la secuencia de alturas per se no conduce a nada, es básicamente un error. Antes bien, nuestro modelo musical debe partir del ritmo. Es imposible explicar la melodía sin recurrir al ritmo, en cambio sí es posible explicar incluso una secuencia de alturas como un fenómeno rítmico. Esta es una idea intuitiva que tengo, que no voy a poder desarrollar por completo aquí, pero que voy a intentar trasmitir a través de los ejemplos de mis propias investigaciones en música generativa.

 

Mi propia experiencia.

En el 2008, no recuerdo bien en qué circunstancias, me propuse hacer un programa que generara música. La idea, que aun sigue vigente, en realidad, era crear algo así como un instrumento musical de alto nivel, es decir, algo que sirviera a los fines de la expresión pero que en su interacción, en lugar de producir notas como un instrumento estándar, produjera músicas. Claro, en realidad ya existen múltiples dispositivos y softwares de este tipo, desde los viejos órganos con acompañamiento automático que, recuerdo, me atraían mucho cuando era chico, pero la idea era crear uno a mi entero gusto y satisfacción.

Comencé a trabajar y pronto me dí cuenta de que el primer paso era generar patrones rítmicos, prescindiendo momentáneamente del tema de las alturas de las notas. Comprobé, sin embargo, que a su vez, para que haya ritmo deben haber distintas notas, distintos sonidos que contrasten entre sí. Al final terminé modelando un software que generaba comportamientos baterísticos, y lo llamé “Zappator”; aquí está el artículo que en aquel momento le dediqué, y aquí está el programa mismo.

Posteriormente, intenté seguir desarrollando el Zappator pero no llegué muy lejos. Prácticamente no volví a meterme en el tema de la música algorítmica, exceptuando, si se quiere, el caso de la Pelota de los Dioses y la danza del Robotito. En el primero de esos casos no se trataba tanto de generar patrones musicales, sino de mapear data proveniente de sensores a parámetros del sonido, una de las técnicas clásicas de la composición algorítmica, cuando esa data en lugar de provenir de sensores proviene de procesos estocásticos, autómatas celulares y todo tipo de algoritmos matemáticos. Precisamente, en ocasión de trabajar en ese proyecto, volví a caer en la cuenta de que asignar secuencias “mágicas” de números obtenidos por el más bello algoritmo, o por el muestreo del más significativo fenómeno, a algún parámetro de relativo bajo nivel del sonido -las alturas y las duraciones de las notas, por ejemplo, o directamente la frecuencia de un oscilador o un filtro dentro de un algoritmo de síntesis- produce resultados muy interesantes, pero en ningún caso música, tal como yo la concibo. En LPDLD había una rutina generadora de música, en realidad, y eran los parámetros de esa rutina los que se veian afectados por los ejes del sensor, junto con algún parámetro directo del MIDI, típicamente el pitchbend. Pero la rutina generadora de música era bastante aleatoria y muy poco musical, aunque el resultado podía mejorar en cierta medida gracias a la “habilidad” (o la suerte) del ejecutante.

El mes pasado, tuve la oportunidad de trabajar para la instalación Picidae Chorus, de Tangible Interaction, que se estrenó el 8 de Julio en el Stanley Park, con motivo del 125 aniversario de la ciudad de Vancouver. Mi trabajo consistió en desarrollar el software que desde una Arduino Mega 2560 controla a los 7 “woodpeckers” (pájaros carpinteros) que picotean rítmica y sincronizadamente sobre una madera sonora, cada uno en su árbol, y al hacerlo se alumbran con un led RGB y luego disminuyen lentamente su luminosidad. Estos pájaros generan en su conjunto una pseudomúsica, que va evolucionando lentamente, con patrones que ocasionalmente se repiten, voces que se contestan unas a otras, etc., como para dar la sensación de que hay una inteligencia en ellos.

Este trabajo me dio la oportunidad de reflotar uno de los intentos fallidos que había ensayado en 2008, previos al Zappator: la fractal_rhythm. Se trataba de una rutina recursiva, con la cual quería poner en práctica la idea de que ritmo, melodía y estructura podrían obedecer a las mismas reglas de generación. Era una idea atractiva y ambiciosa, pero en la práctica no había funcionado. Volví entonces a implementar esta rutina recursiva, pero ahora con reglas mucho más explícitas, y que pueden ser distintas para cada nivel de recursión. Esta vez sí tuve éxito, gracias además, a que las probabilidades de cada opción que el programa puede tomar en cada momento, se controlan fácilmente y de forma precisa con una rutina que vengo utilizando en otros proyectos, la markov (en honor a las cadenas de este señor).

Veamos aquí una de las primeras pruebas que realicé antes de llegar a la versión final, utilizando la garrafa de brazos de disco duro que gentilmente me prestaron Daniel Argente y Marcos Umpiérrez, sus creadores.

Imagen de previsualización de YouTube

Otras pruebas con la misma versión del software pueden verse aquí: [1] [2] [3].

Expliquemos brevemente cómo funciona esto. El software de control alojado en la Arduino, consta fundamentalmente de 2 módulos: por un lado el generador y por otro lado el reproductor. El generador se encarga de crear los patterns musicales, a demanda, colocándolos en un gran buffer con capacidad para 384 divisiones rítmicas en total. El reproductor se encarga de traducir esa información a los distintos periféricos (solenoides, luces RGB, salida MIDI) en tiempo real.

Una capa de nivel superior que podríamos llamar el programador se encarga de decidir cuándo, con qué parámetros y en qué región del buffer generar, y cuándo, qué, y con qué parámetros, reproducir. Este módulo es el responsable de la lenta “evolución” de los estilos musicales, los cambios de tempo, de métrica, etc., la repetición de patterns y las paráfrasis (patterns que se repiten pero con leves cambios). Para esto último, el programador llama ocasionalmente a unas subrutinas denominadas plugins, que producen transformaciones sobre los patterns actualmente almacenados, por ejemplo “cambiar alturas”, “quitar notas”, “agregar notas”, etc. El programador es entonces responsable de la macro-estructura musical. (En la versión de los videos, esta capa no está implementada aun, y en su lugar hay un tosco programador que cambia bruscamente los parámetros cada entre 3 a 8 compases, generando la sensación de que la música se va del tiempo, y jamás repite un pattern sino que siempre genera uno nuevo; pero más abajo tendremos un render de 8 minutos de audio generados con la última versión de este software, en la que sí está implementado el programador).

Existe tambíén una capa de bajo nivel, gobernada por una interrupción asociada con un timer, que gestiona la temporización necesaria para los solenoides y las luces. Los solenoides necesitan un tiempo de sustain de aproximadamente 50ms y las luces necesitan atención permanente para producir el efecto de fade-out. Esta capa no tiene nada que ver con la música, pero gracias a ella el hardware puede ser controlado con la misma Arduino, sin interferir con la reproducción musical real-time, cuyos tiempos tienen que ser exactos.

De todos estos módulos, el generador es por supuesto el más complejo. Su funcionamiento se basa en la rutina recursiva antes mencionada, que va recorriendo la línea de tiempo, y a cada paso tiene la opción de colocar una nota, colocar un silencio, o subdividir, o sea generar un nuevo nivel de recursión. La subdivisión puede ser en 2, 3, o 4 partes iguales, o incluso en patrones métricos predefinidos, como por ejemplo el 3-3-2. Esta estructura de árbol básica, está condicionada por una cantidad de reglas definidas, las cuales establecen la probabilidad de que ocurra una u otra de estas opciones, dependiendo del nivel de recursión en que se esté, de la ubicación temporal, de la duración de la nota anterior, etc., etc. A este conjunto de “reglas rítmicas”, se suman las “reglas melódicas”, es decir, una vez que se establece que en determinado punto va un sonido y se conoce su duración, hay otro conjunto de reglas para determinar la altura de ese sonido y su intensidad (velocity MIDI). Estas nuevas reglas también utilizan probabilidades controladas, que dependen del lugar que ocupe la nota en la métrica, de su duración, y de las propiedades de las notas anteriores, entre otras cosas.

A su vez, todas estas reglas poseen parámetros globales ajustables desde el programador, por ejemplo: coeficiente de silencio, coeficiente para cada uno de los tipos de subdivisión, rango de alturas restringido, etc., etc. Combinando todos estos parámetros, más la propia medida del pattern y el tempo global, es posible generar una amplia gama de comportamientos, que van desde un simple tren de negras, a sobrecargados e intrincados ritmos, desde una nota única que se repite, a escalas que suben y bajan. De esta manera, podríamos implementar varios de estos generadores trabajando simultáneamente, asignados a distintos timbres, con distintas pautas de comportamiento y distintas tesituras, es decir, una verdadera “orquesta” algorítmica. Para realizar esta prueba sería necesario antes que nada portar el programa a Processing, porque el Arduino no tiene suficientes recursos para esto.

Como ya dijimos, en los 4 videos anteriores no existe la capa de alto nivel encargada de darle cierta “forma” al material. El concepto de “melodía” que maneja el programa es en realidad un concepto rítmico, es decir, considera el conjunto de notas -que en este caso es de 7 notas- como un conjunto ordenado de “sonidos contrastantes con los que generar un ritmo”,  sin preocuparse en absoluto de las relaciones armónicas entre las notas. (En este caso los intevalos entre las notas sucesivas son de 5as., para las 7 notas que salen del módulo MIDI, pero a su vez esas 7 notas están mapeadas sobre las 4 notas de la garrafa, cuyas alturas son poco definidas, y prácticamente aleatorias). En el siguiente ejemplo escucharemos un audio de 8 minutos aprox., usando la salida MIDI con un timbre de piano, obtenido con la última versión del programa. En este caso, las notas son 12 y corresponden a una escala cromática.

 

Clip de audio: Es necesario tener Adobe Flash Player (versión 9 o superior) para reproducir este clip de audio. Descargue la versión más reciente aquí. También necesita tener activado Javascript en su navegador.

 

Como podemos oir, el programa sigue sin saber nada de intervalos ni de armonía. Su concepto de melodía consiste en gravitar en torno a una altura y aplicar grado conjunto (que en este caso resulta ser siempre un semitono) o saltos mayores dependiendo de la articulación rítmica. Sabe, por ejemplo, la dirección melódica, y tiene reglas que le indican cuándo conservarla y cuándo invertirla. Las reglas melódicas en realidad son muy básicas, porque, en efecto, la aplicación para la que fue concebido era meramente percusiva. El algoritmo no maneja duraciones de notas, por ejemplo, sí puntos de comienzo, por supuesto, y también acentuaciones (intensidades individuales de cada nota) lo cual es importante. El paso para dotarlo de noción armónica es simplemente restringir a escalas o arpegios predefinidos el subconjunto de notas con que puede operar en cada compás o fragmento de compás, y, con un grado aun mayor de sofisticación, establecer un subconjunto más restringido para tiempos fuertes o partes fuertes del tiempo, y otro más amplio para tiempos débiles o partes débiles del tiempo.

Obsérvese la acción del programador. Aquí sí podemos hablar de una capa de nivel superior que se encarga de administrar los patterns y repetirlos ocasionalmente, total o parcialmente, textualmente o con pequeñas modificaciones. En la práctica, el programa trabaja sobre un buffer de 4 compases, donde ocasionalmente sustituye cierto sector por un material completamente nuevo, otras veces transforma levemente lo que está actualmente almacenado en un sector, y otras veces simplemente ejecuta al azar alguno de los sectores. Los “sectores” normalmente son compases, pero puede ocurrir que sean fragmentos de compás, cuando, por ejemplo, un material fue generado en 4/4 y a la hora de ejecutarlo o modificarlo, la métrica puede haber pasado a 2/4 o a 3/4, o a la inversa, entonces ocasionalmente se forman combinaciones parciales de patterns, muy interesantes.

El resultado de todo esto es que se generan estructuras parecidas a las de la música normal, tipo AABA’CBC’ADD’CDB’EC etc. Esta capa de macroestructura es lo que estaba faltando para que la pseudomúsica tuviera “forma”, pero comprobé que no hace falta que las estructuras sean simétricas, geométricas, ni con ninguna forma especial, sino que basta con esa simple cadena levemente aleatoria para obtener un resultado bastante “musical”, muy distinto de lo que se oye en los anteriores videos. Con respecto a los plugins que transforman el material, actualmente hay uno solo, pero ya tengo en mente muchísimos más, que emularían los recursos clásicos de la composición (paráfrasis, inversión, espejo, desplazamiento rítmico, transposición, expansión-compresión temporal, etc., etc.).

P.G., 26/7/2011

Revisión e ilustraciones de Alvaro Cassinelli

8 Comentarios »

  1. avatar Alvaro Dice:

    Si querés alguna “crítica” (pero no es una, sólo comentarios), acá va una sobre la introducción teórica (el resto… puf, tengo tantas preguntas que no sé por dónde empezaría). Se nota que estás influenciado por el hecho de que estuviste dando clases durante años sobre MIDI. Si hubieses dado clases sobre “granular sound”, quizás dirías que es la mejor forma de representar la música (pero probablemente no, quizás más bien el “sonido”, es decir que los granos son de mucho más bajo nivel, dando más posiblidades pero perdiendo la capacidad sintética del MIDI, la capacidad de un poco mayor nivel de representar partituras o partituras de bajo nivel como las llamás vos).

    Estoy de acuerdo en que el MIDI se presta a la composición algorítmica, las “notas” son efectivamente unidades ideales, símbolos o letras de la “música” (o por lo menos de un tipo de música). Pero también depende de lo que entiendas por algoritmo. Quiero decir: quizás te refieras a algoritmos claramente “entendibles” por seres humanos, porque barajar esas letras, unidades musicales, se parece mucho al nivel de abstracción necesario para crear frases (me refiero a frases del lenguaje natural). Pero ¿qué hacés con todos los algoritmos que somos incapaces de hacer correr en la cabeza, porque son demasiado complicados? Quizás una computadora (no, quizás no, seguramente) pueda con miles de parámetros al mismo tiempo, por eso puede ser que una unidad de menor nivel, como el granular sound, también se preste para la “composición algorítmica”. O sea, que quizás lo que estás diciendo sea en realidad que el MIDI es lo que se presta más a la composición algorítmica del tipo que podemos entender y hacer a mano (aunque quizás mucho más rápido y de forma sofisticada con una computadora). En otras palabras, composición de la “clásica”. Es decir que en resumidas cuentas, todo tu artículo dice lo siguiente: las partituras clásicas son una notación absurda, porque faltan cosas que usamos todo el tiempo, pero que quedan ahi, como sugeridas (que es lo que dice Levitin en cierto momento). Pero eso ya se sabe: mucha gente usa sequencers en lugar de partituras!

  2. avatar tom Dice:
  3. avatar pabloxid Dice:

    Fa, qué alucinante, es la ilustración que estaba buscando para el artículo.

  4. avatar tom Dice:
  5. avatar pabloxid Dice:

    Es muy buena, bo, quién hizo eso?

  6. avatar xopxe Dice:

    Me encanta cuando hablan de “músicas”, asi en plural. Viglieti hace lo mismo.
    No se porque, me da la idea que estan hablando de algo que me es completamente incomprensible.

  7. avatar pabloxid Dice:

    Voy a tratar de escribir un nuevo artículo donde quede todo un poco más claro.

    Por el momento, acá pueden ver un video de la instalación donde se usó este software:

    http://www.youtube.com/watch?v=Xq9LbeJOX2M

    No se pudo lograr una gran complejidad rítmica porque los pájaros son lentos, algunos tardan hasta 100ms en moverse. Asimismo, tampoco soportan distintas intensidades.

  8. avatar tom Dice:

RSS alimentación de los comentarios de esta entrada. TrackBack URL

Dejar un comentario