First Synth: diseño de un plug-in sintetizador de audio para un DAW en C++ usando la librería JUCE

Cuerno Dueñas, Pablo (2019). First Synth: diseño de un plug-in sintetizador de audio para un DAW en C++ usando la librería JUCE. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. Industriales (UPM).

Description

Title: First Synth: diseño de un plug-in sintetizador de audio para un DAW en C++ usando la librería JUCE
Author/s:
  • Cuerno Dueñas, Pablo
Contributor/s:
  • Torroja Fungairiño, Yago
Item Type: Final Project
Degree: Grado en Ingeniería en Tecnologías Industriales
Date: January 2019
Subjects:
Faculty: E.T.S.I. Industriales (UPM)
Department: Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (3MB) | Preview

Abstract

Este TFG consiste en el diseño de un programa sintetizador de audio que funcionará como extensión (“plug-in”) de otro programa principal. La finalidad general de estos programas es añadir funcionalidades al programa principal, llamado DAW (Digital Audio Workstation). El programa permite al usuario controlar un sintetizador de síntesis substractiva (el tipo más común), que consta de las siguientes partes: dos osciladores , que son los generadores de la onda básica del audio, con dos tipos de onda básica diferentes; dos generadores de envolvente ADSR, que controlarán el la variación temporal del volumen de salida a la salida del oscilador; un efecto de delay, que funciona como un generador de “eco” ; un filtro, que podrá ser de paso alto o paso bajo y que filtrará la señal antes del delay. Manejando los parámetros de los distintos módulos desde la interfaz de usuario o GUI e introduciendo MIDI desde el DAW se consigue sacar una señal de audio, lo cual lo convierte en la herramienta ideal para un productor de música. En concreto, este sintetizador se ha diseñado más con fines didácticos que como una propuesta compleja y novedosa, ya que parte del objetivo del trabajo fue aprender a usar las herramientas para crear este “plug-in”. Este programa se ha desarrollado en C++ ayudándose de JUCE, una librería de uso gratuito para proyectos no comerciales. Esta librería proporciona una serie de clases que servirán para diseñar aplicaciones de audio. Además, cuenta con ejemplos y tutoriales para enseñar a los desarrolladores a exprimir al máximo sus posibilidades. En este trabajo en concreto, no se han aprovechado estas posibilidades, ya que se ha preferido solo usar las partes que proporcionan aspectos más complejos y más difíciles de programar uno mismo si no se es un experto (como por ejemplo la entrada de MIDI o el cálculo del algoritmo del filtro). Por tanto, el trabajo está más centrado en el diseño de aspectos aparentemente más simples como el funcionamiento de los osciladores o el ADSR y que fácilmente podrían haber sido reemplazados por clases prefabricadas de JUCE. Este proyecto exige un conocimiento del funcionamiento del sintetizador más profundo, y, por tanto, es más interesante su uso cómo ejercicio didáctico para empezar a programar aplicaciones de audio con JUCE que cómo herramienta de trabajo.

More information

Item ID: 54111
DC Identifier: http://oa.upm.es/54111/
OAI Identifier: oai:oa.upm.es:54111
Deposited by: Biblioteca ETSI Industriales
Deposited on: 27 Feb 2019 08:10
Last Modified: 26 Apr 2019 22:30
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM