Piano
Demo
Audio Tuning Demo
Twinkle Twinkle Little Star
Overview
The BAYSE-3 Piano was developed as the final project for CS 233: Computer Architecture (Honors) at the University of Illinois at Urbana-Champaign. The project demonstrates a complete audio synthesis pipeline built directly on an FPGA, converting switch and button inputs into real-time musical tones using digital waveform generation and DAC-based analog output.
The piano implements multiple octaves, volume modes, and chord support, with all sound generation handled purely in hardware using Verilog. The project highlights proficiency in digital design, modular synthesis, and signal path control through HDL.
Hardware
The hardware design was implemented on the BAYSE-3 FPGA board, utilizing the PMOD R2R DAC for audio output and an external op-amp amplifier to drive a speaker. Input controls were connected through the FPGA’s onboard switches and buttons to control octave selection, chord generation, and volume.
- Platform: Digilent BASYS3 FPGA board (Xilinx Artix-7).
- DAC Output Implemented via Pmod R2R resistor ladder on the JG port.
- Amplification: SparkFun Audio Amplifier used to drive speaker output.
- Speaker: Mini 0.5W Speaker for final analog sound output.
Logic Design
- Pure hardware implementation in Verilog with no software processor used.
- Each piano key generates a programmable frequency tone through a digital divider circuit.
- Octave control implemented via frequency scaling logic triggered by BTNL/BTNR inputs.
- Supports simultaneous key presses for chord generation using summed digital signals.
- Volume toggling implemented through high/low bit scaling using SW0.
Results
The BAYSE-3 Piano successfully produced clear, stable musical tones across multiple octaves. The system was capable of detecting multiple key presses simultaneously, enabling full chord generation. Frequency transitions between octaves were smooth, and the DAC output was clean after amplification. The final demo demonstrated robust and responsive sound generation fully in hardware.
A video demonstration of the working piano can be viewed below.
Project Code / Report
The complete Verilog source code, design files, and demonstration video are available in the linked GitHub repository and video. All modules were built and tested in Vivado.
Future Work
- Add on-board display to visualize selected note and octave.
- Expand design to include MIDI-over-USB support for external control with keypad.
- Implement smoother chord transitions.