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 AttackDecay, 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.