This project implements a basic sound synthesizer on a bare-metal Raspberry Pi 3b+. The input is provided by a 35-key shift register keyboard, from which the system can generate up to 10 oscillators simultaneously. A linear fade-in and fade-out envelope is applied, along with a soft clipping strategy to improve sound quality. The generated signal is processed using a double-buffered circular DMA buffer, which continuously sends data to the PCM module. An external DAC converts the I²S signal generated by the PCM module into an analog signal available via a jack output.
The entire documentation of this project can be found in github.com/BotWaveUT/Documentations (french)