Una técnica muy empleada en composición algorítmica consiste en determinar valores aleatorios para determinados
parámetros musicales (la altura, por ejemplo) y someterlos a una serie de reglas. Si algún candidato no cumple con
alguna de las reglas establecidas es rechazado.
Esta técnica puede ser utilizada en la composición de melodías, por ejemplo, donde su construcción está establecida
por normas que determinan el registro, el ámbito (distancia entre la nota más grave y la más aguda de la melodía), los
intervalos a emplear (distancias entre dos notas sucesivas), nota de inicio y de final, las duraciones, etcétera.
G.10.2. muestra un patch que genera notas al azar (números entre 0 y 11, que representan a las doce notas comprendidas
en una octava). A los números de nota aleatorios les sumamos 60 para centrarlos en el registro (octava central
del piano).
Vamos a modificar el patch anterior de manera tal que
la sucesión de notas a generar respete alguna condición.
La regla que vamos a establecer es que la distancia
entre las notas solo puede ser de uno, de tres o de
cuatro semitonos (intervalos o distancia que en música
se denominan segunda menor, tercera menor y tercera
mayor, respectivamente).
La figura siguiente (G.10.3.) muestra el patch que realiza esta tarea. Un objeto random decide si vamos a sumar o restar
1, 3 o 4 semitonos. Considerando que a partir de la suma podríamos superar el valor 11, y que a partir de la resta
podríamos generar un valor menor que cero, aplicamos módulo 12. Lo cual equivale a obtener el valor absoluto (valor
positivo) del resto de la división por 12. Por ejemplo, si de la suma obtenemos un 15, el resto de dividir por 12 es 3,
que equivale a la misma nota de la octava superior, pero centrada entre 0 y 11. De este modo, recurrimos al azar, pero
fijamos una regla relacionada con los intervalos permitidos en la sucesión de notas.
La programación del patch de G.10.3. se encuentra en el archivo “74-regla interválica.pd”.
Respecto a los tiempos de ataque de las notas, podríamos decidir que se produzcan de forma aleatoria, pero dentro de un repertorio preestablecido. Vamos a fijar para nuestro programa la duración menor, y luego dos y cuatro veces esa duración (por ejemplo 100, 200 y 400 milisegundos, de forma aleatoria). Para las amplitudes también fijamos 3 valores aleatorios y modificamos el subpatch del instrumento, para que pueda reproducir esos cambios. G.10.4. muestra el patch anterior transformado, donde también cambiamos los intervalos permitidos.
La programación del patch de G.10.4. se encuentra en el archivo “75-reglas sobre otros parámetros.pd”.