|
| bool | prepare (SampleType sample_rate) noexcept |
| | Set the sample rate in Hz.
|
| bool | prepare (SampleType sample_rate, SampleType frequency_hz) noexcept |
| | Atomically set sample rate and fundamental.
|
| bool | set_frequency (SampleType frequency_hz) noexcept |
| | Set the fundamental in Hz.
|
| SampleType | sample_rate () const noexcept |
| SampleType | frequency () const noexcept |
| int | harmonic_count () const noexcept |
| bool | reset_phase (SampleType phase=SampleType{0}) noexcept |
| | Set normalized phase in [0, 1). Failure leaves state unchanged.
|
| double | phase () const noexcept |
| SampleType | next () noexcept |
| | Render the current phase and advance one sample.
|
template<typename SampleType = float>
class pulp::signal::BlitOscillatorT< SampleType >
Band-limited impulse train evaluated by discrete summation.
With H = floor(Nyquist / frequency), the output is
(1 + 2 sum(k=1..H, cos(2 pi k phase))) / (2 H + 1)
evaluated in its closed Dirichlet-kernel form. The normalization gives a unit impulse limit while retaining only DC and the positive/negative partial pairs whose positive member does not exceed Nyquist. The phase path owns fixed scalar state only; prepare, control, reset, and render operations are allocation-free, lock-free, deterministic, and noexcept.