February 2024 - April 2024

I worked with my good friend Annie Lee on a final project for ECE 350 - Digital Systems. After designing our own processors, we were tasked with collaborating with a partner to “do something cool with [them].” Annie and I decided on making a synthesizer, both of us deciding we were good enough musicians and engineers to Make This Thing Happen. Our original idea was to also create mechatronic puppets that would “sing” along to the synthesizer as it was played: this would also allow us to flex our DSP muscles and implement some sort of spectrum analyzer. However, the short 3-week period we were given to implement all of our ideas resulted in us dramatically tightening our scope.

In the end, we were still able to implement most of our goals. These included:

  • Memory-mapped I/O
  • MIDI input interface
  • I2S audio output
  • Waveform generation: Sawtooth, Square, Triangle, and Sine Waves
  • Pitch Bend
  • Polyphonic Synthesis
  • Spectrum Analyzer: FFT-inspired Discrete Cosine Transform
  • WS2812b LED interface (not successfully integrated)

Of course, this list does not do this project justice, so here’s a video:

If you’re interested, you can view the software and FPGA files for this project on GitHub: https://github.com/eliucid8/ECE350-midisynth

Updated: