domingo, 18 de febrero de 2007

Nota, duración, intensidad…y timbre


Todo el mundo sabe que la música se expresa al menos a través de dos conceptos básicos: la nota y la duración. La nota (o tono) indica la altura tonal del sonido, y en última instancia se corresponde con con la frecuencia (fundamental) de vibración de una cuerda, un tubo o algún otro dispositivo emisor de ondas acústicas. La duración, por otro lado, se refiere a cuánto tiempo está el dispositivo emitiendo las ondas.

Desde un punto de vista puramente acústico estos parámetros se definen en valores absolutos, es decir, hertzios (para la frecuencia) y segundos (para la duración). Sin embargo, la notación musical ha relativizado estos parámetros consiguiendo con ello hacerlos independientes de la afinación y del tempo de la obra. Por poner un ejemplo, una corchea no indica un valor fijo de milisegundos, sino que expresa una relación temporal con la negra, cuya duración es expresada por el compositor en términos de número de negras por minuto, o incluso de modo más vago mediante términos como “allegro” o “largo”, etc.

Otro parámetro menos preciso en la notación musical es la intensidad. Esta se expresa mediante expresiones del tipo piano, forte, etc. (de ahí proviene el nombre del instrumento de teclado más popular, el piano, porque al contrario del clave o del órgano, el piano permite tocar con distintos niveles de intensidad). Otras etiquetas, por ejemplo crescendo, pueden indicar variaciones graduales (en el tiempo) de la intensidad.

Pero no quería hablar de estos tres conceptos, sino de otro más misterioso, intangible y menos manipulable —hasta la aparición de la música electrónica a principios del siglo XX y el posterior advenimiento de los sintetizadores en los años 60—: el timbre.

Desde el punto de vista acústico, el timbre se debe a los armónicos, que podríamos definir como vibraciones “secundarias” que se producen en un instrumento al margen de la vibración “fundamental”, que es la que identifica al tono. Es decir, que cuando una cuerda, por ejemplo, vibra a 440 hertzios, lo que produciría la nota conocida como “La” (o “A” en notación anglosajona), aparecen también pequeñas sub-vibraciones en otras frecuencias. Estas “vibraciones secundarias” son diferentes en cada instrumento particular, y motivan que cada instrumento “suene” de diferente manera.

Antes de la música electrónica, el único modo de actuar sobre el timbre de una composición consistía en elegir diferentes instrumentos. Ya en el siglo XX, los compositores comienzan a efectuar modificaciones en algunos instrumentos para alterar el timbre de los mismos, y posteriormente a generar nuevos timbres gracias a la electrónica, utilizada de diversos modos. Estas tendencias alcanzan su apogeo en la década de los 70, con la construcción en masa de sintetizadores (acabo de descubrir al documentarme para este artículo que el diseñador de uno de los más famosos, el Mini Moog, ha fallecido por desgracia este verano).

En esencia, un sintetizador utiliza algún mecanismo analógico o digital para construir los armónicos que deben sonar junto con la frecuencia fundamental, y además este mecanismo es configurable, consiguiéndose de esta manera diferentes timbres según se fijen ciertos parámetros.

Lamentablemente, el sueño de muchos músicos no era la creación de sonidos nuevos, sino disponer de la posibilidad de utilizar instrumentos tradicionales en sus grabaciones sin tener que poseer ni saber tocar estos instrumentos, o bien ahorrarse el dinero de contratar a un instrumentista para realizar la grabación. Y para este propósito se desarrolló a finales de los 70 una técnica alternativa, el muestreo (_sampleo_ es el barbarísmo que se usa en la jerga de los músicos), que es bastante superior a la síntesis para el propósito de imitación de instrumentos tradicionales. Este sistema se basa en “grabar” el sonido que produce el instrumento real para cada nota, de modo que lo que se reproduce posteriormente al pulsar la nota es el sonido previamente grabado.

Pero ¿qué pasó con la creación de nuevos sonidos? Los 80 y los 90 constituyen una época oscura en el terreno de la experimentación tímbrica, a pesar de que disponemos del instrumento más poderoso jamás construido: el ordenador.

En este estado de cosas, el timbre merece una reflexión.


Publicado originariamente en Computación creativa y otros sueños (Libro de Notas) el 25/9/2005

Vernor Vinge y la singularidad tecnológica


En matemáticas, una singularidad es un punto del dominio de una función para el cual el valor de la función se hace infinito. Quizá siendo más precisos con el lenguaje podríamos decir que el valor para dicha función en ese punto no está definido, pero sin embargo al aproximarnos al punto la función va tomando valores más y más elevados.

Por ejemplo, la función 1/x tiene un punto de singularidad en x=0, porque a medida que x se aproxima a 0 (podéis tomar una calculadora y comprobarlo) su valor se hace más y más grande.

Resulta que estas singularidades aparecen en ocasiones en los modelos físicos que describen la naturaleza, y suelen ser bastante difíciles de interpretar porque llevan al extremo la situación física que los genera. El ejemplo tradicional es el de los agujeros negros. En el contexto de la física, las singularidades suelen estar asociadas a situaciones en las que las interpretaciones tradicionales dejan de tener sentido.

Un agujero negro es en esencia una singularidad gravitatoria. En ellos la materia está tan condensada que la inmensa fuerza gravitatoria generada impide que la luz (que como predijo Einstein se ve afectada por la gravedad) escape de él. La esfera de proximidad al agujero negro a partir de la cual la luz ya no puede escapar tiene un nombre muy poético: el horizonte de sucesos. Se llama así porque a partir de este horizonte no es posible saber nada de lo que sucede dentro, ya que la información no puede ser transmitida en ningún soporte (ni siquiera la luz) que escape a la atracción gravitatoria del agujero negro. Como vemos, en el caso físico no es necesario que la magnitud (la gravedad en el ejemplo) se haga infinita, sino simplemente lo suficientemente alta para que se produzca un hecho sorprendente o anómalo.

Pues bien, Vernor Vinge, matemático y escritor de novelas de ciencia ficción, profesor de la Universidad Estatal de San Diego, ha postulado la teoría de que, al ser el avance tecnológico un proceso acelerado que acumula novedades en intervalos de tiempo cada vez más cortos, llegará un momento en que los rapidísimos cambios tecnológicos no puedan ser asimilados por la sociedad, produciéndose realidades no comprensibles según las leyes sociales actuales. Estas realidades podrían ser desde que el ser humano origine un nuevo tipo de inteligencia (mejorándose a sí mismo o construyéndola en un nuevo soporte), como sostienen muchos investigadores en Inteligencia Artificial, por ejemplo Kurtzweil, Minsky y Moravec, hasta que aparezca algún nuevo tipo de tecnología que altere profundamente el funcionamiento social, como explica Neal Stephenson en su novela La Era del Diamante, en la que describe un futuro en el que la nanotecnología está tan extendida y dominada como la luz eléctrica en la actualidad.

Vinge, en su libro Naufragio en el Tiempo Real (secuela de La Guerra de la Paz), explora un futuro lejano en el que personas procedentes de diferentes (aunque próximos) momentos de nuestro futuro cercano disponen de una tecnología enormemente dispar, hasta el punto de ser casi incomprensible para las personas que provienen de épocas ligeramente anteriores a otras. En ese futuro lejano descubren que ya no existe la humanidad, aunque no hay rastro de guerras ni de cataclismos; las ciudades están, simplemente, abandonadas. Nadie sabe a dónde fuimos.

Pues como dice la tercera ley de Clarke, una tecnología suficientemente avanzada es indistinguible de la magia.

Más información en:
http://en.wikipedia.org/wiki/Technological_singularity
http://www.ugcs.caltech.edu/~phoenix/vinge/vinge-sing.html


Publicado originariamente en Computación creativa y otros sueños (Libro de Notas) el 25/7/2005

Software, patentes, propiedad intelectual y creación


