KFR_SINTRIN expression_pointer<T> make_kfilter(int samplerate) { const biquad_params<T> bq[] = { biquad_highshelf(T(1681.81 / samplerate), T(+4.0)), biquad_highpass(T(38.1106678246655 / samplerate), T(0.5)).normalized_all() }; return to_pointer(biquad(bq, placeholder<T>())); }
KFR_INTRINSIC internal::expression_biquads<1, T, E1> dcremove(E1&& e1, double cutoff = 0.00025) { const biquad_params<T> bqs[1] = { biquad_highpass(cutoff, 0.5) }; return internal::expression_biquads<1, T, E1>(bqs, std::forward<E1>(e1)); }