Nucleo Synth (Virtual Analog Synthesizer)

Document created by pappas.chris on Feb 1, 2017Last modified by pappas.chris on Sep 23, 2017
Version 30Show 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-OTG to USB-A adapter.


Things used in this project

Hardware components :

NUCLEO-F746ZG1NUCLEO-F746ZG - STM32 Nucleo-144 development board.A NUCLEO-F767ZI board can be used as well.
Stereo audio jack1Chosen by the user. 
USB-OTG to USB-A Female adapter.1

Chosen by the user. 

Use For HOST mode.

USB-OTG to USB-A Male adapter.1

Chosen by the user. 

Use for DEVICE mode.


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.
* Master tuning.
* Waveform select saw/saw, saw/square, or square/square.
* Oscillator mix.
* De-tune.
* Separate LFO for Modulation and PWM.
* 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.

* Patch Load.

* Patch Save (Host only).


=============== Soon to be implemented =================.

* Oscillator hard-sync.

* Separate LFO for VCF/VCA.

* Triangle waveform

* Noise waveform



  • Code explanation



  • Nucleo Synth Sound Demo (see attachment below)



  • Nucleo Synth Version 0.7.4 Host (Yamaha Reface CS) Project for Keil uVision 5 (see attachment below)
  • Nucleo Synth Version 0.7.4 Host (Casio CTK-3200) Project for Keil uVision 5 (see attachment below)
  • Nucleo Synth Version 0.7.4 Device (Universal) Project For Keil uVision 5 (see attachment below)
3 people found this helpful