29 for (
auto r : muteTimes)
31 if (r.overlaps (editTime))
33 auto mute = r.getIntersectionWith (editTime);
41 else if (editTime.contains (mute))
43 auto startSample = timeToSample (rc, mute.getStart() - editTime.getStart());
44 auto numSamples = timeToSample (rc, mute.getEnd() - mute.getStart());
45 muteBuffer (rc, startSample, numSamples);
47 else if (mute.getEnd() <= editTime.getEnd())
49 muteBuffer (rc, 0, timeToSample (rc, editTime.getEnd() - mute.getEnd()));
51 else if (mute.getStart() >= editTime.getStart())
53 auto startSample = timeToSample (rc, mute.getStart() - editTime.getStart());
59 if (r.getEnd() >= editTime.getEnd())
66 input->renderOver (rc);
68 if (renderingNeeded (rc))
69 invokeSplitRender (rc, *
this);
74 if (renderingNeeded (rc))
77 input->renderAdding (rc);
int bufferNumSamples
The number of samples to write into the audio buffer.
int bufferStartSample
The index of the start point in the audio buffer from which data must be written.
PlayHead & playhead
The playhead provides information about current time, tempo etc at the block being rendered.
juce::AudioBuffer< float > * destBuffer
The target audio buffer which needs to be filled.
legacy::EditTimeRange streamTime
The time window which needs to be rendered into the current block.