Tema candente este de las patentes de software, al menos entre los informáticos. Y como está candente y además he visto en algunos foros que hay un poco de confusión al respecto creo que merece la pena que dedique el artículo de este mes a aclarar algunos conceptos.

En la actualidad en software se considera bajo el amparo de la “propiedad intelectual”, como sucede con libros, discos y películas, entre otros (iba a decir “productos” como le gustaría a la SGAE y a la ministra, pero me lo callo).

Esto significa que alguien es propietario de lo que ha hecho por el mero hecho de haberlo hecho (me ha quedado bastante aliterativo, ¿eh?) No hace falta ni siquiera registrar un libro o un programa de ordenador en ningún sitio para que su autoría nos pertenezca si la podemos demostrar de algún modo, aunque el registro de la propiedad intelectual es una prueba más, ni necesaria ni tampoco suficiente. Pero cuidado, una cosa son los derechos intelectuales (“esto lo he creado yo”) y otra cosa los económicos (“distribúyelo tú y te ganas lo que puedas, quizá dándome una parte”). Los derechos intelectuales son intransferibles, pertenecen al autor lo quiera o no (quizá por eso muchos autores han perseguido sus libros para quemarlos, porque no podían cambiar la autoría), mientras que los económicos se pueden vender, alquilar o lo que sea según las reglas de mercado. Evidentemente, mientras no haya algún contrato de por medio, los derechos económicos pertenecen inicialmente a la persona que ostente los intelectuales.

La patente es una cosa bien distinta. No se refiere a quién creo algo, sino a quién lo puede explotar, incluso ¡sin haberlo creado todavía o habiendo sido creado por otro que no lo patentó! Ejemplos hay muchos de lo absurda que puede llegar a ser una patente, en especial en el terreno del software informático. Por ejemplo Sony ha presentado hace poco una patente sobre la posibilidad de transmitir datos directamente al cerebro. ¿Increíble? Donde las dan las toman, porque también ha sufrido las consecuencias de la aplicación de una patente sobre el control de la vibración del mando de una consola según la acción del juego que le ha obligado a suspender las ventas de sus Playstations en Estados Unidos.

Es obvio que para poderse desenvolver en un mundo de patentes hace falta una enorme capacidad económica, porque el registro de una patente es caro y la ejecución todavía más. El tema de las patentes mueve cifras astronómicas que sólo pueden permitirse las grandes, es más, diría muy grandes, empresas.

¿Frenan las patentes la creación? Para responder a esto voy a clasificar la creación software macro-creación y en micro-creación. Llamaré macro-creación a la invención de una categoría de software que abre las puertas a una nueva concepción de una tarea. Suelo poner como ejemplo la creación de la World Wide Web en 1990 por parte de Tim Berners Lee y la programación del primer navegador (WorldWideWeb) y el primer servidor Web, aunque cualquier categoría genérica de programa tuvo un programa original que creó la categoría (hojas de cálculo, proceso de textos, incluso sistema operativo o compilador). Este tipo de macro-creación tiene casi siempre consecuencias sociales importantes, como hemos podido comprobar en el caso de la Web. La micro-creación, no menos importante desde el punto de vista económico, quizá incluso más importante, se refiere a las pequeñas modificaciones en la concepción de un tipo de software que ya existe, como por ejemplo la realizada por Mozilla cuando implementó el navegador FireFox. El tipo de software ya existía, pero Mozilla lo ha mejorado, hecho más utilizable, etc. También existe creación en este proceso, aunque es menos profunda. Seguramente es menos creación pero más ingeniería.

Quizá pudiéramos comparar la macro-creación y la micro-creación con la composición de una obra y la interpretación de la misma, sobre todo en el ámbito del Jazz o en el flamenco, géneros en los que el intérprete tiene un papel mucho más importante que en otros tipos de música.

Es posible (es lo que argumentan las grandes empresas) que la instauración de un sistema de patentes para el software potencie la macro-creación, ya que estas grandes empresas podrían invertir más en equipos de personas que generasen nuevas ideas, sin riesgo a que estas ideas fueran luego utilizadas por otros para enriquecerse. Pero lo que para mí está claro es que las patentes acabarían con la micro-creación, porque las pequeñas empresas o particulares que quisieran reimplementar una idea ya existente tendrían que pagar por ello, y el precio de la patente lo fija la empresa propietaria. Es decir, prácticamente se imposibilitaría la reimplementación de ideas. Sólo el compositor podría tocar su obra. Y nadie mejoraría los productos.

¿Para qué querría Microsoft mejorar el IExplorer si no tuviera competencia? Afortunadamente ni Microsoft ni nadie tiene la patente de creación de navegadores, lo que como sin duda sabéis ha permitido el nacimiento de un producto mucho mejor y de código abierto, FireFox, que ha obligado a Microsoft a decir que sacará en breve una nueva versión de IExplorer, porque está perdiendo cuota de mercado a pasos agigantados.


Publicado originariamente en Computación creativa y otros sueños (Libro de Notas) el 2576/2005

Aterrizaje (forzoso)


Todo esto está muy bien, diréis —como diría Cabana— mis queridas, amigas, personas lectoras, pero ¿sirve para algo? Es decir, ¿no es una mera digresión intelectual? ¿Una pirueta có(s)mica? ¿De verdad se puede componer algo con este conglomerado de ideas más o menos extravagantes? ¿Y cómo sonaría todo esto?

La respuesta, en este artículo. Bueno, al menos en parte. El lector aplicado, curioso y tecnológicamente alfabetizado (es decir, todos vosotros que llegáis a estas páginas) seguramente ya ha indagado por la Web intentado responderse a la pregunta “¿lo que cuenta este tipo tiene algún fundamento?”

Bien, todo depende de lo exigentes que seamos con la música y del sentido estético musical que a cada uno los genes (y lo que vino después) le dieron. Yo dispongo de un criterio musical amplio (estoy seguro en mi caso de que está definido genéticamente) que me hace resultar más agradable la música clásica contemporánea que el mismísimo Mozart. Es decir, que me voy del Barroco a Arnold Schoenberg y Alban Berg pasando (casi) exclusivamente por el romanticismo, el nacionalismo y los impresionistas. Por tanto reconozco que estoy bien situado para que las composiciones automáticas me resulten interesantes. Sin embargo, no soporto el clasicismo, lo que quizá no sea el caso de muchos de vosotros, de modo que los ejemplos que os mostraré después os pueden resultar horrendos.

Lo que está claro si habéis indagado por ahí es que lo que normalmente se encuentra es bastante flojo, y uno de los motivos es que en el binomio programador-músico prima el de programador en casi todos los casos. Porque, sorprendentemente, casi todos se olvidan del asunto de la duración de las notas, y se dedican a generar corcheas como locos. Podéis ver algunos ejemplos de esto en los applets que cuelgan de esta página. No es que yo vaya a ir mucho más lejos, al menos por el momento, pero en los ejemplos que vais a oír he ingresado la idea de duración (generada, al igual que las notas, con fractales o sistemas caóticos) y la idea de contrapunto, generando voces idénticas demoradas en el tiempo. Tengo muchas otras ideas y poco tiempo para probarlas…

Estas son las composiciones que someto a vuestro sabio criterio; creo que sus nombres son autoexplicativos:

fuga
paisaje
virtuoso
percusión
nana

Y así acabo por hoy. A partir del mes que viene creo que esta sección deberá tomar nuevos rumbos para evitar el riesgo de agotaros y de agotarme.


Publicado originariamente en Computación creativa y otros sueños (Libro de Notas) el 25/5/2005

Creación y caos


Parece irresistible la idea de que la computación efectuada en los cerebros es de carácter caótico: una hoja cayendo, el sonido de unos pasos, el reflejo del sol en la ventana de la casa de enfrente pueden sacarnos del curso de nuestros pensamientos para acabar descubriendo la ley de la gravedad u olvidando lo que nunca se descubrió.

