15namespace tracktion {
inline namespace engine
18class TimeRangeRemappingReader;
19class EditToClipBeatReader;
20class EditToClipTimeReader;
22class PitchAdjustReader;
23class SpeedFadeEditReader;
50 TimeRange loopSection,
57 bool isOfflineRender);
67 TimeRange editPosition, loopSection;
69 double originalSpeedRatio = 0, outputSampleRate = 44100.0;
71 bool isOfflineRender =
false;
76 double audioFileSampleRate = 0;
85 bool updateFileSampleRate();
86 void replaceChannelStateIfPossible (
NodeGraph*,
int numChannelsToUse);
87 void replaceChannelStateIfPossible (
WaveNode&,
int numChannelsToUse);
115 TimeRange loopSection,
122 bool isOfflineRender,
127 TimeStretcher::ElastiqueProOptions = {},
128 float pitchChangeSemitones = 0.0f,
155 BeatRange loopSection,
161 bool isOfflineRender,
166 tempo::Sequence sourceFileTempoMap,
169 float pitchChangeSemitones = 1.0f,
186 BeatRange editPositionBeats, loopSectionBeats;
188 TimeRange editPositionTime, loopSectionTime;
190 const double speedRatio = 1.0;
192 const bool isOfflineRender =
false;
203 float pitchChangeSemitones = 0.0;
204 double outputSampleRate = 44100.0;
205 int outputBlockSize = 0;
206 bool isFirstBlock =
false;
209 size_t stateHash = 0;
223 bool buildAudioReaderGraph();
224 void replaceStateIfPossible (
NodeGraph*);
242 for (
const auto& p :
w)
Mode
Holds the various algorithms to which can be used (if enabled).
@ defaultMode
Default mode.
Base class for Nodes that provides information about the current process call.
An Node that plays back a wave file.
bool isReadyToProcess() override
Should return true when this node is ready to be processed.
SyncTempo
Represets whether the file should try and match Edit tempo changes.
graph::NodeProperties getNodeProperties() override
Should return the properties of the node.
void prepareToPlay(const graph::PlaybackInitialisationInfo &) override
Called once before playback begins for each node.
void setDynamicOffsetBeats(BeatDuration) override
Sets an offset to be applied to all times in this node, effectively shifting it forwards or backwards...
SyncPitch
Represets whether the file should try and match Edit pitch changes.
void process(ProcessContext &) override
Called when the node is to be processed.
ReadAhead
Whether or not to use a background thread to read ahead the time-stretch buffer.
An Node that plays back a wave file.
tracktion::graph::NodeProperties getNodeProperties() override
Should return the properties of the node.
void process(ProcessContext &) override
Called when the node is to be processed.
void prepareToPlay(const tracktion::graph::PlaybackInitialisationInfo &) override
Called once before playback begins for each node.
bool isReadyToProcess() override
Should return true when this node is ready to be processed.
Main graph Node processor class.
Struct to describe a single iteration of a process call.
ResamplingQuality
Specifies a number of resampling qualities that can be used.
@ lagrange
Lagrange interpolation.
void hash_combine(size_t &seed, const T &v)
Hashes a type with a given seed, modifying the seed.
Represents a duration in beats.
Represents a duration in real-life time.
Represents a position in real-life time.
ID for objects of type EditElement - e.g.
Provides a thread-safe way to share a clip's levels with an audio engine without worrying about the C...
Holds the state of a process call.
Describes the time and type of the speed fade in/outs.
A set of options that can be used in conjunction with the elastiquePro Mode to fine tune the algorith...
Holds a graph in an order ready for processing and a sorted map for quick lookups.
Holds some really basic properties of a node.
Passed into Nodes when they are being initialised, to give them useful contextual information that th...