TracktionEngine
|
Node for processing a plugin. More...
Public Member Functions | |
PluginNode (std::unique_ptr< Node > input, tracktion::engine::Plugin::Ptr, double sampleRateToUse, int blockSizeToUse, const TrackMuteState *, ProcessState &, bool rendering, bool balanceLatency, int maxNumChannelsToUse) | |
Creates a PluginNode to process a plugin on a Track. More... | |
~PluginNode () override | |
Destructor. More... | |
Plugin & | getPlugin () |
tracktion::graph::NodeProperties | getNodeProperties () override |
Should return the properties of the node. More... | |
std::vector< Node * > | getDirectInputNodes () override |
Should return all the inputs directly feeding in to this node. More... | |
bool | isReadyToProcess () override |
Should return true when this node is ready to be processed. More... | |
void | prepareToPlay (const tracktion::graph::PlaybackInitialisationInfo &) override |
Called once before playback begins for each node. More... | |
void | prefetchBlock (juce::Range< int64_t >) override |
Called before once on all Nodes before they are processed. More... | |
void | process (ProcessContext &) override |
Called when the node is to be processed. More... | |
Public Member Functions inherited from tracktion::graph::Node | |
Node ()=default | |
virtual | ~Node ()=default |
void | initialise (const PlaybackInitialisationInfo &) |
Call once after the graph has been constructed to initialise buffers etc. More... | |
void | prepareForNextBlock (juce::Range< int64_t > referenceSampleRange) |
Call before processing the next block, used to reset the process status. More... | |
void | process (choc::buffer::FrameCount numSamples, juce::Range< int64_t > referenceSampleRange) |
Call to process the node, which will in turn call the process method with the buffers to fill. More... | |
bool | hasProcessed () const |
Returns true if this node has processed and its outputs can be retrieved. More... | |
AudioAndMidiBuffer | getProcessedOutput () |
Returns the processed audio and MIDI output. More... | |
virtual TransformResult | transform (Node &, const std::vector< Node * > &, TransformCache &) |
Called after construction to give the node a chance to modify its topology. More... | |
virtual std::vector< Node * > | getInternalNodes () |
Can return Nodes that are internal to this Node but don't make up the main graph constructed from getDirectInputNodes(). More... | |
void | retain () |
Retains the buffers so they won't be deallocated after the Node has processed. More... | |
void | release () |
Releases the buffers allowing internal storage to be deallocated. More... | |
virtual size_t | getAllocatedBytes () const |
Public Member Functions inherited from tracktion::engine::TracktionEngineNode | |
TracktionEngineNode (ProcessState &) | |
Creates a TracktionEngineNode. More... | |
virtual | ~TracktionEngineNode ()=default |
Destructor. More... | |
int | getNumSamples () const |
Returns the number of samples in the current process block. More... | |
double | getSampleRate () const |
Returns the sample rate of the current process block. More... | |
juce::Range< int64_t > | getTimelineSampleRange () const |
Returns the timeline sample range of the current process block. More... | |
TimeRange | getEditTimeRange () const |
Returns the edit time range of the current process block. More... | |
BeatRange | getEditBeatRange () const |
Returns the edit beat range of the current process block. More... | |
juce::Range< int64_t > | getReferenceSampleRange () const |
Returns the reference sample range (from the DeviceManager) of the current process block. More... | |
tempo::Key | getKey () const |
Returns the key of the current process block. More... | |
double | getPlaybackSpeedRatio () const |
Returns the playback speed ratio of the current process block. More... | |
std::optional< TimePosition > | getTimeOfNextChange () const |
May return the time of the next tempo or time sig change. More... | |
std::optional< BeatPosition > | getBeatOfNextChange () const |
May return the time of the next tempo or time sig change. More... | |
tracktion::graph::PlayHeadState & | getPlayHeadState () |
Returns the PlayHeadState in use. More... | |
tracktion::graph::PlayHead & | getPlayHead () |
Returns the PlayHead in use. More... | |
ProcessState & | getProcessState () |
Returns the ProcessState in use. More... | |
void | setProcessState (ProcessState &) |
Additional Inherited Members | |
Public Attributes inherited from tracktion::graph::Node | |
void * | internal = nullptr |
int | numOutputNodes = -1 |
Protected Member Functions inherited from tracktion::graph::Node | |
void | setOptimisations (NodeOptimisations) |
This can be called to provide some hints about allocating or playing back a Node to improve efficiency. More... | |
void | setAudioOutput (Node *sourceNode, const choc::buffer::ChannelArrayView< float > &) |
This can be called during your process function to set a view to the output. More... | |
Node for processing a plugin.
tracktion::engine::PluginNode::PluginNode | ( | std::unique_ptr< Node > | input, |
tracktion::engine::Plugin::Ptr | , | ||
double | sampleRateToUse, | ||
int | blockSizeToUse, | ||
const TrackMuteState * | , | ||
ProcessState & | , | ||
bool | rendering, | ||
bool | balanceLatency, | ||
int | maxNumChannelsToUse | ||
) |
Creates a PluginNode to process a plugin on a Track.
const | TrackMuteState* The optional TrackMuteState to use |
ProcessState | The ProcessState for playhead access and time mapping |
rendering | Should be true if this is an offline render |
balanceLatency | If set to true, this creates a copy of the dry input and delays it by the plugin's latency and uses this when the plugin is bypassed to avoid changes in latency |
maxNumChannelsToUse | Limits the maximum number of channels to use, set this to -1 to disable limitations |
|
override |
Destructor.
Plugin& tracktion::engine::PluginNode::getPlugin | ( | ) |
|
overridevirtual |
Should return the properties of the node.
This should not be called until after initialise.
Implements tracktion::graph::Node.
|
overridevirtual |
Should return all the inputs directly feeding in to this node.
Reimplemented from tracktion::graph::Node.
|
overridevirtual |
Should return true when this node is ready to be processed.
This is usually when its input's output buffers are ready.
Implements tracktion::graph::Node.
|
overridevirtual |
Called once before playback begins for each node.
Use this to allocate buffers etc. This step can be used to modify the topology of the graph (i.e. add/remove nodes). However, if you do this, you must make sure to call initialise on them so they are fully prepared for processing.
Reimplemented from tracktion::graph::Node.
|
overridevirtual |
Called before once on all Nodes before they are processed.
This can be used to prefetch audio data or update mute statuses etc..
Reimplemented from tracktion::graph::Node.
|
overridevirtual |
Called when the node is to be processed.
This should add in to the buffers available making sure not to change their size at all.
Implements tracktion::graph::Node.