28 template <
typename... Args>
31 : m_filter(
std::make_shared<Nodes::Filters::FIR>(
std::forward<Args>(args)...))
32 , m_use_internal(true)
39 template <
typename... Args>
42 : m_filter(
std::make_shared<Nodes::Filters::IIR>(
std::forward<Args>(args)...))
43 , m_use_internal(true)
55 void processing_function(std::shared_ptr<Buffer> buffer)
override;
57 void on_attach(std::shared_ptr<Buffer> buffer)
override;
59 [[nodiscard]]
inline std::shared_ptr<Nodes::Filters::Filter>
get_filter()
const
68 m_pending_filter = filter;
72 std::shared_ptr<Nodes::Filters::Filter>
m_filter;
74 bool m_use_internal {};
75 size_t m_current_position = 0;
77 void process_single_sample(
double& sample);
Central computational transformation interface for continuous buffer processing.
std::shared_ptr< Nodes::Filters::Filter > m_pending_filter
FilterProcessor(Args &&... args)
Creates processor with FIR filter.
FilterProcessor(const std::shared_ptr< Nodes::Filters::Filter > &filter)
Creates processor with external filter node.
std::shared_ptr< Nodes::Filters::Filter > get_filter() const
bool is_using_internal() const
std::shared_ptr< Nodes::Filters::Filter > m_filter
FilterProcessor(Args &&... args)
Creates processor with IIR filter.
void update_filter_node(const std::shared_ptr< Nodes::Filters::Filter > &filter)
FilterProcessor()=default
Buffer processor that applies filter nodes to audio data.
Finite Impulse Response filter implementation.
Infinite Impulse Response filter implementation.