top of page

Pelota 2: PT2399 delay

Updated: Aug 14, 2023

Check also the FSB thread

It’s been a couple of years since I’ve made the first Pelota delay: from the very name, it was a circuit inspired by a few popular PT2399 delays, such as the Rebote series, the Deep Blue Delay, and many others that aren’t that different to be worth mentioning.


Even then, with my more limited experience and knowledge, I knew I could try to do better, starting from the awful, noisy, high resistance inverting input stage you find in the vast majority of them that makes you wonder who did it first and if the others all went with it. The rest of those circuits isn’t far off from the datasheet schematics, and to be honest, there’s not many reasons to stray far from it for a conventional delay effect.


The first Pelota was a synthesis of those existing circuits, picking what suited more my taste between the variations, and unsurprisingly it works well, just as the circuits that inspired it. Still, I thought there was something to be gained from not taking anything as given and thinking over each part.


Another feature I wanted in the original Pelota was modulation: I’m a fan of modulated delay and it’s a simple addition that many circuits don’t bother with. Those that did usually implement modulation by messing with pin 2, the “Reference voltage” pin. While it somewhat works, messing with the reference for the whole chip feels dirty, and I preferred the more elegant approach of modulating pin 6 “VCO” in a similar way to how you change delay time. This isn’t unheard of, as for example in the Sea Machine, Jenny Greenteeth, Rebote 3. The modulation circuit is of a plug-in nature, so even including one in the schematic, if someone decides not to have that part, it’s just a matter of leaving it out, without increasing circuit complexity even a bit.


One thing hasn’t changed: Pelota 2, as its predecessor, it’s meant to be a new alternative for simple, compact, nice sounding 2399 delays, probably even one step ahead in regards of ease of building, with the usual attention about using common component values when there’s no tradeoff. The Pelota 2, as fitting for a revision, is all about fine-tuning: the result of a month of work over the original, even if it might not look like it.



Signal path

There isn’t much to see here: a high impedance follower is necessary to split the input signal, a summing amplifier mixes the dry and the delayed signal. Even using 220kΩ resistors for an inverting input stage, already a big compromise in input impedance, the simple follower outperforms that by 6 or 7 times in terms of noise voltage density (the Johnson noise of the 220k resistors widely exceed the input noise of a TL072).


Input filter

It’s a pity LPF1, which is a generic CMOS op-amp inside the chip, has its output irreversibly tied to the comparator and the delay input, because, at least for the purposes of a delay pedal, low-passing a guitar signal, with somewhat limited bandwidth already, isn’t the most useful thing. Low-passing the input is surely less important than doing so at the output, with all the noise the 2399 adds in all cases. One could make a point about preventing aliasing, but with delta modulation that’s not something so clear-cut, and we’re dealing with a clock frequency of a few MHz and small signal amplitudes anyway.


One of the first things I’ve tested was the effect of this filter on the output sound quality and noise, and it wasn’t much; as it is, relative to the input, the MFB is tuned to 5.4k and a Q of 0.76, pretty high and just as added safety over no filtering at all. The filter also has a gain of 6dB, compensated at the delay output, which can be a useful boost to the SNR while keeping the levels more than small enough for the 2399.


At least the virtual ground makes a convenient summing junction for the feedback signal, as shown even in the datasheet. There, the output is actually taken from this op amp, which puts this filter into perspective, since in this original schematic the delay output gets the full 5 poles worth of low-passing. Sadly, this makes delay and feedback levels interdependent, something I couldn’t accept.


Usually, this op-amp is set up for a MFB low-pass and the filter input is treated as summing junction for input and feedback signals. This node isn’t a proper virtual ground, and it results in a decreased Q all other things being equal, equivalent to the effect of a voltage divider at the input (same resulting gain, half input resistance).


Since I was pretty happy with my choice of gain and Q, I did something different: the input goes through the full MFB, the feedback signal directly to the inverting input. This doesn’t affect the input MFB, but results in a 6dB/oct. resonant filter for the feedback signal. Since the feedback is already coming off 3 poles of low-passing and those add up every time the signal recirculates, this is completely adequate. With the values chosen, the peaking is modest, less than 1dB and very wide.

Red input, green feedback.

Since I wanted to high-pass the feedback signal a bit, doing the opposite -MFB for the feedback and the 6dB filter for the input- wasn’t really an option, because it resulted in a shelving and peaking response for the input, which wasn’t acceptable.


