Arduino “Make Your Uno” Synth – 6 – MIDI Mozzi FM Synth

Putting together everything I have so far, this presents a basic MIDI controlled Mozzi FM synth.

The full index of projects and my personal build notes can be found here: Arduino “Make Your Uno” Synth.

This post contains the following experiments:

  • MIDI Mozzi FM Synth
  • Further Mozzi MIDI Experiments

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

These are the key Arduino tutorials for the main concepts used in this project:

If you are new to Arduino, see the Getting Started pages.

Parts list

  • Arduino “Make Your Uno” Kit
  • USB-C programming lead
  • MIDI Interface and MIDI indicator LED (see the previous project)

The Circuit

Once again this will use the five potentiometers in “Mozzi” mode as highlighted below.

Arduino Synth Shield - FM Synth

In addition it will be using an LED on D13 and a MIDI interface connected to D0 (RX). I’m using the Make Your Uno debug circuit as my indicator LED and my DIY MIDI IN interface on the Make Your Uno practice PCB as my MIDI interface (full details here).

I have a serial MIDI keyboard controller connected to my MIDI interface using its 5-pin DIN MIDI link.

Make Your Uno - MIDI IN Keyboard

Experiment 1 – MIDI Mozzi FM Synth

This is now essentially the same code as my previous Mozzi MIDI synth (from here), but I’ve simplified it slightly and pre-configured it for use with the Synth Shield.

The controls are:

  • A0 – controls the wave – four settings: sine, triangle, saw, square
  • A2 – controls the FM modulate rate
  • A1 – controls the FM intensity
  • A3 – controls the FM modulation ratio
  • A4 – remains a frequency control (but this doesn’t work quite so well with MIDI!)

There are two additional optional parameters which could be used in place of two of the above: ADSR attack and ADSR delay.  These control the parameters for the envelope generator that triggers when a MIDI NoteOn message is received.

By default the synth is listening on all MIDI channels but that can be changed in the code.

There is a detailed discussion about how it works here: Arduino Multi-pot Mozzi FM Synthesis – Revisited

Download the code from GitHub here.

Experiment 2 – Further Mozzi MIDI Experiments

There are many more projects on my blog that could be adapted to run on the Synth Shield.  If this has got you interested in Mozzi, here are some ideas for where to go next.

Closing Thoughts

That is probably all the current projects I wanted to get done for now.  I have many more ideas (it could be used as a simple MIDI CC controller with a MIDI OUT circuit for example), but this covers the basics leaving scope for taking things further.

So what do I think about the kit now?  It is a lot of fun.  The downsides remain: access to IO (as already mentioned) and the price of course.

And now having used it a bit, I feel that the amp/speaker section, whilst fun, is a little puny really.  It would be really good to see if there was a way of adding an audio out function somehow.

But I’m still really enjoying playing with it!

Kevin

Leave a comment