Random Video Generator

Random Video Generator

No, not AI. This time I'm talking about a video synth module that I've had in my head for many years, that I only recently realized I could accomplish with existing gear.

Background

After getting comfortable patching my modular video synth, I found a need for random voltages that I could route around the system. I wanted to feed these voltages into all of the CV inputs of my modules so that when they were triggered, I'd get a different image each time. And I wanted a lot of these voltages. One or two wouldn't do it, but eight would be enough.

The "modular way" of getting a random voltage is to feed a noise source into a Sample & Hold module that is clocked by an LFO (or a manual gate). Doepfer makes a handy 4HP module (A-118-2) that combines these two functions for about $80. It's just one of many. Noise and Sample & Hold circuits are fairly easy to cobble together and make a great first DIY project.

Since I wanted 8 of these random sources, 8 x $80 = $640 is getting kind of hefty. On top of that, 32HP is a lot of case space to dedicate to a bank of random voltages. You could, of course, mult one or two of these to cut down on modules and cost, but you'd be feeding the same couple voltages around.

Beyond the financial and physical aspects of this endeavor, I started to daydream about bonus features for such a module; features that would fulfill the press-a-button-get-a-new-picture initial idea.

Specs

My dream module consisted of:

• 8 random, steady voltages in the 0-1V range
• A fat arcade-style button that would trigger new voltages with each press
• A tap-tempo LFO to take over for the button, if so inclined
• Per-channel slew to smoothly transition the random voltages

Solution

I made a couple half-hearted attempts to learn the electronics needed to make a hardware circuit to do what I wanted. I played with Arduinos and other hobbyist electronics platforms, but analog outputs are at a premium, and nothing offers eight out of the box. There's probably a way to do it with the abundant digital outputs those platforms offer, but I just don't have the circuit engineering experience to pull it off. I come from a programming background, so I tend to think in those terms. I shelved it.

What I didn't realize is that I had a module capable of nearly all of my desired specs sitting unused in another case.

ALM's Pamela's New Workout is a much-revered module in the audio eurorack community. It's a clocking and modulation powerhouse that does all kinds of divisions and multiplications of clock signals, tempo-synced LFOs, and random voltages. It has eight outputs. It's only 8HP. It can be had for about $250. Winner winner chicken dinner.

Pam's needs some configuration in order to fit this particular use case. Here's what you do:

  1. Set Level to 20%. This will bring down the output–which defaults to 0-5V–to 0-1V.
  2. Set the waveform to Random.
  3. Set Quant to "NO". We don't want to quantize voltages here, necessarily.
  4. Set Loop to Beat 00. This is important: the Loop setting determines the random seed for all of the outputs. If every output has Loop set to 16, all of the outputs will use the same random seed and will put out the same random voltage.

If you want to get the tap tempo functionality going, you need to change the PPQN (Pulses Per Quarter Note) setting to 1. Plug the Clk Input into a manual gate, MIDI controller, or just tap the bare end of the cable with your thumb.

Pam's has lots of advanced logic, probability, and Euclidean sequencing parameters as well, which I won't go into here, but will leave as an exercise for the reader.

All of this works incredibly well. It really opens up your system to have new modulation possibilities to play with. Not to mention, it makes a great live performance tool to tap along to the music and have modulation and visuals changes happening in time (or in half or double time) to the music. Powerful stuff.

Drawbacks

That said, there are a couple drawbacks.

  1. Pam's is very much designed to be the central clock in a system. That applies to video clocks as well. There isn't quite an easy way to get it directly in sync with the video refresh rate, so you may have some tearing at higher clock rates. You may be able to get around this with some AND logic, your tap tempo source, and the video clock, but Pam's is going to do what it wants to do. The less frustrating workaround is to just work slower.
  2. Following on #1, Pam's wants to bottom out at 10BPM. If you need to do slower changes than that, set the division rate for the channels to a higher value.
  3. Remember how I said I wanted per-channel Slew? It's not exactly possible with Pamela's New Workout. The Smoothed Random waveform can get you close, but it's still a little wobbly. That said, the newest hardware revision–Pamela's PRO Workout–does have a per-channel slew parameter for random waveforms. If you don't already have one, go for the PRO.
  4. This is just personal taste, but all of the press-and-hold encoder clicking and menu navigating on the module kind of kills me. I find it fiddly and frustrating. Most people seem to be okay with it, though. Thankfully, you can set everything up once on one channel, and then load that channel's configuration on every subsequent channel. Then you can save the entire bank and you're good to go.

Examples