This code repository parallels a series of articles about a YM3812 module written on thingsmadesimple.com
With each new article, the functionality of the module will grow, and the associated code and schematics will be available here.
Focuses on FM Synthesis basics, the YM3812's register map and electrically controlling the chip's pins.
Introduces a basic implementation of the YM3812 circuit controlled by an AVR128DA28 microcontroller that we will build on in future articles. Think of it as a "Hello World" starting point that ensure the circuit works and that we can upload code to the microcontroller.
Walks through the implementation of the YM3812 class used in Part 2 and describes how each of the register manipulation functions work.
Adds a MIDI input to our schematic, and discusses how to translate MIDI note numbers into frequencies the YM3812 understands
Adds Polyphony to our breadboard module, walking through a couple of algorithms in the process.
Revise the YM3812 class implementation to support more generic instrument definition
Add General MIDI drum support by linking different drum sounds to different notes on the keyboard
Add touch sensitivity to the module by selectively scaling the right operator levels
Turn that breadboard into a business card sized PCB!
Add pitch bend capabilities and shred on a YM3812
Add another YM3812 chip and some stereo effects for panning and detuning
Add a TFT Screen and a Rotary Encoder so we can adjust patch assignments to MIDI channels
Add buttons and a menu system that lets us adjust patch settings individually
Add a graphical visualization that helps us interpret patch settings
Add support for virtual four-operator voices
and more...