Custom MIDI Keyboard, HMC

Post Written: 07/08/2025

Project Start: Nov 2017

Project End: Dec 2017

DISCLAIMER: This post is sparse as it was part of a backlog of posts. It may be updated in the future.

Harvey Mudd College E155: MicroPs

TL;DR

As a final project and a two person team, we built a custom MIDI keyboard using a Raspberry Pi and a Cyclone IV FPGA. This was one of my favorite courses.


Longer Version

I'd love to write more and reflect more on this later. In the meantime, to get through the backlog, here's the résumé version.


  • Worked on a two-person team to design and implement a customizable system to interpret MIDI commands, outputting the desired waveform at the desired frequency.
  • Used RPi to interpret MIDI commands over USB.
  • Adapted a MIDI library in C to process custom commands and send data over SPI.
  • Used SPI to communicate between a RPi 3.0 and a Cyclone IV FPGA.
  • Interpreted FPGA SPI for dynamic waveform generation.
  • Used I2C to interface between Cyclone IV FPGA and DAC.