A final note on this part which applies also to the following: one thing I didn’t like about the Pelota 1 was the generous use of large 1μF film caps. Whenever possible, I tried to keep capacitor values within 100-220nF, which I find to be the upper limit for reasonably sized film capacitors. As confirmed by my testing, the output of the 2399 is the limiting factor in terms of noise, and isn’t affected by the use of slightly larger resistors in the delay path. The “90dB SNR or better” quoted in the datasheet is just fanciful.


CC0, CC1, MOD, DEM

I wanted to give these capacitors some thought, because they’re usually taken as they are.


Changing CC0 and CC1 wasn’t useful, with a decreased value introducing more spurious noises in the output. It was interesting to scope these pins, observing a ~30hz ramp wave with no signal, turning into one at the same frequency as my test signal, which then frequency doubled and disappeared with increasing input amplitude; I’m leaving this here in case it’s useful for someone.


The MOD and DEM integrators were more interesting (OP1, OP2). Decreasing the value from the standard 100n made the output much noisier, increasing it made it better, at the cost of bandwidth as noted by ValveWizard. Since bandwidth is already limited way more by the output filtering, I decided to make these 220nF, which has no effect on the final bandwidth, doesn’t result in slew rate issues as with larger values, but still gives a useful noise reduction.


As confirmed in practice, mismatching the filters results in a not flat frequency response. A larger value for OP1 than OP2 results in a positive high shelf, the opposite in a negative one. More complex filter networks are possible if desired for some reason.


Output filter

The output of the delay goes through a 3-pole filter made of a 2.2kHz 0.8 Q MFB low-pass and a successive 3.3k passive low-pass. Unlike LPF1, LPF2 can be used as any inverting op-amp since the output isn’t hard-wired, but it’s been used as normal because the output filtering is very much necessary. I didn’t necessarily aim to reproduce the aggressively low-tuned, up to 5-pole filters found in BBD delays, which have audio-band clocks, but the resulting sound is very similar, as the amount of filtering I have is the minimum I found acceptable for a good sound.


Output and feedback

The output, as in the old one, goes into two controls: one for the output level, one for the feedback level. Since the output MFB has dropped 3 dB off the 6dB boost at the input, R23 drops the remaining 3dB so that the maximum delay level is unity.


The feedback path includes a pair of diodes: I wanted self-oscillation to be an option, but this usually becomes too loud very quickly. The diodes limit the amplitude fed back (which has the same gain as the input) to a lower level, without causing clipping in normal use with instrument level (if you’re building this for line level, the diodes aren’t necessary since the 2399 itself will limit somewhat gracefully to a not much higher level than that). R19 has the double function of current limiting the diodes at full feedback and isolating them from the output path (a shortcoming of a similar design) while also reducing the feedback gain to roughly the smallest amount I found necessary for self-oscillation (I didn’t want half of the feedback pot being oscillation territory).


C17 is a small exception to the “no large caps” policy, but with the diodes conducting the load impedance can drop to 10k, cutting bass also from the delay output with a smaller capacitor. I suggest a 1μF polarized cap here, which is probably smaller than the other film caps present, but a larger one or a film one can also be used.


R15 and C14 keep the feedback gain within normal levels and cut some bass from the signal fed back, something I personally like.


I’ve tested both linear and log tapers for these two controls and found linear to be a bit better. The Level control is already tapered a bit by the 47k resistor and results in about -9dB with respect to the dry signal, which is clearly audible but not too much, compared to the -18 of a log pot.

Same goes for the Feedback pot: a log taper resulted in about 2-3 clearly audible repeats at half, which seemed too little for a “medium” setting, made the first half of the pot not very useful, and didn’t help squeezing the “oscillation zone” out of the way either.


Pin 6: VCO

Pin 6, being the one that controls delay time and modulation, deserves its own paragraph and has taken me most of my time while redoing the circuit.


The voltage on this pin is stable at half-supply, and can be assumed to be a current input feeding into an inverting op-amp, as confirmed by ValveWizard. When seen this way, the delay pot and modulation circuit are better described as a current divider rather than a voltage divider. They don’t really interact as a voltage divider going into this pin since pin 6 is a virtual ground.


This is also another nail in the coffin of VREF (pin 2) modulation. All that is doing is using the non-inverting input of this op-amp to modulate its output… together with everything else using that reference inside the clip, coupling the subsonic LFO to the other inverting amplifiers in the signal path among other things.


By the above reasoning, the Delay control changes the delay time by sinking a variable amount of current across the fixed 2.5V potential to ground, with current inversely proportional to delay time (making resistance directly proportional, allowing the use of a linear pot).


