The ISD1820 is a cheap voice recorder chip. It can be bought as a single chip
or on a small PCB module with a microphone and some switches to control it. The chip
can be used as a rudimentary single voice sampler, but even if it can loop the sample
playback is a bit choppy at the endpoint.
Some people on Youtube have made use of them in music, and added a pitch knob which
is fairly easy. I was inspired and dreamt of a silicon mellotron and started thinking
about adding a keyboard. Since sample playback speed and therefore pitch and sampling
rate is controlled by a single resistor to ground on pin 10 this is easy. Just add a
resistor ladder (preferably potentiometers) and use switches to decide where ground
comes into the chain.
I noticed that if you leave the module in repeat (looping) mode and disconnect
pin 10 from ground the playback stops, which is neat. This eliminates any need for
additional switches to trigger playback. The playback picks up where it stopped.
But how about voltage control? Having that option opens the door to using
the chip as an ordinary oscillator (which is always running) and muting it using a VCA.
It is a lot easier to control something with a voltage than varying resistances...
I wanted to try this to be able to use a sequencer since I imagined it would be a
challenge to make it track 1V/oct.
I ended up connecting pin 10 to the collector of an ordinary BC547 NPN transistor.
The emitter connected straight to ground. Now for the slightly for tricky part. The
transistor needs a voltage at the base to turn on, but only slightly less to only turn
on a bit, which is what we want. We want a varying control voltage of 0-5V or maybe more
to work in the tiny region of the transistor base voltage where it is partially open.
We need to bias the transistor to be on the edge of turning on when there is no CV,
and to open fully around our highest CV. Without biasing everything will happen between
around 0,30 and 0,60 V which is a tiny range for a CV input. This might be easier with
trimpots, but you will get in the ballpark with the values here. This is assuming that
you are driving the module with 4,5 V. Add a 10K resistor from VCC to the base. Then
add a 470 ohm resistor from the base to GND. This biases the base to around 0,20 V,
which avoids making your lower CV range to be a dead spot. Finally add a resistor
from your CV input to the base of the transistor. For 0-5 V CV a 4,7K will probably
be okay. The relation between these three resistors effectively shrinks your CV
and allow you to use a broader range on your controller (it will be a lot easier
to tune as well!).
For higher CV ranges the 4.7K resistor needs to be of a higher value to "shrink"
the CV more. I also found it useful to add a bypass switch for recording new samples.
The switch bypasses the entire transistor and connect pin 10 to ground via a 100K
resistor. This avoids the need to send CV to be able to record (remember that the
chip needs connection to GND on pin 10. 100K is a nice baseline, and gives ten seconds
of sample time at 6,4 KHz. If that is too hifi, choose a 200K resistor (20 sec at
3,2 KHz). Longer samples means that the chip needs to reset less frequently which
means less clicks/dropouts.
Updated 2022-01-08