Skip to content

MiCyg/LyraTSynth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LyraTSynth

Work in Progress

My dream was to build an analog synthesizer — a project full of electrical work. For now, the goal has shifted to designing a digital one :)

This project aims to build a flexible framework for different types of synthesizers running on a low-cost microcontroller. In this repository, most of the focus will be on software, while the hardware will be kept as a small and simple module.

Hardware

Key components of the ESP32-LyraT:

  • Microcontroller: ESP32-WROVER-E with 8 MB of additional PSRAM
  • DAC module: ES8388 supporting up to 96 kHz / 24-bit sampling
  • Control interface: several onboard buttons
  • MIDI input: provided by an additional custom board

The simple schematic of the MIDI input is based on the MIDI hardware specification (Figure 2 – MIDI IN and THRU circuit). It uses an optocoupler connected to a UART pin of the microcontroller.

Framework

Espressif provides an Audio Development Framework that includes various functions for audio processing — filters, equalizers, encoders, and so on. Unfortunately, most of these are geared toward playback and processing rather than sound generation.

Because of that, I decided to use the PlatformIO environment instead. I’ve found several good examples of audio generators developed within it, so it seems like a solid starting point for this project.

Modules

MidiWrapper

The MidiWrapper class is a singleton that encapsulates a serial interface for MIDI input and maintains a vector of MIDI CC mappings. Mappings can be created externally and then added to the class, making this approach more convenient. The class also provides a method to change the MIDI input channel.

AudioGenerator

In future...

Project timeline

  • 1 weeks – Prepare the hardware for testing (solder the MIDI input)
  • 3 weeks – Create a parser for MIDI parameter control
  • 3 weeks – Implement the waveform generation library. This will be a class that generates successive audio buffers, which can be modulated in real time using the MIDI parser module.
  • 3 weeks – Create the audio processing library and implement a filter controlled via the MIDI parser.
  • 3 weeks – Extend the library by adding a reverb or delay effect with MIDI control.
  • 1 week – Test the device to identify any issues during continuous operation.
  • 1 week – Prepare the presentation.

About

Synthesizer synth engine from scratch

Topics

Resources

Stars

Watchers

Forks