Buchla-style low-pass gate: one control drives amplitude and brightness together, through a vactrol model. More...
#include <pulp/signal/denormal.hpp>#include <pulp/signal/tpt_filter.hpp>#include <algorithm>#include <cmath>Go to the source code of this file.
Classes | |
| class | pulp::signal::LpgT< SampleType > |
| Vactrol-modelled low-pass gate. More... | |
Namespaces | |
| namespace | pulp |
| namespace | pulp::signal |
Typedefs | |
| using | pulp::signal::Lpg = LpgT<float> |
| using | pulp::signal::Lpg64 = LpgT<double> |
Buchla-style low-pass gate: one control drives amplitude and brightness together, through a vactrol model.
The vactrol response follows the model family in Parker & D'Angelo, "A digital model of the Buchla lowpass-gate" (DAFx-13): a fast light-onset rise, a slow and level-dependent dark recovery, and a control-to-amplitude power law separate from the control-to-cutoff exponential.
RT contract: prepare() and the set_*() setters are control-side calls; strike(), set_gate(), process(), reset(), and the accessors allocate nothing and are audio-thread safe. The type owns no memory.
USE — the physics being borrowed, and why it is worth borrowing:
A vactrol is an LED facing a photoresistor in one package; the Buchla 292 used a single cell to control amplitude and cutoff at once. The photoresistor responds to light onset in about a millisecond but recovers its dark resistance slowly and nonlinearly — a fast snap open, then a long drooping close. Two consequences make it musical. First, loudness and brightness co-vary, which is how every acoustic percussive source behaves: as a struck object's level falls, its highs die first. A pinged LPG reads as a thing that was hit, not as a synth patch. Second, the closing is not exponential — fast at first, then lengthening — which is exactly the decay contour of struck wood and skin that a plain RC envelope misses.
The core patch idioms:
When not to use it: sustained material that needs constant timbre — that is VcaT. Precise transient design — that is the envelope family. The vactrol's lag and droop are character, and character is the wrong tool when you need accuracy.