Bissell envelope follower part 2

I tried replacing (in the simulation) the 2N3904s with MOSFETs. Not that I know anything about using MOSFETs. But the result looked a lot better:

Here the gray trace is the EF output. Very fast rise, though it rounds off the sharp peak.

One thing you might notice is the cap doesn’t discharge all the way to zero. Evidently the reset pulse isn’t long enough. I changed the 1 nF caps on the clock lines to 2 nF and that seemed to fix it.

This is using what appears to be an idealized MOSFET model. Replacing that with a VN2222LL model results in something not as good. We’re back to having upward glitches in the peak detectors, though they’re a good deal smaller than before.

(Speaking of non ideal components, on the breadboard I was using cheap ceramics for the integrating capacitors. But in the simulation I was using ideal caps. It didn’t seem likely to me that both could be causing the same problem, but just to check, I went back to the breadboard and replaced the ceramics with polypropylene film. I got the same kind of results.)

Thinking maybe it’d help to slow down the cap charging, I bumped the 10k resistors into the caps up to 100k. And indeed, that improves the glitch situation. Here’s that with a square envelope, sharp rising and falling edges:

In this one the pink trace is the EF output. There’s one glitch visible here, just after 80 ms on the horizontal axis, but it would seem the glitches are very much smaller and fewer than with the 2N3904s and 10k resistors.

The falling edge is slow, for two reasons. One is the low pass filter slowing the fall time down. The other is, if you look closely at the red trace (the senior peak detector at the end) and the cyan trace (the input signal), the peak detector stays high for more than two clock periods after the input signal stops. That’d be something like 12 ms for a 150 Hz clock. Then that’s followed by the RC decay for around 10 or 15 more ms. So yes, very snappy on the rising transient, but pretty sluggish on the fall.

The gray (appropriately!) trace is the ARP 2600 EF output for comparison. It gets down to zero faster, but it starts much slower and shows more ripple.

But what if you don’t have such sharp edges? I decided to try a simulation with a piecewise linear ADSR envelope, longer than these very short ones — a couple seconds long, rather than a couple hundred milliseconds.

I was pretty shocked. Maybe the glitches are rarer, but there’s more time for them to happen, so there are more than just one per envelope… and for whatever reason, they’re bigger again.

The envelope output is there, in pink, but if you can’t see it, here’s a plot showing just that (cyan) and the ARP 2600 EF output (blue), along with the original input envelope (red):

So no, those “smaller, fewer” glitches aren’t small and few enough.

So I poked at it some more and found something. The problem is the reset pulse is too fast. I’d already changed the 1 nF cap to 2 nF, but pushing it up all the way to 20 nF nearly kills the glitches. What bad effects that might have I don’t know.

Now it looks like this:

(Bissell in cyan, ARP in green, input envelope in blue.) There’s a little trash on the sustain but probably not enough to care about. You do see a couple other issues. Thanks to the asymmetric filter there’s no ripple on the flat and falling pieces, but there’s definite ripple on the rising slope — much more than the ARP. Also, it takes off a bit late at the start and gets to zero at the end slightly too soon: I think that’s because of the diode drop after the peak detectors. Presumably those could be made precision rectifiers, but that adds three more op amps to an already complicated design.

For an envelope like this I still prefer the ARP design. The main advantage for Bissell is on envelopes with a very fast rise.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s