Nucleo Synth (Virtual Analog Synthesizer)

Document created by pappas.chris on Feb 1, 2017Last modified by pappas.chris on Nov 22, 2017
Version 62Show Document
  • View in full screen mode

About this project

An expandable feature 6-voice virtual analog synthesizer using only one STM32F7 Nucleo-144 board.


Project info

Type : Built using one STM32F7 Nucleo-144 board, one stereo audio jack, and a USB-Micro-B to USB-A adapter.


Things used in this project

Hardware components :





NUCLEO-F746ZG - STM32 Nucleo-144 development board.


NUCLEO-F767ZI - STM32 Nucleo-144  development board.

Stereo audio jack1Chosen by the user. 
USB-Micro-B to USB-A adapter.1

Chosen by the user.


Software Tools :

Keil uVision 5 (Free Evaluation Version)



I created this project to offer a low-cost alternative to creating analog synth sounds.


 +++++++++++++++ Current specifications ++++++++++++++++++
* 6-voices of polyphony.
* Dual oscillator per voice.
* VCA (with ADSR) per voice.
* VCF (4-pole lowpass with ADSR) per voice.

* Resonance
* Master tuning.
* Waveform select saw/saw, saw/square, or square/square.
* Oscillator mix.
* De-tune.
* Three separate LFOs for Modulation, PWM, and VCF.
* Scale for upper oscillators.
* PW/PWM on the square wave.
* Separate adjustable keyboard follow for ENV and VCF.
* Keyboard velocity routable to VCA and VCF.
* VCF envelope level.
* Editable parameters.
* Stereo simulation effect.

* Serial Interface allows daisy-chaining several boards together to increase polyphony or multi-timbrality


Source Files

  • Nucleo Synth Host Version 0.8.0 Project 
  • Nucleo Synth Slave Version 0.8.0 Project 
  • Nucleo Synth Device Version 0.8.0 Project 
  • Nucleo Synth Keyboard Controller Maps
  • Nucleo Synth USB MIDI Class folder
  • Nucleo Synth Sound Demo Wave file
  • Nucleo Synth ReadMe text file


Version Control

* Version 0.8.0: Fixed a massive bug that caused the VCF to close completely, resulting in no sound!


* Version 0.7.9: Added a high-speed serial interface that allows daisy-chaining several Slave boards to a Host board for increased polyphony/multi-timbrality. Added a separate LFO for the VCF.


6 people found this helpful