Sample and Hold

Sample and Hold was the way to get more than one analog output from a single DAC.
We can analog multiplex on reading analog inputs, this lets us multiplex outputs too.

How it works

There is a single DAC which is connected to an analog multiplexer chip such as the 4051, this is an 8 channel. The output of the multiplexer has a small capacitor before a voltage follower buffer. The size of the capacitor is dependent on the refresh rate, i.e how often the CPU loops round and updates the output values. 100nF works quite well if the outputs are updated every loop.


Set DAC value
Set output address
Next address

The ‘sample’ part above uses the inhibit input of the 4051 to do just that, inhibit the output while the DAC and address are being written, then the output can be enabled allowing the voltage to be stored in the hold capactitor.

The image above is simplified, single channel, the AI is Analog In. The capacitor before the second buffer is our hold capacitor, when the C input is enabled, the voltage from AI is stored and transferred to AO. The 4051 multiplexer replaces this switch, giving us 8 outputs.

Most 80s synthesizer schematics use sample and hold for all the control voltage parameters, I don’t use this method anymore because DACs are easier and cheaper now. But however there may be occasions where this could be still used, if I design any 80s based system then it is worth using to make the circuit more authentic!.

RH-101 Synthesizer

This is based on the SH-101 synth, but simplified, MIDI only and designed to fit on one PCB.


This runs a standard design CEM/AS3340 volgate controlled oscillator just like the Roland SH-101 did, the saw wave is then taken through a schmitt trigger gate to create a pulse to drive the 4013 flip flop where it’s divided down twice. A pair of diodes then connects the 2 sub octaves together to give a -2 octave with a 75% duty cycle, just like the SH-101.

There is where the SH-101 circuits end, I use a 3320 filter, 3310 envelope generator and 3360 VCAs. This is the easiest modern way of building a synth, even though these chips were designed in the 1980s or earler, they are still made today as clones with part numbers AS332, AS3310, AS3360 and AS3340.


There are 2 LFOs which are generated from MIDI clock, so if MIDI clock is not running then the LFOs do not work, LFO1 is routed to the PWM with a switch to select between PWM and Envelope modulation, the second LFO is connected to the filter with an adjustable amount.

Power Supply

The main board is designed to be powered from +15V and -5V. There is an on board 5 volt regulator which is for the microcontroller.
These voltages might be a little odd, why not just stick to +-15 or +-12, well there’s a couple of reasons.
One. The AS chips like to work at -5Volts, any higher we need to use their internal Zeners requiring an extra resistor and this would then generate more heat inside the chip.
Two. The 3310 envelope requires 0 to -5Volts on the pots to control the Attack, Decay and Release times, this could be done by adding voltage dividers to the pots but again extra components and potential for things to go wrong.

So I opted to power the whole board from +15 and – 5V. On my rack case I have added a -5V regulator to the front, I could have put one on the board but I didn’t feel this necessery at the time.


The controller is a PIC 16F1516 with built in UART, SPI for the DAC and 595s for the LED display. This controls all the featues of the system and controls the LFOs.
There is a 2 channel MCP4922 DAC which is for the pitch CV and for the key tracking amount.

The system accepts MIDI only as a form of control, no keybed scanning.


There is only one voice on this synth, but if a second key is pressed the frequency will change and, if selected, the envelope will re trigger. This makes playing a single voice synth much easier and allows multiple keys to be used. Only one will be the playing note at any one time but it allows for a smooth glide to other keys.



Z80 Sequencer

A project that followed on from the Z80 Synthesizer and my very first project, the Arduino sequencer.
Following on from tradition, this is only using hardware and software from the 1980s.

Sequencer Features

Programmable up to 4 bars (64 steps), 16 step per bar
5 playable MIDI or Gate parts
2 MIDI ports with 4 possible channels (just easier to program)
Clock output (square wave) 16th/8th and beat pulse

How it works.
I have used an 8254 timer which is set to an interrupt frequencey calculated from the BPM, this interrupts the CPU (every 125ms at 120BPM) which then run the steps.

At each intterupt the CPU reads a bank of 80 bytes which are divided up as follows:
64 bytes – Each step (5 parts uses bits 0 to 5 on the total byte data)
6 bytes – Part info (What to play/do), this is 6 bytes for a max of 6 parts if this is ever upgraded
6 bytes – Note information for MIDI
4 bytes – System info / BPM range etc

The simple procedure is as follows

CPU Interrupt > Read byte for step > Loop through parts > Part on?
Yes – Read part info to play gate or MIDI
No – Skip to next part

If the part info is a MIDI part it reads the note data to determine what note to play.


The sequencer can now run through 16 steps and 4 bars, outputting MIDI notes that can be used to control some drums


Z80 Synthesizer

The aim of this project was to build a fully functional synthesizer based only on electronics and software that was used in the 1980s.
The Z80 CPU was chosen, being popular in may an ’80s classic, having a good following still even today, and actually being a very nice chip to work with.

The oscillators are based on the Juno 106 DCO (Digitally Controlled) with analog voices using 3320 filters.



The Z80 synth is almost complete, a few more software tweaks to do and the analog voice boards to finish, then we can get a sound!

Z80 Synth front panel build