Introduction: Moog Style Synthesizer Under Arduino Control

Remember the Moog Synthesizer sound popular in the 1960's? Well I wanted to see if I could make that sound with some simple electronics and maybe control it with an Arduino, this is the result.

While researching circuits for this I found this very cool circuit by Pete McBennett which makes just the right sound. You can find Peter's stuff on Youtube at: Pete McBennett Youtube and you can find the circuit diagram at: Pete McBennett Circuit Diagram Many thanks to Pete for a very nice Moog sound from this circuit.

In this instructable I'll modify the circuit so that the resistors switched in by manual switches - to change the frequency and sound - are replaced by a CD4066 electronic switch, the PWM adjust pot is replaced by a digital pot and it is all controlled by an Arduino Uno linked to an ultrasonic distance sensor.


2 - Breadboards one large, one small
1 - Arduino Uno board
2 - CD4099 Quad Bilateral switch
1 - MCP4131-103 10K digital pot
1 - PAM 8403 Audio Amp module
1 - HC-SR04 Ultrasonic sensor
3 - LM358 OP- AMP
1 - 100K pot
5 - 100K resistor
2 - 47K res
2 - 22K res
1 - 470K res
1 - 0.1uF cap
1 - 2.2uF cap
1 - 4.7uF cap
1 - 36K res
1 - 51K res
1 - 82K res
1 - 10K res
1 - 39K res
1 - 2.2K res
1 - 5K res
1 - 5.6K res
1 - 6.1K res
1 - 3.2K res
1 - 7.5K res
1 - 8.2K res
1 - loudspeaker
Jumper wires
5V power supply or use 5V from Arduino Uno

Step 1: Circuit Diagram

The circuit function is not easy to describe in detail. The bottom left quadrant composed of 6 OP AMPS is part of the original circuit from Pete McBennett. In the video I show you what the waveforms look like at certain points in this part of the circuit so that you have an idea how it comes together. Basically this circuit forms an audio oscillator combined with a pulse width modulator which gives the classic Moog like sound.

The resistors in the bottom right quadrant are switched in by the CD4066 digital switches which are controlled by the arduino. Their switching sequence is controlled by the distance sensed by the ultrasonic sensor. The arduino also regularly varies the digital potentiometer U4 which modifies the PWM circuit and gives a distinctive Moog like warbling to the sound.

The value of the resistors that are switched in don't seem to be too critical and you could experiment with changing these values to get different frequencies.

Step 2: The Arduino Program

The program is also difficult to describe in detail here. It is fully commented so you should be able to follow it. Basically it regularly changes the digital pot value and hence the PWM signal, it reads the ultrasonic sensor and based on the distance detected switches in different resistor values which vary the frequency.

If you build this and want to play around with it to make different sounds, some of the things you can vary are:

The delay times.
Which switches and how many are turned on and off at certain distances.
The distances that trigger a change.
The digital pot increment step.