>/ Metalbox-Store.org

./dev

ESP Synth

A compact polyphonic synthesizer built on the ESP32-S3 platform.
It combines a dedicated Input chip for UI and MIDI handling, and an Audio chip for real-time voice synthesis and audio output.

synth_portrait.jpg

System Architecture

🟢 Audio Chip — ESP32-S3

The Audio chip is responsible for generating sound.
It receives MIDI and control events via I²C from the Input chip, synthesizes voices, and outputs audio via I²S to a PCM5102 DAC.

esp_synth_output.jpg

Main components:

  • Voices (3):
    Each voice has:
    • Oscillators (Sine, Square, Triangle, Noise)
    • ADSR envelope
    • Filter with cutoff/resonance
    • Modulation: Pitch LFO and Amp LFO
  • Render loop: Combines all voices and applies modulation
  • Mix + I²S output to PCM5102 DAC
  • Master volume knob and noise filtering stage on analog output

🟣 Input Chip — ESP32-S3

The Input chip handles user interaction, display, and incoming MIDI, and sends events over I²C to the Audio chip.

esp_synth_input.jpg

Main components:

  • Knob + Button: User input for menu navigation and voice settings
  • Display: Shows menus and settings
  • USB MIDI In: Receives external MIDI notes and clock
  • BPM counter: Generates BPM events from MIDI clock
  • I²C Sender: Sends voice settings, BPM events, and MIDI notes to the Audio chip

Signal Flow

Control path:
Knob/Button → Menu/Settings → I²C → Audio Chip

MIDI path:
USB MIDI → BPM counter + MIDI events → I²C → Audio Chip

Audio path:
Voices → Render loop → Mix → I²S → PCM5102 → Analog Output


Status

This is an active work-in-progress project.
Follow development on GitHub: esp32-audio-synth