3.5. Lectura de un archivo de audio

Para ejecutar un archivo de sonido, almacenado en el disco de nuestra computadora, podemos utilizar el objeto readsf~. Este objeto recibe un mensaje open con el nombre del archivo y la ruta donde se encuentra, y al recibir los mensajes 1 o 0 comienza la ejecución o la detiene. A fin de hallar un archivo utilizando un explorador, podemos también utilizar el objeto openpanel, como se aprecia en la figura siguiente.


G.3.9. Lectura de archivo de audio

No obstante, si programamos el ejemplo anterior, notaremos que luego de ejecutarlo es preciso cargar el archivo nuevamente antes de poder volver a reproducirlo. Este problema es fácilmente subsanable cuando usamos el mensaje open seguido de la ruta y nombre del archivo (sin openpanel), pues podríamos emplear un objeto trigger para enviar primero el mensaje open y luego el “1” que da inicio a la ejecución.


El patch “22-archivo de sonido.pd” implementa la programación de G.3.9., y remedia la dificultad antes mencionada.

 

Sin embargo, al utilizar openpanel la dificultad persiste. Por esta razón, hemos programado una abstracción, denominada sfplay~, que nos permitirá buscar un archivo en un directorio, ejecutarlo, e incluso generar un sinfín (loop) para que se reproduzca cíclicamente.


El patch “23-archivo de sonido con abstracción.pd” muestra el uso de la abstracción sfplay~, que hemos creado para facilitar la operación de lectura de archivos de sonido.

Otro modo de disponer de la información de un archivo de sonido para su manipulación es a través del objeto soundfiler. Este objeto recibe un mensaje read con la ruta y nombre del archivo, y con el nombre de la tabla donde va a alojarlo (en nuestro ejemplo de G.3.10. esa matriz se llama “archivo”).


G.3.10. Lectura de un archivo en tabla

La lectura de la tabla la realizamos con el objeto tabread4~, que recibe números de muestra de la tabla y devuelve los valores de amplitud de la onda almacenada. El sonido del archivo “raspado.wav” dura 2 segundos, o sea que ocupa 88 200 muestras, a una frecuencia de muestreo de 44 100 Hz. Mediante line~ barremos con una recta desde la muestra 0 hasta la 88 200 en 2 segundos (hacia adelante), o bien desde la 88 200 hasta la 0 (hacia atrás). A través del slider, con valores entre 0 y 88 200, especificados en sus propiedades, podemos recorrer manualmente el archivo a distintas velocidades.


El patch “24-soundfiler.pd” contiene la programación de G.3.10. Nótese el uso de la variable $1 dentro del último de los mensajes que preceden al objeto line~.