Emulating Buchla 284 and 281 envelope generators

This is a continuation of discussion and efforts from the following threads:

AI led me astray in my prior attempts to emulate the Buchla Quad Voltage Controlled Envelope Generator model 284. I mistakenly thought the 284 could not be retriggered, but I have learned that it can be retriggered during the decay phase. This of course has a major impact on construction of an emulator, and on the resulting functionality.

I have scoured YouTube videos, and writings from experienced Buchla users, especially info from ModularSynthesis - Buchla Modules

I think I have a much better understanding of the 284, as well as its successor, the 281 Quad Function Generator, and I have some new emulation patches. But I very likely still have some misconceptions.

So please, if you have experience with actual Buchla hardware, please point out any mistakes that I have made so I can improve the emulations.

I may undertake development of dedicated Venom modules that emulate the 281 and 284 in the future, based on what I have learned from these emulations using existing modules.

Buchla Quad Voltage Controlled Envelope Generator model 284

Here is version 4 of my emulator in which I allow for retriggering during the decay phase. The actual internals are much simpler than my prior efforts. I really like this one.

Buchla 284 Quad VC Envelope Generator v4.vcv (9.7 KB)

Here is the user interface.

And here are the functioning internals that should not be touched.

You can save a selection set from this patch. Just make sure you import the selection set using the Stoermelder Strip++ so the PatchMaster and Bay Modules preserve their mappings. If you simply import using the native VCV functionality the selection set will be useless.

Some notes on known differences from hardware:

  • Stage timing knobs should range from 2 msec to 10 seconds. But the Venom AD/ASR module knobs that I used actually range from ~2.8 msec to ~11.3 seconds. However, with CV you can go much faster and much slower, just like the hardware.
  • The CV functions as frequency modulation, allowing you to speed up or slow down envelopes without changing their shape. This mostly works in this emulation, except there is some shape distortion as the emulation approaches the maximum frequency allowed (well into audio rates).
  • I am not positive how the retrigger should work. I have seen some writings that say the envelope should terminate immediately and return to zero upon retrigger during decay. But I haven’t seen any actual evidence in videos or scope tracings. I opted to allow decay to continue while the delay/duration EG is triggered. If after the delay finishes while the decay is still descending, then it retriggers from the current level, not from 0. This is much easier to implement, and seems more logical to me. I could really use some help on establishing the actual hardware behavior of retriggers!
  • The emulation actually supports polyphony. Once polyphony is introduced at one of the inputs, then internal feedback will cause polyphony to persist even after the polyphony is removed from the input(s). The Reset Poly button is available to temporarily bypass the internals, forcing all outputs to be monophonic so the correct polyphony can be re-established from the inputs.

Below are some screen captures that demonstrate various behaviors of the emulation.

Envelope Generator construction

The hardware actually uses two ASR envelope generators to implement a single EG within the hardware. My emulation does the same. The first EG controls the delay and duration, and the second EG controls the attack and decay. The final envelope output comes from the 2nd EG. When triggered, the 1st EG starts. Once EG1 completes the attack, it triggers EG2. EG1 holds until EG2 completes its attack. Then EG2 holds while EG1 decays. Retriggers are blocked throughout this process. Once EG1 decay finishes, then EG2 begins to decay and retriggers are allowed. If the attack and decay times are the same for both EGs, then they are in quadrature, meaning EG2 is out of phase with EG1 by 90 degrees.

The image below demonstrates how all this works. The red trace is taken from the internals, it is not actually exposed in the UI.

Note how retrigger is blocked for the 2nd gate, but allowed for the 4th gate. Because EG1 is triggered while EG2 is still decaying, the delay is shortened.

Sample traces with various settings

Sustain off, no delay or duration:

Sustain off with delay and duration:

Sustain on with delay and duration. But duration is ignored (or internally set to 0, same thing)

Complicated retrigger scenarios showing retrigger only allowed during decay

Sustain off

Sustain on

Buchla Quad Function Generator model 281

The 281 is the successor to the 284. It preserves the quadrature found in the 284, except the outputs of both EGs that make up a single envelope in the 284 are exposed as their own separate envelopes in the 281. The quadrature can be enabled or disabled. When quadrature is enabled, it disables external triggering of the 2nd EG.

The 281 adds independent CV control over attack and decay, but loses attenuverters for the CV. Buchla only supports unipolar CV. This means the 281 CV can only make the envelopes slower. They cannot make it go faster. Suzanne Ciani preferred the 284 over the 281 because it could be driven faster or slower.

The 281 adds automatic cycle mode so you don’t have to patch the EOC gate to the gate input to get cycling. Cycle mode immediately starts cycling, no trigger is needed.

An analog OR output is added that produces the maximum voltage from A and B (or C and D). It also provides level control over B (or D) so you can emulate an ADSR among other things.

Here is my emulation using existing modules:

Buchla 281 Quad Function Generator.vcv (8.3 KB)

Here is an image of the UI

Here is an image of the internals that should not be touched

Again, you can create a selection set, but be sure to use the Stoermelder Strip++ when importing into a patch.

Known differences from the hardware

  • A Bipolar CV button is available to allow bipolar CV. If not allowed, then all CV is clipped to values between 0 and 10V to be more like the vintage hardware.
  • Stage timing knobs should range from 1 msec to 10 seconds. But the Venom AD/ASR module knobs that I used actually range from ~2.8 msec to ~11.3 seconds. However, with CV you can go much much slower, just like the hardware. If bipolar CV is allowed then you can also go much faster.
  • Like with the 284, I am not positive how the retrigger should work. I could really use some help on establishing the actual hardware behavior of retriggers!
  • The emulation actually supports polyphony. Once polyphony is introduced at one of the inputs, then internal feedback will cause polyphony to persist even after the polyphony is removed from the input(s). The Reset Poly button is available to temporarily bypass the internals, forcing all outputs to be monophonic so the correct polyphony can be re-established from the inputs.

Sample patches with traces demoing various functionality

Demonstrating the effect of gate length on the final envelope in trig mode vs sustain mode, as well as showing an example of retriggering during the decay phase. Also demonstrates how the analog OR output can be used to emulate an ADSR.

Two examples of quadrature, both showing the 1st envelope being triggered by the EOC of the 2nd. The first example has both envelopes in trig mode with identical attack and decay. The second example has the 2nd envelope with much faster attack and decay running in sustain mode.

The yellow trace show a cycling envelope, combined with its EOC gate that triggers the other three envelopes. The red trace shows a fast envelope that is able to keep pace with the triggers. The green trace has a slow attack which causes every other trigger to be ignored. The blue trace shows the triggers occurring during the decay phase, causing retriggering and the envelope is never able to return to zero.