pl-nk v0.4.5
Plonk|Plink|Plank are a set of cross-platform C/C++ frameworks for audio software development
Public Member Functions | Static Public Member Functions
AudioFileReader Class Reference

Audio file reader. More...

Inherits SmartPointerContainer< SmartPointerType, enableWeak >.

List of all members.

Public Member Functions

 AudioFileReader () throw ()
 Creates a null object.
 AudioFileReader (Text const &path) throw ()
 Creates an audio file reader from the given path.
 AudioFileReader (const char *path) throw ()
 Creates an audio file reader from the given path.
 AudioFileReader (FilePath const &path) throw ()
 Creates an audio file reader from the given path.
 AudioFileReader (const char *path, const int bufferSize, AudioFileMetaDataIOFlags const &metaDataIOFlags) throw ()
 Creates an audio file reader from the given path.
 AudioFileReader (const char *path, const int bufferSize, UnsignedInt const &metaDataIOFlags) throw ()
 Creates an audio file reader from the given path.
 AudioFileReader (FilePathArray const &paths, const AudioFile::MultiFileTypes multiMode=AudioFile::MultiFileArraySequenceLoop, const int bufferSize=0) throw ()
 Creates a multiple audio file reader from the given paths.
 AudioFileReader (FilePathArray const &paths, IntVariable const &nextIndex, const int bufferSize=0) throw ()
 Creates a multiple audio file reader from the given paths.
 AudioFileReader (AudioFileReader const &copy) throw ()
 Copy constructor.
AudioFileReaderoperator= (AudioFileReader const &other) throw ()
 Assignment operator.
AudioFile::Format getFormat () const throw ()
 Get the format of the audio file.
AudioFile::Encoding getEncoding () const throw ()
 Get the encoding of the audio file.
AudioFile::SampleType getSampleType () const throw ()
 Get the sample type of the audio file.
int getBitsPerSample () const throw ()
 Get the number of bits used per sample in the file.
int getBytesPerFrame () const throw ()
 Get the number of bytes in each frame of the file.
int getBytesPerSample () const throw ()
 Get the number of bytes in each sample of the file.
int getNumChannels () const throw ()
 Get the number of channels in the file.
void setDefaultNumChannels (const int numChannels) throw ()
 Set the default number of channels in the file.
int getDefaultNumChannels () const throw ()
 Get the default number of channels in the file.
double getSampleRate () const throw ()
 Get the sample rate of the file.
LongLong getNumFrames () const throw ()
 Get the total number of frames in the file.
LongLong getFramePosition () const throw ()
 Get the current frame position.
void setFramePosition (const LongLong position) throw ()
 Set the frame position to a particular frame.
void setFramePositionOnNextRead (const LongLong position) throw ()
 Set the frame position to a particular frame just before the next read operation.
void resetFramePosition () throw ()
 Resets the frame position back to the start of the frames.
template<class SampleType >
void readFrames (NumericalArray< SampleType > &data, IntVariable &numLoops) throw ()
 Read frames into a pre-allocated NumericalArray and apply scaling.
template<class SampleType >
void readFramesDirect (NumericalArray< SampleType > &data, IntVariable &numLoops) throw ()
 Read frames into a pre-allocated NumericalArray without scaling.
template<class SampleType >
void initSignal (SignalBase< SampleType > &signal, const int numFrames=0) const throw ()
 Initialises a Signal object in the appropriate format for the audio in the file.
template<class SampleType >
void readSignal (SignalBase< SampleType > &signal) throw ()
 Read frames into a pre-allocated Signal object and apply scaling.
template<class SampleType >
void readSignalDirect (SignalBase< SampleType > &signal) throw ()
 Read frames into a pre-allocated Signal object without scaling.
template<class SampleType >
NumericalArray< SampleType > readAllFrames (const bool applyScaling) throw ()
 Reads all the frames in the file and returns them in an interleaved array.
template<class SampleType >
 operator NumericalArray< SampleType > () throw ()
 Reads all the frames in the file and returns them in an interleaved array.
template<class SampleType >
 operator SignalBase< SampleType > () throw ()
 Reads all the frames in the file and returns them in Signal object.
template<class SampleType >
SignalBase< SampleType > getOtherSignal () throw ()
 Reads all the frames in the file and returns them in Signal object.
