/Synthesizer

Audio synthesizer

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Synthesizer

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.

Features

  • 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

Getting Started

Prerequisites

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

Installation

  1. Install the BlackBox Component Builder

  2. Clone the O7 repository:

git clone https://github.com/aixp/O7.git
  1. Build the O7 compiler
cd O7/BlackBox
make
  1. Clone this repository:
git clone https://github.com/aixp/Synthesizer.git
  1. Adopt for your hardware

  2. Build the firmware

cd Synthesizer
make
  1. Upload the compiled firmware onto the microcontroller

Usage

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.

Contributing

Feel free to open issues or submit pull requests. Contributions are welcome!

License

This project is licensed under the GPL-3.0 License — see the LICENSE file for details.

Acknowledgments

Special thanks to iadenisov@ for their continued support and ideas.