STM32 FM Synthesizer#
The goal of this project is to implement a FM (Frequency Modulation) sound synthesizer using the STM32F407 Discovery.
Context#
The foundation of the FM synthesis has been patented by John Chowning at Stanford University in 1974 (see Patent ) One of the most famous synthesizer using this technique is the Yamaha DX7, that was manufactured by the Yamaha Corporation from 1983 to 1989. The DX7 is one of the best-selling synthesizers in history, selling more than 200,000 units.
Some super Kitch presets can be heard here: https://www.youtube.com/watch?v=BCwn26FePAo
Project#
Specifications#
Six phase-modulated oscillators :
In musical application, this signal model has the advantage of generating complex sounds. While the addition of two sine waves only contains 4 frequency components (positive and negative frequencies), a FM modulated sine wave can generate many frequency components whose amplitudes are governed by Bessel functions.
Oscillators can be combined in different ways (32 algorithms). Each algorithm specify is an oscillator acts like a carrier or modulated signal.
Seven 6-points envelopes (one for each sine and one for the pitch)
Functionalities#
- Communication between a MIDI keyboard and one of the USB port of the STM32F4
Extraction of the note ON / note OFF messages
Extraction of the Control Change messages.
- Implementation of the sound synthesizer
Generation of a sine wave oscillator, implementation of phase modulation,
Generation of the signal enveloppe (see Video ),
Implementation of the 32 DX7 algorithms.
- Implementation of some presets
Reverse engineering of some classical DX7 presets (pad sounds, bass sounds, rhodes sounds).
Integration of preset selection features (communications ? Midi message ?)
(Create a simple app to easily edit the DX7 parameters.)
Hardware / Sofware#
The synthesizer will be implemented on the STM32F407 .
MIDI informations will be sent by a MIDI Keyboard.
The project will be hosted on Gitlab with internal visibility (Code, Documentation on the Wiki)
References#
A sound synthesizer STM32 project: MrBlueXav/Dekrispator_v2
DX7 Manual: http://dxsysex.com/doc/DX7SE.pdf
Origin of the DX7 and FM Synthesis: https://youtu.be/sXt_NXjc7oY
Top Gun Music using the DX7: https://fr.audiofanzine.com/synthetiseur-rack/editorial/dossiers/on-refait-le-son-de-top-gun.html