En lugar de procesos automáticos, también podemos escribir “partituras” adecuadas para un patch de Pd. Un ejemplo simple seria usar varios comandos “send”, como describimos en 2.2.4.1.3:
Pero para poder incluir mucha mas información y determinar la secuencia cronológica, la siguiente sección recorrerá formas de realizar “partituras” en Pd.
Puede recuperar un numero o symbols en un archivo de texto normal, y también guardar números y symbols a un archivo de texto usando “textfile”. Primero veamos como guardar. Clickee los mensajes desde arriba hacia abajo:
El Pd creo un archivo de texto llamado “file1.txt” en el mismo directorio que el patch. Y contiene lo siguiente:
hello;
world!;
“add” crea un symbol o un numero y le agrega un punto y coma. “add2” no agrega el punto y coma.
Si quiere leer lo que guardo, cargue el archivo y use “rewind” para ir al principio. Ahora cada vez que emita un `bang`, una linea (hasta el punto y coma) saldrá por el outlet izquierdo. Luego de la ultima linea, se emite un bang por el outlet de la derecha.
También puede escribir y leer sin haber guardado archivo alguno. También puede usar “clear” para borrar todo. “set” primero borra todo y luego comienza una nueva linea. Clickee de arriba hacia abajo:
También puede cargar un archivo sin que aparezcan los punto y coma:
“write name.txt cr” también funciona de este modo.
Una expansión practica a “textfile” es “qlist”. Este se puede usar para enviar mensajes cronológicamente desde un archivo de texto hacia objetos “receive”. El archivo “orders.txt” tiene este contenido:
0 tom 55;
1000 imi -12;
4000 tom 3;
2000 imi -2;
Al principio “tom” recibe el numero 55; dos segundos después “imi” recibe -12; cuatro segundos después “tom” recibe -2; funciona igual con symbols.
También, “qlist” tiene las mismas funciones que “textfile”: add, add2, rewind, clear.
También puede modificar el tempo usando “tempo” y un factor:
Con algunos generadores de sonido, ahora puede escribir una partitura en un archivo de texto. Digamos que tiene este patch...
... y esta “partitura” (patches/p.txt):
0 p1off 1000;
0 p1togg 1;
0 p1amp 1;
0 amp 0.5;
3000 p2off 100;
0 p2togg 1;
0 p2amp 1;
2000 p2off 400;
3000 p1amp 0.2;
3000 p2amp 0;
1000 p2off 2100;
0 p2amp 0.8;
5000 amp 0;
0 p1togg 0;
0 p2togg 0;
También puede escribir información acerca de los sonidos:
patches/4-2-2-1-write-score.pd
Escriba algoritmos estocasticos en un archivo de texto que use “qlist” para reproducir el patch en 4.2.2.1 a diferentes velocidades.
El tiempo en “qlist” esta dado en valores delta, esto es, que siempre describen el intervalo de tiempo del próximo evento. Aunque puede ser mas practico escribir un archivo de texto con valores absolutos de tiempo. El objeto “remote” se puede usar para esto. “remote” (no esta disponible en la versión original de Pd; es parte de Pd-extended) recibe el nombre de un objeto “receive” como un list seguido de el valor que allí desee enviar. Esto lo ayudara para no tener varios objetos “send”:
Entonces puede construir su propio qlist usando valores absolutos:
Aquí, como cambiar una lista con valores delta a valores absolutos:
patches/4-2-3-1-klist-convert1.pd
Aquí, la inversa:
patches/4-2-3-1-klist-convert2.pd
También puede usar “textfile” para usar archivos de texto que contengan algoritmos previamente conducidos. Hay lenguajes de programación especiales que pueden hacer esto. Uno de estos lenguajes es LISP, que es bastante adecuado para la creación y proceso de listas:
http://en.wikipedia.org/wiki/Lisp_(programming_language)