Hacía tiempo que no escribía en el blog. Esta vez lo hago para presentar el último proyecto que he hecho, y que ha sido mi Proyecto Fin de Grado en la universidad.
Durante unos cuantos años he construido pedales de efectos analógicos para guitarra. Son circuitos electrónicos que consiguen modificar el sonido de una guitarra eléctrica. En esta ocasión, he decidido seguir por la misma línea, pero trabajando con el procesado digital.
¿Qué diferencia hay entre analógico y digital? En los circuitos analógicos el sonido se trata como una señal continua. Por el contrario, para tratar audio en formato digital, la señal continua hay que discretizarla y asignarle unos valores. Con la precisión actual, se consigue una señal muy parecida, pero no va a ser exactamente la misma. Además, cuando hacemos un circuito electrónico analógico, se escogen unos componentes, que van soldados a una placa, una vez realizado este proceso, hacer modificaciones puede resultar complicado, ya que habrá que desoldar los componentes electrónicos para efectuar cambios. Los circuitos digitales nos permiten modificar un circuito modificando un fichero de programación.
Volviendo al tema. El proyecto lo he hecho sobre una FPGA, por lo que he usado el lenguaje de descripción de hardware VHDL. He diseñado cuatro módulos con los siguientes efectos, amplificador (booster), distorsión, overdrive y trémolo.
También he trabajado con el procesador Nios II de Altera, integrado en la propia FPGA. Esto permite mezclar módulos en VHDL con programación en C. Con esta arquitectura he diseñado otros efectos, concretamente delay, echo y reverberación.
Durante el camino también trabajé con elementos analógicos. Para interactuar con los efectos y poder configurarlos utilice una placa con potenciómetros, conectados al CAD de la placa. También diseñé un adaptador de impedancias analógico, para adaptar la salida de la guitarra a la entrada de audio de la placa, de no hacerlo, el sonido resultaría pobre, apagado y sin respuesta en agudos.
Esto es un breve resumen, por eso al final de esta entrada dejo un vídeo de demostración y enlaces a la memoria y el código, que está en mi portfolio de GitHub.