The two mechanical pitch-modulators of the electric-organ world: a rotary speaker cabinet and the Hammond console's internal scanner vibrato. More...
Go to the source code of this file.
The two mechanical pitch-modulators of the electric-organ world: a rotary speaker cabinet and the Hammond console's internal scanner vibrato.
They wear similar clothes and are different physics, which is why they are one family umbrella and two focused class headers rather than one class with a mode switch:
Nothing in it is one clean sine, and each of those is a separate structural fact rather than a voicing choice:
Stated explicitly rather than omitted: neither engine contains a feedback path. Both are strictly feedforward — modulated delay, parallel reflection taps, an amplitude multiply, and a dry mix. There is no loop for a small-signal gain to accumulate around, so there is nothing to unity-compensate or bound as a loop gain. What the registry needs instead is a CONSTRUCTIVE-SUM bound: the worst case is horn + drum + reflections + dry all peaking together. That bound is measured by the suite's parameter sweep, not estimated — see kWorstCaseGain on each class.
Series law 4 asks every module to state its policy. Neither engine contains an aliasing nonlinearity: the amplitude and directivity multiplies are by band-limited control signals, and the crossover, shelves and delay reads are linear. There is no in-band alias source to suppress, so oversampling would cost cycles and change nothing. The Leslie tube amp's growl IS a nonlinearity and is deliberately out of scope — compose a saturator ahead of this node, where it can carry its own oversampling policy.
prepare() sizes the delay lines and may allocate. set_*, process(), process_block() and reset() never allocate, never lock, and never perform I/O. All buffers are sized in prepare() from the MAXIMUM of every parameter's range, so no later set_* can ask for a read the buffer cannot serve. State is POD; zero-init is a valid stopped cabinet. The only randomness is the optional seeded mechanical drift, rewound by reset() and never automatable (series law 2).
References: Smith, Serafin, Abel & Berners, "Doppler Simulation and the Leslie", Proc. DAFx-02, Hamburg, 2002 — the Doppler-via-modulated-delay method, the rotating-source geometry, the two-delay-line stereo mic model, the angle-dependent directivity filtering, and the first-reflection filters. The speed of sound is the standard dry-air figure from the ideal-gas approximation c ≈ 331.3 + 0.606·T(°C) m/s at 20 °C. Rotor speeds, inertia times, the crossover corner, the scanner rate and the line-box tap topology are documented hardware BEHAVIOUR implemented as named design parameters — see the honest-gap notes on each constant; no service-manual numbers are reproduced.