|
| void | prepare (SampleType sample_rate) |
| void | set_decay_ms (double ms) |
| | Dark-recovery time.
|
| void | set_rise_ms (double ms) |
| void | set_colour (SampleType c) |
| | 0 = pure VCA (the filter stays wide open), 1 = pure filter (the gain stays at unity), between = both.
|
| void | set_range_hz (SampleType min_hz, SampleType max_hz) |
| | The effective ceiling is additionally capped at sample_rate / 4 when the cutoff command is applied — see the note in process().
|
| void | set_droop (SampleType d) |
| void | strike (SampleType level) |
| | Ping the cell.
|
| void | set_gate (SampleType level) |
| | Sustained control level, for idiom 4.
|
| void | reset () |
| SampleType | process (SampleType input) |
| SampleType | control () const |
| | Conditioned cell state, 0..1 — the value both the amplitude and the cutoff are derived from.
|
| SampleType | commanded_cutoff_hz () const |
| | Last cutoff command applied to the owned filter.
|
| SampleType | cutoff_hz () const |
| | Compatibility spelling for the cutoff telemetry.
|
|
| static constexpr double | kRiseMs = 1.5 |
| | Photoresistor light-onset time constant.
|
| static constexpr double | kStrikePulseMs = 3.0 |
| | Length of the light pulse a strike() produces, at two rise time constants.
|
| static constexpr SampleType | kVcaExponent = SampleType{1.5} |
| | Control-to-amplitude power law.
|
| static constexpr SampleType | kDefaultFcMinHz = SampleType{40} |
| static constexpr SampleType | kDefaultFcMaxHz = SampleType{12000} |
| static constexpr SampleType | kMinFcHz = SampleType{10} |
| static constexpr SampleType | kMaxFcHz = SampleType{20000} |
| static constexpr double | kDefaultDecayMs = 150.0 |
| static constexpr SampleType | kDefaultDroop = SampleType{0.5} |
| | How much the closing slows as the cell darkens.
|
| static constexpr SampleType | kMaxDroop = SampleType{0.95} |
| static constexpr SampleType | kVelocityCurve = SampleType{0.7} |
| | Velocity-to-strike exponent for idiom 2.
|
template<typename SampleType = float>
class pulp::signal::LpgT< SampleType >
Vactrol-modelled low-pass gate.
template<typename SampleType = float>
Length of the light pulse a strike() produces, at two rise time constants.
This is the parameter that produces idiom 3: a cold strike reaches about 86% of the strike level, and a strike landing on a decaying cell starts from whatever is left, so successive hits in a roll climb. A pulse much longer than the rise time would saturate the cell and the accumulation would vanish.