View
213
Download
0
Embed Size (px)
Citation preview
11
TEMA 3. Sistemas sonoros TEMA 3. Sistemas sonoros interactivos (2)interactivos (2)1.1. Introducción a PD.Introducción a PD.2.2. Principios básicos de funcionamiento.Principios básicos de funcionamiento.3.3. AbstraccionesAbstracciones4.4. Control de flujoControl de flujo5.5. Interfaz gráfica de usuario (IGU)Interfaz gráfica de usuario (IGU)6.6. Estructuras de datos en PD.Estructuras de datos en PD.7.7. Audio en Pd.Audio en Pd.
RefrenciasRefrenciasSergi Jordá. “Introducción a Pd”, pdf accesible desde Sergi Jordá. “Introducción a Pd”, pdf accesible desde
la página personal de Jordá (Taller de música la página personal de Jordá (Taller de música electrónica) electrónica)
http://www.tecn.upf.es/~sjorda/http://www.tecn.upf.es/~sjorda/
22
Datos SimplesDatos Simples
Hasta el momento hemos visto que los datos simples que utiliza el lenguaje son: enteros (int), reales (float) y caracteres (symbol).
Existen dos mecanismos para guardar dichos datos: el uso de variables anónimas y mediante el objeto value.
6 . Estructuras de datos en Pd
33
Datos SimplesDatos Simples
6 . Estructuras de datos en Pd
44
ArraysArrays
Para definir un vector hay que crear el elemento array (en las opciones de put). Pulsando con el botón derecho del ratón sobre el elemento podemos modificar sus propiedades: tamaño y presentación.
6 . Estructuras de datos en Pd
55
ArraysArrays Mediante mensajes podemos dotarlo de contenido.
También podemos hacer que su contenido sea el de un fichero.
En general los mensajes son de la forma:
NombreArray [acción] datos
Donde la acción puede ser:– rename– resize– normalize– read– write …
6 . Estructuras de datos en Pd
66
ArraysArrays
Para acceder a sus elementos podemos usar el objeto tabread, que tiene como entrada un indice y devuelve el valor en la tabla.
6 . Estructuras de datos en Pd
77
ArraysArrays
Para modificar algún valor usaremos el objeto tabwrite
6 . Estructuras de datos en Pd
88
IntroducciónIntroducción
Hasta ahora hemos visto que los objetos de Pd se comunican mediante mensajes, estos se envían en momentos específicos bien por la acción del usuario (click, nota MIDI, etc.) o porque el evento ha sido programado para ocurrir (metro, delay, etc.).
Cuando la información que queremos comunicar en pd son samples de audio, los objetos se intercomunican calculando la información de audio necesaria en todo momento. A esta configuración se le llama -signal network- (red de señales).
Otra manera de entender las conexiones de señales es pensar en ellas como líneas de información que funcionan mucho más rápido que los mensajes, que circulan a intervalos del milisegundo.
7 . Audio en Pd
99
IntroducciónIntroducción
El audio digital requiere ser procesado mucho mas rápido, normalmente 44100 veces por segundo cada canal de audio. Pd calcula todos los números necesarios para los siguientes milisegundos de audio (44 muestras cada milisegundo).
Todos los objetos en la red de señal están continuamente realizando cálculos para entregar el valor adecuado al siguiente objeto.
La red de audio no puede contener ciclos. Para realizar realimentaciones se usan las conexiones de señales no locales ( delread~, delwrite~, send~, receive~, throw~, catch~)
7 . Audio en Pd
1010
IntroducciónIntroducción
Existen objetos que vinculan mensajes con señales de audio y traducen entre el ritmo de control de datos y la cadencia del audio.
Por ejemplo line~ reciben mensajes en sus entradas y genera señales en sus salidas (genera envolventes).
Otros objetos, como snapshot~, se conectan la red de señal y entregan un valor determinado de esta como máximo cada milisegundo.
Por ultimo hay objetos que manejan mensajes y señales como el dac~ o osc~ que puede recibir en su entrada tanto mensajes numéricos como señales.
En el caso de que el objeto pueda recibir tanto mensajes como señales, estas tienen prioridad frente a los mensajes, ya que la señal del -signal network- le hace estar recaulculando y recibiendo valores continuamente (44100 veces por segundo).
7 . Audio en Pd
1111
Entrada y salida de audioEntrada y salida de audio
En general todos los objetos de pd relacionados con el tratamiento de las señales de audio acaban con el símbolo ~.
Los objetos para obtener señal de la tarjeta de sonido y enviarla son adc y dac. Podemos añadir mediante argumentos hasta 64 salidas/entradas.
7 . Audio en Pd
1212
Entrada y salida de audioEntrada y salida de audio
Además deberemos activar el sistema de audio mediante el siguiente mensaje:
7 . Audio en Pd
1313
Reproducción y grabaciónReproducción y grabación
Para reproducir y grabar ficheros de audio sin almacenamiento previo tendremos los objetos readsf~ y writesf~.
7 . Audio en Pd
1414
Reproducción y grabaciónReproducción y grabación Cuando queremos grabar una señal digital tendremos Cuando queremos grabar una señal digital tendremos
que tener en cuenta el formato de salida. Algunos de los que tener en cuenta el formato de salida. Algunos de los argumentos que puede tener el mensaje open son:argumentos que puede tener el mensaje open son:– -wave-wave– -aiff-aiff– -bytes numero-bytes numero– -rate numero-rate numero
7 . Audio en Pd
1515
Almacenamiento en Almacenamiento en tablastablas Si lo que queremos es almacenar los samples de audio Si lo que queremos es almacenar los samples de audio
en una tabla a partir de un fichero, tendremos que en una tabla a partir de un fichero, tendremos que utilizar el objeto soundfiler. En el caso que el fichero sea utilizar el objeto soundfiler. En el caso que el fichero sea estéreo tendremos que usar dos tablas una para cada estéreo tendremos que usar dos tablas una para cada uno de los canales.uno de los canales.
7 . Audio en Pd
1616
Almacenamiento en Almacenamiento en tablastablas Para reproducir un fichero de sonido que esta Para reproducir un fichero de sonido que esta
almacenado en una tabla usaremos el objeto tabplay~.almacenado en una tabla usaremos el objeto tabplay~. Existen otros objetos para el almacenamiento y Existen otros objetos para el almacenamiento y
extracción de señales de audio en tablas tabread~, extracción de señales de audio en tablas tabread~, tabwrite~, tabreceive~, tabsend~.tabwrite~, tabreceive~, tabsend~.
7 . Audio en Pd
1717
Almacenamiento en Almacenamiento en tablastablas
7 . Audio en Pd
1818
Almacenamiento en Almacenamiento en tablastablas En el ejemplo de la ayuda de pd anterior el objeto sig~, En el ejemplo de la ayuda de pd anterior el objeto sig~,
convierte números a señales de audio y el objeto convierte números a señales de audio y el objeto snapshot~ hace lo contrario, traduce un sample de audio snapshot~ hace lo contrario, traduce un sample de audio a un número.a un número.
El objeto tabread4~, realiza una interpolación lineal de 4 El objeto tabread4~, realiza una interpolación lineal de 4 puntos, es similar a tabread pero con interpolación.puntos, es similar a tabread pero con interpolación.
Los objetos tabsend~ y tabreceive~ trabajan de forma Los objetos tabsend~ y tabreceive~ trabajan de forma similar pero mediante bloques. similar pero mediante bloques.
7 . Audio en Pd
1919
Objetos matemáticosObjetos matemáticos Como en los mensajes también con señales de audio se Como en los mensajes también con señales de audio se
pueden realizar operaciones matemáticas, sumar dos pueden realizar operaciones matemáticas, sumar dos ondas, multiplicar …ondas, multiplicar …
Los objetos matemáticos para el tratamiento de señales Los objetos matemáticos para el tratamiento de señales son: +~, *~, -~, /~, max~ y min~.son: +~, *~, -~, /~, max~ y min~.
También hay varios objetos para realizar conversiones También hay varios objetos para realizar conversiones
entre datos por ejemplo mtof~ y ftom~, convierten entre datos por ejemplo mtof~ y ftom~, convierten frecuencias midi (0..127) a frecuencias de audio. frecuencias midi (0..127) a frecuencias de audio.
7 . Audio en Pd
2020
OsciladoresOsciladores Los osciladores producen una señal con una forma de onda Los osciladores producen una señal con una forma de onda
determinada y a una frecuencia determinada. Se usan determinada y a una frecuencia determinada. Se usan habitualmente para construir sintetizadores. Dependiendo de la habitualmente para construir sintetizadores. Dependiendo de la forma de onda determinaremos el timbre final (cantidad de forma de onda determinaremos el timbre final (cantidad de armónicos).armónicos).
Las formas de onda más habituales son: sinusoidal, diente de Las formas de onda más habituales son: sinusoidal, diente de sierra, triangular y cuadrada.sierra, triangular y cuadrada.
Existen varios objetos en pd que generan esos tipos de onda, el Existen varios objetos en pd que generan esos tipos de onda, el objeto osc~ genera ondas sinusoidales y el objeto phasor~ de objeto osc~ genera ondas sinusoidales y el objeto phasor~ de diente de sierra diente de sierra
7 . Audio en Pd
2121
OsciladoresOsciladores
7 . Audio en Pd
2222
RuidoRuido También la mayoría de los sintetizadores ofrecen la También la mayoría de los sintetizadores ofrecen la
posibilidad de generar ruido. Podemos distinguir dos posibilidad de generar ruido. Podemos distinguir dos tipos de ruido:tipos de ruido:
El ruido rosa es un tipo de El ruido rosa es un tipo de ruido aleatorioruido aleatorio en el que su en el que su contenido de energía disminuye en 3 dB por octava de contenido de energía disminuye en 3 dB por octava de frecuencia. Se usa mucho como señal de prueba en frecuencia. Se usa mucho como señal de prueba en pruebas acústicas.pruebas acústicas.
El ruido blanco es un ruido cuyo nivel es constante en El ruido blanco es un ruido cuyo nivel es constante en todas las frecuencias. todas las frecuencias.
En pd tenemos un objeto para generar ruido blanco es En pd tenemos un objeto para generar ruido blanco es noise~.noise~.
7 . Audio en Pd
2323
RampasRampas Para generar una rampa de amplitud podemos usar el Para generar una rampa de amplitud podemos usar el
objeto line~, la rampa puede ser ascendente o objeto line~, la rampa puede ser ascendente o descendente dependiendo de los valores que usemos.descendente dependiendo de los valores que usemos.
7 . Audio en Pd
2424
FiltrosFiltros
7 . Audio en Pd
2525
Líneas retrasadasLíneas retrasadas Para trabajar sobre líneas retrasadas pd tiene los objetos Para trabajar sobre líneas retrasadas pd tiene los objetos
delwrite~, que crea la línea retrasada y el objeto delwrite~, que crea la línea retrasada y el objeto delread~ que la lee. delread~ que la lee.
7 . Audio en Pd
2626
Líneas retrasadasLíneas retrasadas
7 . Audio en Pd
2727
EjemplosEjemplos
7 . Audio en Pd
2828
Ejemplo adsrEjemplo adsr Para generar una envolvente típica de algunos Para generar una envolvente típica de algunos
instrumentos musicales tendremos que hacer uso del instrumentos musicales tendremos que hacer uso del objeto generador de rampa line~ y algunos objetos más.objeto generador de rampa line~ y algunos objetos más.
Los argumentos que vamos a manejar son pico máximo, Los argumentos que vamos a manejar son pico máximo, tiempo de ataque, tiempo de caída, nivel sostenido, pico tiempo de ataque, tiempo de caída, nivel sostenido, pico de sostenido y tiempo de desvanecimiento. de sostenido y tiempo de desvanecimiento.
7 . Audio en Pd
2929
Ejemplo adsrEjemplo adsr
7 . Audio en Pd