I’ve been breadboarding a rungler. “Cool,” you say. You take another bite of leftover turkey. You chew. You swallow. Finally you say, “So what’s…”
Rungler
Rob Hordijk was a Dutch engineer and synth designer. One of his creations was the Benjolin, a quirky little synthesizer featuring two oscillators, a filter, and a… rungler.
The rungler is a control voltage sequencer based around a digital shift register. In that, it somewhat resembles the well known Turing Machine module. Unlike the Turing machine, the rungler is deterministic, not random, though it is unpredictable enough to render the distinction somewhat, though not entirely, moot.
(Before going further: Rather confusingly, Hordijk designed a synth module called “Rungler”, which is not just a rungler in the sense used here — the module includes two oscillators as well as a rungler circuit that evidently has more features than what I’m describing.)
The rungler takes two inputs: A clock to advance the sequencer to the next step, and a data signal which governs when new bits are injected into the shift register. The last stage of the shift register is read out and fed back to be XORed with the data signal to produce the bit that is inserted. The last three shift register bits are converted with a simple R-2R network into an eight-level CV output.
The circuit as Hordijk designed it (click to enlarge):

Rungler and power sections from Benjolin schematic
P1 here is the data input, P2 is the clock. Transistor T1, op amp U6.A, and the associated resistors are an analog XOR circuit operating on the data signal and Q8, the value of the last shift register stage. U4 is the shift register. Resistors R22 through R27 are an R-2R 3 bit DAC, and R21 and U6.D are the output stage.
Odd power
The circuit design is a bit odd. For one thing, the shift register is powered not by something as conventional as 12 V and ground, but by ±9 V. (The op amps use ±9 V and ground.) Why? I’m not fully sure; it may be just that Hordijk wanted bipolar outputs and did it this way rather than making a unipolar signal and then adding a negative offset. Or maybe the analog XOR gate needed to be bipolar to work. Either way, ±12 V wouldn’t work, because that exceeds the absolute maximum power voltage difference for the shift register chip. So ±9 V it is.
Not a problem for breadboarding. My bench supply is adjustable. For an eventual module, though, I’ll need to regulate ±12 V down.
Odd XOR
The XOR design wasn’t at all obvious to me, so I breadboarded it and simulated it. And was puzzled. It did indeed produce a high output when either input was high, and low output when both inputs were high, but a high output when both inputs were low. Which is not XOR. Interesting enough, maybe, but not XOR.
data |
Q8 |
What I expected (XOR) | What I got (not XOR) |
|---|---|---|---|
| low | low | low | high |
| low | high | high | high |
| high | low | high | high |
| high | high | low | low |

Not an XOR
Above are plots of results from the simulation. The blue trace is Q8, the green is data, and the red is the (alleged) XOR. The latter is smaller in amplitude, that’s okay, but it’s always high when Q8 is low regardless of data (or vice versa); that’s not okay.
Loop offset
I shrugged and moved on. I tried out the loop offset mod originated (I think) by Tseng Kweiwen:

Kweiwen’s rungler, with loop offset switch and pot
This consists of a pot, a switch, and a fixed resistor (in the red outlined area). With the switch turned on, the knob controls a DC voltage level to be mixed with the data signal. When the level was +9 V it overwhelmed the data, keeping it from modifying the shift register content. Instead it just cycled through the shift register, inverting each final bit and sticking that back in. The result was a fixed 16-pulse cycle where the last eight pulses were the inverse of the first eight. With the knob centered, the DC level was 0 V and the rungler behaved as originally designed. But with -9 V, the shift register got filled with ones and the output was just a flat DC level. I figured with a true XOR the result should be an eight-pulse cycle. Too bad it wasn’t a true XOR.
No good deed goes unpunished
Eventually, comparing my simulation to the original schematic, I noticed I’d added something. There’s a transistor in the XOR circuit, and the voltage sent to its base can vary between about ±7.5 V. “That’s bad,” I’d said to myself, because for most transistors the minimum reverse emitter-base breakdown voltage is about 6 V. That’s a minimum, it’s likely to be larger, but in principle sending -7.5 V to the base is outside the safe spec. Usually you wouldn’t want to send a negative voltage to the base anyway; that’s not how transistors are normally used. So if such reverse biasing is possible, the standard fix is to put a diode from base to ground that will conduct when the base voltage tries to go negative. I’d done that.

XOR schematic with diode added
“So what happens if…,” I wondered, and took the protection diode out in the simulation. Behold: now it was a real XOR. Put in two low voltages, you get a low voltage out.

Is an XOR
I tried it on the breadboard and, indeed, turning the loop offset knob fully counterclockwise gave me the eight-pulse cycle I’d expected.
There are other ways to design an XOR, including the obvious just-use-a-logic-chip approach, but this way’s a little quirky especially when you use the loop offset:

Sort of an XOR, loop offset pot at 40%
Here you see the XOR output when the loop offset switch is on and the pot is adjusted to 40%. The high outputs are not necessarily equally high and low outputs not equally low. That leads to some kind of interesting behavior for intermediate values of the loop offset knob — behavior you wouldn’t get with a more conventionally-behaved XOR. That’s the good news. The bad news is, ignoring the datasheet absolute maxima can result in frying your transistor. Maybe. Maybe not.
Boldly go
So I think I’ve learned what I needed to learn — not that I haven’t thought that before and been wrong. What I’d like to do is to build a standalone rungler as a Kosmo format module. It’ll need some added circuitry for input and output stages. And I’m thinking maybe a switch to (heretically) disable the Q8 feedback if desired. I also might build a full Benjolin, with some mods, at a later date. Stay tuned.
| previous: | Kosmodrome's new instar |
| next: | Barton JFET Phaser |