The 2399 datasheet allows to confirm this with a useful table of delay time, resistance and clock frequency (and also an internal schematic. Be sure to grab the good one, the other one is a joke). I’ve inserted the data in a spreadsheet and plotted some relationships: in particular delay time is proportional to clock period and proportional to the resistance to ground. Fitting this last curve reveals the y intercept to be 30ms, and in fact that’s the minimum delay time I was able to achieve measured with a scope. Nice!

This potentially leads to new ways to control delay time and modulation, one of them being voltage control over the delay time, which I’m sure makes some ears prick up: after all, instead of varying the resistance, we could vary the voltage across that resistor, or just sink a variable amount of current and the delay time follows.


I’ve actually tried this, in an attempt to combine the LFO and delay pot with minimal interaction.

The non-inverting gain varies little from unity and you probably want to adjust delay time and depth together, so that effect is negligible.


Sadly, a very obvious fact came up: if delay is proportional to resistance, making it proportional to current makes it an inverse relationship. This results in a very weird taper, with all the adjustment bunched up on one end. It can probably be compensated, but I steered off from the idea since there was no obvious benefit: if you want to hook up an external CV, attenuate it and feed it to the inverting input instead.


One not obvious benefit is that by sinking the current to a voltage so close to 2.5V, give or take resistor tolerances and op amp offset, it was so small that I reached the longest delay time I’ve tried from a single 2399. It was probably more than a second and sounded bad, but not as bad as I thought. The Pelota 2 has the usual maximum delay time of ~600ms which is as much as is tolerable quality-wise.


I’ve found out the Rebote 3 actually uses voltage control of the delay time to simultaneously affect all three 2399, and does so with a linear potentiometer (also that’s a reverse-beta PNP emitter follower!). Someone with an experience with that circuit might tell me if they noticed the same tapering problem.


A second idea is to use an exponential converter for the LFO, with the base delay time controlled linearly. The 2399’s reverse current-delay relationship results in a larger delay modulation at long delay times, which would seem a good thing since the pitch change depends on the proportion of the modulation to the static time, but -for reasons I’ll go further into- this still results in a much stronger modulation at long delay times. Sure would be nice if the amount of modulation current was proportional to the static delay current, and the exponential converter achieves just that on paper. In practice the effect wasn’t much, and it was discarded because of the added complexity. Still, it’s fun that, because the right transistor’s emitter current is the opposite of the left one’s, the Delay control is the same, just flipped to 5v instead of ground.

The exponential converter is courtesy of aotmr, I’ve only done the testing.


Chorus or not?

The Pelota 1 optimistically had a dedicated chorus version and an “all-in-one” delay+chorus+vibrato version building off it with a simple mode switch. It’s just one of many circuits claiming to achieve chorus with a 2399, but is it actually possible to get a good, no-compromise chorus with this chip? The Pelota 1 limited itself to safe delay times of 40-50ms to avoid sketchy anti-latchup circuits, which is on the long side for chorus, but even that turned out to not be achievable.


No matter how large the LFO, whether I used passive summing, the voltage control scheme or the exponential converter, AC or DC coupling, dropping the delay time below 50ms at most made the modulation disappear. I can only suppose that’s due to the delay time achievable by the 2399 bunching up at the lower end (going from 1k to a short only nets you 10ms) and a departure from the nice linear relationship, but the result is evident.


One final test confirms the above, with the non-linearity caused probably by nothing else than the op-amp feeding back in the VCO pin saturating. At 2.2k resistances and below, saturation is belied by the voltage on the VCO pin sagging down from 2.5V. If we assume the internal op-amp can swing to 5V, this makes the feedback resistor about 570 ohms from my measurements, at least in my unit (ValveWizard guessed 1k which is close). Since the issue is with the output saturating, modulating VREF wouldn’t help either since it just feeds into the other input.


Looking at other 2399 chorus effects, like the Sea Machine and the Jenny Greenteeth, an analysis reveals that the average delay time is for most settings on the high side, comparable to the lowest delay setting achievable by the Pelota 2. Listening to a demo of the Sea Machine revealed this to be the case too: the 2399 doesn’t seem capable to achieve a proper chorus effect, limiting itself to a still pleasant pseudo-chorus slapback. The Pelota 2 can still achieve this effect.


Based on these tests, which took a good part of my time, with a proper anti-latchup circuit, you can reach static delay times close to 30ms, but without any room for modulation anymore. True chorus and flanger and variations thereof are still possible at the cost of latency and sound quality by using two parallel delay lines, one being the “dry” signal, as in the Dimension P. If I had to suggest an anti-latchup configuration, it would be a RC integrator with a BJT like in the Dimension P: using a JFET doesn’t make much sense.


The LFO

