tracktion-engine 3.0-10-g034fdde4aa5
Tracktion Engine — High level data model for audio applications

« « « Anklang Documentation
Loading...
Searching...
No Matches
tracktion_ModifierNode.h
Go to the documentation of this file.
1 /*
2 ,--. ,--. ,--. ,--.
3 ,-' '-.,--.--.,--,--.,---.| |,-.,-' '-.`--' ,---. ,--,--, Copyright 2024
4 '-. .-'| .--' ,-. | .--'| /'-. .-',--.| .-. || \ Tracktion Software
5 | | | | \ '-' \ `--.| \ \ | | | |' '-' '| || | Corporation
6 `---' `--' `--`--'`---'`--'`--' `---' `--' `---' `--''--' www.tracktion.com
7
8 Tracktion Engine uses a GPL/commercial licence - see LICENCE.md for details.
9*/
10
11#pragma once
12
13namespace tracktion { inline namespace engine
14{
15
16class TrackMuteState;
17
22{
23public:
24 //==============================================================================
33 double sampleRateToUse, int blockSizeToUse,
34 const TrackMuteState*,
35 tracktion::graph::PlayHeadState&, bool rendering);
36
43 double sampleRateToUse, int blockSizeToUse,
45
47 ~ModifierNode() override;
48
49 //==============================================================================
50 Modifier& getModifier() { return *modifier; }
51
52 //==============================================================================
54 std::vector<Node*> getDirectInputNodes() override { return { input.get() }; }
55 bool isReadyToProcess() override { return input->hasProcessed(); }
57 void process (ProcessContext&) override;
58
59private:
60 //==============================================================================
63 std::shared_ptr<InputProvider> audioRenderContextProvider;
64
65 const TrackMuteState* trackMuteState = nullptr;
66 tracktion::graph::PlayHeadState* playHeadState = nullptr;
67 bool isRendering = false;
68
69 bool isInitialised = false;
70 double sampleRate = 44100.0;
72 TimeDuration automationAdjustmentTime;
73
74 //==============================================================================
75 void initialiseModifier (double sampleRateToUse, int blockSizeToUse);
77};
78
79}} // namespace tracktion { inline namespace engine
Node for processing a Modifier.
void prepareToPlay(const tracktion::graph::PlaybackInitialisationInfo &) override
Called once before playback begins for each node.
void process(ProcessContext &) override
Called when the node is to be processed.
std::vector< Node * > getDirectInputNodes() override
Should return all the inputs directly feeding in to this node.
tracktion::graph::NodeProperties getNodeProperties() override
Should return the properties of the node.
bool isReadyToProcess() override
Should return true when this node is ready to be processed.
Holds the state of a Track and if its contents/plugins should be played or not.
Main graph Node processor class.
Determines how this block releates to other previous render blocks and if the play head has jumped in...
T get(T... args)
Represents a duration in real-life time.
Bass class for parameter Modifiers.
The context passed to plugin render methods to provide it with buffers to fill.
Holds some really basic properties of a node.
Passed into Nodes when they are being initialised, to give them useful contextual information that th...