Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porAdriana Eusebio Modificado hace 10 años
1
PRACTICA 3. PD y AUDIO (1) Objetos de control de tiempo
Cargar y reproducir ficheros de sonido Modificar la frecuencia de reproducción Efecto scratch Construcción de bucles (loops) Ejercicios Bibliografía Miller Pukette. “Theory and Techniques of Electronic Music”. Sergi Jordá. “Apuntes, prácticas y paches de ejemplo en PD”.
2
Práctica 3 Objetivo Aprender a desarrollar patch de audio en pd
3
1 . Objetos de control de tiempo
El objeto metro
4
1 . Objetos de control de tiempo
El objeto delay
5
1 . Objetos de control de tiempo
El objeto random El objeto random es similar a las funciones de generación de números aleatorios de los lenguajes de programación.
6
1 . Objetos de control de tiempo
El objeto moses El objeto moses evalúa una condición > =. Tiene como entrada un número si es >= que el valor que tiene almacenado saca el mismo número por su salida derecha, si es menor lo saca por la izquierda.
7
Preliminares 2 . Cargar y reproducir ficheros de sonido
Cada sonido en PD se almacena en un array propio, por lo que tendremos tantos arrays como sonidos queramos utilizar en una pieza. Para reproducir un sonido almacenado en un array, se utiliza el objeto tabread4~. Dispondremos como mínimo de tantos objetos de este tipo, como sonidos simultáneos queramos utilizar en una composición Para facilitar el mecanismo de carga del fichero en el array se puede utilizar el objeto soundfiler Un solo objeto permite cargar todos los sonidos necesarios.
8
Cargar el fichero Declarar un array.
2 . Cargar y reproducir ficheros de sonido Cargar el fichero Declarar un array. Llenarlo con un fichero WAV, utilizando el objeto soundfiler tal como se muestra en la figura:
9
Cargar el fichero 2 . Cargar y reproducir ficheros de sonido
El flag -resize es fundamental, ya que sinó el array sólo cargará la parte de sonido que quepa en su memoria, lo cual dependerá del tamaño inicial del array. No utilizaremos –resize cuando sepamos el tamaño deseado de un loop, independientemente del sonido original. En este caso, indicaremos el tamaño deseado al declarar el array. prueba.wav es el nombre del fichero WAV que queremos cargar. vector1 es el nombre del array destino, declarado en el paso 1. soundfiler devuelve el número de muestras del fichero, y en el array se dibujará la onda que hemos cargado. El objeto soundfiler admite otros mensajes y flags. Permite cargar ficheros sin formato, saltar un número determinado de muestras iniciales, cargar hasta un tamaño máximo, normalizar los ficheros a cargar, etc.
10
Reproducir el sonido 2 . Cargar y reproducir ficheros de sonido
Para reproducirlo, utilizaremos el objeto tabread4~ que tendrá como argumento el nombre del array a reproducir. Este argumento (nombre del array) se puede escribir de antemano en el objeto, pero también es posible ir cambiando de array, enviando a tabread4~ el mensajeset otro_array. Podemos pues pensar que cada objeto tabread4~ es como un canal de un multipistas. Para que se reproduzca este sonido, tabread4~ debe ir recibiendo los índices de las muestras de forma permanente. Esto se puede conseguir con el objeto line~.
11
Reproducir el sonido 2 . Cargar y reproducir ficheros de sonido
Para reproducirlo, utilizaremos el objeto tabread4~ que tendrá como argumento el nombre del array a reproducir. Este argumento (nombre del array) se puede escribir de antemano en el objeto, pero también es posible ir cambiando de array, enviando a tabread4~ el mensaje set otro_array. Podemos pues pensar que cada objeto tabread4~ es como un canal de un multipistas. Para que se reproduzca este sonido, tabread4~ debe ir recibiendo los índices de las muestras de forma permanente. Esto se puede conseguir con el objeto line~.
12
2 . Cargar y reproducir ficheros de sonido
Reproducir el sonido
13
Reproducir el sonido 2 . Cargar y reproducir ficheros de sonido
Este ejemplo completo (sampler1.pd) es un poco más sofisticado, y permite reproducir un sonido integro, de principio a fin, y a la altura y velocidad correctas, cada vez que se clica el bang. Para ello, cuando se carga el sonido en el array, se manda a pack, un mensaje que guardará el valor del último índice (igual al tamaño) y la duración del sonido en ms (tamaño/44.1) (si el sonido fuera a Hz hubiésemos dividido por 22.05). El bang, manda primero un cero (line~ se coloca al principio) y después el mensaje con los dos valores.
14
2 . Cargar y reproducir ficheros de sonido
El subpatch salida
15
Frecuencia de reproducción
3 . Modificar la frecuencia de reproducción Frecuencia de reproducción Tal sólo deberemos cambiar la duración que recibe line~. Si el valor fuese la mitad, el sonido tardaría la mitad en reproducirse integro y sonaría una octava más agudo. Si el valor fuese el doble è sonaría una octava más grave.
16
Frecuencia de reproducción
3 . Modificar la frecuencia de reproducción Frecuencia de reproducción
17
4 . Efecto Scratch Efecto Scratch El típico efecto scratch se consigue modificando de forma continua la velocidad de reproducción (i.e. la duración), mientras suena el sonido y sin volver cada vez al inicio. Estudiar el siguiente ejemplo, la novedad está enmarcada en rojo.
18
4 . Efecto Scratch Efecto Scratch
19
Efecto Scratch 4 . Efecto Scratch
Cuando modificamos el primer valor (recuadro azul), estamos cambiando dinámicamente el índice destino. Cada vez que la posición aumente tocará hacía delante, y cuando disminuya tocará hacía atrás, en ambos casos con una velocidad mayor o menor según sea el salto que le estemos dando (en realidad es algo más complicado pues que avance o retroceda, no depende de la diferencia entre el nuevo valor introducido y el anterior, sino de la diferencia de este nuevo valor con la posición actual). El segundo valor (por defecto a 100 ms) indica en cierta forma el grano temporal o la resolución del sistema. También condiciona el tiempo que el fichero seguirá sonando si no introducimos ningún nuevo valor azul.
20
Loops 5 . Construcción de bucles (loops)
Hasta ahora cada vez que queremos disparar el sonido de nuevo debemos pulsar bang. ¿Cómo hacer que el sonido se reproduzca en loop de forma continua? Hay varias formas de conseguirlo, y una de ellas es sustituir el objeto line~ por el objeto phasor~. Phasor~ es un oscilador diente de sierra. Su salida varía entre 0 y 1 (no da valores negativos), y puede utilizarse como oscilador de alta frecuencia (para producir sonido, de forma comparable a osc~), pero también como oscilador de baja frecuencia (LFO), para control. La idea es que el principio de un nuevo ciclo de phasor~ coincida con el inicio de una nueva vuelta del loop. Por lo tanto, la frecuencia de phasor~ dependerá de la duración del sonido que queremos reproducir.
21
5 . Construcción de bucles (loops)
22
Loops 5 . Construcción de bucles (loops)
Por una lado, se divide por el tamaño del fichero en muestras, con lo cual se obtiene la frecuencia a la cual se repite el ciclo completo (i.e. si un sonido dura 2 segundos, su frecuencia de reproducción será 0,5 Hz). Por otro lado, debemos multiplicar la salida de phasor~, que varía entre 0 y 1, por el tamaño del fichero, para que varíe entre 0 y el último índice del fichero.
23
Ejercicios 6 . Ejercicios
Probar hasta entender perfectamente los patches planteados en la práctica. Se adjuntan con la práctica. En el patch salida se producen ciertos errores, localizarlos y tratar de resolverlos. Nota los ejemplos tratar de entender la lógica del pd output del ejemplo sampler3loop.pd. Encapsular la parte correspondiente del patch de modificación de la frecuencia en un objeto sampler lo más funcional posible y sencillo de utilizar. Lo mismo para el scratch y el loop.
24
Ejercicios con loops 6 . Ejercicios
Duración variable del loop: otro posible ejercicio es hacer un control de duración del loop opcional, que sea independiente de la duración del fichero. Zigzag: una tercera posibilidad sería tratar de que el loop fuera hacía adelante y hacia atrás, es decir que una vez finalizado el sonido lo reprodujera hacia atrás en zigzag (adelante-atrás-adelante-atrás...) Control del inicio del loop: hasta ahora hemos reproducido los ficheros siempre desde el principio. Podemos poner un nuevo control que decida dinámicamente el inicio del loop. Jungle drums: hay muchas posibles variaciones sobre el principio del loop, como hacer que un sonido se vaya reproduciendo “hacia delante”, pero “enganchándose” de vez en cuando en pequeños loops internos. Este es (más o menos) el típico efecto de loop de batería jungle (consultar objeto samphold~)
25
Otros ejercicios 6 . Ejercicios
Realizar un patch reutilizable que sea un mezclador con control de ganancia., para cada uno de los canales. Añadir al patch anterior el control de balance. Diseñar un patch reutilizable que aplique el efecto de delay. Otro del chorus. Realizar un patch reutilizable que sea un secuenciador de bang (no un metrónomo), para lanzar distintos sonidos procesados en función de diferentes instantes del transcurso del tiempo. Con todo lo visto realizar una pequeña composición.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.