25
1 PRACTICA 3. PRACTICA 3. PD y AUDIO (1) PD y AUDIO (1) 1. 1. Objetos de control de tiempo Objetos de control de tiempo 2. 2. Cargar y reproducir ficheros de sonido Cargar y reproducir ficheros de sonido 3. 3. Modificar la frecuencia de reproducción Modificar la frecuencia de reproducción 4. 4. Efecto scratch Efecto scratch 5. 5. Construcción de bucles (loops) Construcción de bucles (loops) 6. 6. Ejercicios Ejercicios Bibliografía Bibliografía Miller Pukette. “Theory and Techniques of Electronic Music”. Miller Pukette. “Theory and Techniques of Electronic Music”. Sergi Jordá. “Apuntes, prácticas y paches de ejemplo en PD”. Sergi Jordá. “Apuntes, prácticas y paches de ejemplo en PD”.

1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

Embed Size (px)

Citation preview

Page 1: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

11

PRACTICA 3.PRACTICA 3.PD y AUDIO (1)PD y AUDIO (1)

1.1. Objetos de control de tiempoObjetos de control de tiempo2.2. Cargar y reproducir ficheros de sonidoCargar y reproducir ficheros de sonido3.3. Modificar la frecuencia de reproducciónModificar la frecuencia de reproducción4.4. Efecto scratchEfecto scratch5.5. Construcción de bucles (loops)Construcción de bucles (loops)6.6. EjerciciosEjercicios

BibliografíaBibliografía

Miller Pukette. “Theory and Techniques of Electronic Music”.Miller Pukette. “Theory and Techniques of Electronic Music”.

Sergi Jordá. “Apuntes, prácticas y paches de ejemplo en PD”. Sergi Jordá. “Apuntes, prácticas y paches de ejemplo en PD”.

Page 2: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

22

ObjetivoObjetivo

Aprender a desarrollar patch de Aprender a desarrollar patch de audio en pdaudio en pd

Práctica 3

Page 3: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

33

El objeto metroEl objeto metro1 . Objetos de control de tiempo

Page 4: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

44

El objeto delayEl objeto delay

1 . Objetos de control de tiempo

Page 5: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

55

El objeto randomEl objeto random

El objeto random es similar a las funciones de generación de números aleatorios de los lenguajes de programación.

1 . Objetos de control de tiempo

Page 6: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

66

El objeto mosesEl 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.

1 . Objetos de control de tiempo

Page 7: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

77

PreliminaresPreliminares 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.

2 . Cargar y reproducir ficheros de sonido

Page 8: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

88

Cargar el ficheroCargar el fichero

Declarar un array. Llenarlo con un fichero WAV,

utilizando el objeto soundfiler tal como se muestra en la figura:

2 . Cargar y reproducir ficheros de sonido

Page 9: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

99

Cargar el ficheroCargar el fichero 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.

2 . Cargar y reproducir ficheros de sonido

Page 10: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1010

Reproducir el sonido Reproducir el 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~.

2 . Cargar y reproducir ficheros de sonido

Page 11: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1111

Reproducir el sonido Reproducir el 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~.

2 . Cargar y reproducir ficheros de sonido

Page 12: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1212

Reproducir el sonido Reproducir el sonido

2 . Cargar y reproducir ficheros de sonido

Page 13: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1313

Reproducir el sonido Reproducir el 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 22.050 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.

2 . Cargar y reproducir ficheros de sonido

Page 14: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1414

El subpatch salidaEl subpatch salida

2 . Cargar y reproducir ficheros de sonido

Page 15: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1515

Frecuencia de Frecuencia de reproducción 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.

3 . Modificar la frecuencia de reproducción

Page 16: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1616

Frecuencia de Frecuencia de reproducción reproducción

3 . Modificar la frecuencia de reproducción

Page 17: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1717

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.

4 . Efecto Scratch

Page 18: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1818

Efecto Scratch Efecto Scratch

4 . Efecto Scratch

Page 19: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

1919

Efecto Scratch 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.

4 . Efecto Scratch

Page 20: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

2020

LoopsLoops 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.

5 . Construcción de bucles (loops)

Page 21: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

2121

LoopsLoops

5 . Construcción de bucles (loops)

Page 22: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

2222

LoopsLoops

Por una lado, se divide 44100 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.

5 . Construcción de bucles (loops)

Page 23: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

2323

EjerciciosEjercicios

1. Probar hasta entender perfectamente los patches planteados en la práctica. Se adjuntan con la práctica.

2. 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.

3. 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.

4. Lo mismo para el scratch y el loop.

6 . Ejercicios

Page 24: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

2424

Ejercicios con loopsEjercicios con loops 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~)

6 . Ejercicios

Page 25: 1 PRACTICA 3. PD y AUDIO (1) 1.Objetos de control de tiempo 2.Cargar y reproducir ficheros de sonido 3.Modificar la frecuencia de reproducción 4.Efecto

2525

Otros ejerciciosOtros ejercicios

1. Realizar un patch reutilizable que sea un mezclador con control de ganancia., para cada uno de los canales.

2. Añadir al patch anterior el control de balance.3. Diseñar un patch reutilizable que aplique el

efecto de delay. Otro del chorus.4. 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.

5. Con todo lo visto realizar una pequeña composición.

6 . Ejercicios