39 virtual void filter(
vd &inout)
override final;
41 void reset() override final;
42 std::unique_ptr<
Filter>
clone() const override final;
62 std::vector<SeriesBiquad> _filters;
65 mutable std::mutex
_mtx;
85 _filters(std::move(filters)),_gains(std::move(gains)) {}
93 void setGains(
const vd& gains);
102 virtual void filter(
vd &inout)
override final;
104 void reset() override final;
105 std::unique_ptr<
Filter>
clone() const override final;
Multiple biquad filters in parallel, each multiplied with a gain value, and finally all added togethe...
us nfilters() const
Returns the number of Filters.
BiquadBank(std::vector< SeriesBiquad > filters, vd gains)
Construct biquad bank from already given set of series biquad filters and gain values.
Filter used to pre-filter a double-precision floating point data stream.
Simple wrapper around BS::thread_pool that makes a BS::thread_pool a singleton, such that a thread po...
A set of Biquad filters in series.
virtual void filter(vd &inout) override final
Filter input, and provides output in same array as input.
static SeriesBiquad firstOrderHighPass(const d fs, const d cuton_Hz)
Create a SeriesBiquad object for a first order high-pass filter.
void reset() override final
Reset filter state to 0 (history was all-zero).
std::unique_ptr< Filter > clone() const override final
Clone a filter, to generate a copy.
virtual ~SeriesBiquad() override
std::mutex _mtx
Global mutex, used to restrict the pool creation to a single thread at once.
size_t us
We often use boolean values.