Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Proyecto final
Pedal de Efectos en Pure Data + Arduino
Por:
Carlos Guillermo Garca Tllez
Clave: 0180339
Procesamiento de Audio
Profesor: Alfonso Alba Cadena
Objetivo:
El objetivo del proyecto fue el diseo de un circuito que simulara un pedal de efectos de
guitarra simple pero practico, esto con la finalidad de familiarizarse con la interfaz de
pure data, asi como entender el diseo de estos aparatos, como se procesa el sonido
que proviene de un instrumento al entrar en el dispositivo y toda la matematica de hay
detrs de ello.
Materiales:
A continuacin se enlistaran los materiales que fueron utilizados para el proyecto (tanto
virtuales como fisicos):
Procedimiento:
El procedimiento se dividi en 2 partes, la primera fue la programacin dentro de la
interfaz de pure data, el parche resultante es el que se encarga de realizar y mandar
toda la informacin en arduino, mientras que la segunda parte se trata sobre el armado
del circuito, basado en la entradas de pure data.
Delay y Scoop:
Para el Delay y el scoop, se utiliz una funcin (objeto) llama delwrite~ que se
encarga escribir la linea de retraso de la seal que entra, los parametros de este objeto
se ajustaron a 500 ms, es decir, la seal de entrada de retrasar esta cantidad de
tiempo. Despues de aplic la misma multiplicacin que en el efecto de distorsin, pero
esta vez con un parametro de 0.8 al retraso que sale del objeto delwrite, esto genera
una retroalimentacin momentanea, que estimula a la seal, cabe destacar que el valor
maximo que se le puede aplicar a este parametro, es por debajo de 1, ya que en este
punto, se retroalimenta infinitamente generando ruido en la salida. Por ultimo se coloc
un objeto delread~ para leer el retraso de la retoralimentacin en un periodo de 150
ms, antes de enviarlo a la salida. Se colocaron 2 Sliders, uno en la entrada del
multiplicador de la seal, y el otro en la entrada de la lectura del retraso; al estar
activado el primero pero con el segundo apagado, la retroalimentacin momentanea
genera un efecto metalico oscilatorio en la seal, mientras que al activar el segundo, se
genera el efecto de retraso o delay. En la figura 1.2 se puede aprecar el resultado.
Reverb:
Para la parte del reverb se necesit descargar la versin extendida de pure data, ya
que trae consigo funciones que facilitan la reverberacin, como lo es el objeto
freeverb~ dentro de el se encuentran mensajes predeterminados que se pueden
usar para generar el efecto deseado. As, con las funciones definidas del objeto, se
coloc un toggle con un mensaje bypass a la entrada del objeto principal, esto para
bloquear o activar en cualquier momento el efecto,de igual forma, se colocaron
mensajes roomsize y damping (predeterminados del freeverb) en la entrada, para
simular un entorno de cuarto vacio, a estos 2 se les agreg un slider para aumentar o
diminuir el efecto del entorno. Despus, se colocaron otros 2 mensajes que ya vienen
predeterminados en el objeto, los mensajes wet y dry se agregaron a la entrada de
la seal de igual forma, junto con un mensaje numrico (0 o 1) ya que son los valores
que aceptan, el primero se encarga de aumenta o disminuir el nivel de la reverberacin,
mientras que el segundo aumenta el nivel de la seal no procesada. En la figura 1.3 se
aprecia el resultado final.
Como se puede apreciar en el parche final, se utilizaron objetos tabsend para enviar la
seal adquirida hacia arreglos especiales para poder visualizar la onda en cada efecto.
Tambin se agregaron mensajes resize y objetos soundfiler, esto porque se tiene en
mente realizar un sistema de bateria sencillo con piezoelctricos utilizando sonidos de
tarola y bombo, que sern colocados en las plantillas de los pies para llevar el tiempo
de lo que se est tocando de forma ms divertida y dinmica. Los objetos tabplay~ se
utilizan para reproducir el archivo cargado, y como que puede apreciar, tambin se
colocaron objetos bang para reproducir el sonido.
De igual forma, se dej espacio en el parche a proposito porque se planea seguir
creando ms efectos y asi ampliar la gama y variedad en el pedal.
Una vez terminado este parche, se procedi a descargar la librera Pduino, ya que es
est la que contiene las funciones especiales para poder sincronizar nuestro arduino
con pure data. En el parche anterior, en la parte superior derecha se aprecia la seccin
que contiene estos objetos. Para mayor visualizacin ver figura 1.4
Figura 1.4
A la salida del objeto se le asignaron 2 funciones, una ruta para la seccin analogica
del arduino, y la otra para la digital; En la parte analogica se conect un objeto spigot
junto con un toggle, esto activa o desactiva las entradas analogicas, dependiendo de la
activacin o desactivacin del toggle.consecutivamente se declara la ruta analogica y la
cantidad de salidas que tendr (al estar usando el arduino UNO, se limita a colocar 6
entradas, desde A0 hasta A5), una vez hecho esto se declara una funcin especial de
la librera Pduino en la seccin de ayuda llama pd display values without pegging
the CPU esta mapea y secciona las rutas analogicas para ser utilizadas
individualmente; posteriormente se agregaron objetos de multiplicacin de seal con
los valores que corresponden a cada efecto, es decir, 80 para la distorsin (amplitud),
150 para el delay (retraso), 0.8 para el scoop (retroalimetacin), el reverb al tener un
valor entre 0 y 1 no se necesit multiplicar, ya que el mapeo de la funcin especial es
suficiente. Hecho esto, se procedi a conectar las salidas de estos mensajes numricos
con los sliders correspondientes a cada uno.
Para lograr una vista ms esttica del circuito, se pens en colocar un led RGB para
que al activar cierto efecto, el color del led fuera distintivo para cada uno, por lo que se
coloc otro objeto especial llamado pd generate digital out messages (colocado de
igual forma en la librera Pduino, este objeto ya viene predeterminado con las 13
entradas digitales de la placa y es exclusivo para convertir mensajes digitales de pure
data a arduino; la salida se envi a un mensaje llamado digital que genera el nmero
de pin y la caracteristica de este (si es entrada, salida, etc.), y de ah a la entrada del
objeto arduino en la parte superior. Por ultimo, se colocaron 3 toggles a las entradas
2,3 y 4 del objeto especial para simular el encendido y apagado del led en sus 3
variantes, y a las entradas de estos, se conectaron las salidas de las cajas
multiplicadoras en la parte analogica, esto con la finalidad de que al mover el
potenciometro en cualquier efecto, se encienda el led en diferente color.
Figura 1.5
Figura 1.6
Figura 1.7
Figura 1.8
Una vez armado, y teniendo tanto la programacin de un software como del otro, se
conecta el arduino y se abre el programa pure data, seleccionando el mensaje open
que esta conectado al objeto arduino, y se activa el toggle conectado al spigot,
automaticamente se sincronizan y como se aprecia en la figura 1.9, el led se activa al
mover los potenciometros, y los efectos estan perfectamente sincronizados con ellos de
igual forma.
El ultimo paso solo consisti en conectar la interfaz a la computadora y el bajo a la
interfaz, cambiar la entrada de audio por la del behringer en la configuracin de audio
de pure data y probar el circuito con el instrumento.
Como se puede ver en la figura 1.10 estan conectados los piezoelctricos de los que se
habl anterioremente, esto debido a que el proyecto sigue en desarrollo y se esta
tratando de mejorar y agregar mas cosas.
Figura 1.9
Figura 1.10
Referencias:
http://cargocollective.com/max-pd-tutorial/pd-arduino.