58 while (ditherers.size() < num)
61 for (
auto& d : ditherers)
69 for (
int i = 0; i < numChannels; ++i)
70 ditherers.getReference (i).process (buffer.
getWritePointer (i), numSamples);
77 Renderer::RenderTask& owner;
78 Renderer::Parameters r, originalParams;
79 bool needsToNormaliseAndTrim =
false;
86 int numOutputChans = 0;
88 Plugin::Array plugins;
93 MidiMessageArray midiBuffer;
95 const float thresholdForStopping { dbToGain (-70.0f) };
96 TimeDuration blockLength;
97 int numPreRenderBlocks = 0;
98 int numLatencySamplesToDrop = 0;
99 int realTimePerBlock = 0;
102 static const int sleepCounterMax = 100;
103 int sleepCounter = 0;
110 TimePosition streamTime;
113 bool hasStartedSavingToFile = 0;
114 int64_t samplesToWrite = 0, numSamplesWrittenToSource = 0;
120 enum class WriteResult
126 WriteResult writeAudioBlock (choc::buffer::ChannelArrayView<float>);
Holds the state of an audio render procedure so it can be rendered in blocks.
static juce::String renderMidi(Renderer::RenderTask &, Renderer::Parameters &, std::unique_ptr< tracktion::graph::Node >, std::unique_ptr< tracktion::graph::PlayHead >, std::unique_ptr< tracktion::graph::PlayHeadState >, std::unique_ptr< ProcessState >, std::atomic< float > &progressToUpdate)
Renders the MIDI of an Edit to a sequence.
bool renderNextBlock(std::atomic< float > &progressToUpdate)
Renders the next block of audio.
juce::Result getStatus() const noexcept
Returns the opening status of the render.