▷ Digital synthesizer based on #FPGA

 

⭐⭐⭐⭐⭐ Digital synthesizer based on #FPGA


✅ Objectives:
  • Desarrollar los bloques en VHDL que conforman un sintetizador standard.
  • Acoplar los bloques de forma funcional en el dentro de la FPGA.
  • Desarrollar una interfaz de control analógico y salida por monitor HDMI/VGA.
  • Medir los tiempos de procesamiento, % de CPU utilizado y % de memoria utilizada, en el procesador NIOSII, ARM ó ambos, según sea el caso (radar chart).
✅ Goals:
  • Implementar un Sistema Embebido basado en #FPGA genere todos los procesos de un sintetizador digital: oscilador de funciones, multiplexores, filtros, amplificadores, etc., el sistema permite almacenar en memoria Double Data Rate 3 Synchronous Dynamic Random-Access Memory #DDR3_SDRAM) configuraciones para una reproducción posterior, el acceso a la memoria se lo realizará a través del Hard Processor System #HPS. El sistema deberá tener como salida un monitor VGA ó HDMI que muestre de forma clara la forma al menos una de las ondas en los diferentes bloques del sintetizador, además deberá tener una salida de audio estéreo analógica para reproducirlo con un altavoz. El sistema basado en FPGA es quien ejecuta de forma concurrente todos los bloques del sintetizador,  pero los grupos que tengan estudiantes de telemática, no usarán la salida VGA ó HDMI sino deberán acceder a la interfaz visual por medio de una aplicación web desplegada en un servidor de aplicaciones web corriendo en un sistema operativo linux con procesador #ARM.
✅ Abstract:
  • El papel de la ‘excitación’ lo tomará en un sintetizador sustractivo un oscilador (o un conjunto de ellos), y el papel del resonador se emulará mediante filtros (a menudo uno, mejor si es un conjunto de ellos). Si se trata de un sinte analógico es habitual denominarlos VCO y VCF (Voltage Controlled Oscillator y Voltage Controlled Filter) [1].
  • Dado que los sonidos no son en general estáticos, sino que evolucionan a lo largo de la duración de una nota (sonido más fuerte y brillante al comienzo de una nota de piano o guitarra, afinación más inestable en el ataque de un viento, etc.), se requieren también elementos que faciliten variar ya sea la intensidad, la altura o el color/timbre. Para ello aparecen como complemento otros módulos como son los generadores de envolvente (EG, envelope generator, que permiten definir una evolución a lo largo del desarrollo de una nota) o los osciladores de baja frecuencia (LFO, low frequency oscillator, que permiten definir variaciones cíclicas) [1].
  • Con un sintetizador se trata de poder actuar a nuestro antojo sobre las tres dimensiones ‘macro’ de un sonido: su altura tonal, su timbre y su intensidad. Usando siglas habituales, ya presentadas, aquí tenéis una arquitectura típica y simple, con sólo cinco módulos [1].
  • La señal del oscilador se filtra y posteriormente se amplifica. Son esos 3 elementos los que definen el camino que sigue el audio. Pero además aparecen el EG y LFO destinados a conseguir sonidos que se mueven, cambian, evolucionan a lo largo del tiempo. Actuar con ellos sobre la afinación de oscilador permitirá variaciones de tono, actuar sobre el filtro variaciones de brillo/timbre, y … ¿sobre quién actuamos para obtener variaciones de nivel, de volumen? Sobre un amplificador (VCA, Voltage Controlled Amplifier) [1].
✅ Specifications:
  • VCO, Tipos de Ondas de salidas: Sinusoidal, Triangular, Diente de Sierra
    • Las perillas de ajuste permiten controlar todo el ancho de bandas de frecuencia del VCO ( 20Hz - 16Khz aprox)
  • ESCALADA: Entrada 1V / Octava, esta entrada nos permite controlar la frecuencia del VCO por medio de control por voltaje de un teclado, Sequencers. Esta es una entrada exponencial de control de voltaje.
  • Entrada de Modulación de Frecuencia (FM), esta entrada puede recibir señales de audio o de control las cuales pueden modular la frecuencia del VCO.
    • Esta entrada necesita una perilla para controlar  el nivel o profundidad de la señal de control de voltaje  de las señales que se aplican en la entrada de FM.
  • VCF (multifiltro)
    • Salidas: -12 dB/ Octava en low pass y High pass  :: -6dB/ octava en Band pass y Notch…
    • Salidas independientes de 4 tipos de filtro: Low pass, High pass, Band pass y Notch 
    • 1 Perillas para controlar la Frecuencia de Corte ( Cut Off)
    • 1 perilla para controlar la resonancia ( desde cero a resonancia a 100% empieza a Oscilar entre 15 Hz y 15KHz)
    • Asignar una entrada para controlar / modular por medio de voltaje la resonancia
    • Entrada calibrada para recibir 1Volt por Octava ( 1V/Oct) ( hasta 4 Octavas) 
    • Entrada de Audio ( Audio In ) con su respectiva perilla para controlar la señal de entrada  de 0 a 100 
    • 1 entrada que reciba Control de Voltaje con su respectiva Perilla ( Atenuador / + y - ) Es decir aplicar valores de voltaje la positivos y negativos.
  • VCA Cuádruple (4 VCA)
    • 1 Perilla para controlar   curva de respuesta ajustable ( exponencial / lineal) 
    • Todas las salidas están conectadas en modo cadena permitiendo mezclar a todas las salidas ( ejemplo si salimos del VCA 4 será la suma de todas las entradas ) 
    • Entradas
      • Señales DC couple ( acepta señales de Audio o señales de control ) 
      • 4 Salidas para cada VCA ( si ningún cable está conectado en la salida del VCA #1 La señal de este canal es dirigida / routed al siguiente canal) Por ejemplo si ningún cable está conectado en las salidas de los VCA 1,2,3. La salida del VCA #4 contiene las señales de todos los VCA) tipo en cadena 
    • Cada VCA tiene una entrada que recibe señales de control por voltaje ( +8 V)  ( de esta manera podemos controlar el VCA abrir o cerrarlo con una Envolvente tipo ADSR)
Reference:
  • [1] https://www.hispasonic.com/tutoriales/sintesis-6-fundamentos-sintesis-sustractiva-i/38468
  • Especificaciones de Daniel Campoverde
✅ Hardware:
  • (1) #DE10_Standard o #DE10_Nano
  • (1) Monitor VGA / HDMI
  • (1) Parlantes estéreo
✅ Database:
✅ Expertos:  dcampoverde (sonoro)

Comentarios

Popular Posts

▷ Especificaciones del módulo ESP32

▷ #ESP32 - REAL-TIME CLOCK #RTC INTERNO

▷ #ESP32 - SINCRONIZAR RTC INTERNO CON SERVIDOR NTP

▷ #ESP32 - Display OLED 128x64

▷ #ESP32 - Over-The-Air programming #OTA

▷ SISTEMAS EMBEBIDOS, PROYECTOS PROPUESTOS (2021 PAO1)

▷ PROTEUS PCB DESIGN

▷ Artificial Intelligence #AI based on #FPGA

▷ #ESP32 - #MQTT (Introducción)

▷ SOLUCIÓN EVALUACIÓN SISTEMAS DIGITALES 1, 1er Parcial (2021 PAE)