MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Buffers::FeedbackProcessor Class Reference

Processor implementing delay-line feedback via HistoryBuffer. More...

#include <FeedbackBuffer.hpp>

+ Inheritance diagram for MayaFlux::Buffers::FeedbackProcessor:
+ Collaboration diagram for MayaFlux::Buffers::FeedbackProcessor:

Public Member Functions

 FeedbackProcessor (float feedback=0.5F, uint32_t feed_samples=512)
 Construct feedback processor.
 
void processing_function (const std::shared_ptr< Buffer > &buffer) override
 The core processing function that must be implemented by derived classes.
 
void on_attach (const std::shared_ptr< Buffer > &buffer) override
 Called when this processor is attached to a buffer.
 
void on_detach (const std::shared_ptr< Buffer > &buffer) override
 Called when this processor is detached from a buffer.
 
void set_feedback (float amount)
 Set feedback coefficient.
 
float get_feedback () const
 Get feedback coefficient.
 
void set_feed_samples (uint32_t samples)
 Set delay length in samples.
 
uint32_t get_feed_samples () const
 Get delay length in samples.
 
- Public Member Functions inherited from MayaFlux::Buffers::BufferProcessor
virtual ~BufferProcessor ()=default
 Virtual destructor for proper cleanup of derived classes.
 
void process (const std::shared_ptr< Buffer > &buffer)
 Applies a computational transformation to the data in the provided buffer.
 
virtual void set_processing_token (ProcessingToken token)
 Gets the preferred processing backend for this processor.
 
virtual ProcessingToken get_processing_token () const
 Gets the current processing token for this buffer.
 
virtual bool is_compatible_with (const std::shared_ptr< Buffer > &) const
 Checks if this processor can handle the specified buffer type.
 

Private Attributes

float m_feedback_amount
 
uint32_t m_feed_samples
 
Memory::HistoryBuffer< double > m_history
 
Memory::HistoryBuffer< double > * m_active_history { nullptr }
 

Additional Inherited Members

- Protected Attributes inherited from MayaFlux::Buffers::BufferProcessor
ProcessingToken m_processing_token { ProcessingToken::AUDIO_BACKEND }
 

Detailed Description

Processor implementing delay-line feedback via HistoryBuffer.

Applies a simple delay-line feedback algorithm: output[n] = input[n] + feedback_amount * delayed_sample

When attached to a FeedbackBuffer, uses its internal HistoryBuffer. When attached to any other AudioBuffer, maintains its own HistoryBuffer.

For filtering in the feedback loop (lowpass damping, etc.), chain a FilterProcessor after this processor rather than embedding filter logic.

Definition at line 99 of file FeedbackBuffer.hpp.


The documentation for this class was generated from the following files: