24 std::function<void(std::function<
void(
double)>)>;
38 size_t GetFloats(
float*
const* buffers,
size_t numSamples)
override;
39 bool Empty()
const override;
48 std::atomic<bool> mUpdateFormantPreservation =
false;
49 std::atomic<bool> mUpdateCentShift =
false;
std::function< void(std::function< void(double)>)> PitchRatioChangeCbSubscriber
A generalization for audio segments, whether clips or silence between clips.
virtual size_t GetFloats(float *const *buffers, size_t numSamples)=0
Fills buffers with as many as numSamples or the number of remaining samples, whichever is smaller.
virtual bool Empty() const =0
Whether the segment has no more samples to provide.
virtual size_t NChannels() const =0
The number of channels in the segment.
Observer::Subscription mOnSemitoneShiftChangeSubscription
ClipTimeAndPitchSource mSource
std::unique_ptr< TimeAndPitchInterface > mStretcher
Observer::Subscription mOnFormantPreservationChangeSubscription
const sampleCount mTotalNumSamplesToProduce
A move-only handle representing a connection to a Publisher.
Positions or offsets within audio files need a wide type.