SignalBase< PLONK_TYPE_DEFAULT > getSignal () throw ()
 Reads all the frames in the file and returns them in Signal object.
bool isReady () const throw ()
 Determines whether the audio data is ready to be read.

Static Public Member Functions

static AudioFileReader fromWeak (Weak const &weak) throw ()
 Get a weakly linked copy of this object.

Detailed Description

Audio file reader.

This can read audio frames from WAV, AIFF, AIFC or (with the appropriately enabled compile time options), Ogg Vorbis or Opus files.

See also:
BinaryFile

Constructor & Destructor Documentation

AudioFileReader::AudioFileReader ( ) throw () [inline]

Creates a null object.

Use open to open a file.

AudioFileReader::AudioFileReader ( Text const &  path) throw () [inline]

Creates an audio file reader from the given path.

The default buffer size is used given by AudioFile::DefaultBufferSize (32768).

Parameters:
pathThe path of the file to read.
AudioFileReader::AudioFileReader ( const char *  path) throw () [inline]

Creates an audio file reader from the given path.

The default buffer size is used given by AudioFile::DefaultBufferSize (32768).

Parameters:
pathThe path of the file to read.
AudioFileReader::AudioFileReader ( FilePath const &  path) throw () [inline]

Creates an audio file reader from the given path.

The default buffer size is used given by AudioFile::DefaultBufferSize (32768).

Parameters:
pathThe path of the file to read.
AudioFileReader::AudioFileReader ( const char *  path,
const int  bufferSize,
AudioFileMetaDataIOFlags const &  metaDataIOFlags 
) throw () [inline]

Creates an audio file reader from the given path.

Parameters:
pathThe path of the file to read.
bufferSizeThe buffer size to use when reading.
AudioFileReader::AudioFileReader ( const char *  path,
const int  bufferSize,
UnsignedInt const &  metaDataIOFlags 
) throw () [inline]

Creates an audio file reader from the given path.

Parameters:
pathThe path of the file to read.
bufferSizeThe buffer size to use when reading.
AudioFileReader::AudioFileReader ( FilePathArray const &  paths,
const AudioFile::MultiFileTypes  multiMode = AudioFile::MultiFileArraySequenceLoop,
const int  bufferSize = 0 
) throw () [inline]

Creates a multiple audio file reader from the given paths.

Parameters:
pathsThe paths of the files to read.
bufferSizeThe buffer size to use when reading.
AudioFileReader::AudioFileReader ( FilePathArray const &  paths,
IntVariable const &  nextIndex,
const int  bufferSize = 0 
) throw () [inline]

Creates a multiple audio file reader from the given paths.

Parameters:
pathsThe paths of the files to read.
bufferSizeThe buffer size to use when reading.
AudioFileReader::AudioFileReader ( AudioFileReader const &  copy) throw () [inline]

Copy constructor.

Note that a deep copy is not made, the copy will refer to exactly the same data.


Member Function Documentation

static AudioFileReader AudioFileReader::fromWeak ( Weak const &  weak) throw () [inline, static]

Get a weakly linked copy of this object.

This will return a blank/empty/null object of this type if the original has already been deleted.

int AudioFileReader::getBitsPerSample ( ) const throw () [inline]

Get the number of bits used per sample in the file.

int AudioFileReader::getBytesPerFrame ( ) const throw () [inline]

Get the number of bytes in each frame of the file.

int AudioFileReader::getBytesPerSample ( ) const throw () [inline]

Get the number of bytes in each sample of the file.

int AudioFileReader::getDefaultNumChannels ( ) const throw () [inline]

Get the default number of channels in the file.

AudioFile::Encoding AudioFileReader::getEncoding ( ) const throw () [inline]

Get the encoding of the audio file.

i.e., PCM (integer), floating point, whether big or little endian See AudioFile::Encoding the available types.

AudioFile::Format AudioFileReader::getFormat ( ) const throw () [inline]

Get the format of the audio file.

i.e., WAV, AIFF etc See AudioFile::Format the available types.

LongLong AudioFileReader::getFramePosition ( ) const throw () [inline]

Get the current frame position.

int AudioFileReader::getNumChannels ( ) const throw () [inline]

Get the number of channels in the file.

LongLong AudioFileReader::getNumFrames ( ) const throw () [inline]

Get the total number of frames in the file.

template<class SampleType >
SignalBase<SampleType> AudioFileReader::getOtherSignal ( ) throw () [inline]

