Monosynth

23 Feb 2012

Monosynth is a MIDI controlled monophonic synthesizer.

The buttons change the menu and the slider inputs the parameter values

Software

Block diagram

There are 2 concurrent threads of execution: a control thread for computationally intensive tasks, such as envelope updates and the user interface, and a fast sample generating thread that preempts everything else. MIDI messages are received by the serial interface interrupt handler and are quickly queued for parsing by the control thread.

The generated waveform is passed through an envelope controlled low-pass filter and then converted to analog signal using the pulse-width modulator and a low-pass filter.

When compiled with Visual Studio, the code becomes a MIDI software synthesizer for PC. It connects to the MIDI Windows API to listen for controller messages, and outputs the sound through the sound card using the Windows WAVE API. When compiled with AVR Studio, the code becomes an ATMega AVR image to be uploaded to the board below, thus becoming a stand-alone MIDI synthesizer.

Electronics


Schematic

  
OSH Park rendering of the synth board.


Board values.

Downloads

Code and PCB.

Demo


Monosynth with the LCD mounted.
The green LED shows when an event is being processed, while the red LED is on if there is a sample overrun (shouldn't happen) or a button is pressed.



Comments for Monosynth

Greg on April 9, 2013

Hi Do You have code which is ready to upload to uC? I dont know how to compile this code You supplied. Regards Greg


Post a new comment

Name: Comment:
Email(hidden):
2 + 3:
4 characters word:
visits.