Noise Generator

Video Tutorial

Project Summary 

A popular synthesizer feature is the noise generator.  This noise can be filtered and mixed with our tonal signal to add bite or create percussive sounds.  In this mod we will be using an Arduino microcontroller to add a noise generator to our Werkstatt. 



1 x Arduino 

2 x 10k Potentiometers

Jumper Cables



For this mod we will be using an Arduino Uno micro controller.  The Arduino is based around the ATMEL series of micro processor IC's, and is a very versatile tool across multiple disciplines. Refer to Figure 1 for a closer look at the exact digital and analog I/O configuration for the Arduino. For more information regarding the Arduino please visit


Figure 1. Arduino UNO


We will be using the Arduino to generate a random bit stream, delay the signal by a specific amount to "filter" our bitstream, and then send that signal to our Werkstatt's VCF AUD IN.  

This noise generator example uses an Arduino digital output, an Arduino analog input, and 2x 10kΩ resistors. Our digital output sends the noise signal to the Werkstatt, which is passed through one of our 10kΩ potentiometers for signal mixing.  Our other 10kΩ potentiometer is hooked to the Arduino's 5V+ line, an analog input, and ground.  This will give us a value of 0-1023 depending on how far the potentiometer is turned to control the "color" of our noise.  Refer to figure 2 for a jumper configuration for our circuit. 


Figure 2. Noise Generator diagram. 



We will need to upload some code to our Arduino for this to work properly.  The noise generator works by sending a randomized bit stream over an Arduino digital output.  We are mapping the incoming ADC 0-1023 data to a 1-3000 range. This proves for a more dynamic "color" range. The "color" refers to the tone or timbre, in this instance it has a bit crush and low pass effect.  

To upload simply plug your Arduino into your computer, open noise.pde in the Arduino IDE, and press upload.  As long as the moog_werkstatt library is in the IDE's path, the code will compile and upload. 





In the code we see that we initiate and name noise class set to output on digital pin 1, this will send our bitstream.  Then we initiate and name the interface class set to input on analog pin 0, this is for our pot.  We then run the potentiometer function and set minimum and maximum output of the incoming data. This data is then applied to our color value to change the timbre of our noise.  Refer to figure 3 for a detailed look at the code. 


Fritzing is an open source visual breadboarding software.




The Arduino is a micro controller and programming environment for interactive systems.



Hi, there is a small error in the Fritzing scheme: output is from digital pin 1, in the schedule it is noted as pin RX0.
Great projects! Really well thought out, introduced and documented! Thanks Guido (Werkstatt 1724)

really nice lesson, thanks,

I learnt a lot by followinf these instructions

One question, I'm newbie, can a sond souce (line levels) be substitudes to the Arduino bitstream? And how?

Not sure to know the answer

13zero's picture

The codes doesn't work any more, the werkstatt.h file is no longer working on Arduino... Please update!!!! THANKS

13zero's picture

Is anybody on this website that can answer what happen with Arduino's code?

Was the IDE downloaded from or  These provide two seperate IDE's due to some patent and business related schisms. The library provided supports due to its open source nature and exsistence at the time of library creation. There are currently no plans to support the IDE or any processor other than the Arduino Uno.

13zero's picture

Hi Chris, thank you for feedback... I download the latest version of Arduino software at and I have an Arduino Uno IDE... but the result is the same. It doesn't work. I bought my werkstatt in 2015 and since I've looking forward to try it with arduino. I hope you guys can update the library or make some feedback if Im doing something wrong. Thanks a lot¡

This is an example of the error:

Arduino:1.6.9 (Mac OS X), Tarjeta:"Arduino/Genuino Uno"

/Users/Dmac/Downloads/moog_werkstatt_arduino_library_v1/examples/lfo_rate/lfo_rate.pde:9:23: fatal error: werkstatt.h: No such file or directory
#include <werkstatt.h>
compilation terminated.
exit status 1
Error compilación en tarjeta Arduino/Genuino Uno.

Este reporte podría tener más información con
"Mostrar salida detallada durante la compilación"
opción habilitada en Archivo -> Preferencias.

Hi, having the same problem and set up (IDE from as13zero, try to upload lfo sketch and get same error

/Users/apple/Desktop/moog_werkstatt_arduino_library_v1/examples/lfo_rate/lfo_rate.ino:9:23: fatal error: werkstatt.h: No such file or directory
#include <werkstatt.h>
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.

please any help?

deusofnull's picture

To everyone on here who is trying to solve the ``` #include <werkstatt.h> ``` error.

You need to add the moog_werkstatt arduino library to the library manager. Check out how to do that here:

Basically, go to your Sketch menu->Include Library->add .zip library. Add the downloaded ardunio code from moog to your libraries.

Then it should work.

Ah good old package dependency errors.

Much love!

error message included here to get SEO traffic for the answer...
/Users/apple/Desktop/moog_werkstatt_arduino_library_v1/examples/lfo_rate/lfo_rate.ino:9:23: fatal error: werkstatt.h: No such file or directory
#include <werkstatt.h>
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.

Hi. Will someone be fixing the missing images (all of them) any time soon?

Fine Tune