This repository contains the source code for an audio synthesizer (currently resembling an electronic piano) designed for the STM32F4-family microcontroller, mostly written in the Oberon programming language.
-
Key Detection: Supports detection of individual synthesizer keys
-
ADSR Envelope: Features an Attack-Decay-Sustain-Release (ADSR) envelope
-
Audio Synthesis: Implements audio wave generation (sine wave, with harmonics) for producing sounds
To build and run this firmware, you'll need the following:
-
Some keyboard
-
STM32F4 microcontroller
-
O7 compiler
-
Micro framework
-
A tool to upload firmware to microcontroller
-
Install the BlackBox Component Builder
-
Clone the O7 repository:
git clone https://github.com/aixp/O7.git
- Build the O7 compiler
cd O7/BlackBox
make
- Clone this repository:
git clone https://github.com/aixp/Synthesizer.git
-
Adopt for your hardware
-
Build the firmware
cd Synthesizer
make
- Upload the compiled firmware onto the microcontroller
Once the firmware is uploaded to the microcontroller, the synthesizer will be ready for use. Connect microcontroller DAC output to an audio line input (through a 1–10 µF capacitor), turn on the power, press the keys, and you will hear sounds.
Feel free to open issues or submit pull requests. Contributions are welcome!
This project is licensed under the GPL-3.0 License — see the LICENSE file for details.
Special thanks to iadenisov@ for their continued support and ideas.