Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

FM synthesiser with XmegaE5

Proof of concept, MIDI capable polyphonic FM synthesiser implemented with xmegaE5


  • System uses xmega's internal DAC for audio output.
  • At the moment there are 6 different voices with 12.5 kHz update rate.
  • Each voice has seperate amplitude and modulation envelope with adjustable attack,decay and release parameters.
  • System has adjustable low-pass filter at the output stage.
  • System has frequency and depth adjustable LFO at the output stage.
  • All of the calculations are done in 8bit math.
  • Most of the parameters are adjustable over MIDI control messages.
  • Each voice calculated with 8bit precision and summed up directly at the output without precision loss since we are using 12bit DAC.

How does it sound like?

You can find a sound sample from the following soundcloud link:

I used Hairless MIDI application to forward pre-recorded MIDI file from my computer to microcontroller over serial port. I also played with some of the synth parameters while recording to demonstrate changes.

### Demo setup

  • I used my xmegaE5 development board for the main environment.
  • Later for testing, I soldered a small Sallen-Key 2nd order lowpass filter board to filter high frequency noise generated by rather low update rate of the synthesiser.
  • Signal chain is as follows: xmegaE5 DAC --> lowpass board with AC coupled output --> 3.5mm audio jack

### References


Proof of concept, MIDI capable polyphonic FM synthesiser implemented with xmegaE5



No releases published
You can’t perform that action at this time.