Utilities
S&H ASR
Sample and hold plus 8-stage analog shift register - the classic stepped-random voltage source.
Try one in your browser →
What is a S&H ASR?
A sample and hold - usually shortened to S&H - is a deceptively simple circuit. It watches an incoming voltage, and on the rising edge of a trigger, it captures whatever value the voltage has at that exact moment and holds it steady at the output until the next trigger. In analog terms it's a capacitor charged through a fast switch and read out by a high-impedance buffer; in digital terms it's a single floating-point sample written into a register on every clock edge.
The reason this matters is what happens when you feed it noise. White noise is a stream of random voltages changing thousands of times per second - far too fast to be useful as pitch or modulation. But sample a noise source on a slow clock and the output suddenly becomes a sequence of stepped random voltages, one new random value per trigger. Patch that into a VCO pitch input and you get a melody no human would write. Patch it into a filter cutoff and you get blippy, warbling movement. This trick - random-into-S&H - is one of the foundational sounds of Berlin School electronic music and 1970s sci-fi soundtracks.
The S&H was central to Don Buchla's thinking about modular synthesis. His Model 265 Source of Uncertainty, designed in 1971, generalized the idea into the analog shift register (ASR) - a chain of S&H stages where each row holds the previous row's value, so a single sample propagates down the chain on each trigger. Patch four VCOs to four ASR taps and one melodic line plays as a four-voice canon, each voice one trigger behind the last. It's the kind of structural musical idea that only a modular synthesizer can express directly.
Two close relatives are worth naming. Track and Hold (T&H) passes the input through unchanged while the gate is LOW and freezes the output the instant the gate goes HIGH - useful for sampling envelopes at a precise moment. Slew limiting is the inverse operation: instead of jumping to new values on a trigger, it smoothly glides toward them at a fixed rate, the basis of portamento on a synth keyboard.
Our S&H ASR
Our S&H ASR is eight rows tall - more generous than the typical hardware S&H, which is usually one or two channels. Each row has its own IN, TRIG, and S&H output, so you can use it as eight independent sample-and-holds, or as a single eight-stage analog shift register, or anything in between.
The clever bit is the normalization. Leave a row's TRIG unpatched and it inherits the trigger from the row above. Leave a row's IN unpatched and it reads the S&H output of the row above (with the previous value, so the shift register cascade works correctly). Patch one trigger at row 1 and one input at row 1, and a single sample propagates down all eight rows on each clock tick - a full ASR with one cable into the trigger column. Patch trigger and input at row 4 and you split the module into a 3-stage and a 5-stage ASR.
The RND toggle replaces the row 1 input normalization with an internal ±5V random source - the canonical noise-into-S&H setup, no Noise cable required. The PUSH button manually fires row 1 (and cascades through any unpatched triggers) so you can step the register by hand. CLEAR zeroes every held value at once.
In a patch
The textbook S&H patch is Noise -> S&H input, Clock -> S&H trigger, S&H output -> VCO V/Oct. Add a Quantizer between the S&H output and the VCO if you want the random pitches snapped to a key. This is the entire architecture of those wandering, alien melodies in 1970s electronic music - four parts and a clock.
Beyond pitch, S&H is the standard way to quantize modulation in time: an LFO flowing into an S&H sampled by a clock turns a continuous sine wave into a stepped staircase locked to the beat. Useful for filter sweeps that move on the grid instead of drifting freely.
An ASR fed from a step sequencer melody, with each tap driving a different VCO, builds a canon automatically: voice 1 plays note n, voice 2 plays note n-1, voice 3 plays n-2, and so on. Send each voice through its own envelope and VCA and you have an entire chamber piece running off a single sequencer line.
Controls
- RND — Random normalize toggle. When on, IN 1 is normalized to an internal random source (+/-5V) when unpatched. Turn this on for instant generative patches.
- Push — Manual trigger button. Press to trigger row 1 and cascade through all unpatched trigger rows. Useful for manually advancing the shift register.
- Clear — Reset all 8 held values to 0V. Use to start fresh.
Inspired by
A sample-and-hold turned sideways into an 8-row analog shift register. Each row samples its input on a trigger; unpatched rows normalize to the row above so a single trigger cascades a value down the chain - the canon-generator trick that ASRs have done since Buchla introduced the 265 in the early 1970s.
- Doepfer A-148 Dual S&H
- Make Noise SH
- Buchla Model 265 Source of Uncertainty
← Back to all modules