45 NodeSourceProcessor(std::shared_ptr<Nodes::Node> node,
float mix = 0.5F,
bool clear_before_process =
true);
56 void processing_function(
const std::shared_ptr<Buffer>& buffer)
override;
68 [[nodiscard]]
inline float get_mix()
const {
return m_mix; }
70 void on_attach(
const std::shared_ptr<Buffer>& buffer)
override;
72 void on_detach(
const std::shared_ptr<Buffer>& buffer)
override;
98 std::vector<double> get_node_data(uint32_t num_samples);
133 NodeBuffer(uint32_t channel_id, uint32_t num_samples, std::shared_ptr<Nodes::Node> source,
bool clear_before_process =
true);
156 void process_default()
override;
166 std::shared_ptr<BufferProcessor> create_default_processor()
override;
static MayaFlux::Nodes::ProcessingToken token
Concrete audio implementation of the Buffer interface for double-precision audio data.
Central computational transformation interface for continuous buffer processing.
void set_clear_before_process(bool value)
Sets whether to reset the buffer before processing node output.
bool get_clear_before_process() const
Gets whether the buffer is reset before processing node output.
std::shared_ptr< Nodes::Node > m_source_node
Source node that generates sequential data values.
bool m_clear_before_process
Whether to reset the buffer before adding node output.
Specialized buffer that automatically captures output from computational nodes.
void set_mix(float mix)
Sets the interpolation coefficient between existing and incoming data.
bool m_clear_before_process
Whether to reset the buffer before adding node output.
float m_mix
Interpolation coefficient between existing and incoming data (0.0-1.0)
std::shared_ptr< Nodes::Node > m_node
Source node that generates sequential data values.
float get_mix() const
Gets the current interpolation coefficient.
Processor that bridges computational nodes and data buffers.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
Contains the node-based computational processing system components.
std::vector< double > mix(const std::vector< std::vector< double > > &streams)
Mix multiple data streams with equal weighting.