En este Trabajo de Fin de Grado se elabora el diseño e implementación de una aplicación educativa que simula un sintetizador, con el objetivo de enseñar al usuario la síntesis de audio de una manera sencilla. El proyecto no pretende diseñar un sintetizador completo, sino que se centra específicamente en el diseño de la interfaz general y en la implementación completa de los osciladores. ´
Contexto y motivación
La síntesis sustractiva constituye uno de los métodos más utilizados en la creación de sonidos electrónicos desde la creación de los sintetizadores analógicos en los años 1960. Este enfoque consiste en generar señales ricas en armónicos que posteriormente se procesan mediante filtrado y modulación para obtener el timbre deseado. A pesar de su importancia histórica y su presencia en la mayoría de sintetizadores modernos, tanto hardware como software, el aprendizaje de estos conceptos presenta una barrera de entrada significativa para principiantes, especialmente por la complejidad de las interfaces y la falta de retroalimentación visual inmediata.
La motivación principal de este trabajo es crear una herramienta didáctica que permita a estudiantes y aficionados comprender de forma intuitiva cómo funcionan los osciladores y sus interacciones, proporcionando además una visualización en tiempo real de las formas de onda generadas y un sistema de ayuda para un usuario principiante. Con esta herramienta el usuario podrá no sólo oír los osciladores, sino interpretar visualmente las modificaciones del sonido que se producen al manipular los controles.
El sistema se desarrolló en Python, utilizando Tkinter para la interfaz gráfica, NumPy para procesar las señales de audio, SoundDevice para la reproducción de audio y Matplotlib para la visualización de formas de onda. La estructura modular del proyecto separa la parte de síntesis de audio (audio/), la interfaz de usuario (ui/) y algunas funciones de visualización (visual/). Esta organización facilita el desarrollo de otras funcionalidades en proyectos futuros, hasta completar el diseño de un sintetizador típico.
La aplicación cumple todos los objetivos planteados. Se ha logrado crear una interfaz sencilla que permite visualizar de forma inmediata el efecto de cada parámetro sobre la forma de onda generada. Los mensajes de ayuda y las guías facilitan el aprendizaje. El código está bien estructurado lo que hace que sea fácil de añadir las componentes restantes del sintetizador típico.
ABSTRACT
This Bachelor’s Thesis addresses the design and implementation of an educational application for teaching audio synthesis using synthesizers. The project does not intend the design of a complete synthesizer, but focuses specifically on the design of the overall interface and on the complete implementation of oscillators.
Context and Motivation Subtractive synthesis is one of the most widely used methods in the creation of electronic sounds since the emergence of analogic synthesizers in the 1960s. This approach consists of generating harmonically rich signals that are subsequently processed through filtering and modulation to obtain the desired tone. Despite its historical importance and its presence in most modern synthesizers, both hardware and software, learning these concepts represents a significant entry barrier for beginners, especially due to the complexity of interfaces and the lack of immediate visual feedback.
The main motivation of this work is to create a didactic tool that allows students and enthusiasts to intuitively understand how oscillators work and how they interact, providing real-time visualization of the generated waveforms and a help system designed for beginners. In addition to the sound produced by the synthesizer, this tool provides a visual interpretation of the effects of the different controls on the tone.
The system was developed in Python, using Tkinter for the graphical interface, NumPy for audio signal processing, SoundDevice for sound reproduction, and Matplotlib for waveform visualization. The software architecture follows a modular pattern that clearly separates the audio synthesis logic (audio/), the user interface (ui/), and the visualization utilities (visual/). This approach facilitates the development of other functionalities in future projects, that will complete a full-featured synthesizer.
The resulting application meets all the proposed objectives. An educational tool was successfully created that allows users to immediately visualize the effect of each parameter on the generated waveform. The integrated help system facilitates learning, while the presets provide starting points for experimentation. The code is well structured, facilitating future extension with the remaining synthesizer components.
En este Trabajo de Fin de Grado se elabora el diseño e implementación de una aplicación educativa que simula un sintetizador, con el objetivo de enseñar al usuario la síntesis de audio de una manera sencilla. El proyecto no pretende diseñar un sintetizador completo, sino que se centra específicamente en el diseño de la interfaz general y en la implementación completa de los osciladores. ´
Contexto y motivación
La síntesis sustractiva constituye uno de los métodos más utilizados en la creación de sonidos electrónicos desde la creación de los sintetizadores analógicos en los años 1960. Este enfoque consiste en generar señales ricas en armónicos que posteriormente se procesan mediante filtrado y modulación para obtener el timbre deseado. A pesar de su importancia histórica y su presencia en la mayoría de sintetizadores modernos, tanto hardware como software, el aprendizaje de estos conceptos presenta una barrera de entrada significativa para principiantes, especialmente por la complejidad de las interfaces y la falta de retroalimentación visual inmediata.
La motivación principal de este trabajo es crear una herramienta didáctica que permita a estudiantes y aficionados comprender de forma intuitiva cómo funcionan los osciladores y sus interacciones, proporcionando además una visualización en tiempo real de las formas de onda generadas y un sistema de ayuda para un usuario principiante. Con esta herramienta el usuario podrá no sólo oír los osciladores, sino interpretar visualmente las modificaciones del sonido que se producen al manipular los controles.
El sistema se desarrolló en Python, utilizando Tkinter para la interfaz gráfica, NumPy para procesar las señales de audio, SoundDevice para la reproducción de audio y Matplotlib para la visualización de formas de onda. La estructura modular del proyecto separa la parte de síntesis de audio (audio/), la interfaz de usuario (ui/) y algunas funciones de visualización (visual/). Esta organización facilita el desarrollo de otras funcionalidades en proyectos futuros, hasta completar el diseño de un sintetizador típico.
La aplicación cumple todos los objetivos planteados. Se ha logrado crear una interfaz sencilla que permite visualizar de forma inmediata el efecto de cada parámetro sobre la forma de onda generada. Los mensajes de ayuda y las guías facilitan el aprendizaje. El código está bien estructurado lo que hace que sea fácil de añadir las componentes restantes del sintetizador típico.
ABSTRACT
This Bachelor’s Thesis addresses the design and implementation of an educational application for teaching audio synthesis using synthesizers. The project does not intend the design of a complete synthesizer, but focuses specifically on the design of the overall interface and on the complete implementation of oscillators.
Context and Motivation Subtractive synthesis is one of the most widely used methods in the creation of electronic sounds since the emergence of analogic synthesizers in the 1960s. This approach consists of generating harmonically rich signals that are subsequently processed through filtering and modulation to obtain the desired tone. Despite its historical importance and its presence in most modern synthesizers, both hardware and software, learning these concepts represents a significant entry barrier for beginners, especially due to the complexity of interfaces and the lack of immediate visual feedback.
The main motivation of this work is to create a didactic tool that allows students and enthusiasts to intuitively understand how oscillators work and how they interact, providing real-time visualization of the generated waveforms and a help system designed for beginners. In addition to the sound produced by the synthesizer, this tool provides a visual interpretation of the effects of the different controls on the tone.
The system was developed in Python, using Tkinter for the graphical interface, NumPy for audio signal processing, SoundDevice for sound reproduction, and Matplotlib for waveform visualization. The software architecture follows a modular pattern that clearly separates the audio synthesis logic (audio/), the user interface (ui/), and the visualization utilities (visual/). This approach facilitates the development of other functionalities in future projects, that will complete a full-featured synthesizer.
The resulting application meets all the proposed objectives. An educational tool was successfully created that allows users to immediately visualize the effect of each parameter on the generated waveform. The integrated help system facilitates learning, while the presets provide starting points for experimentation. The code is well structured, facilitating future extension with the remaining synthesizer components. Read More