Una ecuación caótica enormemente simple es la ecuación logística, ideada con la pretensión de representar la fluctuación del número de individuos de dos especies predador/presa en un ecosistema.

Parece obvio que si el número de predadores aumenta, consumirán más presas, de modo que el número de presas debe disminuir en el siguiente lapso de tiempo. Pero si el número de presas disminuye será más complicado para los predadores encontrar comida, y el número de predadores disminuirá en el siguiente lapso de tiempo, con lo que el número de presas volverá a aumentar.

Si llamamos x al ratio de predadores (número de predadores dividido entre el número total de individuos de ambas especies), podemos formular esta ley con la expresión

x(t+1) = r * x(t) * (1- x(t))

donde el factor r depende de las especies consideradas (la capacidad de consumo de una especies es mayor que la de otras).

Esta expresión cumple lo anteriormente expuesto, es decir, que si el número de predadores es muy bajo tiende a crecer, y si es muy alto tiende a disminuir.

Hasta donde yo sé, esta ecuación es la forma matemática más simple que genera caos, aunque sólo lo hace para ciertos valores de r.

Partiendo de x(0) = 0,5 (por ejemplo), y para valores menores de 3,5699457… (conocido como punto de Feigenbaum) la ecuación converge, lo que quiere decir que al cabo de cierto número de iteraciones el valor se estabiliza. Por ejemplo, para r = 2, x(1) = 2 * 0,5 * 0,5 = 0,5, x(2) = 0,5, etc. Pero ¡sorpresa! Una vez superado el punto de Feigenbaum x(t) comienza a oscilar entre dos valores. Incrementando un poco más r, x(t) oscila entre cuatro valores; con un r un poco mayor, entre ocho, etc. Es más, llega un momento en que oscila entre infinitos valores (se vuelve caótica).

Aquí teneis un gráfico de los puntos de oscilación de la ecuación logística para distintos valores de r

De este modo, fijado un r entre 3,5699457 y 4, podemos generar una secuencia infinita de valores numéricos en el intervalo [0,1] que podríamos utilizar para emitir notas musicales a un dispositivo MIDI.

Repito aquí lo dicho cuando hablamos del mandelbus: al aplicar la traslación de número a nota tendremos que aplicar ciertos criterios musicales para que el resultado no sea (salvo que queramos eso) una simple secuencia de notas en la escala cromática.

Pero ya se me ha ido el tiempo (el espacio) de este mes. Si todo va bien intentaré el mes que viene que podáis oír el resultado de alguna de estas técnicas.


Publicado originariamente en Computación creativa y otros sueños (Libro de Notas) el 25/4/2005

Teoría del caos (con la música a otra parte)


Laplace afirmó que si en un instante determinado conociéramos las posiciones y velocidades de todas las partículas en el Universo, podríamos calcular su comportamiento en cualquier otro momento del pasado o del futuro. Esto, que se conoce como determinismo científico, vino a ser desmentido por Heisenberg con su Principio de Indeterminación, a saber, que no es posible medir simultáneamente la posición y la velocidad de una partícula.

Pero no es sólo el principio de Heisenberg el que limita nuestro conocimiento del mundo. Cuando el hombre mide (y esto lo saben bien los físicos) no mide valores absolutos, sino aproximaciones con cierto grado de error, ya que en general podemos asumir que las magnitudes físicas son números racionales, es decir, con infinitas cifras decimales.

Esto no parecía ser un problema grave hasta que Edward Lorentz, en el curso de una simulación meteorológica por ordenador, tuvo que detener el programa simulador. Antes de parar anotó los valores de las variables en un papel y al día siguiente intentó comenzar desde el punto en que lo había dejado. Observó entonces que el resultado al cabo de un rato no tenía nada que ver con lo que había obtenido en una simulación anterior con las mismas condiciones iniciales. ¿Por qué?

Obviamente la diferencia entre las dos simulaciones había sido la parada. ¿Y qué había sido diferente? Lo diferente es que los números que habían sido anotados se imprimían en pantalla hasta una determinada cifra decimal, mientras que su valor real en la memoria del ordenador contenía más decimales. Es decir, que una diferencia en la quinta o sexta cifra decimal de las variables hacía que el comportamiento del sistema completo fuera radicalmente diferente al cabo de poco tiempo.

Desde entonces a los sistemas que muestran este comportamiento se les denomina sistemas caóticos, ya que su evolución temporal, si bien es determinista (sometida a ecuaciones bien conocidas), no es predecible a medio plazo. Ejemplo: el tiempo meteorológico. Al fenómeno en sí se le denomina caos determinista aunque el apellido determinista se ha ido perdiendo con el tiempo.

Lo enormemente interesante de esta teoría es que hace compatible el determinismo científico con la imposibilidad de predicción de acontecimientos futuros, porque nunca podemos conocer, no ya la posición y la velocidad simultáneamente (como demostró Heisenberg), sino la posición y la velocidad con suficiente precisión.

¿Y qué tiene que ver la creación con el caos determinista? Una solución en el próximo artículo.


Publicado originariamente en Computación creativa y otros sueños (Libro de Notas) el 25/3/2005

Sigamos con la música


El siguiente paso es estudiar si podemos utilizar fractales para componer música. Ya que la música es la más matemática de las artes (al menos eso pensaban los pitagóricos), parece que la utilización de funciones matemáticas para la generación de obras musicales no debería ser algo descabellado.

Evidentemente la música se articula en varios niveles de composición, que van desde la frase musical hasta la obra completa, pasando por la estrofa o el movimiento, que en la tradición musical occidental tienen unas reglas dependientes de la época de la composición, etcétera.

Pero como siempre –espero que me lo permitan– vamos a simplificar un poco. No comenzaremos componiendo la pasión según San Mateo. Nos conformaremos con unas pocas frases musicales. ¿Cómo construirlas?

Ante todo necesitamos un generador de notas, por ejemplo el conjunto de Mandelbrot, aunque ahora entendido de otro modo, que A.K.Dewdney denominó mandelbus. Este generador nos proveerá de un río (_stream_) de números con cierta pauta característica dependiendo del número complejo inicial c(0). Es decir, que cada número complejo producirá una melodía diferente, ¡y hay infinitas!

Para ello, partimos del c(0) seleccionado, y vamos obteniendo valores (uno cada vez) aplicando la función z(n+1) = z(n)^2^+c. Sólo hay un pequeño problema: un número complejo consta de dos valores reales, que podemos utilizar de varias formas. Por ejemplo, podemos utilizar la parte real y la imaginaria (forma cartesiana) por separado, o bien pasarlo a forma polar y utilizar el módulo por un lado y el ángulo por otro.

La tarea del humano será ahora encontrar la c(0) correcta para obtener la melodía que gana Eurovisión.

Pero claro, no solo de notas vive el músico; también están las duraciones. Podemos usar uno de los dos valores del complejo (ya sea en corma cartesiana o en forma polar) para las notas y el otro para las duraciones. O bien podemos utilizar otro complejo d(0) para ir obteniendo duraciones.

Hay quien tira con esto y genera una música horrible. Por ejemplo, si los módulos de c(n) varían entre -2^1/2^ y +2^1/2^, trasladan de manera uniforme este segmento de la recta real sobre los códigos de notas midi de un teclado (o tarjeta de sonido), por ejemplo entre el do más grave del piano (código 24) y el do más agudo (código 108). Así tenemos lo que técnicamente se denomina una escala cromática. Se puede añadir un poco más de horror al resultado prescindiendo de las duraciones y asignando la misma duración a todas las notas. Hay que reconocer que queda muy Steve Reich.

Lo que sucede es que para ir más allá hay que tener nociones básicas de música.


Publicado originariamente en Computación creativa y otros sueños (Libro de Notas) el 25/2/2005