Project Title: Embedded Synthesizer – A Custom Digital Musical Instrument
Team Members: David Green, Sam Owens, Sam Satalof
Course: ECE 414 – Embedded Systems
Project Overview
This project involved the design and construction of a fully functional digital synthesizer from the ground up. The goal was to create a unique musical instrument using the Raspberry Pi Pico, featuring a novel user interface and deep sound customization. The final prototype resulted in a playable instrument that other students could use intuitively, successfully integrating complex hardware and software to produce polyphonic, customizable sound.
Key Features & Objectives
The synthesizer was designed with the following core capabilities:
-
Novel User Interface: 13 Force-Sensitive Resistors (FSRs) act as touch-sensitive, pressure-aware “keys” to play musical notes across a full octave.
-
Polyphonic Sound: The synthesizer supports up to 9-note polyphony, allowing multiple notes to be played simultaneously.
-
Professional-Grade Sound Synthesis: Sound is generated by a dedicated Yamaha YM3812 (OPL2) FM synthesizer chip, the same chip used in classic sound cards like the AdLib and Sound Blaster.
-
Real-Time Sound Shaping: Users can customize the sound in real-time using sliders and potentiometers to adjust the Attack, Decay, and Sustain of the notes, and a button to toggle a Vibrato effect.
-
Expressive Control: The volume of each note is dynamically controlled by how hard the user presses the corresponding FSR, allowing for expressive performance.
-
Integrated Design: The system is housed in a custom laser-cut enclosure for a polished and robust finish.
Technical Implementation
Hardware Core:
The system integrates a wide array of components, requiring careful management of different voltage levels and communication protocols.
-
Main Controller: Raspberry Pi Pico (RP2040)
-
Sound Synthesis: Yamaha YM3812 FM Synthesizer Chip and YM3014B Digital-to-Analog Converter (DAC).
-
User Input:
-
13 x Force-Sensitive Resistors (FSRs) for the keyboard.
-
Linear sliders for Attack and Decay adjustment.
-
Potentiometer for Sustain adjustment.
-
Button for Vibrato toggle.
-
-
Signal Conversion: 2 x MCP3008 Analog-to-Digital Converters (ADCs) to read the FSRs and controls.
-
Logic and Level Shifting: SN74HC595N shift register and TXS0108E level shifters to interface the Pico’s 3.3V logic with the vintage 5V synthesizer chip.
-
Power & Audio: LT1086 voltage regulator, a 3.58 MHz Pierce oscillator, and an Adafruit audio amplifier driving a speaker.
Software & Framework:
-
Architecture: The software is modular, built in C.
-
Key Modules:
-
main: Orchestrates the system, reading inputs and controlling sound output. -
inputs: Manages SPI communication with the ADCs to read FSR pressure and control positions. -
synth_chip: Handles low-level communication with the YM3812 chip via the shift register to play notes and adjust sound parameters. -
debounce_sw1&timer: Provide robust button debouncing and timing functions.
-
Challenges & Adaptations
The project involved significant hardware and software integration challenges:
-
Vintage Chip Integration: Interfacing the modern 3.3V RP2040 with the legacy 5V Yamaha YM3812 chip required level shifters and a shift register to expand the Pico’s limited GPIO pins.
-
Complex Signal Chain: Designing a system that included ADCs, a complex synthesizer IC with a DAC, and an audio amplifier required a deep understanding of both digital communication (SPI) and analog audio principles.
-
Real-Time Performance: Ensuring low-latency response between pressing an FSR and hearing a note was critical for playability. This was achieved through efficient code and high-speed ADC sampling.
-
Adaptive Design: The team successfully adapted the initial plan, replacing a pitch-bend feature with a vibrato effect and focusing on a powerful custom instrument mode instead of preset instruments, which enhanced the user experience.
Results & Demonstration
The final synthesizer successfully passed all major functional tests:
-
It produces distinct, in-tune musical notes for each of the 13 FSRs.
-
It can play up to 9 notes simultaneously with no audible lag.
-
The volume of each note responds dynamically to the pressure applied on the FSRs.
-
The attack, decay, sustain, and vibrato controls allow for a wide range of sound customization.
-
The system is housed in a professional-looking, laser-cut enclosure.
The instrument was demonstrated to be playable by other students without prior instruction, confirming its intuitive design and robust functionality.
Conclusion & Future Work
This project was a comprehensive success, resulting in a fully functional and engaging musical instrument. The team gained invaluable experience in complex system integration, managing mixed-signal (analog/digital) designs, and interfacing with specialized external ICs.
The project required approximately 70 hours of work per team member and stands as a testament to the capabilities of embedded systems for creating interactive and creative applications.
Potential future enhancements could include:
-
Adding multiple octaves for a wider musical range.
-
Implementing additional digital sound effects via software.
-
Adding MIDI input/output for compatibility with other musical hardware and software.
