Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
zrythm::dsp::graph::IProcessable Class Referenceabstract

Interface for objects that can be processed in the DSP graph. More...

#include <src/dsp/graph_node.h>

Inheritance diagram for zrythm::dsp::graph::IProcessable:

Public Member Functions

virtual utils::Utf8String get_node_name () const =0
 Returns a human friendly name of the node.
virtual nframes_t get_single_playback_latency () const
 Returns the latency of only the given processable, without adding the previous/next latencies.
virtual void prepare_for_processing (const GraphNode *node, units::sample_rate_t sample_rate, nframes_t max_block_length)
 Called to allocate resources required for processing.
virtual void process_block (EngineProcessTimeInfo time_nfo, const dsp::ITransport &transport) noexcept
virtual void release_resources ()
 Called to release resources allocated by prepare_for_processing().

Detailed Description

Interface for objects that can be processed in the DSP graph.

The IProcessable interface defines the basic functionality required for objects that can be processed as part of the DSP graph. It provides methods to get the node name, the single playback latency, and to process the block of audio/MIDI data.

Implementations of this interface are expected to be used as nodes in the DSP graph, where they will be processed during the audio/MIDI processing cycle.

Definition at line 52 of file graph_node.h.

Constructor & Destructor Documentation

◆ ~IProcessable()

virtual zrythm::dsp::graph::IProcessable::~IProcessable ( )
inlinevirtual

Definition at line 55 of file graph_node.h.

Member Function Documentation

◆ get_node_name()

virtual utils::Utf8String zrythm::dsp::graph::IProcessable::get_node_name ( ) const
pure virtual

◆ get_single_playback_latency()

virtual nframes_t zrythm::dsp::graph::IProcessable::get_single_playback_latency ( ) const
inlinevirtual

Returns the latency of only the given processable, without adding the previous/next latencies.

Reimplemented in zrythm::dsp::Port, zrythm::engine::session::SampleProcessor, zrythm::plugins::CarlaNativePlugin, zrythm::plugins::ClapPlugin, and zrythm::plugins::JucePlugin.

Definition at line 66 of file graph_node.h.

◆ prepare_for_processing()

virtual void zrythm::dsp::graph::IProcessable::prepare_for_processing ( const GraphNode * node,
units::sample_rate_t sample_rate,
nframes_t max_block_length )
inlinevirtual

Called to allocate resources required for processing.

Parameters
nodeThe node in the processing graph. Null means we are processing outside of a graph context and must be handled gracefully.
sample_rate
max_block_length

Reimplemented in zrythm::dsp::AudioPort, zrythm::dsp::CVPort, zrythm::dsp::MidiPort, zrythm::dsp::ProcessorBase, and zrythm::dsp::ProcessorParameter.

Definition at line 79 of file graph_node.h.

◆ process_block()

virtual void zrythm::dsp::graph::IProcessable::process_block ( EngineProcessTimeInfo time_nfo,
const dsp::ITransport & transport )
inlinevirtualnoexcept

◆ release_resources()

virtual void zrythm::dsp::graph::IProcessable::release_resources ( )
inlinevirtual

Called to release resources allocated by prepare_for_processing().

This may be called multiple times.

Reimplemented in zrythm::dsp::AudioPort, zrythm::dsp::CVPort, zrythm::dsp::MidiPort, zrythm::dsp::ProcessorBase, and zrythm::dsp::ProcessorParameter.

Definition at line 96 of file graph_node.h.


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