Tabla de contenidos
La música ocurre en el tiempo y a el compositor naturalmente le gusta que cambie en el tiempo. En el capitulo previo, cubrimos las bases para generar sonido. Ahora veremos como usar Pd para controlar estos sonidos generados – o para controlar el control de estos sonidos – en el tiempo.
Algoritmo es el termino técnico para la descripción de una secuencia de pasos en el procedimiento que ejecuta un programa de computadora.
Si tiene un subpatch que suma 1 al numero ingresado, puede considerar esto un (muy simple) algoritmo: el algoritmo de este subpatch es la suma de 1.
patches/4-1-1-1-plus-one-algorithm.pd
En esencia, cada objeto en Pd ejecuta un algoritmo. Lo que antes requería el uso de un dispositivo llamado generador de ruido, hoy se logra con un algoritmo contenido en el objeto “noise~”.
En este capitulo, estamos particularmente interesados en desarrollar algoritmos que, una vez iniciado su procesamiento, la computadora pueda ejecutar por si misma y que cumpla el propósito de cambiar el sonido en el tiempo. Algunos ejemplos de esto ya se vieron, como por ej. en 2.2.3.2.7
Una muy simple y abundante forma de conseguir que la computadora opere por si misma es usando un generador de azar (random generator).
Puede aplicar limites a esta selección azarosa que a su vez cambie:
patches/4-1-2-1-random-limits.pd
El resultado de un random generator sigue las leyes de la estocástica, esto es, de la probabilidad. Con “random 6”, cada numero de 0 a 5 tiene una probabilidad de 1/6. Aunque altamente improbable, es posible que uno de los números nunca aparezca o no aparezca por un largo periodo de tiempo. Esta probabilidad también puede ser directamente controlada:
Aquí, la probabilidad de que un bang ocurra en la izquierda es 30 por ciento y 70 por ciento en la derecha. Puede probar esto como se muestra aquí:
patches/4-1-2-1-probability.pd
Puede usar este principio para seleccionar diferentes duraciones para determinados eventos sonoros: los cortos ocurren muy frecuentemente, medio una vez cada tanto y largo muy raramente.
patches/4-1-2-1-probability-examples.pd
También puede invertir su distribución a lo largo del tiempo...
Al principio solo hay duraciones cortas, al final principalmente largas (que naturalmente requiere mucho tiempo).
También, una pequeña variación se puede introducir para las diferentes duraciones:
Por supuesto, puede seguir con esto, `randomizando` los parámetros de un patch mas y mas, cuanto crea necesario.
Hay una obra de Alvin Lucier basada en una idea relativamente simple: alguien se sienta en un cuarto y habla a un micrófono. Esta oración se graba y se reproduce en el cuarto. Esta reproducción es a su vez grabada, reproducida, grabada y así sigue. Cada vez, la calidad de la grabación es peor, cada vez mas información se pierde. Mas específicamente, las frecuencias que en el parlante, micrófono, y el recinto puedan ser bien representadas son propagadas mientras que las otras se filtran gradualmente.
Esto puede ser fácilmente programado en Pd:
Puede decir que este algoritmo es grabar y reproducir. En este caso, el resultado es reingresado al algoritmo una y otra vez. Un proceso que funcione automáticamente de este modo se denomina una recurcion. Algunas recurciones ya se mencionaron en 3.4.2.9 y 3.4.2.10.
En el próximo ejemplo, también usaremos alteración y re-grabación. Un ring modulator recursivo:
Las recurciones que solo trabajan con números también pueden ser interesantes. Uno de los ejemplos mas conocidos que frecuentemente ocurren en música es la serie de Fibonacci. El algoritmo es que los últimos dos números de la lista son sumados para producir un nuevo resultado final a la lista.
a) Grabe un sample y reproduzcalo a otra velocidad. Grabe esta `otra` velocidad, reproduzcalo, y así sucesivamente. Pruebe esto mientras (1) reproduzca el sample con la misma `otra` velocidad y (2) con una velocidad diferente a `otra`.
b) Cree un algoritmo de wave shaping recursivo usando delay (un algoritmo en el cual el resultado es reingresado como entrada)
Los algoritmos recursivos usados para distorsionar sonido tienen limites técnicos. Si hace lo siguiente...
… El siguiente mensaje de error aparecerá “DSP loop detected” y el audio no se enviara al loop. Sin usar retrasos en el tiempo (delay) en la señal, no puede crear recurciones de audio.
De esta forma puede evitar errores:
El uso de algoritmos en composición es un campo extenso. Principios de algoritmos se pueden observar en el trabajo de compositores medievales y fue un área muy usada en música desde el siglo 20. Las composiciones algorítmicas pueden ser fascinantes puramente desde una perspectiva matemática. La naturaleza esta llena de ejemplos de algoritmos. Para mas información:
http://en.wikipedia.org/wiki/Algorithmic_composition