Reads all the frames in the file and returns them in Signal object.

Returns:
A Signal containing sample frames.
double AudioFileReader::getSampleRate ( ) const throw () [inline]

Get the sample rate of the file.

AudioFile::SampleType AudioFileReader::getSampleType ( ) const throw () [inline]

Get the sample type of the audio file.

i.e., Char (8-bit), Short (16-bit) etc See AudioFile::SampleType the available types.

SignalBase<PLONK_TYPE_DEFAULT> AudioFileReader::getSignal ( ) throw () [inline]

Reads all the frames in the file and returns them in Signal object.

Returns:
A Signal containing sample frames.
template<class SampleType >
void AudioFileReader::initSignal ( SignalBase< SampleType > &  signal,
const int  numFrames = 0 
) const throw () [inline]

Initialises a Signal object in the appropriate format for the audio in the file.

Parameters:
signalThe Signal object to initialise.
numFramesThe number of frames the Signal should store.
bool AudioFileReader::isReady ( ) const throw () [inline]

Determines whether the audio data is ready to be read.

This should return true if the file open and header read operations succeeded.

template<class SampleType >
AudioFileReader::operator NumericalArray< SampleType > ( ) throw () [inline]

Reads all the frames in the file and returns them in an interleaved array.

Returns:
A NumericalArray containing the interleaved sample frames.
template<class SampleType >
AudioFileReader::operator SignalBase< SampleType > ( ) throw () [inline]

Reads all the frames in the file and returns them in Signal object.

Returns:
A Signal containing sample frames.
AudioFileReader& AudioFileReader::operator= ( AudioFileReader const &  other) throw () [inline]

Assignment operator.

template<class SampleType >
NumericalArray<SampleType> AudioFileReader::readAllFrames ( const bool  applyScaling) throw () [inline]

Reads all the frames in the file and returns them in an interleaved array.

Here the samples can be automatically scaled depending on the destination data type.

Parameters:
applyScaling
Returns:
A NumericalArray containing the interleaved sample frames.
template<class SampleType >
void AudioFileReader::readFrames ( NumericalArray< SampleType > &  data,
IntVariable numLoops 
) throw () [inline]

Read frames into a pre-allocated NumericalArray and apply scaling.

Here the samples are automatically scaled depending on the destination data type of the NumericalArray.

Parameters:
dataThe NumericalArray object to read interleaved frames into.
numLoopsHow many loops to read, 0 means infinite loops.
template<class SampleType >
void AudioFileReader::readFramesDirect ( NumericalArray< SampleType > &  data,
IntVariable numLoops 
) throw () [inline]

Read frames into a pre-allocated NumericalArray without scaling.

Parameters:
dataThe NumericalArray object to read interleaved frames into.
numLoopsHow many loops to read, 0 means infinite loops.
Returns:
true if the array was resized as fewer samples were available, otherwise false.
template<class SampleType >
void AudioFileReader::readSignal ( SignalBase< SampleType > &  signal) throw () [inline]

Read frames into a pre-allocated Signal object and apply scaling.

The Signal object MUST be an interleaved type. Here the samples are automatically scaled depending on the destination data type of the Signal.

Parameters:
signalThe Signal object to read frames into.
template<class SampleType >
void AudioFileReader::readSignalDirect ( SignalBase< SampleType > &  signal) throw () [inline]

Read frames into a pre-allocated Signal object without scaling.

The Signal object MUST be an interleaved type.

Parameters:
signalThe Signal object to read frames into.
void AudioFileReader::resetFramePosition ( ) throw () [inline]

Resets the frame position back to the start of the frames.

void AudioFileReader::setDefaultNumChannels ( const int  numChannels) throw () [inline]

Set the default number of channels in the file.

This can be used to suggest a maximum number of channels especially where this file is a multi-audiofile.

void AudioFileReader::setFramePosition ( const LongLong  position) throw () [inline]

Set the frame position to a particular frame.

This is not thread safe, use setFramePositionOnNextRead() to call this from another thread (e.g., a GUI) while playing a file (e.g., in real time).

void AudioFileReader::setFramePositionOnNextRead ( const LongLong  position) throw () [inline]

Set the frame position to a particular frame just before the next read operation.

This is thread safe.


The documentation for this class was generated from the following files:
 All Classes Functions Typedefs Enumerations Enumerator Properties