33 durationToDiscard * clip.
GetRate() + .5 };
41 clip, durationToDiscard) }
42 , mSource { clip, durationToDiscard, direction }
44 clip.
GetRate(), clip.GetWidth(), mSource,
53 mStretcher->GetSamples(buffers, numSamplesToProduce);
55 return numSamplesToProduce;
EffectDistortionSettings params
size_t limitSampleBufferSize(size_t bufferSize, sampleCount limit)
ClipTimeAndPitchSource mSource
ClipSegment(const ClipInterface &, double durationToDiscard, PlaybackDirection)
size_t GetWidth() const override
The number of channels in the segment.
sampleCount mTotalNumSamplesProduced
std::unique_ptr< TimeAndPitchInterface > mStretcher
size_t GetFloats(float *const *buffers, size_t numSamples) override
Fills buffers with as many as numSamples or the number of remaining samples, whichever is smaller.
bool Empty() const override
Whether the segment has no more samples to provide.
const sampleCount mTotalNumSamplesToProduce
virtual int GetRate() const =0
virtual double GetStretchRatio() const =0
virtual sampleCount GetVisibleSampleCount() const =0
Positions or offsets within audio files need a wide type.
TimeAndPitchInterface::Parameters GetStretchingParameters(const ClipInterface &clip)
sampleCount GetTotalNumSamplesToProduce(const ClipInterface &clip, double durationToDiscard)
double GetRate(const Track &track)