An arpeggiator is an electronic instrument feature which takes played chords and cycles through the notes in sequence at a set rate. This modification will add a arpeggiator/sequencer function to your Werkstatt by adding an Arduino micro controller and manipulating minimal code.
1 x 10kΩ resistor
1 x 2.2µF capacitor
1 x Arduino Microcontroller
1 x Breadboard
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 arduino.cc
First we need to create a low pass filter for our Arduino. Even though the Arduino features a function named analogWrite, it is not really able to send a true analog signal. Instead the Arduino sends a PWM (Pulse Width Modulation) signal, and emulates an analog voltage change by changing the duty cycle.
The analogWrite function takes an input value from 0-255 and sends a 5V+ signal with a duty cycle corresponding to the input value. Although this technique may work for LED's and other components, we will need to filter our signal to achieve a true analog signal for our Werkstatt. A simple RC filter with one 10kΩ resistor and one 2.2μF capacitor will do the trick. We will be sending our filtered signal from our Arduino into the Werkstatt's VCO EXP IN. Observe Figure 1 for exact jumper connections. This modification will require us to share ground between the Werkstat and the Arduino as well as the RC filter. Ground can be pulled from any screw terminal.
Figure 1. RC filter coming from Arduino to the Werkstatt's VCO EXP IN.
For our arpeggiator we will be using an Arduino to speak to our Werkstatt. Open the file arpeggiator.pde that is included with the Werkstatt Arduino library in the Arduino IDE. Arpeggiator.pde works by cycling through two arrays at the same index. This example file will only need minor editing to be customizable. See figure 2. for a quick view of arpeggiator.pde.
Figure 2. Arpeggiator.pde open in the Arduino IDE.
Before we can reliably use the Arpeggiator.pde sketch for this task we need to tune the VCO EXP IN. There will be a trimmer pot on the Werkstatt that needs to be calibrated when running the stock settings of Arpeggiator.pde . These two values need to be a perfect octave for interval accuracy. Observe Figure 3 for an exact location of the VCO EXP TRIM potentiometer.
Figure 3. VCO EXP TRIM potentiometer located at VR5.
Once all jumpers match Figure 1 press the upload button in the Arduino IDE. You will hear Arpeggiator.pde cycle through two notes, the unison and the octave. Turn the VCO EXP TRIM knob until the octave is in tune. Once these two notes are perfect octaves all other intervals will be matched as well.
Now that we are in tune how do we change the interval of our arpeggiator? We will need to alter the code in two array's to change how our sequencer sounds.
The notes array holds any interval you want to access and is referenced as follows: tonic, minor2nd, major2nd, minor3rd, major3rd, fourth, tritone, fifth, minor6th, major6th, minor7th, major7th, octave. This array c