11namespace tracktion {
inline namespace engine
24 AudioFile targetFile (clip.edit.engine, destination);
26 if (
auto ptr = clip.edit.engine.getRenderManager().getRenderJobWithoutCreating (targetFile))
42 if (proxyInfo !=
nullptr)
47 if (sourceInfo.metadata.
getValue (
"MetaDataSource",
"None") ==
"AIFF")
48 sourceInfo.metadata.
clear();
51 sourceInfo.numChannels, sourceInfo.sampleRate,
53 sourceInfo.metadata, 0);
55 success = writer.
isOpen() && proxyInfo->render (engine, source, writer,
this, progress);
61 source.getFile().copyFileTo (proxy.getFile());
72 : Job (clip.edit.engine, destination), source (clip.edit.engine, sourceFile)
74 auto tm = clip.getTimeStretchMode();
76 proxyInfo->audioSegmentList = AudioSegmentList::create (clip);
77 proxyInfo->clipTime = { {}, clip.getWarpTimeManager().getWarpEndMarkerTime() };
78 proxyInfo->speedRatio = 1.0;
80 ? tm : TimeStretcher::defaultMode;
String getValue(StringRef, const String &defaultReturnValue) const
bool shouldExit() const noexcept
Base class for Clips that produce some kind of audio e.g.
Smart wrapper for writing to an audio file.
bool isOpen() const noexcept
Returns true if the file is open and ready to write to.
AudioFileFormatManager & getAudioFileFormatManager() const
Returns the AudioFileFormatManager that maintains a list of available audio file formats.
The base class that all generator jobs derive from.
@ disabled
No algorithm enabled.
@ melodyne
Melodyne, only used for clip timestretching.
bool completeRender() override
This is called once after all the render blocks have completed.
bool renderNextBlock() override
During a render process this will be repeatedly called.
bool setUpRender() override
Subclasses should override this to set-up their render process.
constexpr Type jmax(Type a, Type b)
#define CRASH_TRACER
This macro adds the current location to a stack which gets logged if a crash happens.