28 #include "rubberband/RubberBandStretcher.h" 49 std::vector<Buffer> m_deinterleaved;
54 std::vector<sample_t*> m_channelData;
95 TimeStretchPitchScaleReader(std::shared_ptr<IReader> reader,
double timeRatio,
double pitchScale, StretcherQuality quality,
bool preserveFormant);
97 virtual void read(
int& length,
bool& eos,
sample_t* buffer);
99 virtual void seek(
int position);
100 virtual int getLength()
const;
101 virtual int getPosition()
const;
107 double getTimeRatio()
const;
112 void setTimeRatio(
double timeRatio);
118 double getPitchScale()
const;
123 void setPitchScale(
double pitchScale);
#define AUD_NAMESPACE_BEGIN
Opens the audaspace namespace aud.
Definition: Audaspace.h:116
#define AUD_API
Used for exporting symbols in the shared library.
Definition: Audaspace.h:93
This reader is a base class for all effect readers that take one other reader as input.
Definition: EffectReader.h:35
This class reads from another reader and applies time-stretching and pitch scaling.
Definition: TimeStretchPitchScaleReader.h:38
This class is a simple buffer in RAM which is 32 Byte aligned and provides resize functionality...
Definition: Buffer.h:33
int m_position
The current position.
Definition: TimeStretchPitchScaleReader.h:79
The TimeStretchPitchScale class.
float sample_t
Sample type.(float samples)
Definition: Audaspace.h:126
#define AUD_NAMESPACE_END
Closes the audaspace namespace aud.
Definition: Audaspace.h:119
bool m_finishedReader
Whether the reader has reached the end of stream.
Definition: TimeStretchPitchScaleReader.h:84
std::unique_ptr< RubberBandStretcher > m_stretcher
Rubberband stretcher.
Definition: TimeStretchPitchScaleReader.h:74