Transform Your Patches By Using a Sample and Hold May 20 2022
Sample and Hold
What it is and 5 ways to Transform Your Patches Using One.
19th May, 2022 - John Peippo
My fascination with sample and holds began with a Crumar DS-2. When I first laid hands on this distinctive Italian synthesizer, I noticed it had something I had never seen before: a staircase LFO. One of my friends who shared my passion for vintage synthesizers mentioned that the Crumar was "sampling a sawtooth waveform" to create the unique shape. At the time, I didn't really grasp the concept, but when the Euroburo came out, one of the first things I wanted to do was create a staircase waveform.
Before we jump into staircase LFOs and all the other unique ways sample and holds can unlock your patches, let's try to answer this question....
Just What is a Sample and Hold?
It may not be evident at first, but what a sample and hold really does is suspend time. It's a time capsule, holding onto the past while the world moves on around it. And it can seem alien at first because we often think of time as fluid and continuous. So to understand sample and holds, I want to use the analogy of a camera -- another type of time capsule.
If we take pictures fast, like thirty frames per second, we have a movie. If we slow down how often the pictures are taken, what looks like continuous motion begins to feel more herky-jerky. Once-fluid actions become periodic motion; a person starts getting up from a chair, and the next thing you know, they are halfway out the door. A sample and hold is like a camera, too: its input is the lens, taking in whatever it is pointed out; its trigger is the shutter, determining when to snap a shot of that view; and the output is the photograph, our moment frozen in time -- until the next photo.
Getting started using a sample and hold to make a Staircase waveform
We can take our "photos" (sample our inputs) really fast, or really slow, or really herky-jerky, too. To illustrate this, let's patch up that staircase waveform.
To get started, we'll need three things:
1. A sawtooth LFO.
2. A square LFO.
3. A sample and hold.
Since we want to freeze our sawtooth -- take its photograph at various times -- its output will be connected to the sample and hold's input. We're going to use the square to work as an automatic shutter, timing when those pictures are taken at regular periods, so we will connect its output to the sample and hold's trigger input. Each time the square rises -- sample and hold trigger (sometimes called clock) inputs look for the rising edge of a pulse or other CV signal -- it will trigger the sample and hold, and the current position of the sawtooth (the sample) will be frozen (the hold) at the sample and hold's output -- our collection of pictures that will add up to a staircase LFO.
If you just loaded the modules in their default condition and connected them, you're probably looking at that output and thinking: something's wrong, I don't see a staircase at all, just a straight line.
That is because using a sample and hold is all about timing. Since the sawtooth LFO and the square LFO share the same default rate, we're taking our pictures of the sawtooth LFO at the same position each time.
If we speed up our square LFO, we start to take pictures at a faster rate than the sawtooth LFO cycles, so the sample and hold's output begins to change. At first, though, it may not be very clear what shape we're sampling -- if the square wave LFO is only a little faster than the sawtooth, the samples may seem to jump around as they catch the sawtooth in a pattern that isn't immediately obvious. That's jbecause one way to think about the speed of our square is as a fidelity control. Right now, things are pretty lo-fi, but as we increase the speed of the square, the sawtooth begins to take form. When it is about four times as fast as the sawtooth, we should really begin to see the staircase form. As we increase the speed more, our staircase has even more steps to descend. And then, a funny thing begins to happen. As our fidelity increases, there are more and more steps, and the steps are smaller and smaller. Our sample and hold's output is looking a lot like a sawtooth wave again, maybe a little bumpier than usual, but definitely more sawtooth than staircase.
Of course, you can apply this technique to more than just sawtooth waves. Make your envelopes chunky! Turn an envelope follower into staircase follower! You can even modulate the sampling rate -- in our example, the rate of the square LFO -- to switch between smoother and more steppy forms, or you can use an irregular timing source to produce more unexpected results.
If this sort of waveform manipulation interests you, you might also look at the steps module in ZOIA, which takes continuous CV sources and breaks them up into discrete, even steps. A very similar process, but achieved by slightly different means.
5 More Create Ways to Use Sample and Holds
There are countless applications for sample and holds, but let's talk about a few more before I leave you with some resources.
Probably one of the most well-known uses of sample and holds is to create the beeps and the boops of classic sci-fi robots and alien technology. In this case, the sample input is usually white noise because it provides a source of random frequencies. When you clock the sample and hold, the output is a sequence of steadily changing voltages.
Hooked up to an oscillator's frequency input or a filter's cutoff frequency (or used with a ring modulator, or a delay line, or... the list goes on), you can quickly discover a whole world of classic sound effects and some new ones, too (like in the staircase LFO example, try modulating the clock speed!).
You can do the same thing in ZOIA by connecting a random module to the input of a sample and hold. But the random module itself has an option to produce a new random value only when it's triggered -- the same effect with fewer modules!
It's not such a great leap to get from a string of random frequencies to a generated melody. Really, we just take the example above, constrain its range with some attenuation (you might want unexpected notes, but you don't want them all over the place), and then quantize the results.
You can get more elaborate, too, using shift registers (which can be constructed in ZOIA using sample and holds strung together) or CV loopers or logic to make the randomly generated melody feel more purposeful and focused.
Because the output of a sample and hold won't change until it receives a trigger, they can be a great way to get your patches' ducks in a row, so to speak. For instance, you could use the clock from a sequencer to change several other parameters at the beginning of each step; just use it to clock the sample and holds placed between a modulation source and a destination.
Or you could use the output of a clock divider to have those changes happen in some ratio of the sequencer's clock, like adding a "strobing" effect to filter frequency changes by using a sine wave as the sample and hold's input and multiplication of the clock to trigger the sample and hold!
Sample Rate Reduction
You might remember that I mentioned earlier how the clock rate of a sample and hold acted as a sort of fidelity control. We can take this even further in the audio realm by using an audio rate clock -- like a square wave VCO -- and sending audio to the sample and hold's input. The frequency of the clock will determine the sampling rate of the audio, so you can really use this to add some dirt and crud to a single. It's loads of fun! Your sample and hold module needs to be AC-coupled to accept audio signals, but a lot are.
ZOIA's sample and hold doesn't accept audio signals, but that's what the aliaser module is for! It can perform the same kinds of sample rate reduction. You can even get sample rate reduction by modulating a VCA with a super-fast LFO (try using a clock divider to push the LFO speeds into low audio ranges).
Freeze Modulation in Its Tracks
A close cousin of the sample and hold is the track and hold. Unlike the sample and hold, which won't change its output until it receives a new trigger, the track and hold will allow the input of the sample and hold to pass to its output until it receives a gate -- a sustained voltage -- at its trigger input. Then, it will hold onto the voltage that was at its input when it received the gate, just like a sample and hold, until the gate ends, at which point the input will be passed to the output again.
You can use track and holds -- and the sample and hold module in ZOIA has a track and hold option -- to stop LFOs and other modulation sources in mid-cycle, essentially freezing them in place until you release the gate. It's a lot of fun and an interesting alternative to the staircase example we started with!
If you want to learn even more about all the things you can do with sample and holds, I really recommend DivKid's video:
Alex from WMD Devices also has a great video on some of the creative ways you can apply sample and holds: