Configuración y Objetos de Audio básicos
30 min
RECOMENDACIÓN: os aconsejo trabajar con altavoces, no con cascos. El sonido puede hacer daño a los oídos si no controláis con qué decibelios estáis trabajando.
Cuando hablemos de sonido en el ámbito digital, por ejemplo, dentro de un programa, nos referimos a una representación del sonido dentro de este entorno. Es una representación que podemos manipular de esta manera podemos diseñar sonidos desde un ordenador, pero sonido como tal solo sera lo que el altavoz produce. Para diferenciarlo llamaremos a esta representación señal de audio, ya que es una señal cuyo ultimo propósito sera hacer vibrar la membrana de un altavoz para generar esa onda mecánica que conocemos como sonido
Configuración del audio en Pure Data
Configurar el audio de pure data de acuerdo a vuestra tarjeta de sonido. Que es una tarjeta de sonido? que tarjeta de sonido teneis.
Drivers:
https://resumebuilderpro.com/resume-examples/jackosx
Cuando hablemos de señal nos estamos refiriendo a una onda, que en el programa se representa como una rápida secuencia de numeros. Digamos que estos valores indican la posición de un punto de la onda en el momento en que se generan
Parametros que vamos a configurar:
Sample rate o frecuencia de sampleo
Es número de valores por segundo que definen una onda. La mayoría de las tarjetas de sonido funcionan a 44.000 Hz, que es la frecuencia que viene predeterminada en la configuración de Pure data, o a 48.000 Hz. Tendréis que configurar este parámetro para que coincida con el de vuestra tarjeta de sonido. En mi caso utilizo una tarjeta de sonido externa que actualmente tengo configurada a 48 kHz, por lo que utilizare la misma frecuencia en mi configuración de Pure Data.
Latencia, Retardo o delay
(Un ordenador necesita tiempo que necesita el ordenador para procesar la información que sale de un programa y enviarla a la tarjeta de sonido para que la convierta en impulsos eléctricos que unos altavoces puedan transformar en sonido.) Es el tiempo que tarda desde el momento en que se ejecuta una acción hasta que percibimos su resultado, por ejemplo; desde que apretamos el botón de play hasta que el sonido sale por los altavoces y podemos escucharlo. Latencias cortas transmiten la sensación de mayor responsive ya que el resultado de una acción es percibido inmediatamente, sin embargo, una latencia demasiado corta puede provocar interrupciones o errores en el sonido (clics, pums, craks), ya que el ordenador no tiene tiempo suficiente para terminar de procesar los datos antes de enviarlos. Asi que, si os encontráis con este problema, probar a aumentar la latencia.
En mi caso configurare la latencia en 80 milisegundos.
Tamaño de Bloque o Buffer Size.
Este parámetro está relacionado con la latencia y vamos a dejarlo en 64.
Dispositivos de Entrada
Aqui podemos configurar que entradas y a traves de que tarjeta vamos a recibir en Pure Data, por ejemplo, el micrófono interno de vuestro ordenador. En mi caso es la entrada que aparece configurada en la Figura tal.
Dispositivos de Salida
Este apartado nos permitir configurar a traves de que salidas se enviara el audio que creemos en Pure Data. En mi caso como tengo una tarjeta de audio externa a la que tengo conectados mis altavoces, la salida que selecciono sera la de mi tarjeta de sonido: OUT 1-2 (MOTU M Series)
Los dispositivos de salida y entrada en vuestros ordenadores van a tener diferentes nombres dependiendo del ordenador o tarjeta que tengáis, así que, no esperéis encontrar los mismos que aparecen en las imágenes que os pongo.
MIDI
explicar que es el MIDI y equivalencias con las notas, poner la función y que es una función exponencial. El midi es un numero entero por cada medio tono
mtof = "midi to frequency" convierte valores de Hz a MIDI
ftom = "frequency to midi" convierte valores de MIDI a Hz
notein
noteout
makenote
Appendix B: Pitch to MIDI to Frequency Chart (indiana.edu)
Ejercicio 1 con MIDI
Generales
dac~ = "digital to analog converter" Este objeto representa la puerta de conversion entre los números que componen esas señales de audio a las que vamos a dar forma en pure data y el movimiento de la membrana del altavoz que va a generar el sonido. Nuestra tarjeta de sonido va a convertir estos datos en variaciones de corriente eléctrica que van a hacer que nuestro altavoz se mueva.
Este objeto sera nuestra connexion con los altavoces y todo lo que enviemos al dac~ sera reproducido por nuestros altavoces.
adc~ = "analog to digital converter" Este objeto realiza la función inversa al dac~ y es la puerta que nos permite acceder a la conversion del movimiento de la membrana de un micrófono a números con los que podremos trabajar en el mundo digital, recordar que vimos que la programacion se basa en fujos de datos que podremos almacenar y transformar.
sig~
line
El objeto line~ genera rampas lineales entre dos valores en un tiempo determinado. Estos parámetros se determinan por los mensajes recibidos en los inlets de line. Por ejemplo, generar una secuencia de valores entre 2 y 5 en 100 milisegundos. Enviando un mensaje al inlet izquierdo podremos configurar los valores de partida, destino y el tiempo de nuestra rampa. El tiempo también podremos configurarlo con el inlet derecho.
Veamos como tenemos que construir los mensajes del inlet izquierdo para controlar nuestra rampa:
Un mensaje con único valor indicara el valor del destino. El line de la imagen ira al valor 5 en 64 milisegundos.
Cuando enviemos un mensaje con dos valores separados por un espacio; el primer valor del mensaje indicara el valor del destino y el segundo valor el tiempo que se tomara en llegar a ese valor de destino. El line de la imagen siguiente ira al valor 5 en 100 milisegundos.
Enviamos un mensaje con tres valores, los dos primeros separados por "coma" "espacio" y el segundo y el tercero por un "espacio"; el primer valor indicara el valor de partida, el segundo el valor de destino y el tercero el tiempo requerido para ir desde el valor de partida al valor de destino. El line de la imagen siguiente ira desde el valor 2 al valor 5 en 100 milisegundos.
Si no especificamos el tiempo, saltara directamente al valor de destino. Si queremos detener la progresión de la rapa enviaremos un mensaje con la palabra "stop", el ultimo valor generado antes de parar la progresión, o el valor de destino de la rampa en caso de que la progresión no se detenga, quedara almacenado y cuando no especifiquemos un valor de partida tomara como valor de partida ese valor almacenado en la interacción anterior. Cuando no haya habido una interacción anterior el valor de partida por defecto sera 0. El line de la imagen siguiente ira desde el valor 2 al valor 5 en 100 milisegundos, si recibe el mensaje stop, detendrá la progresión.
Crea un patch con el objeto line~ o abre su patch de ayuda y prueba su funcionamiento. Enviarme un mensaje si hay alguna duda.
snapshot~
El snapshot~ permite convertir una señal de audio en valores numéricos. Esto nos sera muy util cuando queramos enviar valores procedentes de una señal de audio a un objeto que no sea de audio. Recordar que los objetos que nos son de audio no tienen la "~" y no aceptan señales de audio como input. Este objeto nos sera util para visualizar que sucede con nuestras señales de audio. Cada vez que recibe un bang registra el valor en tiene en ese momento la señal de audio, sería el equivalente a la posición de una partícula afectada por una onda en un momento determinado.
poner ejemplo con el line
tabwrite~
Generadores de Audio
noise~
phasor~
coseno
cos~
oscilador
El objeto osc~ es un generador de ondas sinusoidales, también conocidas como ondas puras. Debe recibir en su inlet izquierdo la frecuencia de la onda que queramos generar en valores en Hz. Este objeto va a generar una onda con una amplitud de 1, generar valore de -1 a 1. ve valores que van de -1 a 1.
Imagen de una onda que va -1 a 1
Filtros
hip~
lop~
bp~
env~
vcf~