Audaspace 1.8.0
A high level audio library.
Loading...
Searching...
No Matches
AnimateableTimeStretchPitchScaleReader Class Reference

This class reads from another reader and applies time-stretching and pitch scaling with support for animating both properties. More...

#include <AnimateableTimeStretchPitchScaleReader.h>

Inheritance diagram for AnimateableTimeStretchPitchScaleReader:

Public Member Functions

 AnimateableTimeStretchPitchScaleReader (std::shared_ptr< IReader > reader, float fp, std::shared_ptr< AnimateableProperty > timeStretch, std::shared_ptr< AnimateableProperty > pitchScale, StretcherQuality quality, bool preserveFormant)
 Creates a new animateable time-stretch, pitch scale reader.
virtual void read (int &length, bool &eos, sample_t *buffer) override
 Request to read the next length samples out of the source.
virtual void seek (int position) override
 Seeks to a specific position in the source.
Public Member Functions inherited from TimeStretchPitchScaleReader
 TimeStretchPitchScaleReader (std::shared_ptr< IReader > reader, double timeRatio, double pitchScale, StretcherQuality quality, bool preserveFormant)
 Creates a new stretcher reader.
virtual int getLength () const
 Returns an approximated length of the source in samples.
virtual int getPosition () const
 Returns the position of the source as a sample count value.
double getTimeRatio () const
 Retrieves the current time ratio for the stretcher.
void setTimeRatio (double timeRatio)
 Sets the time ratio for the stretcher.
double getPitchScale () const
 Retrieves the pitch scale for the stretcher.
void setPitchScale (double pitchScale)
 Sets the pitch scale for the stretcher.
Public Member Functions inherited from EffectReader
 EffectReader (std::shared_ptr< IReader > reader)
 Creates a new effect reader.
virtual ~EffectReader ()
 Destroys the reader.
virtual bool isSeekable () const
 Tells whether the source provides seeking functionality or not.
virtual Specs getSpecs () const
 Returns the specification of the reader.
Public Member Functions inherited from IReader
virtual ~IReader ()
 Destroys the reader.

Additional Inherited Members

Protected Member Functions inherited from TimeStretchPitchScaleReader
void reset ()
 Feeds the number of required zero samples to the stretcher and queries the amount of samples to drop.
Protected Attributes inherited from TimeStretchPitchScaleReader
std::unique_ptr< RubberBandStretcher > m_stretcher
 Rubberband stretcher.
int m_position
 The current position.
bool m_finishedReader
 Whether the reader has reached the end of stream.
Protected Attributes inherited from EffectReader
std::shared_ptr< IReaderm_reader
 The reader to read from.

Detailed Description

This class reads from another reader and applies time-stretching and pitch scaling with support for animating both properties.

Constructor & Destructor Documentation

◆ AnimateableTimeStretchPitchScaleReader()

AnimateableTimeStretchPitchScaleReader::AnimateableTimeStretchPitchScaleReader ( std::shared_ptr< IReader > reader,
float fp,
std::shared_ptr< AnimateableProperty > timeStretch,
std::shared_ptr< AnimateableProperty > pitchScale,
StretcherQuality quality,
bool preserveFormant )

Creates a new animateable time-stretch, pitch scale reader.

Parameters
readerThe input reader.
fpsThe FPS of the animation system.
timeStretchThe animateable time-stretch property.
pitchScaleThe animateable pitch-scale property.
qualityThe stretcher quality options.
preserveFormantWhether to preserve vocal formants.

Member Function Documentation

◆ read()

virtual void AnimateableTimeStretchPitchScaleReader::read ( int & length,
bool & eos,
sample_t * buffer )
overridevirtual

Request to read the next length samples out of the source.

The buffer supplied has the needed size.

Parameters
[in,out]lengthThe count of samples that should be read. Shall contain the real count of samples after reading, in case there were only fewer samples available. A smaller value also indicates the end of the reader.
[out]eosEnd of stream, whether the end is reached or not.
[in]bufferThe pointer to the buffer to read into.

Reimplemented from TimeStretchPitchScaleReader.

◆ seek()

virtual void AnimateableTimeStretchPitchScaleReader::seek ( int position)
overridevirtual

Seeks to a specific position in the source.

Parameters
positionThe position to seek for measured in samples. To get from a given time to the samples you simply have to multiply the time value in seconds with the sample rate of the reader.
Warning
This may work or not, depending on the actual reader.

Reimplemented from TimeStretchPitchScaleReader.


The documentation for this class was generated from the following file: