|
| | SixBandEqT () |
| void | prepare (SampleType sample_rate) |
| | Set the processing rate, re-clamp controls, derive coefficients, and clear all recursive history.
|
| void | set_transition_samples (std::size_t samples) |
| | Set the length of future coefficient transitions.
|
| std::size_t | transition_samples () const |
| bool | transition_active (std::size_t channel) const |
| bool | transition_active () const |
| bool | set_band (std::size_t band, Parameters parameters) |
| | Change one band's plain-domain controls without clearing filter state.
|
| void | set_bands (const std::array< Parameters, band_count > ¶meters) |
| | Atomically request all six bands.
|
| Parameters | band (std::size_t index) const |
| | Effective controls.
|
| SampleType | sample_rate () const |
| Coefficients | coefficients (std::size_t band) const |
| | Exact normalized coefficients at the latest requested transition endpoint.
|
| SampleType | process (SampleType input, std::size_t channel=0) |
| | Process one sample. An invalid channel fails transparent.
|
| bool | process_block (SampleType *samples, std::size_t frames, std::size_t channel=0) |
| | Process one caller-owned channel in place.
|
| void | reset () |
| | Clear recursive history while preserving rate and effective controls.
|
| double | magnitude (double frequency_hz) const |
| | Linear magnitude of the requested endpoint coefficient cascade.
|
| double | magnitude_db (double frequency_hz) const |
| | Decibel magnitude of the requested endpoint cascade, floored at -200 dB.
|
| void | response_curve_db (double min_hz, double max_hz, std::span< SampleType > output) const |
| | Fill caller-owned storage with a log-spaced response.
|
template<typename SampleType = float, std::size_t Channels = 2>
class pulp::signal::SixBandEqT< SampleType, Channels >
A low shelf, four peaking sections, and a high shelf in series.
The template's channel count is fixed so prepare, control changes, process, reset, and response inspection never allocate. Controls are plain-domain values intended to be changed between blocks. The default zero-sample transition preserves the legacy demo's immediate coefficient replacement. An opt-in transition crossfades two complete stable cascades; recursive coefficients are never interpolated. Both paths preserve filter history.
template<typename SampleType = float, std::size_t Channels = 2>
Set the processing rate, re-clamp controls, derive coefficients, and clear all recursive history.
Rates too low to represent the public 20 Hz floor, or non-finite rates, select the 48 kHz safe default.
template<typename SampleType = float, std::size_t Channels = 2>
| bool pulp::signal::SixBandEqT< SampleType, Channels >::process_block |
( |
SampleType * | samples, |
|
|
std::size_t | frames, |
|
|
std::size_t | channel = 0 ) |
|
inline |
Process one caller-owned channel in place.
A null buffer with a non-zero frame count or an invalid channel is rejected without changing state.
A coefficient transition runs sample by sample; once none is pending, the rest of the block runs the six sections through Filter::process_chain(), which matches the sample path to the Biquad block path's accuracy contract (see BiquadT::process_chain()).