- 4x4 Button Matrix: Allows real-time audio triggering with tactile feedback.
- RGB LED Integration: Individually addressable LEDs provide interactive lighting effects for enhanced user experience.
- Waveform Generation & Manipulation: Supports sine, square, triangle, and sawtooth waveforms with adjustable parameters.
- 8 Potentiometers: Provide precise control over volume, harmonic content, and ADSR envelope (Attack, Decay, Sustain, Release) settings.
- Audio Output: High-quality sound delivered through the STM32's integrated DAC and audio amplifier.
- Compact Design: A 3D-printed enclosure optimized for durability and functionality.
- Microcontroller: STM32F407G-DISC1, chosen for its:
- Built-in audio DAC for high-quality sound output.
- Sufficient GPIO and ADC channels for matrix buttons and potentiometers.
- SPI support for controlling WS2812B LEDs.
- Buttons: A 4x4 tactile grid optimized with diodes to prevent ghosting.
- LEDs: WS2812B LEDs in a daisy-chain configuration for efficient lighting control.
- Potentiometers: 8 knobs for analog control of audio parameters, connected to ADC channels.
- Enclosure: Designed and validated in Fusion360, featuring modular components and precise cutouts.
- Programming Environment: STM32CubeIDE using C++ for object-oriented implementation.
- Real-Time Control:
- Audio synthesis based on additive principles and lookup tables for efficiency.
- Adjustable parameters for harmonic generation and low-pass filtering.
- LED Control: RGB animations synchronized with button presses.
- Audio Buffering: Continuous playback via I2S protocol with interrupt-driven updates.
- Oscillator Class: Handles waveform generation and harmonic synthesis.
- ADSR Envelope Class: Controls sound amplitude dynamics across Attack, Decay, Sustain, and Release phases.
- InputHandler: Manages button presses and potentiometer inputs for seamless interaction.
- Low-Pass Filter: Shapes sound frequency for smoother audio output.
- Project Report: Report (PDF)
- Demo Video: YouTube Link
This project is licensed under the MIT License. See the LICENSE file for details.