TheMother of Moog WERKSTATT-01 Mods

Werkstatt Mods | Keyboard | Key mod points | Arduino | mod 2 | Octave shift and Arpeggiator | Werkstatt Broomstick Guitar |

Week 4 ideas...

  • Add midi control of tempo (midi clocks) or Midi CC -> tempo value.
  • Add midi CC to arpeggiator controls for start/stop/mode.
  • LFO -> tempo
  • tap tempo

Week 3 - 11/02/15

I don't have a Mother 32 so functionality comparison is based on watching YouTube videos and the Moog web site.

Mostly been updating the software that runs on the cpu from an Arduino UNO that is mounted on the underside of the Moog Werkstatt circuit board. The functions that have been added or changed this week are :-

Octave shift fix
Octave shift value now is added to the pressed key rather than immediately. One of the four left leds is flashed to show the selected octave shift.
Add Command mode
When the command switch is pressed, command mode starts and all the leds start flashing. After about 2 seconds, if no key has been pressed, command mode ends and the leds stop flashing.
Lowest or Last note priority
In command mode, pressing G sets Last Note Priority, pressing F sets Lowest Note Priority (default).
In command mode, pressing D turns on the arpeggiator. When more than one key is pressed at a time the notes are repeatedly played in the order they were pressed.
Arpeggiator with memory (hold)
Notes are played in order that they were pressed. As notes are released, the pattern continues to repeat. After all keys are released, as the keys are pressed again, a new pattern will be saved.
Arpeggiator with memory and transpose (shift)
When a key is pressed, it sets the first note of the saved arpeggiator pattern.

Sketch uses 13,308 bytes (41%) of program storage space. Maximum is 32,256 bytes.
Global variables use 1,114 bytes (54%) of dynamic memory, leaving 934 bytes for local variables. Maximum is 2,048 bytes.

Week 2 - 10/24/15

Using the Midi interface to receive and send data.

Week 1 - 10/17/15

The schematic of the Werkstatt can be downloaded from the Werkstatt product page at Moog Music Inc. Note the following from from the first page of the schematic..

  • MOOG MUSIC INC. does not recommend modification of its products.
  • Please be aware that modifying it will void the warranty.

10 days ago at the time of writing this page, Moog released the Mother 32. A Eurorack format semi modular synth.

The Werkstatt kit is an inexpensive way to get the genuine Moog sound. These mods push the limits of the Werkstatt hardware rather than just add on more stuff. In the case, there is room for more oscillators and filters etc, but this is not what these mods are about.

  • So the Midi IN mod drives the existing Werkstatt keyboard hardware and gives it enhanced functionality. The normal Werkstatt operation is still available.
  • The +1/+2 (+3) octave mod augments the Midi IN capability by extending the "D/A" capability by two more bits.
  • The led display uses the existing keyboard column decoder to select the led.
  • The extra switches also use the existing column decoder to select the switch.
  • Four of the controls - LFO rate, Osc Freq, PWM and Cutoff are read by the added cpu and are used to provide data for the Midi OUT.

Week 1

Over the weekend, the bulk of the cpu and control hardware was added to the Werkstatt. Originally I had the Atmega328 cpu on the top side of the Werkstatt PCB, but found that with the ic socket it was too high to allow the Wrkstatt front panel to be screwed down. So I had to remove the socket and re-mount it on the under side. A couple of caps, a 16 Mhz crystal and a resistor are all that are needed to get the cpu working.

The keyboard control is a simplified version of the hardware I did last year. It only reads the top bit of the counter which is enough to track the counter value. The octave shift multi turn preset resistors are directly controlled from outputs on the cpu. This is alot simpler than the circuit I used last year.

New this time is the level shifter that converts the -9volt - +9volt controls to a 0v - +5v level that are connected to the analog inputs of the cpu. This allows the cpu to read the LFO rate control, the VCO frequency control, the VCO PWM control and the filter cutoff control. The LFO output is also read by the cpu.

Eight leds were added that are driven from the key matrix column multiplexer. Four extra tact switches were also added.

Week 2

This week the extra puch buttons were hooked up. Two simple PWM->CV capacitor/resistor filter was added to give two 0 - 5volt control outputs. The last hardware to be added this week is a quad OP-AMP used to provide buffer and level shifting for the two control outputs. The level shifters change the 0-5volt to -2.5 to +2.5 volt.

Week 3

No hardware changes this week. Working on the control software. Still thinking of adding a CV input patch point and another CV output. Or I could add a PS/2 mouse interface to give the Werkstatt a new control method.

Week 3

Restructured the code in the werkstatt_sub() function.

Week 3 - mother3.ino
This is the main source of the control program. This week there was some restructuring of the code. The keydown() function checks for command mode and selects the function to perform. The utility function flash() was added to flash the leds for a number of 'ticks'.
Midi Bits.ino
The play.ino is a simple tune player. It will probably become the sequencer for the mod.
Startup tune.
And the header files
softbits.h soundbits.h midibits.h play.h

Week 2

This source uses code I wrote to make Arduino programming easier I call Softbits. The main source is in file mother2.ino. The software used in the 'teaser' video was test and debugging software. This software is the start of the 'final' version of the control software.

This is the main source of the control program. It implements the following functions..
Standard Arduino setup function.
Standard Arduino loop function.
This function drives the keyboard, scans the leds, processing incomming Midi data.
Midi Bits
Tune Player
The play.ino is a simple tune player. It will become the sequencer for the mod.