Pure Data es un lenguaje Open Source inspirado en el paradigma de la programación en base a flujo de datos.
WebPD es una versión js para PD que permite integrar el recurso a la web.
En esta versión disponemos de los siguientes objetos:
Para cargar un parche desarrollado en pd sobre nuestro HTML debemos ejecutar lo siguiente;
var patch
$.get(‘pd/main.pd’, function(mainStr) {
patch = Pd.loadPatch(mainStr)
webPdExamples.patchLoaded(mainStr)
})
Desde aquí es posible entonces acceder al DOM para interactuar con el parche.
La idea tras PD es tan potente como sencilla. Básicamente, para crear nuestro proyecto sonoro tenemos osciladores, generadores de Ruidos y acceso a tablas.
Para generar un oscilador debemos definir la frecuencia.
la señal del oscilador es entregada al conversor digital análago DAC que funciona como parlante estéreo
Ahora bien, para establecer la intensidad sonora es necesario multiplicar señal por un numero entre [0,1]. Como usted sabe, nuestra percepción de la intensidad de un sonido no es lineal, sino que mas bien logarítmica, por lo que la amplitud debe ser transformada de decibelios a rms (dbtorms).
De esta forma es posible llevar a cabo un síntesis aditiva, sumando una frecuencia que llamaremos fundamental con sus armónicos superior que correspondes a múltiplos enteros de la fundamental.
Es posible también hacer síntesis utilizando osciladores como amplitud (Amplitud Modulada) o en la frecuencia misma (Frecuencia Modulada).
En esta síntesis FM intenta frecuencias pequeñas con indices entorno a los 400! Notaras se produce un vibrato.
Ciertamente, en teoría es posible crear cualquier onda compleja mediante la suma de sus componentes armónicos, no obstante, para ciertos sonidos, eso es muy poco practico dado que determinados sonidos requieren muchos componentes para ser sintetizados. Piense por ejemplo en el sonido de una maraca o una caja de percusión…
Así, aveces es mejor tomar un sonido que ya contenga todos las frecuencias y filtrar aquellas que nos interesan. El ruido es en esencia eso… frecuencias a intensidades aleatorias.
Podemos filtrar y de dejar pasar las frecuencias bajo determinada frecuencia de corte (Filtro pasa Bajo)
o bien podemos dejar pasar las frecuencias altas (Filtro pasa altos).
Podemos también definir una frecuencia y un ancho de banda para determinar las frecuencias a filtrar.
Por ultimo, es posible manejar tablas para entre otras cosas guardar archivos de audio.
Y bueno…. (se preguntara como apagar esto…) Como entenderá las posibilidades son enormes. Anímese y descubra!