With that out of the way, the LFO in the final design is pretty simple, save for a couple of tricks. One thing I wanted to change from the Pelota 1 and its Sea Machine-inspired LFO was the use of two very large coupling capacitors, one going into the Depth pot attenuator, one from there into the VCO pin. I had also received some valuable feedback saying the modulation was too much, and I agreed. So the main challenges were not using large electrolytic capacitors and fixing the modulation depth.


To achieve this, I ended up with a scheme that starts with a LFO centered around 2.5V, and uses a DC-coupled inverting amplifier to control the amplitude and feed it to pin 6.

Before this, the buffered output of the LFO (or from a different one with a low-impedance output) went into a DC-coupled potentiometer attenuator. But that potentiometer would have to be referenced to 2.5V too or the delay time would be affected! This actually happens in some designs I’ve looked at, which is acceptable for a chorus-only circuit, it’s a “trick” that raises the delay time at higher depth.


I’ve tried to send the pot to a dedicated reference divider, but it turns out you only need a tiny amount of modulation for it to be audible, and the divider wasn’t able to kill it completely. This wasn’t acceptable for me. The divider would have to be decoupled and made low impedance -possibly with a zener- respective to the pot, and the pot can’t be too large to present a constant, low resistance to the VCO pin (and a higher output resistance would necessitate a larger LFO to start with).


Instead, I’ve exploited the property of an inverting amplifier to go to zero gain to kill the LFO completely, while still allowing a “floating” Depth control. The amplifier’s reference is the one made by the 2399 itself, which is perfectly acceptable since there’s no current drawn and it means the two will track together.


The LFO itself is a very common single-opamp triangle oscillator, since I needed the other half for the attenuator, with the only catch that the average level needs to be 2.5v. The LM358 has the nice property of going down basically to the bottom rail, but the positive saturation less impressively stops 1V or so from that rail. This would normally result in an output not centered between the supply rails for how Schmitt trigger-integrator oscillators work, if a symmetrical waveform is desired.


Realizing that all I needed for the capacitor voltage to average 2.5V was to have the comparator output swing between 0 and 5V, the 358 itself is powered from 9V but its output is clamped to 5V+Vf by the diode. The comparator reference is still 2.5V. A schottky diode would reduce the error introduced by the forward voltage, but in practice this gets attenuated and it’s too small to matter. A rail-to-rail op-amp wouldn’t need this trick, but this means I’m able to use the world’s most common op-amp for just two extra components.


The output of the LFO is already small in amplitude, which helps with the linearity of the triangle ramps, but it’s attenuated further by U1B. Actually, the full depth is still a lot at medium delay times, but I decided on this amount because it’s still enough modulation to get the nice slapback-chorus at short delay times, and some people might enjoy the extra available at longer delays. The second half of the pot is where it starts to get weird at medium delay. If you want to limit yourself to useful modulation depths, at the cost of too little at short delay, use a 10k Depth pot or increase R12.


I realize a 1M rev log Rate pot might not be available to anyone, but it’s just a suggestion and a linear one works OK too, giving more control over the slower rates. I have settled on these values because the Rate control and stopper need to be large compared to the diode resistor, otherwise at minimum rate the waveform would be very asymmetrical. Decreasing the diode resistor would send spikes of 2 mA or more to the 5V rail, which I wanted to avoid. To keep the same frequency range and a 10k R7, the only solution was a 100k stopper and 1M pot. What I said about rail-to-rail op-amps would sidestep this issue, since there’s no diode and no resistor, so that is a possible alternative that allows the use of a scaled-down Rate control and scaled-up C13, using the same board layout, save for maybe powering the op-amp from 5V.


The “blinky LED” is still present from the Pelota 1, but has been moved to the comparator square output, since the output of U1B is too small, Depth-dependent and centered around 2.5V to reliably turn on and off the LED. Still, let it never be said that someone missed their blinky LED.


Demo

Here's a quick demonstration of the possible sounds.

Conclusion

Let me know if you try the circuit, make a layout and what you think of it! As usual, my thanks go to aotmr for the constant valuable feedback and discussion.


Check the discussion also on FSB, where you can also find beautiful layouts from the community.

684 views2 comments

2 Comments


Guest
Aug 08, 2023

Is there a parts list for Rev. A somewhere? Thanks for this circuit. It looks amazingly versitile.

Like
bentfishbowl
Aug 14, 2023
Replying to

What do you mean by Rev. A? I've added a link to FSB where you can find some layouts for the circuits if that's what you want. Thanks anyway.

Like

If you want to leave a comment, try to be logged in, even with a throw-away account, so that I get notified.

bottom of page